如何为 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 结帐期间重定向到注册页面而不是登录页面?

如何在 ubercart 中设置主题目录页面?

Drupal,Ubercart - 将自定义字段添加到结帐表单

以编程方式获取用户刚刚在 Ubercart 中完成的订单

ubercart 3 限制结帐所需的购物车总数量(例如不超过 8 个散装袋)

主题为Drupal 7的Ubercart“/ cart”页面