概要
woocommerce_get_availability
フィルタは、WooCommerceの製品在庫の可用性を表示する際にカスタマイズするためのフックです。このフィルタを利用することで、商品の在庫状況を変更したり、表示メッセージをカスタマイズしたりすることができます。以下のような機能を実装する際に特によく使用されます。
- 在庫状況のメッセージをカスタマイズする
- 在庫切れ商品の表示方法を変更する
- 特定の条件に基づいて商品の可用性を制御する
- 商品ごとに異なる可用性のアイコンやスタイルを追加する
- メール通知やユーザーインターフェースのカスタマイズ
- バッチ処理した在庫更新時のメッセージ表示
構文
add_filter('woocommerce_get_availability', 'custom_availability_message', 10, 2);
パラメータ
$availability
(string) – 商品の可用性に関するメッセージ$product
(WC_Product) – 商品オブジェクト
戻り値
変更された $availability
メッセージ (string)
使用可能なプラグインWooCommerceのバージョン
WooCommerce 3.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_filter('woocommerce_get_availability', 'custom_stock_message', 10, 2);
function custom_stock_message($availability, $product) {
if (!$product->is_in_stock()) {
return '現在在庫切れです。再入荷の予定はありません。';
}
return $availability;
}
このコードは、在庫がない商品のメッセージをカスタマイズします。
サンプルコード2: 限定商品の可用性表示
add_filter('woocommerce_get_availability', 'limited_stock_message', 10, 2);
function limited_stock_message($availability, $product) {
if ($product->get_stock_quantity() < 5) {
return '残りわずか!お早めに!';
}
return $availability;
}
在庫が5個未満の商品の場合、「残りわずか!」というメッセージを表示します。
サンプルコード3: 特別オファーの可用性
add_filter('woocommerce_get_availability', 'special_offer_availability', 10, 2);
function special_offer_availability($availability, $product) {
if ($product->get_id() === 123) { // 特定の商品ID
return 'この商品は特別オファー中です!';
}
return $availability;
}
商品ID 123の商品の可用性に特別オファーのメッセージを加えます。
サンプルコード4: 在庫状況にアイコンを追加
add_filter('woocommerce_get_availability', 'add_icon_to_availability', 10, 2);
function add_icon_to_availability($availability, $product) {
if ($product->is_in_stock()) {
return '✅ ' . $availability;
}
return '❌ ' . $availability;
}
在庫がある場合はチェックマークアイコン、在庫切れの場合はバツ印アイコンを追加します。
サンプルコード5: メール通知に在庫状況を追加
add_filter('woocommerce_get_availability', 'update_stock_in_email', 10, 2);
function update_stock_in_email($availability, $product) {
return $availability . ' (メール通知設定済み)';
}
可用性メッセージの後に「メール通知設定済み」と追加します。
それぞれのサンプルコードは、WooCommerceの在庫状況に対するフィルタの使い方を示しており、カスタマイズがどのように行えるかを具体的にしています。