2013-02-20 60 views
2

我希望在協議下面添加複選框。目前只有條款。在結帳/ onepage結束時添加自定義複選框

我想添加一個可選的複選框,用戶可以在其中註冊新聞稿或檢查產品是否應該包裝。當然,這個字段也應該顯示在後端,以便我可以看到訂單是禮物還是用戶想要通訊。

有人可以告訴我如何做「禮物複選框」或通訊嗎?

在此先感謝!

回答

4

我已經通過執行以下操作之前所覆蓋的通訊選項:

添加字段

更新模板結帳/ onepage/agreements.phtml包括您新的複選框,

使用checkout_type_onepage_save_order_after

使用自定義模塊使用類似在觀察者

<events> 
    <checkout_type_onepage_save_order_after> 
     <observers> 
      <your_module> 
       <class>your_module/observer</class> 
       <method>saveOrderAfter</method> 
      </your_module>  
     </observers> 
    </checkout_type_onepage_save_order_after> 
</events> 

獲取客戶信息在你的觀察,你就可以通過

Mage::app()->getRequest()->getParam('whatever_you_called_your_field', false); 

拿到場然後可以拿到訂單客戶ID或電子郵件

$observer->getData('order')->getCustomerId(); 
$observer->getData('order')->getCustomerId(); 

在這一點上,你可以加載通訊/訂戶模型和訂閱電子郵件或加載客戶並將setIsSubscribe爲true。

這不會保存訂單的屬性,但是如果您在安裝腳本中創建了訂單屬性,那麼您可以使用觀察者根據您的訂單設置此屬性,但使用sales_order_save_before事件設置屬性反對訂單。

$installer->addAttribute(
    'order', 
    'your_attribute', 
     array(
      'label' => 'Newsletter', 
      'type' => 'int' 
     ) 
);