2017-05-09 7 views
0

カート/オーダーの内容に応じて送料オプションを変更する必要があります。 カート・ページとチェックアウト・ページで費用を計算し、注文が完了した時点で保存する必要があります。woocommerceで配送オプションの価格を動的に変更するにはどうすればよいですか?

これは私がやったことですが、効果がないようですが、誰かが考えてください。

add_filter('woocommerce_package_rates','over_cost',100,2); 
function over_cost($rates,$package) { 

global $woocommerce; 
$items = $woocommerce->cart->get_cart(); 
$qty=0; 

     foreach($items as $item => $values) { 
      $_product = $values['data']->post; 
      $qty= $qty + $values['quantity']; 
      } 


    foreach ($rates as $rate) { 

    if ($rate->cost=='flat_rate:4') {$rate->cost = 5*$qty;} 


    } 

    return $rates; 
} 
+0

"flat_rate:4"要求? –

答えて

1
add_filter('woocommerce_package_rates','test_overwrite_fedex',100,2); 
    function test_overwrite_fedex($rates,$package) { 

     foreach ($rates as $rate) { 

      //Set the price 
      $rate->cost = 1000; 

      //Set the TAX 
      $rate->taxes[1] = 1000 * 0.2; 

     } 

     return $rates; 
    } 

率はwordpressの過渡機能を使用してWoocommerceによってキャッシュされています。あなたがテストしているときは、パッケージの料金が正しく更新されるようにアイテムの数量を変更するか、リフレッシュするたびにカートを空にしてください:

+0

ありがとうございます。これはカートページとチェックアウトページで有効ですか? – Pipoo

+0

$ woocommerce-> cart-> get_cart()はチェックアウトページで動作しますか? – Pipoo

+0

と$ rate-> cost = 1000は現在の注文のコストに影響を与えますか? – Pipoo

関連する問題