woocommerce - 通过 API 从 WooCommerce 向外部系统发送订单详细信息

标签 woocommerce netsuite

我正在尝试通过我编写的外部 api 将 woocommerce 订单发送到 netsuite。我是 woocommerce 的新手,并没有完全了解如何添加此功能。

我在 中的functions.php 文件中添加了以下代码public_html/wp-content/themes/reverie-master/

add_action( 'woocommerce_payment_complete'', 'wdm_send_order_to_ext'); 
function wdm_send_order_to_ext( $order_id ){
// get order object and order details
$order = new WC_Order( $order_id ); 
$email = $order->billing_email;
$phone = $order->billing_phone;

//Create the data object
$orderData = array(
    'customer_email' => $email,
    'customer_phone' => $phone
);

$apiData = array(
    'caller' => 'woocommerce',
    'json' => $orderData,
    'key' => 'MY_SECRET_KEY'
);

$jsonData =json_encode($orderData);

$url = "";
$api_mode = 'sandbox';
if($api_mode == 'sandbox'){
    // sandbox URL example
    $url = "https://forms.netsuite.com/app/site/hosting/scriptlet.nl?script=XXX&deploy=X&compid=XXXXXXX_SB1&h=XXXXXXXXXXXXXXXX"; 
}
else{
    // production URL example
    $url = ""; 
}

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($jsonData));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec ($ch);

curl_close ($ch);

// the handle response    
if (strpos($response,'ERROR') !== false) {
        print_r($response);
} else {
        // success
}
}

我已经测试了这段代码的首当其冲的部分,只是在不同站点中与 woocommerce 无关的部分,我可以看到显示在 NetSuite 中的数据。但是,当我通过我的商店下订单并付款时,我没有看到数据进入 NetSuite。我在正确的位置有这个代码吗?有什么我想念的吗?

更新
我安装了插件代码片段并在那里添加了代码。将其设置为随处运行代码段。仍然没有运气。

最佳答案

看起来你在第一个链接上有一个双引号
改变add_action( 'woocommerce_payment_complete'', 'wdm_send_order_to_ext'); add_action( 'woocommerce_payment_complete', 'wdm_send_order_to_ext'); 而不是使用 curl - 您始终可以使用 WordPress 中的构建 wp_remote_post()功能
还要确保您有 WP_DEBUG设置为 truewp-config.php测试时。

关于woocommerce - 通过 API 从 WooCommerce 向外部系统发送订单详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55292637/

相关文章:

php - 根据 Woocommerce 中的购物车商品自动应用/删除优惠券代码

mysql - 寻找一些建议来完成针对 3 个不同表的自定义 mysql 查询

php - 更改 'View cart' 按钮的文本

woocommerce - 更改 Woocommerce 有货/缺货文本

javascript - 如何在 suitescript 2.0 中将 xml 转换为 JSON

php - 删除 WooCommerce 评论选项卡上的 (0)

java - 用于转储总帐的 NetSuite SOAP API (SuiteTalk)

javascript - 在 NetSuite 中创建模式弹出窗口

javascript - 如何在 netsuite 中使用 suitescript 2.0 在没有堆栈跟踪的情况下显示自定义错误消息

php - 网络套件错误 :You are not requesting the correct data center for your company"