如何检查woocommerce中是否存在订单号?

如何检查woocommerce中是否存在订单号?,woocommerce,Woocommerce,在我的WooCommerce商店中,我有一个输入字段,希望用户在其中输入订单号。验证此字段时,我需要检查WooCommerce中是否存在订单号 从中,看起来WooCommerce订单号可能并不总是与订单id相同(它总是与post id相同) 因此,我不能使用wc_get_order($the_order)函数,因为它表示希望在$the_order参数中使用post_id 我找不到通过订单号获取订单的特定函数(无论是在文档中还是在github中的代码中) 我对WooCommerce还比较陌生,所以

在我的WooCommerce商店中,我有一个输入字段,希望用户在其中输入订单号。验证此字段时,我需要检查WooCommerce中是否存在订单号

从中,看起来WooCommerce订单号可能并不总是与订单id相同(它总是与post id相同)

因此,我不能使用wc_get_order($the_order)函数,因为它表示希望在$the_order参数中使用post_id

我找不到通过订单号获取订单的特定函数(无论是在文档中还是在github中的代码中)

我对WooCommerce还比较陌生,所以可能我遗漏了什么。有没有办法做到这一点?还是wc_get_订单记录错误

我在这里做了很多关于堆栈溢出的谷歌搜索,但是我真的找不到这个问题的答案!感谢您的帮助


PS:我想我可以得到所有订单,然后逐个循环检查订单号是否匹配,但我希望找到一个更简单的解决方案:D

您之所以在文档中难以找到任何关于这一点的内容,是因为WooCommerce没有订单号的固有概念。ID是订单号

然而,店主往往会发现,订单ID并不是按顺序增加的。由于WordPress处理帖子的方式,一个订单和下一个订单之间的ID可能会有很大的跳跃。用户通常会安装一个插件来解决这个问题。正是这些插件引入了订单ID和订单号之间的区别

下面是这样一个插件的示例:


文档中包含了一个如何通过编号查找订单的示例。如果您安装了其中一个插件,您只需查找相关插件如何将数字解析为ID。

您可以尝试此If语句,查看给定ID(数字)是否为订单号:

function is_it_a_shop_order($givenNumber)
{   
    if(get_post_type($givenNumber) == "shop_order")
    {
        echo "yes this is a valid order number";
    }
    else
    {
        echo "no go away";
    }
}
Wordpress将所有帖子(页面、订单、产品等)存储在wp_posts表中,订单以名为“shop_order”的帖子类型存储


我测试了代码。我希望这对你有帮助。祝您愉快。

通过wc\u获取订单电话发送订单号。如果返回的数组为空,则订单号不存在

$bOrderExists = DoesOrderExist($OrderNumber);

function DoesOrderExist($OrderNumber)
  {
  $orderq   = wc_get_order($OrderNumber);
  if(empty($orderq))
    return 0;

return 1;
 }

谢谢,这确实澄清了问题。因此(为了确保我100%正确理解这一点),如果我没有安装任何与订单ID不符的插件,那么我可以相信,当我将订单号(现有订单)传递给wc_get_Order()时,它将始终找到订单。是吗?@MairaBay是的,只有当你使用插件处理订单号排序时,你才会遇到分歧。如果您没有运行类似的程序,您可以相信提供给客户的号码与订单/帖子ID相同!非常感谢你!