Пользователи перенаправляются на страницу «Моя учетная запись», если не вошли в систему. Все еще перенаправлены, если вошли в систему. Кэшированное перенаправление? - PullRequest
0 голосов
/ 15 января 2020

Я добавил код для своих функций. php, которые перенаправляют пользователей на страницу «Моя учетная запись», если они пытаются зайти на любую страницу Woocommerce.

add_action( 'template_redirect', 'wc_redirect_non_logged_to_login_access');
function wc_redirect_non_logged_to_login_access() {</p>

<code>if ( !is_user_logged_in() && ( is_woocommerce() || is_shop() || is_cart() || is_checkout() ) ) {
    wp_redirect( get_permalink( get_option('woocommerce_myaccount_page_id')) );
    exit();
}}
</code>

Все работало нормально - пользователи пытались зайти в магазин страница, они действительно перенаправили на страницу Моя учетная запись, после входа они могут получить доступ к Магазину.

Проблема началась, когда я перешел на WP Engine. Теперь, если пользователь заходит на страницу магазина, перенаправляется в «Мой аккаунт», входит в систему и пытается зайти в магазин - он все еще перенаправляется в «Мой аккаунт».

Я связался с WP Engine, и они добавили перечисленные ниже исключения из кэша Woocommerce:

^ / корзина /
^ / мой аккаунт /
^ / оформить заказ /
^ / категория продукта /
^ / product /
^ / w c - api /
^ / resetpassword /
product
w c -api =
woocommerce_cart_ha sh
woocommerce_items_in_cart
Wp_woocommerce_session_
wp-resetpass-

Но проблема все еще сохраняется.

Домен проходит через Cloudflare, поэтому я освобождаю Этот путь от кеширования. Поэтому я создал правило страницы для / my-account / page - уровень кэширования - обход, но проблема все еще сохраняется. Вот правила моей страницы: https://ibb.co/28k84cM

После этого я провел небольшой эксперимент и добавил тестовый сайт (https://residenceineu.wpengine.com/), который размещен на WP Двигатель. DNS не проходит через Cloudflare. Все на WP Engine - хостинг и домен. В результате проблема не исчезла. Поэтому я думаю, что WP Engine неисправен.

Вот снимок экрана с информацией об отзывчивых заголовках .: https://ibb.co/dMwQ8t5

By, the Кстати, когда я отключаю кеш браузера в настройках браузера, проблема исчезает.

Интересно, что при добавлении кода в функции. php и , если мы сначала заходим на страницу «Моя учетная запись» (не нажимая на Страница магазина), а затем авторизируемся, и после входа мы заходим на страницу магазина, мы можем получить к ней доступ - без перенаправлений, все работает отлично. Проблема начинается, когда мы впервые заходим на страницу магазина, после чего перенаправляемся в «Мой аккаунт», и после входа в систему мы пытаемся снова зайти на страницу магазина.

Итак, подведем итог - когда мы заходим на страницу «Мой аккаунт» и затем go на страницу магазина - без кеширования / перенаправления, все работает отлично. Если мы поступим иначе, посетив страницу Магазина - перейдя на страницу «Моя учетная запись» - войдя в систему - попробуйте перейти на страницу Sho - снова попасть на страницу «Моя учетная запись», даже если войдете в систему. Поэтому, принимая все это во внимание , кажется, весь этот процесс перенаправления кэшируется, если мы сначала заходим на страницу магазина без входа в систему.

Я поддерживаю поддержку WP Engine, но у нас все еще нет решения.

Есть идеи? Может быть, после перехода на WP Engine они автоматически что-то переписали в файле wp-config. php или .htaccess?

Спасибо!

1 Ответ

0 голосов
/ 16 января 2020

WP Engine специально исключен / shop / path из кеширования. Это решило проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...