2

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

我喜欢添加一个可选复选框,用户可以在其中注册时事通讯或检查产品是否应按原样包装。当然,这个字段也应该显示在后端,这样我就可以看到订单是礼物还是用户想要时事通讯。

有人能告诉我如何做“礼物复选框”或时事通讯吗?

提前致谢!

4

1 回答 1

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'
        )
);
于 2013-02-20T14:46:33.983 回答