Kira detik produk Woocommerce pada halaman arkib/kitaran
P粉237647645
2023-08-31 21:06:59
<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>
Jika kod ini dijalankan pada satu halaman produk, maka anda boleh menggunakan cangkuk WooCommerce untuk menambah cangkuk tindakan dalam halaman arkib/gelung.
Contoh:-
Diedit
Anda boleh menggantikan kelas ini dengan ID produk tambahan.
Tukarkan juga bahagian html.