Soporte » Plugins y Hacks » Hacks » Registro de usuario con validación de campo en bd

  • Resuelto juanjoache

    (@juanjoache)


    Hola, necesito validar en el registro de nuevo usuario, un campo que se valide con una tabla nueva.
    La idea es Poder validar que un usuario se registre sin tiene un número de serie válido.

    No sé cómo poder hacer una consulta a la tabla y validar el campo antes del registro.

    Muchas gracias de antemano

    • Este debate fue modificado hace 3 años por juanjoache.
Viendo 3 respuestas - de la 1 a la 3 (de un total de 3)
  • merk_cat

    (@merksk8)

    Hola,

    estaría bien que aportases más detalles, mi primera duda es si utilizas el propio registro de WordPress o alguno otro (de plugins, Buddypress, etc).

    Si usas el de WordPress, la cosa sería algo así:

    1. Para añadir al formulario un campo de texto:

    add_action( 'register_form', 'nuevo_campo_registro' );
    
    function nuevo_campo_registro() {
        
        ?>
    	
        <p>
            <label for="numero_serie">Numero de Serie<br />
                <input type="text" name="numero_serie" id="numero_serie" class="input" value="" size="25" /></label>
        </p>
    
        <?php
    }

    2. Para comprobar que es correcto, tendrás que añadir tu mismo la comprobación, creando un error en caso de fallo con:

    $errors->add('nombre-error', 'mensaje de error' );

    Al añadir el error y completar el return de la función, aparece el error y no deja completar el registro.

    function comprobar_campo( $errors, $sanitized_user_login, $user_email ) {
    
    	//Si el campo no es correcto
        if($_POST['numero_serie'] != "123456"){
    		$errors->add('nombre-error', 'El numero de serie no es valido' );
    		
    	}
    
        return $errors;
    }
    
    add_filter( 'registration_errors', 'comprobar_campo', 10, 3 );

    Recuerda siempre usar todas las medidas de seguridad oportunas, como filtrar antes de comprobar con la base de datos para evitar inyecciones, etc. Este código es solo una base.

    Edito: A parte de comprobarlo te recomiendo guardar el numero introducido para futuras comprovaciones, en «user meta».

    Tienes más información en estos enlaces:

    https://codex.wordpress.org/Plugin_API/Action_Reference/register_form

    https://codex.wordpress.org/Plugin_API/Filter_Reference/registration_errors

    Un saludo

    • Esta respuesta fue modificada hace 3 años por merk_cat.
    juanjoache

    (@juanjoache)

    Gracias por el tiempo dedicado a responderme,
    Utilizaré el registro de WordPres, me has servido de ayuda para tener una idea global de lo que necesito, gracias!

    merk_cat

    (@merksk8)

    Perfecto! Por favor marca el tema como resuelto, suerte con eso.

    Un saludo.

Viendo 3 respuestas - de la 1 a la 3 (de un total de 3)
  • El debate ‘Registro de usuario con validación de campo en bd’ está cerrado a nuevas respuestas.