【问题标题】:Adding some my account custom fields to admin user pages in Woocommerce将一些我的帐户自定义字段添加到 Woocommerce 中的管理用户页面
【发布时间】:2018-08-22 15:34:37
【问题描述】:

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

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

【问题讨论】:

    标签: php wordpress woocommerce account user-data


    【解决方案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 文件中。经过测试并且可以工作。

    【讨论】:

      猜你喜欢
      • 2021-05-30
      • 2015-03-17
      • 2022-01-03
      • 2018-05-15
      • 1970-01-01
      • 1970-01-01
      • 2012-01-13
      • 2019-12-12
      相关资源
      最近更新 更多