[WordPress] Woocommerce は、カスタム データを削除するとき、製品を削除します。

スポンサーリンク

Question

すべての製品とカスタム フィールドを追加しました。しかし、ユーザーがカートをこれらのカスタム フィールドのセッションから商品を削除するときを削除しませんでした。製品によるとカスタム フィールドを削除します。私を助けてください

 cart->get_cart();
    // For each item in cart, if item is upsell of deleted product, delete it
    foreach( $cart as $key => $values)
    {


    if ( $values['wdm_user_custom_data_value'] == $cart_item_key )

        print_r($woocommerce->cart->cart_contents[ $key ]);
        //unset( $woocommerce->cart->cart_contents[ $key ] );
    }


  }

}

答え

以下のコードを試す:

add_action('woocommerce_before_cart_item_quantity_zero','wdm_remove_user_custom_data_options_from_cart',1,1);
if(!function_exists('wdm_remove_user_custom_data_options_from_cart'))
{ 
    function wdm_remove_user_custom_data_options_from_cart($cart_item_key)
    { 
        global $woocommerce;
        // Get cart
        $cart = $woocommerce->cart->get_cart();
        // For each item in cart, if item is upsell of deleted product, delete it
        foreach( $cart as $key => $values)
        {  
            if ( $_REQUEST['remove_item'] == $key )
            { 
                unset( $woocommerce->cart->cart_contents[ $key ] );
            }
        } 
    }
}

http://stackoverflow.com/questions/27266117/woocommerce-remove-custom-data-when-remove-a-product

スポンサーリンク

Leave a Reply