Я хочу написать функцию для catalog-> controller-> checkout-> cart.php в Opencart 2.3.0.2
Я уже написал логику для проверки priduct_id и действий, которые необходимо предпринять, если найден конкретный идентификатор продукта.
Теперь я хочу взять эту логику в отдельной функции в отдельном файле php, чтобы она стала более управляемой.
Я создал функцию в php-файле в system-> helper и загрузил ее из startup.php.
Затем я могу вызвать эту функцию из cart.php, но ссылка на переменную $ this будет потеряна, даже если я передам $ this этой функции.
Мой урезанный код выглядит так
cart.php
//some code before this
if (!$json) {
// Check if Product is Addon
test($this);
//more code after this
customfunction.php
function test($this) {
// print_r("Test Called");
$temp = $this->request->post['product_id'];
if ($this->request->post['product_id'] == 142) {
$json['success'] = sprintf($this->language->get('text_success'), $this->url->link('product/product', 'product_id=' . $this->request->post['product_id']), $product_info['name'], $this->url->link('checkout/cart'));
$product_options = $this->model_catalog_product->getProductOptions($this->request->post['product_id']);
$product_option_id = $product_option['product_option_id'];
//more code
Я получаю ошибку для
$this->request->post['product_id'];
Может кто-нибудь сказать мне, как вызывать пользовательскую функцию из отдельного php-файла, сохраняя ссылку на эту переменную.