Я добавил код для своих функций. 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?
Спасибо!