Пользовательский разрешение - запуск кода на роль пользователя (WordPress)
-
20-09-2019 - |
Вопрос
Я разрабатываю пользовательский плагин в PHP, поэтому существующие плагины не могут использоваться. Чего я хочу достичь, так это то, что я хочу отобразить различный URL -адрес в посте для некоторых пользователей. Для пользователей, которые зарегистрированы в WordPress, связались со мной и «одобрены». Я хочу настроить это дополнительное поле профиля пользователя, чтобы я мог использовать это поле в условии. Таким образом, гости и пользователи без этого поля или без правильного значения в этом поле получат URL1, но другие URL2.
требования
- Только пользователи с роли администратора
- может создать/редактировать дополнительное поле пользователя
- Для всех других пользователей
Я знаю, как я могу добавить дополнительное поле профиля пользователя в WordPress (см. Ссылки ниже), но я не знаю, как ограничить редактирование этого поля пользователям в данной роли и как пользователь с ролью администратора может создавать/редактировать это подано для все пользователи. Мне кажется, что я должен добавить новый код в WordPress Dashboard/Users/New Users и/или DASHBOARD/пользователи/авторы и пользователи.
Я сделал несколько поисков в Google и нашел несколько сайтов о том, как добавить дополнительное поле пользователя
- Добавление и использование пользовательских полей пользователя
- Поля контакта пользователя в WordPress 2.9
- Добавить данные в поле пользователя в WordPress
Мне кажется, что Добавление и использование пользовательских полей пользователя Это почти то, что я хочу сделать, но я все еще не знаю, как управлять «только администратором».
Решение
Как насчет этого:
$ID="2";
$user = new WP_User($ID);
if ($user->wp_capabilities['administrator']==1) {
//code here
}
увидеть эту ссылку о возможности пользователя для WordPress
Итак, с приведенным выше, и этой ссылкой, которую вы дали, может быть, что -то вроде этого:
function my_show_extra_profile_fields( $user ) {
if ($user->wp_capabilities['administrator']!=1) {
return false;
} ?>
<h3>Extra profile information</h3>
<table class="form-table">
<tr>
<th><label for="twitter">Twitter</label></th>
<td>
<input type="text" name="twitter" id="twitter" value="<?php echo esc_attr( get_the_author_meta( 'twitter', $user->ID ) ); ?>" class="regular-text" /><br />
<span class="description">Please enter your Twitter username.</span>
</td>
</tr>
</table>
<?php }