2016-03-26 21 views
1

Ich möchte den folgenden Code in meinem Kind Thema themes functions.php-Datei überschreiben. Weil ich möchte, dass der product_price "get_price_including_tax" anzeigt, anstatt auszuschließen, aber der Rest des Warenkorbs sollte exklusive Steuern bleiben.WooCommerce override woocommerce_cart_product_price

public function get_product_price($_product) { 
if ($this->tax_display_cart == 'excl') { 
$product_price = $_product->get_price_excluding_tax(); 
} else { 
$product_price = $_product->get_price_including_tax(); 
} 
return apply_filters('woocommerce_cart_product_price', wc_price( $product_price), $_product); 
} 

Notwendigkeit, den „get_price_including_tax()“ und „get_price_excluding_tax()“ zu schalten, dass der Trick scheint zu tun, aber ich will nicht Core-Dateien bearbeiten.

versucht, dies:

add_filter('woocommerce_cart_product_price', 'product_price_incl_tax'); 

function product_price_incl_tax($_product) { 
if ($this->tax_display_cart == 'excl') { 
$product_price = $_product->get_price_including_tax(); 
} else { 
$product_price = $_product->get_price_excluding_tax(); 
} 

return apply_filters('product_price_incl_tax', wc_price($product_price), $_product); 
} 

die mir die folgenden Fehler (url irrtümlich entfernt) ergibt:

Fatal error: Using $this when not in object context in /public/sites/www.t-instyle.nl/paperbag/wp-content/themes/virtue_child/functions.php on line 7 

Wenn ich $ this-> aus dem Code entfernen, erhalte ich die folgenden Fehler :

Fatal error: Call to a member function get_price_excluding_tax() on string in /public/sites/www.t-instyle.nl/paperbag/wp-content/themes/virtue_child/functions.php on line 10 

Kann mir bitte jemand in die richtige Richtung helfen? Ich bin leider kein Programmierer, also habe ich im Grunde keine Ahnung was ich mache.

Vielen Dank!

+0

Sie haben eine Lösung dafür? – zipkundan

Antwort

0

Weiß nicht, ob Sie dies bereits gelöst oder nicht, aber der erste Fehler, den Sie aufgelistet:

Fatal error: Using $this when not in object context in /public/sites/www.t-instyle.nl/paperbag/wp-content/themes/virtue_child/functions.php on line 7 

Ihnen sagt, dass $this auf etwas bezieht sich nicht. Sie müssen also zurückgehen, um herauszufinden, was $this bedeuten sollte. Versuchen Sie, diese Zeile:

if ($this->tax_display_cart == 'excl') { 

dazu:

if ($woocommerce->cart->tax_display_cart == 'excl') { 

Sie auch die globale $woocommerce bevor diese müssen als so nennen:

function product_price_incl_tax($_product) { 
global $woocommerce; 
if ($woocommerce->cart->tax_display_cart == 'excl') { 

, dass zumindest sollten Sie vorbei der erste Fehler und dann können Sie sehen, ob die Dinge von dort aus funktionieren.