首页 > 解决方案 > 使用 save_post 操作(自定义帖子类型)在函数中操作自定义字段(在 acf 中创建)以更新元数据

问题描述

在woocommerce的自定义帖子类型产品中,我有一些自定义字段(在ACF中创建),我需要在保存或更新帖子时采取行动,即我想在woocommerce属性中添加字段的值. 这是我的示例代码。我有一个名为 : ISBN 的文本字段,我尝试在元属性中传递值:

//save_post_NAME_CPT
add_action('save_post_product', 'update_post_meta_subito' , 10, 3 ); 

function update_post_meta_subito( $post_id, $post, $update ) { 

        //get field isbn of current post
        $prova_termine = get_field( "isbn", $post_id );

         //add value field in global pa_autore attribute
        $term_taxonomy_ids = wp_set_object_terms( $post_id, $prova_termine, 'pa_autore', true );

        //add value field in current attribute post
        $data = Array(

        'pa_autore'=>Array( 
        'name'=>'pa_autore', 
        'value'=>$prova_termine, 
        'is_visible' => '1', 
        'is_variation' => '1',
        'is_taxonomy' => '1'
        ),

        );

        update_post_meta( $post_id, '_product_attributes',$data);
    }

这不起作用!它没有传递任何价值!但在这种情况下,它可以工作:

add_action('save_post_product', 'update_post_meta_subito' , 10, 3 ); 

function update_post_meta_subito( $post_id, $post, $update ) { 

        $prova_termine='ronaldo';

        $term_taxonomy_ids = wp_set_object_terms( $post_id, $prova_termine, 'pa_autore', true );

        $data = Array(

        'pa_autore'=>Array( 
        'name'=>'pa_autore', 
        'value'=>$prova_termine, 
        'is_visible' => '1', 
        'is_variation' => '1',
        'is_taxonomy' => '1'
        ),

        );

        update_post_meta( $post_id, '_product_attributes',$data);
    }

那么,在第一个函数中没有取字段的值,我哪里错了?

标签: phpwordpressfunction

解决方案


推荐阅读