Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Mengemas kini Secara Dinamik Kiraan Item Troli Pengepala WooCommerce Menggunakan AJAX?

Bagaimana untuk Mengemas kini Secara Dinamik Kiraan Item Troli Pengepala WooCommerce Menggunakan AJAX?

Linda Hamilton
Lepaskan: 2024-10-29 06:19:02
asal
1022 orang telah melayarinya

How to Dynamically Update WooCommerce Header Cart Items Count Using AJAX?

Item Troli Pengepala Ajaxify Dikira dalam WooCommerce

Mengenal pasti Keperluan

Dalam tema WordPress bersepadu WooCommerce, mengemas kini troli pengepala item dikira tanpa memuat semula halaman adalah cabaran biasa. jQuery menawarkan penyelesaian, tetapi persoalan timbul apabila item boleh ditambah dalam berbilang kuantiti.

Menggunakan AJAX untuk Mendapatkan Jumlah Kiraan

Untuk mendapatkan semula jumlah kiraan troli secara dinamik daripada PHP sesi menggunakan jQuery, fail reloadCart.php dicipta untuk menggemakan nilai:

<code class="php"><?php
require('../../../wp-blog-header.php');
global $woocommerce;
echo $woocommerce->cart->get_cart_contents_count();
?></code>
Salin selepas log masuk

Pelaksanaan AJAX

Walau bagaimanapun, cubaan untuk membuat panggilan AJAX ke fail ini menggunakan Fungsi get(), post(), atau ajax() jQuery telah tidak berjaya.

Pendekatan Yang Diperbaiki

Daripada bergantung pada muat semula, WooCommerce menawarkan woocommerce_add_to_cart_fragments yang berdedikasi cangkuk tindakan yang menyokong Ajax.

Penyepaduan HTML

Benamkan kiraan troli dalam pengepala dengan ID atau kelas unik:

<code class="php">$items_count = WC()->cart->get_cart_contents_count(); 
?>
    <div id="mini-cart-count"><?php echo $items_count ? $items_count : '&amp;nbsp;'; ?></div>
<?php
Salin selepas log masuk

Kod PHP

Laksanakan kod berikut dalam fail function.php tema atau pemalam:

<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 : '&amp;nbsp;'; ?></div>
    <?php
        $fragments['#mini-cart-count'] = ob_get_clean();
    return $fragments;
}</code>
Salin selepas log masuk

Ganti #mini-cart-count dengan .mini-cart- kira jika menggunakan kelas.

Segar Semula jQuery

Jika muat semula jQuery tambahan diperlukan:

<code class="php">$(document.body).trigger('wc_fragment_refresh');</code>
Salin selepas log masuk

atau

<code class="php">$(document.body).trigger('wc_fragments_refreshed');</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mengemas kini Secara Dinamik Kiraan Item Troli Pengepala WooCommerce Menggunakan AJAX?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan