gpt4 book ai didi

php - 如果订单商品属于特定产品类别,则结帐重定向后的 Woocommerce

转载 作者:行者123 更新时间:2023-12-02 22:30:15 25 4
gpt4 key购买 nike

我需要这样做,以便当人们在我们的网上商店上按下下订单时,他们将被重定向到我的帐户,但前提是类别是 XXX 、 XXX 、 XXX

但不幸的是我似乎无法让它工作

我尝试过使用&& is_product_category('Category x','Category x','Category x')

// REDIRECT AFTER PLACE ORDER BUTTON!
add_action( 'woocommerce_thankyou', 'KSVS_redirect_custom');
function KSVS_redirect_custom( $order_id ){
$order = new WC_Order( $order_id );

$url = 'https://kanselvvilselv.dk/min-konto/';

if ( $order->status != 'failed' ) {
wp_redirect($url);
exit;
}
}

无需输入 && is_product_category('Category x','Category x','Category x') 即可工作,但随后它在不应该工作的类别上工作。

最佳答案

以下代码使用专用的 template_redirect Hook 和 WordPress has_term()条件函数(与产品类别一起使用),当客户的订单包含定义的产品类别中的商品时,将在结帐后将客户重定向到我的帐户部分:

add_action( 'template_redirect', 'order_received_redirection_to_my_account' );
function order_received_redirection_to_my_account() {
// Only on "Order received" page
if( is_wc_endpoint_url('order-received') ) {
global $wp;

// HERE below define your product categories in the array
$categories = array('Tshirts', 'Hoodies', 'Glasses');

$order = wc_get_order( absint($wp->query_vars['order-received']) ); // Get the Order Object
$category_found = false;

// Loop theough order items
foreach( $order->get_items() as $item ){
if( has_term( $categories, 'product_cat', $item->get_product_id() ) ) {
$category_found = true;
break;
}
}

if( $category_found ) {
// My account redirection url
$my_account_redirect_url = get_permalink( get_option('woocommerce_myaccount_page_id') );
wp_redirect( $my_account_redirect_url );
exit(); // Always exit
}
}
}

代码位于事件子主题(或事件主题)的 function.php 文件中。经过测试并有效。

关于php - 如果订单商品属于特定产品类别,则结帐重定向后的 Woocommerce,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55570603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com