我需要添加一个自定义函数来将数据发布到woocommerce的结帐流程



一个woocomerce/wordpress网站的所有者要求我在结账过程中添加一个功能,当用户点击"下单"时,该功能就会启动,但我不完全确定如何在下单后启动该功能。他们提出请求的原因是,这个特定的客户希望他们的供应商以及他们的员工自动收到任何订单的通知。

该函数所做的(或应该做的(是从签出表单中获取信息,并将其传递给供应商系统使用的SOAP API。

这是代码:

<?php
$request = new HttpRequest();
$request->setUrl($PRIVATE);
$request->setMethod(HTTP_METH_POST);
$request->setHeaders(array(
'Postman-Token' => $private_key,
'cache-control' => 'no-cache',
'SOAPAction' => $private_url,
'Content-Type' => 'text/xml'
));
$request->setBody('<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
//This part doesn't actually matter - is specific to the supplier's system and I've removed it for privacy.
</soapenv:Body>
</soapenv:Envelope>');
try {
$response = $request->send();
echo $response->getBody();
} catch (HttpException $ex) {
echo $ex;
}
?>

这里的主要问题是没有暂存站点(我没有能力创建一个(,所以我需要在一个实时站点上实现它,我不相信这不会破坏结账过程,或者如果我尝试使用它,也不会破坏整个站点。不幸的是,在我的搜索中,我没有找到很多详细说明其他人如何处理类似实现的材料——我看到的大多数都是"使用一个无法解决问题的插件",或者类似的东西。

也就是说,我真的需要了解发生了什么,这样我才能把这个项目交回客户手中。提前感谢您的时间和帮助!

我过去也做过类似的实现。我把它添加到woommerce_thankou钩子中。

add_action('woocommerce_thankyou', 'send_order');
function send_order($order_id){
$order = wc_get_order( $order_id );
/*** Your code ***/
}

最新更新