Obține prețul total al coșului Woocommerce în format numeric

24 sept. 2013, 14:39:45
Vizualizări: 80.5K
Voturi: 8

Este posibil să obțin prețul total al coșului fără markup suplimentar, deci fără simbolul €? În prezent obțin suma folosind:

$totalamount = $woocommerce->cart->get_cart_total();  

aceasta va returna €16.50

Am încercat și această variantă:

$totalamount = number_format($woocommerce->cart->get_cart_total(), 2, '.', '');

Dar aceasta returnează întotdeauna 0.00

Există vreo funcție WooCommerce care să returneze prețul total al coșului în format numeric? Mulțumesc!

0
Toate răspunsurile la întrebare 2
7
24

Acesta este ceea ce doriți:

Lucrul cu variabila globală:

global $woocommerce;  
$woocommerce->cart->total;

Lucrul cu funcția:

WC()->cart->total;
11 feb. 2014 10:51:27
Comentarii

Te rog să adaugi o explicație la răspunsul tău: de ce ar putea rezolva problema?

fuxia fuxia
11 feb. 2014 11:09:02

da! asta funcționează; elimină simbolul valutar

numediaweb numediaweb
5 apr. 2014 20:14:31

Dacă folosesc asta în coș, funcționează corect doar când coșul este vizitat, nu dacă cineva folosește actualizarea coșului... știe cineva de ce?

byronyasgur byronyasgur
26 mar. 2015 23:28:58

Acesta ar trebui să fie răspunsul corect. În funcție de context (de exemplu, în cazul meu), WC()->cart->total funcționează de asemenea foarte bine.

rrrhys rrrhys
23 sept. 2015 01:13:13

pe orice pagină poți declara $woocommerce ca variabilă globală și apoi poți accesa majoritatea lucrurilor de care ai nevoie.

Aamer Shahzad Aamer Shahzad
16 nov. 2015 23:31:51

poți crea și o altă variabilă pentru coș în felul următor global $woocommerce; $cart = $woocommerce->cart->get_cart();

aceasta conține informațiile legate de coș;

folosește print_r( $cart ); pentru a accesa valorile.

Aamer Shahzad Aamer Shahzad
16 nov. 2015 23:33:13
Arată celelalte 2 comentarii
3

Actualizare 2020

Răspuns

Consultați răspunsul lui flytech pentru o soluție folosind API-ul nativ WooCommerce.

Notă / Avertisment

Dacă intenționați să efectuați calcule aritmetice corecte cu valori monetare, utilizați întotdeauna numere întregi semnate (!) care reprezintă cea mai mică denominație a unei monede date (Cent, Penny, Paisa, Dirham, etc.).
Convertiți înapoi în fracții zecimale doar în stratul de prezentare al aplicației după ce toate calculele au fost finalizate.

Acest lucru este valabil indiferent de limbajul sau framework-ul utilizat.

Răspuns original

Nu cunosc woocommerce deloc și, prin urmare, poate exista și o metodă nativă, dar oricum, acest cod

$amount = floatval( preg_replace( '#[^\d.]#', '', $woocommerce->cart->get_cart_total() ) );

ar trebui să funcționeze.

Funcția preg_replace elimină totul, cu excepția caracterelor zecimale și a punctelor.

Dacă doriți să efectuați calcule matematice cu această valoare, floatval convertește valoarea dintr-un șir de caractere într-una numerică.

24 sept. 2013 14:56:34
Comentarii

Mulțumesc, deja am rezolvat cu un fel de soluție într-adevăr.

Trekdrop Trekdrop
24 sept. 2013 14:59:01

Pentru unele țări trebuie să iei în considerare și virgula, încearcă asta '#[^\d.,]#'

j.c j.c
19 mai 2017 11:52:51

Aș avertiza despre această problemă: dacă setezi puncte și virgule în setările generale woocommerce, poți avea rezultate nedorite cu această metodă. Exemplu: suma = 1.239,90$ poate fi citită ca 1,239$. Aș sugera această soluție

j.c j.c
28 iul. 2017 22:05:18