Hôm nay mình sẽ hướng dẫn cho các bạn 1 đoạn query nhỏ nhỏ để có thể hiển thị được các sản phẩm có cùng mức giá với sản phẩm hiện tại. Demo sẽ như thế này nhé.
Mọi người đừng quên donate cho mình nếu bài viết này hữu ích cho bạn nhé
Để có thể lấy được sản phẩm cùng mức giá, đầu tiên chúng ta sẽ lấy ra giá của sản phẩm và tăng cái khoảng hiển thị mức giá lên, ở đây mình sẽ cho lấy trong khoảng 20% nhé, tức là vd sp giá 100 thì mình sẽ lấy ra các sản phẩm có giá nằm trong khoảng 80 – 120.
$p_custom = get_post_meta( get_the_ID(), '_price', true );
$p_custom_mx = $p_custom*(1.2);
$p_custom_mn = $p_custom*(0.8);
Kế tiếp thì chúng ta sẽ biến query theo meta key là giá nhé.
$query = array(
'post_status' => 'publish',
'post_type' => 'product',
'posts_per_page' => 4,
'post__not_in' => array($id),
'meta_query' => array(
array(
'key' => '_price',
'value' => array($p_custom_mn, $p_custom_mx),
'compare' => 'BETWEEN',
'type' => 'NUMERIC'
)
)
);
$pttuanquery = new WP_Query($query);
Các bạn lưu ý ở phần posts_per_page nếu muốn hiển thị nhiều sản phẩm hơn nữa thì hãy sửa thành 5 6 7 8 gì đó nhé.
Như vậy là xong, kế đến chúng ta sẽ chạy vòng lặp và hiển thị ra các sản phẩm có mức giá trong khoảng đó.
if ( $pttuanquery->have_posts() ) :
echo do_shortcode('[title text="Sản phẩm cùng mức giá"]');
echo '<div class="row large-columns-4 medium-columns-3 small-columns-2 row-small">';
while ( $pttuanquery->have_posts() ) : $pttuanquery->the_post();
wc_get_template_part( 'content', 'product' );
endwhile;
wp_reset_postdata();
echo '</div>';
endif;
Như vậy là xong. Đối với các bạn không nắm quá nhiều về query thì copy toàn bộ đoạn code bên dưới này dán vào functions.php nhé.
function add_product_same_price_pttuan(){
$p_custom = get_post_meta( get_the_ID(), '_price', true );
$p_custom_mx = $p_custom*(1.2);
$p_custom_mn = $p_custom*(0.8);
$query = array(
'post_status' => 'publish',
'post_type' => 'product',
'posts_per_page' => 4,
'post__not_in' => array(get_the_ID()),
'meta_query' => array(
array(
'key' => '_price',
'value' => array($p_custom_mn, $p_custom_mx),
'compare' => 'BETWEEN',
'type' => 'NUMERIC'
)
)
);
$pttuanquery = new WP_Query($query);
if ( $pttuanquery->have_posts() ) :
echo do_shortcode('[title text="Sản phẩm cùng mức giá"]');
echo '<div class="row large-columns-4 medium-columns-3 small-columns-2 row-small">';
while ( $pttuanquery->have_posts() ) : $pttuanquery->the_post();
wc_get_template_part( 'content', 'product' );
endwhile;
wp_reset_postdata();
echo '</div>';
endif;
}
add_action('woocommerce_after_single_product_summary','add_product_same_price_pttuan',1);
Ở đây mình dùng hook
Note: Các bạn muốn thay đổi khoảng giá hiển thị thì có thể sửa ở đây nhé
Ở đây mình để là 20% công thức là 1+0,2 và 1- 0,2
Hi vọng bài viết này sẽ giúp cho các bạn giải quyết được vấn đề của mình.
Chúc các bạn thành công, có bất kì câu hỏi nào cứ hỏi mình nhé.