Hola buenas;
Tengo una web en Wordpress en la cual tengo un formulario de contacto.
Tengo que añadir unos campos a un formulario, el cual hasta el momento solo tenía 3, nombre, email y mensaje (ahora tendrá además empresa y teléfono)
En el formulario ya he añadido los input pero en el archivo post.php que es el que procesa el formulario no logro que lleguen al correo esos nuevos campos. No soy ningún experto en PHP así que me imagino que será algo evidente pero llevo un tiempo mirándolo y la verdad es que no soy capaz.
Os pongo el código del archivo post.php:
Código PHP:
<?php
// CONFIGURATION --------------------------------------------------------------
// This is the email where the contact mails will be sent to.
// In WordPress Edition, it will be done via the theme admin. You don't need to modify this file under WP Edition.
$config['recipient'] = isset($_POST['c_email']) ? trim($_POST['c_email']) : '';
// This is the subject line for contact emails.
// The variable %name% will be replaced with the name of the sender.
$config['subject'] = 'Nuevo mensaje desde la web de: %name%';
// These are the messages displayed in case of form errors.
$config['errors'] = array
(
'no_name' => 'El nombre está vacío',
'no_email' => 'El e-mail está vaciío',
'invalid_email' => 'Dirección de e-mail no válida',
'no_message' => 'El mensaje está vacío',
);
// END OF CONFIGURATION -------------------------------------------------------
// Ignore non-POST requests
if ( ! $_POST)
exit('Por favor, vuelve a la raíz del sitio web.');
// Was this an AJAX request or not?
$ajax = (isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest');
// Set the correct HTTP headers
header('Content-Type: text/'.($ajax ? 'plain' : 'html').'; charset=utf-8');
// Extract and trim contactform values
$name = isset($_POST['name']) ? trim($_POST['name']) : '';
$email = isset($_POST['email']) ? trim($_POST['email']) : '';
$empresa = isset($_POST['empresa']) ? trim($_POST['empresa']) : '';
$telefono = isset($_POST['telefono']) ? trim($_POST['telefono']) : '';
$message = isset($_POST['message']) ? trim($_POST['message']) : '';
// Take care of magic quotes if needed (you really should have them disabled)
if (get_magic_quotes_gpc())
{
$name = stripslashes($name);
$email = stripslashes($email);
$empresa = stripslashes($empresa);
$telefono = stripslashes($telefono);
$message = stripslashes($message);
}
// Initialize the errors array which will also be sent back as a JSON object
$errors = NULL;
// Validate name
if ($name == '' || strpos($name, "\r") || strpos($name, "\n"))
{
$errors['name'] = $config['errors']['no_name'];
}
// Validate email
if ($email == '')
{
$errors['email'] = $config['errors']['no_email'];
}
elseif ( ! preg_match('/^[-_a-z0-9\'+*$^&%=~!?{}]++(?:\.[-_a-z0-9\'+*$^&%=~!?{}]+)*+@(?:(?![-.])[-a-z0-9.]+(?<![-.])\.[a-z]{2,6}|\d{1,3}(?:\.\d{1,3}){3})(?::\d++)?$/iD', $email))
{
$errors['email'] = $config['errors']['invalid_email'];
}
// Validate message
if ($message == '')
{
$errors['message'] = $config['errors']['no_message'];
}
// Validation succeeded
if (empty($errors))
{
// Prepare subject line
$subject = str_replace('%name%', $name, $config['subject']);
// Additional mail headers
$headers = 'Content-Type: text/plain; charset=utf-8'."\r\n";
$headers .= 'From: '.$email;
// Send the mail
if ( ! mail($config['recipient'], $subject, $message, $headers))
{
$errors['server'] = 'Parece que existen problemas técnicos con nuestro servidor. Por favor, vuelve a probar pasados unos minutos. '.
'Si lo prefieres, puedes enviarnos un mail a '.$config['recipient'].'.Muchas gracias.';
}
}
if ($ajax)
{
// Output the possible errors as a JSON object
echo json_encode($errors);
}
else
{
// Show a simple HTML feedback message in case of non-javascript support
if (empty($errors))
{
echo '<h4>Muchas gracias!</h4>';
echo '<p>Tu mensaje ha sido enviado con éxito. Nos pondremos en contacto tan pronto nos sea posible.</p>';
}
else
{
echo '<h4>Oops!</h4>';
echo '<p>Por favor, vuelve atrás y comprueba los siguientes errores:</p>';
echo '<ul><li>';
echo implode('</li><li>', $errors);
echo '</li></ul>';
}
}
?>
El problema es que únicamente me llega al correo el nombre, el mail, y en el cuerpo del mail únicamente el mensaje, cuando lo que quiero que me llegue además de éste es la empresa y el teléfono.
Espero haberme explicado bien.
Muchas gracias y un saludo!
mnieto