カートの合計に0しか表示されない問題が発生しています
基本的に私がしようとしていることは、すべてのカートアイテムがカートの小計に追加された後、特定の金額のデポジットの合計のみを受け入れることです。
たとえば、顧客が100ドル相当の商品を追加した場合、最初に10ドル、または合計値として小計の(10%)のみを支払うことになります。
私はここからコードを取得しました: Change total and tax_total Woocommerce を次のようにカスタマイズします:
add_action('woocommerce_cart_total', 'calculate_totals', 10, 1);
function calculate_totals($wc_price){
$new_total = ($wc_price*0.10);
return wc_price($new_total);
}
しかし、そのコードが有効な場合、合計金額は0.00を示します。コードを削除すると、標準の合計が得られます。
また、完全なAPIがリストされているwoocommerceサイトでは見つかりませんでした。プラグインの作成方法に関する一般的な記事のみです。
どんな助けでも、正しい方向でのポイントも素晴らしいでしょう。
Woocommerce 3.2以降これ以上機能しません新しいクラス _
WC_Cart_Totals
_ ...
最初の_woocommerce_cart_total
_フックはfilterフックであり、アクションフックではありません。 _wc_price
__woocommerce_cart_total
_の引数はフォーマット済みの価格なので、10ずつ増やすことはできません%。それがゼロを返す理由です。
Woocommerce v3.2より前いくつかのように機能します_
WC_Cart
_プロパティ 直接アクセスできます
_woocommerce_calculate_totals
_アクションフックにフックされたカスタム関数を使用するほうがよい
こちらです:
_// Tested and works for WooCommerce versions 2.6.x, 3.0.x and 3.1.x
add_action( 'woocommerce_calculate_totals', 'action_cart_calculate_totals', 10, 1 );
function action_cart_calculate_totals( $cart_object ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
if ( !WC()->cart->is_empty() ):
## Displayed subtotal (+10%)
// $cart_object->subtotal *= 1.1;
## Displayed TOTAL (+10%)
// $cart_object->total *= 1.1;
## Displayed TOTAL CART CONTENT (+10%)
$cart_object->cart_contents_total *= 1.1;
endif;
}
_
コードは、アクティブな子テーマ(またはテーマ)のfunction.phpファイル、または任意のプラグインファイルにあります。
このフックで WC_cart
add_fee()
メソッドを使用することもできますCristina答え。