Make the ship to column sortable in the admin orders list in WooCommerce

Make the ship to column sortable in the admin orders list in WooCommerce on child sites.

Snippet Type

Execute on Child Sites

Snippet

// Make existing "Ship to" column sortable on admin orders list
add_filter( "manage_edit-shop_order_sortable_columns", 'shop_order_column_meta_field_sortable' );
function shop_order_column_meta_field_sortable( $columns )
{
    $meta_key = '_shipping_address_1';
    return wp_parse_args( array('shipping_address' => $meta_key), $columns );
}

// Make "Ship to" sorting properly (by numerical values)
add_action('pre_get_posts', 'shop_order_column_meta_field_sortable_orderby' );
function shop_order_column_meta_field_sortable_orderby( $query ) {
    global $pagenow;

    // Targeting WooCommerce admin orders list only
    if ( 'edit.php' === $pagenow && isset($_GET['post_type']) && 'shop_order' === $_GET['post_type'] ){

        $orderby  = $query->get( 'orderby');
        $meta_key = '_shipping_address_1';

        if ('_shipping_address_1' === $orderby){
          $query->set('meta_key', $meta_key);
          $query->set('orderby', 'meta_value_num'); // Or using 'meta_value'
        }
    }
}

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.