Добавление произвольного поля в форму «Задать вопрос по этому товару» в Virtuemart 2/3

php-joomlaВ Virtuemart откровенно говоря много проблемных мест, и одно такое место — это невозможность управления полями формы «Задать вопрос по этому товару». Точнее такая возможность есть, но для этого нам необходимо внести некоторые изменения в код нашего шаблона, а также, небольшие изменения в ядро Virtuemart.Я приведу пример по добавлению поля «Телефон» в форму вопроса о товаре Virtuemart 3. Начнём!

Копируем файл form.php и mail_html_question.php из components/com_virtuemart/views/askquestion в templates/вашшаблон/html/com_virtuemart/askquestion (если таких там ещё нет)

Добавляем необходимый intput в форму:

<div class="form-group">
<label><?php echo JText::_('COM_VIRTUEMART_USER_FORM_NAME')  ?> : </label>
<input type="text" class="validate[required,minSize[3],maxSize[64]]" value="<?php echo $this->user->name ? $this->user->name : $askQuestionData['name'] ?>" name="name" id="name" size="30"  validation="required name"/>
</div>
<div class="form-group"> <!--Добавляем поле с телефоном -->
<label><?php echo JText::_('COM_VIRTUEMART_USER_FORM_PHONE')  ?> : </label>
<input type="text" class="validate[required,minSize[7],maxSize[64]]" value="<?php echo $this->phone ?>" name="phone" id="phone" size="30"  validation="required phone"/>
</div>
<div class="form-group">
<label><?php echo JText::_('COM_VIRTUEMART_USER_FORM_EMAIL')  ?> : </label>
<input type="text" class="validate[required,custom[email]]" value="<?php echo $this->user->email ? $this->user->email : $askQuestionData['email'] ?>" name="email" id="email" size="30"  validation="required email"/>
</div>

Далее в файле mail_html_question.php, который отвечает за формирование письма, которое получает администратор, указываем в нужном месте:

<?php echo $this->phone ?>

Лично я вставил так:

<td align="center" style="border-bottom : 1px solid #dad8d8;">
<span style="font-size: 14px; font-weight: bold"><?php echo vmText::sprintf('Запрос цены,', $this->user->name, $this->user->email); ?></span>
<br /><br /><?php echo $this->comment; ?><br /><br />
<span class="phone-question">Телефон: <strong><?php echo $this->phone ?></strong></div>
</td>

На третей версии Virtuemart (я думаю на второй тоже), пришлось дописать строчку в файл /components/com_virtuemart/views/askquestion/view.html.php

Примерно: 165 строка, сразу после: $this->user->name = $fromName;

$this->phone = JRequest::getString ('phone');

askПодготовлено по материалам: http://forum.virtuemart.net/index.php?topic=104562.0


Комментариев: 2 на Добавление произвольного поля в форму «Задать вопрос по этому товару» в Virtuemart 2/3

Добрый день, спасибо все что и искал.
Но есть еще одна проблема при отправке выдает сообщение
«Сообщение
Function disabled»
Не подскажите в чем может быть проблема?

Подскажите пожалуйста, а где сделать изменения, что бы добавленное поле телефон вставлялось в уведомление по электронной почте? Благодарю!

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