[WooCommerce] Ajax koszyk
Pawel Szulc
4/1/2017 | 9:57 AM

Witam jaki musze użyć trigger na stronie koszyka że w momencie jak sie klika w zaktualizuj koszyk(np po zmianie ilości w produkcie) to aktualizuje się bez przeładowania strony również mała ikona ilości w koszyku w górnym prawym rogu tak jak to było w kursie u Pana Piotra Palarza. Ten trigger o którym Pan mówił w kusie działa owszem ale tylko na stronie wszystkich produktów,a na stronie koszyka nie

Uzytkownik Anonimowy
4/5/2017 | 11:33 PM

okej zadziałało, ale oczywiście to nie mogło dłużej trwać :( teraz weszła aktualizacja woocommerce do 3.0.0 i nie znajomych mi przyczyn ajax na stronie koszyka przestał całkowicie działać. Działa ajax po stronie archwium prodktów

Piotr Palarz
4/5/2017 | 2:26 PM

Ok, w takiej sytuacji musimy to zrobić "po swojemu". Przygotowałem kod, proszę dodać do według takiej kolejności: 1. do functions.php: https://pastebin.com/70kfrUYc 2. do footer.php: https://pastebin.com/1MLRGbpe 3. do pliku, w którym ma Pan skrypty jQuery: https://pastebin.com/Cs6yrUDN

Pawel Szulc
4/4/2017 | 8:52 PM

coś takie mam w konsoli po wgraniu tego kodu: Wyświetlam e scripts.js:16 m.Event {type: "updated_cart_totals", timeStamp: 1491331911428, jQuery1111006048672042115144: true, isTrigger: 3, namespace: ""…} scripts.js:17 Wyświetlam o scripts.js:18 undefined

Piotr Palarz
4/4/2017 | 7:51 PM

Dodać drugi parametr do funkcji (pierwszym nazwijmy e, a drugi o) i zobaczyć co będzie w konsoli: $("body").on("updated_cart_totals", function(e, o) { console.log("Wyświetlam e"); console.log(e); console.log("Wyświetlam o"); console.log(o); }); Chodzi o to czy pod zmienną o coś jest.

Pawel Szulc
4/4/2017 | 5:00 PM

tak wyświetla się, pewnie to już jakiś sukces tylko co dalej mam poczynić?

Piotr Palarz
4/4/2017 | 11:01 AM

A czy po dodaniu czegoś takiego do kodu JavaScript: $("body").on("updated_cart_totals", function(o) { console.log("Hello world!"); }); Tekst "Hello world!" wyświetla się w konsoli po zaktualizowaniu ilości w koszyku Ajaxem?

Pawel Szulc
4/2/2017 | 10:06 AM

cart_count wyświetla się ale wydaje mi się ze to jest z tej poprzedniej funckji i teraz nie wiem, bo skoro sie cart_count wyświetla w konsoli to wystarczyło by tylko dodać w js taki kod ze po kliknięciu "zaktualizuj koszyk" koszyk faktycznie się aktualizował, ale nie wiem czemu się nie aktualizuje :( pomoże Pan ?

Pawel Szulc
4/2/2017 | 10:03 AM

Witam, po dodaniu tego w koszyku nic się nie zmieniło (w konsoli nie wyświelta się "o"), a czy ja powinienem coś dodać jeszcze do functions.php bo wtedy Pan dodał: function add_ajax_cart_count($args) { $args['cart_count'] = get_cart_total(); return $args; } add_filter('add_to_cart_fragments', 'add_ajax_cart_count'); a czy ja musze to jakoś zmienić czy dodać coś innego ??

Piotr Palarz
4/1/2017 | 7:06 PM

A dodał Pan do tej funkcji, którą podałem jakiś parametr? Polecam zrobić tak: $("body").on("updated_cart_totals", function(o) { console.log(o); }); i zobaczyć co zwróci konsola. W zwróconym obiekcie powinno być cart_count (generalnie chodzi o to, żeby ta funkcja callback wyglądała tak samo jak w przypadku tego poprzedniego zdarzenia, które Panu działa.

Pawel Szulc
4/1/2017 | 1:34 PM

Witam w konsoli pokazuje mi się: Uncaught TypeError: Cannot read property 'cart_count' of undefined

Piotr Palarz
4/1/2017 | 12:38 PM

Wydaje mi się, że to będzie taki kod, ale nie jestem pewien w tym momencie: $("body").on("updated_cart_totals", function() { // Twój kod });