在结帐/一页结尾处添加自定义复选框

时间:2013-02-20 10:36:47

标签: php magento e-commerce

在结帐/一页结束时我想在协议下方添加一个复选框。目前只有条款。

我想添加一个可选的复选框,用户可以在其中注册简报或检查产品是否存在。当然这个字段也应该在后端显示,所以我可以看到订单是否是礼物或者用户是否想要时事通讯。

有人可以告诉我如何做“礼物复选框”或简报吗?

提前致谢!

1 个答案:

答案 0 :(得分:4)

我之前通过以下方式介绍了新闻稿选项:

添加字段

更新模板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'
        )
);