php - Magento: create custom field for group and pass data to observer -


i'm trying add dropdown selecting customer group on magento onepage checkout, after need save information on customer profile.

my billing phtml:

 <div class=”select”     <label for=”billing:group_id”><?php echo $this->__('select group') ?> <span class=”required”>*</span></label><br />     <select id=”billing:group_id” name=”billing[group_id]” title=”<?php echo $this->__('customer group') ?>” class=”validate-select”>         <option value=””><?php echo $this->__('select group') ?></option>         <?php             $groups = mage::getresourcemodel('customer/group_collection')             ->addfieldtofilter('customer_group_id', array('gt'=> 0))             ->load()             ->tooptionarray();         foreach ($groups $a)         echo "<option value='".$a['value']."'>". $a['label']. "</option>";         ?>     </select> </div> 

my observer.php

public function customersavebefore($observer)     {         try {             $customer = $observer->getcustomer();             $group= $this->getrequest()->getpost('group_id');             $customer->setdata('group_id', $group);         } catch ( exception $e ) {             mage::log("customer_save_before observer failed: " . $e->getmessage());         }     } 

my config.xml:

<customer_save_before>     <observers>         <qwe_customer_save_observer>             <type>singleton</type>             <class>ntt_customer_model_observer</class>             <method>customersavebefore</method>         </qwe_customer_save_observer>     </observers> </customer_save_before> 

can explain me how pass dropdown value observer? it's day i'm trying make work :(

only 1 mistake, form field name group id billing['group_id']. try below code

function customersavebefore($observer) {      try {         $customer = $observer->getcustomer();         $post= mage::app()->getrequest()->getpost('billing');          $customer->setdata('group_id', $post['group_id']);        }        catch ( exception $e ){            mage::log("customer_save_before observer failed: " . $e->getmessage());        }  

Comments