Russ Powers
Russ Powers

Reputation: 101

Modify cart total amount with filter or hook

Okay so I'm trying to write a filter or hook that will modify the total amount of the shopping cart depending on the total overall amount of items in the shopping cart. For example, if there are three items in the shopping cart, I want to deduct twenty dollars from the total order. Below is the code I have so far, any help is greatly appreciated!

add_filter('woocommerce_cart_contents_total', 'bundle_deals');

function bundle_deals( $cart_contents_total, $cart_contents_count) {
   global $woocommerce;

   if ($woocommerce->cart->get_cart()->cart_contents_count <= 3) {
     $cart_contents_total = $woocommerce->cart->get_cart()->cart_contents_total - 20.00;
   }

   return $cart_contents_total;
}

Upvotes: 6

Views: 17245

Answers (2)

Sandeep Sisfy
Sandeep Sisfy

Reputation: 36

function woocommerce_cart_subtotal(  $cart_subtotal, $compound, $obj  ){

$t = 0;
foreach ( $obj->cart_contents as $key => $product ) : 

    $product_price = $product['line_total'];    

    foreach ( WC()->cart->get_coupons( 'order' ) as $code => $coupon ) : 

            $product_price  = 19;//wpq_9522_discount( $product['line_total'], $coupon->discount_type, $coupon->amount ); 

    endforeach; 

    $t += $product_price;

endforeach; 

return $cart_subtotal;//( $t > 0 ) ? sprintf( '<s>%s</s> %s',      
$cart_subtotal, wc_price( $t ) ) : $cart_subtotal ;
}

add_filter( 'woocommerce_cart_subtotal', 'woocommerce_cart_subtotal',      99, 3 );

Upvotes: 2

Dinesh Malekar
Dinesh Malekar

Reputation: 1

The total amount can be changed from following hook.

add_action('woocommerce_calculate_totals', array($this, 'calculate_totals'), 10, 1);

function calculate_totals($totals){
//your code
}

Upvotes: 0

Related Questions