WooCommerce: Hiển thị các sản phẩm đã mua gần đây trong tài khoản của tôi

WooCommerce: Hiển thị các sản phẩm đã mua gần đây trong tài khoản của tôi
WooCommerce: Hiển thị các sản phẩm đã mua gần đây trong tài khoản của tôi

Đoạn mã PHP: WooCommerce: Hiển thị các sản phẩm đã mua gần đây trong tài khoản của tôi

add_filter ( 'woocommerce_account_menu_items', 'Woovn_purchased_products_link', 40 );
add_action( 'init', 'Woovn_add_products_endpoint' );
add_action( 'woocommerce_account_san-pham-da-mua_endpoint', 'Woovn_populate_products_page' );
function Woovn_purchased_products_link( $menu_links ){
  
    // Vị  trí liên kết là 3
    return array_slice( $menu_links, 0, 2, true )
    + array( 'san-pham-da-mua' => 'Sản phẩm đã mua' )
    + array_slice( $menu_links, 2, NULL, true );
  
}
  
function Woovn_add_products_endpoint() {
    add_rewrite_endpoint( 'san-pham-da-mua', EP_PAGES );
}
  
function Woovn_populate_products_page() {
  
    global $wpdb;
  
    $purchased_products_ids = $wpdb->get_col( $wpdb->prepare(
        "
        SELECT      itemmeta.meta_value
        FROM        " . $wpdb->prefix . "woocommerce_order_itemmeta itemmeta
        INNER JOIN  " . $wpdb->prefix . "woocommerce_order_items items
                    ON itemmeta.order_item_id = items.order_item_id
        INNER JOIN  $wpdb->posts orders
                    ON orders.ID = items.order_id
        INNER JOIN  $wpdb->postmeta ordermeta
                    ON orders.ID = ordermeta.post_id
        WHERE       itemmeta.meta_key = '_product_id'
                    AND ordermeta.meta_key = '_customer_user'
                    AND ordermeta.meta_value = %s
                    AND orders.post_status = 'wc-completed'
        ORDER BY    orders.post_date DESC
        ",
        get_current_user_id()
    ) );
    $purchased_products_ids = array_unique( $purchased_products_ids );
    if( !empty( $purchased_products_ids ) ) :
  
        $purchased_products = new WP_Query( array(
            'post_type' => 'product',
            'post_status' => 'publish',
            'post__in' => $purchased_products_ids,
            'orderby' => 'post__in'
        ) );
 echo 'Các sản phẩn bạn đã mua';
        echo '<div class="woocommerce columns-3">';
  
        woocommerce_product_loop_start();
  
        while ( $purchased_products->have_posts() ) : $purchased_products->the_post();
  
            wc_get_template_part( 'content', 'product' );
  
        endwhile;
  
        woocommerce_product_loop_end();
  
        woocommerce_reset_loop();
        wp_reset_postdata();
  
        echo '</div>';
     
    else:
        echo 'Rất tiếc! Bạn chưa mua sản phẩm nào của chúng tôi.';
         
    endif;
  
}

Lưu ý

Sau khi thêm đoạn mã PHP: WooCommerce: Hiển thị các sản phẩm đã mua gần đây trong tài khoản của tôi. Bạn cần phải truy cập vào Cài đặt> Đường đẫn tĩnh và chọn Lưu thay đổi. Nếu không bạn sẽ nhận được lỗi 404 khi truy cập trang này.

Làm sao để thêm đoạn mã này?

Bạn có thể đặt các đoạn mã PHP ở cuối tệp tin functions.php trong chủ đề con hoặc chủ đề bạn đang sử dụng (trước “?>” Nếu bạn có nó). Hãy chắc chắn rằng bạn biết những gì bạn đang làm khi chỉnh sửa các tệp tin quan trọng như vậy – nếu bạn cần thêm hướng dẫn, vui lòng xem bài viết Cách thêm đoạn mã tùy biến vào WooCommerce.

0 0 vote
Article Rating

BẢO MẬT WORDPRESS

Bình luận

2 bình luận về "WooCommerce: Hiển thị các sản phẩm đã mua gần đây trong tài khoản của tôi"

guest
2 Comments
Mới nhất
Cũ nhất
Inline Feedbacks
View all comments
khanh<span class="bl-woovn">2 bình luận</span>
khanh2 bình luận
1 năm trước

đúng cái em đang cần, cảm ơn bạn rất nhiều