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

WooCommerce Redirect to Cart After Item Added

我添加了代码,一次只允许购物车中有 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;
}

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

在此先感谢您的帮助!

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

添加商品后清空购物车:

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();
}