Snippets para Woocommerce

Filtrar pedidos de WooCommerce por Usuarios registrados

Por Diegol

Actualizado el 24 de octubre de 2026·2 min de lectura

Opciones de lectura
LucusHost, el mejor hosting

Gestionas muchos pedidos en tu tienda WooCommerce y te cuesta encontrar rápidamente a un cliente? Aunque WooCommerce ofrece un buscador básico por ID o email, muchas veces necesitamos buscar pedidos por nombre o apellido del cliente, de forma rápida y flexible. En este artículo te muestro cómo hacerlo con unas pocas líneas de código, sin plugins y con soporte para móviles.

Implementarlo mediante código

// Añadir campo de búsqueda personalizada en el admin de pedidos
add_action('restrict_manage_posts', 'agregar_filtro_nombre_cliente_en_pedidos');
function agregar_filtro_nombre_cliente_en_pedidos() {
    global $typenow;

    if ($typenow === 'shop_order') {
        $valor = isset($_GET['buscar_por_nombre_cliente']) ? sanitize_text_field($_GET['buscar_por_nombre_cliente']) : '';
        echo '<input type="search" name="buscar_por_nombre_cliente" placeholder="Buscar por nombre de cliente" value="' . esc_attr($valor) . '" style="max-width:300px;width:100%;margin-left:10px;" />';
    }
}

// Modificar la query para que filtre por nombre del cliente
add_filter('request', 'filtrar_pedidos_por_nombre_cliente');
function filtrar_pedidos_por_nombre_cliente($vars) {
    global $typenow;

    if ($typenow === 'shop_order' && !empty($_GET['buscar_por_nombre_cliente'])) {
        $nombre = sanitize_text_field($_GET['buscar_por_nombre_cliente']);

        $vars['meta_query'][] = [
            'relation' => 'OR',
            [
                'key'     => '_billing_first_name',
                'value'   => $nombre,
                'compare' => 'LIKE'
            ],
            [
                'key'     => '_billing_last_name',
                'value'   => $nombre,
                'compare' => 'LIKE'
            ]
        ];
    }

    return $vars;
}

add_action('admin_head', function () {
    echo '<style>
        @media (max-width: 782px) {
            input[name="buscar_por_nombre_cliente"] {
                display: block !important;
                width: 100% !important;
                margin-top: 10px !important;
            }

            .wrap form#posts-filter {
                display: block !important;
            }

            .tablenav.top .alignleft.actions {
                display: block !important;
                width: 100%;
            }
        }
    </style>';
});
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)
Diegol
Escrito porDiegolEspecialista en Comercio electrónico con Woocommerce. Te ayudo a crear, gestionar y publicitar tu Ecommerce en función de tu sector y público objetivo. Puedes encontrarme en Diegol.topSobre míLinkedInYouTube

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

75  +    =  84