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>