在WordPress的管理员用户列表自定义列中显示用户元数据值

时间:2018-10-07 15:28:51

标签: php wordpress woocommerce metadata user-data

对于Woocommerce,借助this answer thread,我在后端(管理员)用户列表中创建了一些自定义列:

enter image description here

在数据库中,有一些名为meta_keybilling_vatnr的{​​{1}}值来自WooCommerce注册表单并保存在billing_company表中。

enter image description here

我要弄清楚的是如何为这些元键显示相应的wp_usermeta并在每个用户的相应列中显示它们。

换句话说,在字段中,应显示元密钥meta_value的内容,如果没有内容,则显示billing_vatnr。与N/A的“公司名称”列相同。

这是我到目前为止尝试过的:

billing_company

但这不起作用。

以下是我添加的不同列:

add_filter('manage_users_custom_column',  'vatnr_status_data', 10, 3);
function vatnr_status_data( $value, $column_name, $user_id ) {
    if ( 'account_vatnr' == $column_name ) {
        if( $billing_vatnr = get_user_meta( $user_id, 'billing_vatnr', true )) {
            echo $billing_vatnr; } else { echo "N/A"; }
    }
    return $value;
}

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

请尝试下面的代码,并对account_vatnraccount_companyname其他自定义字段进行一些补充:

// Add custom columns to Admin users list
add_action('manage_users_columns', 'add_custom_users_columns', 10, 1 );
function add_custom_users_columns( $columns ) {
    unset($columns['posts']);

    $columns['account_verification'] = __('Verification Status');
    $columns['account_vatnr'] = __('VAT Nr');
    $columns['account_companyname'] = __('Company Name');

    return $columns;
}


// fetching the verification status, thanks to LoicTheAztec
add_filter('manage_users_custom_column',  'add_data_to_custom_users_columns', 10, 3);
function add_data_to_custom_users_columns( $value, $column_name, $user_id ) {
    if ( 'account_verification' == $column_name ) {
        if( get_user_meta( $user_id, 'is_activated', true ) == 1 ) {
            $value = '<span style="color:green;font-weight:bold;">Verified</span>';
        } else {
            $value = '<span class="na" style="color:grey;"><em>Not Verified</em></span>';
        }
    } elseif( 'account_vatnr' == $column_name ) {
        if( $vat_nr = get_user_meta( $user_id, 'account_vatnr', true ) ) {
            $value = '<span style="color:green;font-weight:bold;">' . $vat_nr . '</span>';
        } else {
            $value = '<span class="na" style="color:grey;"><em>N/a</em></span>';
        }
    } elseif( 'account_companyname' == $column_name ) {
        if( $company = get_user_meta( $user_id, 'account_companyname', true ) ) {
            $value = '<span style="color:green;font-weight:bold;">' . $company . '</span>';
        } else {
            $value = '<span class="na" style="color:grey;"><em>N/a</em></span>';
        }

    }
    return $value;
}

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


根据wp_usermeta数据库表中的此注册数据:

enter image description here

您将获得以下显示,如自定义列的“管理员用户”列表中一样:

enter image description here

答案 1 :(得分:0)

您如何将公司名称添加到订单列表中