gpt4 book ai didi

javascript - 存档/循环页面上的 Woocommerce 产品倒计时

转载 作者:行者123 更新时间:2023-12-05 04:21:03 25 4
gpt4 key购买 nike

我使用元键 _sale_price_to 进行了倒计时以显示销售日期结束。请参阅下面的代码:

add_shortcode( 'woocommerce_timer_two', 'sales_timer_countdown_product_two', 20 );
function sales_timer_countdown_product_two($atts) {
extract( shortcode_atts( array(
'id' => get_the_ID(),
), $atts, 'woocommerce_timer_two' ) );

global $product;

// If the product object is not defined, we get it from the product ID
if ( ! is_a($product, 'WC_Product') && get_post_type($id) === 'product' ) {
$product = wc_get_product($id);
}

if ( is_a($product, 'WC_Product') ) {

$sale_date = get_post_meta( $product->get_id(), '_sale_price_dates_to', true );

if ( ! empty( $sale_date ) ) {

?>
<script>

jQuery(function($){
"use strict";

$('.countdown-counter').each( function() {
var to = $(this).attr("countdown");
var thisis = $(this);
var parent = $(this).parent();
var countDownDate = <?php echo $sale_date; ?> * 1000;

// Update the count down every 1 second
var x = setInterval(function() {
// Get today's date and time
var now = new Date().getTime();

// Find the distance between now and the count down date
var distance = countDownDate - now;

// Time calculations for days, hours, minutes and seconds
var days = Math.floor(distance / (1000 * 60 * 60 * 24));
var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
var seconds = Math.floor((distance % (1000 * 60)) / 1000);

// Output the result in an element with id="sale-end"
var html = days + hours + " : " + minutes + " : " + seconds;
thisis.html(html);

// If the count down is over, write some text
if (distance < 0) {
clearInterval(x);
parent.css("display", "none");
}
}, 1000);
thisis.removeAttr("countdown");
});
});
</script>
<!-- this is where the countdown is displayed -->
<div class="product-countdown">
<span class="countdown-counter" countdown="'. $html .'"></span>
</div>;
<?php
}
}
}

该代码适用于产品单页,但我需要它用于存档和循环页面。在存档页面上,所有产品都具有相同的倒计时值。我想这是因为我无法为每个存档项目提供属性。

可能有帮助的相关帖子:

最佳答案

如果此代码适用于产品单页,那么您可以使用 WooCommerce Hook 在存档/循环页面中添加操作 Hook 。

例子:-

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]');

}

已编辑

您可以用添加的产品 ID 替换类。

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

同时替换 html 部分。

<div class="product-countdown">
<span class="countdown-counter<?php echo $product->get_id(); ?>" countdown="'. $html .'"></span>
</div>

关于javascript - 存档/循环页面上的 Woocommerce 产品倒计时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74326220/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com