Я пытаюсь настроить функцию AJAX, чтобы очистить мою корзинуWoocommerce | Очистить корзину с помощью 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'];
}
Результат
- Внутренняя ошибка сервера вызвана третьей PHP линии
- Alerting выход вар работает (проверьте outcommented код)
РЕШЕНИЕ
Я понял это от меня и с большой помощью от @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();
});
При установке WP_DEBUG к true в вашем wp-config.php, что отображается внутренняя ошибка? – MirzaP
Он ничего не показывает для этого файла php. Нужно ли мне что-то корректировать, так как это вызов AJAX? Файл находится в подкаталоге в моем плагине –
Он показывает что-либо в консоли браузера, когда вы делаете правый щелчок -> Проверить элемент -> Консоль (в хроме)? – MirzaP