TuZonaWP utiliza cookies. Lea nuestra Política de Privacidad para obtener más información. Para eliminar este mensaje, haga clic en el siguiente botón: Acepto el uso de cookies

Posteador
TuZonaWP
Administrador



Añadir Campo de Contraseña Durante el Registro Wordpress



Alguna vez te has preguntado, ¿como agregar un campo extra para introducir una propia contraseña? dentro del formulario de registro que nos ofrece esta famosa plataforma llamada wordpress, una de las grandes ventajas de esta implementacion es que se puede realizar sin la necesidad de utilizar pluguins, así si eres una de esas personas como yo a la cual le gusta utilizar la cantidad menos posible de pluguins, que esperas e implementa de la misma forma que yo, después de estar buscando un buen rato por toda la web y has llegado aquí te aseguro que no te arrepentirás de intentar el método, afortunadamente encontré un post en ingles, así que por este motivo me e tomado la molestia de traducir el código y explicarte los pasos de una manera muy fácil, de esta forma te enseñare a integrar el campo adicional para permitir a tus usuarios ingresar la contraseña durante el registro.

Como primer paso, debes crear un archivo llamado "registro.php" una vez que tu hallas creado el archivo lo siguiente es ingresar el código que te mostrare a continuación:


<?php
// Añade Contraseña, Repetir Contraseña

add_action( 'register_form', 'ts_show_extra_register_fields' );
function ts_show_extra_register_fields(){
?>
<p>
<label for="password">Contraseña<br/>
<input id="password" class="input" type="password" tabindex="30" size="25" value="" name="password" />
</label>
</p>
<p>
<label for="repeat_password">Repita la contraseña<br/>
<input id="repeat_password" class="input" type="password" tabindex="40" size="25" value="" name="repeat_password" />
</label>
</p>
<?php
}

// Comprobar la forma de errores
add_action( 'register_post', 'ts_check_extra_register_fields', 10, 3 );
function ts_check_extra_register_fields($login, $email, $errors) {
if ( $_POST['password'] !== $_POST['repeat_password'] ) {
$errors->add( 'passwords_not_matched', "<strong>ERROR</strong>: Las contraseñas deben coincidir" );
}
if ( strlen( $_POST['password'] ) < 8 ) {
$errors->add( 'password_too_short', "<strong>ERROR</strong>: Las contraseñas deben tener al menos ocho caracteres de longitud" );
}
}
?>
<?php
// Almacena WordPress la contraseña seleccionada por el usuario en la base de datos sobre el registro

add_action( 'user_register', 'ts_register_extra_fields', 100 );
function ts_register_extra_fields( $user_id ){
$userdata = array();

$userdata['ID'] = $user_id;
if ( $_POST['password'] !== '' ) {
$userdata['user_pass'] = $_POST['password'];
}
$new_user_id = wp_update_user( $userdata );
}
?>


Ahora, una vez realizado todo el proceso indicado anteriormente, lo siguiente es ingresar al área admin de wordpress, dentro deberás dirigirte en la sección de "Apariencia - Editor" y dentro del área de editor te mostrara varios archivos los cuales conforman tu theme, ahora darás clic en el archivo llamado "functions.php" y dentro del archivo agregaras el siguiente código:


include_once('register.php');


Nos falta un pequeño detalle, debido a que wordpress por defecto envía una contraseña generada automáticamente, al momento de registrarnos, pues obviamente wordpress enviara un correo electrónico con una contraseña generada automáticamente la cual no funcionara, ya que hemos ingresado nuestra propia contraseña personalizada en el campo adicional, por este motivo ahora tu te preguntaras ¿como puedo hacer que wordpress envié el correo con la contraseña puesta en el campo adicional? pues es muy fácil de realizar, así que a continuación te indicare los pasos:

Primero deberás ingresar a la raíz de tu wordpress y abrir la carpeta llamada "wp-includes", dentro de esta carpeta encontraras un archivo llamado "pluggable.php" una vez dentro de este archivo buscaras la siguiente linea de codigo:


$message .= __('To set your password, visit the following address:') . "\r
\r
";


Una vez, encuentras la linea de código indicada anteriormente, deberás remplazarla por la siguiente que te mostrare a continuación:


$message .= sprintf(__($_POST['password']), $plaintext_pass) . "\r
";


con esto se resolverá el problema mencionado anteriormente, y ahora la contraseña, nombre de usuario que sera enviada a tu correo sera la que tu ingresaste en el formulario de registro.

Realizado todo el proceso, ahora solo debes revisar que todo funcione correctamente en tu theme, para ello simplemente puedes registrarte, esto como prueba de que todo funcione muy bien.

Otros posts que te van a interesar:

0 Comentarios


Cargando comentarios espera un momento...
No tienes permisos para comentar.

Para poder comentar necesitas estar Registrado. O.. ya tienes usuario? Logueate!
Ir al cielo