在我的 WooCommerce 商店中,我有一个输入字段,我希望用户在其中输入订单号。验证此字段时,我需要检查该订单号是否确实存在于 WooCommerce 中。
从这个问题来看,似乎 WooCommerce order_number可能并不总是与order_id相同(它总是与post_id相同)。
所以我不能使用wc_get_order($ the_order) ,因为函数的文档说,它希望POST_ID在$ the_order参数。
我找不到通过订单号获取订单的特定函数(无论是在文档中还是在 github 中的代码中)。
我对 WooCommerce 还很陌生,所以也许我错过了一些东西。有没有办法做到这一点?还是wc_get_order 记录错误?
我在堆栈溢出上做了很多谷歌搜索和搜索,但我真的找不到答案!任何帮助表示赞赏。
PS:我想我可以得到所有订单并逐个循环检查数字是否匹配,但我希望找到一个更简单的解决方案:D
您在文档中难以找到有关此内容的任何内容的原因是 WooCommerce 没有订单号的原生概念。ID就是订单号。
然而,店主往往会发现订单 ID 不会按顺序增加。由于 WordPress 处理帖子的方式,一个订单和下一个订单之间的 ID 可能会有很大的跳跃。用户通常会安装一个插件来解决这个问题。这些插件引入了订单 ID 和订单号之间的区别。
以下是此类插件的示例:https ://en-gb.wordpress.org/plugins/woocommerce-sequential-order-numbers/
文档中包含如何按订单号查找订单的示例。如果您安装了这些插件之一,则只需查找相关插件如何将数字解析为 ID。
小智 5
您可以尝试使用 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";
}
}
Run Code Online (Sandbox Code Playgroud)
Wordpress 将所有帖子(页面、订单、产品等)存储在 wp_posts 表中,订单以名为“shop_order”的帖子类型存储。
我测试了代码。我希望这能帮到您。祝你有美好的一天。
| 归档时间: |
|
| 查看次数: |
2663 次 |
| 最近记录: |