概要
woocommerce_quantity_input_step
フィルタは、WooCommerceのカートや商品ページでの数量入力に関するステップ(増減)を変更するために使用されます。このフィルタを使用すると、数量の増加や減少でのステップ数を調整することができ、特定のビジネスロジックに合わせた商品管理を行うことが可能です。典型的な使用ケースとしては、以下のようなシナリオがあります。
- 最小または最大の購入数量を設定する。
- 特定の商品タイプ(例:バルク商品のみ)に対してカスタムステップを適用する。
- 商品の特性に基づいてダイナミックにステップ数を変更する。
- 限定特価提供品に対して異なる数量制限を設定する。
- ショッピング体験を向上させるためにユーザーインターフェースを調整する。
- 商品オプションやパッケージに基づいて数量ステップをカスタマイズする。
構文
add_filter( 'woocommerce_quantity_input_step', 'custom_quantity_step', 10, 2 );
パラメータ
$step
(int): デフォルトの数量ステップ。$product
(WC_Product): 現在の製品オブジェクト。
戻り値
- (int): カスタマイズされた数量ステップ。
WooCommerceとWordPressのバージョン
- WooCommerceバージョン: 3.0以上
- WordPressバージョン: 4.0以上
サンプルコード1
add_filter( 'woocommerce_quantity_input_step', 'custom_quantity_step_for_products', 10, 2 );
function custom_quantity_step_for_products( $step, $product ) {
if ( $product->get_id() === 123 ) { // 商品ID 123の特定の商品
return 5; // ステップを5に設定
}
return $step;
}
このコードは、特定の商品(ID 123)に対して数量ステップを5に設定します。
サンプルコード2
add_filter( 'woocommerce_quantity_input_step', 'set_bulk_quantity_step', 10, 2 );
function set_bulk_quantity_step( $step, $product ) {
if ( $product->is_in_stock() && $product->get_stock_quantity() > 50 ) {
return 10; // 在庫が50以上の場合、スステップを10に設定
}
return 1; // それ以外は通常ステップに戻す
}
このコードは、在庫が50以上の製品の数量ステップを10に設定し、そうでない場合は1に戻します。
サンプルコード3
add_filter( 'woocommerce_quantity_input_step', 'dynamic_quantity_step', 10, 2 );
function dynamic_quantity_step( $step, $product ) {
$category_ids = wp_get_post_terms( $product->get_id(), 'product_cat', array('fields' => 'ids') );
if ( in_array( 45, $category_ids ) ) { // カテゴリID 45に属する商品
return 2; // ステップを2に設定
}
return $step;
}
このコードは、特定のカテゴリ(ID 45)に属する商品の数量ステップを2に設定します。
サンプルコード4
add_filter( 'woocommerce_quantity_input_step', 'set_minimum_step_for_bundles', 10, 2 );
function set_minimum_step_for_bundles( $step, $product ) {
if ( $product->is_type( 'bundle' ) ) {
return 3; // バンドル商品には最小ステップを3に設定
}
return $step;
}
このコードは、バンドル商品に対して数量ステップを3に設定します。
サンプルコード5
add_filter( 'woocommerce_quantity_input_step', 'custom_quantity_step_for_sale', 10, 2 );
function custom_quantity_step_for_sale( $step, $product ) {
if ( $product->is_on_sale() ) {
return 0; // セール中の場合は無制限に設定
}
return $step;
}
このコードは、セール中の商品の数量ステップを無制限に設定します。
この関数のアクションでの使用可能性
アクション名 | 使用可能性 |
---|---|
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 |
この表は、woocommerce_quantity_input_step
フィルタがさまざまなアクションでどのように使用できるかを示しています。このフィルタは、特定のアクションでの動作に依存することなく、商品ページの数量入力に関するインタラクションをカスタマイズするために利用されます。