【发布时间】:2020-04-04 20:57:15
【问题描述】:
我正在使用以下函数为每个产品变体添加一个名为“price_1_50”的自定义字段:
add_action( 'woocommerce_variation_options_pricing', 'bbloomer_add_custom_field_to_variations', 10, 3 );
function bbloomer_add_custom_field_to_variations( $loop, $variation_data, $variation ) {
woocommerce_wp_text_input( array(
'id' => 'price_1_50[' . $loop . ']',
'class' => 'short',
'label' => __( 'Price 1-50:', 'woocommerce' ),
'value' => get_post_meta( $variation->ID, 'price_1_50', true )
));
}
add_action( 'woocommerce_save_product_variation', 'bbloomer_save_custom_field_variations', 10, 2 );
function bbloomer_save_custom_field_variations( $variation_id, $i ) {
$price_1_50 = $_POST['price_1_50'][$i];
if ( isset( $price_1_50 ) ) update_post_meta( $variation_id, 'price_1_50', esc_attr( $price_1_50 ) );
}
add_filter( 'woocommerce_available_variation', 'bbloomer_add_custom_field_variation_data' );
function bbloomer_add_custom_field_variation_data( $variations ) {
$variations['price_1_50'] = '<div class="woocommerce_custom_field">Price 1-50:
<span>'get_post_meta( $variations[ 'variation_id' ], 'price_1_50', true ) . '</span></div>';
return $variations;
}
在functions.php中,我编写了一个函数,用自定义字段“price_1_50”替换产品价格,但我认为我无法获取变体ID以在前端显示自定义字段。
我试过了
var price = <?php echo get_post_meta( $variation_id, 'price_1_50', true ); ?>;
var price = <?php echo get_post_meta( get_the_ID(), 'price_1_50', true ); ?>;
$arrvariations = $variation->get_children (); $price_1_50 = get_post_meta( $arrvariations, 'price_1_50', true ); echo $price_1_50;
在单个产品页面的前端获得结果的唯一方法是如果我编写变体 ID。
var price = <?php echo get_post_meta( 10652, 'price_1_50', true ); ?>;
【问题讨论】:
标签: php wordpress woocommerce