Vorrei aggiungere la newsletter della casella di controllo nel modulo di fatturazione quando l'utente sceglie di registrarsi direttamente alla procedura di pagamento. Come posso farlo?
Vorrei aggiungere la newsletter della casella di controllo nel modulo di fatturazione quando l'utente sceglie di registrarsi direttamente alla procedura di pagamento. Come posso farlo?
Risposte:
ciao puoi aggiungere questo aggiungendo il codice qui sotto su billing.phtml
<input type="checkbox" name="is_subscribed"
title="<?php echo $this->__('Sign Up for Newsletter') ?>" value="1" checked="checked" class="checkbox" />
utilizzando l'evento checkout_submit_all_after
iscriviti al cliente alla newsletter
<global>
<events>
<checkout_submit_all_after> <!-- identifier of the event we want to catch -->
<observers>
<checkout_submit_all_after_handler> <!-- identifier of the event handler -->
<type>singleton</type> <!-- class method call type; valid are model, object and singleton -->
<class>magento52274/observer</class> <!-- observers class alias -->
<method>AssignNewletter</method> <!-- observer's method to be called -->
<args></args> <!-- additional arguments passed to observer -->
</checkout_submit_all_after_handler>
</observers>
</checkout_submit_all_after>
</events>
</global>
E il codice Observer è:
public function AssignNewletter($observer) {
$event = $observer->getEvent();
$order = $event->getOrder();
$Quote =$event->getQuote();
if (in_array($Quote()->getCheckoutMethod(), array('register','customer'))):
if (Mage::app()->getFrontController()->getRequest()->getParam('is_subscribed')){
$status = Mage::getModel('newsletter/subscriber')->subscribe($Quote->getBillingAddress()->getCustomerEmail());
}
endif;
}
Step1: crea config.xml at app/code/local/Stackexchange/Magento52274/etc/
e il codice è
<?xml version="1.0"?>
<config>
<modules>
<Stackexchange_Magento52274>
<version>1.0.0</version>
</Stackexchange_Magento52274>
</modules>
<global>
<models>
<magento52274>
<class>Stackexchange_Magento52274_Model</class>
</magento52274>
</models>
<events>
<checkout_submit_all_after> <!-- identifier of the event we want to catch -->
<observers>
<checkout_submit_all_after_handler> <!-- identifier of the event handler -->
<type>singleton</type> <!-- class method call type; valid are model, object and singleton -->
<class>magento52274/observer</class> <!-- observers class alias -->
<method>AssignNewletter</method> <!-- observer's method to be called -->
</checkout_submit_all_after_handler>
</observers>
</checkout_submit_all_after>
</events>
</global>
</config>
Step2: crea Observer.php
a app/code/local/Stackexchange/Magento52274/Model/
e il codice è
<?php
class Stackexchange_Magento52274_Model_Observer
{
public function AssignNewletter(Varien_Event_Observer $observer)
{
$event = $observer->getEvent();
$order = $event->getOrder();
$Quote =$event->getQuote();
if (in_array($Quote()->getCheckoutMethod(), array('register','customer'))):
if Mage::app()->getFrontController()->getParam('is_subscribed', false)){
$status = Mage::getModel('newsletter/subscriber')->subscribe($Quote->getBillingAddress()->getEmail());
}
endif;
}
}
Step3: crea il modulo app/etc/modules/Stackexchange_Magento52274.xml
e il codice è
<?xml version="1.0"?>
<config>
<modules>
<Stackexchange_Magento52274>
<active>true</active>
<codePool>local</codePool>
<version>1.0.0</version>
</Stackexchange_Magento52274>
</modules>
</config>
Fase 4: E anche bisogno campo newsletter aggiungere a billing.phtml
un
<input type="checkbox" name="is_subscribed"
title="<?php echo $this->__('Sign Up for Newsletter') ?>" value="1" checked="checked" class="checkbox" />
checkout_submit_all_after
osservatori. Dai