web-dev-qa-db-ja.com

woocommerceカートの合計金額を取得する

カートの合計価格に割引を適用しようとしていますが、アイテムの基本価格にのみ適用でき、全体の価格には適用できません。グーグルで出会った this wordpress stackoverflow:

$ amount = floatval(preg_replace( '#[^\d。]#'、 ''、$ woocommerce-> cart-> get_cart_total())); preg_replaceは、小数点文字とコロン以外のすべてを削除します。

あなたがそれを使って数学をやるのであれば、floatvalは値を文字列から数値に変換します。

私は追加しようとしました:

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

そして変化する

$discount = round( (($discounting_amount / 100 ) *  $this->amount)*-1, WC()->cart->dp);

$discount = round( (($discounting_amount / 100 ) *  $amount2)*-1, WC()->cart->dp);

しかし、次のエラーが表示されます。

Fatal error: Call to a member function get_cart_total() on a non-object in...
20
Howli

グローバル変数を呼び出して、正しい値を取得する必要があります。

追加する場合

 global $woocommerce;

直前

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

これで問題が解決するはずです。

20
Ronan

これを試して:

WC()->cart->cart_contents_total

Get_cart_total関数はwc_price関数を使用し、thasはcart_contents_totalを通貨に変換します。

24
zennin

これもうまくいきます。

WC()->cart->total

11
colapsnux

これは完全に機能し、通貨記号を削除します。

     $woocommerce->cart->total;
7
Muvans
global $woocommerce;
    $amount = $woocommerce->cart->cart_contents_total+$woocommerce->cart->tax_total;

要件に応じて、$ amountをfloat値に変換することもできます。

4
Deepak Kumar

2018年後半の時点で、最善の方法はget_cart_contents_total()を使用することです。これは、割引後のカート内のアイテムの合計です。

WC()->cart->get_cart_contents_total(); // Float

より具体的なニーズに合わせて他の方法を利用できます。 ドキュメント をご覧ください。

2
Buzut

税と割引を含むカートの合計を表示するには、これを使用します

$ordertotal = wp_kses_data( WC()->cart->get_total() );
1
typocoder

$ totalamount = $ woocommerce-> cart-> cart_contents_total;

echo $ totalamount;

0
mital korat