Avisos
Vaciar todo

Problema con mail_html_question  

 
Denver
 Denver
Usuario eminente

Buenas tardes,

Con Joomla 2.5 (o el antiguo Virtuemart) tenía 3 archivos modificados:

form.php
mail_confirmed.php
mail_html_question.php

En la ruta /components/com_virtuemart/views/askquestion/tmpl

Estaban modificados de modo que apareciera como condición obligatoria el teléfono, de modo que en form.php puse una nueva etiqueta:

<input type="text" class="validate[required,custom[phone]]" value="phone ?>" name="phone" id="phone" size="30"  validation="required phone"/>
  

Y en mail_html_question.php, que es el archivo a través del cual se envía el mail...


    user['name']) . "
"; echo JText::_('COM_VIRTUEMART_USER_FORM_EMAIL') . " : " . $this->user['email'] . "
"; echo JText::_('COM_VIRTUEMART_SHOPPER_FORM_PHONE') . " : " . $this->phone . "
"; echo $this->comment. "
"; ?>

Ahora bien, parece ser que al actualizar a Joomla 3.0 (imagino que también Virtuemart) ha cambiado un poco la cosa. No hay problema al actualizar form.php ni mail_confirmed.php, pero a la hora de modificar mail_html_question.php no consigo que me aparezca en el e-mail el teléfono. Adjunto captura de cómo lo he intentado hacer, y no funciona.

A la izquierda el antiguo archivo que funcionaba, y a la derecha el nuevo modificado. ¿A alguno se le ocurre alguna idea? ¿Qué estoy haciendo mal?

Gracias.

URL del sitio: Contenido solo visible a usuarios registrados

Citar
Respondido : 02/06/2017 2:38 pm
Jhon
 Jhon
Soporte CMS Webempresa Moderator

Hola

Envía mejor los archivos, puedes comprimirlo en formato .zip y enviarlo para ver el código completo.
De manera general, por lo que veo sería crear nuevamente el control, ya que veo que estas colocandolo incorrectamente como parte de otro campo.

Saludos.

ResponderCitar
Respondido : 02/06/2017 8:43 pm

Cursos Gratuitos WordPress

Denver
 Denver
Usuario eminente

Adjunto los originales y las modificaciones.

ResponderCitar
Respondido : 05/06/2017 3:05 pm
Jhon
 Jhon
Soporte CMS Webempresa Moderator

Hola

En tu archivo de formulario modificado prueba usar:

$this->user->phone

En lugar de :

$this->phone

Saludos.

ResponderCitar
Respondido : 05/06/2017 11:48 pm

wpdoctor-revisa-la-salud-de-tu-wordpress

Denver
 Denver
Usuario eminente

Nada, lo he intentado pero no funciona.

ResponderCitar
Respondido : 06/06/2017 12:43 pm
Rafael
 Rafael
Miembro Moderator

Hola Denver,

Veo que este tema ya se ha tratado en el foro oficial de VirtueMart para la versión 3, te propongo que eches un vistazo a las dos soluciones se ofrecen y revisa si con ello se corrige el problema para mostrar el teléfono. Luego solo tendrás que requerirlo poniendo el atributo correspondiente:

https://forum.virtuemart.net/index.php?topic=135176.0

Recuerda que desde foro, no damos asistencia a programación tal y como pone en la cabecera

¡Gracias!

ResponderCitar
Respondido : 06/06/2017 1:35 pm

Gestor de Contraseñas - VPN Conexión Segura - Gestor 2FA (Segundo Factor de Autenticación

Denver
 Denver
Usuario eminente

Ufff pues sí mira, tenías razón Rafael, ahí salía todo.
Mira que me he mirado como 2.000 foros y ese hilo no lo he encontrado por ningún lado.

Voy a intentar ponérselo fácil al siguiente que llegue, y pongo las modificaciones que me han servido. Probablemente tras cada actualización de VM haya que hacerlo de nuevo, porque yo he modificado el core directamente; porque mi plantilla (Helena) no tiene carpeta html/com_virtuemart/askquestion/...

1. Cambiar en el archivo /public_html/components/com_virtuemart/views/askquestion/view.html.php lo que está en negrita:

function renderMailLayout () {

$this->setLayout ('mail_html_question');
$this->comment = vRequest::getString ('comment');
$this->phone = vRequest::getString ('phone');

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

2. Cambiar en el archivo /public_html/components/com_virtuemart/views/askquestion/tmpl/form.php lo que está en negrita, ponerlo después del

de ('COM_VIRTUEMART_USER_FORM_EMAIL'):

<input type="text" class="validate[required,minSize[8],maxSize[15]]" value="phone ? $this->phone : $askQuestionData['phone'] ?>" name="phone" id="name" size="30" validation="required phone"/>

3. Cambiar en el archivo /public_html/components/com_virtuemart/views/askquestion/tmpl/mail_html_question.php lo que está en negrita:

user->name, $this->user->email); ?>

phone; ?>

comment; ?>

4. Cambiar en el archivo /public_html/components/com_virtuemart/views/askquestion/tmpl/mail_raw_question.php lo que está en negrita:

vendor->vendor_store_name) . "n" . "n";
echo vmText::_('COM_VIRTUEMART_QUESTION_ABOUT') . ' '. $this->product->product_name;
if ($this->product->product_sku) echo vmText::_('COM_VIRTUEMART_PRODUCT_SKU').' '.$this->product->product_sku .')' ;
echo "n" . "n";
echo vmText::sprintf('COM_VIRTUEMART_QUESTION_MAIL_FROM', $this->user->name, $this->user->email) . "n";
echo $this->phone. "n";
echo $this->comment. "n";

ResponderCitar
Respondido : 06/06/2017 6:53 pm
Jhon
 Jhon
Soporte CMS Webempresa Moderator

Hola Denver

Que bueno que lo solucionaste.

Gracias por el aporte.

Saludos.

ResponderCitar
Respondido : 06/06/2017 8:30 pm