无法更新自定义字段中的用户元

时间:2018-08-30 作者:Diana Rider

我有字段要更改用户元,但更新用户元不会更改

add_action(\'user_register\', \'save_extra_fields_country_institution_user_form\');
add_action(\'profile_update\', \'save_extra_fields_country_institution_user_form\');
add_action(\'edit_user_profile\', \'save_extra_fields_country_institution_user_form\' );
    function save_extra_fields_country_institution_user_form($user_id){
        # again do this only if you can
        if(!current_user_can(\'manage_options\') || !current_user_can( \'edit_user\' ))
            return false;

        # save my custom field
        update_user_meta($user_id, \'verifier_assign_country\', $_POST[\'country-verifier\']);
        update_user_meta($user_id, \'verifier_assign_institution\', $_POST[\'institution-verifier\']);
        update_user_meta($user_id, \'verifier_price\', $_POST[\'user_price\']);

    }

1 个回复
最合适的回答,由SO网友:anmari 整理而成

欢迎使用,或者使用传递给user\\u id的edit\\u user\\u profile\\u update

add_action(\'edit_user_profile_update\', \'save_extra_fields_country_institution_user_form\' );
    function save_extra_fields_country_institution_user_form($user_id){
        # again do this only if you can
        if(!current_user_can(\'manage_options\') || !current_user_can( \'edit_user\' ))
           return false;
        # save my custom field
        $result = update_user_meta($user_id, \'verifier_assign_country\', \'test3\');
    }
或者,当我在“edit\\u user\\u profile”上测试时,将传递整个用户对象,而不仅仅是用户id,因此请使用:

function save_extra_fields_country_institution_user_form($user){
    # again do this only if you can
    if(!current_user_can(\'manage_options\') || !current_user_can( \'edit_user\' ))
       return false;
    # save my custom field
    $result = update_user_meta($user->ID, \'verifier_assign_country\', \'test\');
}
然而https://codex.wordpress.org/Plugin_API/Action_Reference/edit_user_profile 更旨在向屏幕中添加字段,所以我认为您需要的是“edit\\u user\\u profile\\u update”

结束

相关推荐

从具有序列化值的元键获取GET_USERS

我想做一个get_users() 当元键有两个值时。例如,在db中,它如下所示:a:2:{i:0;s:10:\"31.08.2017\";i:1;s:9:\"username\";} 当我进行查询时:$claimed_users = get_users(\'meta_key=username\'); 并尝试输出它:print_r($claimed_users);它刚刚回来Array().我做错了什么?有没有更好的方法?