Php WOO商业订单/AFC获取子字段/获取子字段对象(数组)

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) {

设置ACF repeater字段,该字段在订单中存储不同数量的跟踪编号。0已成功检索此信息,因此需要一些建议

我用它把信息放在子字段中,它完成了这项工作

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非常好:)