我想一定禁用WooCommerce购物车功能。
我的商店只有一个产品,所以不需要购物车。
我想要的流程是点击购买按钮 - >去结帐页面。
Incase用户返回并重做同样的过程,结账页面不会显示2个产品总结仅购买1.
有关如何顺利实现这一目标的任何提示?
谢谢,
答案 0 :(得分:3)
您需要4个代码段:
1)禁用数量按钮(在产品页面上):
add_filter( 'woocommerce_is_sold_individually', '__return_true' );
2)添加购物车验证,只允许购物车中的一种产品:
add_action( 'woocommerce_add_to_cart_validation', 'check_product_is_in_cart' );
function check_product_is_in_cart() {
WC()->cart->empty_cart();
return true;
}
3)将产品添加到购物车(使用现代语法)时结帐重定向客户:
add_filter ('add_to_cart_redirect', 'redirect_to_checkout');
function redirect_to_checkout() {
return WC()->cart->get_checkout_url();
// OR ALSO:
// return get_permalink(get_option('woocommerce_checkout_page_id'));
}
此答案的代码(使用正确的新语法):Woocommerce add to cart button redirect to checkout
4)将购物车页面重定向到结帐页面(如果是):
add_action('template_redirect', 'skip_cart_page_redirection_to_checkout');
function skip_cart_page_redirection_to_checkout() {
if(is_cart()){
wp_redirect(WC()->cart->get_checkout_url());
// OR ALSO:
// wp_redirect( get_permalink( get_option( 'woocommerce_checkout_page_id' ) ) );
exit; // This is mandatory with wp_redirect()
}
}
代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。
代码经过测试并有效。
禁止在add-to-cart
操作上重定向到购物车,在商店页面和存档页面上停用Ajax add-to-cart (可选)
您还可以在WooCommerce中禁用某些设置>设置>产品>显示(标签)。
答案 1 :(得分:0)
如果您需要跳过购物车页面,最简单的方法是转到 Woocommerce->设置 - >结帐并将购物车页面设置为" Checkout"页强>
或使用此代码段
add_filter('add_to_cart_redirect', 'themeprefix_add_to_cart_redirect');
function themeprefix_add_to_cart_redirect() {
global $woocommerce;
$checkout_url = $woocommerce->cart->get_checkout_url();
return $checkout_url;
}
在Woocommerce中成功添加后,不要忘记禁用Ajax添加到购物车并重定向到购物车页面 - >设置 - >产品 - >显示 如果您使用第一种方法,则可以在成功添加后检查重定向到购物车页面。
对于限制,结帐中的一个项目使用此代码段。 通过这种方式,客户只能购买一件商品,如果顾客转到另一件商品并试图购买,则会清洁购物车并添加最后一件商品。
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();
return $cart_item_data;
}