2011-12-06 17 views

答えて

3

あなたのMagentoのは、あなたがして、顧客の登録のためのダブルオプトイン(確認メール)を使用するないを設定されている場合

$created_at = $customer->getCreatedAt(); 

をしかし、それは、ダブルオプトインに来るとき、Magentoのはを設定し、顧客の口座すぐを、すなわち作成します。すでに掲載@PauGNUものを使用することができますを現在のシステム時刻に戻しますが、それをアクティブにしない(確認する前に顧客がログインできないように)確認メールを送信するだけです。

これは、created_atと最初のログインの間の不明の遅延(分、日、週など)を意味します。したがって、created_atはもう使用できません。 Mage_Log_Model_Customerでアクセステーブルのフィールドlog_customer.login_at、例えば:

実際には、Magentoのは、顧客のログイン時間がデフォルトで追跡されている場所を、持っています。

しかし、あなたはそれを使用する予定の場合:デフォルトで

  • クラスは、非常に最初のログインを取得する方法はありません。あなたはそれを自分で開発する必要があります。
  • "ログのクリーニング"が有効な場合(データベースを小さくするため)、ログイン時に保存された時間が失われます。

この場合、私は最も適切なイベントを特定し、それにフックインし、最初のログイン時間のみを別のテーブルに保存することをお勧めします。

0

最初のログインは、常に顧客がWebに登録するときに、customer_entityテーブルの«created_at»フィールドをチェックするだけです。

あなたが顧客をロードする場合、それはそのデータを取得するのはとても簡単です:

$created_at = $customer->getCreatedAt(); 
+1

これは、管理者の承認を必要としないサイトにのみ該当します。すべてのケースで永久に "最初のログイン"データを保持するには、新しいdatetime属性+ observerを実装して、この属性を 'customer_customer_authenticated'イベントに実装するモジュールが必要です。 – benmarks