结合2个Wordpress过滤器

时间:2018-06-21 16:12:41

标签: php wordpress woocommerce

我有两个分别工作的动作,但是我要尝试实现的功能需要将它们与一个条件逻辑结合在一个函数中。

当产品价格为“ 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;
}

需要将它们结合在一起,并具有以下逻辑: ---如果产品价格=“ 0”或“ == >>>,则使用自定义文字覆盖$ symbols值。

我尝试使用这样的代码:

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”一词替换。

0 个答案:

没有答案