2017-01-20 23 views
1

My WooCommerce Webショップは、ステップをスキップするとカートに無料の製品を追加する、多段階のカートに追加するプロセスから構成されています。カートページとチェックアウトページから特定の製品を削除する

このように、選択プロセスが完了し、顧客が注文をしたら、チェックアウトページのカートからその無料製品を削除したいと思います。

私はWC_Cartメソッドremove_cart_item($cart_item_key)をいくつかのフックで使用する必要があることを知っています。私は瞬時に成功せずにいくつかのフックを試みました。

マイフリー製品IDは以下のとおりです。

$free_products_ids = array(10,52,63,85); 

私はこれをどのように達成することができますか?

おかげ

答えて

1

カートおよびチェックアウトページにカートのアイテムを削除するには、私はカートおよびチェックアウトページのフックでカスタムフック機能、この方法を使用します。

add_action('woocommerce_before_cart', 'removing_the_free_cart_items'); 
add_action('woocommerce_before_checkout_form', 'removing_the_free_cart_items'); 
function removing_the_free_cart_items() { 

    if (!WC()->cart->is_empty()): 

     // Here your free products IDs 
     $free_products = array(10,52,63,85); 

     // iterating throught each cart item 
     foreach (WC()->cart->get_cart() as $cart_item_key => $cart_item){ 

      $cart_item_id = $cart_item['data']->id; 

      // If free product is in cart, it's removed 
      if(in_array($cart_item_id, $free_products)) 
       WC()->cart->remove_cart_item($cart_item_key); 
     } 

    endif; 
} 

をこのコードは、function.phpに行きますあなたのアクティブな子供のテーマ(またはテーマ)のファイル、またはすべてのプラグインファイル。

このコードはテスト済みであり、動作します。

+0

ありがとうございます@LoicTheAztec – mysticalghoul

関連する問題