Добавление/удаление товара из «Сравнения» или «Избранного» повторным нажатием на кнопку

Всем привет

Стараюсь поменять логику работы кнопок «Избранное» и «Сравнение». Нужно, чтобы на странице товара можно было добавить и убрать товар из списка избранного или сравнения нажатием на одну и ту же кнопку.

Первый клик: товар добавляется
Второй клик: товар убирается

Старался вытащить логику «удаления товара» из кнопки удаления на странице избранного/сравнения, но на странице товара подобная логика не работает.

Кто-нибудь реализовывал похожее? Или вопрос к знатокам — куда смотреть?

В пре контроллере при попытке добавления в сравнение/избранное смотрите не добавлен ли уже товар в список сравниваемых/отложенных.

Если добавлен – удаляете и прерываете каскад контроллеров (+ставите нотификацию типа "товар удалён из сравнения).

Там не нужно ни js ни шаблноов. Только немного php.

1 лайк

frontend контроллер wishlist:

if (defined('AJAX_REQUEST')) {
	if (!empty($added_products)) {
		...
	} else {
		if ($product_ids) {
			foreach($product_ids as $wish_id) {
				fn_delete_wishlist_product($wishlist, $wish_id);
			}
			fn_save_cart_content($wishlist, $auth['user_id'], 'W');
			fn_set_notification('W', __('notice'), "Товар удалён из списка избранного");
		}                
	}