如果产品在Woocommerce中不征税,则隐藏额外的不含税价格

时间:2017-12-22 12:55:43

标签: php wordpress woocommerce product price

当我设定不含税的产品时,我需要禁用显示不含税的价格。 我在price.php文件中进行了修改,无需增值税即可添加价格。

<p class="netto">
    <?php echo woocommerce_price($product->get_price_excluding_tax()); ?> netto
</p>

如果未设置价格,则“netto price”仍会显示在产品页面中。

如何禁用它?一些钩子?

3 个答案:

答案 0 :(得分:2)

第一个woocommerce_price()函数和get_price_excluding_tax()方法已弃用且过时...它们被wc_price()wc_get_price_excluding_tax()函数替换。

您可以使用以下代码通过此隐藏的自定义函数来覆盖您想要的内容,而不是覆盖woocommerce模板loop/pride.php

add_action( 'woocommerce_after_shop_loop_item_title', 'conditionally_add_price_excluding_vat ');
function conditionally_add_price_excluding_vat(){
    global $product;

    if( $product->get_tax_status() != 'taxable' ){
        $price_excl_vat = wc_get_price_excluding_tax($product);
        echo'<p class="netto">'.wc_price($price_excl_vat).' '. __('netto').'</p>';
    }
}

代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。

经过测试和工作。

  

在产品存档页面上将产品“纳税状态”设置为“”时,将隐藏额外的“netto”价格。

答案 1 :(得分:1)

我还没有对它进行过测试,但我希望这样的事情应该有效:

add_action('woocommerce_before_shop_loop_item','custom_remove_loop_price');
function custom_remove_loop_price(){
    global $product;
    if(!$product->price){
        remove_action('woocommerce_after_shop_loop_item_title','woocommerce_template_loop_price',10);
    }
}

答案 2 :(得分:0)

<p class="netto"></p><?php ($product->get_price_excluding_tax() != null) ? echo woocommerce_price($product->get_price_excluding_tax()) : echo 0; ?> netto</p>