Skip to content

Instantly share code, notes, and snippets.

@bahiirwa
Forked from WooForce/functions.php
Created November 1, 2016 09:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bahiirwa/98b49427c6a8fa2ccdc1f80209902e2c to your computer and use it in GitHub Desktop.
Save bahiirwa/98b49427c6a8fa2ccdc1f80209902e2c to your computer and use it in GitHub Desktop.
Rearrange shipping methods
add_filter('woocommerce_package_rates', 'wf_sort_shipping_methods', 10, 2);
function wf_sort_shipping_methods($available_shipping_methods, $package)
{
// Arrange shipping methods as per your requirement
$sort_order = array(
'wf_shipping_ups' => array(),
'wf_shipping_usps' => array(),
'free_shipping' => array(),
'local_pickup' => array(),
'legacy_flat_rate' => array(),
);
// unsetting all methods that needs to be sorted
foreach($available_shipping_methods as $carrier_id => $carrier){
$carrier_name = current(explode(":",$carrier_id));
if(array_key_exists($carrier_name,$sort_order)){
$sort_order[$carrier_name][$carrier_id] = $available_shipping_methods[$carrier_id];
unset($available_shipping_methods[$carrier_id]);
}
}
// adding methods again according to sort order array
foreach($sort_order as $carriers){
$available_shipping_methods = array_merge($available_shipping_methods,$carriers);
}
return $available_shipping_methods;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment