Est-il possible de supprimer le champ du nom d'utilisateur de la page d'inscription?
Je souhaite que les utilisateurs n'entrent que leur e-mail et mot de passe.
Un nouvel utilisateur doit être créé sur la base de ces deux paramètres uniquement.
Est-ce possible et si oui, comment?
user-registration
phpnwordpress
la source
la source
Réponses:
Absolument OUI , vous pouvez y parvenir.
Règle 1: WordPress nécessite un nom d'utilisateur. Nous devons fournir un nom d'utilisateur.
Règle 2: ne modifiez pas le code principal de WordPress.
Nous pouvons y parvenir en masquant le champ du nom d'utilisateur, recevoir un e-mail et le stocker sous le nom d'utilisateur.
Étape 1: supprimer le champ de texte Nom d'utilisateur
Étape 2: Supprimer l'erreur de nom d'utilisateur
Étape 3: Manipuler la fonctionnalité d'enregistrement d'arrière-plan.
Mettez le code ci-dessus dans le fichier functions.php de votre thème .
Vous pouvez également télécharger un plugin complet pour y parvenir.
Plugin: https://wordpress.org/plugins/smart-wp-login/
la source
L'étape 3 du post de Nishant Kumars vérifie si
isset($_POST['user_login'])
cela n'a pas fonctionné pour moi, car la connexion est ce que nous voulons réellement supprimer.Ma solution est la suivante (dans le fichier functions.php du thème), également en tant que fonction distincte, pour rester avec le style de code wordpress:
la source
@
.
$_POST['user_login'] = str_replace(array('@', '.'), '_', $_POST['user_email']);
@Nishant Kumar a donné la réponse parfaite et devrait être acceptée à cette question. Cependant, il y a un problème après la sortie de la version Wordpress 4.0. Du codex -
registration_errors
le filtre ici nécessite une petite modification.Note: Comme @mcnesium mentionné, si nous complètement débarrassés du champ de nom d' utilisateur (dans mon cas je Thème mon plugin de connexion pour remplacer le formulaire d'inscription régulière et là je juste enlevé le champ nom d' utilisateur) , puis
$_POST['user_login']
seranull
et l' état ne correspond pas à du tout. Nous ferions mieux de supprimer cela de la condition comme l'a suggéré @mcnesium.la source
En itérant sur la réponse de @ nishant-kumar, voici un JS vanille, aucun script js supplémentaire, 1 étape, aucune modification de back-end nécessaire, solution pour créer un formulaire d'inscription avec uniquement l'entrée e-mail:
Il vous suffit d'ajouter ce code dans votre fichier functions.php (ou dans votre plugin personnalisé , si vous en avez un)
la source
user_email is not defined at HTMLInputElement.syncUserName
. Déplacer la partie "function syncUserName" à l'intérieur de la fonction supérieure supprime l'erreur et l'extrait de code fonctionne considérablement. Il suffit de commenter pour que d'autres puissent rencontrer le même problème. Merci Gfra54.user_email
var dans la même portée. Merci.Je pense que toute solution à cette demande va être un «hack» car wordpress nécessite qu'il y ait un nom d'utilisateur pour tous les utilisateurs enregistrés. Même le plugin mentionné ci-dessus est très probablement en train de trouver le nom d'utilisateur via l'adresse e-mail, puis d'utiliser ce nom d'utilisateur pour se connecter au site.
Si vous êtes d'accord avec un hack, voici un concept qui pourrait fonctionner:
1) Préremplissez le champ du nom d'utilisateur dans votre formulaire d'inscription avec un numéro unique, en utilisant l'horodatage actuel est une bonne idée pour éviter d'obtenir des doublons. Vous cacheriez alors ce champ pour que l'utilisateur ne le voie pas à l'écran lors du remplissage de son formulaire.
Si vous utilisez jQuery, vous pouvez utiliser quelque chose comme:
Dans cet exemple, 'form input.username' serait le sélecteur jQuery pour trouver le champ username, vous devrez vérifier la structure html sur votre page pour vous assurer que le sélecteur correspond à la structure.
2) Utilisez un plugin comme celui mentionné précédemment ( http://wordpress.org/extend/plugins/wp-email-login/ ) pour permettre aux utilisateurs de se connecter avec leur adresse e-mail.
la source