概要
woocommerce_get_availability_text
フィルタは、WooCommerceで商品在庫の可用性テキストをカスタマイズする際に使用されるフックです。このフィルタは、商品の在庫情報を表示する際に、デフォルトの在庫メッセージを変更したり、特定の条件に応じて異なるメッセージを表示したりするのに役立ちます。具体的には、以下のような機能を実装する際に使われることが一般的です。
- 在庫状況に応じたメッセージの変更
- カスタム在庫レベルによるメッセージの表示
- 商品が予約販売である場合の特別なメッセージ
- 在庫が少ない場合の警告メッセージ
- 特定のユーザーやロールによる表示内容の変更
- 統計データに基づくメッセージの表示
構文
add_filter('woocommerce_get_availability_text', 'custom_availability_text', 10, 2);
パラメータ
$availability
: 変更される在庫テキスト(文字列)$product
: WooCommerce Productオブジェクト
戻り値
変更された在庫テキスト(文字列)
バージョン
- 使用可能なプラグイン:WooCommerce
- WooCommerceバージョン:3.0以降
- WordPressバージョン:4.7以降
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
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_get_availability_text', 'custom_availability_text', 10, 2);
function custom_availability_text($availability, $product) {
if ($product->is_in_stock()) {
return '在庫あり';
} else {
return '在庫切れ';
}
}
このコードでは、商品が在庫ありの場合は「在庫あり」、在庫がない場合は「在庫切れ」と表示されるように在庫テキストをカスタマイズしています。
サンプル 2: 在庫が少ない商品に特別メッセージ
add_filter('woocommerce_get_availability_text', 'low_stock_message', 10, 2);
function low_stock_message($availability, $product) {
if ($product->get_stock_quantity() <= 5 && $product->is_in_stock()) {
return '残りわずか!';
}
return $availability;
}
このコードでは、在庫数量が5以下の商品に対して「残りわずか!」という特別なメッセージを表示します。
サンプル 3: 予約販売商品向けメッセージ
add_filter('woocommerce_get_availability_text', 'preorder_message', 10, 2);
function preorder_message($availability, $product) {
if ($product->is_on_backorder(1)) {
return '予約販売中';
}
return $availability;
}
このコードは、予約販売中の商品の場合に「予約販売中」というメッセージを表示するように設定しています。
サンプル 4: ユーザーによるメッセージの変更
add_filter('woocommerce_get_availability_text', 'custom_message_for_user', 10, 2);
function custom_message_for_user($availability, $product) {
if (current_user_can('subscriber')) {
return '会員専用商品です。';
}
return $availability;
}
このコードは、購読者ユーザーが商品詳細を見た場合に「会員専用商品です。」というメッセージを表示します。
サンプル 5: 在庫がある商品の特典メッセージ
add_filter('woocommerce_get_availability_text', 'special_offer_when_in_stock', 10, 2);
function special_offer_when_in_stock($availability, $product) {
if ($product->is_in_stock()) {
return $availability . ' - 今なら特別オファー!';
}
return $availability;
}
このコードでは、在庫がある商品の場合に「- 今なら特別オファー!」というメッセージを追加することで、特典を強調しています。