Woocommerce |通过 Ajax 清除购物车 [英] Woocommerce | Clear cart by Ajax
本文介绍了Woocommerce |通过 Ajax 清除购物车的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试设置一个 AJAX 函数来清除我的购物车
I'm trying to set up an AJAX function to clear my cart
HTML
<a onclick="clearCart(this)" data-href="/product-page/" data-productID="182">Go to Product</a>
JavaScript
function clearCart(d) {
jQuery(document).ready(function($) {
var productID = d.getAttribute("data-productID");
$.ajax({
url: "addtocart.php",
data: {productID: productID},
type: "post",
success: function(output) {
window.location = d.getAttribute("data-href");
//alert(output);
}
});
});
}
PHP
if(isset($_POST['productID']) && !empty($_POST['productID'])) {
global $woocommerce;
$woocommerce->cart->empty_cart();
//echo $_POST['productID'];
}
结果
- 由第 3 行 PHP 引起的内部服务器错误
- 提醒 var 输出有效(检查注释掉的代码)
解决方案
我自己想出来的,@MirzaP 也帮了我很多
I figured it out by myself and some great help from @MirzaP
JS
function clearCart(d) {
jQuery.post(
"https://dercampus.ch/wp-admin/admin-ajax.php",
//ajaxurl,
{
"action": "clearcart",
"data": d.getAttribute("data-productid")
},
function(){
window.location = d.getAttribute("data-href");
}
);
}
PHP
add_action('wp_ajax_nopriv_clearcart',function(){
global $woocommerce;
$woocommerce->cart->empty_cart();
});
推荐答案
请将你的php代码改成
Please change your php code to
if(isset($_POST['data']) && !empty($_POST['data'])) {
global $woocommerce;
$woocommerce->cart->empty_cart();
//echo $_POST['productID'];
}
你传入的参数是data而不是productID
Your parameter that is passed in is data and not productID
这篇关于Woocommerce |通过 Ajax 清除购物车的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文