пятница, 5 июня 2020 г.

Когда товар VM недоступен этой группе покупателей

По-умолчанию в VirtueMart, если товар недоступен текущему посетителю с учётом его Группы/Групп Покупателей, тогда вместо карточки товара посетитель увидит страницу 404 (если в настройках VM выключена обработка 404). Где переделать такое поведение?

Например, когда надо вместо вывода страницы с ошибкой 404 сделать редирект 301 на Главную или раздел Каталог и при этом показать нужное системное сообщение.

Модифицируется это в файле: components/com_virtuemart/views/productdetails/view.html.php

Делаем свою обработку вместо:
throw new RuntimeException('VirtueMart product not found.', 404);

Например, обработка может быть в таком духе:

if (in_array(272, $root_cats) && in_array(6, $product1->shoppergroups)) {
    $host = 'gnevyshev.ru';
}
$link = '//'.$host.$sef_link;

$app->getMessageQueue(true); // for clear
$app->enqueueMessage(vmText::_('...'.$link.'...'));

// РЕДИРЕКТ на Каталог
$app->redirect(JRoute::_('index.php?Itemid=128'), 301);

Комментариев нет:

Отправка комментария