Modx rev mShop2: где определён обработчик события msOnBeforeAddToCart?
При добавлении товара в корзину срабатывает вызов события msOnBeforeAddToCart, согласно кода из файла mscarthandler.class.php
:
$response = $this->ms2->invokeEvent('msOnBeforeAddToCart', [
'product' => $product,
'count' => $count,
'options' => $options,
'cart' => $this,
]);
if (!($response['success'])) {
return $this->error($response['message']);
}
Но где определён сам обработчик msOnBeforeAddToCart
и как изменить его поведение?
Я нашёл лишь след от него в кэше, в файлах core/cache/context_setting/{mgr, web}/conext.cache.php
:
28 =>
array (
'id' => '28',
'source' => '1',
'property_preprocess' => '0',
'name' => 'order',
'description' => '',
'editor_type' => '0',
'category' => '0',
'cache_type' => '0',
'plugincode' => 'switch($modx->event->name) {
case \'msOnBeforeAddToCart\':
if($product->get(\'in_stock\') <= 0) {
$modx->event->output(\'Товар отсутствует на складе, заказ в данный момент недоступен\');
}
break;
}',
'locked' => '0',
'properties' => 'a:0:{}',
'disabled' => '0',
'moduleguid' => '',
'static' => '0',
'static_file' => '',
),
Изменение этого файла, конечно ни к чему не привело. Так как изменить логику msOnBeforeAddToCart
?
Мне нужно что бы она была такой:
if($product->get('in_stock') <= 0 && $product->get('vendor_stock') <=0 {
$modx->event->output(\'Товар отсутствует на складе, заказ в данный момент недоступен\');
}
Редактирование файла кеша, ожидаемо, не дало результата