如何为 Ubercart 结帐完成页面设置主题
Posted
技术标签:
【中文标题】如何为 Ubercart 结帐完成页面设置主题【英文标题】:How to theme Ubercart Checkout Complete page 【发布时间】:2012-01-26 06:20:07 【问题描述】:我想为页面设置主题 /cart/checkout/complete
我已经在 admin/store/settings/checkout/settings 中看到了设置,但还不够。 我想添加一些 html,即在页面顶部添加一个打印按钮。
我想要一个 .tpl.php 文件用作模板,或者使用其他结帐页面,如何插入结帐设置中定义的文本。
我试图创建一个 uc_cart_complete_sale.tpl.php 但它没有被调用。
提前谢谢你。
【问题讨论】:
【参考方案1】:至少在 D6 中,您可以通过覆盖 theme_uc_cart_complete_sale() 来设置消息主题 - 因此,如果这是您所追求的,请通过覆盖主题中的消息来设置消息主题(例如,函数 mytheme_uc_cart_complete_sale($message, $order)
【讨论】:
【参考方案2】:经过努力,我找到了模板页面。
它是:
page--cart--checkout--complete.tpl.php
记得清空缓存
【讨论】:
【参考方案3】:根据Template Suggestion documentation,您可以为绝对任何路径提供自定义page.tpl.php,因此具有以下名称的模板文件将覆盖page.tpl.php
路径cart/checkout/complete
:
page--cart--checkout--complete.tpl.php
创建文件后,请务必清除 Drupal 的缓存,以便在主题注册表中获取更改。
【讨论】:
非常感谢,您建议的文档确实为我节省了很多时间,我是 Drupal 新手。【参考方案4】:首先,你应该检查这个页面:admin/store/settings/checkout/edit/messages
您可以在此处为结帐完成时显示的消息自定义标题。
除此之外,您还可以实现一些功能来更改此页面。从 ubercart api 的简短查看也许这个函数会做:my_module_checkout_complete() in this link the guy says it worked
另一个应该起作用的函数是theme_uc_cart_complete_sale
还有其他选项,例如在你的 template.php 中检查这是否是 /checkout/complete 并做任何你想做的事情。像这样:
if (arg(0) == 'cart' && arg(1) == 'checkout' && arg(2) == 'complete')
然后重定向到您的页面。无论如何,有很多方法可以做到这一点,但仅仅命名一个文件“uc_cart_complete_sale.tpl.php”是行不通的。对不起...
【讨论】:
1) 关于管理页面,这个解决方案可能是一个快速的解决方案,但不是我想要的,因为我想在页面上使用节点或页面模板之类的控件 2) 是,该链接是我找到的最佳解决方案之一,但它是 ubercart 2,我希望在 ubercart 3 中有更简单的解决方案。 3)我不想修改模块,然后解决方案更复杂 4)可能的解决方案,我认为另一个肮脏的解决方案修改 page.tpl.php 页面 Ubercart 3 具有此功能,尽管参数更改为包含“消息”和“订单”键的 $variables 数组。以上是关于如何为 Ubercart 结帐完成页面设置主题的主要内容,如果未能解决你的问题,请参考以下文章
在 Drupal 的 UberCart 结帐期间重定向到注册页面而不是登录页面?
Drupal,Ubercart - 将自定义字段添加到结帐表单