Php WOO商业订单/AFC获取子字段/获取子字段对象(数组)
设置ACF repeater字段,该字段在订单中存储不同数量的跟踪编号。0已成功检索此信息,因此需要一些建议 我用它把信息放在子字段中,它完成了这项工作Php WOO商业订单/AFC获取子字段/获取子字段对象(数组),php,woocommerce,advanced-custom-fields,Php,Woocommerce,Advanced Custom Fields,设置ACF repeater字段,该字段在订单中存储不同数量的跟踪编号。0已成功检索此信息,因此需要一些建议 我用它把信息放在子字段中,它完成了这项工作 foreach ($base->DocumentLines->DocumentLine as $item) { foreach ($item->MiscData as $misc) { foreach ($misc->PackageNo as $package) {
foreach ($base->DocumentLines->DocumentLine as $item) {
foreach ($item->MiscData as $misc) {
foreach ($misc->PackageNo as $package) {
$trackno = (string)$package->TrackingNo;
update_post_meta("$order_id", $field_rep, $count);
$sub = $count +1;
update_sub_field(array($field_key_rep, $sub, $field_key_sub), $trackno, "$order_id");
$count = $count + 1;
update_field($field_key, $trackno, "$order_id");
}
}
}
这很有效,但我需要检索这些数字并写出它们。他们被包含在一封电子邮件中,因此需要检索无序的数据
在重建函数以便能够处理多个数字之前,我确实使用了单个字段,并且可以使用
get_post_meta($order_id, 'tracking', true);
感觉我现在什么都试过了,但什么都没有得到
来自其中一个订单的图像,在这个订单中是10个跟踪编号,但如果需要帮助,则从1到20不等
10个小时后,当你意识到你的子字段名称中遗漏了一个大写字母时的感觉 我只是想提交我的解决方案,希望它能帮助其他有ACF Repeater fields+Woocommerce问题的人 对于我的具体情况,我确实制作了一个函数,可以从XML文件中提取我上面的函数添加的所有跟踪号
$function trackingNo($postID) {
$field_rep = 'trackingNo';
$field_sub = 'no';
if (have_rows($field_rep, $postID)) {
$trackingNo = array();
// loop through the rows of data
while (have_rows($field_rep, $postID)):
the_row();
// Add to array
$trackingNo[] = get_sub_field($field_sub);
endwhile;
$foo = implode('&consignmentId=', $trackingNo);
$bar = 'urlzz/tracktrace/TrackConsignments_do.jsp?&consignmentId=';
$value = $bar . $foo;
return $value;
}
}
任何关于改进的建议都是欢迎的,我的PHP是如此:)当你在10个小时后意识到你的子字段名称中遗漏了一个大写字母时的感觉 我只是想提交我的解决方案,希望它能帮助其他有ACF Repeater fields+Woocommerce问题的人 对于我的具体情况,我确实制作了一个函数,可以从XML文件中提取我上面的函数添加的所有跟踪号
$function trackingNo($postID) {
$field_rep = 'trackingNo';
$field_sub = 'no';
if (have_rows($field_rep, $postID)) {
$trackingNo = array();
// loop through the rows of data
while (have_rows($field_rep, $postID)):
the_row();
// Add to array
$trackingNo[] = get_sub_field($field_sub);
endwhile;
$foo = implode('&consignmentId=', $trackingNo);
$bar = 'urlzz/tracktrace/TrackConsignments_do.jsp?&consignmentId=';
$value = $bar . $foo;
return $value;
}
}
任何关于改进的建议都是欢迎的,我的PHP非常好:)