반응형
woocommerce의 ajax를 사용하여 카트에서 제품을 제거합니다.
링크를 클릭하지 않고 ajax를 사용하여 woocommerce 카트에 있는 제품을 제거하고 싶습니다.
이런 기능이 있으면 도와주세요.
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();
}
WC_Cart를 사용할 수 있습니다.set_quantity
방법
php에서는 다음과 같이 합니다.
$cart = WC()->instance()->cart;
$id = $_POST['product_id'];
$cart_id = $cart->generate_cart_id($id);
$cart_item_id = $cart->find_product_in_cart($cart_id);
if($cart_item_id){
$cart->set_quantity($cart_item_id,0);
}
다음을 사용합니다.
$cart = $woocommerce->cart;
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.
$cart->remove_cart_item($cart_item_key);
}
}
이것을 사용해 보세요.
foreach ( $woocommerce->cart->cart_contents as $cart_item_key => $cart_item ) {
if($cart_item['product_id'] == $product_id){
unset($cartdetails->cart_contents[$cart_item_key]);
}
}
언급URL : https://stackoverflow.com/questions/21900865/remove-product-in-the-cart-using-ajax-in-woocommerce
반응형
'source' 카테고리의 다른 글
이진 데이터를 이미지로 표시하는 방법 - extjs 4 (0) | 2023.02.13 |
---|---|
Wordpress JSON API로 사용자 등록/로그인 (0) | 2023.02.13 |
어떻게 하면 쿠키를 반응시킬 수 있을까요? (0) | 2023.02.13 |
WordPress - 플러그인에서 함수 재정의 (0) | 2023.02.09 |
Angular Seed 프로젝트에서 index-async.html의 포인트는 무엇입니까? (0) | 2023.02.09 |