Hãy tìm kiếm trước khi đặt câu hỏi, bạn sẽ tiết kiệm rất nhiều thời gian

Nhưng đừng ngại hỏi và đóng góp câu trả lời

Link xem tất cả sản phẩm liên quan trong woocommerce

0 phiếu
level-2 đã hỏi 11 Tháng 1, 2016 bởi nguyenvanthinh06 Mới vào nghề (570 điểm)
Mọi người cho mình hỏi chút:

Hiện mình đang làm về woocommerce. Tại trang chi tiết sản phẩm - phần sản phẩm liên quan mình để 6 sản phẩm. Bây giờ mình muốn hiển thị nút xem tất cả các sản phẩm liên quan đó thì làm như thế nào ạ?

Mình cảm ơn rất nhiều
Hỏi bạn bè:

1 câu trả lời

0 phiếu
level-12 level-power đã trả lời 11 Tháng 1, 2016 bởi hà đoàn ngọc Chuyên gia (21,580 điểm)

WooCommerce không cung cấp shortcode nào như vậy. Bạn phải tự viết một cái thôi. Đây là một shortcode mà mình viết, bạn có thể tham khảo

<?php

add_shortcode('wc_all_related','parse_wc_all_related');
function parse_wc_all_related($atts, $content){
    if(isset($atts['id'])){
        $id = $atts['id'];
    } else {
        $id = isset($_GET['pid']) ? $_GET['pid'] : 0; // get product id from URL
    }
    
    if(!isset($id) || $id == 0) return;
    
    $_pf = new WC_Product_Factory();
    $product = $_pf->get_product($id);
    $posts_per_page = 10000; // -1 does work, so we need really big value here
    $related = $product->get_related($posts_per_page);
    
    if ( sizeof( $related ) == 0 ) return;

    $args = array(
        'post_type'            => 'product',
        'ignore_sticky_posts'  => 1,
        'no_found_rows'        => 1,
        'posts_per_page'       => $posts_per_page,
        'orderby'              => $orderby,
        'post__in'             => $related,
        'post__not_in'         => array( $product->id )
    );

    $products = new WP_Query( $args );

    $woocommerce_loop['columns'] = $columns;

    if ( $products->have_posts() ) : ?>

        <div class="related products">

            <h2><?php _e( 'Related Products', 'woocommerce' ); ?></h2>

            <?php woocommerce_product_loop_start(); ?>

                <?php while ( $products->have_posts() ) : $products->the_post(); ?>

                    <?php wc_get_template_part( 'content', 'product' ); ?>

                <?php endwhile; // end of the loop. ?>

            <?php woocommerce_product_loop_end(); ?>

        </div>

    <?php endif;

    wp_reset_postdata();

}

Sau đó bạn có thể đặt shortcode này ở 1 trang bất kì 

[wc_all_related id='1234']

Trong đó id là ID của product. Nếu không điền ID thì shortcode sẽ được tham số pid  trên URL.

Việc của bạn bây giờ là đặt link tới trang có chứa shortcode đó để hiển thị tất cả related products của ID mà bạn cần :)  (Đoạn này mình nghĩ đơn giản, bạn có thể làm được ;) )

Chuyên mục HOT

Câu hỏi từ mạng lưới

...