如何在Woocommerce的变量产品中显示自定义字段的价值?

时间:2017-05-30 16:14:22

标签: wordpress woocommerce

我尝试在变量产品中显示/打印自定义字段的值:

get_post_meta();

但是,我没有成功,然后我详细描述了问题:

我在所有产品(modelo)中添加了一个自定义字段,并在归档函数中添加了下一个代码行.php:

function campo_personalizado_apg() {
    woocommerce_wp_text_input( array( 
        'id' => 'modelo', 
        'class' => 'wc_input short', 
        'label' => __( 'modelo', 'woocommerce' )
    ) );
}
add_action( 'woocommerce_product_options_pricing', 'campo_personalizado_apg' );


function campo_personalizado_variable_apg( $loop, $datos_de_variacion, $variacion ) {
    echo PHP_EOL . "<div>";
    woocommerce_wp_text_input( array( 
        'id' => 'modelo[' . $variacion->ID . ']', 
        'class' => 'wc_input short', 
        'label' => __( 'modelo', 'woocommerce' ),
        'value' => get_post_meta( $variacion->ID, 'modelo', true ),
        'style' => 'display:block;', 
    ) );
    echo "</div>" . PHP_EOL;
}
add_action( 'woocommerce_product_after_variable_attributes', 'campo_personalizado_variable_apg', 10, 3 );


function guarda_campos_personalizados_apg( $product_id ) { 
    if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
        return;
    }
    if ( isset( $_POST['modelo'] ) ) {
        update_post_meta( $product_id, 'modelo', $_POST['modelo'] );
    } else {
        delete_post_meta( $product_id, 'modelo' );
    }
}
add_action( 'save_post', 'guarda_campos_personalizados_apg' );


function guarda_campos_personalizados_variable_apg( $product_id ) { 
    if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
        return;
    }
    if ( isset( $_POST['modelo'][$product_id] ) ) {
        update_post_meta( $product_id, 'modelo', $_POST['modelo'][$product_id] );
    } else {
        delete_post_meta( $product_id, 'modelo' );
    }
}
add_action( 'woocommerce_save_product_variation', 'guarda_campos_personalizados_variable_apg', 10, 2 );

我使用下一个代码行在任何.php存档中显示/打印自定义字段的值:

if ($product->is_type('variable')) {
    echo get_post_meta(get_the_ID(), 'modelo', true);
    var_dump(get_post_meta(get_the_ID(), 'modelo', true));

} else {
    echo get_post_meta(get_the_ID(), 'modelo', true);
}

在单个产品中,自定义字段显示正常:

Modelo: p5r.2

问题是当我尝试显示/打印变量产品的自定义字段的值时:

代码行:

get_post_meta(get_the_ID(), 'modelo', true);

显示/打印:

array

代码行:

var_dump(get_post_meta(get_the_ID(), 'modelo', true));

显示/打印:

array(3) { [4299]=> string(3) "p5r.3" [4300]=> string(3) "p5r.4" [4301]=> string(3) "p5r.5" } 

¿你能帮助我吗?请。

(抱歉我的英文)。

感谢。

0 个答案:

没有答案