当前位置: 首页 > 知识库问答 >
问题:

WooCommerce按产品元查询订单项目

龙俭
2023-03-14

这有点奇怪,但是我很难找到如何做到这一点的答案:

我试图创建一个自定义查询,获取WooCommerce订单中包含的所有产品(及其元)。

例如,假设我有这些订单悬而未决:

  • 产品1
  • 产品2
  • 产品3
  • 产品4
  • 产品5
  • 产品6

我的目标是根据这些已订购的产品创建一个列表,该列表由产品的元数据进行订购。大概是这样的:

  • 产品1
  • 产品3
  • 产品4

但同样,这些只是订单中的产品(包括其数量)。

我面临的问题是,数据库中存储的“订单项”和“订单项元”非常有限,不能显示与产品相关的所有信息。换句话说,我没有找到一种方法来获取创建循环以创建列表所需的信息。

我的数据库技能有限,所以想法将不胜感激!

共有1个答案

令狐晟
2023-03-14

以下是一些可能会帮助您的相关代码:

add_filter( 'woocommerce_shop_order_search_fields', 'woocommerce_shop_order_search_product_cat' );

function woocommerce_shop_order_search_product_cat( $search_fields ) {

$args = array(
    'post_type' => 'shop_order'
    );

$orders = new WP_Query($args);

if($orders->have_posts()) {
        while($orders->have_posts()) {
        $post = $orders->the_post();
        $order_id = get_the_ID();
        $order = new WC_Order($order_id);
        $items = $order->get_items();
        foreach($items as $item) {
            $product_cats = wp_get_post_terms( $item['product_id'], 'product_cat' );
            foreach($product_cats as $product_cat) {
                add_post_meta($order_id, "_product_cat", $product_cat->name);
            }
        }
    }
};

$search_fields[] = '_product_cat';

return $search_fields;

}
 类似资料:
  • 我第一次使用woocommerce(wordpress)。 我试图在树形中显示所有产品类别及其各自的子类别,但我似乎不能像在后端使用拖放方式订购它们那样订购它们。 WP get_terms()只允许按id、名称、计数、slug和none排序。 我使用的代码是:

  • 当从管理员向订单添加产品时,我尝试将自定义产品元添加到订单项元。这是我的代码,它在后端什么都不做。。。

  • 我使用Woocommerce插件在wordpress中开发了购物车。我需要按产品价格在购物车订单中显示产品,请帮助我做到这一点 谢啦

  • 我正在为我的Wordpress数据库创建一些SQL视图,以便更轻松地查看通过WooCommerce插件生成的在线订单。我熟悉WooCommerce的结构和数据的存储位置,但作为一名SQL新手,我在最后一个障碍上遇到了困难。 我已经能够使用此引用创建所有订单详细信息的第一个视图: http://codecharismatic.com/sql-script-to-get-all-woocommerce

  • 我使用以下代码在WooCommerce管理订单详细信息页面的订单项表中显示自定义产品元: 它显示“前缀tempiconsegna”,这是自定义图元,如: 可在3天内提供 我的问题是,如果我改变了产品的可用性,它也改变了以前的订单。 当我更新产品的可用性时,如何在不改变的情况下显示订单时的值?

  • 我最初的目标是能够在侧边栏中按标题排序显示Woocommerce产品。目前,此小部件中唯一的排序选项是日期、价格、随机和销售。 我能够在wc类小部件产品的两个部分中添加标题排序选项。php: 在这里: 此自定义工作正常,但: 我的问题:我应该在哪里保存这个定制的“”文件,以防止它在下一次更新时被覆盖<或者。。。有没有更优雅的方法来实现这一点?非常感谢。