Переход сразу в товар если он один в категории влияет на фильтр

Привет всем… Я в conrollers -> frontend -> categories.php использую данный код :
if (count($products) == 1) {
$product = reset($products);
fn_redirect(“products.view?product_id=” . $product[‘product_id’]);
}
Он работает, редиректит сразу в товар если он один в категории, однако есть одно Но… это влияет и на фильтры в категории. Если отметить в фильтрах чекбокс с моделью телефона допустим и в этом списке он один то на самой странице ничего не меняется и фильтр не отрабатывает, на другую страницу тоже не переходит, меняется только URL. Подскажите, пожалуйста, как можно доработать код чтобы не влияло на фильтры или чтобы он отрабатывал только на конкретной странице ?

Ну, можно наверное проверить на наличие параметров от фильтров. Но вы уверены, что вообще делаете то что нужно? Как по мне - крайне неочевидное поведение. Я, как пользователь, не только оказываюсь на неожиданной для себя странице, но еще и не получаю важную информацию о том что страница на которую меня перекинуло - не случайная, а единственный товар.

В данной ситуации это правильно и необходимо. У меня есть каталог ремонта помимо каталога товаров


людей будет больше сбивать с толку когда они будут делать лишние клики при двойном выборе одно модели. Сначала на посадочной странице а потом и в каталоге где только одна эта модель… мне необходимо это конкретно для моей категории ремонт

Ну, если надо - добавьте условие по содержимому $_REQUEST.

Через $_REQUEST я могу применить код к запрашиваемой категории…
например if ($_REQUEST[‘category_id’] == ‘325’)
в таком случае мне нужно писать это для всех категорий которым это необходимо… А их там достаточно много и они будут добавляться… я для данно категории использую модуль посадочные страницы… возможно можно как-то задать условие, что если модуль активен то исполнить данное условие? Подскажите, пожалуйста, если знаете… Или может я неправильно использую $_REQUEST… я только начал разбираться во всем этом поэтому познания крайне малы…
Или может можно задать условие если используется шаблон ab__lc_catalog.tpl тогда исполнить… не знаю просто как правильно прописать данное условие…

Например,

if (count($products) == 1 && !defined('AJAX_REQUEST')) {

2 лайка

спасибо) работает.

1 лайк