"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment mettre à jour dynamiquement le nombre d’articles du panier d’en-tête WooCommerce à l’aide d’AJAX ?

Comment mettre à jour dynamiquement le nombre d’articles du panier d’en-tête WooCommerce à l’aide d’AJAX ?

Publié le 2024-11-04
Parcourir:354

How to Dynamically Update WooCommerce Header Cart Items Count Using AJAX?

Nombre d'articles du panier d'en-tête Ajaxify dans WooCommerce

Identification du besoin

Dans les thèmes WordPress intégrés à WooCommerce, mise à jour du panier d'en-tête le comptage des éléments sans recharger la page est un défi courant. jQuery propose une solution, mais des questions se posent lorsque des articles peuvent être ajoutés en plusieurs quantités.

Utiliser AJAX pour récupérer le nombre total

Pour récupérer dynamiquement le nombre total de paniers à partir de PHP sessions utilisant jQuery, un fichier reloadCart.php est créé pour faire écho à la valeur :

cart->get_cart_contents_count();
?>

Implémentation AJAX

Cependant, les tentatives d'appel AJAX vers ce fichier à l'aide des fonctions get(), post() ou ajax() de jQuery ont échoué .

Approche améliorée

Au lieu de s'appuyer sur un rechargement, WooCommerce propose un crochet d'action woocommerce_add_to_cart_fragments dédié qui prend en charge Ajax.

Intégration HTML

Incorporez le nombre de paniers dans l'en-tête avec un identifiant ou une classe unique :

$items_count = WC()->cart->get_cart_contents_count(); 
?>
    

Code PHP

Implémentez le code suivant dans le fichier function.php du thème ou dans un plugin :

add_filter( 'woocommerce_add_to_cart_fragments', 'wc_refresh_mini_cart_count');
function wc_refresh_mini_cart_count($fragments){
    ob_start();
    $items_count = WC()->cart->get_cart_contents_count();
    ?>
    

Remplacez #mini-cart-count par .mini-cart-count si vous utilisez une classe.

jQuery Refresh

Si jQuery Actualisation supplémentaire est requis :

$(document.body).trigger('wc_fragment_refresh');

ou

$(document.body).trigger('wc_fragments_refreshed');
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3