プラグインWooCommerceのwoocommerce_shipping_method_add_rate_argsフィルタの使用方法・解説

概要

woocommerce_shipping_method_add_rate_args フィルタは、WooCommerceの配送方法に関する情報をカスタマイズするためのフックです。このフィルタを使用することで、配送オプションの表示名、料金、税金、クラス、手数料などを変更できます。以下の機能を実装する際によく使われます:

  1. 配送方法の表示名を条件に応じて変更
  2. 配送料金の条件を設定して異なる料金を適用
  3. 特定の条件に基づいて配送料の割引を提供
  4. 追加の手数料を特定の配送方法に追加
  5. カスタムの税クラスを使用した柔軟な課税設定
  6. 特定のユーザーやカートの内容に応じた設定の調整

構文

add_filter( 'woocommerce_shipping_method_add_rate_args', 'custom_function_name', 10, 2 );

パラメータ

  • $args (配列): 配送メソッドに関する設定情報が含まれる配列。
  • $instance (オブジェクト): 配送メソッドのインスタンス。

戻り値

  • 配送メソッドの設定情報が含まれる配列(変更後)。

使用可能なプラグインバージョン

  • WooCommerce: バージョン 2.6 以降
  • WordPress: バージョン 4.0 以降

サンプルコード

サンプルコード1: 配送方法の表示名を変更

add_filter( 'woocommerce_shipping_method_add_rate_args', 'change_shipping_method_name', 10, 2 );
function change_shipping_method_name( $args, $instance ) {
    if ( $args['method_id'] === 'flat_rate' ) {
        $args['label'] = '特別な配送方法';
    }
    return $args;
}

このコードは、’flat_rate’ の配送方法の表示名を「特別な配送方法」に変更します。

引用元: https://woocommerce.com/

サンプルコード2: 配送料金に割引を追加

add_filter( 'woocommerce_shipping_method_add_rate_args', 'apply_discount_on_shipping', 10, 2 );
function apply_discount_on_shipping( $args, $instance ) {
    if ( WC()->cart->total > 100 ) {
        $args['cost'] = $args['cost'] * 0.90; // 10%割引
    }
    return $args;
}

このコードは、カート合計が100ドルを超えた場合、配送料金に10%の割引を適用します。

引用元: https://woocommerce.com/

サンプルコード3: 追加手数料の設定

add_filter( 'woocommerce_shipping_method_add_rate_args', 'add_handling_fee', 10, 2 );
function add_handling_fee( $args, $instance ) {
    $args['cost'] += 5; // 手数料5ドルを追加
    return $args;
}

このコードは、すべての配送方法に対して5ドルの手数料を追加します。

引用元: https://woocommerce.com/

サンプルコード4: 特定の顧客へのカスタム税クラス

add_filter( 'woocommerce_shipping_method_add_rate_args', 'set_custom_tax_class', 10, 2 );
function set_custom_tax_class( $args, $instance ) {
    if ( is_user_logged_in() && current_user_can( 'premium_member' ) ) {
        $args['tax_class'] = 'プレミアム'; // プレミアムユーザー向けの税クラス
    }
    return $args;
}

このコードは、プレミアム会員のユーザーにカスタム税クラスを設定します。

引用元: https://woocommerce.com/

サンプルコード5: 一定の条件でのカスタム配送方法の追加

add_filter( 'woocommerce_shipping_method_add_rate_args', 'conditional_custom_shipping_methods', 10, 2 );
function conditional_custom_shipping_methods( $args, $instance ) {
    if ( $args['method_id'] === 'free_shipping' && WC()->cart->total < 50 ) {
        $args['cost'] = 10; // フリーシッピング条件を満たしていない場合、10ドルを設定
    }
    return $args;
}

このコードは、カートの合計が50ドル未満の場合、’free_shipping’ メソッドへ10ドルを設定します。

引用元: https://woocommerce.com/

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

アクション 使用例
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

以上が woocommerce_shipping_method_add_rate_args フィルタの詳細な解説とサンプルコードです。このフィルタを活用することで、WooCommerceの配送オプションをより柔軟にカスタマイズできます。

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


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