翻译空产品的文本

时间:2017-10-29 作者:Sanjay Yadav

我想更改空产品的文本。但我的代码涵盖了所有产品,我只需要免费的产品,这意味着空价格的产品。这是我的代码:

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;
       }
}
此代码工作正常,但它涵盖了所有产品。我的意思是,这里的空价格条件并没有像预期的那样起作用。

1 个回复
最合适的回答,由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设置为全局,这将起作用,如果不起作用,则需要将其设置为全局,或者考虑另一种方法为该函数提供外部变量。

结束