Soporte » WordPress Avanzado » Problemas no puedo enviar EMAIL con la funcion wp_mail

  • Resuelto alvinluperon

    (@alvinluperon)


    Agradeciendo antemano cualquier tipo de ayuda. necesito enviar los datos de un formulario en una pagina php en wordpress por email. pero no he podido no encuentro que estoy realizando mal asi que le dejo el codigo a ver si me pueden dar una ayuda.

    
    <!--este es el formulario-->
    <form id="datos" method="post">
    <div class="person-information">
    	<h2><?php _e( 'Your Personal Information', 'trav'); ?></h2>
    
    		<div class="col-sm-6 col-md-5">
    			<label><?php _e( 'first name', 'trav'); ?></label>
    			<input type="text" id="first_name" name="first_name" class="input-text full-width" placeholder="" />
    		</div>
    		<div class="col-sm-6 col-md-5">
    			<label><?php _e( 'last name', 'trav'); ?></label>
    			<input type="text" id="last_name" name="last_name" class="input-text full-width" placeholder="" />
    		</div>
    
    		<div class="col-sm-6 col-md-5">
    			<label><?php _e( 'email address', 'trav'); ?></label>
    			<input type="text" id="email" name="email" class="input-text full-width" placeholder="" />
    		</div>
    
    	<div class="row">
    		<div class="col-xs-4">
    			<label><?php _e( 'Punto Encuentro', 'trav'); ?></label>
    			<input type="text" id="puntoencuentro" placeholder="" class="input-text full-width"/>
    		</div>
    		<div class="col-xs-4">
    			<label><?php _e( 'Punto de llegada', 'trav'); ?></label>
    			<input type="text" id="puntodellegada" placeholder="" class="input-text full-width"/>
    		</div>
    		<div class="col-xs-4">
    			<label><?php _e( 'Vuelo', 'trav'); ?></label>
    			<input type="text" id="vuelo" placeholder="" class="input-text full-width"/>
    		</div>
    	</div>
    
    	<div class="row">
    		<div class="col-xs-4">
    			<label><?php _e( 'Linea Aerea', 'trav'); ?></label>
    			<input type="text" id="lineaaerea" placeholder="" class="input-text full-width"/>
    		</div>
    		<div class="col-xs-4">
    			<label><?php _e( 'Hora de llegada', 'trav'); ?></label>
    			<input type="text" id="horadellegada" placeholder="" class="input-text full-width"/>
    		</div>
    		<div class="col-xs-4">
    			<label><?php _e( 'Hora de Salida', 'trav'); ?></label>
    			<input type="text" id="horadesalida" placeholder="" class="input-text full-width"/>
    		</div>
    	</div>
    
    	<div class="form-group row">
    		<div class="col-sm-12 col-md-10">
    			<label><?php _e( 'Credit card (Brand, Number, Expiration Date and Code CVV or any special requirement', 'trav'); ?></label>
    			<textarea name="special_requirements" class="full-width" rows="4"></textarea>
    		</div>
    	</div>
    
    </div>
    <?php do_action( 'trav_booking_form_after' ); ?>
    <hr />
    
    <div class="form-group row confirm-booking-btn">
    	<div class="col-sm-6 col-md-5">
    		<button id="enviardatos" name="enviardatos" type="submit" ><?php _e( "BOOK", "trav" ); ?></button>
    	
    		</button>
    	</div>
    </div>
    </form>
    
    <?php
    //codigo para traer los datos y enviar el mensaje
    
    	if (isset($_POST['enviardatos'])){
    	 	$pfirt=$_POST['first_name'];
    	 	$plastn=$_POST['last_name'];
    	 	$pemail=$_POST['email'];
    		$pencuentro=$_POST['puntoencuentro'];
    		$pllegada=$_POST['puntodellegada'];
    		$pvuelo=$_POST['vuelo'];
    		$plineaaerea=$_POST['lineaaerea'];
    		$phoradellegada=$_POST['horadellegada'];
    		$phoradesalida=$_POST['horadesalida'];
    		$to=array($pemail);
    
    	//aqui el asunto
    	$subject='Datos enviados desde el formulario web';
    	// aqui le envio el mensaje
    	$message.="Nombre:".$pfirt."\nlast_name:".$plastn."\nEmail:".$email."\nPuntoEncuentro:".$pencuentro."\nPuntodellegada:".$pllegada."Vuelo:".$pvuelo."\nLineaAerea:".$plineaaerea."\nHoradellegada:".$phoradellegada."\nHoradeSalida:".$phoradesalida;
     
    	//Filtro para indicar que email debe ser enviado en modo HTML aun no se si funciona
    	add_filter('wp_mail_content_type',create_function('', 'return "text/html";'));
     
    	//Cambiamos el remitente del email que en WordPress por defecto es tu email de admin
            add_filter('wp_mail_from','mqw_email_from');
     
    	function mqw_email_from($content_type) {
    	  return 'alvinluperon@gmail.com';
    	}
        //Por último enviamos el email
    	 wp_mail( $to, $subject, $message);
    	}
    
    ?>
Viendo 2 respuestas - de la 1 a la 2 (de un total de 2)
  • Hola,

    tienes un par de fallos, aunque de por si solo a mi ya me ha funcionado. Antes de nada deberías comprobar que tienes bien configurado el email, sino hay plugins con nombres parecidos a SMTP EMAIL donde te ayudan a configurarlo de forma más sencilla.

    He corregido algunos errores haciendo las pruebas, aún así acaba de repasarlo antes de ponerlo definitivamente, los fallos estaban en algunos nombres de variables y algunos inputs que en vez de ser name=»» lo tenias como id=»», el «name» es lo que marca la variable $_POST.

    Un saludo.

    <form id="datos" method="post">
    <div class="person-information">
    	<h2><?php _e( 'Your Personal Information', 'trav'); ?></h2>
    
    		<div class="col-sm-6 col-md-5">
    			<label><?php _e( 'first name', 'trav'); ?></label>
    			<input type="text" id="first_name" name="first_name" class="input-text full-width" placeholder="" />
    		</div>
    		<div class="col-sm-6 col-md-5">
    			<label><?php _e( 'last name', 'trav'); ?></label>
    			<input type="text" id="last_name" name="last_name" class="input-text full-width" placeholder="" />
    		</div>
    
    		<div class="col-sm-6 col-md-5">
    			<label><?php _e( 'email address', 'trav'); ?></label>
    			<input type="text" id="email" name="email" class="input-text full-width" placeholder="" />
    		</div>
    
    	<div class="row">
    		<div class="col-xs-4">
    			<label><?php _e( 'Punto Encuentro', 'trav'); ?></label>
    			<input type="text" id="puntoencuentro" name="puntoencuentro" placeholder="" class="input-text full-width"/>
    		</div>
    		<div class="col-xs-4">
    			<label><?php _e( 'Punto de llegada', 'trav'); ?></label>
    			<input type="text" id="puntodellegada" name="puntodellegada" placeholder="" class="input-text full-width"/>
    		</div>
    		<div class="col-xs-4">
    			<label><?php _e( 'Vuelo', 'trav'); ?></label>
    			<input type="text" id="vuelo" name="vuelo" placeholder="" class="input-text full-width"/>
    		</div>
    	</div>
    
    	<div class="row">
    		<div class="col-xs-4">
    			<label><?php _e( 'Linea Aerea', 'trav'); ?></label>
    			<input type="text" id="lineaaerea" name="lineaaerea" placeholder="" class="input-text full-width"/>
    		</div>
    		<div class="col-xs-4">
    			<label><?php _e( 'Hora de llegada', 'trav'); ?></label>
    			<input type="text" id="horadellegada" name="horadellegada" placeholder="" class="input-text full-width"/>
    		</div>
    		<div class="col-xs-4">
    			<label><?php _e( 'Hora de Salida', 'trav'); ?></label>
    			<input type="text" id="horadesalida" name="horadesalida" placeholder="" class="input-text full-width"/>
    		</div>
    	</div>
    
    	<div class="form-group row">
    		<div class="col-sm-12 col-md-10">
    			<label><?php _e( 'Credit card (Brand, Number, Expiration Date and Code CVV or any special requirement', 'trav'); ?></label>
    			<textarea name="special_requirements" class="full-width" rows="4"></textarea>
    		</div>
    	</div>
    
    </div>
    <?php do_action( 'trav_booking_form_after' ); ?>
    <hr />
    
    <div class="form-group row confirm-booking-btn">
    	<div class="col-sm-6 col-md-5">
    		<button id="enviardatos" name="enviardatos" type="submit" ><?php _e( "BOOK", "trav" ); ?></button>
    	
    		</button>
    	</div>
    </div>
    </form>
    
    <?php
    //codigo para traer los datos y enviar el mensaje
    	
    	if (isset($_POST['enviardatos'])){
    		 
    	 	$pfirt=$_POST['first_name'];
    	 	$plastn=$_POST['last_name'];
    	 	$pemail=$_POST['email'];
    		$pencuentro=$_POST['puntoencuentro'];
    		$pllegada=$_POST['puntodellegada'];
    		$pvuelo=$_POST['vuelo'];
    		$plineaaerea=$_POST['lineaaerea'];
    		$phoradellegada=$_POST['horadellegada'];
    		$phoradesalida=$_POST['horadesalida'];
    		$to=array($pemail);
    
    	//aqui el asunto
    	$subject='Datos enviados desde el formulario web';
    	// aqui le envio el mensaje
    	$message="Nombre:".$pfirt."\nlast_name:".$plastn."\nEmail:".$pemail."\nPuntoEncuentro:".$pencuentro."\nPuntodellegada:".$pllegada."Vuelo:".$pvuelo."\nLineaAerea:".$plineaaerea."\nHoradellegada:".$phoradellegada."\nHoradeSalida:".$phoradesalida;
     
    	//Filtro para indicar que email debe ser enviado en modo HTML aun no se si funciona
    	add_filter('wp_mail_content_type',create_function('', 'return "text/html";'));
     
    	//Cambiamos el remitente del email que en WordPress por defecto es tu email de admin
            add_filter('wp_mail_from','mqw_email_from');
     
    	function mqw_email_from($content_type) {
    	  return 'alvinluperon@gmail.com';
    	}
        //Por último enviamos el email
    	 wp_mail( $to, $subject, $message);
    	}

    Buenas amigo probare el codigo a ver si me funciona. como a ti. muchas gracias por tu respuesta

Viendo 2 respuestas - de la 1 a la 2 (de un total de 2)
  • El debate ‘Problemas no puedo enviar EMAIL con la funcion wp_mail’ está cerrado a nuevas respuestas.