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:

[php]
$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();
[/php]

Por Id do cliente:

[php]
$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();
[/php]

Até a próxima!

Tiago Sampaio