Sauter la navigation

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

do_action('wp_login', $user->user_login, $user->ID)

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.

Aucun de nos assistants n'est disponible aujourd'hui sur le forum French. Veuillez créer un ticket, et nous nous le traiterons dès notre prochaine connexion. Merci de votre compréhension.

Marqué : 

Ce sujet contient 23 réponses, a 3 voix.

Dernière mise à jour par Ilyes Il y a 1 semaine et 5 jours.

Assisté par: Ilyes.

Auteur Articles
Avril 11, 2024 à 1:20 pm #15509511

michelleL-20

Bonjour,

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.

Bonne journée,
Cordialement

Avril 12, 2024 à 2:44 pm #15513299

Nicolas Viallet
Supporter

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.

Avril 15, 2024 à 8:09 pm #15521775

michelleL-20

Bonjour Nicolas,

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..

Je suis preneur pour tout autre suggestion.

Bonne journée,
Cordialement

erreur-ajax.png
Avril 16, 2024 à 2:38 pm #15526526

Nicolas Viallet
Supporter

Les langues: Anglais (English ) Français (Français )

Fuseau horaire: America/Lima (GMT-05:00)

Bonjour,

Comme le ticket original est résolu, les identifiants de connexion ont été automatiquement éliminés.

Pourriez vous les repartager dans ce ticket afin que je puisse le faire remonter à notre équipe de deuxième niveau pour avoir leur feedback?

J'active le champ privé.

Avril 18, 2024 à 5:49 pm #15540521

Nicolas Viallet
Supporter

Les langues: Anglais (English ) Français (Français )

Fuseau horaire: America/Lima (GMT-05:00)

Bonjour,

Je viens de faire le test avec WPML et String Translation désactivés et j'ai toujours la même erreur "Incorrect password."

- Aussi bien sur la page login que checkout.
- J'ai utilisé l'email et le mot de passe du compte que vous m'avez fourni

Et je n'ai pas la même erreur que vous dans Console, à la place j'ai:
GET lien caché 401 (Unauthorized)
Manifest: Line: 2, column: 1, Syntax error

Vidéo: lien caché

Avril 22, 2024 à 1:10 pm #15550672

michelleL-20

Bonjour Nicolas,

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é

Bonne journée,
Cordialement

Avril 22, 2024 à 10:43 pm #15553167

Nicolas Viallet
Supporter

Les langues: Anglais (English ) Français (Français )

Fuseau horaire: America/Lima (GMT-05:00)

Bonjour,

Oui maintenant j'ai les mêmes résultats que vous. Je viens de faire remonter le ticket avec tous les détails au support de deuxième niveau.

Je reviens vers vous dès que j'ai une réponse de leur part.

Nico

Avril 23, 2024 à 12:36 pm #15555903

Nicolas Viallet
Supporter

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. */

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

PS: si vous avez déjà define( 'WP_DEBUG', false); changez le pour "true" pour ne pas le déclarer deux fois.

Plus d'info: https://wordpress.org/support/article/debugging-in-wordpress/

Avril 23, 2024 à 2:59 pm #15557060

michelleL-20

Bonjour,

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.

Bonne fin de journée,
Cordialement

Avril 23, 2024 à 4:21 pm #15557447

Nicolas Viallet
Supporter

Les langues: Anglais (English ) Français (Français )

Fuseau horaire: America/Lima (GMT-05:00)

Re,

Désolé mais sur le site staging sur lequel nous travaillons, WP_DEBUG est toujours défini comme "false"

Veuillez ajoutez ces lignes là:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

Afin que le fichier de debug se créé lorsque l'erreur se produit.

Avril 24, 2024 à 9:03 am #15559616

michelleL-20

Re,

Oups petite erreur.
Je viens de rectifier, ça devrait fonctionner maintenant.

Bonne journée,
Cordialement

Avril 24, 2024 à 1:36 pm #15561009

Nicolas Viallet
Supporter

Les langues: Anglais (English ) Français (Français )

Fuseau horaire: America/Lima (GMT-05:00)

HI,

I'm sorry but WP_DEBUG_LOG is not yet set to true, so I don't have a debug.log file to check those errors.

I checked and you only added the first line out of 3:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

We need to log those errors to understand the root cause.

Avril 24, 2024 à 5:38 pm #15562388

michelleL-20

Hi,

My hoster juste set the config file like you asked.

Best regards

Avril 24, 2024 à 8:31 pm #15562670

Nicolas Viallet
Supporter

Les langues: Anglais (English ) Français (Français )

Fuseau horaire: America/Lima (GMT-05:00)

Merci!

Effectivement il y a une erreur liée à WPML, il y a un problème d'arguments

PHP Fatal error:  Uncaught TypeError: Argument 2 passed to WPML_User_Language::update_user_lang_from_login() must be an instance of WP_User, int given

J'ai remonté toutes les informations à l'équipe de deuxième niveau. Je reviens vers vous lorsque j'ai une réponse.

Avril 25, 2024 à 1:25 pm #15565904

Nicolas Viallet
Supporter

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.

Une fois le problème résolu, j'éliminerai cette copie. Dites moi si vous êtes d'accord.
https://wpml.org/fr/faq/provide-supporters-copy-site/

Ce ticket est maintenant fermé. Si vous êtes un client de WPML et que vous avez besoin d'aide, veuillez ouvrir un nouveau ticket d'assistance