Magento 2 Periksa Jika Pelanggan Berlangganan Newsletter

8

Saya sedang mengembangkan ekspor / impor xml khusus ini. Di magento 2 bagaimana saya bisa memeriksa apakah pelanggan berlangganan buletin? Saat ini saya sedang memuat pabrik pelanggan.

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

Tetapi ini tidak memberikan informasi tentang buletin apakah ada model lain yang harus saya muat?

André Ferraz
sumber

Jawaban:

21

Injeksi \Magento\Newsletter\Model\Subscriberkelas pertama di konstruktor Anda:

protected $_subscriber;

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

Maka Anda memiliki dua kemungkinan kasus

Dengan asumsi Anda memiliki email pelanggan

Kemudian dalam kode Anda, Anda dapat memanggil kode berikut untuk memeriksa apakah pelanggan berlangganan newsletter atau tidak:

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

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

Dengan asumsi Anda memiliki id pelanggan

Anda dapat memanggil kode berikut:

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

if ($checkSubscriber->isSubscribed()) {
    // Customer is subscribed
} else {
    // Customer is not subscribed
}
Raphael di Digital Pianism
sumber
di mana Anda akan menjalankan kode ini?
styzzz