Magento 2 Verifica se il cliente è iscritto alla newsletter


8

Sto sviluppando questo export / import xml personalizzato. In magento 2 come posso verificare se un cliente è iscritto alla newsletter? In questo momento sto caricando la fabbrica del cliente.

\Magento\Framework\App\ObjectManager::getInstance()->create('Magento\Customer\Model\Customer');

Ma questo non fornisce informazioni sulla newsletter c'è un altro modello che devo caricare?

Risposte:


21

Per prima cosa iniettare la \Magento\Newsletter\Model\Subscriberclasse nel costruttore:

protected $_subscriber;

public function __construct(
    ...
    \Magento\Newsletter\Model\Subscriber $subscriber
    ...
){
    ...
    $this->_subscriber= $subscriber;
    ...
}

Quindi hai due possibili casi

Supponendo che tu abbia l'e-mail del cliente

Quindi nel tuo codice puoi chiamare il seguente codice per verificare se il cliente è iscritto o meno alla newsletter:

$checkSubscriber = $this->_subscriber->loadByEmail($customerEmail);

if ($checkSubscriber->isSubscribed()) {
    // Customer is subscribed
} else {
    // Customer is not subscribed
}

Supponendo di avere l'ID cliente

Puoi chiamare il seguente codice:

$checkSubscriber = $this->_subscriber->loadByCustomerId($customerId);

if ($checkSubscriber->isSubscribed()) {
    // Customer is subscribed
} else {
    // Customer is not subscribed
}

dove eseguiresti questo codice?
styzzz,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.