Перестала работать правильно корзина со временем
Не связано ли это случайно со временем, когда было неграмотно настроено кеширование?
Я отключал плагины связанные с кэшированием, это не помогло решить проблему
Надо еще удалить все созданные ими кеши
Я использую для кэша плагин WP-Optimize, перепробовал разное удалял кэш везде отключал плагин, пробовал то-же самое проделать через режим инкогнито. Поотключал все, что только можно связанное с кэшем. Попробовал с телефона сделать на котором точно кэша нету и таже проблема.
Это точно проблема с кэшам? Мне кажется я уже все перепробовал и нечего не сработала. Как вы поняли что проблема в кэше?
Проблема актуальна
-
Ответ изменён 3 недели, 5 дней назад пользователем
nightchosen.
Это точно проблема с кэшам?
Не точно, но очень похоже
Я использую для кэша плагин WP-Optimize
Если в настройках не стоит галка «Показывать кэшированные страницы авторизованным пользователям», то проверьте есть ли этот баг в корзине, когда вы авторизованы как админ
Модератор
Yuri
(@yube)
Как вы поняли что проблема в кэше?
Элементарно, дорогой Ватсон! Вы же сами написали «Приходится постоянно нажимать обновить страницу, тогда видны изменения«
Простой метод проверки: F12 (Developer tools) — Network — Disable Cache и пробуем воспроизвести проблему. Если глюк пропал, проблема связана с кэшированием.
Простой метод проверки: F12 (Developer tools) — Network — Disable Cache
Да действительно все заработала как надо.
Может есть предложение как тогда можно отключить кэш на странице корзины? По правде говоря я вроде везде проверил, и вроде настроил, и почистил кэш но если не смотреть через f12, то проблема есть. Как можно найти от куда идет этот кэш?
Модератор
Yuri
(@yube)
Поскольку это кэширование самого верхнего, браузерного уровня, то смотрите там, где есть настройки http-заголовков. Я вот вижу в заголовках 3-минутное кэширование:
date: Sun, 05 Mar 2023 06:56:52 GMT
expires: Sun, 05 Mar 2023 06:59:52 GMT
Ищите эти 3мин/180сек.
Не получается обнаружить данный кэш
Могу ли я запретить с помощью WP-Optimize плагина любой кэш на страницу https://olko.by/cart/ и как это сделать?
Как лучше всего проверить изменения связанные с кэшем, ведь кэш может хранится и в браузере, плагинах или еще где? Если есть простой метод проверки, то он бы то-же был полезен.
Может есть более простой и действенный способ запретить кэш к данной странице? Возможно есть более подробное описание, как найти строки кода связанные с этим кэшом, который приводит к багу?
Уже много чего перепробовал:
— отключал плагины
— использовал настройку плагина WP-Optimize / перешел в дополнительные настройки -> URL-адреса для исключения из кэширования -> и вписал туада /cart -> возможно в нем можно лучше указать?
— пытался почистить строчки в .htaccess связанные с кэшем
— в хосте тоже ничего не кэшируется
И баг остается, только через f12 вижу, как все правильно работает. Помогите решить проблему гениальным советом!
-
Ответ изменён 3 недели, 5 дней назад пользователем
nightchosen.
Могу ли я запретить с помощью WP-Optimize плагина любой кэш на страницу https://olko.by/cart/ и как это сделать?
WP-Optimize > Кэширование > Дополнительные настройки > Условные теги для исключения из кэширования
is_cart
Модератор
Yuri
(@yube)
Судя по тому, что /readme.html отдается nginx’ом с такими же заголовками, то я бы искал в настройках хостинга. Или теребил техподдержку.
Возможно, но не обязательно, поможет следующий сниппет (пишу на коленке без проверки)
add_action( 'wp', function() {
if ( is_cart() ) {
nocache_headers();
}
});
Не помог 1-вый и 2-ой совет
Я провел исследование и заметил, что если удалить товар, а потом подождать 3 минуты, а потом удалить следующий товар то все работает.
Похоже и в правду есть кэш в 3 минуты, который я не могу найти
add_action( 'wp', function() {
if ( is_cart() ) {
nocache_headers();
}
});
Данный код не отключил этот кэш и настройка WP-Optimize то-же не справилась с этим.
Остается тот-же вопрос, как все таки избавиться от данного кэша?
Помог такой код
add_action( 'wp', function() {
if ( is_cart() ) {
nocache_headers();
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
}
});
Но возник другой баг, при удаление из корзины товара, а потом добавления того же товара его опять нельзя удалить и приходится ждать 3 минуты, что-бы его можно было удалять.
Кстати с разными товарами стало работать, а вот если добавлять один и тот-же товар, то опять появляется кэш на 3 минуты.
Возможно есть лучшее решение это обойти?
Модератор
Yuri
(@yube)
Да это вообще не решение, а костыль. Решение — вправить конфигурацию веб-сервера, чтобы он не выставлял заголовки там, где не просят. Я почти уверен, что, кроме /cart/, назойливое кэширование гадит еще в куче мест, менее явных, чем страница корзины.
Подскажите как это сделать? Вы писали «в настройках хостинга», но у меня есть такой-же интернет магазин на данном хостинге и у него все работает хорошо… К тому-же я спросил у тех поддержки хостинга, на что мне дали ответ, что со стороны хостинга ничего не кэшируется. Я не понимаю как хостинг влияет на кэш.
А в wordpress у меня не получается исправить данный баг до конца.
Могу ли я получить немного конкретней ответ. Как вправить конфигурацию веб-сервера?
Плюс ко всему раньше данной проблемы не было, просто настраивал плагин и все работало (в корзине не было проблем), проблемы возникли после нескольких обновлений wordpress + плагинов / возможно БД. Как такое получается, что после обновления всего этого я могу получать подобные баги с кэшем?