我想使用ajax刪除woocommerce購物車中的產品,而無需點擊鏈接。使用woocommerce中的ajax刪除購物車中的產品
如果遇到這種功能,請幫助我們。
add_action('wp_footer', 'add_js_to_wp_wcommerce');
function add_js_to_wp_wcommerce(){ ?>
<script type="text/javascript">
jQuery('.remove-product').click(function(){
var product_id = jQuery(this).attr("data-product_id");
jQuery.ajax({
type: 'POST',
dataType: 'json',
url: "/wp-admin/admin-ajax.php",
data: { action: "product_remove",
product_id: product_id
},success: function(data){
console.log(data);
}
});
return false;
});
</script>
<?php }
add_action('wp_ajax_product_remove', 'product_remove');
add_action('wp_ajax_nopriv_product_remove', 'product_remove');
function product_remove() {
global $wpdb, $woocommerce;
session_start();
foreach ($woocommerce->cart->get_cart() as $cart_item_key => $cart_item){
if($cart_item['product_id'] == $_POST['product_id']){
// Remove product in the cart using cart_item_key.
$woocommerce->cart->get_remove_url($cart_item_key);
}
}
print_r($woocommerce->cart->get_cart());
//echo json_encode(array('status' => 0));
exit();
}
該解決方案適用! –
非常好的解決方案! – rilwis
請注意,該代碼不適用於變量產品。在這種情況下,你必須將'$ variation_id'添加到函數'generate_cart_id()'或者傳遞'$ cart_id'(實際上它已經從ajax腳本正確地調用了'$ cart_item_key'。 – rassoh