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

概要

woocommerce_order_amount_item_subtotal フィルタは、WooCommerceにおける注文アイテムの小計額を変更するために使用されるフックです。このフィルタは、顧客に表示される商品価格や合計金額をカスタマイズしたい場合や、特定の条件に基づいて金額を調整したい場合に役立ちます。よく使われる機能には以下のようなものがあります:

  1. 商品の割引を適用する
  2. 税込み価格を表示する
  3. 特定の商品の価格をカスタマイズする
  4. ボーナスやクーポンとの連携処理
  5. カスタムロジックに基づく価格の動的変更
  6. 定期購入者に特別な価格を表示する

構文

add_filter( 'woocommerce_order_amount_item_subtotal', 'your_function_name', 10, 2 );

パラメータ

  • $subtotal: 現在の小計額(float)
  • $item: 注文アイテムオブジェクト(WC_Order_Item_Product)

戻り値

  • 修正された小計額(float)

バージョン情報

  • WooCommerce: 2.0.0以上
  • WordPress: 3.6以上

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

アクション 使用例
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_order_amount_item_subtotal', 'apply_discount_to_specific_product', 10, 2 );
function apply_discount_to_specific_product( $subtotal, $item ) {
    if ( $item->get_product_id() == 123 ) { // 商品ID 123 に割引を適用
        $subtotal *= 0.9; // 10% 割引
    }
    return $subtotal;
}

使用元: https://docs.woocommerce.com

サンプル2: 税込み価格の表示

このサンプルは、税込みの価格を小計に表示します。

add_filter( 'woocommerce_order_amount_item_subtotal', 'show_price_including_tax', 10, 2 );
function show_price_including_tax( $subtotal, $item ) {
    $tax_rate = 0.1; // 10%の税率
    $subtotal *= (1 + $tax_rate);
    return $subtotal;
}

使用元: https://developer.wordpress.org

サンプル3: 契約内容によるカスタム価格

このサンプルは、特定の顧客契約条件に基づき小計を変更します。

add_filter( 'woocommerce_order_amount_item_subtotal', 'custom_price_based_on_membership', 10, 2 );
function custom_price_based_on_membership( $subtotal, $item ) {
    if ( is_user_logged_in() && user_has_membership() ) { // 会員であれば
        $subtotal *= 0.85; // 15%引き
    }
    return $subtotal;
}

使用元: https://woocommerce.wp-a2z.org

サンプル4: プロモーション価格を反映

このサンプルでは、特定のプロモーションに基づいて小計を修正します。

add_filter( 'woocommerce_order_amount_item_subtotal', 'apply_promotion', 10, 2 );
function apply_promotion( $subtotal, $item ) {
    $promotional_price = get_promotional_price( $item->get_product_id() );
    if ( $promotional_price ) {
        return $promotional_price;
    }
    return $subtotal;
}

使用元: https://www.sitepoint.com

サンプル5: 定期購入用の特別価格

このサンプルコードは、定期購入を行う顧客には特別価格を表示します。

add_filter( 'woocommerce_order_amount_item_subtotal', 'special_price_for_subscription', 10, 2 );
function special_price_for_subscription( $subtotal, $item ) {
    if ( $item->is_on_sale() ) { // セール中の商品には特別価格を適用
        $subtotal *= 0.8; // 20%引き
    }
    return $subtotal;
}

使用元: https://developer.woocommerce.com

以上のサンプルコードを活用して、WooCommerceの注文アイテムの小計を自在にカスタマイズできます。このフィルタを利用することで、顧客体験を向上させることが可能です。

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


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