概要
woocommerce_shortcode_product_page_invalid_statuses
フィルタは、WooCommerceのショートコードで製品ページを表示する際に、無効な製品ステータスをフィルタリングするために使用されます。このフィルタは、特定の製品ステータス(例えば、在庫切れや非公開など)が表示されないようにするのに役立ちます。主に以下のような機能を実装する際に利用されます。
- 在庫がない商品の表示を制限する。
- 特定のユーザーにのみ商品を表示する。
- 特定のカテゴリーの商品をフィルタリングする。
- 商品の公開状況に基づいての表示制御。
- カスタムステータスの商品の制御。
- 条件に基づいて動的にアイテムをフィルタリングする。
構文
add_filter('woocommerce_shortcode_product_page_invalid_statuses', 'your_function_name');
パラメータ
$invalid_statuses
(配列) : 無効なステータスのリスト。
戻り値
- (配列) : 更新された無効なステータスのリスト。
使用可能なバージョン
- WooCommerce: 3.0.0 以降
- 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_shortcode_product_page_invalid_statuses', 'hide_out_of_stock_products');
function hide_out_of_stock_products($invalid_statuses) {
$invalid_statuses[] = 'outofstock'; // 在庫切れステータスを追加
return $invalid_statuses;
}
このコードは、在庫切れステータスの製品を無効として追加し、表示されないようにします。
サンプル2: 限定公開商品の非表示
add_filter('woocommerce_shortcode_product_page_invalid_statuses', 'exclude_private_products');
function exclude_private_products($invalid_statuses) {
$invalid_statuses[] = 'private'; // プライベートステータスを追加
return $invalid_statuses;
}
このコードは、プライベート商品の表示を制限します。
サンプル3: カスタムステータスの商品の表示制御
add_filter('woocommerce_shortcode_product_page_invalid_statuses', 'filter_custom_product_status');
function filter_custom_product_status($invalid_statuses) {
$invalid_statuses[] = 'custom_status'; // カスタムステータスを追加
return $invalid_statuses;
}
このコードでは、カスタムステータスの商品の表示を制限します。
サンプル4: 特定のカテゴリーの商品を除外
add_filter('woocommerce_shortcode_product_page_invalid_statuses', 'exclude_specific_category');
function exclude_specific_category($invalid_statuses) {
if (is_product_category('specific-category')) {
$invalid_statuses[] = 'draft'; // 特定カテゴリーでドラフトを追加
}
return $invalid_statuses;
}
このコードは、特定のカテゴリーでのみドラフト商品の表示を制限します。
サンプル5: ユーザーの権限に応じて表示制御
add_filter('woocommerce_shortcode_product_page_invalid_statuses', 'conditional_product_status');
function conditional_product_status($invalid_statuses) {
if (!current_user_can('administrator')) {
$invalid_statuses[] = 'pending'; // 管理者以外のユーザーには保留中の商品を表示しない
}
return $invalid_statuses;
}
このコードは、管理者以外のユーザーに対して保留中の商品を表示しないようにします。
このフィルタを使用することで、製品ページの表示をより柔軟に制御できるようになります。