title: "订单操作 #" post_status: publish comment_status: open taxonomy: category: - woocommerce-rest-api post_tag: - Wp Api V3 - Includes - Source


订单操作

订单操作 API 允许您对现有订单执行特定操作,类似于在网页应用的编辑订单界面中可进行的操作。

注意:目前仅部分操作可用,其他操作将在后续推出。

发送订单详情给客户

此端点允许您向客户发送包含其订单详情的电子邮件。如果订单尚未设置账单邮箱,您可以指定收件邮箱。但如果订单已有账单邮箱,除非您同时指定使用 force_email_update 参数覆盖现有邮箱,否则将返回错误。

HTTP 请求

POST
/wp-json/wc/v3/orders/<id>/actions/send_order_details
curl -X POST https://example.com/wp-json/wc/v3/orders/723/actions/send_order_details \
    -u consumer_key:consumer_secret \
    -d '{
      "email": "somebody@example.com",
      "force_email_update": true
    }'
const data = {
    email: "somebody@example.com",
    force_email_update: true
};

WooCommerce.post("orders/723/actions/send_order_details", data)
  .then((response) => {
    console.log(response.data);
  })
  .catch((error) => {
    console.log(error.response.data);
  });
<?php
$data = [
    'email' => 'somebody@example.com',
    'force_email_update' => true,
];

print_r($woocommerce->post('orders/723/actions/send_order_details', $data));
?>
data = {
    "email": "somebody@example.com",
    "force_email_update": true
}

print(wcapi.post("orders/723/actions/send_order_details", data).json())
data = {
    "email": "somebody@example.com",
    "force_email_update": true
}

woocommerce.post("orders/723/actions/send_order_details", data).parsed_response

JSON 响应示例:

{
  "message": "Billing email updated to somebody@example.com. Order details sent to somebody@example.com, via REST API."
}
{
    "code": "woocommerce_rest_missing_email",
    "message": "Order does not have an email address.",
    "data": {
        "status": 400
    }
}

向客户发送订单通知邮件

此端点允许您向客户触发关于其订单状态的邮件。这类似于 send_order_details 端点,但允许您根据与订单相关的邮件模板来指定发送哪个模板。例如,一个处于保留状态的订单有 customer_on_hold_order 模板可用。一个已完成且部分退款的订单则同时有 customer_completed_ordercustomer_refunded_order 模板可用。指定 customer_invoice 模板与使用 send_order_details 端点相同。

HTTP 请求

POST
/wp-json/wc/v3/orders/<id>/actions/send_email
curl -X POST https://example.com/wp-json/wc/v3/orders/723/actions/send_email \
    -u consumer_key:consumer_secret \
    -d '{
      "template_id": "customer_completed_order",
      "email": "somebody@example.com",
      "force_email_update": true
    }'
const data = {
    template_id: "customer_completed_order",
    email: "somebody@example.com",
    force_email_update: true
};

WooCommerce.post("orders/723/actions/send_email", data)
  .then((response) => {
    console.log(response.data);
  })
  .catch((error) => {
    console.log(error.response.data);
  });
<?php
$data = [
    'template_id' => 'customer_completed_order',
    'email' => 'somebody@example.com',
    'force_email_update' => true,
];

print_r($woocommerce->post('orders/723/actions/send_email', $data));
?>
data = {
    "template_id": "customer_completed_order",
    "email": "somebody@example.com",
    "force_email_update": true
}

print(wcapi.post("orders/723/actions/send_email", data).json())
data = {
    "template_id": "customer_completed_order",
    "email": "somebody@example.com",
    "force_email_update": true
}

woocommerce.post("orders/723/actions/send_email", data).parsed_response

JSON 响应示例:

{
  "message": "Billing email updated to somebody@example.com. Email template &quot;Completed order&quot; sent to somebody@example.com, via REST API."
}
{
    "code": "woocommerce_rest_invalid_email_template",
    "message": "customer_completed_order is not a valid template for this order.",
    "data": {
        "status": 400
    }
}

获取订单可用的电子邮件模板

此端点允许您检索指定订单可用的电子邮件模板列表。您也可以在 orders 端点 的响应中获取此数据。

HTTP request

GET
/wp-json/wc/v3/orders/<id>/actions/email_templates
curl -X GET https://example.com/wp-json/wc/v3/orders/723/actions/email_templates \
    -u consumer_key:consumer_secret
WooCommerce.get("orders/723/actions/email_templates")
  .then((response) => {
    console.log(response.data);
  })
  .catch((error) => {
    console.log(error.response.data);
  });
<?php
print_r($woocommerce->get('orders/723/actions/email_templates'));
?>
print(wcapi.get("orders/723/actions/email_templates").json())
woocommerce.post("orders/723/actions/email_templates").parsed_response

JSON response examples:

[
    {
        "id": "customer_completed_order",
        "title": "Completed order",
        "description": "Order complete emails are sent to customers when their orders are marked completed and usually indicate that their orders have been shipped."
    },
    {
        "id": "customer_invoice",
        "title": "Order details",
        "description": "Order detail emails can be sent to customers containing their order information and payment links."
    }
]