Intereting Posts
Как определить базовый путь wordpress, когда ядро ​​wordpress не загружено Пользовательское поле вне цикла и внутри массива Галерея, подобная WooCommerce add_action в пространстве имен не работает WP API для получения всех записей медиа / сообщений, если счетчик больше 100 Импорт пользователей в Buddypress с настраиваемыми полями Различные размеры изображений на странице продукта, жесткие уроки не отмечены, но все еще видны обрезанные миниатюры Не удается загрузить изображение продукта в панели инструментов поставщика pro с помощью браузера Chrome Параметры Варианты Framework не выводятся Как использовать svg как настраиваемый заголовок? Использование переходных процессов в сочетании с memcached Как публиковать новые сообщения / страницы в корневой папке вместо подпапки, но сохранить прежнюю структуру? вызывать пользовательское действие после удаления учетной записи Как выполнить функцию javascript непосредственно перед сохранением сообщения woocommerce или сообщения? изменить добавить в корзину кнопка ссылка

Установите cookie, а затем обновите страницу

Я написал небольшой плагин WordPress ( mobileesp-for-wordpress ), который перенаправляет мобильных пользователей на мобильный сайт. Он основан на mobileesp .

Сам плагин отлично работает, проблема заключается в том, что я добавил возможность просмотра всего сайта. Эта функция работает, проверяя файл cookie, и если файл cookie не перенаправляет пользователя на мобильный сайт.

Это также работает, но пользователь должен дважды щелкнуть ссылку. Однажды установите cookie и второй раз, чтобы вернуть их на сайт WordPress. Полный код можно найти здесь, но я думаю, что это значимая часть.

$get_cookie_check = $_GET['view_full_site']; if(isset($get_cookie_check)){ if($get_cookie_check =='true'){ //set the cookie setcookie("mobileesp_wp_full_site", 'true', time()+86400, "/", $domain); } } //cookie variable $full_site_cookie= $_COOKIE['mobileesp_wp_full_site']; //make sure the target url is set and full site cookie isn't set if((get_option('mobileesp_wp_target_url') != '') && ($full_site_cookie !="true")){ //check for a mobile browser and redirect the user } 

}

Временным решением было бы проверить наличие cookie на мобильном сайте, а затем перенаправить их, но есть лучший способ сделать это.

Solutions Collecting From Web of "Установите cookie, а затем обновите страницу"

Функция setcookie готовит заголовок cookie HTTP, который будет отправлен при загрузке следующей страницы. Вот почему $_COOKIE не обновляется автоматически.

Вы можете вручную обновить $_COOKIE для использования по текущему запросу. Просто поставьте это ниже setcookie() :

 $_COOKIE['mobileesp_wp_full_site'] = 'true'; 

Кстати, я бы предпочел не работать со строками типа 'true' , а просто с целыми числами ( 0 и 1 ). Затем вы можете просто проверить их так ! empty($_GET['view_full_site']) ! empty($_GET['view_full_site']) .