确定是否在woocommerce的商店页面

时间:2015-06-09 15:49:40

标签: php wordpress woocommerce

我的客户希望“简化”结帐以跳过购物车页面,然后直接检查一个产品。如果客户决定不确认结账,我也需要自动清空购物车。

为此,我想检查我是否在购物车或结帐的任何其他页面上并在那里进行,但我尝试的所有命令(is_shop(),is_front_page(),is_page('Shop'),is_product (),is_home())总是返回false,所以我不知道该怎么做。这就是我试图这样做的方法(在我的主题函数中.php):

function reset_cart_front() {
  global $woocommerce;
    echo "Attempting to empty<br>";

    if (is_shop()) { 
        echo "is right page<br>"; 
        $woocommerce->cart->empty_cart(); 
    } else {
        echo "is not right<br>";
    }

}
add_action( 'init', 'reset_cart_front' );
是什么给了什么?

2 个答案:

答案 0 :(得分:0)

没关系,我明白了!

function reset_cart_shop_loop() {
    global $woocommerce;
    $woocommerce->cart->empty_cart();
}
add_action( 'woocommerce_before_shop_loop', 'reset_cart_shop_loop' );

答案 1 :(得分:0)

如果我错了,请纠正我...但我认为您应该检查当前页面is_checkout(),如果不是,请清空购物车:

function reset_cart_front() {
    global $woocommerce;

    if ( !is_checkout() ) { 
        $woocommerce->cart->empty_cart(); 
    }

}
add_action( 'template_redirect', 'reset_cart_front' );

我还认为'init'还为时过早(并建议尝试'template_redirect')。