Frage

Ich versuche, ein Skript für benutzerdefiniertes Passwort Reset zu schreiben, das den Konten aller, die ihre Passwörter zurücksetzen, Belohnungspunkte hinzufügt. Ein individueller Link dazu wird nur an die Kunden gesendet, die sich noch nie in ihrem Konto angemeldet haben (etwa 900 davon).

ich muss wissen So ändern Sie das letzte Anmeldedatum des Kunden des Kunden Damit sie nur einmal die Prämienpunkte erhalten können. Auf diese Weise stelle ich sicher, dass sie ihr Passwort noch nicht zurückgesetzt haben.

$logCustomer = Mage::getModel('log/customer')->loadByCustomer($customer);
$lastVisited = $logCustomer->getLoginAtTimestamp();

if ($lastVisited == NULL)
{
  // Reset password
  // Add reward points to account
}
War es hilfreich?

Lösung

Wenn sich der Kunde anmeldet, wird dieses Datum automatisch aktualisiert. Wenn Sie dies jedoch manuell ändern müssen, können Sie dies mit der folgenden Erklärung tun:

$customerLog = Mage::getModel('log/customer')->loadByCustomer($customer);
$customerLog->setLoginAt('2013-12-31 00:00:00');
$customerLog->save();

Andere Tipps

Sie können das zuletzt angemeldete Datum mit dem folgenden Code erhalten.

$customer = Mage::getSingleton('customer/session')->getCustomer();
$logCustomer = Mage::getModel('log/customer')->loadByCustomer($customer);
$lastVisited = $logCustomer->getLoginAtTimestamp();
$lastVisitedDate = date('Y-m-d H:i:s', $lastVisited);

Dies $lastVisitedDate Aktualisiert automatisch vom System, wenn der Benutzer angemeldet ist.

    $lastVisitedDate = '2013-11-11 00:00:00';// the date you want to set.
    $customer = Mage::getSingleton('customer/session')->getCustomer();
    $logCustomer = Mage::getModel('log/customer')->loadByCustomer($customer);
    $logCustomer->setLoginAtTimestamp($lastVisitedDate)->save();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top