概要
woocommerce_cart_product_price
フィルタは、WooCommerceのカート内の商品価格をカスタマイズするためのフックです。このフィルタを使用することで、カートに表示される商品の価格を変更したり、特定のロジックに基づいて価格を計算したりすることができます。以下は、このフィルタがよく使用される機能の例です。
- プロモーションや割引価格の表示
- 特定の条件下での価格変更
- 税率の適用や調整
- 通貨の変換
- 特定のユーザーグループ向けの特別価格設定
- 商品の可変価格の条件付き表示
構文
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
フィルタを利用することで、カート内の表示を柔軟にカスタマイズすることができます。