Author Topic: Añadir campo al formulario -realizar consulta sobre producto-  (Read 1884 times)

dyd

  • Beginner
  • *
  • Posts: 8
Añadir campo al formulario -realizar consulta sobre producto-
« on: September 21, 2012, 11:31:45 am »
Hola,

Utilizo Virtuemart 1.1.8

He insertado un nuevo campo (teléfono) en el formulario de consulta sobre un producto pero no consigo que funcione!!!
El correo que envía el cliente a través del formulario me llega perfectamente, pero no me muestra el teléfono que el usuario inserta en el nuevo campo creado.

Explico paso a paso las modificaciones que he realizado por si observas algún error y me ayudas a solucionar el problemilla.

Los archivos que he modificado son:

../components/com_virtuemart/themes/default/templates/pages/shop.ask.tpl.php
../administrator/components/com_virtuemart/html/shop.ask.php
../components/com_virtuemart/themes/default/templates/order_emails/enquiry-email.tpl.php
../administrator/components/com_virtuemart/classes/ps_communication.php
../administrator/components/com_virtuemart/languages/shop/spanish.php


---------------------------------------------------------------

Os explico lo que he hecho:

Modifico el archivo ../administrator/components/com_virtuemart/languages/shop/spanish.php

En este archivo añado 'TELEFONO_PROMPT' => 'Tu Teléfono'
Code: [Select]
'VM_RECOVER_CART_REPLACE' => 'Replace Cart with Saved Cart',
 'VM_RECOVER_CART_MERGE' => 'Add Saved Cart to Current Cart',
 'VM_RECOVER_CART_DELETE' => 'Delete Saved Cart',
 'VM_EMPTY_YOUR_CART_TIP' => 'Clear the cart of all contents',
 'VM_SAVED_CART_TITLE' => 'Saved Cart',
 'TELEFONO_PROMPT' => 'Tu Teléfono'
); $VM_LANG->initModule( 'shop', $langvars );
?>

El siguiente archivo que modifico es
../components/com_virtuemart/themes/default/templates/pages/shop.ask.tpl.php

De esta forma añado el campo (Tu teléfono) que me interesa aparezca en el formulario de consulta del producto tal y como vemos a continuación

Code: [Select]
<form action="<?php echo $mm_action_url ?>index.php" method="post" name="emailForm" id="emailForm">
 <label for="contact_name"><?php echo $VM_LANG->_('NAME_PROMPT'?></label>
 <br /><input type="text" name="name" id="contact_name" size="80" value="<?php echo $name ?>"><br /><br />
 <label for="contact_mail"><?php echo $VM_LANG->_('EMAIL_PROMPT'?></label>
 <br /><input type="text" id="contact_mail" name="email" size="80" label="Your email" value="<?php echo $email ?>"><br /><br />
 <label for="telefono"><?php echo $VM_LANG->_('TELEFONO_PROMPT'?></label>
 <br /><input type="text" id="telefono" name="telefono" size="80" value="<?php echo $telefono ?>"><br /><br />
 <label for="contact_text"><?php echo $VM_LANG->_('MESSAGE_PROMPT'?></label><br />
 <textarea rows="10" cols="60" name="text" id="contact_text"><?php echo utf8_decode($subject?></textarea><br /><br />

Ahora modifico en archivo ../administrator/components/com_virtuemart/html/shop.ask.php

Añado alrededor de la línea 80 el siguiente código:
'telefono' => $telefono,

Este es el resultado con la inclusión del código:
Code: [Select]
$tpl->set_vars(array('product_id' => $product_id,
 'product_sku' => $product_sku,
 'category_id' => $category_id,
 'product_link' => $product_link,
 'set' => $set,
 'name' => $name,
 'email' => $email,
 'flypage' => $flypage,
 'subject' => $subject,
 'db_product' => $db_product,
 'telefono' => $telefono
 )
 );

El siguiente archivo que modifico es
../administrator/components/com_virtuemart/classes/ps_communication.php

Le añado lo siguiente sobre la línea 156:
$telefono = $d["telefono"];
Code: [Select]
$dbv = new ps_DB;
 $qt = "SELECT * from #__{vm}_vendor ";
 $qt .= "WHERE vendor_id = '".$_SESSION['ps_vendor_id']."'";
 $dbv->query($qt);
 $dbv->next_record();
 $vendor_email = $dbv->f("contact_email");
 $shopper_email = $d["email"];
 $shopper_name = $d["name"];
 $telefono = $d["telefono"];
 

Justo después se encuentra la línea
Code: [Select]
$subject_msg = vmRequest::getVar( 'text', '', 'post' );
que modifico por
Code: [Select]
$subject_msg = vmRequest::getVar( 'text', '', 'post', 'telefono' );
Por último añado una línea más ('telefono' => $telefono) (alrededor de la línea 205)
Code: [Select]
$template->set_vars( array(
 'vendorname' => $dbv->f("vendor_name"),
 'subject' => nl2br($subject_msg),
 'contact_name' => $shopper_name,
 'contact_email' => $shopper_email,
 'product_name' => $db->f("product_name"),
 'product_s_description' => $db->f("product_s_desc"),
 'product_url' =>$product_url,
 'product_sku' =>$db->f("product_sku"),
 'telefono' => $telefono
 ));

Ahora para que se "impriman" los datos que me envía el formulario virtuemart con la consulta del cliente modifico el fichero ../components/com_virtuemart/themes/default/templates/order_emails/enquiry-email.tpl.php

Code: [Select]
<td colspan="2">
 <?php echo "E-Mail de Contacto: " ?> <a href="mailto:<?php echo $contact_email ?> "><?php echo $contact_email ?></a><?php echo "<br />"?>
 <?php echo "Tu Teléfono: " ?>
 <?php echo $telefono ?>

 </td>


Con estas modificaciones tendría que estar funcionando. En la versión 1.1.5 de Virtuemart funciona perfectamente.

No se si en la versión 1.1.8 (la que utilizo) ha cambiado algún archivo que no haya modificado y este sea el motivo por el cual no funciona.

Explicar que el correo lo recibo con el texto (Tu teléfono) debajo del mensaje del cliente pero lo que no me muestra es el número de teléfono insertado por el cliente que formula la pregunta sobre el producto.

Gracias por tu ayuda...