概要
woocommerce_order_amount_item_subtotal
フィルタは、WooCommerceにおける注文アイテムの小計額を変更するために使用されるフックです。このフィルタは、顧客に表示される商品価格や合計金額をカスタマイズしたい場合や、特定の条件に基づいて金額を調整したい場合に役立ちます。よく使われる機能には以下のようなものがあります:
- 商品の割引を適用する
- 税込み価格を表示する
- 特定の商品の価格をカスタマイズする
- ボーナスやクーポンとの連携処理
- カスタムロジックに基づく価格の動的変更
- 定期購入者に特別な価格を表示する
構文
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の注文アイテムの小計を自在にカスタマイズできます。このフィルタを利用することで、顧客体験を向上させることが可能です。