Mon site utilise DiscourseConnect Provider, donc Wordpress gère les connexions à Discourse.
Lorsqu’un utilisateur s’inscrit sur Wordpress, j’aimerais qu’un utilisateur Discourse soit immédiatement créé pour lui et que l’e-mail d’activation de Discourse lui soit envoyé. Mais cela ne semble pas se produire.
J’ai vérifié l’option « Synchroniser les données utilisateur » dans les paramètres de Wordpress.
Il semble que la description indique que cela créera un utilisateur Discourse lorsqu’ils se connecteront à Wordpress. Mais je ne vois pas cela se produire. L’utilisateur Discourse n’est créé que lorsqu’ils visitent le site Discourse.
Mon intégration ne fonctionne-t-elle pas correctement ? Ou est-ce que je comprends mal cette description ?
Je comprends maintenant. Il crée un nouvel utilisateur Discourse lorsqu’ils se « connectent » à WordPress. Il ne crée pas de nouvel utilisateur lorsqu’ils s’« enregistrent » sur WordPress. Nos utilisateurs peuvent s’enregistrer eux-mêmes et lors de l’enregistrement, ils sont immédiatement considérés comme connectés. Donc, à ce stade, ils sont connectés mais n’ont pas d’utilisateur Discourse.
S’ils se déconnectent de WP et se reconnectent à WP, un utilisateur Discourse est créé. Je viens de le vérifier.
Nous n’exigeons pas que les e-mails soient vérifiés dans WordPress car il s’agit d’un site WooCommerce et il les enregistre automatiquement s’ils effectuent un achat sans être connectés. La première fois qu’ils visitent Discourse après avoir été enregistrés, ils reçoivent l’e-mail de vérification d’adresse de Discourse.
Les utilisateurs problématiques sont ceux qui, à la fois :
S’enregistrent dans WP mais ne se déconnectent pas et ne se reconnectent pas
Ne visitent jamais Discourse (qui est notre site de support pour le site e-commerce)
WordPress/WooCommerce traite l’auto-enregistrement comme une connexion - ils sont considérés comme connectés immédiatement après leur enregistrement. Existe-t-il un moyen de faire en sorte qu’un utilisateur Discourse soit créé lorsqu’ils s’auto-enregistrent et pas seulement lorsqu’ils se déconnectent et se reconnectent ?
Salut Ryan, tu as raison, le plugin crée un utilisateur après la connexion. Plus précisément, le plugin utilise le hook wp_login. Il existe également un hook user_register dans WordPress, mais la raison pour laquelle le plugin ne l’utilise pas est qu’il se déclenche immédiatement après l’insertion d’un enregistrement dans la base de données WordPress, que leurs détails (en particulier leur e-mail) soient vérifiés ou non.
Pour être un peu impertinent, je pense que la question ici pourrait être pourquoi WooCommerce ne déclenche pas le hook wp_login si tel est le cas Mais, plus utilement, il existe probablement un autre hook ou filtre que WooCommerce déclenche immédiatement après l’enregistrement et la connexion, si c’est bien ce qu’il fait.
La raison pour laquelle nous n’avons pas intégré cela dans le plugin (jusqu’à présent) est que, comme vous pourriez le constater dans votre cas, il existe de nombreuses façons différentes pour les utilisateurs d’être créés/enregistrés/connectés dans WordPress.
Mais voyons si nous pouvons faire fonctionner votre cas spécifique. Tout d’abord, nous devons trouver un hook qui se déclenche immédiatement après votre enregistrement/connexion automatique. Pouvez-vous confirmer exactement comment vous avez configuré cela ? C’est-à-dire, exactement quel flux vous utilisez. Plus c’est spécifique, mieux c’est, par exemple, toute documentation que vous avez utilisée.
Je soupçonne que WooCommerce est à l’origine de la confusion. Il semble que la connexion automatique après l’inscription soit une fonctionnalité de WooCommerce, pas de WordPress. Et ils n’activent intentionnellement pas les actions de connexion.
Je peux rechercher un hook WooCommerce approprié à utiliser pour cela. Existe-t-il une fonction WP Discourse que je peux appeler ou un hook que je peux déclencher pour créer l’utilisateur Discourse si je trouve le bon hook WooCommerce ?