This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// Paste everything below this line to your child-theme's functions.php file. | |
// "Squashes" all delivery options into a single one. | |
// After pasting this snippet, reset the WooCommerce shipping cache, e.g. add an item to the cart. | |
add_filter('woocommerce_package_rates', function ($rates, $package) { | |
if (count($rates) > 1) { | |
$firstRate = null; | |
$firstRateId = null; | |
foreach ($rates as $id => $rate) { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// Paste everything below this line to your child-theme's functions.php file. | |
// Change the free shipping label to 'Free shipping'. | |
add_filter('woocommerce_cart_shipping_method_full_label', static function ($label, $method) { | |
if ($method->cost == 0) { | |
$label = 'Free shipping'; | |
} | |
return $label; | |
}, 10, 2); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// Paste everything below this line to your child-theme's functions.php file. | |
// Cancel sanitizing for all shipping option labels starting with 'HTML:'. | |
remove_filter('woocommerce_shipping_rate_label', 'sanitize_text_field'); | |
add_filter('woocommerce_shipping_rate_label', function($label) { | |
if (substr_compare($label, 'HTML:', 0, 5) === 0) { | |
$label = ltrim(substr($label, 5)); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// Paste everything below this line to your child-theme's functions.php file. | |
// Rounds up all shipping rates by the $roundUpBy value. | |
// After pasting this snippet, reset the WooCommerce shipping cache, e.g. add an item to the cart. | |
add_filter('woocommerce_package_rates', function ($rates, $package) { | |
$roundUpBy = 5; | |
foreach ($rates as $rate) { | |
$rate->cost = ceil($rate->cost / $roundUpBy) * $roundUpBy; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// Paste everything below this line to your child-theme's functions.php file. | |
// Renames any shipping option titled exactly 'Weight Based Shipping' to 'Shipping'. | |
add_filter('woocommerce_shipping_method_add_rate_args', function($rateArgs) { | |
if (isset($rateArgs['label']) && $rateArgs['label'] === 'Weight Based Shipping') { | |
$rateArgs['label'] = 'Shipping'; | |
} | |
return $rateArgs; | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// Paste everything below this line to your child-theme's functions.php file. | |
// Tree Table Rate Shipping: pass non-shippable (virtual, etc) items as well to shipping rules. | |
add_filter('trs_include_non_shippable_items', '__return_true'); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// Paste everything below this line to your child-theme's functions.php file. | |
// Exclude product attributes from the 'Contains' condition. | |
add_filter('woocommerce_attribute_taxonomies', function($taxs) { | |
$backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 10); | |
foreach ($backtrace as $call) { | |
if (isset($call['file']) && preg_match('#wc-tree-table-rate-shipping(/|\\\\)tpl.php#', $call['file'])) { | |
return []; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// Paste everything below this line to your child-theme's functions.php file. | |
// Transforms | |
// >> Shipping Option Name (shipping option description): $99 | |
// to | |
// >> Shipping Option Name: $99<br> | |
// >> <small>shipping option description</small> | |
add_filter('woocommerce_cart_shipping_method_full_label', function($label, $method) { | |
if (($open = strpos($label, '(')) !== false && |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// Paste everything below this line to your theme's functions.php file. | |
// Hide free shipping options prices. | |
// Example: | |
// — Free Shipping: $0.00 => Free Shipping | |
// — Regular Shipping: $20 => Regular Shipping: $20 | |
add_filter('woocommerce_cart_shipping_method_full_label', function($label, WC_Shipping_Rate $rate) { | |
if (isset($rate->cost) && (float)$rate->cost === 0.0) { | |
list($label,) = explode(':', $label, 2); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// Paste everything below this line to your child-theme's functions.php file. | |
// Cut shipping option ids if they exceed 50-chars length. | |
add_filter('woocommerce_package_rates', function ($rates) { | |
$shortened = array(); | |
foreach ($rates as $rate_id => $rate) { | |
$rate_id = substr($rate_id, 0, 50); | |
$rate->id = $rate_id; | |
$shortened[$rate_id] = $rate; |
NewerOlder