Comment éviter de nouveaux e-mails afin de frontend et permettre seulement de back-end pour un site Web particulier?

magento.stackexchange https://magento.stackexchange.com/questions/14509

Question

Nous avons un site de commerce électronique multi-magasins. Chaque magasin est site Web distinct. Pour un site Web particulier (site de dire avec id « 6 »), le nouvel e-mail de commande ne doit pas être déclenché alors que le client passe la commande.

Mais quand les contrôles d'administration, l'ordre dans le panneau d'administration, puis appuyez sur le bouton « e-mail envoyé », maintenant l'e-mail doit aller au client.

Qu'est-ce que j'ai essayé:

surchargée méthode de Mage_Core_Model_Email_Template::sendTransactional et $this->setSentSuccess($this->send($email, $name, $vars)); remplacé par

if($storeId == 6){
        $this->setSentSuccess(false);
    } else{
        $this->setSentSuccess($this->send($email, $name, $vars));
    }

Mais cela ne vérifie pas si elle est appelée à partir frontend ou backend. Quelqu'un peut-il me donner un indice?

Était-ce utile?

La solution

Je suivre la voie de la mise en place d'un observateur d'événements sur sales_order_save_after qui commandes poignées placées sur le front-end par opposition à sales_order_place_after qui poignées arrière-plan de la commande.

Autres conseils

Vous ne devriez pas réécrire Mage_Core_Model_Email_Template::sendTransactional. Cela est utilisé pour tous les e-mails envoyés à partir de Magento.
Si vous ne souhaitez que le nouvel ordre e-mail à ne pas être envoyé Mage_Sales_Model_Order::sendNewOrderEmail() rewrite.
Dans votre nouvelle classe faire le look de la méthode comme ceci:

public function sendNewOrderEmail() {
    if (Mage::app()->getStore()->getId() == 6) {
         return $this;
    }
    return parent::sendNewOrderEmail();
}

Ceci est juste un exemple. Ne pas coder dur la valeur 6. Vous pouvez effectuer un réglage de configuration où vous pouvez sélectionner les vues des magasins pour lesquels l'e-mail n'est pas envoyé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top