如何从 WC_Subscription 实例对象获取订单详细信息

How to get Order Details from a WC_Subscription instance Object

这个用于完成初始订阅付款和订阅续订。

function payment_made($subscription){
    // How do I get the order details?
}
add_action("woocommerce_subscription_payment_complete", "payment_made");

这一个用于状态更改时,因此我可以处理手动和系统更改,无论是手动覆盖还是 failed/pending/active/whatever 基于付款或切换的状态。

function status_update($subscription, $old_status, $new_status){
    // How do I get the order details?
}
add_action("woocommerce_subscription_status_updated", "status_updated");

要从 WC_Subscription 对象获取订单详细信息,您首先需要使用 get_parent_id() 方法获取父 ID(即订单 ID):

$order_id = $subscription->get_parent_id();

然后您将从订单 ID 中获取 WC_Order 对象:

$order = wc_get_order( $order_id );

然后获取订单详情:

相关:

可以使用以下方法直接从WC_订阅对象中获取一些详细信息

 $subscription->get_id() //subscription id
 $subscription->get_parent_id() //order id
 $subscription->get_currency()
 $subscription->get_customer_note()
 $subscription->get_prices_include_tax()
 $subscription->get_payment_method()
 $subscription->get_payment_method_title()
 $subscription->get_billing_first_name()
 $subscription->get_billing_last_name()
 $subscription->get_billing_company()
 $subscription->get_billing_address_1()
 $subscription->get_billing_address_2()
 $subscription->get_billing_city()
 $subscription->get_billing_state()
 $subscription->get_billing_postcode()
 $subscription->get_billing_country()
 $subscription->get_billing_email()
 $subscription->get_billing_phone()
 $subscription->get_shipping_first_name()
 $subscription->get_shipping_last_name()
 $subscription->get_shipping_company()
 $subscription->get_shipping_address_1()
 $subscription->get_shipping_address_2()
 $subscription->get_shipping_city()
 $subscription->get_shipping_state()
 $subscription->get_shipping_postcode()
 $subscription->get_shipping_country()
 $subscription->get_order_key()
 $subscription->get_date_created()
 $subscription->get_date_modified()