概要
woocommerce_checkout_create_order_shipping_item
は、WooCommerceのチェックアウトプロセス中に配送料のアイテムが作成される際に発火するフックです。このフックは主に、送付先情報にカスタムデータを追加する場合や、追加料金を適用する場合などに使用されます。このアクションを使うことで、開発者はウィークリーバス、配送料の詳細、または割引の適用など、さまざまなカスタムな処理を実行できます。以下の用途に役立つことが多いです:
- カスタムの配送料データを追加する。
- 特定の製品の配送条件を設定する。
- ギフトラッピングや特別な配達対応を追加する。
- 配送コストの計算をカスタマイズする。
- 複数配送先の処理を行う。
- 配送関連の通知をカスタマイズする。
構文
add_action( 'woocommerce_checkout_create_order_shipping_item', 'custom_function', 10, 4 );
パラメータ
このアクションには以下のパラメータが渡されます:
$item
– 現在の配送アイテムオブジェクト。$package_key
– 配送パッケージのキー。$package
– 配送パッケージの情報。$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', 'この商品は特急便で発送されます' );
}
このコードは、特急便での発送通知を配送料アイテムに追加します。