【问题标题】:Get WooCommerce Subscription Original (Initial) order number获取 WooCommerce 订阅原始(初始)订单号
【发布时间】:2015-01-11 05:02:17
【问题描述】:

我正在开发一个用户购买订阅的项目,当他们购买时,我们使用 API 调用将数据发送到另一台服务器。一旦服务器接收到必要的信息,它就会创建一个序列号并将其发送回 woocommerce 站点。

这一切都很好,我成功地发送数据和检索序列号并同步服务器上的大部分内容。

当 Woo Subscriptions 更新他们的订单时,我被困住了,我需要更新其他服务器上有关序列号的信息。我想如果我可以访问原始订单号就可以了。

我遇到的另一个问题是确定订单是否实际上是续订订单,我设置了一个简单的标志来检查“subscription_interval”是否在订单内->get_items,如果不是,那么它是续订命令。整件事有点可疑。

基本上我需要一种方法来确定它是否是续订订单,如果是给我初始订单号。

查看元框(高级)最底部的订单屏幕,有一个元框显示“相关订阅订单”,甚至显示初始订单。如何访问这些数据?

提前致谢!

【问题讨论】:

    标签: wordpress woocommerce subscription


    【解决方案1】:

    好的,所以我找到了WC_Subscriptions_Renewal_Order 并在上面运行了get_class_methods。我找到了is_renewalget_parent_order_id,生活又美好了:)

    【讨论】:

      【解决方案2】:

      也许这可以帮助其他人寻找通过订阅 ID 找出原始订单 ID 的方法。

      function my_get_original_order_id_by_subscription_id( $sub_id ){
          $sub_post = get_post( $sub_id );
          if( $sub_post && is_object( $sub_post ) && isset( $sub_post->post_parent ) && absint( $sub_post->post_parent ) > 0 ){
              return $sub_post->post_parent;
          }
          return false;
      }
      

      解决方案非常简单。您只需获取与订阅ID($sub_id)相关的对象post,然后post_parent就是您要查找的原始订单的ID。

      【讨论】:

      • 你为我节省了大约 2-3 个小时的绝望和令人沮丧的谷歌搜索,如果不是更多的话。谢谢!!! ?‍♂️ 我真的不明白为什么 WooCommerce 订阅扩展没有一个简单的函数来获取订阅的父订单 ID。难以置信。
      猜你喜欢
      • 2016-07-08
      • 2023-04-01
      • 2017-12-30
      • 2017-08-05
      • 2017-09-17
      • 1970-01-01
      • 2017-04-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多