Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

woocommerce change price in checkout and cart page

With woocommerce, in my website I'd like to add in the cart page a select input where the user can select a value between two options, and depending on this value I will change the price.

so far, I could get the total and change it using this :

function action_woocommerce_before_cart_totals(  ) { 
 global $woocommerce;

 $woocommerce->cart->total  = $woocommerce->cart->total*0.25;
   var_dump( $woocommerce->cart->total);}; 

The issue is that when I go to checkout page it doesn't take the total calculated in functions.php

Thanks for helping me.

like image 686
Hanane Avatar asked Mar 09 '23 09:03

Hanane


1 Answers

You can use woocommerce_review_order_before_order_total hook too at the same time, to display your custom price in checkout, this way:

add_action( 'woocommerce_review_order_before_order_total', 'custom_cart_total' );
add_action( 'woocommerce_before_cart_totals', 'custom_cart_total' );
function custom_cart_total() {

    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
            return;

    WC()->cart->total *= 0.25;
    //var_dump( WC()->cart->total);
}

The Code goes in function.php file of your active child theme (or theme) or also in any plugin file.

This code is tested and works.

like image 194
LoicTheAztec Avatar answered Mar 20 '23 15:03

LoicTheAztec