Intereting Posts
Плагины не отображаются после переименования плагинов Отдельные страницы для пользовательских типов сообщений Шаблон таксономического архива должен иметь условную логику для отображения дочерних категорий Постоянная ссылка типа пользовательских сообщений и пользовательской таксономии Язык wp изменен после обновления до centos 5.8 Возврат пользовательских таксономий Гель все изображение определенного типа сообщения Список всех сообщений в категории с функцией query_post () WordPress – другое изображение значка зависит от номера комментария wp_editor сохранить все содержимое Изменить порядок пользовательских столбцов для панелей редактирования Обновлять канал чаще Архитектура механизма предварительного просмотра wp_nav_menu с WP как чистая CMS Определить внутри настраиваемого запроса тип типа сообщения для назначения пользовательских классов

Как сохранить файлы cookie для участников

У меня есть сайт, в котором есть членство. В настоящее время мы разрешаем настройку предустановленных тем. Это использует файлы cookie, однако я хочу, чтобы мои пользователи имели одну и ту же тему на всех своих устройствах. Я хочу сохранить файлы cookie в учетной записи пользователя. Нужно как-то это сделать. Плагин, который я использую для переключения темы, – Theme Switcher от Райана Борена.

Вы можете прочитать cookie и проверить, зарегистрирован ли текущий пользователь, используя get_current_user_id (). Если они просто сохраняют значение cookie для user_meta.

$cookie_name = ''; if( isset( $_COOKIE[$cookie_name] ) ) { $user_id = get_current_user_id(); if( $user_id ) { $meta_key = $cookie_name; $meta_value = $_COOKIE[$cookie_name]; update_user_meta( $user_id, $meta_key, $meta_value ); } } 

Добавив к ответу @ stillatmylinux,

Вы можете прочитать cookie и проверить, зарегистрирован ли текущий пользователь, используя get_current_user_id (). Если они просто сохраняют значение cookie для user_meta.

Это позволит получить cookie для wptheme , получить идентификатор пользователя и сохранить его в метателе пользователя:

 <?php $cookie_name = 'wptheme'; if( isset( $_COOKIE[$cookie_name] ) ) { $user_id = get_current_user_id(); if( $user_id ) { $meta_key = $cookie_name; $meta_value = $_COOKIE[$cookie_name]; update_user_meta( $user_id, $meta_key, $meta_value ); } } ?> 

Это даст пользователю мета для одного пользователя и повторит его в код cookie javascript:

<script>document.cookie = "wptheme=<?php $user_id = get_current_user_id(); $key = 'wptheme'; $single = true; $themecookie = get_user_meta( $user_id, $key, $single ); echo $themecookie; ?>";</script>

Для любого другого файла cookie просто измените wptheme на любое имя файла cookie. Однако у этого кода есть свои проблемы. Например, после входа в систему тема по умолчанию будет отображаться сама, тогда вы должны обновиться. Кроме того, будьте осторожны с несколькими сеансами и темами.