Kriuchko
8/14/2019 - 1:19 PM

*Module* - Add email field to address


http://excellencemagentoblog.com/blog/2011/11/29/magento-adding-custom-field-to-customer-address/

\!h /app/code/local/Theme/Addressemailoption/etc/config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Theme_Addressemailoption>
            <version>1.0.0.0</version>
        </Theme_Addressemailoption>
    </modules>
    <global>
        <resources>
            <address_email_option>
                <setup>
                    <module>Theme_Addressemailoption</module>
                    <class>Mage_Customer_Model_Entity_Setup</class>
                </setup>
                <connection>
                    <use>core_setup</use>
                </connection>
            </address_email_option>
        </resources>
        <fieldsets>
            <sales_convert_quote_address>
                <address_email>
                    <to_order_address>*</to_order_address>
                    <to_customer_address>*</to_customer_address>
                </address_email>
            </sales_convert_quote_address>
            <customer_address>
                <address_email>
                    <to_quote_address>*</to_quote_address>
                </address_email>
            </customer_address>
        </fieldsets>
    </global>
</config>

\!h /app/code/local/Theme/Customerphone/sql/address_email_option/mysql4-install-1.0.0.0.php

<?php

/* @var $installer Mage_Customer_Model_Entity_Setup */
$installer = $this;
$installer->startSetup();
 
$this->addAttribute('customer_address', 'address_email', array(
    'type' => 'varchar',
    'input' => 'text',
    'label' => 'E-mail',
    'global' => 1,
    'visible' => 1,
    'required' => 0,
    'user_defined' => 1,
    'visible_on_front' => 1
));
Mage::getSingleton('eav/config')
    ->getAttribute('customer_address', 'address_email')
    ->setData('used_in_forms', array('customer_register_address','customer_address_edit','adminhtml_customer_address'))
    ->save();
    
$tablequote = $this->getTable('sales/quote_address');
$installer->run("ALTER TABLE  $tablequote ADD `address_email` varchar(255) NOT NULL");
 
$tablequote = $this->getTable('sales/order_address');
$installer->run("ALTER TABLE  $tablequote ADD `address_email` varchar(255) NOT NULL");

$installer->endSetup();

\!h /app/etc/modules/Theme_Addressemailoption.xml

<?xml version="1.0"?>

<config>
    <modules>
        <Theme_Addressemailoption>
            <active>true</active>
            <codePool>local</codePool>
        </Theme_Addressemailoption>
    </modules>
</config>


\!h /app/design/frontend/rwd/cloudlabcolordruck/template/customer/address/edit.phtml

<li class="fields">
    <div class="field">
        <label for="address-email" class="required"><em>*</em><?php echo $this->__('E-mail') ?></label>
        <div class="input-box">
            <input type="email" autocapitalize="off" autocorrect="off" spellcheck="false" name="address_email" value="<?php echo $this->htmlEscape($this->getAddress()->getAddressEmail()) ?>" title="<?php echo $this->__('E-mail') ?>" id="address-email" class="input-text required-entry" />
        </div>
    </div>
</li>