Настройка Уведомить меня в Virtuemart

В этой статье подробнее разберем пункт Показывать 'Известить меня' вместо кнопки 'Добавить в корзину'.

При активации этой опции у товаров, которых нет в наличии, вместо Купить будет показываться кнопка Уведомить меня.

Код кнопки находится в файле /components/com_virtuemart/sublayouts/addtocartbar.php

<a href="/<?php echo JRoute::_ ('index.php?option=com_virtuemart&view=productdetails&layout=notify&virtuemart_product_id=' . $product->virtuemart_product_id); ?>" class="notify"><?php echo vmText::_ ('COM_VIRTUEMART_CART_NOTIFY') ?></a>

 Изменить текст Уведомить меня можно добавив новую языковую константу

COM_VIRTUEMART_CART_NOTIFY

 в Расширения > Менеджер языков > Переопределение констант.

При клике по ссылке форма для ввода почты для уведомлений открывается на новой странице. Это не очень удобно. Для открытия формы по всплывающем окне в файле /components/com_virtuemart/sublayouts/addtocartbar.php заменим

<a href="/<?php echo JRoute::_ ('index.php?option=com_virtuemart&view=productdetails&layout=notify&virtuemart_product_id=' . $product->virtuemart_product_id); ?>" class="notify"><?php echo vmText::_ ('COM_VIRTUEMART_CART_NOTIFY') ?></a>

на

<a href="/<?php echo JRoute::_ ('index.php?option=com_virtuemart&view=productdetails&layout=notify&virtuemart_product_id=' . $product->virtuemart_product_id.'&tmpl=component'); ?>" class="notify ask-a-question"><?php echo vmText::_ ('COM_VIRTUEMART_CART_NOTIFY') ?></a>

Теперь форма будет показываться во всплывающем окне.

Отредактировать шаблон уведомления можно в файле /components/com_virtuemart/views/productdetails/tmpl/notify.php

Чтобы при успешной отправке данных из формы просто закрывать всплывающее окно в файле /components/com_virtuemart/views/productdetails/tmpl/notify.php заменим

<form class="form-validate" method="post" action="<?php echo JRoute::_('index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id='.$this->product->virtuemart_product_id.'&virtuemart_category_id='.$this->product->virtuemart_category_id, FALSE) ; ?>" name="notifyform" id="notifyform">

на

<form class="form-validate" method="post" action="" name="notifyform" id="notifyform">

и в конец указанного файла добавим

<script>
jQuery('.form-validate').submit(function() {
    parent.jQuery.fancybox.close();
});
</script>

 

Плагин Notify Product for VM

Virtuemart не отправляет уведомления администратору о том, что на сайте был запрос на уведомление о товаре. Исправить это можно с помощью плагина Notify Product for VM. Разработчик прекратил поддержку плагина, но на vm 3.4.2 плагин по-прежнему работает.

Ссылка на прямое скачивание на случай если плагин пропадет с сайта virtuemart.

Для русификации скопируйте этот файл в папку /administrator/language/ru-RU/.

Изменить шаблон писем с уведомлением можно в файле /components/com_virtuemart/views/productdetails/tmpl/mail_html_notify.php, либо в файле /components/com_virtuemart/views/productdetails/tmpl/mail_raw_notify.php если для email уведомлений в настройках выбран текстовый формат.

И последнее - чтобы после обновления virtuemart не потерять все внесенные изменения, обязательно переопределите все исправленные файлы в папке с шаблоном /templates/имя_шаблона/html/com_virtuemart/productdetails/.

Оригинал статьи: https://virtuemart.su/nastrojka-uvedomit-menya-v-virtuemart/