2016-03-26 10 views
1

私の子供のテーマのfunctions.phpファイルで次のコードをオーバーライドしたいと思います。私はproduct_priceに除外するのではなく "get_price_including_tax"を表示するようにしたいので、残りのカートは税金を除いたままにしておきます。WooCommerceオーバーライド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); 
} 

トリックを行うようだが、私はコアファイルを編集したくない「get_price_including_tax()」と「get_price_excluding_taxを()」、切り替える必要があります。私は、コードからの$ this - >を削除した場合、私は次のエラーを取得する

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 

:私は、次のエラー(エラーで削除URL)を与える

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); 
} 

はこれを試してみました:

誰でも適切な方向にお手伝いできますか?私は残念ながらプログラマーではないので、基本的に私は何をしているのか分かりません。

多くの感謝!

+0

これにはどのような解決策がありますか? – zipkundan

答えて

0

あなたはすでにこれを解決していないかどうかを知るが、あなたがリストされた最初のエラーしないでください:

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 

$thisが何を参照していないことを示しています。ですから、$thisの意味を理解するためにバックトラックする必要があります。この行を変更してみてください:

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

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

あなたはまたように、この前に、グローバル$woocommerceを呼び出す必要があります。少なくとも過去あなたを取得する必要があります

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

最初のエラーが表示され、そこから動作するものがあるかどうかを確認できます。

関連する問題