"msOnGetProductPrice":
$returned = (array)$modx->getPlaceholder('_returned_price');
if (!isset($returned['price'])) {
return;
}
$id = $returned['id'];
$price = $returned['price'];
$options = !empty($returned['msoptionsprice_options'])
? $returned['msoptionsprice_options']
: (!empty($_REQUEST['options'])
? $_REQUEST['options']
: array());
$options = array_diff_key($options, array_flip(array('modifications', 'modification')));
foreach (array_keys($options) as $k) {
if (!empty($options[$k]) && is_array($options[$k])) {
foreach ($options[$k] as $v) {
$q = $modx->newQuery('msopModification')
->innerJoin('msopModificationOption', 'Option', "Option.mid = msopModification.id AND Option.key = '{$k}' AND Option.value = '{$v}'")
->select(array('price'))
->where(array(
'msopModification.rid' => $id,
'msopModification.type' => 2,
'msopModification.active' => true,
))
;
if ($q->prepare() && $q->stmt->execute()) {
if ($price_add = $q->stmt->fetchColumn()) {
$price += $price_add;
}
}
}
}
}
$modx->event->returnedValues['price'] = $returned['price'] = $price;
$modx->setPlaceholder('_returned_price', $returned);
print_r($returned);
break;
}
работает вот этот код, прибавляет даже если не отмечено, верно я понял проблему?
2200 ориг цена, а 2350 ниже это уже с модификацией "на игрушке", почему она сразу отмечается и прибавляется не пойму, хотя галок не стоит на странице
я вот вообще не пойму, с чего вдруг эти галочки должны заработать, как передается информация о галочке в плагин?
Обсуждают сегодня