Estoy desarrollando un complemento gratuito para conectar un sistema de soporte externo a WordPress para poder autenticar a los usuarios en WordPress.
Para esto, actualmente desde el sistema externo, el usuario es enviado a la página de inicio de sesión de WordPress con esto al final
?action=freshdesk-remote-login
Luego, mi complemento verifica si el usuario ha iniciado sesión en WP; si no, muestra el formulario de inicio de sesión y, después de iniciar sesión correctamente, los redirige al sitio de terceros.
La redirección se realiza usando algo como esto: wp_redirect( $sso_url );
Ahora esto funciona bien, pero planeo ofrecer un código corto que podría agregarse a una página que el usuario elija. Ahora, una vez que un usuario accede a esta página, si ha iniciado sesión, debe ser enviado al sitio de terceros, si no, a la página de inicio de sesión.
¿Hay alguna manera de sugerir que wp_redirect funcione dentro de un shortcode?
wp_redirect( $sso_url );
y simplemente funcionó.wp_redirect
no funciona en un shortcode en condiciones normales. Acabo de verificar. Si funciona para usted, su tema o un complemento está haciendo algo muy parecido a lo que sugerí para que funcione.wp_redirect()
realiza la redirección a través de encabezados HTTP, por lo que técnicamente no funcionará (o al menos no debería funcionar) después de que comience la salida de la página. Por lo tanto, no puede usar esta función en shortcode.Lo que no significa, sin embargo, no puede usar shortcode para controlarlo. Puede verificar las condiciones de ajuste (si la página y la página contienen código corto) antes de que comience la salida (en algún lugar alrededor del
template_redirect
gancho) y luego realizar la redirección.Otra opción sería generar JavaScript condicionalmente que redirigirá después de que la página se haya cargado.
fuente
wp_redirect()
ese código?