プラグインWooCommerceのwoocommerce_get_availability_classフィルタの使用方法・解説

概要

woocommerce_get_availability_class フィルタは、WooCommerceの商品在庫の可用性に関連するクラスをカスタマイズするために使用されます。このフィルタを使うことで、特定の在庫状況やカスタム条件に基づいて商品ページの表示を変更することができます。主に以下のような機能を実装する際によく使用されます。

  1. 在庫が少ない商品のスタイル変更
  2. 特別セール商品に対するクラスの追加
  3. バリエーション商品の可用性表示のカスタマイズ
  4. プロモーション商品に特別なクラスを適用
  5. 在庫切れ商品に対する警告表示
  6. カスタムユーザーの役割に基づく表示の変更

このフィルタは、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;
}

引用元: WooCommerce Developer Docs

この関数について質問する


上の計算式の答えを入力してください