概要
woocommerce_order_applied_coupon
は、WooCommerceでクーポンが注文に適用されたときにトリガーされるアクションフックです。このフックは、カスタムビジネスロジックを実装する際や、特定の条件に基づいてクーポンの管理や通知を行う際に非常に役立ちます。具体的には、以下のような機能実装でよく使用されます。
- クーポン適用時のログ記録
- 顧客へのクーポン使用通知
- クーポンの適用条件に基づくスタイル変更
- ストック管理の調整
- リワードプログラムへのクーポン使用状況の登録
- 特定の製品に対するプロモーションのトリガー
構文
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