Soporte » Plugins y Hacks » WooCommerce » Pedidos Lista – Ordenar filas seleccionando la columna desde function.php

  • Hola!

    Estoy buscando el código para añadir a function.php que obligue a ordenar las filas en la lista de pedidos automáticamente por una de las columnas personalizadas que he generado con los filtros:
    «manage_edit-shop_order_columns»
    «manage_edit-shop_order_sortable_columns»
    «manage_shop_order_posts_custom_column»

    Con «manage_edit-shop_order_sortable_columns» consigo que el usuario, pueda ordenar seleccionando la columna, pero necesito indicar con que orden hace la carga inicial.

    ¡Mil gracias!

Viendo 4 respuestas - de la 1 a la 4 (de un total de 4)
  • Moderador Rafa Poveda

    (@bi0xid)

    Hola @alexstd.

    En este artículo en inglés, en el apartado Sortable Columns, tienes una posible solución.

    Con un código como este adaptado a tus columnas podrás darle el orden que necesites.

    function bcw_sort_metabox($vars) {
    	if(array_key_exists('orderby', $vars)) {
    		if('Metabox' == $vars['orderby']) {
    			$vars['orderby'] = 'meta_value';
    			$vars['meta_key'] = '_my_meta_value_key';
    		}
    	}
    	return $vars;
    }
    add_filter('request', 'bcw_sort_metabox');

    Espero que te sirva.

    Un saludo.

    Iniciador del debate alexstd

    (@alexstd)

    Hola Rafa, Muchas gracias por la respuesta. Ya lo intenté y no funciona. No he encontrado tampoco mucha información por blogs.
    Sigo insistiendo a ver si doy con la solución.

    Moderador Rafa Poveda

    (@bi0xid)

    Puedes ver también si algún plugin de ordenación de columnas te puede ayudar. No sé hasta dónde llega la versión gratuita pero te puede ser útil.

    Espero que lo consigas solucionar.

    Iniciador del debate alexstd

    (@alexstd)

    Gracias Rafa. Por motivos de seguridad, necesito hacerlo sin la dependencia de plugins. Por ello buscaba una solución con hooks desde functions.php

    Un saludo!

Viendo 4 respuestas - de la 1 a la 4 (de un total de 4)
  • Debes estar registrado para responder a este debate.