Rumah  >  Soal Jawab  >  teks badan

Kira detik produk Woocommerce pada halaman arkib/kitaran

<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粉237647645P粉237647645392 hari yang lalu363

membalas semua(1)saya akan balas

  • P粉449281068

    P粉4492810682023-09-01 16:58:52

    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>

    balas
    0
  • Batalbalas