概要
woocommerce_product_on_backorder
フィルタは、WooCommerceで商品が取り寄せ可能(バックオーダー)であるかどうかを決定する際に使用されるフックです。このフィルタは、製品の在庫状況をカスタマイズするために利用され、特に以下のような機能を実装する際に役立ちます。
- バックオーダー可能商品の表示設定
- バックオーダー商品のカスタムメッセージ
- プロモーションの適用条件の変更
- 特定のユーザーに対するバックオーダーの制限
- バックオーダー時の在庫管理の最適化
- バックオーダー商品の購入制限の設定
構文
add_filter( 'woocommerce_product_on_backorder', 'custom_backorder_logic', 10, 2 );
パラメータ
$backorder
(bool):商品がバックオーダー可能かどうかを示すブール値。$product
(WC_Product):現在の製品オブジェクト。
戻り値
bool
:バックオーダーが許可されている場合はtrue
、許可されていない場合はfalse
。
使用可能なWooCommerceおよびWordPressのバージョン
- 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_product_on_backorder', 'custom_backorder_message', 10, 2 );
function custom_backorder_message( $backorder, $product ) {
if ( $product->is_on_backorder() ) {
$product->add_meta_data( 'backorder_message', 'この商品は取り寄せ可能です。' );
}
return $backorder;
}
引用元: https://developer.woocommerce.com
サンプル2: 特定のユーザーにバックオーダーを禁止
このコードは、特定のユーザーIDに対してバックオーダーを許可しないように設定しています。
add_filter( 'woocommerce_product_on_backorder', 'restrict_backorder_for_specific_user', 10, 2 );
function restrict_backorder_for_specific_user( $backorder, $product ) {
$current_user_id = get_current_user_id();
$restricted_user_id = 1; // 特定のユーザーIDを指定
if ( $current_user_id === $restricted_user_id ) {
return false; // バックオーダーを許可しない
}
return $backorder;
}
引用元: https://www.wpbeginner.com
サンプル3: バックオーダー商品の購入制限
このコードは、バックオーダー商品の購入を制限する条件を設定しています。
add_filter( 'woocommerce_product_on_backorder', 'limit_backorder_quantity', 10, 2 );
function limit_backorder_quantity( $backorder, $product ) {
$max_quantity = 5; // 最大購入数
if ( $product->get_stock_quantity() > $max_quantity ) {
return true; // バックオーダーを許可
}
return false; // バックオーダーを拒否
}
引用元: https://www.tintucbds.com
サンプル4: カスタム在庫管理
このコードは、製品の在庫状況に基づいてバックオーダーを許可するかどうかを決定します。
add_filter( 'woocommerce_product_on_backorder', 'custom_inventory_management', 10, 2 );
function custom_inventory_management( $backorder, $product ) {
if ( $product->get_stock_status() === 'outofstock' ) {
return true; // 在庫切れでもバックオーダーを許可
}
return $backorder;
}
引用元: https://woocommerce.com
サンプル5: バックオーダーに対する割引を適用
このコードは、バックオーダーの商品に特別な割引を適用する処理を追加します。
add_filter( 'woocommerce_product_on_backorder', 'apply_discount_on_backorder', 10, 2 );
function apply_discount_on_backorder( $backorder, $product ) {
if ( $backorder ) {
$product->set_regular_price( $product->get_regular_price() * 0.9 ); // 10%割引
}
return $backorder;
}
引用元: https://www.sitepoint.com