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

概要

woocommerce_checkout_create_order_shipping_itemは、WooCommerceのチェックアウトプロセス中に配送料のアイテムが作成される際に発火するフックです。このフックは主に、送付先情報にカスタムデータを追加する場合や、追加料金を適用する場合などに使用されます。このアクションを使うことで、開発者はウィークリーバス、配送料の詳細、または割引の適用など、さまざまなカスタムな処理を実行できます。以下の用途に役立つことが多いです:

  1. カスタムの配送料データを追加する。
  2. 特定の製品の配送条件を設定する。
  3. ギフトラッピングや特別な配達対応を追加する。
  4. 配送コストの計算をカスタマイズする。
  5. 複数配送先の処理を行う。
  6. 配送関連の通知をカスタマイズする。

構文

add_action( 'woocommerce_checkout_create_order_shipping_item', 'custom_function', 10, 4 );

パラメータ

このアクションには以下のパラメータが渡されます:

  1. $item – 現在の配送アイテムオブジェクト。
  2. $package_key – 配送パッケージのキー。
  3. $package – 配送パッケージの情報。
  4. $order – カートの注文オブジェクト。

戻り値

このアクションは何も戻さず、主に副作用を目的としています。

使用可能なWooCommerceのバージョン

  • WooCommerce 2.0.0以降で使用可能。

使用可能なWordPressのバージョン

  • WordPress 3.5以降で使用可能。

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

アクション名 使用例
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_shipping_item', 'add_custom_shipping_data', 10, 4 );
function add_custom_shipping_data( $item, $package_key, $package, $order ) {
    $item->add_meta_data( 'custom_note', 'これはカスタムデータです' );
}

このサンプルは、注文の配送料アイテムにカスタムメモを追加します。

サンプル2: 特定の対象に配送料を設定する

add_action( 'woocommerce_checkout_create_order_shipping_item', 'set_special_shipping_cost', 10, 4 );
function set_special_shipping_cost( $item, $package_key, $package, $order ) {
    if ( $order->get_total() > 100 ) {
        $item->set_total( 0 ); // 100ドル以上の場合は送料無料
    }
}

このコードは、注文合計が100ドルを超える場合に、配送料を無料に設定します。

サンプル3: ギフトラッピングの処理を追加する

add_action( 'woocommerce_checkout_create_order_shipping_item', 'add_gift_wrapping_option', 10, 4 );
function add_gift_wrapping_option( $item, $package_key, $package, $order ) {
    if ( isset( $_POST['gift_wrapping'] ) && $_POST['gift_wrapping'] === 'yes' ) {
        $item->add_meta_data( 'gift_wrapping', 'ギフトラッピングが選択されました' );
        $item->set_total( $item->get_total() + 5 ); // 5ドルの料金を追加
    }
}

このサンプルは、ギフトラッピングが選択された場合に関連するメタデータを追加し、料金を加算します。

サンプル4: 複数配送先の処理を行う

add_action( 'woocommerce_checkout_create_order_shipping_item', 'handle_multiple_shipping_addresses', 10, 4 );
function handle_multiple_shipping_addresses( $item, $package_key, $package, $order ) {
    // 複数配送先の処理をここに記述
    $item->add_meta_data( 'bulk_shipping', '複数配送先用の処理' );
}

このコードスニペットは、複数の配送先に関連するメタデータを追加します。

サンプル5: 配送関連の通知をカスタマイズする

add_action( 'woocommerce_checkout_create_order_shipping_item', 'customize_shipping_notification', 10, 4 );
function customize_shipping_notification( $item, $package_key, $package, $order ) {
    $item->add_meta_data( 'shipping_notification', 'この商品は特急便で発送されます' );
}

このコードは、特急便での発送通知を配送料アイテムに追加します。

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


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