確定需求
利用AJAX 檢索總計數從PHP 動態檢索購物車總數使用jQuery 進行會話時,會建立一個reloadCart.php 檔案來回顯該值:
<code class="php"><?php require('../../../wp-blog-header.php'); global $woocommerce; echo $woocommerce->cart->get_cart_contents_count(); ?></code>
但是,嘗試使用AJAX 呼叫此檔案jQuery 的get()、post() 或ajax() 函數不成功。
改進的方法WooCommerce 提供了專用的 woocommerce_add_to_cart_fragments,而不是依賴重新載入支援 Ajax 的操作掛鉤。
HTML 整合使用唯一ID 或類別將購物車計數嵌入標頭中:
<code class="php">$items_count = WC()->cart->get_cart_contents_count(); ?> <div id="mini-cart-count"><?php echo $items_count ? $items_count : '&nbsp;'; ?></div> <?php
PHP 代碼
<code class="php">add_filter( 'woocommerce_add_to_cart_fragments', 'wc_refresh_mini_cart_count'); function wc_refresh_mini_cart_count($fragments){ ob_start(); $items_count = WC()->cart->get_cart_contents_count(); ?> <div id="mini-cart-count"><?php echo $items_count ? $items_count : '&nbsp;'; ?></div> <?php $fragments['#mini-cart-count'] = ob_get_clean(); return $fragments; }</code>
PHP 程式碼
在主題的function.php 檔案或外掛程式中實作以下程式碼:
將#mini-cart-count 替換為.mini-cart-如果使用類別則計數。<code class="php">$(document.body).trigger('wc_fragment_refresh');</code>
<code class="php">$(document.body).trigger('wc_fragments_refreshed');</code>
以上是如何使用 AJAX 動態更新 WooCommerce 標頭購物車專案計數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!