概要
woocommerce_get_price_excluding_tax
フィルタは、WooCommerceにおいて商品価格を税抜きで取得する際に使用されるフックです。このフィルタを用いることで、価格計算のロジックを拡張したり、特定の条件に基づいて価格を変更することが可能です。このフィルタは、以下のような機能を実装する際に特に有用です。
- 価格表示のカスタマイズ
- 価格計算の条件付きロジック
- 特定のユーザーグループ向けの特別価格設定
- プロモーションやディスカウントの適用
- 販売地域に基づく価格調整
- 商品のバリエーションごとの価格の最適化
構文
add_filter('woocommerce_get_price_excluding_tax', 'custom_price_excluding_tax', 10, 2);
custom_price_excluding_tax
: このフックで実行されるユーザー定義の関数名。10
: フィルタの優先度。2
: このフィルタで受け取る引数の数。
パラメータ
$price
: 税抜き価格の数値。$product
: 現在処理中のWooCommerce製品オブジェクト。
戻り値
- 修正された税抜き価格の数値。
WooCommerceのバージョン
- WooCommerce 2.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('woocommerce_get_price_excluding_tax', 'modify_price_for_discount', 10, 2);
function modify_price_for_discount($price, $product) {
if (is_product() && $product->is_on_sale()) {
$price *= 0.9; // 10%引き
}
return $price;
}
このコードは、セール中の商品の税抜き価格を10%引きにする処理を追加します。
サンプルコード 2
add_filter('woocommerce_get_price_excluding_tax', 'custom_user_group_price', 10, 2);
function custom_user_group_price($price, $product) {
if (current_user_can('wholesale_customer')) {
return $price * 0.85; // 卸売顧客には15%割引
}
return $price;
}
このコードは、卸売顧客に対して15%の割引を適用する機能です。
サンプルコード 3
add_filter('woocommerce_get_price_excluding_tax', 'adjust_price_by_region', 10, 2);
function adjust_price_by_region($price, $product) {
$region = get_user_meta(get_current_user_id(), 'region', true);
if ($region === 'special_region') {
$price += 5; // 特別地域の顧客には5ドル追加
}
return $price;
}
このコードは、特定の地域の顧客に価格を加算する処理を追加しています。
サンプルコード 4
add_filter('woocommerce_get_price_excluding_tax', 'round_price', 10, 2);
function round_price($price, $product) {
return round($price, 2); // 小数点以下2桁に四捨五入
}
このコードは、税抜き価格を小数点以下2桁に四捨五入します。
サンプルコード 5
add_filter('woocommerce_get_price_excluding_tax', 'add_custom_fee', 10, 2);
function add_custom_fee($price, $product) {
if ($product->id === 123) { // 商品ID 123 にカスタム手数料を適用
return $price + 10; // 10ドル追加
}
return $price;
}
このコードは、特定の商品に対してカスタム手数料を追加する処理を実装しています。