从wordpress接收数据
Receiving data from word press
我在 WordPress 中创建了自定义 PHP 文件,以通过其网络服务将订单数据发送到会计服务器。
现在我需要从那个记账服务器上取货量,更新每个产品的库存。
我没有访问那个服务器,他们也没有任何关于他们的网络服务的文档。
我试图找到一些有关使用网络服务来执行此操作的信息,但我得到的唯一结果是通过网络服务发送(而不是接收)WordPress 网站的数据。
这是我将订单详细信息发送到会计服务器的代码:
<?php
require_once('../wp-config.php');
require_once('../wp-content/plugins/woocommerce/includes/abstracts/abstract-wc-order.php');
$today = new DateTime();
$today->setTime( 0, 0, 0 );
$args = array(
'limit' => 9999,
'return' => 'ids',
'date_completed' => $today,
'status' => 'completed'
);
$query = new WC_Order_Query( $args );
$orders = $query->get_orders();
$url = "http://###.###.###.###:8081/Service1.svc/InsertInvoice";
foreach( $orders as $order_id ) {
$order = wc_get_order( $order_id );
$order_date_completed = $order->get_date_completed();
if (false === strtotime($order_date_completed)) {
echo 'Invalid date for order number '.$order_id.'<br>';
}else {
$order_date_completed->setTime( 0, 0, 0 );
$diff = $today->diff( $order_date_completed );
$diffDays = (integer)$diff->format( "%R%a" );
if($diffDays == 0){
$items = $order->get_items();
$InvoiceInfo = array();
foreach( $items as $item ){
$product = $item->get_product();
$item_sku = $product->get_sku();
$saleType = substr($item_sku, 1, 2);
$item_code = substr($item_sku, 3, 8);
$user_id = substr($item_sku, 11, 6);
$data2 = array(
'CustomerCode' => $user_id,
'SaleTypeNumber' => $saleType,
'ItemCode' => $item_code,
'Quantity' => $item->get_quantity(),
'Fee' => $product->get_price(),
'Discount' => 0,
'Addition' => 0,
'Tax' => 0,
'Duty' => 0,
'Rate' => 1,
'StockCode' => 5,
);
array_push($InvoiceInfo,$data2);
}
$postdata = json_encode($InvoiceInfo);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
$result = curl_exec($ch);
curl_close($ch);
}
}
}
?>
为了向 WooCommerce 发送数据,您可以使用 WordPress REST API 可以从任何地方接收数据的自定义端点。
但是,由于您没有提供会计服务器的名称,甚至没有提供有关会计应用程序的任何信息,您必须检查是否可以将数据从您的会计应用程序发送到 webhook(使用服务像扎皮尔)。
我在 WordPress 中创建了自定义 PHP 文件,以通过其网络服务将订单数据发送到会计服务器。
现在我需要从那个记账服务器上取货量,更新每个产品的库存。
我没有访问那个服务器,他们也没有任何关于他们的网络服务的文档。
我试图找到一些有关使用网络服务来执行此操作的信息,但我得到的唯一结果是通过网络服务发送(而不是接收)WordPress 网站的数据。
这是我将订单详细信息发送到会计服务器的代码:
<?php
require_once('../wp-config.php');
require_once('../wp-content/plugins/woocommerce/includes/abstracts/abstract-wc-order.php');
$today = new DateTime();
$today->setTime( 0, 0, 0 );
$args = array(
'limit' => 9999,
'return' => 'ids',
'date_completed' => $today,
'status' => 'completed'
);
$query = new WC_Order_Query( $args );
$orders = $query->get_orders();
$url = "http://###.###.###.###:8081/Service1.svc/InsertInvoice";
foreach( $orders as $order_id ) {
$order = wc_get_order( $order_id );
$order_date_completed = $order->get_date_completed();
if (false === strtotime($order_date_completed)) {
echo 'Invalid date for order number '.$order_id.'<br>';
}else {
$order_date_completed->setTime( 0, 0, 0 );
$diff = $today->diff( $order_date_completed );
$diffDays = (integer)$diff->format( "%R%a" );
if($diffDays == 0){
$items = $order->get_items();
$InvoiceInfo = array();
foreach( $items as $item ){
$product = $item->get_product();
$item_sku = $product->get_sku();
$saleType = substr($item_sku, 1, 2);
$item_code = substr($item_sku, 3, 8);
$user_id = substr($item_sku, 11, 6);
$data2 = array(
'CustomerCode' => $user_id,
'SaleTypeNumber' => $saleType,
'ItemCode' => $item_code,
'Quantity' => $item->get_quantity(),
'Fee' => $product->get_price(),
'Discount' => 0,
'Addition' => 0,
'Tax' => 0,
'Duty' => 0,
'Rate' => 1,
'StockCode' => 5,
);
array_push($InvoiceInfo,$data2);
}
$postdata = json_encode($InvoiceInfo);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
$result = curl_exec($ch);
curl_close($ch);
}
}
}
?>
为了向 WooCommerce 发送数据,您可以使用 WordPress REST API 可以从任何地方接收数据的自定义端点。
但是,由于您没有提供会计服务器的名称,甚至没有提供有关会计应用程序的任何信息,您必须检查是否可以将数据从您的会计应用程序发送到 webhook(使用服务像扎皮尔)。