我的客户希望“简化”结帐以跳过购物车页面,然后直接检查一个产品。如果客户决定不确认结账,我也需要自动清空购物车。
为此,我想检查我是否在购物车或结帐的任何其他页面上并在那里进行,但我尝试的所有命令(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' );
是什么给了什么?
答案 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'
)。