OPはWooCommerceを実行しており、彼の$commerce->cart->get_total();
関数は<span class="amount">560 €</span>
(560€)などの出力に応答し、金額から料金(2.5%)を取得できるように、これを数値に変換する方法を尋ねています。
まず、ここでの問題は、get_total()
関数が文字列で応答することです。
この文字列を修正する正しい方法は、次のような簡単な例です。
<?php
$totalAmountString = $commerce->cart->get_total(); //<span class="amount">560 €</span>
$totalAmountString = strip_tags($totalAmountString); //get rid of the span - we're left with "560 €"
$totalAmountString = str_replace(array(" €", ","), "", $totalAmountString);
$totalAmountFloat = (float)$totalAmountString;
$fee = 0.025;
$feeForThisAmount = $totalAmountFloat * $fee;
var_dump($feeForThisAmount);
$totalAmountWithFee = $totalAmountFloat + $feeForThisAmount;
var_dump($totalAmountWithFee);
?>
ただし、Woo Commerce APIドキュメント$commerce->cart->total
によると、数値の浮動小数点数を取得するために使用できるはずなので、 (ここでもWooCommerceについては何も知りませんが)機能する可能性のあるソリューションは次のようになります。
<?php
$totalAmountFloat = $commerce->cart->total;
$fee = 0.025;
$feeForThisAmount = $totalAmountFloat * $fee;
var_dump($feeForThisAmount);
$totalAmountWithFee = $totalAmountFloat + $feeForThisAmount;
var_dump($totalAmountWithFee);
?>
編集
最新のデータダンプによると、問題は使用していることです
$paypal_fees=$woocommerce->cart->get_total() * 0.025;
使用すべき場所
$paypal_fees=$woocommerce->cart->total * 0.025;
as->get_total()
は文字列を->total
受け取り、floatを受け取ります。