Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress 使用应用程序将订单从Woocommerce webhook导出到google sheets_Wordpress_Google Apps Script_Google Sheets_Woocommerce_Webhooks - Fatal编程技术网

Wordpress 使用应用程序将订单从Woocommerce webhook导出到google sheets

Wordpress 使用应用程序将订单从Woocommerce webhook导出到google sheets,wordpress,google-apps-script,google-sheets,woocommerce,webhooks,Wordpress,Google Apps Script,Google Sheets,Woocommerce,Webhooks,我发现了一个GoogleSheets应用程序,可以使用Woocommerce网络钩子将订单从Woocommerce导出到GoogleSheets。经过一个小的修改后,它看起来像这样: //this is a function that fires when the webapp receives a GET request function doGet(e) { return HtmlService.createHtmlOutput("request received")

我发现了一个GoogleSheets应用程序,可以使用Woocommerce网络钩子将订单从Woocommerce导出到GoogleSheets。经过一个小的修改后,它看起来像这样:

//this is a function that fires when the webapp receives a GET request
function doGet(e) {
  return HtmlService.createHtmlOutput("request received");
}

//this is a function that fires when the webapp receives a POST request
function doPost(e) {
  var myData             = JSON.parse([e.postData.contents]);
  var order_created      = myData.date_created;
  var billing_email      = myData.billing.email;
  var total_items        = myData.total.items;
  var order_total        = myData.total;
  var order_number       = myData.number;


  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.appendRow([order_created,billing_email,total_items,order_total,order_number]);
}
该脚本运行良好,但我想导出订单中的项目总数(所有产品/SKU)。这应该通过生产线来完成

var total_items=myData.total.items

但不幸的是,它不起作用(它没有显示任何数据)。我想这是因为行中的“myData.total.items”部分

有人能帮我纠正这句话吗

还有一个问题,有人能告诉我如何从日期中删除时间戳吗。结果看起来像“2021-06-07T11:30:02”(我想删掉:T11:30:02) 谢谢

gsheets中当前的情况是:('items'为空)

应该是这样的:这应该计算订单中所有项目的数量,而不仅仅是订单中1种产品的数量

//这是一个在webapp收到GET请求时激发的函数
函数doGet(e){
返回HtmlService.createHtmlOutput(“收到请求”);
}
//这是一个在webapp收到POST请求时启动的函数
函数doPost(e){
var myData=JSON.parse([e.postData.contents]);
var order_created=myData.date_created.split(“T”)[0];
var billing_email=myData.billing.email;
var总计项目=0
对于(var i=0;iTry

var总计项目=0

对于(var i=0;i我希望通过这种方式,您可以轻松阅读完整json的结构

function doPost(e) {
  var myData             = JSON.parse([e.postData.contents]);
  getPairs(eval(myData),'myData')
}
function getPairs(obj,id) {
  const regex = new RegExp('[^0-9]+');
  const fullPath = true
  var sheet = SpreadsheetApp.getActiveSheet();
  for (let p in obj) {
    var newid = (regex.test(p)) ? id + '.' + p : id + '[' + p + ']';
    if (obj[p]!=null){
      if (typeof obj[p] != 'object' && typeof obj[p] != 'function'){
        sheet.appendRow([fullPath?newid:p, obj[p]]);
      }
      if (typeof obj[p] == 'object') {
        getPairs( obj[p], newid );
      }
    }
  }
} 

关于第一个问题,您能否提供
myData.total.items
的样本值和您期望的样本输出值?关于第二个问题,当您想从
2021-06-07T11:30:02
检索
2021-06-07T11:30:02
时,
console.log(“2021-06-07T11:30:02”)[0]怎么样
?@Tanaike,请看帖子中的样本。我应该把这行“console.log(“2021-06-07T11:30:02”)。split(“T”)[0])放在哪里准确吗?谢谢你的回复。我不得不为我糟糕的英语水平道歉。不幸的是,从你的回复中,我仍然无法理解
myData.total.items
的样本值和你期望的样本输出值。那么,你能提供
myData.total.items
的样本值和你需要的样本输出值吗预期?关于
我应该把这行“console.log”(“2021-06-07T11:30:02.split”(“T”)[0])”放在哪里?
,在您的情况下,如何修改
var order\u created=myData.date\u created;
var order\u created=myData.date\u created.split(“T”)[0]
?如果我能提供一些帮助…你能提供一段doGet的回复,显示…“总计”:{“项目”:“XXXX…我在woocommerce json示例中没有看到这一点!@MikeSteelson和Tanaike,我编辑过(最后)这篇文章添加了2个截图,分别是1.当前的谷歌表单输出和2.应该是什么样子的。不知道你是否可以看到这些截图?我可以从我这边看到它们。。。
function doPost(e) {
  var myData             = JSON.parse([e.postData.contents]);
  getPairs(eval(myData),'myData')
}
function getPairs(obj,id) {
  const regex = new RegExp('[^0-9]+');
  const fullPath = true
  var sheet = SpreadsheetApp.getActiveSheet();
  for (let p in obj) {
    var newid = (regex.test(p)) ? id + '.' + p : id + '[' + p + ']';
    if (obj[p]!=null){
      if (typeof obj[p] != 'object' && typeof obj[p] != 'function'){
        sheet.appendRow([fullPath?newid:p, obj[p]]);
      }
      if (typeof obj[p] == 'object') {
        getPairs( obj[p], newid );
      }
    }
  }
}