Выход из системы с помощью ссылки (без nonce)
Этот вопрос задает абсолютный не-программист - и он уже задавался в разных формах несколько раз (например, здесь).
Для правильного выхода из системы URL, который это активирует, требует nonce, например:
http://xyz/wp-login.php?action=logout&redirect_to=http%3A%2F%2Fwww.spiegel.de&_wpnonce=d9d1a28ef2
Мы можем получить nonce, как описано в кодексе. НО: что если мне нужно активировать выход из системы с помощью URL. Точнее: мой плагин CiviCRM имеет формы, которые пользователи могут заполнять, и после завершения перенаправляют пользователя куда-то еще -> например, выйти из системы и перейти на другую страницу. Я могу скопировать/вставить URL перенаправления в форму, например:
http://xyz/wp-login.php?action=logout&redirect_to=http%3A%2F%2Fwww.spiegel.de
-> как мне получить nonce там, где он должен быть - или есть альтернативы???
Спасибо!

Это отключит проверку nonce при выходе из системы - последствия на вашей совести:
add_action( 'login_form_logout', function () {
$user = wp_get_current_user();
wp_logout();
if ( ! empty( $_REQUEST['redirect_to'] ) ) {
$redirect_to = $requested_redirect_to = $_REQUEST['redirect_to'];
} else {
$redirect_to = 'wp-login.php?loggedout=true';
$requested_redirect_to = '';
}
/**
* Фильтр URL для перенаправления после выхода.
*
* @since 4.2.0
*
* @param string $redirect_to URL для перенаправления.
* @param string $requested_redirect_to Запрошенный URL для перенаправления, переданный как параметр.
* @param WP_User $user Объект WP_User для пользователя, выходящего из системы.
*/
$redirect_to = apply_filters( 'logout_redirect', $redirect_to, $requested_redirect_to, $user );
wp_safe_redirect( $redirect_to );
exit;
});
