禁用购物车页面但保留 Woocommerce 中的结帐页面

Disable cart page but keep the checkout page in Woocommerce

我目前正在寻找比这个问题更好的方法来删除/禁用我的 WooCommerce 安装中的购物车页面:

Disabling shopping basket in WooCommerce

所以我想显示 404 而不是重定向,以便清楚地表明此页面不存在。

The functionality must be there because my shop can't work anymore without this.

要弄清楚:


我构建了一个自定义按钮,可将产品添加到 "cart" 并直接重定向到结帐页面。这应该是唯一可用的进程!

尝试以下将处理购物车重定向的方法:

add_action( 'template_redirect', 'skip_cart_redirect' );
function skip_cart_redirect(){
    // Redirect to checkout (when cart is not empty)
    if ( ! WC()->cart->is_empty() && is_cart() ) {
        wp_safe_redirect( wc_get_checkout_url() ); 
        exit();
    }
    // Redirect to shop if cart is empty
    elseif ( WC()->cart->is_empty() && is_cart() ) {
        wp_safe_redirect( wc_get_page_permalink( 'shop' ) );
        exit();
    }
}

代码进入您的活动子主题(或活动主题)的 function.php 文件。它应该有效。


如果您想为购物车页面设置 404,您可以使用伪造的页面 url,这将使 404 类似于:

add_action( 'template_redirect', 'cart_redirect_404' );
function cart_redirect_404(){
    // Redirect to non existing page that will make a 404
    if ( is_cart() ) {
        wp_safe_redirect( home_url('/cart-page/') ); 
        exit();
    }
}

代码进入您的活动子主题(或活动主题)的 function.php 文件。它应该有效。