概要
wc_product_weight_enabled フィルタは、WooCommerceプラグインで製品の重量機能の有効/無効を制御できるフックです。このフィルタは、特定の製品や条件に基づいて重量機能を柔軟に管理するために利用されます。以下はこのフィルタがよく使われるシーンの例です:
- ストア全体で特定の製品の重量機能を無効にする場合
- 特定のユーザー役割に基づいて重量機能の表示/非表示を制御する場合
- 商品属性として重量を除外したい場合
- 配送オプションをカスタマイズするための条件で重量機能を変更する場合
- 特定の製品カテゴリーにのみ重量機能を適用する場合
- 特定の条件下での割引やプロモーションに伴う重量計算の変更
構文
add_filter( 'wc_product_weight_enabled', 'your_function_name', 10, 2 );
パラメータ
$enabled(bool): 重量機能が有効な場合はtrue、無効な場合はfalseを返します。$product(WC_Product): フィルタを適用する対象の製品オブジェクト。
戻り値
- フィルタ結果として、
trueまたはfalseが返されます。
使用可能なプラグインWooCommerceのバージョン
- WooCommerce バージョン 3.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( 'wc_product_weight_enabled', function( $enabled, $product ) {
if ( $product->get_id() === 123 ) {
return false; // ID 123の製品では重量機能を無効にする
}
return $enabled; // 他はそのまま
}, 10, 2 );
このコードは、IDが123の製品の重量機能を無効にします。
サンプルコード 2
特定のユーザー役割に基づいて製品の重量機能を制御する例です。
add_filter( 'wc_product_weight_enabled', function( $enabled ) {
if ( current_user_can( 'wholesale_customer' ) ) {
return false; // 卸売顧客の場合は重量機能を無効にする
}
return $enabled;
});
このコードは、卸売顧客であれば重量機能を無効にします。
サンプルコード 3
特定のカテゴリーのみで重量機能を有効にする例です。
add_filter( 'wc_product_weight_enabled', function( $enabled, $product ) {
if ( has_term( 'no-weight', 'product_cat', $product->get_id() ) ) {
return false; // "no-weight" カテゴリーの場合は重量機能を無効にする
}
return $enabled;
}, 10, 2 );
このコードは、”no-weight” カテゴリーの製品では重量機能を無効にします。
サンプルコード 4
特定の条件下で重量機能の表示を制御する例です。
add_filter( 'wc_product_weight_enabled', function( $enabled ) {
if ( isset( $_GET['no_weight'] ) ) {
return false; // URLパラメータがsetされていたら重量機能を無効にする
}
return $enabled;
});
このコードは、URLに「no_weight」パラメータが付いている場合、重量機能を無効にします。
サンプルコード 5
特定の製品タイプでのみ重量機能を有効にする例です。
add_filter( 'wc_product_weight_enabled', function( $enabled, $product ) {
if ( 'simple' !== $product->get_type() ) {
return false; // 単純な製品タイプでない場合に重量機能を無効にする
}
return $enabled;
}, 10, 2 );
このコードは、単純な製品のみに対して重量機能を有効にします。