私もこれに遭遇しました。顧客は、購読/購読解除アクションが発生した日付を知りたがっていました。インターネットを見回すと、これに遭遇した他の人が何人か見つかりました.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()));
}
}