✅ Colores Personalizados en los Estados del Pedido de Woocommerce

Cuando administramos una tienda en línea con WooCommerce, es crucial tener una interfaz clara y fácil de entender para monitorear el estado de los pedidos. A menudo, los estados de los pedidos se presentan en una lista, lo que puede resultar confuso si no están claramente diferenciados. En este artículo, aprenderemos cómo mejorar la visualización de los estados de los pedidos mediante la asignación de colores personalizados a cada estado, lo que facilitará su identificación de un vistazo.

El siguiente código tienes que agregarlo en el functions.php de tu tema hijo o utilizar un plugin como CODE SNIPPETS.

<?php

function custom_admin_orders_status_colors() {
    ?>
    <script>
        jQuery(document).ready(function($) {
            // Función para asignar colores a los estados
            function asignarColorEstado() {
                $('.order-status').each(function() {
                    var estado = $(this).text().trim();
                    switch(estado) {
                        case 'Pendiente de pago':
                            $(this).css({
                                'background-color': '#ffcc00', // Amarillo
                                'color': '#000000' // Negro
                            });
                            break;
                        case 'Procesando':
                            $(this).css({
                                'background-color': '#00a258', // Verde
                                'color': '#ffffff' // Blanco
                            });
                            break;
                        case 'Completado':
                            $(this).css({
                                'background-color': '#3366ff', // Azul
                                'color': '#ffffff' // Blanco
                            });
                            break;
                        case 'Cancelado':
                            $(this).css({
                                'background-color': '#ff0000', // Rojo
                                'color': '#ffffff' // Blanco
                            });
                            break;
                        case 'Reembolsado':
                            $(this).css({
                                'background-color': '#9900cc', // Púrpura
                                'color': '#ffffff' // Blanco
                            });
                            break;
                        case 'Fallido':
                            $(this).css({
                                'background-color': '#ff6600', // Naranja
                                'color': '#ffffff' // Blanco
                            });
                            break;
						case 'En espera':
                            $(this).css({
                                'background-color': '#ce112d', // Rojo
                                'color': '#ffffff' // Blanco
                            });
                            break;
                        // Agrega más casos según tus necesidades
                    }
                });
            }

            // Llama a la función cuando la página está lista
            asignarColorEstado();
        });
    </script>
    <?php
}
add_action('admin_footer', 'custom_admin_orders_status_colors');

Lenguaje del código: HTML, XML (xml)

Entendiendo el Código

El código proporcionado es una función de PHP que se integra en WordPress y se ejecuta en el pie de página del área de administración (admin_footer). Esta función utiliza jQuery para manipular el DOM y asignar colores personalizados a los diferentes estados de los pedidos en la interfaz de administración de WooCommerce.

Dentro de la función

custom_admin_orders_status_colors(), se abre una etiqueta de script para comenzar con el código jQuery.

Dentro del script jQuery, se define una función llamada asignarColorEstado(), que se encarga de asignar los colores a los estados de los pedidos. Esta función se ejecuta para cada elemento con la clase .order-status.

Dentro del bucle .each(), se obtiene el texto de cada elemento y se compara con una serie de casos utilizando un switch. Dependiendo del estado del pedido, se asigna un color de fondo y un color de texto específico utilizando el método .css() de jQuery.

Después de definir la función asignarColorEstado(), se llama a esta función una vez que el documento esté listo, utilizando $(document).ready(). Esto asegura que la función se ejecute después de que la página se haya cargado completamente.

La función custom_admin_orders_status_colors() se agrega como un gancho (add_action()) en el pie de página del área de administración de WordPress.

Nos vemos en el siguiente tutorial.

Un saludo.

5/5 - (4 votos)
Compartir Artículo

Un comentario

  1. Fran Salas Master WP 1 año atrás

    Deja tus opiniones o dudas en los comentarios.

¿Tienes una duda o sugerencia sobre este artículo?

Puedes dejar un comentario de forma anónima, sin necesidad de registrarte ni proporcionar ningún dato personal. Tu mensaje se publicará como “Usuario Anónimo No Premium”, un perfil que agrupa a todos los visitantes no registrados.

Importante: para evitar el spam automático, todos los comentarios anónimos deben comenzar con el símbolo #. Ejemplo: # Tengo una duda sobre los shortcodes personalizados...

Este espacio está destinado exclusivamente a preguntas concretas, dudas o sugerencias relacionadas con el contenido del artículo. Por respeto a los demás lectores, no se publicarán temas sin relación.

Privacidad y normas:
  • No tienes que agregar tu nombre, correo ni ningún otro dato identificativo.
  • No se permiten enlaces en comentarios anónimos.
  • No se permiten símbolos especiales como < o > (menor y mayor que), ya que se consideran intentos de insertar código y serán bloqueados.
  • Todos los comentarios anónimos pasan por revisión antes de ser publicados y solo se aprobarán si aportan valor al contenido del artículo.
¿Quieres comentar con tu nombre y que tu mensaje se publique al instante? Inicia sesión o regístrate.

Deja un comentario

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

0%