Kira detik produk Woocommerce pada halaman arkib/kitaran
P粉237647645
P粉237647645 2023-08-31 21:06:59
0
1
399
<p>Saya membuat kira detik menggunakan kekunci meta <kod>_harga_jualan_ke</kod>请参阅下面的代码:</p> <pre class="brush:php;toolbar:false;">add_shortcode( 'woocommerce_timer_two', 'sales_timer_countdown_product_two', 20 ); fungsi sales_timer_countdown_product_two($atts) { ekstrak( shortcode_atts( array( 'id' => get_the_ID(), ), $atts, 'woocommerce_timer_two' ) ); $produk global; // Jika objek produk tidak ditakrifkan, kami mendapatkannya daripada ID produk if ( ! is_a($product, 'WC_Product') && get_post_type($id) === 'product' ) { $produk = wc_get_product($id); } jika ( is_a($product, 'WC_Product') ) { $tarikh_jualan = dapatkan_siaran_meta( $produk->dapatkan_id(), '_harga_jualan_tarikh_kepada', benar ); jika ( ! kosong( $sale_date ) ) { ?> <skrip> jQuery(fungsi($){ "gunakan ketat"; $('.countdown-counter').setiap( function() { var to = $(this).attr("countdown"); var thisis = $(this); var parent = $(this).parent(); var countDownDate = <?php echo $sale_date; ?> * 1000; // Kemas kini kiraan mundur setiap 1 saat var x = setInterval(function() { // Dapatkan tarikh dan masa hari ini var now = new Date().getTime(); // Cari jarak antara sekarang dan tarikh hitung mundur jarak var = countDownDate - sekarang; // Pengiraan masa untuk hari, jam, minit dan saat var hari = Math.floor(jarak / (1000 * 60 * 60 * 24)); var jam = Math.floor((jarak % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); var minit = Math.floor((jarak % (1000 * 60 * 60)) / (1000 * 60)); var saat = Math.floor((jarak % (1000 * 60)) / 1000); // Keluarkan hasil dalam elemen dengan id="sale-end" var html = hari + jam + " : " + minit + " : " + saat; thisis.html(html); // Jika kiraan mundur telah tamat, tulis beberapa teks jika (jarak < 0) { clearInterval(x); parent.css("paparan", "tiada"); } }, 1000); thisis.removeAttr("countdown"); }); }); </skrip> <!-- di sinilah kiraan detik dipaparkan --> <div class="product-countdown"> <span class="countdown-counter" kira detik="'. $html .'"></span> </div>; <?php } } }</pre> <p>Kod ini berfungsi pada halaman tunggal produk, tetapi saya memerlukannya pada halaman arkib dan gelung. Pada halaman arkib, semua produk mempunyai nilai kira detik yang sama. Saya rasa ini kerana saya tidak dapat menyediakan sifat untuk setiap item arkib. </p> <p>Siaran berkaitan yang mungkin membantu:</p> <ul> <li>Pautan 1</li> <li>Pautan 2</li> </ul></p>
P粉237647645
P粉237647645

membalas semua(1)
P粉449281068

Jika kod ini dijalankan pada satu halaman produk, maka anda boleh menggunakan cangkuk WooCommerce untuk menambah cangkuk tindakan dalam halaman arkib/gelung.

Contoh:-

add_action( 'woocommerce_after_shop_loop_item_title', 'zillion_countdown_show_in_loop', 20 );
function zillion_countdown_show_in_loop()
{
    do_shortcode('[woocommerce_timer_two]');
 
}

Diedit

Anda boleh menggantikan kelas ini dengan ID produk tambahan.

$('.countdown-counter<?php echo $product->get_id();?>')

Tukarkan juga bahagian html.

<div class="product-countdown">
    <span class="countdown-counter<?php echo $product->get_id(); ?>" countdown="'. $html .'"></span>
</div>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan