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:
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/
Example display address fields using customer_account_create.xml:
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceBlock name="customer_form_register">
<arguments>
<argument name="show_address_fields" xsi:type="boolean">true</argument>
</arguments>
</referenceBlock>
</body>
</page>
Best Answer
1) You have to add the field in the two templates:
Billing :
app/design/frontend/{package}/{theme}/template/checkout/onepage/billing.phtml
Register:
app/design/frontend/{package}/{theme}/template/customer/form/register.phtml
2) Then you add the field in admin panel.
Maybe this one do your need https://magento.stackexchange.com/a/65760/48355