创建不保存的新用户自定义域

时间:2018-10-23 作者:Demonix

我添加了一个function “我的孩子”主题中添加一个新字段Add New User 节,以便您可以选择该成员是否只是成员或候选人等:

function show_extra_profile_fields( $user ) { 
    $previous_value = \'\';
    if( is_object($user) && isset($user->ID) ) {
        $previous_value = get_user_meta( $user->ID, \'membership\', true );
    }
    ?>
<hr>
    <h2>Membership Status</h2>
    <table class="form-table">
        <tr>
            <th><label for="membership">Membership</label></th>
            <td>
                <select name="membership" id="membership" style="width:150px;">
                    <option value="Member" <?php selected( \'Member\', get_the_author_meta( \'membership\', $user->ID ) ); ?>>Member</option>
                    <option value="Candidate" <?php selected( \'Candidate\', get_the_author_meta( \'membership\', $user->ID ) ); ?>>Candidate</option>
                </select>
            </td>
        </tr>
    </table>
<hr>
<?php }

add_action( \'show_user_profile\', \'show_extra_profile_fields\' );
add_action( \'edit_user_profile\', \'show_extra_profile_fields\' );
add_action( "user_new_form", "show_extra_profile_fields" );
还有我的Save Function:

function save_extra_profile_fields( $user_id ) {
    # save choice
    if( isset($_POST[\'membership\']) ) {
        update_user_meta( $user_id, \'membership\',  $_POST[\'membership\'] );
    }
}

add_action( "user_new_form", "save_extra_profile_fields" );
add_action( \'personal_options_update\', \'save_extra_profile_fields\' );
add_action( \'edit_user_profile_update\', \'save_extra_profile_fields\' );
我的问题是,单击“创建”后,它不会保存我在“选择”框中选择的选项。一旦我进入用户并再次更改它,它就会保存。

我可能错过了什么导致选择不保存创建?

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

尝试将保存功能挂接到user_register, 因为可能是$user_id 您的函数中的还不存在,因此没有用户可以将meta附加到其中。

结束