I am making an attempt so as to add a brand new filter that can kind orders by modification date.
Under is the code I discovered and modified. Sadly, filtering does not work, returns zero outcomes.I feel the issue is with $filter_id
perform get_filter_shop_order_meta( $area = 'woocommerce' ){
// Add under the metakey / label pairs to filter orders
return [
'last_modified' => __('Recently updated', $domain)
];
}
add_action( 'restrict_manage_posts', 'display_admin_shop_order_by_meta_filter' );
perform display_admin_shop_order_by_meta_filter(){
world $pagenow, $typenow;
if( 'shop_order' === $typenow && 'edit.php' === $pagenow ) {
$area = 'woocommerce';
$filter_id = 'filter_shop_order_by_meta';
$present = isset($_GET[$filter_id])? $_GET[$filter_id] : '';
echo '<choose title="'.$filter_id.'">
<possibility worth="">' . __('Kind by…', $area) . '</possibility>';
$choices = get_filter_shop_order_meta( $area );
foreach ( $choices as $key => $label ) {
printf( '<possibility worth="%s"%s>%s</possibility>', $key,
$key === $present ? '" selected="chosen"' : '', $label );
}
echo '</choose>';
}
}
add_filter( 'request', 'process_admin_shop_order_marketing_by_meta', 99 );
perform process_admin_shop_order_marketing_by_meta( $vars ) {
world $pagenow, $typenow;
$filter_id = 'filter_shop_order_by_meta';
if ( $pagenow == 'edit.php' && 'shop_order' === $typenow
&& isset( $_GET[$filter_id] ) && ! empty($_GET[$filter_id]) ) {
$vars['meta_key'] = $_GET[$filter_id];
$vars['orderby'] = 'ASC';
}
return $vars;
}
add_filter( 'woocommerce_shop_order_search_fields', 'shop_order_meta_search_fields', 10, 1 );
perform shop_order_meta_search_fields( $meta_keys ){
foreach ( get_filter_shop_order_meta() as $meta_key => $label ) {
$meta_keys[] = $meta_key;
}
return $meta_keys;
}
I’ll be glad about your assist.