如何查看客户购买产品的次数

2023-12-05

在 woocommerce 中,如何检查客户在所有订单中购买产品的次数。

我如何检查客户在他下的所有订单中可以购买某种产品的次数。

当前客户的产品购买历史记录示例:

Product one = bought 5 times
Product five = bought 1 times
Product four = bought 2 times
Product two = bought 3 times
Product three = bought 6 times

我有一个功能来检查客户是否购买了这些产品

function is_bought_items() {
 $bought = false;
 $_options = get_option( 'license_page_option_name' );
 $ex_product_ids = $_options['ex_product_ids_warranty']; 

 $targeted_products= explode(",",$ex_product_ids); //id array(4,17,28,52)

// Get all customer orders
$customer_orders = get_posts( array(
    'numberposts' => -1,
    'meta_key'    => '_customer_user',
    'meta_value'  => get_current_user_id(),
    'post_type'   => 'shop_order', // WC orders post type
    'post_status' => 'wc-completed' // Only orders with status "completed"
) );

// Going through each current customer orders
foreach ( $customer_orders as $customer_order ) {
    $order = wc_get_order( $customer_order );
    $order_id = $order->id;
    $items = $order->get_items();
    // Going through each current customer products bought in the order
    foreach ($items as $item) {
        // Your condition related to your 2 specific products Ids
        if ( in_array( $item['product_id'], $targeted_products) ) {
            $bought = true; // 
        }
    }
}

// return "true" if one the specifics products have been bought before by customer
if ( $bought ) {
    return true;
}
}

在循环遍历所有项目时...我们可以节省产品购买count在我们的数组中$item['item_meta']['_qty'].

这是一个可能的实施示例......

function get_purchased_products() {
    $products = array();

    // Get all customer orders
    $customer_orders = get_posts( array(
        'numberposts' => - 1,
        'meta_key'    => '_customer_user',
        'meta_value'  => get_current_user_id(),
        'post_type'   => 'shop_order', // WC orders post type
        'post_status' => 'wc-completed' // Only orders with status "completed"
    ) );

    // Going through each current customer orders
    foreach ( $customer_orders as $customer_order ) {
        $order    = wc_get_order( $customer_order );
        $items    = $order->get_items();

        // Going through each current customer products bought in the order
        foreach ( $items as $item ) {
            $id = $item['product_id'];

            // If product not in array, add it
            if ( ! array_key_exists( $item['product_id'], $products ) ) {
                $products[ $id ] = array(
                    'name' => $item['name'],
                    'count' => 0,
                );
            }

            // Increment Product `count` from cart quantity
            $products[ $id ]['count'] += $item['item_meta']['_qty'][0];
        }
    }

    return $products;
}
foreach ( get_purchased_products() as $id => $product ) {
    echo "<p>$id <b>$product[name]</b> bought $product[count] times</p>";
}

这输出...

70 飞行忍者购买了7次
37 快乐忍者购买了5次
19 优质购买过1次

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何查看客户购买产品的次数 的相关文章

  • 当存在联系时如何为数组分配排名号

    当尝试为数组中存在平局的数值分配排名时 我很难知道从哪里开始 因此 例如 我需要像下面这样转换一个数组 myarray 4 76 34 13 34 到另一个数组中 例如 myarray2 1 5 3 5 2 3 5 基本上 当相同的数字在数
  • 如何通过键查找最大和最小日期

    我有一个数组 a array 2010 05 03 gt 100 2010 05 04 gt 400 2008 05 01 gt 800 2011 01 01 gt 800 我如何找到最大值和最小值key date 例如 max gt 20
  • 如何在 标签中用 %20 替换空格

    我想替换 html 文本的图像标签中的所有空格 Example img src to img src photo 201 jpg 我没有找到 preg replace 的解决方案 但它可能是一个简单的正则表达式行 谢谢 Edit 抱歉各位
  • PHP/MySQL:检索邻接列表模型中的单个路径

    有没有什么有效的方法可以在不限制深度的情况下根据节点的ID检索邻接列表模型中的单个路径 就像如果我有一个名为 Banana 的节点的 ID 我可以获得以下路径 Food gt Fruits gt Banana 如果不可能的话也不是什么大问题
  • 如何在Web服务中传递URL

    我想将此 URL 作为网址中的值传递http localhost h2orn php verify php email emails hash hash但是 我只能在 符号之前传递 我想传递所有 URL 我正在使用java网络服务 代码在这
  • xdebug_start_trace 行为异常

    我正在尝试进一步减少脚本内存使用量 我试图让我的脚本使用 xdebug 生成输出来分析内存使用情况 这是一个基于 CLI 的脚本 有 shebang usr local bin php q 我向它传递一个参数并检查它 argc gt 1 i
  • PHP 警告 ZipArchive::extractTo():权限被拒绝

    我创建了一个应用程序 它使用 ZipArchive 类 php 中的标准 中的方法 extractTo 并在 Windows 7 上的本地主机 apache 服务器上对其进行了测试 没有任何问题 但是当我在一些unix生产服务器上尝试过它之
  • 如何将 ctype_alpha 与 UTF-8 结合使用

    如何将 ctype alpha 与 UTF 8 一起使用 我有这个代码 if empty POST false if isset POST first name empty POST first name if ctype alpha PO
  • 适用于 Windows 的 PHP 支持的 GUI 应用程序

    我知道 PHP 是一种解释性语言 对于基于 Web 的事物来说 不是为在实际操作系统上运行 GUI 应用程序而设计的 但是有没有办法呢 基本上 是否有一个框架 系统允许我创建 本机 基本上是二进制文件 exe 看起来像带有本机控件和所有内容
  • 如何在javascript中使用自动递增id?

  • WooCommerce:用文本覆盖购物车价格

    我们有很多产品具有以下功能 No price 零价格 我们让它们可以通过内置挂钩购买 但购物车仍然将它们显示为具有0 price结账时 我们希望购物车和结帐摘要显示 特殊订单 或任何其他文本 但 WooCommerce 似乎使基于文本的价格
  • 使用 PDO 在 SQLite 中检索单个(且唯一)行的最简单方法

    我有这个 PDO stmt db gt prepare SELECT FROM channels WHERE id id stmt gt bindValue id id SQLITE3 INTEGER result stmt gt exec
  • URL 重写帮助

    RewriteEngine on RewriteCond REQUEST URI index php RewriteRule index php q 1 L 这应该将任何 url 重写为 index php q url 并且它可以工作 反正
  • cURL '格式错误的网址'

    This url 在浏览器中工作得很好 但 cURL 返回错误 3 格式错误的 url 关于解决方法有什么想法吗 EDIT 卷曲代码 function get web page url options array CURLOPT RETUR
  • 使用 DOM 获取 div 的内容(包括子标签)

    我正在使用 DOM 来获取 div 标签的内容 但内部 html 部分未显示 功能是 dom new DOMDocument libxml use internal errors true dom gt loadHTMLFile url l
  • 在 WordPress 和 woocommerce 中禁用 zxcvbn.min.js

    如您所知 zxcvbn min js 约为 400kb 并且默认在 WordPress 网站中加载 我想知道如何阻止加载此 JavaScript 库 因为我不想在我的网站中检查密码长度 将以下内容添加到主题的 function php 或自
  • 无需下载整个文件即可读取 ID3 标签

    是否可以读取 MP3 文件的 ID3 标签 持续时间 艺术家 标题 而无需下载整个文件 我做了一些测试 只需下载 MP3 文件的几个字节就可以获得艺术家和标题标签 但我不确定持续时间和其他标签是否可能 Thanks 我刚刚发现 ffmpeg
  • 如何使用 PDO 动态构建查询

    我正在使用 PDO 并想做这样的事情 query dbh gt prepare SELECT FROM table WHERE column value query gt bindParam table tableName query gt
  • 从多个选择列表中插入数据到mysql数据库(html形式)

    我制作了一个表格 其中有商店的 ID
  • 转换MAC地址格式

    我刚刚编写了一个小脚本 从交换机中提取数百个 MAC 地址进行比较 但它们的格式为 0025 9073 3014 而不是标准的 00 25 90 73 30 14 我对如何转换它感到困惑 我能想到的最好的办法就是在 处将它们分解成碎片 然后

随机推荐

  • 在OctoberCMS中创建API(Web服务)

    我是 OctoberCMS 的新手 我发现它确实非常好的 CMS 我正在本地服务器中创建 2 个项目 一个是在 Cakephp 中 http localhost 5p group 另一个是 OctoberCMS http localhost
  • jquery悬停和setTimeout/clearTimeOut

    我目前正在尝试制作带有子菜单的菜单 这就是我想做的 将鼠标悬停在链接 mylink 上时 我想在其下方显示一个 div 我们称其为 submenu 鼠标离开此链接后 5 秒后想要执行某个功能 在这 5 秒的间隔内 如果我将鼠标悬停在 div
  • C# Interop.excel Range.formula VLOOKUP 错误

    我正在使用 VS 2015 c 进行开发 尝试将公式放入单元格内 公式为 articoli contatorerighe 3 CERCA VERT D contatorerighe cellaIniziale ToString Listin
  • 在输出 html 代码中删除了 CSS - kolkov/angular-editor

    使用默认 Html 代码加载页面时编辑器界面和输出HTML代码按预期工作 如果在编辑器中执行任何操作 则 UI 看起来不错 但是输出 Html 代码已删除所有 css 更改 我在这里创建了 stackblitz 代码 以便更好地理解我的问题
  • iPhone 的 UIPopoverController 无法工作?

    我需要为我的 iPhone 应用程序使用 UIPopOverController 我搜索了 stackoverflow 有人说 UIPopoverController 不能在 iphone iphone 设备上运行 为什么 当我在 ipho
  • ImportError:无法从“sklearn.externals”导入名称“joblib”

    我正在尝试从以下位置加载我保存的模型s3 using joblib import pandas as pd import numpy as np import json import subprocess import sqlalchemy
  • 如何在cmd中打开一个新的shell,然后在新的shell中运行脚本?

    我的电脑操作系统是win7 我想使用 bat 文件打开一个新 shell 然后在新 shell 中运行脚本 这个shell是OSGeo4W Shell 它位于 C Program Files QGIS Dufour OSGeo4W bat
  • XSL:计算以前的唯一兄弟姐妹

    好的 我想应用一个 XSL 样式表 该样式表对先前唯一的 ROLE 节点进行计数 并输出以下输出格式 name 当前节点之前的唯一 ROLE 节点的数量 我在本来应该很容易实现的事情上浪费了几个小时 我尝试以多种方式实现这一点 包括 Mue
  • 在android中加载flash文件(.swf)webview [重复]

    这个问题在这里已经有答案了 可能的重复 将 SWF 加载到 WebView 中 我有一个 swf 文件 我想将其打开到 Web 视图中 并且还想玩 Web 视图中加载的 Flash 游戏 我怎么做 我在 webview 中获取编码形式的 s
  • 弹出窗口使用滚动条

    我正在尝试创建一个使用窗口滚动条而不是 div 滚动条的弹出窗口 类似于正在播放的内容http pinterest com 如何达到这样的效果呢 我所有的尝试都不成功 滚动条出现在 div 上 窗口滚动条滚动正文内容 当你打开弹出窗口时 你
  • JSON 获取嵌套字典中的键路径

    json app Garden Flowers Red flower Rose White Flower Jasmine Yellow Flower Marigold Fruits Yellow fruit Mango Green frui
  • ReactJS 中的 prevState 是什么?

    我认为问这个问题可能很愚蠢 但相信我 我是 ReactJS 的初学者 有人可以解释一下我们为什么使用上一个状态在 Reactjs 中 我努力去理解但失败了 这是我的代码 请帮助我理解 state placeName places place
  • Java 中的 toUpperCase 不起作用[重复]

    这个问题在这里已经有答案了 我有一个字符串 String c IceCream 如果我使用toUpperCase 函数然后它返回相同的字符串 但我想得到 ICECREAM 哪里有问题 The code String c IceCream S
  • 通过 JQuery ajax.post 向 PHP 提交 JSON 数据

    我使用 POST 通过 AJAX 将数据提交到 php 文件 仅提交字符串就可以正常工作 但现在我想使用 JSON 提交 JS 对象并在 PHP 端对其进行解码 在控制台中我可以看到 我的数据已正确提交 但在 PHP 端 json deco
  • Android Studio 膨胀类 com.google.android.gms.ads.AdView 时出错

    我要疯了 我正在尝试使用 google play 服务更改 admob 但我陷入了这个错误 Caused by android view InflateException Binary XML file line 53 Error infl
  • 致命错误:调用未定义的函数 domxml_new_doc()

    当我想在 php 中使用 xml 库时 出现此错误 Fatal error Call to undefined function domxml new doc in C AppServ www direction db2xml php on
  • 我的应用程序从“平板电脑”Google Play 中消失,但仍可用于手机

    我的应用程序在 Google Play 上发布了几个月 拥有手机和平板电脑的人都可以下载它 令人惊讶的是 有时在过去两周内 Google Play 的某些内容发生了变化 我的应用程序仅适用于手机 当我使用平板电脑搜索时找不到它 知道是否有什
  • 使用 C# 强制关闭 Windows CE 5 应用程序

    如何使用 C 在 Windows CE 5 0 上强制关闭应用程序 我已经尝试过了Application Exit 但这并不总是杀死所有当前正在运行的线程 我通常会使用Environment Exit 但不幸的是 这在 CF 中不可用 这取
  • VBa 条件删除循环不起作用

    我正在电子表格上运行以下代码 Do While i lt 100000 If Not Cells i 4 String Then Cells i 4 EntireRow Delete End If i i 1 Loop 有很多条目not 字
  • 如何查看客户购买产品的次数

    在 woocommerce 中 如何检查客户在所有订单中购买产品的次数 我如何检查客户在他下的所有订单中可以购买某种产品的次数 当前客户的产品购买历史记录示例 Product one bought 5 times Product five