php - Woocommerce 订阅使用 API 从订单 ID 获取 ID

标签 php wordpress woocommerce wordpress-rest-api woocommerce-subscriptions

是否可以使用 WooCommerce 的 API 从 Woocommerce 订单 ID 获取订阅 ID? 我正在使用 PHP,通过它我可以获得所有订单数据,但不是订阅 ID:

$curl = curl_init();
curl_setopt_array($curl, [
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => "https://www.example.com/wp-json/wc/v3/orders/".$orderId,
    CURLOPT_USERPWD => 'code:code',
    CURLOPT_HTTPHEADER => array(
         "accept: application/json"
    )
]);
$woocommerceOrder = curl_exec($curl);

最佳答案

add_filter( 'woocommerce_api_order_response', 'add_woo_field_order_api_response', 20, 4 );

function add_woo_field_order_api_response( $order_data, $order, $fields, $server ) {

    // Get the subscription id
    $subscriptions_ids  = wcs_get_subscriptions_for_order( $order->get_id(), array( 'order_type' => 'any' ) );
    // We get all related subscriptions for this order
    foreach ( $subscriptions_ids as $subscription_id => $subscription_obj )
        if ( $subscription_obj->order->id == $order_id )
            break; // Stop the loop
    $order_data[ 'subscription_id' ] = $subscription_id;
    return $order_data;
}

将此代码片段添加到您的服务器事件主题 function.php 中。然后订单 API 响应将包含 subscription_id

关于php - Woocommerce 订阅使用 API 从订单 ID 获取 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67254232/

相关文章:

php - 将 PEM 格式的公钥传递给 openssl_pkey_get_public 会出现错误 :0906D06C:PEM routines:PEM_read_bio:no start line

PHP filter_var_array() 只检查一个值是否为真?

javascript - Isotope JS 库 - 卡片重叠

php - 以编程方式更新 Woocommerce 订单的修改日期

php - Twig_Error_Syntax for "Unknown filter"与 Timber 中的 Twig 过滤器

php - mysql连接同一列中的2个表

php - WooCommerce 自定义产品类型 - 多个添加到购物车部分问题

ionic-framework - Access-Control-Allow-Headers 不允许请求 header 字段 User-Agent

php - 如果 WooCommerce 短代码没有返回任何产品,则显示一条消息

wordpress - Woocommerce:如何保存订单中的产品 SKU