<?php
# Añades el/los campos
add_action( 'register_form', function() {
?>
<label for="custom_field">Campo personalizado:</label>
<input type="text" name="custom_field" id="custom_field" class="input">
<?php
} );
# Haces la validación (suponemos un campo numérico entero y requerido)
add_filter( 'registration_errors', function( $errors, $sanitized_user_login, $user_email ) {
if ( empty( $_POST['custom_field'] ) )
$errors->add( 'custom_field', 'Debes rellenar el campo custom_field.' );
if( ! filter_var( $_POST['custom_field'], FILTER_VALIDATE_INT ) )
$errors->add( 'custom_field', 'El campo custom_field debe ser un número entero.' );
return $errors
} );
# Si valida, añadimos el campo a la base de datos
add_action( 'user_register', function( $user_id ) {
update_user_meta( $user_id, 'custom_field', $_POST['custom_field'] );
} );