Je développe un plugin gratuit pour connecter un système de support externe à WordPress pour pouvoir authentifier les utilisateurs sur WordPress.
Pour cela, actuellement depuis le système externe, l'utilisateur est envoyé à la page de connexion de WordPress avec ceci à la fin
?action=freshdesk-remote-login
Mon plugin vérifie ensuite si l'utilisateur est connecté à WP, sinon il affiche le formulaire de connexion et après une connexion réussie, il les redirige vers le site tiers.
La redirection se fait en utilisant quelque chose comme ceci: wp_redirect( $sso_url );
Maintenant, cela fonctionne bien, mais je prévois d'offrir un shortcode qui pourrait être ajouté à une page que l'utilisateur choisit. Désormais, lorsqu'un utilisateur accède à cette page, s'il est connecté, il doit être redirigé vers le site tiers, sinon, puis vers la page de connexion.
Existe-t-il un moyen de suggérer à wp_redirect de fonctionner dans un shortcode?
wp_redirect( $sso_url );
et ça a juste fonctionné.wp_redirect
ne fonctionne pas dans un shortcode dans des conditions normales. Je viens de vérifier. Si cela fonctionne pour vous, votre thème ou un plugin fait quelque chose de similaire à ce que j'ai suggéré pour le faire fonctionner.wp_redirect()
effectue la redirection via les en-têtes HTTP, donc techniquement, cela ne fonctionnera pas (ou du moins ne devrait pas) fonctionner après le début de la sortie de la page. Vous ne pouvez donc pas simplement utiliser cette fonction en shortcode.Ce qui ne signifie pas cependant que vous ne pouvez pas utiliser de shortcode pour le contrôler. Vous pouvez vérifier les conditions d'ajustement (si la page et la page contiennent un shortcode) avant le début de la sortie (quelque part autour du
template_redirect
crochet) et effectuer ensuite la redirection.Une autre option serait de produire du JavaScript conditionnel qui effectuera une redirection après le chargement de la page.
la source
wp_redirect()
dans ce code?