如何通过客户电话过滤订单收集?

Posted

技术标签:

【中文标题】如何通过客户电话过滤订单收集?【英文标题】:How to filter orders collection by customer phone? 【发布时间】:2017-01-05 06:18:52 【问题描述】:

如何按客户电话号码过滤订单收集? 这是我的尝试:

$orders = Mage::getModel('sales/order')->getCollection()
->addAttributeToFilter('customer_phone', array('like' => '%' . $_POST['filter_client_phone'] . '%'))->load();

另外,我如何从订单的运输信息中通过某些属性过滤订单集合?

【问题讨论】:

【参考方案1】:

试试这个:

Mage::getModel('sales/order')
            ->getCollection()
            ->addAddressFields()
            ->addAttributeToFilter('billing_telephone', $_POST['filter_client_phone'])

注意:如果要过滤收货地址电话,请使用shipping_telephone

【讨论】:

【参考方案2】:

您可以使用以下查询过滤订单集合 $addressTable=Mage::getSingleton("core/resource")->getTableName("sales/order_address"); $orders = Mage::getModel('sales/order')->getCollection(); $select=$orders->getSelect()->joinLeft(array('oa'=>$addressTable),'oa.parent_id=main_table.entity_id') ->where('oa.address_type=?','shipping') ->where('oa.telephone LIKE ?','%' . $_POST['filter_client_phone'] . '%');

【讨论】:

以上是关于如何通过客户电话过滤订单收集?的主要内容,如果未能解决你的问题,请参考以下文章