WooCommerce 仅显示已购买的商品

2024-04-13

所以我在网上查了很多资料,但找不到解决方案......

基本上我想做的是显示用户在商店中购买的所有产品的产品循环,就像显示普通产品一样。

如果你还是不明白,也许这会帮助你明白我的意思。

这是 WooCommerce 文档中的示例产品循环...

<ul class="products">
    <?php
        $args = array(
            'post_type' => 'product',
            'posts_per_page' => 12
            );
        $loop = new WP_Query( $args );
        if ( $loop->have_posts() ) {
            while ( $loop->have_posts() ) : $loop->the_post();
                woocommerce_get_template_part( 'content', 'product' );
            endwhile;
        } else {
            echo __( 'No products found' );
        }
        wp_reset_postdata();
    ?>
</ul><!--/.products-->

那么,如果我想显示基本上相同的产品循环,但是将其过滤掉,以便它只显示用户已经购买的产品,该怎么办呢?

老实说,我不知道该去哪里,而且我确信过去还有其他人对此进行过研究,所以也许这会帮助很多人!

提前致谢!


您至少可以采取两种不同的方法来解决此问题。

第一个是从每个帖子中获取产品,然后从每个产品中获取产品 ID,然后使用 if 语句使用 wc_customer_bought_product 或 woocommerce_customer_bought_product 进行过滤(如果您使用的是旧版 WooCommerece)。

The second is to pass the correct arguments to filter the WP_Query to only include orders purchased by a user and then filter products only in those orders. More information on the second approach is available at Get All User Orders and Products bought by user in WooCommerce based shop (archive.org) https://web.archive.org/web/20150209150105/http://fusedpress.com/blog/get-all-user-orders-and-products-bought-by-user-in-woocommerce/.

第一种方法的一个例子是这样的

<!-- code started -->

<ul class="products">
    <?php
        $user_id = get_current_user_id();
        $current_user= wp_get_current_user();
        $customer_email = $current_user->email;
        $args = array(
            'post_type' => 'product',
            'posts_per_page' => 12
            );
        $loop = new WP_Query( $args );
        if ( $loop->have_posts() ) {
            while ( $loop->have_posts() ) : $loop->the_post(); $_product = get_product( $loop->post->ID );
            if (wc_customer_bought_product($customer_email, $user_id,$_product->id)){
                woocommerce_get_template_part( 'content', 'product' );
            }
            endwhile;
        } else {
            echo __( 'No products found' );
        }
        wp_reset_postdata();
    ?>
</ul><!--/.products-->
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WooCommerce 仅显示已购买的商品 的相关文章

随机推荐

  • 快速获取剪贴板更改通知

    swift 中有剪贴板更改事件吗 当 iOS 应用程序中剪贴板发生更改时 我如何收到通知 谢谢 这里有一个可以复制的迅捷5 0 version NotificationCenter default addObserver self sele
  • 使用反应登录表单在 Spring Boot 中对用户进行身份验证

    我已将 spring security 添加到我的项目中 并且正在尝试进行用户身份验证 我正在使用 CrudRepository 来查找用户并验证详细信息是否正确 我已经能够使用开箱即用的弹簧登录页面让它工作 我的问题是我想通过我的反应登录
  • 如何实现带有可折叠搜索栏的 SliverAppBar

    这就是我想做的 https i stack imgur com f9SYe jpg 这是 iOS 上非常常见的 Widget 这是我的代码 return Scaffold backgroundColor Colors white body
  • 将 CMake 与具有钻石依赖项的库一起使用

    假设我有四个独立的项目 三是图书馆 Common Foo and Bar 其中之一是可执行文件 App Both Foo and Bar依赖于公共库 并且App依赖于取决于Foo and Bar 此外 其中一些项目有一些脚本需要运行来生成一
  • Linux - 嵌套中断[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 Linux 是否使用嵌套中断 我的意思是 例如 当从任何设备提供中断服务时 可以允许在此例程中进一步中断吗 或者它涉及上半部和下半部 ED
  • '\b' 不会在 PyCharm 控制台中打印退格键

    我正在尝试更新 PyCharm 控制台中的最后一行 说吧 我打印a然后我想把它改成c 但是 我遇到了以下问题 当我跑步时 print a bc 它打印 a c 而所需的输出 这也是我在 Windows 控制台中看到的 是 c 有没有办法将光
  • 使用 istream::seekg 太贵了吗?

    在c 中 使用istream seekg操作的成本有多高 编辑 我可以通过查找文件和读取字节来逃脱多少惩罚 频率与偏移量的关系如何 我正在解析一个大文件 4GB 我想知道是否有必要尝试合并我的一些搜索调用 我认为文件位置差异的大小起着一定的
  • Oracle 中的子字符串索引

    我刚刚发现我们现在的数据库设计效率有点低SELECT我们执行最多的查询 IBAN 是根据国家特定格式的位置坐标 因为我们主要是表演JOINs and WHERE在某些表中 IBAN 列的精确子字符串上 我的问题是关于为列的子字符串分配索引
  • 如何关闭 Netty 库调试输出?

    我正在使用 Netty 通过 Ning async HTTPlibrary http www ning com code 2010 03 introducing nings asynchronous http client library
  • 使用自定义架构重定向到外部 URL

    我有 Asp net MVC4 项目 如果调用指定的操作 我想重定向到外部 url URL 应该有自定义架构 例如没有http but myschema 我知道要重定向到 google com 我可以使用return Redirect ht
  • CMake 目标取决于已安装的目标

    我已经搜索过这个 但也许我使用了错误的措辞 我希望在安装另一个目标后构建一个 CMake 目标 举一个具体的例子 我希望我的测试包含库版本并与其链接 其目录结构类似于实际安装 目录结构 project lib first library h
  • 在 Python 3.6+ 中按值对字典进行排序

    我一直在寻找一种用Python中的值对字典进行排序的方法 经过几次尝试 结果如下 a
  • 与 Derby 有其他连接(只读)

    我想要做什么 我的应用程序与 Derby DB 具有完整连接 并且我想并行地浏览数据库 只读 使用不同的工具 我不确定 Derby 在内部实际上是如何工作的 但我知道我只能有 1 个到 Derby DB 的活动连接 但是 由于数据库仅由硬盘
  • 仅包含 1 个数字的示例[重复]

    这个问题在这里已经有答案了 我正在尝试创建一些模拟数据 为了创建聚类数据 我已指定处方者是否在一个或多个本地卫生区域 LHA 工作 现在 我正在尝试根据患者的 LHA 为患者指定一名处方医生 其代码位于以下代码块中 for i in seq
  • 从 XML 创建实体

    我有以下 XML 结构
  • Django 中的脏字段

    在我的应用程序中 我需要在保存模型时保存更改的值 旧的和新的 有示例或工作代码吗 我需要这个来预先审核内容 例如 如果用户更改了模型中的某些内容 那么管理员可以在单独的表中查看所有更改 然后决定是否应用它们 我发现阿明的想法非常有用 这是我
  • Underscore.js - 在嵌套 Json 中进行过滤

    我想获取所有值 其中category id 1 所以我应该得到 2 个结果 我的 JSON 看起来像这样 var test id 1 name name1 value value1 category id 1 name category1
  • 不同用户类型的 Firebase Auth

    我正在开发一个有两个应用程序的项目 一个用于 请求者 用户 一个用于 响应者 用户 并且我目前正在使用 Firebase 进行身份验证 用户使用电子邮件 密码组合登录 这是问题的根源 问题在于用户冲突 因为身份验证模块连接到 Firebas
  • 如何在 TinyMCE 4 中创建一个增加字体大小的按钮

    有没有人设法在 TinyMCE 4 中创建一个按钮 该按钮会将所选文本的字体大小增加 例如 1px 我遇到的问题是获取选定的文本 无论它是否已经在跨度中 我愿意修改TinyMCE源代码 感谢您的任何想法 你不需要修改源代码 你可以创建一个插
  • WooCommerce 仅显示已购买的商品

    所以我在网上查了很多资料 但找不到解决方案 基本上我想做的是显示用户在商店中购买的所有产品的产品循环 就像显示普通产品一样 如果你还是不明白 也许这会帮助你明白我的意思 这是 WooCommerce 文档中的示例产品循环 ul class