有些产品我希望有一个特殊的结帐完成消息,与默认值不同。
我知道我可以通过将默认重定向页面更改为其他内容来实现此目的。 [我不确定这是否会引入另一个问题]
但是,我想知道是否有标准/更好的方法来解决这个问题。
谢谢!,
d
答案 0 :(得分:1)
考虑String Overrides模块。这是关于它的引用(来自模块的项目页面):
提供一种快速简便的方法来替换网站上的任何文字。
特点:
- 轻松替换通过t()
的任何内容- 区域设置支持,允许您覆盖任何语言的字符串
- 能够导入/导出* .po文件,以便从Locale模块轻松迁移
- 请注意,这不是Locale的替代品,因为有数千个覆盖可能会导致更多的痛苦然后受益。仅在需要进行一些简单的文本更改时才使用此选项。
答案 1 :(得分:0)
我想我正在考虑的另一种可能的方法是覆盖ubercart用来显示消息的主题功能。这看起来似乎最有意义。
在这种情况下,我会覆盖 theme_uc_cart_complete_sale
我可以设置一个
$_SESSION['is_special_product'] == TRUE;
然后将$ message设置为$ special_message(如果已设置)。
if ($_SESSION['special_product']) {
$special_message = t('This is my special message');
$message = variable_get('special_product_message', $special_message;
}
最后,要从我的模块覆盖,我需要挂钩到预处理钩子:
function $modulename_prepocess_$hook(&$message) {
if ($_SESSION['special_product']) {
$special_message = t('This is my special message');
$message = variable_get('special_product_message', $special_message;
}
}
重要的是要注意在模块中使用此功能是不够的。只有在调用覆盖主题函数的模板文件时才会调用预处理函数。
找到更多详情