我对Magento还是很陌生,我想知道Magento如何检查用户是否在magento/index.php/sales/order/view/order_id/102/
页面中登录。
例如,如果与此订单无关的用户尝试去那里,那么他将被重定向到他自己的订单历史记录页面。但是我在info.php和sales / order目录(模板和块)的info.phtml中都看不到此功能。
我问这个问题是因为我也想使用此功能。
验证在控制器中完成。负责订单详细信息页面的控制器是Mage_Sales_OrderController
extends Mage_Sales_Controller_Abstract
。并且Mage_Sales_Controller_Abstract
有一种方法_canViewOrder
可以检查订单是否具有可见状态以及订单客户是否与登录客户相同
protected function _canViewOrder($order)
{
$customerId = Mage::getSingleton('customer/session')->getCustomerId();
$availableStates = Mage::getSingleton('sales/order_config')->getVisibleOnFrontStates();
if ($order->getId() && $order->getCustomerId() && ($order->getCustomerId() == $customerId)
&& in_array($order->getState(), $availableStates, $strict = true)
) {
return true;
}
return false;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句