Eutanasio Posted May 9, 2020 Share Posted May 9, 2020 (edited) Buenas, Necesito insertar un botón de pago en el email order_confirmation utilizando un link de PayPal.me. La cuestión es que la divisa en mi web no está soportada por PayPal, por lo que al valor total del pedido {total_paid} hay que dividirlo por la tasa de conversión antes de incluirlo en el href del enlace de PayPal, algo así: $value_eur = '{total_paid}/2.5'; echo "<a href='https://PayPal.Me/DiaRusso/".$value_eur."EUR'>PayPal</a>"; Ya sé que está mal, pero para que me entiendan Gracias Edited May 9, 2020 by omar2886 explicación simplificada (see edit history) Link to comment Share on other sites More sharing options...
ventura Posted May 10, 2020 Share Posted May 10, 2020 EDITADO classes/PaymentModule.php En la function validateOrder, se añade antes del array $data $euroCurrencyId = 3; // Euro (€) id currency in your instalation $currencyEur = new Currency($euroCurrencyId); $totalPaidEur = number_format($order->total_paid / $currencyEur->conversion_rate, 2, '.', ''); Después ya dentro del array $data, se añade: '{paypal_url}' => 'https://PayPal.Me/DiaRusso/'.$totalPaidEur.$currencyEur->iso_code, Luego ya solo faltaría añadir el enlace en la plantilla del email enviado, themes/tu_tema/mails/es/order_conf.html Así por ejemplo: <a href="{paypal_url}" target="_blank" style="color: #25B9D7; text-decoration: underline; font-weight: 600;">Paypal</a> 1 1 Link to comment Share on other sites More sharing options...
Eutanasio Posted May 10, 2020 Author Share Posted May 10, 2020 11 hours ago, ventura said: classes/PaymentModule.php En la function validateOrder, se añade antes del array $data $euroCurrencyId = 3; // Euro (€) id currency in your instalation $currencyEur = new Currency($euroCurrencyId); $totalPaidEur = number_format($order->total_paid / $currencyEur->conversion_rate, 2, '.', ''); Después ya dentro del array $data, se añade: '{paypal_url}' => 'https://PayPal.Me/DiaRusso/'.$totalPaidEur.$currencyEur->iso_code, Luego ya solo faltaría añadir el enlace en la plantilla del email enviado, themes/tu_tema/mails/es/order_conf.html Así por ejemplo: <a href="{paypal_url}" target="_blank" style="color: #25B9D7; text-decoration: underline; font-weight: 600;">Paypal</a> Muchas gracias por la respuesta! pero tras muchas pruebas, no consigo que el nuevo texto insertado en el código del template del email tenga un enlace, parece que no detecta el href. Así es como carga dicho código en el email que llega: <a style="color:#25b9d7;text-decoration:underline;font-weight:600">PayPal</a> No hay HREF Link to comment Share on other sites More sharing options...
Eutanasio Posted May 10, 2020 Author Share Posted May 10, 2020 Por cierto, así es como he insertado el código que me pasaste @ventura // Send an e-mail to customer (one order = one email) if ($id_order_state != Configuration::get('PS_OS_ERROR') && $id_order_state != Configuration::get('PS_OS_CANCELED') && $this->context->customer->id) { $invoice = new Address((int) $order->id_address_invoice); $delivery = new Address((int) $order->id_address_delivery); $delivery_state = $delivery->id_state ? new State((int) $delivery->id_state) : false; $invoice_state = $invoice->id_state ? new State((int) $invoice->id_state) : false; $carrier = $order->id_carrier ? new Carrier($order->id_carrier) : false; $euroCurrencyId = 3; // Boton pagar con PayPal en email order_conf $currencyEur = new Currency($euroCurrencyId); // Boton pagar con PayPal en email order_conf $totalPaidEur = number_format($order->total_paid / $currencyEur->conversion_rate, 2, '.', ''); // Boton pagar con PayPal en email order_conf $data = array( '{paypal_url}' => 'https://PayPal.Me/RockMa/'.$totalPaidEur.$currencyEur->iso_code, // Boton pagar con PayPal en email 1 Link to comment Share on other sites More sharing options...
ventura Posted May 10, 2020 Share Posted May 10, 2020 Prueba borrando cache, no esta pillando la variable añadida Link to comment Share on other sites More sharing options...
Eutanasio Posted May 10, 2020 Author Share Posted May 10, 2020 4 minutes ago, ventura said: Prueba borrando cache, no esta pillando la variable añadida el que está en Parametros Avanzados -> Performance? o el contenido de alguna carpeta en el server? Link to comment Share on other sites More sharing options...
Eutanasio Posted May 10, 2020 Author Share Posted May 10, 2020 Tras borrar cache ya aparece el enlace, pero no tiene ningún valor antes de currency, el enlace aparece así: https://PayPal.Me/DiaRusso/EUR Link to comment Share on other sites More sharing options...
ventura Posted May 10, 2020 Share Posted May 10, 2020 8 hours ago, ventura said: classes/PaymentModule.php En la function validateOrder, se añade antes del array $data $euroCurrencyId = 3; // Euro (€) id currency in your instalation Revisa esa parte para que corresponda con la id del currency EUR, Link to comment Share on other sites More sharing options...
Eutanasio Posted May 10, 2020 Author Share Posted May 10, 2020 el ID es correcto, lo he comprobado incluso en la BD. Eso sí, como no aceptamos más que la moneda local, esta divisa está desactivada en el admin, no sé si eso importa (no puedo activarla porque no tengo intención de aceptar pagos en divisa salvo para este botón de PayPal). Link to comment Share on other sites More sharing options...
ventura Posted May 10, 2020 Share Posted May 10, 2020 3 hours ago, omar2886 said: Tras borrar cache ya aparece el enlace, pero no tiene ningún valor antes de currency, el enlace aparece así: https://PayPal.Me/DiaRusso/EUR Perdona, estaban mal nombradas las variables, Ya esta editado en el primer mensaje 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