Em resumo, esse código personaliza a consulta de busca de usuários para permitir a busca por CNPJ no campo personalizado “billing_cnpj” e também permite a busca por nome de usuário e ID de usuário. Quando você acessa a página de listagem de usuários no painel de administração e faz uma pesquisa, essa função personalizada ajusta a consulta para incluir o campo “billing_cnpj” no processo de busca.
// Adiciona a busca por CNPJ na listagem de usuários
function project_pre_user_search( $query ) {
global $wpdb;
global $pagenow;
if ('users.php' == $pagenow) {
if( empty($_REQUEST['s']) ){return;}
$query->query_fields = 'DISTINCT '.$query->query_fields;
$query->query_from .= ' LEFT JOIN '.$wpdb->usermeta.' ON '.$wpdb->usermeta.'.user_id = '.$wpdb->users.'.ID';
$query->query_where = "WHERE 1=1 AND (user_login LIKE '%".trim($_REQUEST['s'])."%' OR ID = '".trim($_REQUEST['s'])."' OR (meta_value LIKE '%".trim($_REQUEST['s'])."%' AND meta_key = 'billing_cnpj'))";
}
return $query;
}
add_action( 'pre_user_query', 'project_pre_user_search' );
Uma resposta
if (‘users.php’ == $pagenow) {
if( empty($_REQUEST[‘s’]) ){return;}
$query->query_fields = ‘DISTINCT ‘.$query->query_fields;
$query->query_from .= ‘ LEFT JOIN ‘.$wpdb->usermeta.’ ON ‘.$wpdb->usermeta.’.user_id = ‘.$wpdb->users.’.ID’;
$query->query_where = “WHERE 1=1 AND (user_login LIKE ‘%”.trim($_REQUEST[‘s’]).”%’ OR ID = ‘”.trim($_REQUEST[‘s’]).”‘ OR (meta_value LIKE ‘%”.trim($_REQUEST[‘s’]).”%’ AND meta_key = ‘billing_cnpj’))”;
}