lfcarvajal Posted February 1, 2016 Share Posted February 1, 2016 Buenas tardes, He estado intentando pasar un arreglo a las plantillas de email de los estados de pedido, pero cuando intento imprimir el arreglo en la vista solamente me saca la variable escrita no me imprime nada. Ya intenté recorrer el arreglo de varias formas en la plantilla del correo que es un HTML pero no puedo usar section, ni un foreach. Alguien tienen alguna idea de como hacerlo. Específicamente lo que intento hacer es traer en la clase OrderHistory.php los productos asociados a una orden y enviarlos a la plantilla para poder imprimirlos en el correo, puedo hacerlo con un producto, pero cuando la orden tiene más de dos productos tengo que pasar un arreglo que no logro imprimir en la vista. Si alguien me puede ayudar sería genial!, gracias! Link to comment Share on other sites More sharing options...
shacker Posted February 2, 2016 Share Posted February 2, 2016 las variables de plantilla solo puedes mandarlas por {variable}, debes programarlas en e lphp cada uana, como por ejemplo en el modulo cheque, que envia la variables al mail de confirmacion de pago $mailVars = array( '{cheque_name}' => Configuration::get('CHEQUE_NAME'), '{cheque_address}' => Configuration::get('CHEQUE_ADDRESS'), '{cheque_address_html}' => str_replace("\n", '<br />', Configuration::get('CHEQUE_ADDRESS'))); $this->module->validateOrder((int)$cart->id, Configuration::get('PS_OS_CHEQUE'), $total, $this->module->displayName, NULL, $mailVars, (int)$currency->id, false, $customer->secure_key); Tools::redirect('index.php?controller=order-confirmation&id_cart='.(int)$cart->id.'&id_module='.(int)$this->module->id.'&id_order='.$this->module->currentOrder.'&key='.$customer->secure_key); La funcion Validate order de module, es la que envia los mails. No se a donde quieres mandar esas variables, pero deberias hacer algo asi 1 Link to comment Share on other sites More sharing options...
joseantgv Posted February 2, 2016 Share Posted February 2, 2016 Y en este caso necesitas que esa variable que pasas al correo tenga el contenido HTML generado desde la clase OrderHistory. En las plantillas no puedes aplicar ningún tipo de lógica, únicamente printar variables o trozos de código HTML. 1 Link to comment Share on other sites More sharing options...
lfcarvajal Posted February 2, 2016 Author Share Posted February 2, 2016 Muchas gracias! voy a buscar la forma de formar de pasar el html completo para imprimir los productos en la plantilla, pasándolo en una sola variable. Link to comment Share on other sites More sharing options...
ventura Posted February 2, 2016 Share Posted February 2, 2016 Puedes crear un funcion que pase esas variables a un tpl, y de este pasarlas a la plantilla de email. Revisa por ejemplo en PaymentModule la funcion getEmailTemplateContent 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now