概要
woocommerce_checkout_create_order_coupon_item
は、WooCommerce のカート内でクーポンが適用される際に、オーダーが作成される時にクーポンアイテムをカスタマイズするためのフックです。このアクションを使用することで、特定の要件に合わせてクーポンの扱いや表示を変更することができます。
よく利用される機能としては、以下のようなものがあります。
- クーポンの説明文のカスタマイズ
- クーポン適用時の表示方法の変更
- 特定条件下でのクーポン適用制限
- カスタムフィールドの追加
- クーポンに関連付けられたプロモーション情報の表示
- クーポンの金額計算方法の変更
構文
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%増加
}
サンプルコードの引用元ページは個別に指定できないため、コードは一般的なサンプルとして提供されています。