Używam woocommerce w wordpress.
Wyświetlam koszyk na jednej z moich stron, używając:
<div id="shopping-cart"><?php echo do_shortcode("[woocommerce_cart]");?></div>
Dodaję produkt do tego koszyka, używając mojej własnej funkcji, gdy użytkownik kliknie przycisk za pomocą tego kodu:
function addToCart(p_id){
alert("Adding to cart:"+p_id);
jQuery.get("/wordpress/?post_type=product&add-to-cart=" + p_id, function(response) {
// call back
alert(response);
});
//jQuery("#shopping-cart").append("[woocommerce_cart]");
alert("Added to cart:"+p_id);
}
Nazywam tego javascript następującym kodem:
<button type="button" onclick="return addToCart(18);">Add to cart</button>
Kod działa, ale koszyk utworzony za pomocą kodu do_short nie aktualizuje się po zakończeniu żądania ajax.
Czy ktoś może mi powiedzieć, jak automatycznie zaktualizować koszyk po zakończeniu żądania pobierania?
Odpowiedzi:
1 dla odpowiedzi № 1Dokumentacja na pomoc :)
// Ensure cart contents update when products are added to the cart via AJAX (place the following in functions.php)
add_filter("add_to_cart_fragments", "woocommerce_header_add_to_cart_fragment");
function woocommerce_header_add_to_cart_fragment( $fragments ) {
global $woocommerce;
ob_start();
?>
<a class="cart-contents" href="<?php echo $woocommerce->cart->get_cart_url(); ?>" title="<?php _e("View your shopping cart", "woothemes"); ?>"><?php echo sprintf(_n("%d item", "%d items", $woocommerce->cart->cart_contents_count, "woothemes"), $woocommerce->cart->cart_contents_count);?> - <?php echo $woocommerce->cart->get_cart_total(); ?></a>
<?php
$fragments["a.cart-contents"] = ob_get_clean();
return $fragments;
}
Prawdopodobnie będziesz musiał dostosować kod HTML, aby pasował do twojego projektu.
0 dla odpowiedzi nr 2
Spróbuj dodać ten kod po dodaniu alertu do koszyka ...
location.reload();
0 dla odpowiedzi № 3
Na koniec tworzę wywołanie Ajax, które nazywa sięFunkcja PHP, która zwróciła wynik wywołania do_shortcode ("[woocommerce_cart]"); co po prostu wkładam do tego samego div po opróżnieniu - działa ładnie :)
Musiałem użyć Ajax przez woocommerce, aby faktycznie uzyskać wywołanie do_shortcode w PHP, aby działało pomyślnie zgodnie z:
http://codex.wordpress.org/AJAX_in_Plugins