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

概要

woocommerce_order_applied_coupon は、WooCommerceでクーポンが注文に適用されたときにトリガーされるアクションフックです。このフックは、カスタムビジネスロジックを実装する際や、特定の条件に基づいてクーポンの管理や通知を行う際に非常に役立ちます。具体的には、以下のような機能実装でよく使用されます。

  1. クーポン適用時のログ記録
  2. 顧客へのクーポン使用通知
  3. クーポンの適用条件に基づくスタイル変更
  4. ストック管理の調整
  5. リワードプログラムへのクーポン使用状況の登録
  6. 特定の製品に対するプロモーションのトリガー

構文

do_action( 'woocommerce_order_applied_coupon', $coupon_code, $order );

パラメータ

  • $coupon_code (string): 適用されたクーポンのコード。
  • $order (WC_Order): 適用されたクーポンが含まれている注文オブジェクト。

戻り値

このアクションは戻り値を持ちません。

使用可能なバージョン

  • WooCommerce:バージョンすべてで使用可能
  • WordPress:バージョンすべてで使用可能

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

アクション名 使用例
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_order_applied_coupon', 'log_applied_coupon', 10, 2 );

function log_applied_coupon( $coupon_code, $order ) {
    error_log( 'クーポンが適用されました: ' . $coupon_code . ' (注文ID: ' . $order->get_id() . ')' );
}

URL: https://example.com/log-applied-coupon

サンプル2: 顧客へのクーポン使用通知

このサンプルコードは、クーポンが適用されたときに顧客に通知を送信します。

add_action( 'woocommerce_order_applied_coupon', 'send_coupon_notification', 10, 2 );

function send_coupon_notification( $coupon_code, $order ) {
    $to = $order->get_billing_email();
    $subject = 'クーポンが適用されました';
    $message = 'あなたの注文にクーポン ' . $coupon_code . ' が適用されました。';
    wp_mail( $to, $subject, $message );
}

URL: https://example.com/coupon-notification

サンプル3: クーポン使用条件に基づくスタイル変更

このサンプルコードは、特定のクーポンが適用された場合に特定のCSSを追加します。

add_action( 'woocommerce_order_applied_coupon', 'conditional_coupon_styles', 10, 2 );

function conditional_coupon_styles( $coupon_code, $order ) {
    if ( $coupon_code === 'SPECIAL10' ) {
        echo '<style>.special-offer { background-color: #ffeb3b; }</style>';
    }
}

URL: https://example.com/conditional-styles

サンプル4: ストック管理の調整

このサンプルコードは、クーポンが適用されたときに在庫を調整します。

add_action( 'woocommerce_order_applied_coupon', 'adjust_stock_on_coupon', 10, 2 );

function adjust_stock_on_coupon( $coupon_code, $order ) {
    if ( $coupon_code === 'STOCKADJ' ) {
        // 特定の製品の在庫を増加
        $product_id = 123; // 例:製品ID
        $new_stock = 10; // 新しい在庫数
        woocommerce_update_product_stock( $product_id, $new_stock );
    }
}

URL: https://example.com/stock-adjustment

サンプル5: リワードプログラムへのクーポン使用状況の登録

このサンプルコードは、リワードプログラムにクーポンの使用状況を登録します。

add_action( 'woocommerce_order_applied_coupon', 'log_reward_program_usage', 10, 2 );

function log_reward_program_usage( $coupon_code, $order ) {
    // 仮定のリワードプログラムAPIにデータを送信
    $reward_program_api = 'https://example.com/api/rewards';

    $data = array(
        'coupon_code' => $coupon_code,
        'order_id'    => $order->get_id(),
        'customer_id' => $order->get_customer_id(),
    );

    wp_remote_post( $reward_program_api, array( 'body' => $data ) );
}

URL: https://example.com/reward-logging

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


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