我想更改空产品的文本。但我的代码涵盖了所有产品,我只需要免费的产品,这意味着空价格的产品。这是我的代码:
add_filter(\'gettext\', \'translate_text\');
add_filter(\'ngettext\', \'translate_text\');
function translate_text($translated) {
if( empty($product->price) ){
$translated = str_ireplace(\'Weiterlesen\', \'Contact US\', $translated);
return $translated;
}
}
此代码工作正常,但它涵盖了所有产品。我的意思是,这里的空价格条件并没有像预期的那样起作用。
最合适的回答,由SO网友:Milan Petrovic 整理而成
在函数“translate\\u text”变量中$product 未初始化,因此价格始终为空。您需要提供$产品以便在函数中使用,考虑函数,它应该是全局的。尝试修改函数:
function translate_text($translated) {
global $product;
if ($product && empty($product->price)){
$translated = str_ireplace(\'Weiterlesen\', \'Contact US\', $translated);
}
return $translated;
}
如果您的$product设置为全局,这将起作用,如果不起作用,则需要将其设置为全局,或者考虑另一种方法为该函数提供外部变量。