PrestaShop trae un formulario de contacto por defecto, en el cual nosotros podemos modificar y añadir o modificar cosas, eso si tocando los correspondientes archivos. En este caso lo que queremos hacer es crear otro formulario aparte, por ejemplo para realizar una encuesta a nuestros clientes, para una devolución, para . . . . . sus usos pueden ser muy variados.
En la entrada «Enviar formularios con formmail.php» vimos como podíamos crear un formulario para que se enviase, en este caso nos vamos a basar en esa entrada para crearle. También podríamos usar servicios externos como formsite o foxiform.

Lo primero que tenemos que hacer es: en el menú Preferencias->CMS nos crearemos dos nuevos CMS uno que llamaremos formulario y otro que llamaremos contactoenviado, en el CMS formulario será donde incluyamos nuestro formulario, una vez estemos en el nuevo CMS le damos al botón de ver código y ponemos un código similar al siguiente para que funcione el formulario.
<form name="nombre_formulario" action="/formulario/formmail.php" method="post">
<input type="hidden" name="subject" value="Asunto del mensaje"/>
<input type="hidden" name="recipients" value="correo_propietario@dominio.com"/>
<input type="hidden" name="good_url" value="/content/16-contactoenviado"/>
<p>
<label for="textfield">Nombre:</label>
<input type="text" name="textfield" id="textfield">
<label for="textfield2">Apellidos:</label>
<input type="text" name="textfield2" id="textfield2">
</p>
<p>
<label for="email">Email:</label>
<input type="email" name="email" id="email">
<label for="tel">Telefono:</label>
<input type="tel" name="tel" id="tel">
</p>
<p>
<label for="datetime">Fecha:</label>
<input type="datetime" name="datetime" id="datetime">
</p>
<p>
<label for="textarea">Comentarios:</label>
<textarea name="textarea" id="textarea" cols="45" rows="5"></textarea>
</p>
<p>
<input type="submit" name="submit" id="submit" value="Enviar">
</p>
</form>Con este código creamos el formulario de la imagen superior. En el campo good_url tenemos que poner «/content/id_cms-contactoenviado» en nuestro caso es «/content/16-contactoenviado», subimos el formmail.php a la carpeta que nos hemos creado en la raíz de nuestro sitio llamada formulario y le configuramos según vimos en la entrada «Enviar formularios con formmail.php» y con esto tendríamos funcionando nuestro formulario en PrestaShop.
En el valor de good_url tenemos que poner la otra hoja CMS que hemos creado, si tenemos activado las URL amigables, entonces ponemos /content/ numero de id del CMS, guion y la url amigable, si nos fijamos en la imagen nuestro id es el 16 y la URL amigable es contacto enviado, con lo que nos quedaria «/content/16-contactoenviado» sin comillas.










Hay un error en el código, hay dos actions y tiene que ser method=»post».
Gracias por el aviso.
He hecho todo tal y como comentas en ambas páginas, pero es que directamente no admite el html del form en el código. Cuando le doy a guardar la página CMS me dice «The content field is invalid». He probado a poner un y tampoco me deja guardar, me saca el mismo error.
¿Alguna sugerencia?
Gracias de antemano
debes activar la opción SI, en preferencias – configuración, Permite iframes en los campos HTML
He puesto un input a mano
Hola, si quiero que los campos sean obligatorios, lo tengo que hacer en el archivo formmail.php o dentor del form?
Hay un campo oculto que puedes poner que es name=»required» para los campos obligatorios, lo unico que te da un mensaje en ingles, en este enlace tienes los campos.
https://www.tectite.com/fmdoc/creating_forms.php
Gracias por la respuesta. Pero esa información tienen que ir dentro del archivo formmail.php, no?
Ya lo resolví. No hay una forma que ese mensaje aparezca abajo o un pop up?
Hola, estoy intentando ahcerlo, pero no se exactamente donde tengo que poner el archivo php, es a través del administrador de prestashop o através de Filezilla?
se hace con filezilla en la carpeta que te pone en el form action=… o sea en la carpeta /formulario/ en el ejemplo