我正在尝试设置一个 AJAX 函数来清空我的购物车
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 提供了一些帮助
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 代码更改为
if(isset($_POST['data']) && !empty($_POST['data'])) {
global $woocommerce;
$woocommerce->cart->empty_cart();
//echo $_POST['productID'];
}
你传入的参数是data,不是productID
关于javascript - 电子商务 |通过 Ajax 清除购物车,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40174894/