Publicar pedido por campo personalizado

Adicionei uma opção de ordem personalizada no woocommerce para classificar produtos com base em um campo personalizado (número).

O código a seguir funciona para produtos com campo personalizado atribuído. O meu problema é que os produtos sem o campo personalizado não classificam por data.

O que estou fazendo errado?

function order_by_clicks_post_clauses( $args ) { global $wpdb; $args['join'] .= " LEFT JOIN $wpdb->postmeta AS postmeta ON ($wpdb->posts.ID = postmeta.post_id AND postmeta.meta_key = 'clicks') "; $args['orderby'] = "postmeta.meta_value DESC, $wpdb->posts.post_date DESC"; return $args; } add_filter( 'woocommerce_get_catalog_ordering_args', 'custom_woocommerce_get_catalog_ordering_args' ); function custom_woocommerce_get_catalog_ordering_args( $args ) { $orderby_value = isset( $_GET['orderby'] ) ? wc_clean( $_GET['orderby'] ) : apply_filters( 'woocommerce_default_catalog_orderby', get_option( 'woocommerce_default_catalog_orderby' ) ); if ( 'top' == $orderby_value ) { add_filter( 'posts_clauses', 'order_by_clicks_post_clauses' ); } return $args; } 

Solutions Collecting From Web of "Publicar pedido por campo personalizado"