Magento 从订单id、电子邮件和客户获取订单状态';她姓什么

Magento 从订单id、电子邮件和客户获取订单状态';她姓什么,magento,Magento,我目前正在寻找一种方法,可以根据订单id、客户电子邮件和客户姓氏获取订单状态 到目前为止,我已经编写了这段代码 public function orderHistoryAction(){ $req = $this->getRequest(); $oid = $req->getParam('oid', ''); $lnm = $req->getParam('lnm', ''); $eml = $req->getParam('eml', '')

我目前正在寻找一种方法,可以根据
订单id
客户电子邮件
客户姓氏
获取订单状态

到目前为止,我已经编写了这段代码

public function orderHistoryAction(){
    $req = $this->getRequest();
    $oid = $req->getParam('oid', '');
    $lnm = $req->getParam('lnm', '');
    $eml = $req->getParam('eml', '');

    $order = Mage::getModel('sales/order')->loadByIncrementId($oid);
    if ($order->getId()) {
        if ((strcasecmp($lnm, $order->getCustomerLastname()) == 0) && (strcasecmp($eml, $order->getCustomerEmail()) == 0)) {
            echo $order->getStatusLabel();
        } else {
            echo 'invalid';
        }
    } else {
        echo 'invalid';
    }
}

对客户和客人都很好。但在我看来,这不是正确的方法。我应该用类似于写在或。如果有人能纠正我的错误?

如果您想使用集合,您需要的代码如下所示:

$order_collection = Mage::getModel('sales/order')->getCollection()
->addFieldToFilter('increment_id', array('eq' => $oid))
->addFieldToFilter('customer_lastname', array('eq' => $lnm))
->addFieldToFilter('customer_email', array('eq' => $eml));

if ($order_collection->getSize() > 0) {
    $order = $order_collection->getFirstItem();
    ....
} else {
    ....
}

您可以在这里找到另一个答案:

显然,您可以创建一个新模块,从订单id、电子邮件和客户姓氏获取订单状态。在您的模块中使用观察者进行同样的操作。在我的模块中存储信息并显示状态不是一种开销吗?