在Woocommerce中将一些我的帐户自定义字段添加到管理员用户页面

时间:2018-08-22 15:34:38

标签: php wordpress woocommerce account user-data

在这里的另一个问题中,用户问了How to add a custom fields in Edit Account page

我希望做同样的事情,但还要在用户个人资料页面上添加相同的自定义字段,管理员可以在其中看到它。这可能吗?

1 个答案:

答案 0 :(得分:1)

已更新-要在Wordpress管理员用户页面中添加这两个“收藏夹颜色”自定义字段,您将使用以下内容:

// Add the custom field "favorite_color" in admin user
add_action( 'show_user_profile', 'add_extra_custom_user_data', 1, 1 );
add_action( 'edit_user_profile', 'add_extra_custom_user_data', 1, 1 );
function add_extra_custom_user_data( $user )
{
    ?>
        <h3><?php _e("Other details",'woocommerce' ); ?></h3>
        <table class="form-table">
            <tr>
                <th><label for="favorite_color"><?php _e( 'Favorite color', 'woocommerce' ); ?></label></th>
                <td><input type="text" name="favorite_color" value="<?php echo esc_attr(get_the_author_meta( 'favorite_color', $user->ID )); ?>" class="regular-text" /></td>
            </tr><tr>
                <th><label for="favorite_color2"><?php _e( 'Favorite color 2', 'woocommerce' ); ?></label></th>
                <td><input type="text" name="favorite_color2" value="<?php echo esc_attr(get_the_author_meta( 'favorite_color2', $user->ID )); ?>" class="regular-text" /></td>
            </tr>
        </table>
        <br />
    <?php
}

// Save the custom field 'favorite_color' in admin user
add_action( 'personal_options_update', 'save_extra_custom_user_data' );
add_action( 'edit_user_profile_update', 'save_extra_custom_user_data' );
function save_extra_custom_user_data( $user_id )
{
    if( ! empty($_POST['favorite_color']) )
        update_user_meta( $user_id, 'favorite_color', sanitize_text_field( $_POST['favorite_color'] ) );

    if( ! empty($_POST['favorite_color2']) )
        update_user_meta( $user_id, 'favorite_color2', sanitize_text_field( $_POST['favorite_color2'] ) );
}

代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试,可以正常工作。

enter image description here