-
-
Save kloon/4541017 to your computer and use it in GitHub Desktop.
// check for clear-cart get param to clear the cart, append ?clear-cart to any site url to trigger this | |
add_action( 'init', 'woocommerce_clear_cart_url' ); | |
function woocommerce_clear_cart_url() { | |
if ( isset( $_GET['clear-cart'] ) ) { | |
global $woocommerce; | |
$woocommerce->cart->empty_cart(); | |
} | |
} |
Thank, @bfintal ! It's still working with Woocommerce 4.3.0 😃
2018 way:
add_action( 'woocommerce_before_cart', 'woocommerce_clear_cart_url' ); function woocommerce_clear_cart_url() { if ( isset( $_GET['clear-cart'] ) ) { WC()->cart->empty_cart(); } }
Doesn't seem to work now.. For me just doesn't do anything - adding /?clear-cart to the domain just leads to the main page.
/?add-to-cart=... works though
Is the only thing that should be done is adding the code to functions.php?
Any other things should be done before it starts to work?
For me, I combined @kloon & @alexx855's solution to trigger on the
add-to-cart
url:add_action( 'init', 'woocommerce_clear_cart_url' ); function woocommerce_clear_cart_url() { if ( isset( $_GET['add-to-cart'] ) ) { WC()->cart->empty_cart(); } }
This one works for me though..
I don't see much difference, but the previous didn't work with /?clear-cart in the url
And this one works perfectly.
Thank you, @bfintal
Can the script be changed so that it would be possible to use clear-cart separately or together with add-to-cart?
something like
https://mysite.com/checkout/?clear-cart&add-to-cart=1234,1235
?
Can we do a redirection after clicking the clear cart url? Like if the url is inside the cart page, how can we reload it as cart empty page after clicking the url?
Can we do a redirection after clicking the clear cart url? Like if the url is inside the cart page, how can we reload it as cart empty page after clicking the url?
Finally figured this part out. So the woocommerce_before_cart
hook will work for the Woocommerce empty_cart
function, but it won't do any page reload.
If page reloading is needed, the function has to be hooked with the init
hook, or better with wp_loaded
hook IMO.
Works, but missing exit after wp_safe_redirect().
Works, but missing exit after wp_safe_redirect().
Adding exit did the trick
These all stopped working. I can't clear my cart with any of them.
This doesn't work - does anyone have a current version of this??
The one I mentioned works for me. The cart gets emptied and my add-to-cart product gets added. My links look like:
https://mysite.com/checkout/?add-to-cart=1234