【发布时间】:2019-10-29 15:00:27
【问题描述】:
我看到过类似的问题,并尝试了所有解决方案,但似乎没有一个适合我的项目。
我的所有产品都有额外的规格,当客户在产品页面上选择不同的变体时需要更改。我需要将规格显示在产品属性表中 到目前为止,我已经尝试了几种不同的方法,但到目前为止我的代码看起来像这样。我可以从编辑产品页面获取要保存的额外数据,但我不知道如何让它显示在产品页面上。
函数.php
// Add custom fields to product variation settings
add_action( 'woocommerce_product_after_variable_attributes','add_variation_options_other_dimensions', 10, 3 );
function add_variation_options_other_dimensions( $loop, $variation_data, $variation ){
woocommerce_wp_text_input( array(
'id' => 'diameter[' . $loop . ']',
'class' => 'short',
'label' => __( 'Diameter', 'woocommerce' ),
'desc_tip' => 'true',
'description' => __( 'Diameter description help.', 'woocommerce' ),
'value' => get_post_meta( $variation->ID, 'diameter', true )
) );
woocommerce_wp_text_input( array(
'id' => 'thickness[' . $loop . ']',
'class' => 'short',
'label' => __( 'Thickness', 'woocommerce' ),
'desc_tip' => 'true',
'description' => __( 'Thickness description help.', 'woocommerce' ),
'value' => get_post_meta( $variation->ID, 'thickness', true )
) );
}
// Save product variation custom fields values
add_action( 'woocommerce_save_product_variation','save_variation_options_other_dimensions', 10 ,2 );
function save_variation_options_other_dimensions( $variation_id, $i ) {
$diameter = $_POST["diameter"][$i];
if ( isset( $diameter ) )
update_post_meta( $variation_id, 'diameter', esc_attr( $diameter ) );
$thickness = $_POST["thickness"][$i];
if ( isset( $thickness ) )
update_post_meta( $variation_id, 'thickness', esc_attr( $thickness ) );
}
我尝试在“product-attributes.php”和“additional-information.php”中显示值,因为我希望新值与原始属性一起显示。
我的产品属性-php
<?php echo get_post_meta( $product->get_id(), 'diameter', true ); ?>
<?php echo get_post_meta( $product->get_id(), 'thickness', true ); ?>
是否有在产品属性表中显示这些值,或者在产品页面的附加信息选项卡中显示这些值?
如果我的问题很愚蠢,请提前抱歉,这是我第一次发帖。我就是无法让它工作
【问题讨论】:
标签: php wordpress woocommerce