Достали из нашей базы в ЛК, отряхнули от спана Espo и выкатили сюда. Код — чёрные блоки, как любим.
плагин
<?php
switch ($modx->event->name) {
case 'OnHandleRequest':
// Handle ajax requests
$isAjax = !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest';
if (empty($_REQUEST['custom_ms2_action']) || !$isAjax) {
return;
}
// Данные формируются в js-файле
/** @var miniShop2 $miniShop2 */
if ($miniShop2 = $modx->getService('miniShop2')) {
$miniShop2->initialize($modx->context->key);
if ($_REQUEST['custom_ms2_action'] == 'cart/add') {
$products = json_decode($_POST['products']);
foreach ($products as $product) {
$miniShop2->cart->add($product->id, $product->count, array());
}
// смена количества в мини корзине
$cart = $miniShop2->cart->status();
print_r($cart['total_count']);
exit();
}
}
break;
}
js
$(document).ready(function(){
$('button').click(function(e){
var products = [5,6];
$('.product').each(function () {
var product = {};
product['id'] = $(this).data('id');
product['count'] = $(this).data('count');
products.push(product);
});
products = JSON.stringify(products);
setTimeout(function() {
// данные принимаются в плагине MODX
$.ajax({
type: "POST",
url: document.location.href,
data: {
custom_ms2_action: 'cart/add',
products: products,
count: 1,
options: {}
},
success: function(count){
$('.ms2_total_count').html(count);
}
});
}, 500);
});
})
Комментарии
Комментарии (0)