Я добавил со следующим кодом дополнительный столбец для моих пользователей Wordpress. Это прекрасно работает, но поиск по дополнительному столбцу не работает.
/*****************************************************************************************************
Add company in user table
*****************************************************************************************************/
add_filter( 'manage_users_columns', 'bbloomer_add_new_user_column' );
function bbloomer_add_new_user_column( $columns ) {
$columns['billing_company'] = 'Company';
return $columns;
}
add_filter( 'manage_users_custom_column', 'bbloomer_add_new_user_column_content', 10, 3 );
function bbloomer_add_new_user_column_content( $content, $column, $user_id ) {
if ( 'billing_company' === $column ) {
$customer = new WC_Customer( $user_id );
$content = $customer->get_billing_company();
}
return $content;
}
Я попытался добавить следующий код для добавления функции поиска (найден на https://wordpress.org/support/topic/adding-custom-user-meta-to-search-field-on-users-page-in-wordpress/). Это работает более или менее. Он (как там описано) становится доступным для поиска, но переписывает все остальные функции поиска. У кого-нибудь есть решение?
function search_by_users_query($query)
{
global $pagenow;
if (is_admin() && 'users.php' == $pagenow) {
//Remove trailing and starting empty spaces
$the_search = trim($query->query_vars['search']);
$the_search = trim($query->query_vars['search'], '*');
$query->set('meta_key', 'billing_company');
$query->set('meta_value', $the_search);
$query->set('meta_compare', 'LIKE');
$query->set('search', '');
}
}
add_action('pre_get_users', 'search_by_users_query', 20);