首页 > 解决方案 > 为 Wordpress 组合 2 个过滤器

问题描述

我有两个单独工作的操作,但我尝试制作的功能需要将它们与条件逻辑组合在一个函数中。

当产品价格为“0”或为空时显示“免费”:

add_filter( 'woocommerce_get_price_html', 'custom_price_html', 10, 2 );    
function custom_price_html( $price, $product ) {
  if( $product->get_price() == 0 ||  $product->get_price() == '') {        
      $custom_text = '<p class="label_not_available">Free</p>';          
  }
return $price . $custom_text;
}

更改货币符号:

add_filter( 'woocommerce_currency_symbol', 'change_currency_symbol', 10, 2 );    
function change_currency_symbol( $symbols, $currency ) {
    if ( 'USD' === $currency ) {
        return 'USD';
    }
        return $symbols;
}

需要将它们合二为一,逻辑如下: --- IF product price = '0' or '' ==>>> Override $symbols value, with custom text。

我试图使用这样的代码:

add_filter( 'woocommerce_currency_symbol', 'change_currency_symbol', 10, 4 );
function change_currency_symbol( $symbols, $currency, $price, $product) {
    if( $product->get_price() == '') {    
        $currency = 'THB';
        return $currency;
    }
}

但是当我运行它时,只出现白屏而不是网站。

非常感谢您提出任何建议,我做错了什么以及使其发挥作用的方法。

target - 替换显示 woocommerce 网格的插件中的货币符号,因为它总是显示货币字符,即使价格为空,最好用单词“FREE”替换它。

标签: phpwordpresswoocommerce

解决方案


推荐阅读