Compte à rebours du produit Woocommerce sur la page d'archive/cycle
<p>J'ai fait un compte à rebours en utilisant la clé méta <code>_sale_price_to</code>请参阅下面的代码:</p>
<pre class="brush:php;toolbar:false;">add_shortcode( 'woocommerce_timer_two', 'sales_timer_countdown_product_two', 20 );
fonction sales_timer_countdown_product_two ($atts) {
extraire( shortcode_atts( tableau(
'identifiant' => get_the_ID(),
), $atts, 'woocommerce_timer_two' ) );
produit $ global ;
// Si l'objet produit n'est pas défini, nous l'obtenons à partir de l'ID produit
if ( ! is_a($product, 'WC_Product') && get_post_type($id) === 'product' ) {
$produit = wc_get_product($id);
}
if ( is_a($produit, 'WC_Product') ) {
$sale_date = get_post_meta( $product->get_id(), '_sale_price_dates_to', true );
if ( ! vide( $sale_date ) ) {
?>
<script>
jQuery(fonction($){
"utiliser strict" ;
$('.countdown-counter').each( function() {
var to = $(this).attr("compte à rebours");
var ceci est = $(ce);
var parent = $(this).parent();
var countDownDate = <?php echo $sale_date; ?> *1000 ;
// Met à jour le compte à rebours toutes les 1 seconde
var x = setInterval(fonction() {
// Récupère la date et l'heure du jour
var maintenant = new Date().getTime();
// Trouver la distance entre maintenant et la date du compte à rebours
var distance = countDownDate - maintenant ;
// Calculs de temps pour les jours, heures, minutes et secondes
var jours = Math.floor(distance / (1000 * 60 * 60 * 24));
var heures = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
var secondes = Math.floor((distance % (1000 * 60)) / 1000);
// Affiche le résultat dans un élément avec id="sale-end"
var html = jours + heures + " : " + minutes + " : " + secondes ;
ceci est.html(html);
// Si le compte à rebours est terminé, écrivez un texte
si (distance < 0) {
clearInterval(x);
parent.css("affichage", "aucun");
}
}, 1000);
thisis.removeAttr("compte à rebours");
});
});
</script>
<!-- c'est ici que le compte à rebours est affiché -->
<div class="compte à rebours produit">
<span class="compte à rebours" compte à rebours = "'. $html .'"></span>
</div>;
<?php
}
}
}</pré>
<p>Le code fonctionne sur la page unique du produit, mais j'en ai besoin sur les pages d'archive et de boucle. Sur la page d'archives, tous les produits ont la même valeur de compte à rebours. Je suppose que c'est parce que je ne peux pas fournir de propriétés pour chaque élément d'archive. </p>
<p>Messages connexes pouvant être utiles :</p>
<ul>
<li>Lien 1</li>
<li>Lien 2</li>
</ul></p>