Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 禁用购物车页面_Php_Wordpress_Woocommerce_Checkout_Cart - Fatal编程技术网

Php 禁用购物车页面

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购物车功能

我的商店只有一种产品,所以实际上不需要购物车

我想要的流程是点击购买按钮->进入结帐页面

若用户返回并重做相同的过程,结帐页面将不会在摘要中显示2个产品,只购买1个

关于如何顺利实现这一点,有什么建议吗


谢谢,

如果您需要跳过购物车页面,最简单的方法是转到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()
    }
}