プラグインWooCommerceのwoocommerce_checkout_create_order_fee_itemアクションの使用方法・解説

概要

woocommerce_checkout_create_order_fee_item アクションは、WooCommerce のチェックアウトプロセス中に特定の手数料アイテムを作成する際にフックされるアクションです。このアクションは、手数料の設定やカスタマイズを行う際に使用されることが多いです。よく使用される機能として、以下の6つがあります。

  1. 手数料の名称や説明のカスタマイズ
  2. 手数料の金額の変更
  3. 特定の条件に基づく手数料の追加
  4. クーポンやプロモーションに基づく手数料の調整
  5. 外部APIからのデータを使用した手数料の計算
  6. 税金の計算や調整に関連した手数料の設定

このアクションは、WooCommerce バージョン 3.0.0 以降および WordPress バージョン 4.9 以降で使用可能です。

構文

add_action('woocommerce_checkout_create_order_fee_item', 'your_function', 10, 2);

パラメータ

  • $item: 生成された手数料アイテムオブジェクト。
  • $order: 対象の注文オブジェクト。

戻り値

このアクション自体は戻り値を持たず、与えられたフィールドに対しての変更を行います。

この関数のアクションでの使用可能性

アクション 使用例
mu_plugin_loaded
registered_post_type
plugins_loaded
wp_roles_init
setup_theme
after_setup_theme
set_current_user
init
register_sidebar
wp_loaded
send_headers
parse_query
pre_get_posts
wp
template_redirect
get_header
wp_head

サンプルコード

サンプル 1: 手数料の名称をカスタマイズ

add_action('woocommerce_checkout_create_order_fee_item', 'customize_fee_item_name', 10, 2);
function customize_fee_item_name($item, $order) {
    if ($item->get_name() === 'Delivery Fee') {
        $item->set_name('Custom Delivery Fee');
    }
}

このコードは、特定の手数料(例:配達手数料)の名前をカスタマイズします。

サンプル 2: 手数料の金額を変更

add_action('woocommerce_checkout_create_order_fee_item', 'change_fee_item_amount', 10, 2);
function change_fee_item_amount($item, $order) {
    if ($item->get_name() === 'Service Charge') {
        $item->set_amount(10.00); // 金額を10.00に設定
    }
}

このコードは、「サービス料」という手数料の金額を10.00に変更します。

サンプル 3: 条件に応じた手数料の追加

add_action('woocommerce_checkout_create_order_fee_item', 'add_fee_for_large_orders', 10, 2);
function add_fee_for_large_orders($item, $order) {
    if ($order->get_subtotal() > 100) {
        $item->set_amount(5.00); // 合計金額が100を超えた場合に手数料を追加
        $item->set_name('Large Order Fee');
    }
}

このコードは、サブトータルが100以上の場合に「大型注文手数料」を追加します。

サンプル 4: クーポンに基づく手数料の調整

add_action('woocommerce_checkout_create_order_fee_item', 'adjust_fee_for_coupon', 10, 2);
function adjust_fee_for_coupon($item, $order) {
    if ($order->get_discount_total() > 0) {
        $item->set_amount($item->get_amount() - 2.00); // 割引が適用された場合に手数料を調整
    }
}

このコードは、クーポンによって割引が適用された場合に手数料を2.00減額します。

サンプル 5: 外部APIを使用した手数料の計算

add_action('woocommerce_checkout_create_order_fee_item', 'api_based_fee_calculation', 10, 2);
function api_based_fee_calculation($item, $order) {
    $api_fee = fetch_api_fee(); // 外部APIから手数料を取得
    $item->set_amount($api_fee);
    $item->set_name('API Based Fee');
}
function fetch_api_fee() {
    // 外部APIから手数料を取得するロジックをここに記述
    return 15.00; // 例として固定値を返す
}

このコードは、外部APIから取得した手数料を使用して手数料を設定します。

この関数について質問する


上の計算式の答えを入力してください