概要
woocommerce_get_availability_class
フィルタは、WooCommerceの商品在庫の可用性に関連するクラスをカスタマイズするために使用されます。このフィルタを使うことで、特定の在庫状況やカスタム条件に基づいて商品ページの表示を変更することができます。主に以下のような機能を実装する際によく使用されます。
- 在庫が少ない商品のスタイル変更
- 特別セール商品に対するクラスの追加
- バリエーション商品の可用性表示のカスタマイズ
- プロモーション商品に特別なクラスを適用
- 在庫切れ商品に対する警告表示
- カスタムユーザーの役割に基づく表示の変更
このフィルタは、WooCommerceバージョン3.0以降、WordPressの最新バージョンで使用可能です。
構文
add_filter('woocommerce_get_availability_class', 'custom_function_name', 10, 2);
パラメータ
$class
(string): 商品に適用されるクラス名。$product
(WC_Product): 現在処理中の商品オブジェクト。
戻り値
- (string): 変更されたクラス名。
この関数のアクションでの使用可能性
アクション | 使用可能 |
---|---|
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_class', 'add_low_stock_class', 10, 2);
function add_low_stock_class($class, $product) {
if ($product->get_stock_quantity() < 5 && $product->is_in_stock()) {
$class .= ' low-stock';
}
return $class;
}
引用元: WooCommerce Developer Docs
サンプル 2: カスタムプロモーション商品のクラスを適用
このコードは、特定のカスタムフィールドを持つ商品に特別なクラスを追加します。
add_filter('woocommerce_get_availability_class', 'add_promotional_class', 10, 2);
function add_promotional_class($class, $product) {
if (get_post_meta($product->get_id(), '_is_promotional', true)) {
$class .= ' promotional';
}
return $class;
}
引用元: WooCommerce Developer Docs
サンプル 3: 在庫切れ商品の警告表示
在庫切れの商品のクラスに特別なスタイルを適用します。
add_filter('woocommerce_get_availability_class', 'add_out_of_stock_alert', 10, 2);
function add_out_of_stock_alert($class, $product) {
if (!$product->is_in_stock()) {
$class .= ' out-of-stock-alert';
}
return $class;
}
引用元: WooCommerce Developer Docs
サンプル 4: ユーザーの役割によるクラス変更
このコードは、特定のユーザー役割に基づいてクラスを変更します。
add_filter('woocommerce_get_availability_class', 'custom_role_availability_class', 10, 2);
function custom_role_availability_class($class, $product) {
if (current_user_can('administrator')) {
$class .= ' admin-access';
}
return $class;
}
引用元: WooCommerce Developer Docs
サンプル 5: バリエーション商品の可用性表示のカスタマイズ
このコードは、バリエーション商品の可用性に基づいてクラスを追加します。
add_filter('woocommerce_get_availability_class', 'variation_availability_class', 10, 2);
function variation_availability_class($class, $product) {
if ($product->is_type('variable') && $product->has_child()) {
$class .= ' variable-product';
}
return $class;
}