【问题标题】: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();
另外,我如何从订单的运输信息中通过某些属性过滤订单集合?
【问题讨论】:
标签:
magento
magento-1.7
magento-1.9
magento-1.8
【解决方案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'] . '%');