Я разрабатываю бесплатный плагин для подключения внешней системы поддержки к WordPress, чтобы иметь возможность аутентифицировать пользователей на WordPress.
Для этого, в настоящее время из внешней системы, пользователь отправляется на страницу входа в WordPress с этим в конце
?action=freshdesk-remote-login
Мой плагин затем проверяет, вошел ли пользователь в WP, если нет, показывает форму входа и после успешного входа перенаправляет его обратно на сторонний сайт.
Перенаправление выполняется с использованием чего-то вроде этого: wp_redirect( $sso_url );
Теперь это работает хорошо, но я планирую предложить короткий код, который можно добавить на страницу, которую выберет пользователь. Теперь, когда пользователь заходит на эту страницу, если он вошел в систему, он должен быть перенаправлен на сторонний сайт, если нет, то на страницу входа.
Есть ли способ предложить wp_redirect внутри шорткода?
wp_redirect( $sso_url );
и это просто сработало.wp_redirect
не работает в шорткоде при нормальных условиях. Я только что проверил. Если это работает для вас, ваша тема или плагин делают что-то очень похожее на то, что я предложил, чтобы это работало.wp_redirect()
выполняет перенаправление через заголовки HTTP, так что технически он не будет (или, по крайней мере, не должен) работать после начала вывода страницы. Так что вы не можете просто использовать эту функцию в шорткоде.Что не означает, однако, вы не можете использовать шорткод для управления им. Вы можете проверить условия подгонки (если страница и страница содержат шорткод) до начала вывода (где-то около
template_redirect
ловушки) и затем выполнить перенаправление.Другой вариант - вывести условно JavaScript, который будет выполнять перенаправление после загрузки страницы.
источник
wp_redirect()
в этом коде?