概要
woocommerce_removed_coupon
は、WooCommerceでクーポンがカートから削除された際に発火するフックです。このアクションを利用することで、クーポンが削除されたことに応じて特定の処理を実行することができます。以下のような機能を実装する際に頻繁に使われます。
- クーポン削除時の通知メールを送信する
- 削除されたクーポンに関連するデータをログに記録する
- クーポンの削除時にカートの合計額を更新する
- 削除されたクーポンの条件を再評価する
- クーポンの削除履歴をユーザーに表示する
- 削除されたクーポンに関連する特典を無効化する
構文
do_action('woocommerce_removed_coupon', $coupon_code, $cart);
パラメータ
$coupon_code
(string): 削除されたクーポンのコード$cart
(WC_Cart): WooCommerceカートオブジェクト
戻り値
戻り値はありません。このアクションはプレースホルダーとして機能します。
使用可能なWooCommerceのバージョン
このアクションはWooCommerce 2.3以降で利用可能です。
使用可能なWordPressのバージョン
このアクションはWordPress 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_removed_coupon', 'send_coupon_removal_email', 10, 2);
function send_coupon_removal_email($coupon_code, $cart) {
$to = 'user@example.com';
$subject = 'クーポンが削除されました';
$message = 'クーポン「' . $coupon_code . '」があなたのカートから削除されました。';
wp_mail($to, $subject, $message);
}
このサンプルは、クーポンが削除された際に指定されたメールアドレスに通知を送信します。
サンプル2: 削除されたクーポンの情報をログに記録する
add_action('woocommerce_removed_coupon', 'log_coupon_removal', 10, 2);
function log_coupon_removal($coupon_code, $cart) {
error_log('削除されたクーポン: ' . $coupon_code);
}
このサンプルは、クーポンが削除された情報をエラーログに記録します。
サンプル3: カートの合計額を再計算する
add_action('woocommerce_removed_coupon', 'recalculate_cart_total', 10, 2);
function recalculate_cart_total($coupon_code, $cart) {
WC()->cart->calculate_totals();
}
このサンプルでは、クーポンが削除された後にカートの合計額を再計算します。
サンプル4: クーポン削除のフィードバックをユーザーに表示
add_action('woocommerce_removed_coupon', 'display_coupon_feedback', 10, 2);
function display_coupon_feedback($coupon_code, $cart) {
wc_add_notice('クーポン「' . $coupon_code . '」が削除されました。', 'notice');
}
このサンプルは、クーポンが削除されたことをユーザーに通知するメッセージを表示します。
サンプル5: 削除したクーポンの履歴を保持
add_action('woocommerce_removed_coupon', 'store_removed_coupon_history', 10, 2);
function store_removed_coupon_history($coupon_code, $cart) {
$removed_coupons = get_option('removed_coupons_history', array());
$removed_coupons[] = $coupon_code;
update_option('removed_coupons_history', $removed_coupons);
}
このサンプルは、削除されたクーポンの履歴をオプションに保存します。ユーザーがどのクーポンを削除したかをトラックできます。