I made a copy of the default Magento ce 1.9.1 customer signup form. I then added the below fields to the form
<input type="hidden" name="group_id" value="3"> <input type="hidden" name="success_url" value="./vipsuccess"> <input type="hidden" name="error_url" value="" /> Then I copied the AccountController.php from the core/mage/customer/controllers/ to local/mage/customer/controllers I then added the below code to the public function createPostAction() section. However my issue is that when I use the form to create an account the customer is still assigned to the general group?
public function createPostAction() { $errUrl = $this->_getUrl('*/*/create', array('_secure' => true)); if (!$this->_validateFormKey()) { $this->_redirectError($errUrl); return; } /** @var $session Mage_Customer_Model_Session */ $session = $this->_getSession(); if ($session->isLoggedIn()) { $this->_redirect('*/*/'); return; } if (!$this->getRequest()->isPost()) { $this->_redirectError($errUrl); return; } $customer = $this->_getCustomer(); /** * Get Customer ID from customer registration form or if its not set in form post then use default. */ if($this->getRequest()->getPost('group_id')) { $customer->setGroupId($this->getRequest()->getPost('group_id')); } else { $customer->getGroupId(); } try { $errors = $this->_getCustomerErrors($customer); if (empty($errors)) { $customer->cleanPasswordsValidationData(); $customer->save(); $customer->setGroupId($this->getRequest()->getPost('group_id')); $customer->save(); $this->_dispatchRegisterSuccess($customer); $this->_successProcessRegistration($customer); return; } else { $this->_addSessionError($errors); } } catch (Mage_Core_Exception $e) { $session->setCustomerFormData($this->getRequest()->getPost()); if ($e->getCode() === Mage_Customer_Model_Customer::EXCEPTION_EMAIL_EXISTS) { $url = $this->_getUrl('customer/account/forgotpassword'); $message = $this->__('There is already an account with this email address. If you are sure that it is your email address, <a href="%s">click here</a> to get your password and access your account.', $url); } else { $message = $this->_escapeHtml($e->getMessage()); } $session->addError($message); } catch (Exception $e) { $session->setCustomerFormData($this->getRequest()->getPost()); $session->addException($e, $this->__('Cannot save the customer.')); } $this->_redirectError($errUrl); }