wordpress Woocommerce – add to cart

public function setQuickOrder()

    {
        $jsonId     = $_POST['data_id']['myDataId'];
        $jsonQty    = $_POST['data_qty']['myDataQty'];
        
        $myDataIdArray  = json_decode($jsonId,true);
        $myDataQtyArray = json_decode($jsonQty,true);

        foreach ($myDataIdArray as $key => $value)
        {
            WC()->cart->add_to_cart( $value , $myDataQtyArray[$key] );
        }

        $specific_ids = array($myDataIdArray);
        foreach( WC()->cart->get_cart() as $cart_item_key => $cart_item )
        {
            $product_id = $cart_item['data']->get_id();

            $findIdx = array_search($product_id,$myDataIdArray);


            if( in_array( $product_id, $specific_ids[0] ) && $cart_item['quantity'] != $myDataQtyArray[$findIdx] )
            {
                WC()->cart->set_quantity( $cart_item_key, $myDataQtyArray[$findIdx] ); // Change quantity
            }
        }
        wp_die();
    }
            $this->add_action(
                'wp_ajax_setquickorder',
                'QuickOrderController@setQuickOrder'
            );

            $this->add_action(
                'wp_ajax_nopriv_setquickorder',
                'QuickOrderController@setQuickOrder'
            ); 
<script>

let proidArray = [];
let proqtyArray = [];

function cart_action_ajax()
{
    jQuery.ajax({
    url: '/wp-admin/admin-ajax.php', //just hard coded to see
    type : 'post',
        data:
        {
            'action' : 'setquickorder',
            'data_id' : { myDataId : JSON.stringify(proidArray) },
            'data_qty' : { myDataQty : JSON.stringify(proqtyArray) },
        },
        success: function(data)
        {
            jQuery(document.body).trigger('wc_fragment_refresh');              alert('Items successfully added to cart');              // console.log(data); 
        }
    });   
}

function each_cart_action(proId)
{
    proidArray = [];
    proqtyArray = [];

    proidArray.push(proId);

    if( document.getElementById("bsf_qty_"+proId).value )
    {
        let bsfqtyNo = document.getElementById("bsf_qty_"+proId).value;
        let numberBsfqty = bsfqtyNo * 1 ;
        if( numberBsfqty > 0 )
        {
            proqtyArray.push(numberBsfqty);
        }
        else
        {
            return;
        }
    }
    else
    {
        return;
    }
    cart_action_ajax();
}

function bulk_cart_action()
{
    proidArray = [];
    proqtyArray = [];
    let j = 0 ;

    const elements = document.getElementsByClassName("variation-quantity-value");

    for (let i = 0; i < elements.length; i++)
    {
        if( elements[i].value )
        {
            let numberBsfqty = elements[i].value * 1 ;
            if( numberBsfqty > 0 )
            {
                let productid = elements[i].getAttribute("data-product-id");
                let proId = productid * 1 ;
                proidArray.push(proId);
                proqtyArray.push(numberBsfqty);
            }
        j++;
        }
    }

    if( j == 0 )
    {
        return;
    }
    else
    {
        cart_action_ajax();
    }
}

</script>

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다