Извлечение элемента из корзины Пользовательская кнопка Opencart

По сути, когда клиент «любит» нашу страницу в Facebook, я добавляю товар в корзину, но чтобы убедиться, что он не пользуется этим предложением, я хотел бы удалить товар из корзины, если он не похож на страницу.

Поэтому, используя Ajax-вызов, я бы хотел удалить предмет из корзины. Теперь я заметил, что для удаления предмета из корзины нужен ключ продукта.

Это делает запрос на получение как таковой:

index.php?route=module/cart&remove=1286:YToxOntpOjYyMzk0O3M6NjoiMTI1MDQxIjt9:

Глядя на этот запрос, я обнаружил, что в контроллере он вызывает функцию из этого оператора:

if (isset($this->request->get['remove'])) {
$this->cart->remove($this->request->get['remove']);

unset($this->session->data['vouchers'][$this->request->get['remove']]);
}

И затем отсюда он вызывает функцию удаления в system / library / cart.php

public function remove($key) {
if (isset($this->session->data['cart'][$key])) {
unset($this->session->data['cart'][$key]);
}

$this->data = array();
}

Теперь … я знаю, что могу легко выполнить аналогичную команду get … но этот ключ, похоже, является идентификатором продукта, за которым следует что-то другое … Я не уверен, что это такое или как я могу получить к нему доступ, чтобы я мог удалить элемент из корзина.

Если кто-то может пролить свет на это, я был бы очень признателен.

2

Решение

Просто взгляните на system/library/cart.php снова в метод add() — там вы можете увидеть этот код:

if (!$option) {
$key = (int)$product_id;
} else {
$key = (int)$product_id . ':' . base64_encode(serialize($option));
}

Надеюсь, теперь вам понятно 😉 (если нет, спросите).

1

Другие решения

Спасибо @shadyyx за совет о том, что такое сериализованная информация.

Теперь, поскольку элемент, который я хочу удалить из корзины, всегда является одним и тем же элементом, и я знаю, каким будет идентификатор продукта, я могу просто проверить, что хранится в сеансе в массиве корзины. Каждый элемент находится в этом массиве со своим идентификатором продукта и закодированными параметрами.

Теперь зациклите тележку в поиске идентификатора продукта, а затем удалите его из корзины с кодом Ajax, упомянутым в моем исходном посте.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector