Como Desinscrever um Cliente da Newsletter do Magento pelo Email do Cliente

Olá pessoal!

Estes dias precisei fazer um módulo que faria a leitura de um arquivo que continha uma listagem de e-mails de clientes da loja para cada registro constava se o cliente deveria ou não receber as newsletter da loja.

Podemos fazer isso manualmente via Admin, simplesmente navegando até Customers > Manage Customers, clicando em algum cliente para editá-lo, no painel esquerdo de informações do cliente navegue até a aba Newsletter e desmarque a opção de assinatura da newsletter.

Mas, como todo programador curioso como eu, abaixo coloco o simples trecho de código para cancelar a assinatura de newsletter para um cliente através de um e-mail ou id.

Por email:

$email = 'tiago@tiagosampaio.com';

/**
 * Obtém uma instância do objeto subscriber (Mage_Newsletter_Model_Subscriber)
 */
$subscriber = Mage::getModel('newsletter/subscriber');
$subscriber->loadByEmail($email)
           ->unsubscribe();
/**
 * Opcional: Envia o e-mail de confirmação de cancelamento da assinatura.
 */
$subscriber->sendConfirmationSuccessEmail();

Por Id do cliente:

$id = 75;

/**
 * Faz a leitura do objeto customer (Mage_Customer_Model_Customer)
 */
$customer = Mage::getModel('customer/customer')->load($id);

/**
 * Obtém uma instância do objeto subscriber (Mage_Newsletter_Model_Subscriber)
 */
$subscriber = Mage::getModel('newsletter/subscriber');
$subscriber->loadByCustomer($customer)
           ->unsubscribe();
/**
 * Opcional: Envia o e-mail de confirmação de cancelamento da assinatura.
 */
$subscriber->sendConfirmationSuccessEmail();

Até a próxima!

Tiago Sampaio

Leave A Reply

Navigate