概要
raw_woocommerce_price
フィルタは、WooCommerceで価格を表示する際に、価格データを操作するために使用されるフックです。このフィルタは、製品の価格が表示される前に、価格のフォーマットや計算をカスタマイズするのに役立ちます。以下は、このフィルタがよく使用される状況の例です:
- 価格フォーマットの変更
- 税金の追加または削除
- 通貨シンボルの変更
- カスタム割引の適用
- 数量に基づく価格の調整
- 特定の製品タイプに対する価格の変更
構文
add_filter( 'raw_woocommerce_price', 'custom_function', 10, 2 );
パラメータ
$price
: 価格の数値$product
: 対応する製品オブジェクト
戻り値
フィルタが適用された新しい価格。
WooCommerce バージョン
このフィルタは、WooCommerce 3.0 以降で使用可能です。
WordPress バージョン
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( 'raw_woocommerce_price', 'add_tax_to_price', 10, 2 );
function add_tax_to_price( $price, $product ) {
$tax_rate = 0.1; // 10%の税
$price_with_tax = $price + ( $price * $tax_rate );
return $price_with_tax;
}
このコードでは、製品価格に10%の税金を追加しています。
サンプルコード 2: 通貨シンボルの変更
add_filter( 'raw_woocommerce_price', 'change_currency_symbol', 10, 2 );
function change_currency_symbol( $price, $product ) {
return '¥' . number_format( $price, 2 );
}
このコードでは、価格の前に「¥」シンボルを追加しています。
サンプルコード 3: カスタム割引を適用
add_filter( 'raw_woocommerce_price', 'apply_custom_discount', 10, 2 );
function apply_custom_discount( $price, $product ) {
$discount_rate = 0.2; // 20%の割引
return $price - ( $price * $discount_rate );
}
このコードでは、製品価格から20%の割引を適用しています。
サンプルコード 4: 特定の製品に対して価格を調整
add_filter( 'raw_woocommerce_price', 'adjust_price_for_specific_product', 10, 2 );
function adjust_price_for_specific_product( $price, $product ) {
if ( $product->get_id() === 1234 ) { // 製品ID 1234
$price += 500; // 500円追加
}
return $price;
}
このコードは、特定の製品の価格に500円を追加します。
サンプルコード 5: 在庫に応じた価格調整
add_filter( 'raw_woocommerce_price', 'modify_price_based_on_stock', 10, 2 );
function modify_price_based_on_stock( $price, $product ) {
if ( $product->get_stock_quantity() < 10 ) { // 在庫が10個未満
return $price * 1.1; // 価格を10%増加
}
return $price;
}
このコードは、在庫が10個未満の場合に価格を10%増加させます。