Great question — answering as the UphillTech team:
Product has a custom field as _featured which is set as yes for featured product and no for non-featured product. So you can use woocommerce_shortcode_products_query filter to overwrite WooCOmmerce shortcode. add_filter('woocommerce_shortcode_products_query', 'wh_woocommerce_shortcode_products_orderby'); function wh_woocommerce_shortcode_products_orderby($args) { $standard_array = ['menu_order', 'title', 'date', 'rand', 'id']; // print_r($args['orderby']); if (isset($args['orderby']) && !in_array($args['orderby'], $standard_array)) { $args['meta_key'] = '_featured'; $args['orderby'] = 'meta_value_num'; } // print_r($args); return $args; } Code goes in function.php file of your active child...
Full answer by Raunak Gupta: https://stackoverflow.stackexchange.com/a/42692468 (CC BY-SA 3.0).
Want it for your business? UphillTech.