J'essaie d'appliquer un rabais sur le prix total d'un chariot, mais je ne peux le faire que sur le prix de base de l'article et non sur le prix global. J'ai cherché sur Google et suis tombé sur this post dans le Wordpress stackoverflow:
$ amount = floatval (preg_replace ('# [^\d.] #', '', $ woocommerce-> cart-> get_cart_total ())); Le preg_replace élimine tout sauf les caractères décimaux et les deux-points.
Si vous avez envie de faire des calculs avec cela, floatval convertit la valeur d'une chaîne à une numérique.
J'ai essayé d'ajouter:
$amount2 = floatval( preg_replace( '#[^\d.]#', '', $woocommerce->cart->get_cart_total() ) );
et changer
$discount = round( (($discounting_amount / 100 ) * $this->amount)*-1, WC()->cart->dp);
à
$discount = round( (($discounting_amount / 100 ) * $amount2)*-1, WC()->cart->dp);
Mais j'obtiens l'erreur suivante:
Fatal error: Call to a member function get_cart_total() on a non-object in...
Vous devez appeler la variable globale pour vous assurer qu'elle obtient les valeurs correctes.
Si vous ajoutez
global $woocommerce;
juste avant
$amount2 = floatval( preg_replace( '#[^\d.]#', '', $woocommerce->cart->get_cart_total() ) );
ceci devrait régler votre problème.
Essaye ça:
WC()->cart->cart_contents_total
La fonction get_cart_total utilise la fonction wc_price qui convertit cart_contents_total en devise.
Cela fonctionne aussi bien.
WC()->cart->total
Cela fonctionne parfaitement et supprime le symbole monétaire:
$woocommerce->cart->total;
global $woocommerce;
$amount = $woocommerce->cart->cart_contents_total+$woocommerce->cart->tax_total;
Vous pouvez également convertir $ montant en valeur flottante selon vos besoins.
Pour afficher le total des paniers, taxes et remises compris, utilisez cette option.
$ordertotal = wp_kses_data( WC()->cart->get_total() );
À la fin de 2018, le meilleur moyen consiste à utiliser get_cart_contents_total()
. C'est le total des articles dans le panier après les remises.
WC()->cart->get_cart_contents_total(); // Float
D'autres méthodes sont disponibles pour des besoins plus spécifiques, il suffit de regarder les docs .
$ totalamount = $ woocommerce-> cart-> cart_contents_total;
echo $ totalamount;