2016-06-08 10 views
4

In meiner WooCommerce Website habe ich die Warenkorb-Seite geändert, entfernt den Button „Warenkorb aktualisieren“ und 2-Tasten erstellen hinzuzufügen und Artikel von Produkt zu entfernen, wie ich in diesem Bild zeigen:Warenkorb aktualisieren mit WooCommerce ajax

enter image description here

Wenn ich auf die Mengenschaltflächen klicke, möchte ich die gleiche Funktion aufrufen, wenn ich die Taste drücke, um den Einkaufswagen zu aktualisieren.

Dafür verwende ich Ajax, aber es tut nichts.

Zuerst in meiner function.php Datei Ich habe diese:

function update_my_cart() { 
    // here update then cart 
    var_dump("execute"); 
    } 
    add_action('wp_ajax_update_my_cart', 'update_my_cart'); // If called from admin panel 
    add_action('wp_ajax_nopriv_update_my_cart', 'update_my_cart'); 



    add_action('wp_enqueue_scripts', 'rct_enqueue_scripts'); 

    if (! function_exists('rct_enqueue_scripts')) : 

    function rct_enqueue_scripts() { 
    wp_enqueue_script('rct-js', get_template_directory_uri() . '/js/themeCoffee.js', array(), '1.0', true); 
    wp_localize_script('rct-js', 'ajax_object', array('ajax_url' => admin_url('admin-ajax.php'))); 
    } 

    endif; 

Und in meinem Jquery-Datei habe ich dies:

updatecart = function(qty) { 
    var currentVal, data, item_hash, request; 
    currentVal = void 0; 
    data = void 0; 
    item_hash = void 0; 
    currentVal = parseFloat(qty); 
    request = $.ajax({ 
     url: 'ajax_object.ajax_url', 
     method: 'POST', 
     data: { 
     quantity: currentVal, 
     action: 'update_my_cart' 
     }, 
     dataType: 'html' 
    }); 
    request.done(function(msg) { 
     alert('cart update '); 
    }); 
    request.fail(function(jqXHR, textStatus) { 
     alert('Request failed: ' + textStatus); 
    }); 
    }; 

ich diesen Fehler erhalten:

Failed to load resource: the server responded with a status of 404 (Not Found) 

Weil ich versuchen Sie, my_website/cart/ajax_object.ajax_url zu laden.

Vielen Dank im Voraus!

+0

Dank @LoicTheAztec ich bereits meine Datei geändert, wie Sie vorschlagen. und ändern Sie die Frage mit der neuen Änderung, aber ich erhalte immer noch den gleichen Fehler. Irgendeine Idee! – Stone

+0

@LoicTheAztec Ich habe einen Fehler Ich habe dies in meiner Ajax-Funktion URL: 'ajax_object.ajax_url', und das richtige ist ohne Anführungszeichen. Jetzt funktioniert, vielen Dank für Ihre Hilfe – Stone

+0

Auto ** t ** nicht Auto – Midas

Antwort

6

Sie vergessen haben diesen grundlegenden Prozess:

add_action('wp_enqueue_scripts', 'add_my_ajax_scripts'); 
add_my_ajax_scripts(){ 
    // Here you register your script located in a subfolder `js` of your active theme 
    wp_enqueue_script('ajax-script', get_template_directory_uri().'/js/script.js', array('jquery'), '1.0', true); 
    // Here you are going to make the bridge between php and js 
    wp_localize_script('ajax-script', 'cart_ajax', array('ajaxurl' => admin_url('admin-ajax.php'))); 
} 

Dann holen Sie 'ajaxurl' und 'cart_ajax' in Ihrer JavaScript-Datei in url::

$.ajax({ 
    url: 'cart_ajax.ajaxurl', 
    ... 
}) 

Ihre Javascript-Funktion wird nicht funktionieren. Hier sind einige Funktionsbeispiele von dem, was Sie tun müssen:

Verwandte Themen