Intereting Posts
Обновление старых ссылок веб-сайта на новые ссылки на сайты Как исключить почтовый ящик из WP search 'x' Преобразован в html-код в примере: 5×10 Как локализовать что-то, исходящее из настройки темы Почтовый список на основе пользователя, который вошел в систему Функция для загрузки правильного CSS для шаблона не работает Показать только топ-3 сообщений из 3-х категорий в порядке на главной странице Render P2P метаболизм за период таксономии Обнаружить изображение среди прикрепленных изображений Ошибка в скрипте системного знака Stackoverflow Пользовательский тип сообщения WP 4.4 не может добавлять новые Paypal не конвертирует валюту при использовании Gravity Forms на WordPress Запретить доступ к странице пользовательского входа для зарегистрированных пользователей wordpress wp_list_categories Загрузить таблицу стилей на странице пользовательского подменю

Лучшая практика отображения данных для одного конкретного пользователя?

Я пытаюсь создать заблокированную страницу в wordpress (через плагин), которая показывает разные данные, в зависимости от того, кто подписывается. По существу он имеет три экрана, а именно:

  1. Если вы входите в систему как администратор (или кто-то с предоставленными правами администратора), он отображает экран, который имеет информацию и функциональность только для администратора;
  2. Если вы входите в систему как пользователь по умолчанию (созданный администратором), вы попадаете на страницу частной регистрации;
  3. Если вы входите в систему с зарегистрированной учетной записью, вам предоставляется файл-загрузчик.

Способ, которым я это делаю, – с выражением if elseif else ; так: if (current_user_can( 'manage_options' )): 1, elseif ( 2 == $current_user->ID ): 2, else: 3, endif; ,

Что мне интересно, так это то, что способ, которым я называю вторую функцию, – это лучшая практика, или если есть лучший способ сделать это? Спасибо за любую помощь! 😉

Solutions Collecting From Web of "Лучшая практика отображения данных для одного конкретного пользователя?"

Чтобы проверить, является ли пользователь конкретным пользователем, у вас есть 4 варианта:

  • проверьте 'ID'
  • проверьте имя (slug)
  • проверьте электронную почту
  • проверить вход пользователя

Все эти 4 поля уникальны для каждого пользователя.

Итак, проверьте, что идентификатор является опцией, но является наихудшим: при создании этого пользователя администратор не знает идентификатор, он просмотрел идентификатор после того, как создал пользователя, поэтому вы можете написать свой код после создания пользователя. .. это плохо.

Другие 3 варианта немного (чуть-чуть) лучше: вы можете прокомментировать код до создания пользователя, EG:

 if ( 'standard_user' === $current_user->user_nicename ) { // do something } 

И после этого администратор должен создать пользователя, но не забывайте использовать 'standard_user' качестве пользовательского имени.

Однако, как только вы спросите о лучшей практике, я не могу сказать, что это лучшая практика, потому что ей нужна жесткая кодировка: вы пишете в коде что-то, что для работы нужно администратору при создании типа пользователя определенной строки … и если опечатка случиться? если администратор не помнит точно, какую строку использовать?

Если вы пишете код для себя, это можно использовать без особых усилий, но если вы пишете это кому-то другому (клиенту?) Или планируете распространять свой код, вы должны сделать это по-другому.

Существуют разные возможности, это одно:

Прежде всего, вам нужно подумать, какую роль вы обычно добавили к этому стандартному пользователю.

Предполагая, что пользователь должен быть вкладчиком.

При активации плагина создайте пользовательскую роль, способствующую клонированию .

 function myplugin_install() { $contributor = get_role('contributor'); $standard = add_role( 'standard', 'Standard User', $contributor->capabilities ); } register_activation_hook( __FILE__, 'myplugin_install' ); 

После этого напишите свое предположение следующим образом:

 $user = wp_get_current_user(); if ( user_can($user, 'manage_options') ) { // code for admin } elseif ( in_array( 'standard', $user->roles ) ) { // code for your standard user } else { // code for others } 

Теперь, когда администратор создает стандартного пользователя, вы должны выбрать «Стандартный пользователь» из раскрывающегося списка пользователя.

PS: не забудьте удалить свою настраиваемую роль при отключении плагина:

 function myplugin_unistall() { remove_role( 'standard' ); } register_deactivation_hook( __FILE__, 'myplugin_unistall' );