add_filter( 'woocommerce_package_rates' , 'wpcb_move_wc_shipping_method_to_the_end', PHP_INT_MAX, 2 ); if ( ! function_exists( 'wpcb_move_wc_shipping_method_to_the_end' ) ) { /** * wpcb_move_wc_shipping_method_to_the_end. * * @see https://wpcodebook.com/snippets/move-woocommerce-shipping-method-to-the-end-of-the-list-on-frontend-with-php/ */ function wpcb_move_wc_shipping_method_to_the_end( $rates, $package ) { if ( ! $rates ) { return $rates; } $shipping_method_id_to_move = 'flat_rate'; // Important: change this to your method's ID if ( isset( $rates[ $shipping_method_id_to_move ] ) ) { $saved_rate = $rates[ $shipping_method_id_to_move ]; unset( $rates[ $shipping_method_id_to_move ] ); $rates[ $shipping_method_id_to_move ] = $saved_rate; } return $rates; } }
This is useful if you have old shipping methods in WooCommerce (i.e. those that are not added to shipping zones).