2015-09-30 3 views
9

Ich erstelle benutzerdefinierte Checkout-Seite mit benutzerdefinierten Berechnung. Wie kann ich total und tax_total über Ajax nicht ändern (oder Seite bei Bedarf aktualisieren).Ändern Sie insgesamt und tax_total Woocommerce

ich erstellen Sie eigene Seite für Ajax-Request und setzen Sie diesen Code

$ss = new WC_Session_Handler(); 
$ss->set('tax_total',9999999); 
$ss->save_data(); 
$ss->set('total',9999999); 
$ss->save_data(); 

var_dump(WC()); 

Auf dieser Seite ich meine Änderungen sehen können, aber ‚Zur Kasse Seite‘ nichts passiert (auch nach dem Refresh). Wie kann ich das beliebige total oder tax_total ändern.

+1

Können Sie einige weitere Details geben, wie Sie erstellt haben die benutzerdefinierte Checkout-Seite? Sie können 'woocommerce_before_calculate_totals' verwenden, um Ihre benutzerdefinierten Berechnungen durchzuführen. –

Antwort

3

Versuchen

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

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

Auch shoul es tax_total im Warenkorb Objekt sein, und Sie können es ändern zu können.

2

Ich habe Probleme andere Lösungen immer für mich zu arbeiten, aber zumindest für v.3.0.1, das hat super funktioniert:

add_action('woocommerce_cart_total', 'calculate_totals', 10, 1); 

function calculate_totals($wc_price){ 
    $new_total = 0; 
    foreach (WC()->cart->cart_contents as $key => $value) { 
     //calculations here 
    } 

    return wc_price($new_total); 
} 
+0

Arbeitete für mich, danke! –