ニュースレターのオプションについては、以前に次のように説明しました。
フィールドを追加
テンプレート 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);
その後、注文の顧客IDまたはメールを取得できます
$observer->getData('order')->getCustomerId();
$observer->getData('order')->getCustomerId();
この時点で、ニュースレター/購読者モデルを読み込んでメールを購読するか、顧客を読み込んで IsSubscribed を true に設定できます。
これは注文に対して属性を保存しませんが、インストール スクリプトで注文属性を作成する場合、オブザーバーを使用して注文に対してこれを設定できますが、sales_order_save_before イベントを使用して注文に対して属性を設定する方が安全かもしれません。 .
$installer->addAttribute(
'order',
'your_attribute',
array(
'label' => 'Newsletter',
'type' => 'int'
)
);