Wordpress 使用应用程序将订单从Woocommerce webhook导出到google sheets
我发现了一个GoogleSheets应用程序,可以使用Woocommerce网络钩子将订单从Woocommerce导出到GoogleSheets。经过一个小的修改后,它看起来像这样: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")
//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 );
}
}
}
}