<?php
switch ($modx->event->name) {
case 'msOnBeforeAddToCart' : case 'msOnAddToCart': // Обрабатывать только события добавления в корзину и изменения количества
$cartArray = $cart->get(); // Массив корзины
$cartStatus = $cart->status(); // Состояние корзины
foreach ($cartArray as &$cartProduct) { // Обрабатываем все товары корзины
if ($product = $modx->getObject('msProduct', $cartProduct['id'])) { // Получаем объект товара по его ID в корзине
$totalCount = $cartProduct['count'];
$coun['id'] = $_POST['options']['coun'];
$itemtemplate = $product->get('template');
if ($itemtemplate == 4) {
if ($totalCount == 1) $coeff = 1; // Установка коэффициента в зависимости от количества
else {$coeff = (100 - $product->get('discount_month')) / 100;}
$cartProduct['weight'] = $product->get('price');
$cartProduct['price'] = $product->get('price') * $coun['id'] * $coeff % 1000000;
}
else {$cartProduct['price'] = $product->get('price');}
}
}
$cart->set($cartArray); // Запись нового состояния корзины
break;
case 'msOnChangeInCart': // Обрабатывать только события добавления в корзину и изменения количества
$cartArray = $cart->get(); // Массив корзины
$cartStatus = $cart->status(); // Состояние корзины
foreach ($cartArray as &$cartProduct) { // Обрабатываем все товары корзины
if ($product = $modx->getObject('msProduct', $cartProduct['id'])) { // Получаем объект товара по его ID в корзине
$totalCount = $cartProduct['count'];
$itemtemplate = $product->get('template');
$options = $product->getMany('Options');
if ($itemtemplate == 4) {
if ($totalCount == 1) $coeff = 1; // Установка коэффициента в зависимости от количества
else {$coeff = (100 - $product->get('discount_month')) / 100;}
$cartProduct['weight'] = $product->get('price');
$cartProduct['price'] = $product->get('price') * $options->get('coun') * $coeff % 1000000;
}
else {$cartProduct['price'] = $product->get('price');}
}
}
$cart->set($cartArray); // Запись нового состояния корзины
break;
}
Как получить options в плагине у события 'msOnChangeInCart' у MiniShop2?
Версия MODX: Все
С помощью options и события 'msOnBeforeAddToCart' передается кол-во товара в корзину, т. к. count занят подсчетом суток аренды товара. Как получить эту опцию уже у события 'msOnChangeInCart'? Необходимо множить при изменении кол-ва.
Для добавления комментариев вы должны авторизоваться или зарегистрироваться.
Комментарии (0)