¿Es posible eliminar el campo de nombre de usuario de la página de registro?
Quiero que los usuarios ingresen solo su correo electrónico y contraseña.
Se debe crear un nuevo usuario basado únicamente en estos dos parámetros.
¿Es eso posible y, de ser así, cómo?
user-registration
phpnwordpress
fuente
fuente
Respuestas:
Absolutamente SÍ , puedes lograr esto.
Regla 1: WordPress requiere un nombre de usuario. Debemos proporcionar un nombre de usuario.
Regla 2: no edite el código central de WordPress.
Podemos lograr esto ocultando el campo de nombre de usuario, obtener correo electrónico y almacenarlo como nombre de usuario.
Paso 1: eliminar el campo de texto Nombre de usuario
Paso 2: eliminar el error de nombre de usuario
Paso 3: manipular la funcionalidad de registro de fondo.
Pon el código de arriba en el tema de tu archivo functions.php de .
También puede descargar un complemento completo para lograr esto.
Complemento: https://wordpress.org/plugins/smart-wp-login/
fuente
El paso 3 en la publicación de Nishant Kumars verifica si
isset($_POST['user_login'])
eso no funcionó para mí, ya que el inicio de sesión es lo que realmente queremos eliminar.Mi solución es la siguiente (en el tema functions.php), también como una función separada, para mantener el estilo del código de WordPress:
fuente
@
y.
en la dirección de correo electrónico como nombre de usuario:$_POST['user_login'] = str_replace(array('@', '.'), '_', $_POST['user_email']);
@Nishant Kumar dio la respuesta perfecta y debería ser aceptada a esta pregunta. Sin embargo, hay un problema técnico después del lanzamiento de la versión 4.0 de Wordpress. Del códice -
registration_errors
filtrar aquí requiere una pequeña modificación.Nota: Como mencionó @mcnesium, si eliminamos por completo el campo de nombre de usuario (en mi caso utilicé Theme, mi complemento de inicio de sesión para anular el formulario de registro normal y allí eliminé el campo de nombre de usuario), entonces
$_POST['user_login']
seránull
y la condición no coincidirá en absoluto. Mejor eliminamos eso de la condición como sugirió @mcnesium.fuente
Iterando en la respuesta de @ nishant-kumar, aquí hay un JS de vainilla, sin script js adicional, 1 paso, no se necesita edición de backend, solución para hacer un formulario de registro con solo la entrada de correo electrónico:
Solo necesita agregar este código en su archivo functions.php (o en su complemento personalizado , si tiene uno)
fuente
user_email is not defined at HTMLInputElement.syncUserName
. Mover la parte "function syncUserName" dentro de la función superior elimina el error y el fragmento de código funciona en gran medida. Solo comente para que otros puedan encontrar el mismo problema. Gracias Gfra54.user_email
var en el mismo ámbito. Gracias.Creo que cualquier solución a esta solicitud será un 'hack' ya que WordPress requiere que haya un nombre de usuario para todos los usuarios registrados. Incluso el complemento mencionado anteriormente probablemente encuentre el nombre de usuario a través de la dirección de correo electrónico y luego use ese nombre de usuario para iniciar sesión en el sitio.
Si está de acuerdo con un hack, aquí hay un concepto que podría funcionar:
1) Rellene previamente el campo de nombre de usuario en su formulario de registro con un número único, usar la marca de tiempo actual es una buena idea para evitar obtener duplicados. Luego, debe ocultar este campo para que el usuario no lo vea en la pantalla al completar su formulario.
Si está utilizando jQuery, podría usar algo como:
En este ejemplo, 'form input.username' sería el selector jQuery para encontrar el campo de nombre de usuario, deberá verificar la estructura html en su página para asegurarse de que el selector coincida con la estructura.
2) Use un complemento como el mencionado anteriormente ( http://wordpress.org/extend/plugins/wp-email-login/ ) para permitir que los usuarios inicien sesión con su dirección de correo electrónico.
fuente