Mostrar línea en correo electrónico transaccional si el método de pago es
8
Quiero mostrar una línea solo cuando el cliente selecciona el método de pago y pago del giro postal. Cuando un cliente selecciona un giro postal como método de pago, quiero mostrar una <li>línea adicional al correo electrónico de la transacción.
Si el cliente selecciona otro método de pago, el adicional <li>debe estar oculto.
En este caso, puede gestionar esto mediante un controlador.
Usar controlador:
Cree un controlador y defínalo en el archivo de diseño:
create a handlery el uso de este controlador representa un archivo phtml. Encendido local.xmlen app/design/frontend/YOUR_PAackage/YOUR_template/layoutdefinir controlador.
Código de archivo de diseño 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>
Llame a este controlador en la plantilla de correo electrónico
Entonces on email html call this handler(locale/YourLANG/template/email/)
Trataré de responder a su pregunta inicial: cómo usar la directiva con condición. Para la depuración, uso xDebug. Y en mi opinión es muy difícil depurar correos electrónicos. En ese caso, te muestro un ejemplo con la misma estructura en otra parte de magento.
En ventas / pedido / vista hay la misma estructura. La estructura de salida de dirección determinada en Mage/Core/etc/config.xmlin default/customer/address_templates/text.
Nuestra tarea será agregar cualquier condición para mostrar o no mostrar 'nombre de la empresa'. Directivas como var , dependen , si de análisis sintáctico en Varien_Filter_Templateen el método de filtro (valor $) . En este método hay una iteración de todas las construcciones $ (if / depend / var) y cada construcción $ utilizada en esta llamada:
// If object calling methods or getting properties
Por lo tanto, para hacer que nuestra $ stackVars sea un objeto y una instancia de Varien_Object (la mayoría de los modelos se extiende desde Mage_Core_Model_Abstract, que se extiende desde Varien_Object). Vamos a subir unos pasos más arriba. Necesitamos agregar a stackVars y objeto.
En mi ejemplo en la clase Mage_Customer_Block_Address_Renderer_Default magento llama al filtro de método ($ value), que mencioné anteriormente.
Aquí proporciono una solución. ¡Advertencia! Esta solución no es muy limpia. Su propósito es mostrar el comportamiento de magento. Por favor, reescriba usted mismo.
En este método agregaremos un objeto de orden a $ data array. Según mi tarea, agreguemos un objeto de orden a esta matriz. Hazlo antes de '$ formater-> setVariables ($ data);'
$data['order_object']= $address->getOrder();
Después de este magento analizará este objeto y llamará a cualquiera de sus métodos. Por ejemplo, agregamos un nuevo método getPaymentOutput (). Ponga una funcionalidad simple en la clase Order:
fuente
Trataré de responder a su pregunta inicial: cómo usar la directiva con condición. Para la depuración, uso xDebug. Y en mi opinión es muy difícil depurar correos electrónicos. En ese caso, te muestro un ejemplo con la misma estructura en otra parte de magento.
En ventas / pedido / vista hay la misma estructura. La estructura de salida de dirección determinada en
Mage/Core/etc/config.xml
indefault/customer/address_templates/text
.Nuestra tarea será agregar cualquier condición para mostrar o no mostrar 'nombre de la empresa'. Directivas como var , dependen , si de análisis sintáctico en
Varien_Filter_Template
en el método de filtro (valor $) . En este método hay una iteración de todas las construcciones $ (if / depend / var) y cada construcción $ utilizada en esta llamada:Para cada if / depende / var hay su propio método. Miremos a
public function ifDirective($construction)
Ahora veamos el método protegido _getVariable. Me gustaría llamar su atención en una fila:
y mira el comentario a continuación:
Por lo tanto, para hacer que nuestra $ stackVars sea un objeto y una instancia de Varien_Object (la mayoría de los modelos se extiende desde Mage_Core_Model_Abstract, que se extiende desde Varien_Object). Vamos a subir unos pasos más arriba. Necesitamos agregar a stackVars y objeto.
En mi ejemplo en la clase Mage_Customer_Block_Address_Renderer_Default magento llama al filtro de método ($ value), que mencioné anteriormente.
Aquí proporciono una solución. ¡Advertencia! Esta solución no es muy limpia. Su propósito es mostrar el comportamiento de magento. Por favor, reescriba usted mismo.
En este método agregaremos un objeto de orden a $ data array. Según mi tarea, agreguemos un objeto de orden a esta matriz. Hazlo antes de '$ formater-> setVariables ($ data);'
Después de este magento analizará este objeto y llamará a cualquiera de sus métodos. Por ejemplo, agregamos un nuevo método getPaymentOutput (). Ponga una funcionalidad simple en la clase Order:
y solo después de eso hacemos cambios en la directiva xml con esto:
fuente