мне нужно руководство от всех вас ..Модифицированный Mage_Sales_Model_Order
У меня есть этот дополнительный метод внутри: Mage_Sales_Model_Order (это в локальной папке).
public function getShippingEmailAdd()
{
$ShippingEmailAdd='';
$postData = Mage::app()->getRequest()->getPost();
if (!isset($ShippingEmailAdd))
{
if (isset($postData['shipping:email'])) {
$ShippingEmailAdd =$postData['shipping:email'];
}else{
$ShippingEmailAdd = '[email protected]';
}
// $shipment_data = Mage::getSingleton('checkout/session')->getQuote()->getShippingAddress()->getData();
// $ShippingEmailAdd = $shipment_data;
}
return $ShippingEmailAdd;
}
Этот метод ориентирован на получение отгрузочного [email] ввода от одной страницы. а также добавили одну строку по методу: samefile :: sendNewOrderEmail()
$mailer->setTemplateParams(array(
'order' => $this,
'billing' => $this->getBillingAddress(),
'payment_html' => $paymentBlockHtml,
'emailadd' => $this->getShippingEmailAdd() <--- added line
)
);
так, что я мог бы использовать {{уаг emailadd}} в порядке _ * HTML шаблоны.. но ничего не получаю, что я сделал не так? и каков будет правильный подход к достижению моей цели?
UPDATE, как просил: это входной адрес электронной почты, исходя из формы отгрузки, которая является частью OnePage процесса проверки:
<li>
<div class="input-box">
<label for="shipping:emailadd"><?php echo $this->__('Email Address') ?> <span class="required">*</span></label><br />
<input type="text" name="shipping[email]" id="shipping:emailadd" value="<?php echo $this->htmlEscape($this->getAddress()->getEmail()) ?>" title="<?php echo $this->__('Email Address') ?>" class="validate-email required-entry input-text" />
</div>
<div class="input-box">
<label for="shipping:emailadd"><?php echo $this->__('Confirm Email') ?> <span class="required">*</span></label><br />
<input type="text" name="shipping[emailconfirm]" id="shipping:emailconfirm" value="<?php echo $this->htmlEscape($this->getAddress()->getEmail()) ?>" title="<?php echo $this->__('Email Address') ?>" class="validate-email required-entry input-text" />
</div>
</li>
и снова, что я прицеливание, чтобы получить поле электронной почты вход после завершения процесса оформления заказа был отправлен и добавить значение доставка [почта] в Mage_Sales_Model_Order :: getShippingEmailAdd(), так что, когда я использую его по методу age_Sales_Model_Order :: sendNewOrderEmail(), как это:
$mailer->setTemplateParams(array(
'order' => $this,
'billing' => $this->getBillingAddress(),
'payment_html' => $paymentBlockHtml,
'emailadd' => $this->getShippingEmailAdd() <------ like this
)
);
так Я могу использовать его в шаблонах писем _ * .html как {{var emailadd}}
вот и все.
как глупо ... прости за плохую логику коды .. мой плохой – Derek
Он выводит [email protected], hmmm ... Кстати @RS У меня есть этот '$ shipment_data = Mage :: getSingleton ('checkout/session') -> getQuote() -> getShippingAddress() -> getData();' он возвращает этот объект ArrayObject, когда print_r ($ shipment_data) 'Array ([address_id] => 1680 [quote_id] => 467 [created_at] => 2010-06-09 16: 12: 3 9 [updated_at] => 2010-06-09 16:22:34 [customer_id] => [save_in_address_book] => 0 [customer_address_id] => [address_type] => отправка [email] => ' как я могу получить стоимость доставки [email] в $ shipment_data? довольно смущает. пробовать другой способ, который был прокомментированной строкой выше. – Derek
Имейте в виду, что вы имеете дело с Mage_Sales_Model_Order' ('order'), а не 'Quote', это не сработает, если вы попытаетесь повторно отправить электронную почту от администратора. Вы можете захотеть добавить поле в таблицу заказов. –