目录
WooCommerce REST API 允许开发者通过 HTTP 请求与 WooCommerce 进行交互,例如获取订单、管理产品、处理支付等功能。本文将详细讲解如何使用 WooCommerce REST API 对接外部系统,实现自动化操作。
在 WooCommerce 中,REST API 默认是启用的,但需要生成 API 凭据以进行身份验证。
Consumer Key 和 Consumer Secret,请妥善保存。一旦获得 API 凭据,就可以使用它们来获取 WooCommerce 的订单数据。
$consumer_key = 'your_consumer_key';
$consumer_secret = 'your_consumer_secret';
$api_url = 'https://example.com/wp-json/wc/v3/orders';
$response = wp_remote_get($api_url, [
    'headers' => [
        'Authorization' => 'Basic ' . base64_encode("$consumer_key:$consumer_secret")
    ]
]);
if (is_wp_error($response)) {
    echo '请求失败';
} else {
    $orders = json_decode(wp_remote_retrieve_body($response), true);
    print_r($orders);
}
如果你的环境不支持 wp_remote_get(),可以使用 cURL:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://example.com/wp-json/wc/v3/orders');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERPWD, 'your_consumer_key:your_consumer_secret');
$result = curl_exec($ch);
curl_close($ch);
$orders = json_decode($result, true);
print_r($orders);
外部系统可以通过 WooCommerce REST API 创建订单,例如,来自 CRM 系统的订单数据可以自动同步到 WooCommerce。
$api_url = 'https://example.com/wp-json/wc/v3/orders';
$order_data = [
    'payment_method' => 'bacs',
    'payment_method_title' => 'Bank Transfer',
    'set_paid' => true,
    'billing' => [
        'first_name' => 'John',
        'last_name' => 'Doe',
        'email' => 'john.doe@example.com'
    ],
    'line_items' => [
        [
            'product_id' => 123,
            'quantity' => 1
        ]
    ]
];
$response = wp_remote_post($api_url, [
    'headers' => [
        'Authorization' => 'Basic ' . base64_encode("$consumer_key:$consumer_secret"),
        'Content-Type' => 'application/json'
    ],
    'body' => json_encode($order_data)
]);
$new_order = json_decode(wp_remote_retrieve_body($response), true);
print_r($new_order);
如果订单已经创建,外部系统可能需要更新订单状态。例如,支付完成后,修改订单为 completed 状态。
$order_id = 456; // 订单 ID
$api_url = "https://example.com/wp-json/wc/v3/orders/$order_id";
$update_data = [
    'status' => 'completed'
];
$response = wp_remote_request($api_url, [
    'method' => 'PUT',
    'headers' => [
        'Authorization' => 'Basic ' . base64_encode("$consumer_key:$consumer_secret"),
        'Content-Type' => 'application/json'
    ],
    'body' => json_encode($update_data)
]);
$updated_order = json_decode(wp_remote_retrieve_body($response), true);
print_r($updated_order);
除了使用 REST API 轮询数据,你还可以使用 Webhooks 来监听 WooCommerce 事件,如订单创建、付款成功等。
order.created)。$data = json_decode(file_get_contents('php://input'), true);
if (!empty($data)) {
    file_put_contents('webhook_log.txt', print_r($data, true));
}
本文介绍了如何使用 WooCommerce REST API 进行外部系统对接,包括 API 认证、获取订单、创建订单、更新订单状态,并介绍了 Webhooks 的使用方式。通过这些技术,可以实现 WooCommerce 与 CRM、ERP、物流等系统的深度集成,提高业务自动化水平。

WordPress日记主要承接WordPress主题定制开发、PSD转WordPress、WordPress仿站以及以WordPress为管理后端的小程序、APP,我们一直秉持“做一个项目,交一个朋友”的理念,希望您是我们下一个朋友。如果您有WordPress主题开发需求,可随时联系QQ:919985494 微信:18539976310
