Librairie Wordpress qui permet de créer un panier en Ajax pour le plugin Woocommerce. Pour le moment, la librairie contient que la partie back-end, c'est-à-dire le PHP. La partie en Javascript reste à la charge du développeur.
À l'heure d'aujourd'hui, seules les actions suivantes sont supportées par la librairie :
- Ajout et réduction de la quantité d'un produit
- Suppression d'un produit du panier
- Ajout d'un code promo
- Suppression d'un code promo
Si vous utilisez composer :
composer require dbout/wc-ajax-cart
Si vous n'utilisez pas composer, importez la classe Dbout\Woocommerce\WcAjaxCart\WcAjaxCart
dans le fichier functions.php
de votre thème :
<?php
require_once DIR_TO_PATH.'/WcAjaxCart.php';
use Dbout\Woocommerce\WcAjaxCart;
WcAjaxCart::getInstance()->loadFiles();
Afin d'enregistrer les actions ajax dans Wordpress, ajoutez ces quelques lignes en haut du fichier functions.php
de votre thème :
<?php
use Dbout\Woocommerce\WcAjaxCart\WcAjaxCart;
WcAjaxCart::getInstance()->register();
Et voilà, les actions ajax sont enregistrées dans Wordpress !
Afin de gérer au mieux les URL(endpoints) des actions, la librairie propose plusieurs fonctions d'aides pour chaque action :
-
ajaxCartAddQuantityUrl(string $itemId) : Retourne l'URL qui permet d'augmenter la quantité d'un produit.
-
ajaxCartRemoveQuantityUrl(string $itemId) : Retourne l'URL qui permet de réduire la quantité d'un produit.
-
ajaxCartRemoveCouponUrl(string $coupon) : Retourne l'URL qui permet de supprimer un code promo.
-
ajaxCartAddCouponUrl(string $coupon = null) : Retourne l'URL qui permet d'ajouter un code promo.
Par défaut, l'ensemble des actions retournent un objet Dbout\Woocommerce\WcAjaxCart\Response\InterfaceWcAjaxCartResponse
qui une fois envoyé au navigateur a le format suivant :
{
"status": {
"code": 200,
"error_message": null
},
"results": {}
}
Il est possible de modifier la structure de la réponse, à l'aide de deux filtres (filter en Wordpress) :
- dbout_wc_ajax_cart_response : Qui est appelé juste avant l'envoi de la réponse au navigateur.
add_filter('dbout_wc_ajax_cart_response', function($response, $action) {
// Do someting ..
return $response;
});
- dbout_wc_ajax_cart_response_success : Qui est appelé uniquement lorsque l'action a correctement abouti.
add_filter('dbout_wc_ajax_cart_response_success', function($response, $action) {
// Do someting ..
return $response;
});