Nội dung

Code phân trang sản phẩm woocommerce

2 năm trước, Woocommerce, 1200 Lượt xem

Toàn bộ code phân trang sản phẩm woocommerce có sử dụng bootstrap

https://getbootstrap.com/

Có dùng thêm Plugin wp_pagenavi để phân trang.

https://vi.wordpress.org/plugins/wp-pagenavi/

<?php
/**
 * Template Name: Products Shop
 */
get_header();


$show_default_orderby    = 'menu_order' === apply_filters( 'woocommerce_default_catalog_orderby', get_option( 'woocommerce_default_catalog_orderby' ) );
$catalog_orderby_options = apply_filters( 'woocommerce_catalog_orderby', array(
	'menu_order' => __( 'Default sorting', 'woocommerce' ),
	'popularity' => __( 'Sort by popularity', 'woocommerce' ),
	'rating'     => __( 'Sort by average rating', 'woocommerce' ),
	'date'       => __( 'Sort by newness', 'woocommerce' ),
	'price'      => __( 'Sort by price: low to high', 'woocommerce' ),
	'price-desc' => __( 'Sort by price: high to low', 'woocommerce' ),
) );

$default_orderby = wc_get_loop_prop( 'is_search' ) ? 'relevance' : apply_filters( 'woocommerce_default_catalog_orderby', get_option( 'woocommerce_default_catalog_orderby', '' ) );
$orderby         = isset( $_GET['orderby'] ) ? wc_clean( wp_unslash( $_GET['orderby'] ) ) : $default_orderby; // WPCS: sanitization ok, input var ok, CSRF ok.

if ( wc_get_loop_prop( 'is_search' ) ) {
	$catalog_orderby_options = array_merge( array( 'relevance' => __( 'Relevance', 'woocommerce' ) ), $catalog_orderby_options );

	unset( $catalog_orderby_options['menu_order'] );
}

if ( ! $show_default_orderby ) {
	unset( $catalog_orderby_options['menu_order'] );
}

if ( 'no' === get_option( 'woocommerce_enable_review_rating' ) ) {
	unset( $catalog_orderby_options['rating'] );
}

if ( ! array_key_exists( $orderby, $catalog_orderby_options ) ) {
	$orderby = current( array_keys( $catalog_orderby_options ) );
}
?>
<div class="container" style="margin-bottom: 16px;">
	<?php
	wc_get_template( 'loop/orderby.php', array(
		'catalog_orderby_options' => $catalog_orderby_options,
		'orderby'                 => $orderby,
		'show_default_orderby'    => $show_default_orderby,
	) );
	?>
</div>
<?php

$order_by = ( ! empty( $_GET['orderby'] ) ) ? $_GET['orderby'] : '';

if ( 'price' === $order_by ) {
    $meta_key = '_regular_price';
    $order = 'ASC';
}
if ( 'price-desc' === $order_by ) {
	$meta_key = '_regular_price';
	$order = 'DESC';
}
if ( 'rating' === $order_by ) {
	$meta_key = '_wc_average_rating';
	$order = 'DESC';
}
if ( 'popularity' === $order_by ) {
	$meta_key = '_wc_review_count';
	$order = 'DESC';
}





$args = array(
	'post_type' => 'product',
	'meta_key' => $meta_key,
	'orderby' => 'meta_value',
	'order' => $order,
	'posts_per_page' => 3,
	'paged'=> get_query_var('paged'),
//	'tax_query' => array(
//		array(
//			'taxonomy' => 'product_cat',
//			'field'    => 'slug',
//			'terms'    => 'Hostel',
//		),
//	)
);

$result = new WP_Query( $args );

?>
<div class="container">
	<div class="row">
		<?php
		if ( $result->have_posts() ) {
			while ( $result->have_posts() ) : $result->the_post();
			$img = ( get_the_post_thumbnail() ) ? get_the_post_thumbnail() : $default_img;
			$id = get_the_ID();
			?>
			<div class="col-md-4">
				<div><a href="<?php the_permalink(); ?>"><?php echo $img; ?></a></div>
				<h4 class="text-center"><a href="<?php the_permalink(); ?>"><?php the_title() ?></a></h4>
				<div><?php echo do_shortcode( '[add_to_cart id="' . $id . '"]' )?></div>
			</div>
			
		<?php
			endwhile;
		}
		?>
		<?php if(function_exists('wp_pagenavi')) { wp_pagenavi(array('query'=> $result));} ?>
		<?php wp_reset_postdata();?>
	</div>
</div>




<?php get_footer(); ?>

Code hiển thị giá sales cho lọc danh mục

<?php
$args = array(
    'post_type' => 'product',
    'meta_key' => $meta_key,
    'orderby' => 'meta_value',
    'order' => $order,
    'posts_per_page' => 6,
    'paged' => get_query_var('paged'),
    'tax_query' => array(
        array(
            'taxonomy' => 'product_cat',
            'field' => 'slug',
            'terms' => 'thep-tam',
        ),
    )
);

$result = new WP_Query($args);
?>


<div class="row">
    <?php
    if ($result->have_posts()) {
        while ($result->have_posts()) : $result->the_post();
            $img = (get_the_post_thumbnail()) ? get_the_post_thumbnail() : $default_img;
            $id = get_the_ID();

    ?>

            <div class="col-sm-3 heading-home wow fadeInUp">
                <div class="hinh-sales">
                    <?php
                    global $post, $product;
                    ?>
                    <?php if ($product->is_on_sale()) : ?>
                        <div class="sales-ok">
                            <?php echo apply_filters('woocommerce_sale_flash', '<span class="onsale">' . __('Sale!', 'woocommerce') . '</span>', $post, $product); ?>
                        </div>
                    <?php endif; ?>
                    <a href="<?php the_permalink(); ?>"><?php echo $img; ?></a>
                </div>
                <div class="box-padding">
                    <h4 class="title-cm-home"><a href="<?php the_permalink(); ?>"><?php the_title() ?></a></h4>
                    <div><?php echo do_shortcode('[add_to_cart id="' . $id . '"]') ?></div>
                </div>
            </div>

    <?php
        endwhile;
    }
    ?>
    <?php if (function_exists('wp_pagenavi')) {
        wp_pagenavi(array('query' => $result));
    } ?>
    <?php wp_reset_postdata(); ?>
</div>

Custom taxonomy woo có hiển thị sales

<?php get_header(); ?>


<?php

$args = array(
    'post_type' => 'product',
    'product_cat' => get_query_var('product_cat'),
    'meta_key' => $meta_key,
    'orderby' => 'meta_value',
    'order' => $order,
    'posts_per_page' => 12,
    'paged' => get_query_var('paged'),
    //	'tax_query' => array(
    //		array(
    //			'taxonomy' => 'product_cat',
    //			'field'    => 'slug',
    //			'terms'    => 'Hostel',
    //		),
    //	)
);

$result = new WP_Query($args);

?>


<div class="container">
    <div class="row">
        <div class="col-sm-3 wow fadeInUp">
            <?php get_template_part('template-parts/left'); ?>
        </div>
        <div class="col-sm-9 wow fadeInUp">
            <div class="space"></div>
            <div class="uk-panel-title">
                <h3 class="heading">
                    <a href="<?php echo get_home_url(); ?>/danh-muc/<?php $taxonomy = get_queried_object();
                                                                    echo  $taxonomy->slug; ?>" class="fc-text-uppercase fc-transition">
                        <?php
                        $taxonomy = get_queried_object();
                        echo  $taxonomy->name;
                        ?>
                    </a></h3>
                <a href="<?php echo get_home_url(); ?>/danh-muc/<?php $taxonomy = get_queried_object();
                                                                echo  $taxonomy->slug; ?>" title="xem tất cả">Xem tất cả»</a>
            </div>

            <div class="row">
                <?php
                if ($result->have_posts()) {
                    while ($result->have_posts()) : $result->the_post();
                        $img = (get_the_post_thumbnail()) ? get_the_post_thumbnail() : $default_img;
                        $id = get_the_ID();
                ?>
                        <div class="col-sm-3 heading-home wow fadeInUp">
                            <div class="hinh-sales">
                                <?php
                                global $post, $product;
                                ?>
                                <?php if ($product->is_on_sale()) : ?>
                                    <div class="sales-ok1">
                                        <?php echo apply_filters('woocommerce_sale_flash', '<span class="onsale">' . __('Sale!', 'woocommerce') . '</span>', $post, $product); ?>
                                    </div>
                                <?php endif; ?>
                                <a href="<?php the_permalink(); ?>"><?php echo $img; ?></a>
                            </div>
                            <div class="box-padding">
                                <h4 class="title-cm-home"><a href="<?php the_permalink(); ?>"><?php the_title() ?></a></h4>
                                <div><?php echo do_shortcode('[add_to_cart id="' . $id . '"]') ?></div>
                            </div>
                        </div>

                <?php
                    endwhile;
                } else {
                    echo '<h2>Sản phẩm danh mục này chưa có xin vui lòng liên hệ admin up thêm sản phẩm mới</h2>';
                }
                ?>
                <?php if (function_exists('wp_pagenavi')) {
                    wp_pagenavi(array('query' => $result));
                } ?>
                <?php wp_reset_postdata(); ?>
            </div>


        </div>
    </div>
</div>


<?php get_footer(); ?>

 

Bài viết mới cập nhập

  • Cách xóa phông ảnh online thành công 100%

    Cách xóa phông ảnh online thành công 100%

    1 tuần trước, 649 Lượt xem

    Với những website xóa phông online, nền ảnh trực tuyến, miễn phí mà NETWEB.VN sẽ giới thiệu dưới đây, bạn sẽ không cần dùng tới Photoshop mà…

Bình luận trên facebook netweb.vn

Đam mê thiết kế web, kinh nghiệm 9 năm trong nghề thiết kế website, đang thiết kế web dạo tại netweb.vn, Callme: 08.9898.2526 (Mr Hải)