У меня не было большого опыта работы с opencart, но AFAIK вам не нужно использовать vqmod
для opencart v2.3 или выше.Кроме того, это высокая производительность и непредсказуемость.
Метод index
класса ControllerCheckoutShippingMethod
[catalog/controller/checkout/shipping_method.php
] отвечает за генерацию всех методов доставки и размещение их в сеансе.Opencart позволяет нам разместить событие сразу после вызова этого метода индекса и изменить окончательный вывод.
Создайте модуль с указанным ниже содержимым внутри метода install
и все, что вы хотите добавитьэто там:
<?php
// admin/controller/extensions/module/mymodule.php
public function install() {
$this->load->model('extension/event');
$this->model_extension_event->addEvent(
'my_custom_module',
'catalog/controller/checkout/shipping_method/after', // add event after shipping_method index call
'extension/module/mymodule/eventAfterSM' // your module file (mymodule.php) with eventAfterSM method in it
);
}
// catalog/controller/extension/module/mymodule.php
public function eventAfterSM() {
// this method will be called right after `ControllerCheckoutShippingMethod`->`index`
// copy and paste the entire index method code in here and modify accordingly
// and finally set the modified data
$this->response->setOutput($this->load->view('checkout/payment_method', $data));
}