在结帐/一页的末尾,我想在协议下方添加一个复选框。目前只有条款。
我喜欢添加一个可选复选框,用户可以在其中注册时事通讯或检查产品是否应按原样包装。当然,这个字段也应该显示在后端,这样我就可以看到订单是礼物还是用户想要时事通讯。
有人能告诉我如何做“礼物复选框”或时事通讯吗?
提前致谢!
在结帐/一页的末尾,我想在协议下方添加一个复选框。目前只有条款。
我喜欢添加一个可选复选框,用户可以在其中注册时事通讯或检查产品是否应按原样包装。当然,这个字段也应该显示在后端,这样我就可以看到订单是礼物还是用户想要时事通讯。
有人能告诉我如何做“礼物复选框”或时事通讯吗?
提前致谢!
我之前通过执行以下操作涵盖了时事通讯选项:
添加字段
更新模板 checkout/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);
然后您可以获取订单 customerid 或电子邮件
$observer->getData('order')->getCustomerId();
$observer->getData('order')->getCustomerId();
此时,您可以加载时事通讯/订阅者模型并订阅电子邮件或加载客户并将 setIsSubscribed 设置为 true。
这不会根据订单保存属性,但如果您在安装脚本中创建订单属性,那么您可以使用观察者针对您的订单设置此属性,尽管使用 sales_order_save_before 事件针对订单设置属性可能更安全.
$installer->addAttribute(
'order',
'your_attribute',
array(
'label' => 'Newsletter',
'type' => 'int'
)
);