Php 如果购物车为空,购物车页面将重定向到WooCommerce中的shop页面?

Php 如果购物车为空,购物车页面将重定向到WooCommerce中的shop页面?,php,wordpress,redirect,woocommerce,cart,Php,Wordpress,Redirect,Woocommerce,Cart,在WooCommerce中,当购物车页面为空时,我想将购物车页面重定向到shop页面,否则会显示购物车页面。有人能找到解决办法吗 下面是我尝试过的代码,但它不起作用: function my_empty_cart() { global $woocommerce; if (isset( $_GET['empty-cart'] ) ) { wp_safe_redirect( get_permalink( woocommerce_get_page_id( 'produc

在WooCommerce中,当购物车页面为空时,我想将购物车页面重定向到shop页面,否则会显示购物车页面。有人能找到解决办法吗

下面是我尝试过的代码,但它不起作用:

function my_empty_cart() {
  global $woocommerce;

    if (isset( $_GET['empty-cart'] ) ) { 
        wp_safe_redirect( get_permalink( woocommerce_get_page_id( 'product' ) ) );
    }
}
add_action( 'init', 'my_empty_cart' );

//旧woocommerce:使用sizeof($woocommerce->cart->cart\u contents)检查购物车内容计数

add_action("template_redirect", 'redirection_function');
function redirection_function(){
    global $woocommerce;
    if( is_cart() && WC()->cart->cart_contents_count == 0){
        wp_safe_redirect( get_permalink( woocommerce_get_page_id( 'shop' ) ) );
    }
}
//在新woocommerce 2.1+:WC()->cart->cart\u contents\u count中检查购物车内容计数

add_action("template_redirect", 'redirection_function');
function redirection_function(){
    global $woocommerce;
    if( is_cart() && WC()->cart->cart_contents_count == 0){
        wp_safe_redirect( get_permalink( woocommerce_get_page_id( 'shop' ) ) );
    }
}
init
hook每次都会运行。使用
模板\u重定向

==============================================

在新woocommerce中,他们已经更新了功能,现在您可以使用以下功能直接获取购物车内容计数


WC()->cart->cart\u contents\u count

我自己也做了测试,因为我需要类似的东西

add_action("template_redirect", 'redirection_function');
function redirection_function(){
    global $woocommerce;
    if( is_cart() && WC()->cart->cart_contents_count == 0){
        wp_safe_redirect( get_permalink( woocommerce_get_page_id( 'shop' ) ) );
    }
}
function cart_empty_redirect_to_shop() {
    global $woocommerce;

    if ( is_page('cart') and !sizeof($woocommerce->cart->cart_contents) ) {
        wp_redirect( get_permalink( wc_get_page_id( 'shop' ) ) ); exit;
    }
}

add_action( 'wp_head', 'cart_empty_redirect_to_shop' );

只需转到woocommerce文件夹并导航到购物车文件夹。。里面有一个cart-empty.php

然后查找以下内容:

<p><a class="button1 btn btn-normal" href="<?php echo get_permalink.....

我尝试了@Pushpak的解决方案,但它不再有效。要检查购物车内容,请使用以下代码:

global $woocommerce;
if ( $woocommerce->cart->cart_contents_count != 0 ) {
    // cart has content
} else {
    // cart is empty
}
2018年9月25日

今天为我工作::

function cart_empty_redirect_to_shop() {
  global $woocommerce, $woocommerce_errors;

if ( is_cart() && sizeof($woocommerce->cart->cart_contents) == 0) { 
        wp_safe_redirect( get_permalink( wc_get_page_id( 'shop' ) ) ); 
     exit;
    }
}
add_action( 'template_redirect', 'cart_empty_redirect_to_shop' );
2021年更新 由于WooCommerce版本3在尝试访问购物车页面且购物车已为空时,使用以下命令重定向到购物车页面:

add_action( 'template_redirect', 'empty_cart_redirect' );
function empty_cart_redirect(){
    if( is_cart() && WC()->cart->is_empty() ) {
        wp_safe_redirect( get_permalink( wc_get_page_id( 'shop' ) ) );
        exit();
    }
}
代码进入活动子主题(或活动主题)的functions.php文件。测试和工作


注释-过时和不推荐使用的代码:

  • global$woodcommerce
    $woocommerce->cart一起使用将被
    WC()->cart
  • sizeof($woocommerce->cart->cart\u contents)==0
    被simple
    WC()->cart->is\u empty()
  • woocommerce\u get\u page\u id()
    替换为
    wc\u get\u page\u id()


删除购物车页面上的所有购物车项目时要激活重定向,需要一些额外的jQuery代码,请参阅:

init
到处运行。。。我会尝试使用
template\u redirect
。是的。您可以在购物车页面上检查并重定向用户。我还将此函数放置在cart.php中。workHave没有从您的终端@Pushpak patel测试这些代码吗?他们更改了变量。您需要检查
$woocommerce->cart->cart\u contents\u count
,而不是
sizeof($woocommerce->cart->cart\u contents\u count)
,返回整数(如果为空,则为0)的内容,我建议您在function.php文件中添加一些代码。当你更新插件时,你必须重做这个…翻转那个。@MaggewDotCom很高兴它有帮助!这似乎是一个非常古老的问题。不管怎么说,你试着回答可能会帮助别人的问题是件好事。但是试着回答新的问题。