使用AJAX在woocommerce购物车中删除此产品 [英] Remove product in the cart using ajax in woocommerce

查看:478
本文介绍了使用AJAX在woocommerce购物车中删除此产品的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想删除产品中使用AJAX没有点击链接woocommerce车。

如果您遇到这种功能,请帮助我们。

  add_action('wp_footer','add_js_to_wp_wcommerce');

功能add_js_to_wp_wcommerce(){&GT?;
    <脚本类型=文/ JavaScript的>
    jQuery的('。删除产品)。点击(函数(){
        VAR的product_id = jQuery的(本).attr(数据的product_id);
        jQuery.ajax({
            键入:POST,
            数据类型:JSON,
            网址:/wp-admin/admin-ajax.php
            数据:{行动:product_remove
                    PRODUCT_ID:PRODUCT_ID
            },成功:功能(数据){
                的console.log(数据);
            }
        });
        返回false;
    });
    < / SCRIPT>
< PHP}

add_action('wp_ajax_product_remove','product_remove');
add_action('wp_ajax_nopriv_product_remove','product_remove');
功能product_remove(){
    全球WPDB $,$ woocommerce;
    在session_start();
    的foreach($ woocommerce-> cart-> get_cart()为$ cart_item_key => $ cart_item){
        如果($ cart_item ['PRODUCT_ID'] = = $ _ POST ['PRODUCT_ID']){
            使用cart_item_key在车//删除此产品。
            $ woocommerce-> cart-> get_remove_url($ cart_item_key);
        }
    }
    的print_r($ woocommerce-> cart-> get_cart());
    //回声json_en code(阵列('地位'= 0));
    出口();
}
 

解决方案

您可以使用WC_Cart set_quantity 方法

和做的,因为这在你的PHP:

  $车= WC() - >实例() - >购物车;
的$ id = $ _ POST ['PRODUCT_ID'];
$ cart_id = $ cart-> generate_cart_id($ ID);
$ cart_item_id = $ cart-> find_product_in_cart($ cart_id);

如果($ cart_item_id){
   $ cart-> set_quantity($ cart_item_id,0);
}
 

I would like to remove the product in the woocommerce cart using ajax without click the link.

If you have encounter this kind of functionality, please help us.

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();
}

解决方案

you could use the WC_Cart set_quantity method

And do as this in your 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);
}

这篇关于使用AJAX在woocommerce购物车中删除此产品的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆