es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo ejecutar un código JavaScript personalizado al realizar un pedido, pero antes de redirigir al portal de pago en Magento 1.9?

Necesito integrar mi Magento con un servicio de seguimiento de pedidos. El proveedor del servicio me solicitó que incluyera algún código en la última página del proceso de pago, pero antes de que se redirija al cliente a la pasarela de pago. Utilizo el proceso de pago en una sola página. La versión simplificada del código es algo como esto.

No quiero que este código se ejecute hasta que el cliente acepte los acuerdos, haga clic en “colocar pedido” y el pedido sea aceptado. ¿Cómo puedo hacer eso?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para evitar que el código se ejecute hasta que el cliente acepte los acuerdos y haga clic en realizar pedido, puede modificar el botón de envío de pedido de pago a través del adding a function que compruebe si se han aceptado los acuerdos antes de permitir que el código se ejecute. Siga estos pasos:

    1. Abra el archivo app/design/frontend/[theme]/[theme]/template/checkout/onepage/review/button.phtml
    2. Busque el código <button type="submit" title="<?php echo $this->__('Place Order') ?>" class="button btn-checkout" onclick="review.save();"><span><span><?php echo $this->__('Place Order') ?></span></span></button>.

    3. Reemplace con:

      <button type="submit" title="<?php echo $this->__('Place Order') ?>" class="button btn-checkout" onclick="checkAgreements();"><span><span><?php echo $this->__('Place Order') ?></span></span></button>
      

    4. Cree un nuevo archivo JavaScript en skin/frontend/[theme]/js/ llamado custom.js
    5. Agregue el siguiente código al archivo custom.js:

      function checkAgreements() {
         if ($('agreement-checkbox').checked) {
             //ejecuta el código de seguimiento de pedido aquí
         } else {
             alert('Por favor, acepte los términos y condiciones');
         }
      }
      

    6. Reemplace //ejecuta el código de seguimiento de pedido aquí con el código proporcionado por el proveedor de servicios.
    7. Guarde el archivo custom.js y limpie la caché de Magento.

    Ahora, cuando el cliente hace clic en el botón de envío de pedido, la función checkAgreements() verificará si el cuadro de aceptación de acuerdos está marcado. Si lo está, se ejecutará el código proporcionado por el proveedor de servicios. Si no lo está, el cliente recibirá una alerta para que acepte los términos y condiciones antes de continuar.

Comments are closed.