我见过类似的问题,并尝试了所有的解决方案,但似乎没有一个适用于我的项目。
我所有的产品都有额外的规格,当客户在产品页面上选择不同的变体时,需要进行更改。我需要在产品属性表中显示规格。到目前为止,我已经尝试了几种不同的方法,但我的代码到目前为止看起来像这样。我可以从编辑产品页面获取额外的数据进行保存,但我不知道如何让它显示在产品页面上。
Functions.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 ); ?>
型
是否可以在产品页面上的产品属性表中或其后面的附加信息选项卡中显示这些值?
如果我的问题是愚蠢的,提前道歉,这是我第一次发帖。我只是不能让它工作
1条答案
按热度按时间mftmpeh81#
我不认为数据是你要求的,但这里有一个通用的指南,用于在选择变量时添加/显示自定义变量数据。我还转换为使用Woo的CRUD,以便将来兼容。
字符串