Настройка Уведомить меня в 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/