wc_logout_url без подтверждения и перенаправления на текущую страницу в Wordpress WooCommerce - PullRequest
0 голосов
/ 29 мая 2018

Я бы хотел перенаправить пользователя, который выходит из системы, на ту же страницу.

Например: пользователь находится на странице категории и выходит из системы.После выхода из системы мне хотелось бы, чтобы пользователь все еще находился на этой конкретной странице категории (или на любой другой странице, на которой он находится).Теперь он будет перенаправлять пользователя на домашнюю страницу.

Это код, который я использую:

function iconic_bypass_logout_confirmation() {
    global $wp;

    if ( isset( $wp->query_vars['customer-logout'] ) ) {
        wp_redirect( str_replace( '&', '&', wp_logout_url( wc_get_page_permalink( 'home' ) ) ) );
        exit;
        }
    }
    add_action( 'template_redirect', 'iconic_bypass_logout_confirmation' );

Я попытался изменить строку 5 с кодом ниже, но безрезультатно.

wp_redirect( str_replace( '&', '&', wp_logout_url( get_permalink() ) ) );

1 Ответ

0 голосов
/ 29 мая 2018

В соответствии с документами на wp_logout_url(), вы можете указать URL перенаправления.В этом случае вам следует обновить саму ссылку выхода из системы.Поэтому, если в качестве примера у вас есть ссылка для выхода из системы в файле header.php, вы можете обновить ссылку wp_logout_url(), включив в нее URL текущей страницы.Таким образом, каждый раз, когда пользователь щелкает ссылку выхода из системы, он также будет иметь текущую страницу в качестве ссылки для перенаправления.

Все, что вам нужно, - это URL текущей страницы.Ссылаясь на этот пост , вы можете увидеть один метод для получения URL текущей страницы.Это в сочетании с функцией wp_logout_url(), и ваш HTML может выглядеть примерно так:

<?php global $wp; ?>
<a href="<?php echo wp_logout_url( home_url( $wp->request ) ) ?>">Logout</a>

Теперь пользователь всегда будет перенаправлен с предыдущей страницы.Если у вас нет контроля над самой ссылкой «Выход из системы», вашими единственными вариантами будет обработка выхода через AJAX или отслеживание предыдущего URL-адреса самостоятельно, через переменную запроса, сессию, файл cookie и т. Д.

...