在 WooCommerce 中清算购物车
Clearing cart in WooCommerce
我在 WP WooCommerce 中遇到了一件奇怪的事情,我自己无法理解也无法解决。
我在结帐页面添加了一个清除按钮,
该按钮将我重定向到我的主页并添加了一个 ?clear 参数。
然后我检查是否设置了该参数,如果设置了则清除购物车;
代码:
if(isset($_POST["clear_cart"]))
{
header("Location: https://examplepage.com?clear");
}
add_action( 'init', 'woocommerce_clear_cart_url' );
function woocommerce_clear_cart_url()
{
global $woocommerce;
if(isset( $_GET['clear']))
{
$woocommerce->cart->empty_cart();
}
}
现在 bug/error 事情。
此代码有效...一次。我现在会尽力解释。
当我第一次点击清除按钮时 - 它起作用了。
我被重定向到我的主页,购物车已清空,一切正常。
当我再次添加一些产品然后清空购物车时
我再次被重定向到我的主页(前 4 行代码)
但我的购物车现在还没有清空。为了清除它,我必须将我的参数更改为
?clear=true
然后我做了同样的事情,在点击清除购物车按钮后,它再次重定向我并且购物车没有被清除。如果我再次将参数更改为
?clear=true
这次没用——因为以前用过。将参数更改为
?clear=true1
清除购物车。
希望您已经明白我在说什么。
我尝试了各种参数而不是 "clear" 并且每次都发生同样的事情。
当我也尝试在
中回应某些内容时
function woocommerce_clear_cart_url()
它也只工作了一次。我没主意了。
谢谢。
试试下面的代码
add_action( 'init', 'woocommerce_clear_cart_url' );
function woocommerce_clear_cart_url() {
global $woocommerce;
if(isset($_POST["clear_cart"]))
{
$data= $woocommerce->cart->empty_cart();
if(is_null($data) == 1 ){
wp_redirect( site_url() );
exit;
}
}
假设您的 html 代码如下所示:
<form method="post">
<input type="submit" name="clear_cart" value="1">
</form>
您需要尝试此代码来解决您的错误。
add_action("template_redirect", 'e_coding_hub_redirection_function');
function e_coding_hub_redirection_function(){
global $woocommerce;
if( is_cart() && WC()->cart->cart_contents_count == 0){
//wp_safe_redirect( get_permalink( woocommerce_get_page_id( 'shop' ) ) );
wp_redirect( site_url() );
}
}
我在 WP WooCommerce 中遇到了一件奇怪的事情,我自己无法理解也无法解决。
我在结帐页面添加了一个清除按钮, 该按钮将我重定向到我的主页并添加了一个 ?clear 参数。 然后我检查是否设置了该参数,如果设置了则清除购物车;
代码:
if(isset($_POST["clear_cart"]))
{
header("Location: https://examplepage.com?clear");
}
add_action( 'init', 'woocommerce_clear_cart_url' );
function woocommerce_clear_cart_url()
{
global $woocommerce;
if(isset( $_GET['clear']))
{
$woocommerce->cart->empty_cart();
}
}
现在 bug/error 事情。
此代码有效...一次。我现在会尽力解释。 当我第一次点击清除按钮时 - 它起作用了。 我被重定向到我的主页,购物车已清空,一切正常。
当我再次添加一些产品然后清空购物车时 我再次被重定向到我的主页(前 4 行代码) 但我的购物车现在还没有清空。为了清除它,我必须将我的参数更改为
?clear=true
然后我做了同样的事情,在点击清除购物车按钮后,它再次重定向我并且购物车没有被清除。如果我再次将参数更改为
?clear=true
这次没用——因为以前用过。将参数更改为
?clear=true1
清除购物车。
希望您已经明白我在说什么。 我尝试了各种参数而不是 "clear" 并且每次都发生同样的事情。
当我也尝试在
中回应某些内容时function woocommerce_clear_cart_url()
它也只工作了一次。我没主意了。
谢谢。
试试下面的代码
add_action( 'init', 'woocommerce_clear_cart_url' );
function woocommerce_clear_cart_url() {
global $woocommerce;
if(isset($_POST["clear_cart"]))
{
$data= $woocommerce->cart->empty_cart();
if(is_null($data) == 1 ){
wp_redirect( site_url() );
exit;
}
}
假设您的 html 代码如下所示:
<form method="post">
<input type="submit" name="clear_cart" value="1">
</form>
您需要尝试此代码来解决您的错误。
add_action("template_redirect", 'e_coding_hub_redirection_function');
function e_coding_hub_redirection_function(){
global $woocommerce;
if( is_cart() && WC()->cart->cart_contents_count == 0){
//wp_safe_redirect( get_permalink( woocommerce_get_page_id( 'shop' ) ) );
wp_redirect( site_url() );
}
}