Shopware 6.5 - newsletterAccountPagelet

Hallo,

ab Shopware 6.5 ist die Variable/Struktur newsletterAccountPagelet im Account-Template enthalten.

Ich brauche diese Daten auch in einem anderen Template. Kann mir jemand einen Tipp geben, wie man die verfügbar macht?

Viele Grüße, Frank

Hallo,

Hilfe: mein aktuell einziger Ansatz ist ein Subscriber, der auf NewsletterAccountPageletLoadedEvent anspringen soll:

public static function getSubscribedEvents(): array
{
    return [
        NewsletterAccountPageletLoadedEvent::class => 'onNewsletterAccountPageletLoadedEvent'
    ];
}

public function onNewsletterAccountPageletLoadedEvent(NewsletterAccountPageletLoadedEvent $event): void
{
    error_log(print_r($event->getPagelet(), true));
}

Meine Hoffnung war, dass die Daten vom Pagelet dann im Log-File stehen :face_with_monocle:.
Das Ereignis triggert aber nicht. Wäre dass überhaupt der grundsätzliche Weg um an die Daten aus dem Pagelet ranzukommen, oder geht dass irgendwie anders?

Hallo,

falls jemand mal ähnliche Probleme hat, habe ich nun sogar zwei Möglichkeiten gefunden:

Im Subscriber mittels Kundendaten und newsletterRecipientRepository abfragen, ob der Kunde den Newsletter bezieht und via

$event->getContext()->addExtension('myPlugin', new ArrayEntity([
                    'NewsletterStatus' => $recipient->getStatus()
                ]));

für das Template verfügbar machen.

oder:

newsletterAccountPageletLoader nutzen:

$newslAccountPagelet = $this->newsletterAccountPageletLoader->load($request, $context, $customer);

$page->addExtension('myPlugin', new ArrayEntity([
                'newsletterAccountPagelet' => $newslAccountPagelet
            ]));