Update WooCommerce Delivery cost with condition

Change Delivery price base on what item in cart

/**
 * Add extra price to shipping for a product
 */
add_filter( 'woocommerce_shipping_method_add_rate_args', 'snippet_charge_shipping_extra_per_product', 100, 2 );
function snippet_charge_shipping_extra_per_product( $args, $shipping_method ) {
	// Check that cart contains a product named "Bananas"
	$contains = false;
	foreach ( WC()->cart->get_cart() as $key => $item ) {
		if ( isset( $item['data'] ) && method_exists( $item['data'], 'get_title' ) && $item['data']->get_title() === "Bananas" ) {
			$contains = true;
			break;
		}
	}
	
	// Check that we are processing Economy Shipping method
	if ( $contains && $shipping_method && $shipping_method->get_title() === "Economy Shipping" ) {
		// Add extra of $ 3 to the shipping method. Extra price is added to $args['cost']
		// Taxes will be calculated from the new price.
		$args['cost'] += 3;
	}

	return $args;
}

If you did not see the changes turn on debug mood

September 25, 2021

When we work with conditions often need to know different values. To check values at the cart page use the code below

// define the woocommerce_before_cart callback 
function action_woocommerce_before_cart( $wccm_before_checkout ) { 
	foreach ( WC()->cart->get_cart() as $key => $item ) {
		echo '<pre>';
		print_r($item);
		echo '</pre>';
	}
}; 
         
// add the action 
add_action( 'woocommerce_before_cart', 'action_woocommerce_before_cart', 10, 1 );
Previous Code

JS set interval for an event until element show

Sometimes we need to active an event when a specif ...

Leave a Reply

Your email address will not be published. Required fields are marked *

5 + 13 =

skype

Need Coding Help?

Connect Skype

ACF

Elementor

JavaScript

jQuery

Others

PHP

WooCommerce

WordPress

WooCommerce Discount based on Cart Item

A discount on the total order with condition based ...

Replace add to cart button with the product page link & Change add to cart text

`Replace add to cart button with product single li ...

Get WooCommerce product info

Show product info in the place as you wish to. It ...

Add an additional custom checkbox in the WooCommerce checkout

Add an additional custom checkbox after the terms ...

WooCommerce Ajax Product Search and Category Filter Without Plugin

WooCommerce Ajax Product Search with Category Filt ...

top