Php 禁用购物车页面
我想通过各种方式禁用WooCommerce购物车功能 我的商店只有一种产品,所以实际上不需要购物车 我想要的流程是点击购买按钮->进入结帐页面 若用户返回并重做相同的过程,结帐页面将不会在摘要中显示2个产品,只购买1个 关于如何顺利实现这一点,有什么建议吗Php 禁用购物车页面,php,wordpress,woocommerce,checkout,cart,Php,Wordpress,Woocommerce,Checkout,Cart,我想通过各种方式禁用WooCommerce购物车功能 我的商店只有一种产品,所以实际上不需要购物车 我想要的流程是点击购买按钮->进入结帐页面 若用户返回并重做相同的过程,结帐页面将不会在摘要中显示2个产品,只购买1个 关于如何顺利实现这一点,有什么建议吗 谢谢,如果您需要跳过购物车页面,最简单的方法是转到Woocommerce->Settings->Checkout并将购物车页面设置为Checkout页面 或者使用这个片段 add_filter('add_to_cart_redirect',
谢谢,如果您需要跳过购物车页面,最简单的方法是转到Woocommerce->Settings->Checkout并将购物车页面设置为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->Settings->Products->Display中成功添加后禁用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;
}
您将需要4个代码段:
1禁用产品页面上的数量按钮:
add_filter( 'woocommerce_is_sold_individually', '__return_true' );
2添加到购物车验证,购物车中只允许一个产品:
3当您的产品以现代语法添加到购物车时,结帐重定向客户:
此答案中的代码使用正确的新语法:
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文件中,或者位于任何插件文件中
代码经过测试并正常工作
禁用“添加到购物车”操作时重定向到购物车以及“在商店页面和归档页面上添加到购物车”Ajax(可选)
您还可以在WooCommerce>设置>产品>显示选项卡中禁用某些设置
(可选)禁用这两个选项并保存设置:
@Dave谢谢,但我想使用woocommerce的默认结账页面,该页面包含付款方式、发货信息等。。
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'));
}
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()
}
}