Woocommerce在结账后根据产品自定义字段进行重定向



所以我在产品中有自定义文本字段元,所以如果有一个url,我想在结帐后将用户重定向到自定义TY页面。这是我的代码,而不是重定向!!

add_action('template_redirect', 'my_redirect_after_purchase');
function my_redirect_after_purchase() {
global $post, $wp;
$my_redirect = get_post_meta( get_the_ID(), '_my_redirect', true ); // This has the redirect URL entered in the field tested and working
if ( '' !== $my_redirect ) { // am checking here if the field is not empty
if (!empty($wp->query_vars['order-received'])) {
wp_redirect(esc_url($my_redirect)); 
exit;
}
}
}

我试过一些其他的方法,但也没有运气。我猜收到订单的查询运行后,因此元返回空?

我该怎么做呢?由于

首先,您必须使用wc_get_order获取订单项,然后您可以根据产品id获取元数据。试试下面的代码:

add_action('template_redirect', 'my_redirect_after_purchase');
function my_redirect_after_purchase() {
/* return if we are not on order-received page */
if( !is_wc_endpoint_url( 'order-received' ) || empty( $_GET['key'] ) ) {
return;
}

$order_id = wc_get_order_id_by_order_key( $_GET['key'] );
$order = wc_get_order( $order_id );
foreach( $order->get_items() as $item ) {
$my_redirect = get_post_meta( $item['product_id'] , '_my_redirect', true );
if( $my_redirect != '' ){
wp_redirect( $my_redirect );
exit;
}
}
}

相关内容

  • 没有找到相关文章

最新更新