Пользовательский разрешение - запуск кода на роль пользователя (WordPress)

StackOverflow https://stackoverflow.com/questions/2070658

Вопрос

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

требования

  • Только пользователи с роли администратора
  • может создать/редактировать дополнительное поле пользователя
  • Для всех других пользователей

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

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

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

Это было полезно?

Решение

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

$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 }
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top