Отображение значений метаданных пользователя в пользовательских списках администратора в WordPress - PullRequest
0 голосов
/ 07 октября 2018

Для Woocommerce, с помощью этой ветки ответов , я создал несколько пользовательских столбцов в списке пользователей Back-end (Admin):

enter image description here

В базе данных есть некоторые meta_key значения, называемые billing_vatnr и billing_company, взятые из регистрационной формы WooCommerce и сохраненные в таблице wp_usermeta.

enter image description here

Я пытаюсь выяснить, как отобразить соответствующие meta_value для этих мета-ключей и показать их в соответствующих столбцах для каждого пользователя.

Другими словами, в поле VAT Nr должно отображаться содержимое мета-ключа 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;
}

Но это не работает.

ЗдесьВот разные столбцы, которые я добавил:

// creating the columns
add_action('manage_users_columns','account_verification_status_and_company_columns');
function account_verification_status_and_company_columns($column_headers) {
    unset($column_headers['posts']);
    $column_headers['account_verification'] = __('Verification Status');
    $column_headers['account_vatnr'] = __('VAT Nr');
    $column_headers['account_companyname'] = __('Company Name');
    return $column_headers;
}


// fetching the verification status, thanks to LoicTheAztec
add_filter('manage_users_custom_column',  'user_account_verification_status_data', 10, 3);
function user_account_verification_status_data( $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>';
        }
    }
    return $value;
}

Любая помощь очень ценится.

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

как бы вы добавили название компании в список заказов

0 голосов
/ 08 октября 2018

Попробуйте следующий слегка пересмотренный код с некоторыми дополнениями для account_vatnr и account_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

Вы получите следующееотобразить как в списке пользователей Admin для ваших пользовательских столбцов:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...