Is it possible to move customer Telephone number from billing address fields to customer create account section

magento.stackexchange https://magento.stackexchange.com//questions/56317

Вопрос

Is it possible to move Telephone fields from billing address to the customer create account section? I need to modify account creation page by directly making changes on core files. Is that possible ? Or there are any settings available in adminpanel to fetch customer address also during registration ?

I just tried by adding

<label for="telephone" class="required"><em>*</em><?php echo $this->__('Telephone') ?></label> <div class="input-box"> <input type="text" name="telephone" id="telephone" value="<?php echo $this->escapeHtml($this->getFormData()->getTelephone()) ?>" title="<?php echo $this->__('Telephone') ?>" class="input-text <?php echo $this->helper('customer/address')->getAttributeValidationClass('telephone') ?>" /> </div>

to persistent/customer/form/register.phtml file. Now the field is visible in create page. But its not getting saved.

Thanks in advance!

Это было полезно?

Решение

It's possible via layout XML

In your theme's local.xml, add the following lines (before </layout>):

<customer_account_create>
  <reference name="customer_form_register">
    <action method="setShowAddressFields"><value>1</value></action>
  </reference>
</customer_account_create>

If you don't have a customized theme but a bought one, you should create a child theme for customizations like this.

Example

For the Ultimo theme, the theme resides in app/design/frontend/ultimo/default (Ultimo is the "package", "default" the theme).

You should then create the directory app/design/frontend/ultimo/yourname/layout and add a file local.xml there:

<?xml version="1.0"?>
<layout>
  <customer_account_create>
    <reference name="customer_form_register">
      <action method="setShowAddressFields"><value>1</value></action>
    </reference>
  </customer_account_create>
</layout>

Then configure the custom theme:

screenshot

Answer to updated question

It's a totally different question now. To allow saving the telephone attribute of the customer in the registration form, you need to tell Magento that it is allowed to be used in that form (this was introduced in Magento 1.5 to prevent customers to modify arbitrary attributes that are not meant to be changed by them).

Write a setup script (as part of a new module, or an existing one if you already have a custom module dedicated to theme and configuration) which contains the following:

Mage::getSingleton('eav/config')
    ->getAttribute('customer', 'telephone')
    ->setData('used_in_forms', array('customer_account_create'))
    ->save();

Source: http://www.schmengler-se.de/en/2011/03/magento-1-5-neue-kundenattribute-im-backend-fomular-sichtbar-machen/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top