Me gustaría preguntarle cómo podía deshabilitar el AJAX en la página de pago (donde se introduce información de envío y facturación) y que en lugar de utilizar AJAX para actualizar el carrito de resumen basado en su ubicación, se podría actualizar haciendo un natural de actualización.

Actualmente el carro resumen de la actualización de sí mismo, sin necesidad de recargar la página cuando el usuario cambia su ubicación a través de la ubicación de envío. Me gustaría eliminar que el AJAX y sólo tienen la recarga de la página con la información actualizada.

No estoy muy seguro de qué tipo de códigos o dirección que yo debería estar apuntando, pero estoy listo para proporcionar los detalles necesarios. Sólo házmelo saber! Gracias!!

  • Por qué estás tratando de quitar Ajax? Bajo Woocommerce->Ajustes->Productos>Añadir a la cesta hay una sección para deshabilitar el Ajax pero no puede ser lo que buscas.
  • Lee estoy tratando de eliminar el AJAX porque es la sobreescritura de mis traducciones. He estado buscando formas de tener el contenido que se actualiza a través de AJAX se traducía cada vez en lugar de eso, prefiero que me acaba de quitar y tienen la recarga de la página con el contenido que se traduce cada vez. Por desgracia, deshabilitar AJAX utilizando el método de la que usted habló, sólo se deshabilita el AJAX al añadir productos a su carrito de compras.
InformationsquelleAutor chdltest | 2014-11-19

5 Comentarios

  1. 9

    Todos WooCommerce cadenas correctamente localizado con wp_localize_script así que yo creo que se podría traducir correctamente de ellos mediante la creación de la adecuada .po/.el archivo mo, pero confieso no tener un montón de experiencia con las traducciones. Referencia: todos los paquetes de idioma son en Github y también puede ser que desee para leer el documentación.

    De todos modos, la caja de secuencias de comandos están todos en checkout.js. Como cualquier secuencia de comandos que puede eliminar de la cola a través de wp_dequeue_script() siempre y cuando usted sabe el mango.

    function so_27023433_disable_checkout_script(){
        wp_dequeue_script( 'wc-checkout' );
    }
    add_action( 'wp_enqueue_scripts', 'so_27023433_disable_checkout_script' );
    • ¿Qué sucede exactamente cuando denqueue una secuencia de comandos?
    • No se cargan en el front-end. Consulte el codex artículo.
  2. 1

    Tuve un problema similar, y en lugar de quitar toda la secuencia de comandos, fui a ver cuando el evento se ha creado, y me encontré con esto.

    $( document.body ).bind( 'update_checkout', this.update_checkout );

    Después de leer un poco, me encontré con que no voy a ser capaz de separar debido a que el espacio de nombres, por lo que me enganchó en el on evento y ya no puedo impedir por defecto me detuve a la propagación del evento.

    y estos resuelto mi problema.

    jQuery(document.body).on('update_checkout', function(e){
        //e.preventDefault();
        //e.stopPropagation();
        e.stopImmediatePropagation();
        //console.log(e);
    });
    • Esa es una buena idea. Es de esperar que su evento se activa antes de que el WC defecto de lo contrario creo que el correo.stopImmediatePropagation va a parar el resto de enganchado de funciones, pero no la que ya se ha ejecutado. Obviamente, usted puede comprobar el momento en que el WC ganchos su función y se puede conectar a su función anterior. Así que sí, creo que funcionaría.
  3. 0

    Si usted sigue la lógica de la checkout.js el código fuente se dará cuenta de que estos AJAX acciones relacionadas con la edición de la facturación|envío de direcciones puede ser inhabilitada de forma segura cambiando el formulario de compra del nombre de la clase.
    Sí, lo sé, es así de simple. Así que en lugar de form.checkout hacer form.checkout1 donde .checkout1 es sólo un imaginario nombre de la clase (no tiene que ser real o existente).

    Aquí se muestra un ejemplo de código que pueden ayudarle a entender lo que se necesita:

    var default_class = 'checkout';
    var mask_class = 'checkout1';
    
    //hijack the form's AJAX by changing form's default class name
    $('form.'+default_class).addClass(mask_class).removeClass(default_class);
    
    //restore the original class name whenever you want it
    $('form.'+mask_class).addClass(default_class).removeClass(mask_class);

    Por favor, tenga en cuenta que este es un hack que no documentado. No obstante también puede cambiar el formulario de compra de la funcionalidad en cualquier momento, así que tenlo en cuenta. Puedo confirmar que funciona en el WC 2.6.14 y, probablemente, en versiones anteriores también.

    • Una cosa más acerca de este enfoque: asegúrese de que usted revertir la clase predeterminada en el cuerpo.checkout_error de lo contrario, podría producirse un error de JS porque el submit_error función de checkout.js evaluará el $( ‘form.caja’ ).offset (), que daría lugar a una excepción ReferenceError.
  4. 0

    Hemos tenido un problema similar: cargado checkout secuencias de comandos en un cotización de la lista de checkout. Las secuencias de comandos donde se cargan a través de otro plugin de nuevo (WooCommerce «Alemanizada»).

    Nuestra solución es mucho más explícita:

    • Configurar un campo personalizado en la página, usted no desea que la caja de secuencia de comandos de ser cargado.

    Y que:

    add_action('wp_enqueue_scripts', 'myprefix_dequeue_woocommerce_checkout', 10000);
    
    function myprefix_dequeue_woocommerce_checkout() {
      if (get_post_meta(get_the_ID(), 'disable_woocommerce_checkout_scripts')) {
        wp_dequeue_script('wc-checkout');
        wp_dequeue_script('wc-gzd-checkout');
        wp_dequeue_script('wc-gzdp-checkout');
      }
    }
  5. -1

    Una manera de no desactivar checkout.js.

    Primera es posible que checkout.min.js se carga en lugar de checkout.js.

    Comentar sus 2 líneas :

    update_checkout:function(){
        //b.reset_update_checkout_timer(),
        //b.updateTimer=setTimeout(b.update_checkout_action,"5")
    },

    Luego de su página de pago será ajax gratis!

    • No sé si esto iba a funcionar o no, pero es una mala práctica para editar el código de las bibliotecas de terceros, tales como los plugins. Puede tener resultados inesperados, a menudo se amplía considerablemente el tiempo de mantenimiento y se perderán durante el estándar de procedimientos de actualización.
    • Bien, esta era una sucia revisión.

Dejar respuesta

Please enter your comment!
Please enter your name here