プラグインWooCommerceのwoocommerce_cart_product_priceフィルタの使用方法・解説

概要

woocommerce_cart_product_price フィルタは、WooCommerceのカート内の商品価格をカスタマイズするためのフックです。このフィルタを使用することで、カートに表示される商品の価格を変更したり、特定のロジックに基づいて価格を計算したりすることができます。以下は、このフィルタがよく使用される機能の例です。

  1. プロモーションや割引価格の表示
  2. 特定の条件下での価格変更
  3. 税率の適用や調整
  4. 通貨の変換
  5. 特定のユーザーグループ向けの特別価格設定
  6. 商品の可変価格の条件付き表示

構文

add_filter('woocommerce_cart_product_price', 'your_custom_function', 10, 2);

パラメータ

  • string $price – 商品の価格
  • object $cart_item – カート内の商品アイテムオブジェクト

戻り値

  • string – フィルタが適用された後の変更済みの価格

使用可能なプラグインのバージョン

  • WooCommerce: 3.0以上
  • WordPress: 4.4以上

この関数のアクションでの使用可能性

アクション 使用例
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: 割引価格の適用

このサンプルコードは、特定の条件(例:カスタムフィールドが存在する商品)の下で商品価格から10%割引を適用します。

add_filter('woocommerce_cart_product_price', 'apply_discount_on_special_product', 10, 2);
function apply_discount_on_special_product($price, $cart_item) {
    if (isset($cart_item['data']) && get_post_meta($cart_item['data']->get_id(), 'special_discount', true)) {
        $discounted_price = $cart_item['data']->get_price() * 0.9; // 10%割引
        return wc_price($discounted_price);
    }
    return $price;
}

引用元: https://www.example.com/sample1

サンプル2: 通貨の変換

このサンプルコードでは、カート内の商品価格を別の通貨(仮にユーロ)で表示します。

add_filter('woocommerce_cart_product_price', 'convert_price_to_euro', 10, 2);
function convert_price_to_euro($price, $cart_item) {
    $price_in_yen = $cart_item['data']->get_price();
    $conversion_rate = 0.0075; // 例: 1円 = 0.0075ユーロ
    $price_in_euro = $price_in_yen * $conversion_rate;
    return wc_price($price_in_euro, ['currency' => 'EUR']);
}

引用元: https://www.example.com/sample2

サンプル3: 特別価格の表示

特定のユーザーグループに対して特別な価格を設定するサンプルコードです。

add_filter('woocommerce_cart_product_price', 'show_special_price_for_members', 10, 2);
function show_special_price_for_members($price, $cart_item) {
    if (current_user_can('member_role')) {
        $special_price = $cart_item['data']->get_price() * 0.85; // 15%割引
        return wc_price($special_price);
    }
    return $price;
}

引用元: https://www.example.com/sample3

サンプル4: 消費税の追加

商品の価格に消費税を追加して表示する例です。

add_filter('woocommerce_cart_product_price', 'add_tax_to_price', 10, 2);
function add_tax_to_price($price, $cart_item) {
    $tax_rate = 1.10; // 10%税率
    $taxed_price = $cart_item['data']->get_price() * $tax_rate;
    return wc_price($taxed_price);
}

引用元: https://www.example.com/sample4

サンプル5: カスタムメッセージの追加

商品価格の表示にカスタムメッセージを追加するサンプルコードです。

add_filter('woocommerce_cart_product_price', 'add_custom_message_to_price', 10, 2);
function add_custom_message_to_price($price, $cart_item) {
    $custom_message = '(特別セール中!)';
    return $price . ' ' . $custom_message;
}

引用元: https://www.example.com/sample5

このようにして、woocommerce_cart_product_price フィルタを利用することで、カート内の表示を柔軟にカスタマイズすることができます。

この関数について質問する


上の計算式の答えを入力してください