Wordpress product gird loop with sale price, regular price, discount label
Tue Oct 18 2022 13:31:42 GMT+0000 (Coordinated Universal Time)
Saved by @hamzahanif192
function sale_badge_percentage() {
global $product;
if ( ! $product->is_on_sale() ) return;
if ( $product->is_type( 'simple' ) ) {
$max_percentage = ( ( $product->get_regular_price() - $product->get_sale_price() ) / $product->get_regular_price() ) * 100;
} elseif ( $product->is_type( 'variable' ) ) {
$max_percentage = 0;
foreach ( $product->get_children() as $child_id ) {
$variation = wc_get_product( $child_id );
$price = $variation->get_regular_price();
$sale = $variation->get_sale_price();
if ( $price != 0 && ! empty( $sale ) ) $percentage = ( $price - $sale ) / $price * 100;
if ( $percentage > $max_percentage ) {
$max_percentage = $percentage;
}
}
}
if ( $max_percentage > 0 ) echo "<span class='onsale'>-" . round($max_percentage) . "%</span>"; // If you would like to show -40% off then add text after % sign
}
add_action( 'wp_enqueue_scripts', 'addcaraousel' );
function slick_cdn_enqueue_scripts()
{
wp_enqueue_style('slick-style', '//cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css');
wp_enqueue_script('slick-script', '//cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js', array(), null, true);
wp_enqueue_script( 'myowl', get_template_directory_uri() . '/assets/js/myowl.js', array( 'jquery' ), '', true );
}
add_action('wp_enqueue_scripts', 'slick_cdn_enqueue_scripts');
// Star here create product carousel
function latestproduct_loop()
{
$arg = array(
'post_type' => 'product',
'posts_per_page' => 7,
);
$productPost = new WP_Query($arg);
?>
<div id="latestProduct">
<?php if ($productPost->have_posts()) : ?>
<?php while ($productPost->have_posts()) : ?>
<?php $productPost->the_post();
$product_id = get_the_ID();
$content= get_the_excerpt();
// = get_post_meta( get_the_ID(), '_regular_price', true);
$productPost_id = wc_get_product( $product_id );
$price = $productPost_id->get_regular_price();
$price_sale = $productPost_id->get_sale_price();
$price_get = $productPost_id->get_price();
?>
<div class="innerCard">
<div class="imageArea">
<?php $pro = "product_id=".$product_id; ?>
<div><?php echo do_shortcode('[yith_wcwl_add_to_wishlist {$pro} ]'); ?></div>
<?php the_post_thumbnail( 'full', array( 'class' => 'latestProduct-img' ) ); ?>
<div class="salebadge" >Sale <?php echo sale_badge_percentage(); ?></div>
</div>
<div class="cardDetails">
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<p><?php echo $content; ?></p>
<?php
$product = wc_get_product( $product_id );
echo '<span class="product-rating__stars">'.wc_get_rating_html( $product->get_average_rating() ).'</span>';
?>
<?php
if ($price_sale){
echo '<div class="withsalePrice">';
echo '<h4>$'.$price .'</h4>';
echo '<h3>$'.$price_sale .'</h3>';
echo '</div>';
}else{
echo '<div class="onlyPrice">';
echo '<h3>$'.$price_get .'</h3>';
echo '</div>';
}
?>
</div>
</div>
<?php endwhile; ?>
<?php endif; ?>
</div>
<?php
wp_reset_postdata();
}
add_shortcode('latestproducts', 'latestproduct_loop');



Comments