Produits Woocommerce classés par ventes / Plugin
Intermédiaire

Produits Woocommerce : Dans ce tutoriel, nous allons créer un fonction, qui par exemple dans un plugin WordPress, va afficher les produits Woocommerce classés meilleurs vendeurs. Dans cette requête, nous allons mettre des arguments requêtant le post type de Woocommerce « product » et y effectuer une meta query de la key « total_sales »

On y incrémente $i, qui va permettre dans la boucle, d’afficher le numéro de classement de chaque résultat à compter de 1. On n’oublie pas d’y ajouter la variable Woocommerce global $product dans la boucle, qui va donner les résultat produits.

On imagine bien sur que nous souhaitons afficher les produits Woocommerce classés par ventes en donnant la condition meta query que la key « total_sales » soit supérieur à 0.

Nous avons aussi poser une condition qui dit que si if ($units_sold > 1), alors on met le mot au pluriel, sinon c’est singulier.

Voici donc le code a inserer dans votre Plugin WordPress.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
$i = 1;
$args = array(
'post_type' => 'product',
'meta_key' => 'total_sales',
'orderby' => 'meta_value_num',
'posts_per_page' => 25,
'meta_query' => array(
  array(
    'key' => 'total_sales',
    'value' => 0,
    'compare' => '>'
    )
  )
);
 
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post(); 
global $product; ?>
<a style="text-decoration:none" id="id-<?php the_id(); ?>" target="_blank" href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
<h3><?php echo $i; ?><?php _e('&nbsp;-&nbsp;'); ?><?php the_title(); ?><?php _e('&nbsp;-&nbsp;'); ?>
<?php $units_sold = get_post_meta( $product->id, 'total_sales', true ); 
if ($units_sold > 1) {
echo '' . sprintf( __( '(%s Units Sold)', 'woocommerce-classement' ), $units_sold ) . ''; 
}
else { 
echo '' . sprintf( __( '(%s Unit Sold)', 'woocommerce-classement' ), $units_sold ) . '';
}
?>
</h3>
</a>
 
<?php $i++; endwhile; ?>
<?php wp_reset_query(); ?>

Vous pouvez donc changer dans cette requête votre html, et le styliser en CSS.
Ce CSS est vraiment basic en lien.

Leave a Reply

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>