概要
woocommerce_update_order_review_fragments
フィルタは、WooCommerceのカートやチェックアウトの際に注文レビューの内容を更新する際に使用されるフックです。このフィルタを使用することで、カートに関連する情報や、ディスカウント、送料、商品情報などのビューをカスタマイズすることができます。
よく使われる機能
- カート総計の動的な更新
- 割引クーポンの適用とその表示のカスタマイズ
- 配送オプションの変更に伴う料金の即時反映
- カートに追加された商品の情報をリアルタイムに表示
- カスタムメッセージや通知の追加
- モバイルデバイス向けの表示調整
構文
add_filter( 'woocommerce_update_order_review_fragments', 'custom_function' );
パラメータ
$fragments
: 更新するHTML部分を含む配列。
戻り値
$fragments
: 修正されたHTML部分を含む配列。
使用可能なプラグインおよびバージョン
- WooCommerce: バージョン 2.0.0 以降
- 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_update_order_review_fragments', 'custom_cart_totals' );
function custom_cart_totals( $fragments ) {
ob_start();
?>
<div class="custom-cart-total">
<?php echo WC()->cart->get_cart_subtotal(); ?>
</div>
<?php
$fragments['.custom-cart-total'] = ob_get_clean();
return $fragments;
}
このサンプルコードは、カートの小計をカスタマイズして表示します。カートが更新されるたびに小計がリアルタイムに更新されます。
サンプル2: カスタムメッセージの追加
add_filter( 'woocommerce_update_order_review_fragments', 'add_custom_message_to_cart' );
function add_custom_message_to_cart( $fragments ) {
ob_start();
?>
<div class="custom-message">
ご注文内容を確認してください!
</div>
<?php
$fragments['.custom-message'] = ob_get_clean();
return $fragments;
}
このコードは、カートの更新時にカスタムメッセージを表示します。ユーザーに対してアクションを促す目的で使用されます。
サンプル3: 割引価格の更新
add_filter( 'woocommerce_update_order_review_fragments', 'update_discount_price' );
function update_discount_price( $fragments ) {
ob_start();
?>
<div class="discount-price">
割引後の価格: <?php echo WC()->cart->get_discount_total(); ?>
</div>
<?php
$fragments['.discount-price'] = ob_get_clean();
return $fragments;
}
このサンプルでは、割引価格をカートが更新されるたびに表示します。ディスカウントが適用された結果をユーザーに示すのに役立ちます。
サンプル4: 配送オプションによる料金更新
add_filter( 'woocommerce_update_order_review_fragments', 'update_shipping_cost' );
function update_shipping_cost( $fragments ) {
ob_start();
?>
<div class="shipping-cost">
配送料: <?php echo WC()->cart->get_shipping_total(); ?>
</div>
<?php
$fragments['.shipping-cost'] = ob_get_clean();
return $fragments;
}
このコードは、配送オプションが変更されるたびに配送料を表示します。これにより、顧客は正確な合計金額を把握できます。
サンプル5: 商品情報の動的表示
add_filter( 'woocommerce_update_order_review_fragments', 'display_dynamic_product_info' );
function display_dynamic_product_info( $fragments ) {
ob_start();
?>
<div class="product-info">
商品数: <?php echo WC()->cart->get_cart_contents_count(); ?> 件
</div>
<?php
$fragments['.product-info'] = ob_get_clean();
return $fragments;
}
このサンプルコードは、カート内の商品の数を動的に表示します。顧客がカートを更新するたびに、購入した商品の総数がわかるようになります。
これらのサンプルコードは、カスタマイズによるユーザー体験の向上に寄与するための基本的な実装方法を示しています。