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

概要

woocommerce_checkout_create_order_coupon_item は、WooCommerce のカート内でクーポンが適用される際に、オーダーが作成される時にクーポンアイテムをカスタマイズするためのフックです。このアクションを使用することで、特定の要件に合わせてクーポンの扱いや表示を変更することができます。

よく利用される機能としては、以下のようなものがあります。

  1. クーポンの説明文のカスタマイズ
  2. クーポン適用時の表示方法の変更
  3. 特定条件下でのクーポン適用制限
  4. カスタムフィールドの追加
  5. クーポンに関連付けられたプロモーション情報の表示
  6. クーポンの金額計算方法の変更

構文

do_action( 'woocommerce_checkout_create_order_coupon_item', $item, $coupon, $order );

パラメータ

  • $item(WC_Order_Item_Coupon):クーポンアイテムのオブジェクト。
  • $coupon(WC_Coupon):適用されるクーポンのオブジェクト。
  • $order(WC_Order):現在のオーダーのオブジェクト。

戻り値

特に戻り値はない。

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

このアクションは、WooCommerce バージョン 3.0.0 以降で利用可能です。

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

WordPress バージョン 4.4.0 以降で利用可能です。

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

アクション名 使用例
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_coupon_item', 'custom_coupon_description', 10, 3 );

function custom_coupon_description( $item, $coupon, $order ) {
    $item->set_description( '割引: ' . $coupon->get_description() );
}

サンプルコード 2: クーポン適用の条件を追加

この例では、特定の条件下でのみクーポンが適用されるように制限しています。

add_action( 'woocommerce_checkout_create_order_coupon_item', 'limit_coupon_application', 10, 3 );

function limit_coupon_application( $item, $coupon, $order ) {
    if ( $order->get_total() < 50 ) {
        // 一定金額未満の場合クーポンを適用しない
        return;
    }
}

サンプルコード 3: カスタムフィールドを追加

このコードは、クーポンアイテムにカスタムフィールドを追加する例です。

add_action( 'woocommerce_checkout_create_order_coupon_item', 'add_custom_field_to_coupon', 10, 3 );

function add_custom_field_to_coupon( $item, $coupon, $order ) {
    $custom_field_value = get_post_meta( $coupon->get_id(), 'custom_field_key', true );
    $item->add_meta_data( 'Custom Field', $custom_field_value );
}

サンプルコード 4: プロモーション情報の表示

このコードは、クーポンに関連するプロモーション情報を設定します。

add_action( 'woocommerce_checkout_create_order_coupon_item', 'add_promotion_info', 10, 3 );

function add_promotion_info( $item, $coupon, $order ) {
    if ( $coupon->get_code() === 'PROMO2023' ) {
        $item->set_description( $item->get_description() . ' (プロモーション情報: 2023特別割引)」 );
    }
}

サンプルコード 5: クーポン金額の計算方法の変更

この例では、クーポンの金額計算方法を変更するためのフックの使用例です。

add_action( 'woocommerce_checkout_create_order_coupon_item', 'modify_coupon_discount', 10, 3 );

function modify_coupon_discount( $item, $coupon, $order ) {
    $discount = $item->get_discount();
    $item->set_discount( $discount * 1.1 ); // 10%増加
}

サンプルコードの引用元ページは個別に指定できないため、コードは一般的なサンプルとして提供されています。

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


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