Prestashop 1.7: как удалить URL из корзины в аксессуарах

Как я могу правильно получить URL-адрес удаления из корзины в каждом элементе $accessories? Я пробовал из шаблона:

{foreach from=$accessories item=accessory}
  {assign var="deleteURL" value=Link::getRemoveFromCartURL($accessory.id_product,$accessory.id_product_attribute,null)}
{/foreach}

Но я получаю сообщение об ошибке:

Runtime Notice: Non-static method LinkCore::getRemoveFromCartURL() should not be called statically 

Какой контроллер я должен изменить, чтобы получить доступ к удалению URL-адреса из корзины с помощью $accessories ?


person Antoine Mouës    schedule 11.09.2017    source источник


Ответы (1)


В controllers/front/ProductController.php отредактируйте функцию initContent.

$accessories = $this->product->getAccessories($this->context->language->id);
        if (is_array($accessories)) {
            foreach ($accessories as &$accessory) {
                $accessory = $presenter->present(
                    $presentationSettings,
                    Product::getProductProperties($this->context->language->id, $accessory, $this->context),
                    $this->context->language
                );
            }
            unset($accessory);
        }

to

$accessories = $this->product->getAccessories($this->context->language->id);
        if (is_array($accessories)) {
            foreach ($accessories as &$accessory) {
                $accessory = $presenter->present(
                    $presentationSettings,
                    Product::getProductProperties($this->context->language->id, $accessory, $this->context),
                    $this->context->language
                );
                $accessory['remove_from_cart_url'] = $this->context->link->getRemoveFromCartURL($accessory['id'],$accessory['id_product_attribute']);
            }
            unset($accessory);
        }

РЕДАКТИРОВАНИЕ: вы не должны редактировать контроллер напрямую, а должны создать переопределение в override/controllers/front/ProductController.php. Если файл еще не создан, сделайте это сами.

person Antoine Mouës    schedule 11.09.2017