添加项目后,WooCommerce重定向到购物车

时间:2016-12-06 19:09:15

标签: php wordpress woocommerce hook-woocommerce

我添加了代码,一次只允许购物车中有1件商品。但是,当用户将任何项目添加到购物车时,它不会将它们指向购物车页面。

以下是我正在使用的代码:

add_filter( 'woocommerce_add_cart_item_data', 'woo_custom_add_to_cart' );

function woo_custom_add_to_cart( $cart_item_data ) {
global $woocommerce;
$woocommerce->cart->empty_cart();
wc_add_notice( 'WARNING MESSAGE - You can only have 1 Item in your Cart. Previous Items have been removed.', 'error' );

return $cart_item_data;
}

所以我的目标是保留此功能和错误消息,但将用户带到购物车。我确信此代码中有一些内容阻止用户访问购物车并停留在产品页面上。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

如果您添加错误,则WooCommerce将不会重定向。见source。您可以尝试将通知类型设置为“通知”。

添加项目时清除购物车:

add_filter( 'woocommerce_add_to_cart_validation', 'so_41002991_empty_cart' );
function so_41002991_empty_cart( $valid ){
    WC()->cart->empty_cart();
    wc_add_notice( __( 'WARNING MESSAGE - You can only have 1 Item in your Cart. Previous Items have been removed.', 'your-plugin' ), 'notice' );
    return $valid;
}

有一个WooCommerce设置可以重定向到购物车。但是还有一个可以选择使用的过滤器:

add_filter( 'woocommerce_add_to_cart_redirect', 'so_41002991_redirect_to_cart' );
function so_41002991_redirect_to_cart( $url ){
    return wc_get_cart_url();
}