2016-08-05 9 views
1

私はWoocommerceのwoocommerce_calculate_totalsに年齢確認用の最小発注額を設定しています。基本的に顧客は$ 1の注文を最低限必要とします。これはカートの表示ページでは機能しますが、小計はcheckout.jsによって上書きされています。ページの読み込み後に変更されていることがわかります。woocommerceカートの変更がcheckout.jsによって上書きされています

ここfunctions.php中に私のコードです:

function hv_set_min_total() { 
    if(is_checkout()) { 
     global $woocommerce; 
     // set minimum cart total 
     $min_cart_total = 1; 

     // Total used before taxes and shipping 
     $total = $woocommerce->cart->subtotal; 

     // compare values 
     if($total < $min_cart_total) { 
      $diff = $min_cart_total - $total; 
      $woocommerce->cart->subtotal += $diff; 
      $woocommerce->cart->cart_contents_total += $diff; 
      $woocommerce->cart->subtotal_ex_tax += $diff; 
     } 
    } 
} 
add_action('woocommerce_calculate_totals', 'hv_set_min_total'); 

私はまた、すべての小計を変更する様々な他のフックに引っ掛ける試してみたが、それでもcheckout.jsファイルによって上書きされます。どのように私は起こることからこれを停止することができます上の任意のアイデア?私が試したが、それでも削除されます

他のもの:

  • 料金
  • 負の割引

答えて

0

が含まれている方法で、明らかにis_checkout()メソッドがfalse場合、または利用できないcheckout.jsランを返している、知ってwhant場合状態。この問題に遭遇しています誰にも

is_checkout()方法はcheckout.js

0

を追加し、私は、良くなったが、これはあなたのために働く場合を見てみましょうではありませんよwoocommerce_calculate_totalsを使用していますが、何も返されていません。私はどうなるのか

は次のとおりです。

function totales ($totals){ 
    //echo "<pre>"; 
    //print_r($totals); 
    //echo "</pre>"; 

    //All your code ... 

    $totals->subtotal_ex_tax = ($totals->subtotal_ex_tax - 100000); 
    $totals->cart_contents_total = ($totals->cart_contents_total - 15000); 

    return $totals; 

} 

add_action('woocommerce_calculate_totals', 'totales', 10 , 1); 

小計と合計ではなく、製品の価格を変更することができますこの方法。

あなたは元に戻す元に戻す小計が生じ、それは結局のところ、そのフックgo here

+0

のおかげで使用できませんが、作業から、このスニペットを防止して、問題は実際には 'is_checkout()'メソッドでした。 – visevo

関連する問題