web-dev-qa-db-ja.com

リンクを使用したログアウト(ナンスなし)

この質問は、絶対的な非コーダから来ています - そして何度も何度もさまざまな形で尋ねられてきました(例えば here )。

トリガーとなるURLから正しくログアウトするには、例えば以下のようなナンスが必要です。

http://xyz/wp-login.php?action =ログアウト&redirect_to = http%3A%2F%2Fwww.spiegel.de&_wpnonce = d9d1a28ef2

コーデックスに記述されているようにnonceを得ることができます。しかし、ログアウトをトリガーする必要がある場合は、URLを使用します。もっと正確に言うと、私のCiviCRMプラグインは、人々が記入できるフォームを持っていて、完成したらユーザーにどこか他の場所にリダイレクトさせます - >例えばログアウトして別のページに進みます。リダイレクトURLを次のような形式でコピーして貼り付けることができます。

http://xyz/wp-login.php?action =ログアウト&redirect_to = http%3A%2F%2Fwww.spiegel.de

- >どのように私はそれが行くことになっているノンスを得るのですか - または代替手段はありますか???

乾杯!

ログアウトのためのノンスチェックを無効にします - 頭の上では:

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 = '';
    }

    /**
     * Filters the log out redirect URL.
     *
     * @since 4.2.0
     *
     * @param string  $redirect_to           The redirect destination URL.
     * @param string  $requested_redirect_to The requested redirect destination URL passed as a parameter.
     * @param WP_User $user                  The WP_User object for the user that's logging out.
     */
    $redirect_to = apply_filters( 'logout_redirect', $redirect_to, $requested_redirect_to, $user );
    wp_safe_redirect( $redirect_to );
    exit;
});
1
TheDeadMedic