概要
woocommerce_get_discounted_price
フィルタは、WooCommerceで商品価格の割引を計算する際に使用されます。このフィルタを利用すると、製品の割引価格を変更したり、カスタマイズしたりすることができます。主に以下の機能を実装する際に使用されます。
- 割引価格の計算をカスタマイズする
- 特定の条件に基づいて割引を適用する
- 割引のデフォルト値を変更する
- カート内の商品による割引ロジックを追加する
- 顧客のユーザーロールに応じた割引を適用する
- プロモーションやクーポンの適用に基づく割引を実装する
フィルタの構文
add_filter('woocommerce_get_discounted_price', 'custom_discounted_price_function', 10, 2);
パラメータ
$price
(float): 変更前の割引価格$product
(WC_Product): 割引が適用される商品オブジェクト
戻り値
- (float): カスタマイズされた割引価格
使用可能なプラグインWooCommerceのバージョン
- WooCommerce 2.6.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_discounted_price', 'custom_discounted_price', 10, 2);
function custom_discounted_price($price, $product) {
if ($product->is_on_sale() && $product->get_regular_price() > 50) {
$price *= 0.9; // 定価が50を超える場合、価格を10%割引
}
return $price;
}
このサンプルでは、製品がセール中であり、その定価が50を超える場合に、割引価格を10%減少させています。
サンプルコード2: ユーザーグループに基づく割引提供
add_filter('woocommerce_get_discounted_price', 'user_group_discount', 10, 2);
function user_group_discount($price, $product) {
if (current_user_can('premium_member')) {
$price -= 5; // プレミアム会員には5ドルの割引を適用
}
return $price;
}
このコードでは、プレミアム会員のユーザーに対して、割引価格から5ドルを引いています。
サンプルコード3: 特定の製品に対する割引率を適用
add_filter('woocommerce_get_discounted_price', 'specific_product_discount', 10, 2);
function specific_product_discount($price, $product) {
if ($product->get_id() == 123) {
return $price * 0.85; // 製品ID 123には15%割引を適用
}
return $price;
}
この例では、特定の製品(ID: 123)に対して15%の割引を適用しています。
サンプルコード4: カート内の数量に基づく割引
add_filter('woocommerce_get_discounted_price', 'quantity_based_discount', 10, 2);
function quantity_based_discount($price, $product) {
$cart = WC()->cart;
if ($cart->get_cart_contents_count() > 5) {
return $price * 0.9; // カート内に5つ以上の商品がある場合、10%の割引
}
return $price;
}
このサンプルでは、カート内の商品数が5つを超える場合に10%の割引を適用しています。
サンプルコード5: クーポンによる追加割引
add_filter('woocommerce_get_discounted_price', 'coupon_discount', 10, 2);
function coupon_discount($price, $product) {
if (WC()->cart->has_discount('SUMMER2023')) {
return $price * 0.8; // SUMMER2023クーポン使用時に20%の割引
}
return $price;
}
このコード例では、特定のクーポン(SUMMER2023)が適用されている場合に、割引価格を20%減少させています。
これらのサンプルコードを使うことで、様々な条件に基づいた割引のカスタマイズが可能になります。詳細な仕様については、WooCommerceの公式ドキュメントやフォーラムを参照してください。