我们正在开发一个复杂的Woocommerce网站和一个使用V3 API的应用程序。
由于出售的产品非常有价值,我们需要知道每种产品购买的序号。例如,我们想知道Alice是第三个购买该产品的人,Bob是第五个,依此类推。我能想到的是通过Woocommerce API获取该产品的总销售额,然后循环包含该产品的每个订单并按日期进行订购。问题是,这种方式非常耗时和耗费资源,尤其是必须循环遍历所有订单。有谁知道更好的方法吗。我不要求提供代码,但如果有人能有一个出色的方法来分享,我会很高兴。
谢谢法维奥
最合适的回答,由SO网友:Ivan Shatsky 整理而成
假设您不允许客人结账,您可以尝试的是
在WooCommerce产品中添加一个自定义字段,您可以将购买历史记录保存为一个数组,如[<user_id_1>, <user_id_2>, ...]
;编写自定义函数并使用woocommerce_order_status_completed
钩子根据订单中的产品更新此字段(请参见this 关于如何从WooCommerce订单中获取用户ID的信息的问题)编写一个函数,该函数将遍历所有已下订单,并初始化每个产品的字段值这可以作为插件来完成,在插件激活过程中会初始化此自定义字段。使用相同的插件,您可以注册其他REST API端点。