これは、この変更が機能するかどうかを確認するためにもう一度いじくり回すことです。
Mage/Checkout/Model/Observer.php を変更しました。
public function salesQuoteSaveAfter($observer)
{
$quote = $observer->getEvent()->getQuote();
Start of added code --- > $post = Mage::app()->getRequest()->getPost();//Mage::app()->getRequest()->getPost();
if(isset($post['shipping']['email'])){
if(isset($_SESSION['emailadd'])){
unset($_SESSION['emailadd']);
$_SESSION['emailadd'] = 'test2@mail.com';//$post['shipping']['email'];
}else{
$_SESSION['emailadd'] = 'test@mail.com';//$post['shipping']['email'];
}
}else{
if(isset($_SESSION['emailadd'])){
unset($_SESSION['emailadd']);
$_SESSION['emailadd'] = 'test3@mail.com';//$post['shipping']['email'];
}else{
$_SESSION['emailadd'] = 'test4@mail.com';//$post['shipping']['email'];
}
} <--End of added code;
/* @var $quote Mage_Sales_Model_Quote */
if ($quote->getIsCheckoutCart()) {
Mage::getSingleton('checkout/session')->getQuoteId($quote->getId());
}
}
問題はこのコードです:セッションを設定する何も返さない['emailadd'] = test4@mail.com
$post = Mage::app()->getRequest()->getPost();
コードのメソッドが間違っている場合、データベースにデータを送信する前に呼び出される salesQuoteSaveBefore() メソッドを追加するにはどうすればよいですか? その前に構成する XML はありますか?
最初に私が目指しているのは、onepage/checkout 入力、特に shipping[email] 入力から入力データまたは投稿データを取得することです。
<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>
私が取得したいのは、この単一の配送[電子メール]入力だけです。すでに長い間立ち往生しているため、ちょっとバグがあります。しかし、onepage/checkout が送信された後にその値を取得する方法が見つかりません。
どんな助けでも大歓迎です。