[Résolu] Problème de connexion page login custom avec call Ajax
Ce sujet est résolu. Voici une description du problème et de la solution.
Problem: The client was experiencing issues with custom login functionality on two pages after installing WPML. The login worked fine when WPML was deactivated. The issue was related to Ajax calls to admin-ajax.php for user authentication.
Solution: We reviewed the custom code used for the login process and identified an issue with the
hook. According to the WordPress developer documentation, the second parameter should be
$user
, not
$user->ID
. We recommended updating the action hook to
do_action('wp_login', $user->user_login, $user)
to resolve the problem.
If you're experiencing this issue, we recommend you try updating the action hook as described above. However, this solution might be irrelevant if it's outdated or not applicable to your case. We highly recommend checking related known issues at https://wpml.org/known-issues/, verifying the version of the permanent fix, and confirming that you have installed the latest versions of themes and plugins. If the problem persists, please open a new support ticket with us.
Il s'agit du forum d'assistance technique de WPML, le plug-in multilingue pour WordPress.
Il est accessible à tous, toutefois seuls les clients de WPML peuvent y publier leurs messages. L'équipe du WPML répond sur le forum 6 jours par semaine, 22 heures par jour.
J'ai un soucis depuis que j'ai installé WPML : la connexion depuis 2 pages avec un custom login ne fonctionne plus.
Lorsque je désactive le plugin WPML celle-ci fonctionne sans problème.
Les 2 pages sont la page login (lien caché, login.php) ainsi que la page checkout (lien caché, login-register.php, il faut ajouter un produit dans le panier pour tester) qui propose une connexion à l'utilisateur avant de procéder au checkout.
Toutes 2 fonctionne via un call Ajax vers lien caché.
Vous pouvez retrouver les 2 fonctions qui procède à la connexion et réponde au call Ajax vers la fin du fichier functions.php : custom_login() et custom_login_or_guest().
Peut-être avez vous déjà rencontré ce soucis et pouvez m'éclairer sur sa provenance et comment le corriger.
N'hésitez pas à me demander les logins pour accéder au site.
Merci beaucoup de votre aide.
Les langues: Anglais (English )Français (Français )
Fuseau horaire: America/Lima (GMT-05:00)
Bonjour,
Malheureusement les codes personnalisés n'entrent pas dans le cadre de notre politique de support. Nous faisons notre mieux pour aider nos clients mais si vous avez besoin d'une aide afin de créer un code personnalisé, je vous suggère d'envisager de contacter l'un de nos partenaires certifiés sur ce lien: http://wpml.org/documentation/support/wpml-contractors/
Vous bénéficierez de l'assistance personnalisée dont vous avez besoin pour mener à bien votre projet.
J'ai tout de même testé et je vois que l'erreur est "Password incorrect". C'est une piste à suivre. Aussi, essayez peut être de passer wp_set_current_user et wp_set_auth_cookie avant wp_login.
Je ne penses pas que nous soyons en mesure de passer par un expert.
Pour vous donner un peu plus d'informations j'ai exactement cette erreur dans la console, non pas une erreur de mot de passe.
J'ai essayé comme vous m'avez dis de passer wp_set_current_user et wp_set_auth_cookie avant wp_login mais cela n'a rien changé.
J'ai également pensé a un conflit de plugins mais en désactivant tous sauf les plugins WooCommerce et Memberpress qui sont la base de mon site et WPML cela ne fonctionne toujours pas.
Il n'y a que quand je désactive WPML que la connexion fonctionne.
J'ai également essayé en commentant une partie de mon code de functions.php mais rien n'y fait, l'erreur est toujours là.
Peut-être est-ce un problème avec un hook ou bien un paramètre de WPML..
Il se peut que l'erreur que vous avez eu soit cause par une erreur dans mon code empêchant l'envoi de caractères spécials dans le champ de mots de passe.
Je viens de le modifier. Pouvez-vous réessayer ?
J'ai également reset les tentatives de connexions.
De mon côté voici l'erreur que j'obtiens : lien caché
Les langues: Anglais (English )Français (Français )
Fuseau horaire: America/Lima (GMT-05:00)
Bonjour,
J'essaie d'activer WP_DEBUG pour en savoir plus sur cette erreur 500 cependant je ne peux pas éditer, renommer ou remplacer le fichier wp-config.php sur le site staging.
Pourriez vous le faire vous même?
- Accédez à votre serveur via FTP et ouvrez wp-config.php (à la racine de votre installation WordPress).
- Insérez ces lignes just avant /* That's all, stop editing! Happy blogging. */
Oui c’est vrai que notre hébergeur ne nous permet pas de modifier ce paramètre depuis le fichier wp-config mais uniquement depuis le backoffice de l’hébergeur.
Je viens de l’activer.
Les langues: Anglais (English )Français (Français )
Fuseau horaire: America/Lima (GMT-05:00)
Bonjour,
Il semble que dans votre code personnalisé vous passez le USER ID au lieu de l'objet USER.
Probablement lié à cela:
$user = wp_signon($login_data, is_ssl());
Notre code est accroché au hook "wp_login" (et wp_signon l'appelle à un stade ultérieur).
Pourrais-je prendre une copie Duplicator de votre site pour notre équipe de dev?
Pour cela, vous devez installer temporairement l'extension "Duplicator". Elle me permettra de faire une copie complète de votre site et de son contenu.