보관/주기 페이지의 WooCommerce 제품 카운트다운
P粉237647645
2023-08-31 21:06:59
<p>메타 키 <code>_sale_price_to</code>를 사용하여 판매 종료 날짜를 표시하는 카운트다운을 만들었습니다.请参阅下side代码:</p>
<pre class="brush:php;toolbar:false;">add_shortcode( 'woocommerce_timer_two', 'sales_timer_countdown_product_two', 20 );
함수 sales_timer_countdown_product_two($atts) {
추출( shortcode_atts( 배열(
'ID' => get_the_ID(),
), $atts, 'woocommerce_timer_two' ) );
글로벌 $제품;
// 제품 개체가 정의되지 않은 경우 제품 ID에서 가져옵니다.
if ( ! is_a($product, 'WC_Product') && get_post_type($id) === '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 ( ! 비어 있음( $sale_date ) ) {
?>
<스크립트>
jQuery(함수($){
"엄격하게 사용하세요";;
$('.countdown-counter').each( function() {
var to = $(this).attr("countdown");
var thisis = $(this);
var parent = $(this).parent();
var countDownDate = <?php echo $sale_date; ?> * 1000;
// 1초마다 카운트다운을 업데이트합니다.
var x = setInterval(함수() {
// 오늘 날짜와 시간을 가져옵니다.
var now = new Date().getTime();
// 현재와 카운트다운 날짜 사이의 거리를 구합니다.
var distance = countDownDate - 지금;
// 일, 시, 분, 초에 대한 시간 계산
var days = Math.floor(거리 / (1000 * 60 * 60 * 24));
var hour = Math.floor((거리 % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
var 분 = Math.floor((거리 % (1000 * 60 * 60)) / (1000 * 60));
var 초 = Math.floor((거리 % (1000 * 60)) / 1000);
// id="sale-end"인 요소에 결과를 출력합니다.
var html = 일 + 시간 + " : " + 분 + " : " + 초;
thisis.html(html);
// 카운트다운이 끝나면 텍스트를 작성합니다.
if (거리 < 0) {
클리어간격(x);
parent.css("표시", "없음");
}
}, 1000);
thisis.removeAttr("카운트다운");
});
});
</스크립트>
<!-- 카운트다운이 표시되는 곳입니다 -->
<div class="제품 카운트다운">
<span class="countdown-counter" 카운트다운=''. $html .'"></span>
</div>;
링크 1
링크 2
이 코드가 제품 단일 페이지에서 실행되는 경우 WooCommerce 후크를 사용하여 아카이브/루프 페이지에 작업 후크를 추가할 수 있습니다.
예:-
으아악수정됨
이 클래스를 추가된 제품 ID로 대체할 수 있습니다.
으아악html 부분도 교체하세요.
으아악