php 无法更新ACF字段,请帮助查找mustake

3zwtqj6y  于 2022-12-02  发布在  PHP
关注(0)|答案(1)|浏览(107)

由于未知的原因,我的功能不更新ACF自定义字段。功能是搜索特殊订单说明(请不要问为什么插件开发者自己没有添加跟踪号码到订单 meta)。
看起来一切都是正确的,但我仍然没有看到更新。请帮助找到我的错误。

// add_action( 'woocommerce_after_order_object_save', 'find_tracking', 10, 1); // Also tried, it runs function 3 times
add_action( 'save_post_shop_order', 'pax_find_tracking', 10, 1);

function find_tracking ($order_id) {
    global $wpdb;

    $order = wc_get_order( $order_id );
    $ID = $order->get_id();
    $status = $order->get_status();

    if ('completed' == $status) { // it's for testing

        $table_perfixed = $wpdb->prefix . 'comments';
        $sql = "SELECT `comment_content` FROM $table_perfixed WHERE `comment_post_ID` = $ID AND `comment_content` LIKE '%Shipment data sent to server%'";
        $result = $wpdb->get_var($sql); // checked, correct unique result 
        if ($result) {
            $result = mb_substr($result, 44); // checked, correct tracking number 
            update_field('my_tracking_field', $result, $ID); // Also tried without $ID
            //$order->add_order_note($result); // Checked result — it's string, not empty, $result is fine
        }
    }
}
igetnqfo

igetnqfo1#

没有找到问题的根源,但解决办法是使用update_post_meta而不是update_field

update_post_meta( $order_id, 'my_tracking_field', $result );

相关问题