5. Eigene Login Seite

Sollten Sie eine eigene Login Seite programmiert haben, auf der das Login-Formular von Shopware eingebunden wird, müssen Sie eine weitere Code-Erweiterung in Ihren Shop einbauen, damit die Login-Weiterleitung auch mit Ihrer Login Seite funktioniert. Die App bietet ab Version 2.1.0 dafür eine entsprechende Möglichkeit. Nachfolgend wird beschrieben, was zu tun ist.

5.1 Subscriber anlegen

Zuerst müssen Sie an einer beliebigen Stelle in Ihrem Plugin ein Subscriber anlegen. Hier ist zunächst ein vollständiges Beispiel und weiter unten wird das Beispiel erläutert:

<?php declare(strict_types=1);

namespace MyPlugin\Subscriber;

use Momocode\MomoLoginRedirectSW6\Redirect\Event\RedirectLoginRoutesEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;

class RedirectLoginRoutesSubscriber implements EventSubscriberInterface
{
    public static function getSubscribedEvents(): array
    {
        return [
            RedirectLoginRoutesEvent::class => 'onRedirectLoginRoutes',
        ];
    }

    public function onRedirectLoginRoutes(RedirectLoginRoutesEvent $event): void
    {
        $routes = $event->getLoginRoutes();
        $routes[] = 'frontend.account.custom-login.page';
        $event->setLoginRoutes($routes);
    }
}

Der Subscriber reagiert auf das "RedirectLoginRoutesEvent". Dieses wird ausgelöst, wenn eine Shop-Seite besucht wird und die App prüft, ob es sich um die Login Seite handelt und somit die Weiterleitungs-Parameter gesetzt werden müssen. Im Beispiel werden dann zuerst die bisher gesetzten Login Routen (standardmäßig nur "frontend.account.login.page") in einer Array-Variable gespeichert, dann wird der Routen-Name der eigenen Seite ergänzt und das fertige Array wird dann an das Event übergeben. Somit wird auch Ihre eigene Login Seite als solche erkannt und somit werden die Weiterleitungs-Parameter gesetzt.

5.2 Subscriber registrieren

Jetzt müssen Sie Ihren Subscriber nur noch im Service Container registrieren. Fügen Sie dafür folgenden Eintrag in Ihre services.xml ein:

<service id="MyPlugin\Subscriber\RedirectLoginRoutesSubscriber">
    <tag name="kernel.event_subscriber"/>
</service>

Hinweis: Sollten Sie sich nicht mit der Shopware Plugin Entwicklung auskennen und Hilfe bei der Aktivierung der Weiterleitung für eigene Login Seiten benötigen, können Sie mich gerne unter moritz@momocode.de kontaktieren.

Last updated