Разработка модуля доставки Есть решение
Здравствуйте. Я разрабатываю модуль доставки и прошу помощи в решении некоторых вопросов.
В своем модуле в файле plugin.php я прописал событие 'handlers' => array('order_action.create' => 'testmethod', ), ...
В файле основного класса я пытаюсь реализовать обработчик public function testmethod($params){var_dump($params)}... Но никаких данных не получаю...
Подскажите пожалуйста как правильно реализовать событие...
12 ответов
В соседнем топике человек решает подобную проблему, делая параллельно модуль доставки и плагин для магазина таким образом, чтобы они работали в паре: http://www.webasyst.ru/help/423/razrabotka-modulya-dostavki/
public function event($name, &$params = null, $array_keys = null)
{
waLog::log('Event: '.$this->getApp().' '.$name.' '.wa_dump_helper($params), 'events.log'); // !!!
Если появляется, тогда что-то не так с тем, как регистрируется обработчик. Как выглядит plugin.php? Как выглядит метод-обработчик? Или, возможно, обработчик падает с exception'ом - есть ли ошибки в wa-log/error.log?
'name' => 'Удаленная доставка',
'description' => 'Плагин для рассчета доставки',
'vendor'=>'aanda',
'version'=>'1.0.0',
'img'=>'img/shipping.gif',
'handlers' => array(
'order_action.comment' => 'orderActionComment',
),
);
Вот что в методе-обработчике
public function orderActionComment() {
echo 'test';
}
Обработчик в логах ошибок тоже не попадает...
Что вы делаете, чтобы воспроизвести само событие-то? Если я правильно понимаю, order_action.pay кидается тогда и только тогда, когда выполняется действие pay - Оплачен. Если вы жмёте кнопку, например, Выполнен, то событие pay не кидается - кидается complete. Не исключено, что придётся подписаться на оба события, чтобы отследить то, что вам нужно. Опять-таки, смотря что именно вам нужно.
отправлялись определенные данные... Для этого мне и нужно событие order_action.pay... Все манипуляции с хуками я проводил в плагине магазина который работает в паре с моим модулем доставки...