【问题标题】:How to check if an order number exists in woocommerce?如何检查woocommerce中是否存在订单号?
【发布时间】:2019-12-15 15:26:34
【问题描述】:

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

this question 看来,WooCommerce order_number 可能并不总是与 order_id 相同(它总是与 post_id)。

所以我不能使用 wc_get_order($the_order) 函数,因为 the documentation 声明它想要 $the_order 中的 post_id参数。

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

我对 WooCommerce 还很陌生,所以也许我遗漏了一些东西。有没有办法做到这一点?还是 wc_get_order 记录有误?

我已经在堆栈溢出方面进行了很多谷歌搜索和搜索,但我真的找不到这个问题的答案!任何帮助表示赞赏。

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

【问题讨论】:

    标签: woocommerce


    【解决方案1】:

    您在文档中难以找到有关此内容的原因是因为 WooCommerce 没有订单号的原生概念。 ID就是订单号。

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

    这是一个此类插件的示例:https://en-gb.wordpress.org/plugins/woocommerce-sequential-order-numbers/

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

    【讨论】:

    • 谢谢,这真的澄清了这个问题。因此(只是为了确保我 100% 正确理解这一点)如果我没有安装任何与订单 ID 混淆的插件,那么我可以相信当我将订单号(现有订单的)传递给 wc_get_order()它总能找到订单。对吗?
    • @MairaBay 是的,只有当您使用插件处理订单号排序时,您才会遇到任何分歧。如果您没有类似的运行,您可以相信提供给客户的号码与订单/帖子 ID 相同。
    • 太棒了!非常感谢!
    【解决方案2】:

    您可以试试这个 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”的帖子类型存储。

    我测试了代码。我希望这能帮到您。祝你有美好的一天。

    【讨论】:

      【解决方案3】:

      通过 wc_get_order 调用发送订单号。如果返回数组为空,则订单号不存在。

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

      【讨论】:

        猜你喜欢
        • 2019-10-13
        • 2020-12-01
        • 2019-07-28
        • 2017-09-21
        • 1970-01-01
        • 1970-01-01
        • 2021-07-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多