概要
woocommerce_new_coupon_data
アクションは、WooCommerceで新しいクーポンが追加される際にトリガーされるフックです。このアクションは、クーポンデータがデータベースに保存される前に、クーポンに関連するカスタム処理を行いたいときに非常に便利です。具体的には、以下のような機能を実装する際によく使用されます。
- クーポンのデフォルトの値を変更する。
- 特定の条件に基づいてクーポンの有効期限を設定する。
- クーポンの適用対象を制限する。
- ユーザー固有のデータをクーポンに追加する。
- 新規クーポン作成時に通知を送信する。
- クーポンの作成後にカスタムログを生成する。
構文
add_action('woocommerce_new_coupon_data', 'your_custom_function', 10, 1);
パラメータ
$data
(配列): 新規クーポンに関するデータの連想配列。
戻り値
- このアクションは戻り値を持ちません。
使用可能なWooCommerceのバージョン
- WooCommerce 2.0以降
使用可能な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_new_coupon_data', 'custom_coupon_default_value');
function custom_coupon_default_value($data) {
$data['discount_type'] = 'fixed_cart'; // デフォルトで固定金額のクーポンにします。
}
このサンプルコードは、新しく作成されるクーポンのデフォルトの割引タイプを「固定金額」に変更します。
サンプルコード2: クーポンの有効期限を設定
add_action('woocommerce_new_coupon_data', 'set_coupon_expiry_date');
function set_coupon_expiry_date($data) {
$data['date_expires'] = strtotime('+1 month'); // 1ヶ月後に有効期限を設定します。
}
このサンプルコードは、新しいクーポンが作成されたときに、有効期限を1ヶ月後に設定します。
サンプルコード3: クーポンにユーザー固有のメタデータを追加
add_action('woocommerce_new_coupon_data', 'add_custom_coupon_meta');
function add_custom_coupon_meta($data) {
if (!empty($data['code'])) {
add_post_meta($data['id'], 'custom_user_id', get_current_user_id()); // 現在のユーザーIDを追加します。
}
}
このサンプルコードは、新しく作成されたクーポンに現在のユーザーIDを追加するカスタムメタデータを設定します。
サンプルコード4: クーポン作成時に通知を送信
add_action('woocommerce_new_coupon_data', 'send_coupon_notification');
function send_coupon_notification($data) {
wp_mail('admin@example.com', '新しいクーポンが作成されました', 'クーポンコード: ' . $data['code']);
}
このサンプルコードは、新しいクーポンが作成されると、管理者に通知のメールを送信します。
サンプルコード5: クーポン作成後のカスタムログ生成
add_action('woocommerce_new_coupon_data', 'log_coupon_creation');
function log_coupon_creation($data) {
error_log('新しいクーポンが作成されました: ' . $data['code']);
}
このサンプルコードは、新しく作成されたクーポンのコードをエラーログに記録します。