概要
woocommerce_cart_coupon
フィルタは、WooCommerce内でカートにクーポンを適用するときに使用されるフックです。このフィルタを利用することで、開発者はカート内のクーポン情報の加工やカスタマイズを行うことができます。以下は、このフィルタがよく使われるシナリオの例です。
- クーポン適用時のメッセージの変更
- クーポンの適用条件の追加
- セール価格とクーポンの適用順序の変更
- 無効なクーポンコードへのカスタムエラーメッセージの表示
- 特定の商品にはクーポンを適用できないようにする
- クーポンの有効期限を拡張するカスタムロジックの実装
構文
add_filter( 'woocommerce_cart_coupon', 'custom_function_name', 10, 2 );
パラメータ
$discount
(float): 適用するクーポンの割引額。$coupon_code
(string): クーポンコード。
戻り値
- float: フィルタリングされた割引額。
使用可能なバージョン
- WooCommerce: 3.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_cart_coupon', 'change_coupon_message', 10, 2 );
function change_coupon_message( $discount, $coupon_code ) {
if ( $coupon_code === 'SPECIAL10' ) {
// 特定のクーポンに対するメッセージを変更
wc_add_notice( '特別クーポンが適用されました!', 'success' );
}
return $discount;
}
このサンプルコードは、特定のクーポンコードが適用された際にカスタムメッセージを表示します。
サンプル2: クーポンの適用条件を追加
add_filter( 'woocommerce_cart_coupon', 'restrict_coupon_usage', 10, 2 );
function restrict_coupon_usage( $discount, $coupon_code ) {
$allowed_coupons = array( 'WELCOME', 'SAVE20' );
if ( ! in_array( $coupon_code, $allowed_coupons ) ) {
return 0; // 無効なクーポンの場合、割引を0にする
}
return $discount;
}
このサンプルコードは、特定のクーポンのみを適用できるように制限します。
サンプル3: 無効なクーポンへのカスタムエラーメッセージ
add_filter( 'woocommerce_cart_coupon', 'custom_coupon_error_message', 10, 2 );
function custom_coupon_error_message( $discount, $coupon_code ) {
if ( $coupon_code === 'INVALID' ) {
wc_add_notice( 'このクーポンは無効です。', 'error' );
}
return $discount;
}
このサンプルコードは、無効なクーポンコードが使用された場合にエラーメッセージを表示します。
サンプル4: クーポンの有効期限を拡張
add_filter( 'woocommerce_cart_coupon', 'extend_coupon_expiry', 10, 2 );
function extend_coupon_expiry( $discount, $coupon_code ) {
// クーポンの有効期限を拡張するロジックを追加
if ( $coupon_code === 'SUMMER20' ) {
// 例: 有効期限を1ヶ月延長する
$expiry_date = '+1 month';
// 計算を行うコードを追加
}
return $discount;
}
このサンプルコードは、特定のクーポンの有効期限を延長する処理を実装します。
サンプル5: クーポンの適用順序を変更する
add_filter( 'woocommerce_cart_coupon', 'change_coupon_application_order', 10, 2 );
function change_coupon_application_order( $discount, $coupon_code ) {
if ( $coupon_code === 'PROMO' ) {
// 割引の適用順を変更するロジック
}
return $discount;
}
このサンプルコードは、特定のクーポンの適用順序をカスタマイズするためのフックを適用します。