WooCommerce 产品查询

WooCommerce Query for products

我正在创建一个页面,当用户在购物车中添加产品时会显示该页面。一旦用户单击 "Add to Cart" 按钮,就会显示此模板。

目标是根据添加的项目显示其他客户购买的其他产品。

它的功能与亚马逊相同。

我知道如何在 WooCommerce 中进行查询,但不知道如何获取包含所选产品的其他订单中包含的其他产品。

谁能帮帮我?

目前没有提供此功能的插件。但以下 link 可能会帮助您实现您想要的目的。

https://github.com/bhaveshbhide/woocommerce-cross-selling/

这是我找到的唯一有用的 link 答案,可以回答您的问题。

如果这对你有用,请告诉我。

最后我创建了自己的模板来显示其他用户购买的与添加到购物车的商品相关的产品:

<?php 
/*
 Template Name: template_products_orders
 */

get_header('shop');

global $woocommerce, $wpdb;
$items = $woocommerce->cart->get_cart();
$ids = array();
foreach($items as $item => $values) { 
    $product = $values['data']->post; 
  $ids       = $product->ID; 
} 

$product_selected_id    = $ids;

// Query to get orders with the item selected....
$query           = array();
$query['fields'] = "SELECT DISTINCT ID FROM {$wpdb->posts} p";
$query['join']   = " INNER JOIN wp_woocommerce_order_items items ON items.order_id = p.ID";
$query['join']  .= " INNER JOIN wp_woocommerce_order_itemmeta itemmeta ON (itemmeta.order_item_id = items.order_item_id)";

$query['where']  = " WHERE p.post_type='shop_order' AND (p.post_status='wc-completed' OR p.post_status='wc-pending')
                                                     AND itemmeta.meta_key='_product_id' AND itemmeta.meta_value='$product_selected_id'";

$orders = $wpdb->get_col( implode( ' ', $query ) );

// get items in other orders....
$query           = array();
$query['fields'] = "SELECT itemmeta.meta_value FROM {$wpdb->posts} p";
$query['join']   = " INNER JOIN wp_woocommerce_order_items items ON items.order_id = p.ID";
$query['join']  .= " INNER JOIN wp_woocommerce_order_itemmeta itemmeta ON (itemmeta.order_item_id = items.order_item_id)";
$query['where']  = " WHERE p.ID in (".implode(', ', $orders).")
                                                     AND (itemmeta.meta_key='_product_id' AND itemmeta.meta_value<>'$product_selected_id')";

$products = $wpdb->get_col( implode( ' ', $query ) );

if ( count( $products ) > 0 ) {

?>

<div class="home-featured-products">
        <div class="wrap">
                <section id="text-12">
                        <h3 class="widgettitle">Those who bought this product also purchased</h4>
                        <div class="woocommerce columns-4">
                                <div class="yit-wcan-container">

                                        <?php

                                            $args = array(      'post_type'             => 'product',
                                                                        'post__in'              => $productos,
                                                                        'posts_per_page'    => 4
                                                                    );
                                            $wp_query = new WP_Query($args);

                                        ?>

                                    <ul class="products">

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

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

                                    <?php endwhile; 
                                    wp_reset_query(); 
                                    ?>

                                        </ul>

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

<?php } ?>