概要
woocommerce_coupon_validate_expiry_date
フィルタは、WooCommerceでクーポンの有効期限を検証する際に使用されます。このフィルタを利用することで、カスタムロジックに基づいてクーポンの有効期限を動的に変更したり、特定の条件に基づいて有効期限を厳格に制御することができます。以下は、このフィルタがよく使われる機能の例です。
- 特定のユーザーグループ向けのクーポン有効期限の変更。
- 特定のプロモーション期間に合わせたクーポン有効期限の延長。
- 特定の商品の購入に応じたクーポンの有効期限設定。
- メールニュースレター登録者向けのクーポンの有効期限調整。
- 季節ごとのキャンペーン用のクーポン有効期限のカスタマイズ。
- 不正使用を防ぐための特定の条件下での有効期限無効化。
構文
add_filter('woocommerce_coupon_validate_expiry_date', 'custom_coupon_expiry_validation', 10, 2);
パラメータ
$valid
(bool): 有効期限が正しい場合はtrue、そうでない場合はfalse。$coupon
(WC_Coupon): 現在検証されているクーポンオブジェクト。
戻り値
- bool: クーポンの有効期限が検証された結果。
使用可能なバージョン
- WooCommerce: 2.4.0以上
- 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_filter('woocommerce_coupon_validate_expiry_date', 'custom_user_group_coupon_expiry', 10, 2);
function custom_user_group_coupon_expiry($valid, $coupon) {
if (user_is_member_of_group('special_group')) {
return true; // 特定のグループには有効期限を無視する
}
return $valid; // その他は通常通り
}
// 出典: WooCommerce フィルタマニュアル
サンプル2: プロモーション期間中の有効期限延長
add_filter('woocommerce_coupon_validate_expiry_date', 'extend_coupon_expiry_for_promotion', 10, 2);
function extend_coupon_expiry_for_promotion($valid, $coupon) {
$current_date = current_time('Y-m-d');
if ($current_date >= '2023-11-01' && $current_date <= '2023-11-30') {
return true; // 特定のプロモーション期間内は有効とする
}
return $valid;
}
// 出典: WooCommerce フィルタマニュアル
サンプル3: 商品購入によるクーポン有効期限の設定
add_filter('woocommerce_coupon_validate_expiry_date', 'set_coupon_expiry_based_on_product', 10, 2);
function set_coupon_expiry_based_on_product($valid, $coupon) {
if (isset($_POST['product_id']) && $_POST['product_id'] == '1234') {
return true; // 特定の商品の場合、有効期限を無視する
}
return $valid;
}
// 出典: WooCommerce フィルタマニュアル
サンプル4: ニュースレター登録者向けの有効期限調整
add_filter('woocommerce_coupon_validate_expiry_date', 'newsletter_subscriber_coupon_expiry', 10, 2);
function newsletter_subscriber_coupon_expiry($valid, $coupon) {
if (is_newsletter_subscriber()) {
return true; // ニュースレター登録者には有効期限を無視
}
return $valid;
}
// 出典: WooCommerce フィルタマニュアル
サンプル5: 不正使用防止のための有効期限無効化
add_filter('woocommerce_coupon_validate_expiry_date', 'disable_coupon_expiry_on_condition', 10, 2);
function disable_coupon_expiry_on_condition($valid, $coupon) {
if (some_risky_condition_met()) {
return false; // 不正使用防止のため非有効にする
}
return $valid;
}
// 出典: WooCommerce フィルタマニュアル