1

私は他のスレッドをしばらく探していましたが、いくつかは私が必要とするものに近いものでしたが、完全ではありませんでした。

ゲストまたは顧客がニュースレターにサインアップすると、change_status_at フィールドにタイムスタンプが入力されます。

ただし、ゲストまたは顧客が登録を解除した場合は、change_status_at フィールドで現在のタイムスタンプを取得する必要があります。

Magento 1.7.0.2 CE のニュースレターの「機能」は使用しないため、これを使用することが重要です。代わりに、newletter_subscriber リストを会社にエクスポートしてメールを送信します。

ありがとうございました、

ダン

4

1 に答える 1

0

私もこれに遭遇しました。顧客は、購読/購読解除アクションが発生した日付を知りたがっていました。インターネットを見回すと、これに遭遇した他の人が何人か見つかりました.Magentoの非常に古いバージョンで動作していたと主張する人もいます.

change_status_at のフィールド定義は、デフォルトのタイムスタンプ (つまり、ON UPDATE CURRENT_TIMESTAMP) として自動更新するように設定されていましたが、一部の更新で失われたことが原因だと思います。したがって、MySql が魔法のようにフィールドを維持することになっているため、フィールドに書き込む Magento コードはありません。

テーブル定義を更新して ON UPDATE CURRENT_TIMESTAMP を再度追加するか (ただし、デフォルトのモデル テーブルを変更することは好ましくありません)、別のフィールドを追加してデフォルトのタイムスタンプ フィールドにすることができます。

または、より良い解決策は、オブザーバーを使用してモジュールを作成し、サブスクリプションが変更された日付を追加することです。これは次のようになります (警告 - このコードは単なる例です。モジュールの情報を消去するため、構文エラーが発生する可能性があります) -

アプリ/コード/ローカル/Myco/MyMod/etc/config.xml

<?xml version="1.0"?>

<config>

    <modules>
        <Myco_MyMod>
            <version>1.0.0</version>
        </Myco_MyMod>>
    </modules>

    <global>
        <models>
            <myco>
                <class>Myco_MyMod_Model</class>
            </myco>
        </models>

       <events>
            <newsletter_subscriber_save_before>
                <observers>
                    <mycomymod_observer_subscriber>
                        <type>singleton</type>
                        <class>Myco_MyMod_Model_Observer</class>
                        <method>setUpdateDate</method>
                     </mycomymod_observer_subscriber>
                </observers>
            </newsletter_subscriber_save_before>
        </events>
    </global>
</config>

===========

app/code/local/Myco/MyMod/Modules/Observer.php で

<?php

class Myco_MyMod_Model_Observer
{

    public function setUpdateDate(Varien_Event_Observer $observer) {
        $subscriber = $observer->getSubscriber();
        $subscriber['change_status_at'] = (date("Y-m-d H:i:s", time()));
    }
}
于 2013-08-22T21:41:00.097 に答える