Ich wollte zusätzlich den Login über Kundennummer und Passwort in meinem Shop ermöglichen. Dazu habe ich in einem Plugin folgende Methoden hinzugefügt. Vielleicht sucht jemand mal nach soetwas: in der install-Methode: //Creating hook for login $event = $this-\>createHook( 'sAdmin', 'sLogin', 'onLogin', Enlight\_Hook\_HookHandler::TypeBefore, 0 ); $this-\>subscribeHook($event);
die Methode an sich: public static function onLogin(Enlight\_Hook\_HookArgs $args) { $form\_data = &$args-\>getSubject()-\>sSYSTEM-\>\_POST; if (!preg\_match('/@/', $form\_data['email'])) { $data = Shopware()-\>Db()-\>fetchAll("SELECT ub.userID, u.email FROM s\_user\_billingaddress ub LEFT JOIN s\_user u ON ub.userID = u.id WHERE customernumber = ?", array($form\_data['email']) ); //Kundennummer müssen unique sein if (count($data) == 1) { $form\_data['email'] = $data[0]['email']; } } }
Ob es sich um eine Kundennummer oder E-Mail-Adresse handelt wird nur sehr einfach (über das @) überprüft. Sollte jedoch an dieser Stelle ausreichen. Viele Grüße === EDIT: Achja, statt $args-\>getSubject()-\>sSYSTEM-\>\_POST
wollte ich eigentlich das neuere $args-\>getSubject()-\>Request()
verwenden. Jedoch klappt das in diesem Kontext nicht: Fatal error: Call to undefined method Shopware_Proxies_sAdminProxy::Request() Denkfehler?
Das Request-Objekt sollte sich eigentlich wiefolgt laden lassen: $request = $args->getSubject()->Request(); Alles weitere sollte die ZF-Doku hergeben…
Hallo wie kann ich den Code Implementieren? Wo genau? Ich wäre sehr dankbar für jede Info. Ich suche schon so lange nach ähnliche lösung… VG Andy [quote=„dsinf“]Ich wollte zusätzlich den Login über Kundennummer und Passwort in meinem Shop ermöglichen. Dazu habe ich in einem Plugin folgende Methoden hinzugefügt. Vielleicht sucht jemand mal nach soetwas: in der install-Methode: //Creating hook for login $event = $this-\>createHook( 'sAdmin', 'sLogin', 'onLogin', Enlight\_Hook\_HookHandler::TypeBefore, 0 ); $this-\>subscribeHook($event);
die Methode an sich: public static function onLogin(Enlight\_Hook\_HookArgs $args) { $form\_data = &$args-\>getSubject()-\>sSYSTEM-\>\_POST; if (!preg\_match('/@/', $form\_data['email'])) { $data = Shopware()-\>Db()-\>fetchAll("SELECT ub.userID, u.email FROM s\_user\_billingaddress ub LEFT JOIN s\_user u ON ub.userID = u.id WHERE customernumber = ?", array($form\_data['email']) ); //Kundennummer müssen unique sein if (count($data) == 1) { $form\_data['email'] = $data[0]['email']; } } }
Ob es sich um eine Kundennummer oder E-Mail-Adresse handelt wird nur sehr einfach (über das @) überprüft. Sollte jedoch an dieser Stelle ausreichen. Viele Grüße === EDIT: Achja, statt $args-\>getSubject()-\>sSYSTEM-\>\_POST
wollte ich eigentlich das neuere $args-\>getSubject()-\>Request()
verwenden. Jedoch klappt das in diesem Kontext nicht: Fatal error: Call to undefined method Shopware_Proxies_sAdminProxy::Request() Denkfehler?[/quote]
Im neusten Shopware muss man den Hook anders zuweisen: $this-\>subscribeEvent( 'sAdmin::sLogin::before', 'onLogin' );
Der Rest bleibt gleich. Bei mir geht $arguments->getSubject()->Request() ebenfalls nicht: Fatal error: Call to undefined method Shopware_Proxies_sAdminProxy::Request() in /var/www/shopwaretest/shopware/engine/Shopware/Plugins/Local/Frontend/etIDLogin/Bootstrap.php on line 128 503 Service Unavailable
Hallo und herzlichen Dank für die Bereitstellung der Informationen zum Login mit Kundennummer. Ein bestehendes Plugin habe ich um die entsprechenden Zeilen ergänst. Leider ist dennoch kein Login via Kundennummer möglich. „Ihre Zugangsdaten konnten keinem Benutzer zugeordnet werden“ Das Plugin wird richtig geladen, ein Login via Email ist möglich. Hat sich was in der Zuordnung der Datenbank geändert? Ich nutze die Version 4.2.3. Für eine Hilfe bin ich dankbar, JKJ
Hat zufällig jemand solch ein Plugin laufen und aknn es ir mal per PM senden.
Ich habe in unserem alten XTC Shop den Login via URL laufen und würde die Funktion gerne in dieses Plugin mit übernehen.