Magento / PHP - 获取所选客户群中所有客户的电话,电子邮件和姓名

时间:2015-06-03 10:41:27

标签: php magento

我正在开发自定义Magento(1.9.0.1)扩展程序。

让我告诉你我已经做了什么。

enter image description here

以下是此Adminhtml表单的代码:

<?php

class VivasIndustries_SmsNotification_Block_Adminhtml_Sms_Sendmass_Edit_Form extends Mage_Adminhtml_Block_Widget_Form
    {

        public function _prepareLayout() 
           {
              $ExtensionPath = Mage::getModuleDir('js', 'VivasIndustries_SmsNotification'); 
              $head = $this->getLayout()->getBlock('head');
              $head->addJs('jquery.js');
              $head->addJs('vivas.js');

              return parent::_prepareLayout();
           }

        protected function _prepareForm()
            {
            $form = new Varien_Data_Form(array(
                                    'id' => 'edit_form',
                                    'action' => $this->getUrl('*/*/save', array('id' => $this->getRequest()->getParam('id'))),
                                    'method' => 'post',
                                 ));

                $fieldset = $form->addFieldset('edit_form', array('legend'=>Mage::helper('smsnotification')->__('SMS Information')));

                $CustomerGroups = Mage::getResourceModel('customer/group_collection')->toOptionArray();

                $smsprice_value = Mage::getStoreConfig('vivas/smsprice/smsprice_value');
                $smsprice_tag = Mage::getStoreConfig('vivas/smsprice/smsprice_tag');

                $customerArray=array();
                foreach($CustomerGroups as $each){

                     $count=Mage::getResourceModel('customer/customer_collection')
                                ->addAttributeToFilter('group_id',$each['value'])->getSize();
                $SMSPrice = $count * $smsprice_value;               
                     $customerArray[]=array('value'=> $each['value'],'label'=> $each['label'].' - ('.$count.' Members) - ('.$SMSPrice.' '.$smsprice_tag.')');

                }

                $CustomerGroups = array_merge(array('' => ''), $customerArray);

                $fieldset->addField('customergroups', 'select',
                        array(
                            'name'      => 'customergroups',
                            'label'     => Mage::helper('smsnotification')->__('Customer Group'),
                            'class'     => 'required-entry',
                            'after_element_html' => '<br><small>If customer group is not selected the SMS will be sended<br> to all store members!</small>',
                            'values'    => $CustomerGroups
                        )
                    );


                $fieldset->addField('smstext', 'textarea', array(
                          'label'     => Mage::helper('smsnotification')->__('SMS Text'),
                          'class'     => 'required-entry',
                          'required'  => true,
                          'name'      => 'smstext',
                          'onclick' => "",
                          'onkeyup' => "CheckLetterSize(this)",
                          'after_element_html' => '<br><b style="color:brown;"><span id="charNum"></span><span id="charNum1"></span></b><br><small>SMS text must <b>NOT</b> be longer then 160 characters!</small>',
                          'tabindex' => 1
                        ));






                if ( Mage::getSingleton('adminhtml/session')->getsmsnotificationData() )
                    {
                        $form->setValues(Mage::getSingleton('adminhtml/session')->getsmsnotificationData());
                        Mage::getSingleton('adminhtml/session')->setsmsnotificationData(null);
                    } elseif ( Mage::registry('smsnotification_data') ) {
                        $form->setValues(Mage::registry('smsnotification_data')->getData());
                    }
                // Add these two lines


                $form->setUseContainer(true);
                $this->setForm($form);

                ////

                return parent::_prepareForm();
            }
    }

提交此表单后,我想获取所选组中成员的所有姓名,电话和电子邮件。第二件事是,当没有选择客户群时,它必须为商店中的所有客户提供姓名,电话和电子邮件。

我曾经从订单信息中获取有关用户的信息,如下所示:

    class VivasIndustries_SmsNotification_Model_Observer
    {
        public function orderSaved(Varien_Event_Observer $observer)
        {
            /** **/

        $CustomerPhone = $observer->getOrder()->getBillingAddress()->getTelephone();
        $CustomerName = $observer->getOrder()->getBillingAddress()->getName();
        $CustomerEmail = $observer->getOrder()->getBillingAddress()->getEmail();
        } 
      }

我知道这甚至不是我所需要的,但我不知道如何获取这些信息。

你能帮帮我吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

在您的管理控制器中,表单已发布: $groupId = $this->getRequest()->getPost('customergroups', ''); if (!empty($groupId)) { //Get customers from a group $customers = Mage::getModel('customer/customer') ->getCollection() ->addAttributeToSelect('*') ->addFieldToFilter('group_id', $groupId); } else { //Get all customers $customers = Mage::getModel('customer/customer') ->getCollection() ->addAttributeToSelect('*'); }