Photonica Posted April 25, 2013 Share Posted April 25, 2013 Buenas tardes. Por más que busco y rebusco no encuentro con la solución a mi problema, necesito tener en mi tienda 2 formularios distintos, para dos servicios distintos. Uno ya lo tengo, que es el que viene por defecto, pero el otro no. Mi idea es colocar ese formulario en una página CMS, pero estás páginas no aceptan PHP y ésto es fundamental para que el formulario funcione. También he visto que existe un módulo de pago que te permite crear varios formularios, pero la verdad, preferiría algo gratis. ¿Alguna idea chicos? Link to comment Share on other sites More sharing options...
Photonica Posted April 25, 2013 Author Share Posted April 25, 2013 Que va, los formularios deben estar en páginas diferentes, ya que cada uno es para un servicio diferente. Link to comment Share on other sites More sharing options...
gazapko Posted April 25, 2013 Share Posted April 25, 2013 (edited) Que va, los formularios deben estar en páginas diferentes, ya que cada uno es para un servicio diferente. En una versión 1.4.x de Prestashop (para 1.5.x debe ser casi igual!) lo que yo hice fué añadir un formulario de contacto en la ficha de Producto para contactar vía "Servicio Cliente" y pedir info sobre ese producto de forma rápida, a ver si te sirve: product.tpl: <form method='POST' action=''> <input type='hidden' name='contact_form' value='formulario'> <input type='hidden' name='contact_id_product' value='{$product->id|intval}'> <input type='hidden' name='contact_product' value="Ref: {$product->reference|escape:'htmlall':'UTF-8'} - {$product->name|escape:'htmlall':'UTF-8'}"> <input type='hidden' name='contact_url' value="http://{$smarty.server.SERVER_NAME}{$smarty.server.REQUEST_URI}"> <table border="0" id="contacto"> <tr> <td class="label">{l s='Nombre'}</td><td class="formulari"><input type='text' name='contact_name' {if $logged} value="{$cookie->customer_firstname} {$cookie->customer_lastname}" readonly="readonly" {/if} /></td> </tr> <tr> <td class="label">{l s='E-mail'}</td><td class="formulari"><input type='text' name='contact_email' {if $logged} value="{$cookie->email}" readonly="readonly" {/if} /></td> </tr> <tr> <td class="label">{l s='CP'}</td><td class="formulari"><input type='text' name='contact_cp' value="" /></td> </tr> <tr> <td class="label">{l s='Mensaje'}</td><td class="formulari"><textarea cols="20" rows="5" name="contact_message">{l s='Acerca del producto'} {$product->reference|escape:'htmlall':'UTF-8'} - {$product->name|escape:'htmlall':'UTF-8'}</textarea> </td> </tr> <tr> <td colspan="2"> </td> </tr> <tr> <td colspan="2" align="center"><input type='submit' value="{l s='CONTACTAR'}" class="button" /></td> </tr> <tr> <td colspan="2" align="center"> <span class="messageko">{$contact_message_ko}</span> <span class="messageok">{$contact_message_ok|escape:'htmlall':'UTF-8'}</span> </td> </tr> </table> </form> ProductController.php (dentro de DisplayContent, antes de mostrar product.tpl): Tools::safePostVars(); $contact_form = Tools::getValue("contact_form"); $contact_id_product = Tools::getValue("contact_id_product"); $contact_url = Tools::getValue("contact_url"); $contact_cp = Tools::getValue("contact_cp"); $contact_product = Tools::getValue("contact_product"); $contact_name = Tools::getValue("contact_name"); $contact_email = Tools::getValue("contact_email"); $contact_message = Tools::getValue("contact_message"); if ($contact_form == "formulario") { $msg_error = ""; if (!validateCore::isEmail($contact_email)) $msg_error .= "Email incorrecto! <br/>"; self::$smarty->assign('contact_message_ko', $msg_error); } if ($contact_form == "formulario" && $msg_error == "") { $ct = new CustomerThread(); $ct->id_product = $contact_id_product; $ct->id_contact = 1; // id contacto !!! $ct->id_lang = (int)self::$cookie->id_lang; $ct->email = $contact_email; $ct->status = 'open'; $ct->token = Tools::passwdGen(12); $ct->add(); $msg = " <b>Nombre:</b> ".$contact_name." <br/> <b>Email:</b> ".$contact_email." <br/> <b>CP:</b> : ".$contact_cp." <br/> <b>Producto:</b> : ".$contact_product."<br/> <b>URL:</b> : ".$contact_url."<br/> <b>Mensaje:</b> ".$contact_message." "; $cm = new CustomerMessage(); $cm->id_customer_thread = $ct->id; $cm->message = htmlentities($msg, ENT_COMPAT, 'UTF-8'); $cm->ip_address = ip2long($_SERVER['REMOTE_ADDR']); $cm->user_agent = $_SERVER['HTTP_USER_AGENT']; $cm->add(); $msg_ok = 'Formulario enviado correctamente!'; self::$smarty->assign('contact_message_ok', $msg_ok); } Con esto debería ayudarte a lo que buscas, es importante que cambies el $ct->id_contact por el contacto (o servicio) que hayas creado para lo que necesitas. Si por el contrario, buscas que te llegue por e-mail es tan sencillo como buscar la función "Send" en la clase "Mail" y añadirla en el mismo sitio añadiendo lo que quieras enviar :-) Edited April 25, 2013 by gazapko (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts