php - 为 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”替换它。
解决方案
推荐阅读
- php - 多个 JOIN 到同一个子查询表达式
- php - 在网站上使用 php 和两种不同的联系表格
- c# - 获取单个指定具体类型的特定接口,并使用 Simple Injector 应用装饰器
- regex - 在python上形成整个句子的模式
- r - 在单独的索引列中运行逻辑测试或计算与第一个类型
- python - 使用python更新数据框的列值的问题
- javascript - Redux 状态会在路由更改时自行重置(我认为)
- php - php从数组中获取
- kotlin - 创建 jvm 和 Kotlin 多平台的 Github 库组合
- android - Android:ExoPlayer 直接提供原始 mp4 (h264) 片段