Skip to content

Instantly share code, notes, and snippets.

View dangoodman's full-sized avatar

dangoodman dangoodman

View GitHub Profile
@dangoodman
dangoodman / functions.php
Created April 8, 2020 13:40
WooCommerce: round up shipping prices
<?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;
}
@dangoodman
dangoodman / functions.php
Created April 10, 2020 17:46
WooCommerce: allow HTML in shipping option labels
<?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));
}
@dangoodman
dangoodman / functions.php
Created August 4, 2020 09:32
WooCommerce: Replace free shipping label
<?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);
@dangoodman
dangoodman / functions.php
Created May 19, 2021 12:33
"Squash" all delivery options into a single one
<?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) {