1 回答
TA贡献1921条经验 获得超9个赞
你不需要实际的重定向,除非你想阻止访问者点击 F5 并再次重新加载同一页面,这在这里不是必需的。
在我们开始之前:您的变量$sArticleId包含一个订单 ID,为了使代码易于理解,您应该将其命名为$sOrderId。
找到订单 ID 后,您还需要像这样加载订单数据:
$oOrder = oxNew("oxorder");
$oOrder->load($sOrderId);
为了保持简单,您可以删除隐藏的订单 id 字段,将用于加载订单数据的代码放入函数中render()并将订单对象传递给视图(模板):
public function render()
{
... your render code ...
$sEMail = oxRegistry::getConfig()->getRequestParameter('email_track', true);
$sONumber = oxRegistry::getConfig()->getRequestParameter('ordernr_track', true);
// if form was submitted, both variables will be set
if($sEMail && $sONumber)
{
// finding order
$sOrderId = oxDb::getDb()->getOne("SELECT OXID FROM oxorder WHERE OXORDERNR = ? AND OXBILLEMAIL = ?", [$sONumber, $sEMail]);
if($sOrderId) // order found -> loading order data
{
$oOrder = oxNew("oxorder");
$oOrder->load($sOrderId)
$this->addTplParam('oOrder', $oOrder);
}
else // order not found, display error message
{
oxRegistry::get("oxUtilsView")->addErrorToDisplay('Order not found');
}
}
return $sTempalteName;
}
在您的模板中,您将获得包含所有属性和方法的 oxOrder 对象:
[{if $oOrder}]
<h2>Your Order Data:</h2>
[{$oOrder->oxorder__whateveryouwant->value }]
[{/if}]
- 1 回答
- 0 关注
- 85 浏览
添加回答
举报