VirtueMart Forum

VirtueMart 2 + 3 + 4 => Templating & Layouts => Topic started by: mikidudle on April 20, 2018, 01:06:29 AM

Title: AskQuestion - Add Fields - Help!
Post by: mikidudle on April 20, 2018, 01:06:29 AM
Hello.  Please forgive me - I am experiencing some deep frustration around this topic.  I'm so confused and I really could use some help.

I am running Joomla! 3.8.7 and Virturemart 3.2.14
I am using the Protostar template
I am using overrides and have successfully copied the askquestion files to home-root/templates/html/com_virtuemart/askquestion and they function fine as long as I put all the files under the askquestion folder and remove the tmpl folder.
I am using OVERRIDE variable that equals 'Your Phone Number' for the label portion of the text box.

I have followed to the letter many suggestions concerning this topic, including: "Add custom field (Phone Number) to 'Ask A Question' form - VirtueMart 3 by User SAWebCo"  The results are that the form does not send data to the sent email.
For two weeks my customer waits. I can see phone (and even address) field when I create them for the form but they never transfer to the email.
I have attached the 4 files that concern this process.  Can anyone tell me what I am doing wrong? 
Thank you so much - in advance.
Mike
Title: Re: AskQuestion - Add Fields - Help!
Post by: StefanSTS on April 20, 2018, 11:42:41 AM
Hi,

I did that for a customer once.

I added a core override for the view.html.php of askquestion view. Find the section that looks similar and add all the stuff with $phonenumber.

$this->user = JFactory::getUser ();
if (empty($this->user->id)) {
   $fromMail = vRequest::getEmail ('email'); //is sanitized then
   $fromName = vRequest::getVar ('name', ''); //is sanitized then
   $phonenumber = vRequest::getVar ('phone', '');
   //$fromMail = str_replace (array('\'', '"', ',', '%', '*', '/', '\\', '?', '^', '`', '{', '}', '|', '~'), array(''), $fromMail);
   $fromName = str_replace (array('\'', '"', ',', '%', '*', '/', '\\', '?', '^', '`', '{', '}', '|', '~'), array(''), $fromName);
   $phonenumber = str_replace (array('\'', '"', ',', '%', '*', '/', '\\', '?', '^', '`', '{', '}', '|', '~'), array(''), $phonenumber);
   $this->user->email = $fromMail;
   $this->user->name = $fromName;
   $this->user->phone = $phonenumber;
}

Hope it helps
Stefan
Title: Re: AskQuestion - Add Fields - Help!
Post by: mikidudle on April 27, 2018, 00:08:36 AM
Thanks Stefan,
This is a little different from what I was doing and while it wasn't rejected it did not in fact make the phone number appear in the email.
I am at such a loss. 
I've tried to use the variable 'phone', 'phonenumber' (as you did), and also tried $this->phone as well as $this->user->phone and variations on that theme.
Any other ideas?
Title: Re: AskQuestion - Add Fields - Help!
Post by: StefanSTS on April 27, 2018, 07:18:43 AM
Hi Mike,

I thought you might have changed the form.php for the askquestion view already.

Just find the part that looks like the following and add the TR with the phone:


<table class="askform">
<tr>
<td><label for="name"><?php echo vmText::_('COM_VIRTUEMART_USER_FORM_NAME')  ?> : </label></td>
<td><input type="text" class="validate[required,minSize[3],maxSize[64]]" value="<?php echo $this->user->name $this->user->name $sessData['name'?>" name="name" id="name" size="30"  validation="required name"/></td>
</tr>
<tr>
<td><label for="email"><?php echo vmText::_('COM_VIRTUEMART_USER_FORM_EMAIL')  ?> : </label></td>
<td><input type="text" class="validate[required,custom[email]]" value="<?php echo $this->user->email $this->user->email $sessData['email'?>" name="email" id="email" size="30"  validation="required email"/></td>
</tr>
<tr>
<td><label for="phone"><?php echo vmText::_('COM_VIRTUEMART_USER_FORM_PHONE')  ?> : </label></td>
<td><input type="text" class="validate[required,custom[phone]]" value="<?php echo $this->user->phone $this->user->phone $sessData['phone'?>" name="phone" id="phone" size="30"  validation="required phone"/></td>
</tr>
</table>


Hope that helps
Stefan