概要
woocommerce_cart_product_cannot_be_purchased_message
フィルタは、WooCommerceのカート内で購入できない商品に対して表示されるメッセージを変更するために使用されます。このフィルタを使用することで、特定の条件に基づいて表示されるメッセージをカスタマイズすることが可能です。一般的に、このフィルタは以下のような機能を実装する際によく使用されます。
- 在庫切れの商品に特別なメッセージを表示する
- 特定のユーザーグループに対して購入制限を設ける
- 商品が売り切れた場合に代替商品を提案する
- 購入可能な商品の最小数量を超えた場合にメッセージを表示する
- 複数商品が同時に購入不可の場合のメッセージを一括で表示する
- ブロックリストに登録された商品に関する警告メッセージを表示する
構文
add_filter('woocommerce_cart_product_cannot_be_purchased_message', 'your_function_name', 10, 2);
パラメータ
$message
(string): カートに追加できない商品に関して表示されるメッセージ$product
(WC_Product): 購入ができない商品オブジェクト
戻り値
フィルタが適用された後の新しいメッセージ (string)
WooCommerceのバージョン
このフィルタはWooCommerce 2.6以降で利用可能です。
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_filter('woocommerce_cart_product_cannot_be_purchased_message', 'custom_stock_message', 10, 2);
function custom_stock_message($message, $product) {
if (!$product->is_in_stock()) {
return '申し訳ありませんが、この商品は現在在庫切れです。';
}
return $message;
}
説明: 在庫がない商品に対して、カスタムメッセージを表示します。
サンプルコード2
add_filter('woocommerce_cart_product_cannot_be_purchased_message', 'restrict_purchase_for_role', 10, 2);
function restrict_purchase_for_role($message, $product) {
if (current_user_can('subscriber') && $product->get_id() === 123) {
return 'この商品は会員専用です。';
}
return $message;
}
説明: 特定のユーザー役割に応じて購入制限を行い、メッセージを表示します。
サンプルコード3
add_filter('woocommerce_cart_product_cannot_be_purchased_message', 'suggest_alternate_product', 10, 2);
function suggest_alternate_product($message, $product) {
if ($product->get_stock_quantity() === 0) {
$alternative_product = wc_get_product(456); // IDが456の商品を取得
return 'この商品は売り切れですが、代わりに' . $alternative_product->get_name() . 'をお勧めします。';
}
return $message;
}
説明: 売り切れの商品に代わる商品を提案するメッセージを表示します。
サンプルコード4
add_filter('woocommerce_cart_product_cannot_be_purchased_message', 'minimum_quantity_message', 10, 2);
function minimum_quantity_message($message, $product) {
if ($product->get_min_purchase_quantity() > 1) {
return 'この商品は最少で' . $product->get_min_purchase_quantity() . '個以上の購入が必要です。';
}
return $message;
}
説明: 最小購入数量を超えた場合のメッセージを表示します。
サンプルコード5
add_filter('woocommerce_cart_product_cannot_be_purchased_message', 'blacklist_product_message', 10, 2);
function blacklist_product_message($message, $product) {
$blacklist = [789, 101]; // ブラックリストの商品ID
if (in_array($product->get_id(), $blacklist)) {
return '申し訳ありませんが、この商品は購入できません。';
}
return $message;
}
説明: ブラックリストに登録された商品の場合、購入不可のメッセージを表示します。