Exibir linha no email transacional se a forma de pagamento for
8
Desejo exibir uma linha apenas quando o cliente seleciona a ordem de pagamento da forma de pagamento. Quando um cliente seleciona uma ordem de pagamento como forma de pagamento, desejo exibir uma <li>linha adicional para o email da transação.
Se o cliente selecionar outro método de pagamento, o adicional <li>deverá estar oculto.
Nesse caso, você pode gerenciar isso pelo manipulador.
Usar manipulador:
Crie o manipulador e defina-o no arquivo de layout:
create a handlere usar esse manipulador processou um arquivo phtml. Ativado local.xmlem app/design/frontend/YOUR_PAackage/YOUR_template/layoutdefinir manipulador.
Código de arquivo de layout como:
<?xml version="1.0"?><layoutversion="0.1.0"><!-- add new handler --><amit_customer_addhan><blocktype="core/template"name="addNewLi"template="sales/showcheckmo.phtml"/></amit_customer_addhan></layout>
Ligue para este manipulador no modelo de email
Então on email html call this handler(locale/YourLANG/template/email/)
Vou tentar responder à sua pergunta inicial - como usar a diretiva com condição. Para depuração, eu uso o xDebug. E, na minha opinião, é muito difícil depurar e-mails. Nesse caso, mostro um exemplo com a mesma estrutura em outra parte do magento.
Em vendas / pedido / exibição, existe a mesma estrutura. A estrutura de saída do endereço determinada em Mage/Core/etc/config.xmlpol default/customer/address_templates/text.
Nossa tarefa será adicionar qualquer condição para mostrar ou não o 'nome da empresa'. Diretivas como var , dependem , se analisadas no filtro deVarien_Filter_Template método ($ value) . Nesse método, existe a iteração de todas as construções $ (se / dependem / var) e todas as construções $ usadas nesta chamada:
// If object calling methods or getting properties
Portanto, para condicionar nosso $ stackVars deve ser um objeto e uma instância de Varien_Object (a maioria dos modelos se estende de Mage_Core_Model_Abstract, que se estende de Varien_Object). Vamos subir alguns degraus acima. Precisamos adicionar a stackVars e object.
No meu exemplo da classe Mage_Customer_Block_Address_Renderer_Default, o magento chama o método filter ($ value), que mencionei acima.
Aqui eu forneço uma solução. Atenção! Esta solução não é muito limpa. É objetivo mostrar o comportamento do magento. Por favor, reescreva a si mesmo.
Neste método, adicionaremos um objeto de pedido ao $ data array. De acordo com a minha tarefa, vamos adicionar um objeto de ordem a essa matriz. Faça isso antes de '$ formater-> setVariables ($ data);'
$data['order_object']= $address->getOrder();
Após este magento irá analisar este objeto e chamar qualquer método. Por exemplo, adicionamos o novo método getPaymentOutput (). Coloque funcionalidade simples na classe Order:
fonte
Vou tentar responder à sua pergunta inicial - como usar a diretiva com condição. Para depuração, eu uso o xDebug. E, na minha opinião, é muito difícil depurar e-mails. Nesse caso, mostro um exemplo com a mesma estrutura em outra parte do magento.
Em vendas / pedido / exibição, existe a mesma estrutura. A estrutura de saída do endereço determinada em
Mage/Core/etc/config.xml
poldefault/customer/address_templates/text
.Nossa tarefa será adicionar qualquer condição para mostrar ou não o 'nome da empresa'. Diretivas como var , dependem , se analisadas no filtro de
Varien_Filter_Template
método ($ value) . Nesse método, existe a iteração de todas as construções $ (se / dependem / var) e todas as construções $ usadas nesta chamada:Para cada if / depende / var, existe seu próprio método. Vamos olhar para
public function ifDirective($construction)
Agora vamos ver o método protegido _getVariable. Gostaria de chamar sua atenção em uma linha:
e veja o comentário abaixo:
Portanto, para condicionar nosso $ stackVars deve ser um objeto e uma instância de Varien_Object (a maioria dos modelos se estende de Mage_Core_Model_Abstract, que se estende de Varien_Object). Vamos subir alguns degraus acima. Precisamos adicionar a stackVars e object.
No meu exemplo da classe Mage_Customer_Block_Address_Renderer_Default, o magento chama o método filter ($ value), que mencionei acima.
Aqui eu forneço uma solução. Atenção! Esta solução não é muito limpa. É objetivo mostrar o comportamento do magento. Por favor, reescreva a si mesmo.
Neste método, adicionaremos um objeto de pedido ao $ data array. De acordo com a minha tarefa, vamos adicionar um objeto de ordem a essa matriz. Faça isso antes de '$ formater-> setVariables ($ data);'
Após este magento irá analisar este objeto e chamar qualquer método. Por exemplo, adicionamos o novo método getPaymentOutput (). Coloque funcionalidade simples na classe Order:
e somente depois disso fazemos alterações na diretiva xml com isso:
fonte