Разрешение пользователя - запуск кода на роль пользователя (Wordpress) - PullRequest
3 голосов
/ 15 января 2010

Я разрабатываю собственный плагин на PHP, чтобы существующие плагины не использовались. Чего я хочу добиться, так это того, что я хочу отображать разные ссылки в сообщении для некоторых пользователей. Для пользователей, которые зарегистрированы в WordPress, связались со мной и «одобрены». Я хочу настроить это дополнительное поле профиля пользователя, чтобы я мог использовать это поле в условии. Таким образом, гости и пользователи без этого поля или без правильного значения в этом поле получат url1, а остальные url2.

Требования

  • только пользователи с ролью администратора
  • может создавать / редактировать дополнительные поля профиля пользователя
  • для всех остальных пользователей

Я знаю, как я могу добавить дополнительное поле профиля пользователя в Wordpress (см. Ссылки ниже), но я не знаю, как ограничить редактирование этого поля пользователями в данной роли, и как пользователь с ролью администратора может создавать / редактировать это подано для всех пользователей. Мне кажется, что я должен добавить новый код в панель управления WordPress / пользователи / новый пользователь и / или панель инструментов / пользователи / авторы и пользователи.

Я провел поиск в Google и нашел несколько сайтов о том, как добавить дополнительное поле профиля пользователя

Мне кажется, Добавление и использование настраиваемых полей профиля пользователя - это почти то, что я хочу сделать, но я все еще не знаю, как управлять «единственным администратором».

1 Ответ

3 голосов
/ 21 января 2010

Как насчет этого:

$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 }
...