Soporte » Plugins y Hacks » WooCommerce » Validacion DNS mails woocommerce

  • Camilo

    (@camilo517)


    Hola, me gustaría hacer un tipo de validación de los mails haciendo una consulta DNS
    No he conseguido que me funcione ¿Alguna ayuda? Gracias

    add_action('woocommerce_checkout_process', 'camilotest');
     
    function camilotest() {
    	$billing_email = filter_input(INPUT_POST, 'billing_email');
              if(filter_var($billing_email, FILTER_VALIDATE_EMAIL) > 0){
              	return false;
    		  wc_add_notice(__('error'), 'error');
            }
            $domain = explode("@", $billing_email, 2);
    return $response = (checkdnsrr($domain[1], "MX") ? true : false);
    }
Viendo 3 respuestas - de la 1 a la 3 (de un total de 3)
  • Buenas @camilo517

    ¿Dónde no te funciona? ¿has debugado el código fuera de la función? Creo que tienes varios errores en el código:

    
    $billing_email = filter_input( INPUT_POST, 'billing_email' );
    if ( ! filter_var($billing_email, FILTER_VALIDATE_EMAIL) ) { //filter var devuelve false si falla
        wc_add_notice(__('error'), 'error'); // poner antes que el return
        return false;
    }
    $domain = explode( '@', $billing_email );
    return checkdnsrr( $domain[1], "MX" ) ? true : false; //falta segunda condición y estaba mal el response

    Este código no lo he chequeado pero te aconsejo que lo pruebes fuera del WordPress pasándole directamente un $billing_email = 'tucorreo@gmail.com';

    Espero que encuentres la solución y vuelvas al foro a indicar tus progresos.
    Ya nos dices.
    Salut!

    Buenas @adriandegrafreak
    Gracias por tu ayuda
    ¿Como puedo debugear el codigo fuera de la función?
    ¿Como puedo pasar lo que me comentas?

    
    $billing_email = 'tucorreo@gmail.com';
    

    Un saludo, mil gracias

    Buenas,

    Lo deberías poner en un archivo PHP y llamarlo por URL.
    Y para pasarlo deberías cambiar:
    $billing_email = filter_input( INPUT_POST, 'billing_email' );
    por
    $billing_email = 'tucorreo@gmail.com';

    Desconozco tu nivel pero sin un mínimo de conocimientos PHP puede ser una tarea difícil de hacer.

    Salut!

Viendo 3 respuestas - de la 1 a la 3 (de un total de 3)
  • Debes estar registrado para responder a este debate.