カートの合計金額に割引を適用しようとしていますが、商品の基本価格に対してのみ適用でき、全体の価格には適用できません。私はグーグルで検索し、ワードプレスのスタックオーバーフローでこの投稿に出くわしました:
$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...