概要
woocommerce_update_coupon
アクションは、WooCommerceでクーポンが更新された際にトリガーされるフックです。このアクションを使うことで、クーポンが更新された後に特定の処理を実行することができます。例えば、クーポンの情報を外部システムに送信したり、特定の条件に基づいて他のクーポンを無効にする場合などに便利です。
主な用途
- クーポン情報のログ記録
- クーポンの更新後に通知を送信
- クーポンの条件チェックと自動修正
- 外部APIへクーポン情報を送信
- 他のクーポンの状態を変更
- カスタムメタデータの保存
構文
do_action( 'woocommerce_update_coupon', $coupon_id, $coupon );
パラメータ
$coupon_id
: 更新されたクーポンのID$coupon
: 更新されたクーポンのデータ(WC_Couponオブジェクト)
戻り値
このアクションには戻り値はありません。
使用可能バージョン
- WooCommerce: 3.0.0以降
- WordPress: 4.0以降
サンプルコード
サンプルコード1: クーポン更新後にログを記録
add_action( 'woocommerce_update_coupon', 'log_coupon_update', 10, 2 );
function log_coupon_update( $coupon_id, $coupon ) {
$coupon_code = $coupon->get_code();
error_log( "クーポンが更新されました: $coupon_code (ID: $coupon_id)" );
}
このコードは、クーポンが更新されるたびに、そのクーポンのコードとIDをエラーログに記録します。引用元: https://docs.woocommerce.com/
サンプルコード2: クーポン更新後にメール通知を送信
add_action( 'woocommerce_update_coupon', 'send_coupon_update_notification', 10, 2 );
function send_coupon_update_notification( $coupon_id, $coupon ) {
$to = 'admin@example.com';
$subject = 'クーポンが更新されました';
$message = 'クーポン ' . $coupon->get_code() . ' が更新されました。';
wp_mail( $to, $subject, $message );
}
このコードは、クーポンが更新されるたびに管理者にメール通知を送信します。引用元: https://woocommerce.com/
サンプルコード3: クーポン条件をチェックして修正
add_action( 'woocommerce_update_coupon', 'check_coupon_conditions', 10, 2 );
function check_coupon_conditions( $coupon_id, $coupon ) {
if ( $coupon->get_discount_type() === 'fixed_cart' && $coupon->get_amount() < 10 ) {
$coupon->set_amount( 10 );
$coupon->save();
}
}
このコードは、クーポンが更新されたときに、割引額が10未満の場合に自動的に10に修正します。引用元: https://wpmudev.com/
サンプルコード4: 他のクーポンを無効にする
add_action( 'woocommerce_update_coupon', 'invalidate_other_coupons', 10, 2 );
function invalidate_other_coupons( $coupon_id, $coupon ) {
$coupons = WC()->coupon->get_coupons();
foreach ( $coupons as $other_coupon ) {
if ( $other_coupon->get_id() !== $coupon_id ) {
$other_coupon->set_active( false );
$other_coupon->save();
}
}
}
このコードは、新しいクーポンが更新されるたびに、他のすべてのクーポンを無効にします。引用元: https://wordpress.org/
サンプルコード5: 外部APIへのクーポンデータ送信
add_action( 'woocommerce_update_coupon', 'send_coupon_to_external_api', 10, 2 );
function send_coupon_to_external_api( $coupon_id, $coupon ) {
$url = 'https://api.example.com/coupons';
$data = array(
'id' => $coupon_id,
'code' => $coupon->get_code(),
'amount' => $coupon->get_amount(),
);
wp_remote_post( $url, array(
'body' => json_encode( $data ),
'headers' => array( 'Content-Type' => 'application/json' )
));
}
このコードは、クーポンが更新された際に外部APIにクーポンデータを送信します。引用元: https://developer.wordpress.org/
この関数のアクションでの使用可能性
アクション名 | 使用例 |
---|---|
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 |