Как добавить значение в пользовательское поле пользователя, когда ловушка срабатывает / срабатывает - PullRequest
0 голосов
/ 15 сентября 2018

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

add_action( 'show_user_profile', 'extra_user_profile_fields' );
add_action( 'edit_user_profile', 'extra_user_profile_fields' );

function extra_user_profile_fields( $user ) { ?>
    <h3><?php _e("Example Section", "blank"); ?></h3>

    <table class="form-table">
    <tr>
        <th><label for="example"><?php _e("Example"); ?></label></th>
        <td>
            <input type="text" name="example" id="example" value="<?php echo esc_attr( get_the_author_meta( 'example', $user->ID ) ); ?>" class="regular-text" /><br />
            <span class="description"><?php _e("This field should add YES when to field when a hook is triggered ad empty if hook not triggered."); ?></span>
        </td>
    </tr>
    </table>
<?php }

и сохранить ввод, используя следующий код

add_action( 'personal_options_update', 'save_extra_user_profile_fields' );
add_action( 'edit_user_profile_update', 'save_extra_user_profile_fields' );

function save_extra_user_profile_fields( $user_id ) {
    if ( !current_user_can( 'edit_user', $user_id ) ) { 
        return false; 
    }
    update_user_meta( $user_id, 'example', $_POST['example'] );
}

Я хотел бы, чтобы это новое сгенерированное настраиваемое полебыть заполненным YES при срабатывании ловушки user_register (т. е. когда пользователь регистрируется, следует добавить YES в поле и обновить его)

, чтобы я мог получить значение YES и использовать его для динамического отображения содержимого.Что-то вроде

$user = wp_get_current_user();
if ( get_the_author_meta( 'example', $user->ID ) = 'YES') {
   //Show this page
} else {
   return 'Your are not allowed to view this page';
}

Как мне этого добиться?Спасибо

1 Ответ

0 голосов
/ 16 сентября 2018

Это должно работать:

function add_yes_to_field ( $user_id ) {
    update_user_meta( $user_id, 'winner', 'YES' );
} 
add_action( 'user_register', 'add_yes_to_field');

Что касается get_the_author_meta(), я не думаю, что вы действительно можете получить метаданные пользователя с ним, потому что он вызывает get_userdata(). Вместо этого вы можете использовать get_user_meta().

https://developer.wordpress.org/reference/functions/get_the_author_meta/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...