WordPress: создание нового поля usermeta для пользователей

Как создать новое поле usermeta с выпадающими значениями выбора?

Я хочу создать условный оператор для всех пользователей с определенным значением нового настраиваемого поля, которое я хочу.

Например,

Новое поле будет: Утверждено. Выпадающие значения: Да и Нет

Условный оператор распознает всех пользователей с полем «Утвержденное поле» «Да». Затем он отправит код.

Im работает с функцией wp_get_current_user (), которая делает именно то, что мне нужно, но мне просто нужно новое пользовательское поле usermeta. В этом примере новое поле usermeta будет «artwork_approved».

Пример:

wp_get_current_user(); if ($current_user->artwork_approved == 'Yes'){ echo 'Thank you for approving your artwork!'; } 

Кажется, для этого нет плагина, и мне действительно нужна эта функция. Я был бы очень признателен за советы по созданию новой утилиты с раскрывающимися опциями.

* ОБНОВЛЕНИЕ:

Я использовал Register Plus Redux для создания нового поля usermeta под названием «Утвержденные работы». Я выбрал вариант с опцией «Нет» и «Да». Параметр «Нет» установлен по умолчанию.

Это создало поле «usermeta» с надписью «Artwork Approved». Я управляю учетными записями пользователей и выбираю «Да» или «Нет». Теперь с этим новым полем «usermeta», я использую функцию, которая должна проверять, имеет ли текущий пользователь одобренное произведение со значением «Да». Тогда предполагается показать определенный код.

Вот оператор if, использующий с новым полем usermeta:

 <?php global $current_user; get_currentuserinfo(); if ($current_user->artwork_approved == 'Yes') { ?> echo 'Your artwork is approved'; <?php } else { ?> echo 'Your artwork is not approved'; <?php } ?> 

Но то, что происходит, это не признание первой части оператора if. Если я войду в учетную запись с одобренным обложкой, оператор if покажет только часть «else», даже если у меня есть опция «Да» для одобренного произведения.

Я не знаю, почему он не распознает параметр «Да», как я это делаю в заявлении.

благодаря

Вы можете создать простой плагин, чтобы подключиться к действиям пользовательского профиля и добавить новое поле.

Чтобы добавить поле в форму, вы можете подключиться к действиям show_user_profile и edit_user_profile и вывести поле формы HTML. В приведенном ниже примере используется флажок, а не раскрывающийся список.

 add_action('show_user_profile', 'my_user_profile_edit_action'); add_action('edit_user_profile', 'my_user_profile_edit_action'); function my_user_profile_edit_action($user) { $checked = (isset($user->artwork_approved) && $user->artwork_approved) ? ' checked="checked"' : ''; ?> <h3>Other</h3> <label for="artwork_approved"> <input name="artwork_approved" type="checkbox" id="artwork_approved" value="1"<?php echo $checked; ?>> Artwork approved </label> <?php } 

Затем вам нужно подключиться к действиям personal_options_update и edit_user_profile_update , получить значение своего поля и сохранить его как пользовательский мета.

 add_action('personal_options_update', 'my_user_profile_update_action'); add_action('edit_user_profile_update', 'my_user_profile_update_action'); function my_user_profile_update_action($user_id) { update_user_meta($user_id, 'artwork_approved', isset($_POST['artwork_approved'])); } 

Тогда ваше состояние будет таким, как показано ниже.

 if (get_user_meta($current_user->ID, 'artwork_approved', true)) { 

Не следует ли читать второй блок кода:

 add_action('personal_options_update', 'my_user_profile_update_action'); add_action('edit_user_profile_update', 'my_user_profile_update_action'); function my_user_profile_update_action($user_id) { update_user_meta($user_id, 'artwork_approved', $_POST['artwork_approved']); } 

Значение, сохраненное update_user_meta равно $_POST['artwork_approved'] not isset($_POST['artwork_approved']) .