我试图从产品变体的自定义数字字段中获取一个值,并将其显示为变体价格的后缀以及自定义文本。我在工作WooCommerce:从产品变体中获取自定义字段并将其显示在“附加信息区域”将自定义文本添加到 Woocommerce 中的变体价格这就是我所拥有的:// 1. Add custom field input @ Product Data > Variations > Single Variationadd_action( 'woocommerce_variation_options_pricing', 'Add_bulk_price_to_variations', 10, 3 );function Add_bulk_price_to_variations( $loop, $variation_data, $variation ) { woocommerce_wp_text_input( array( 'id' => 'bulk_price[' . $loop . ']', 'desc_tip' => 'true', 'description' => __( 'Enter the Bulk price here.', 'woocommerce' ), 'label' => __( 'Custom Field', 'woocommerce' ), 'value' => get_post_meta( $variation->ID, 'bulk_price', true ) ));}// 2. Save custom field on product variation saveadd_action( 'woocommerce_save_product_variation', 'Save_bulk_price_variations', 10, 2 );function Save_bulk_price_variations( $variation_id, $i ) { $bulk_price = $_POST['bulk_price'][$i]; if ( isset( $bulk_price ) ) { update_post_meta( $variation_id, 'bulk_price', esc_attr( $bulk_price ) ); }}// 3. Store custom field value into variation dataadd_filter( 'woocommerce_available_variation', 'Add_bulk_price_variation_data' );function Add_bulk_price_variation_data( $variations ) { $variations['bulk_price'] = '<div class="woocommerce_bulk_price">Custom Field: <span>' . get_post_meta( $variations[ 'variation_id' ], 'bulk_price', true ) . '</span></div>'; return $variations;}// 4. Show the bulk price on product variationsfunction variation_price_custom_suffix( $variation_data, $product, $variation ) { // Get childIDs in an array $children_ids = $variations->get_children(); foreach ( $children_ids as $child_id ) { $value = get_post_meta( $child_id, 'bulk_price', true ); // True if ( $value ) { $variation_data['price_html'] .= ' <span class="price-suffix">' . $value . __("custom text", "woocommerce") . '</span>'; return $variation_data;}
1 回答
![?](http://img1.sycdn.imooc.com/545846070001a15002200220-100-100.jpg)
GCT1015
TA贡献1827条经验 获得超4个赞
您使用相同的钩子 2x,这就足够了(不再需要第 4 步)
foreach不需要使用循环来获取子 ID
// 3 & 4. Store custom field value into variation data + show the bulk price on product variations
function add_bulk_price_variation_data( $variation_data, $product, $variation ) {
$bulk_price = get_post_meta( $variation_data[ 'variation_id' ], 'bulk_price', true);
if ( $bulk_price ) {
$variation_data['price_html'] .= ' <span class="price-suffix">' . __( $bulk_price , "woocommerce") . '</span>';
}
return $variation_data;
}
add_filter( 'woocommerce_available_variation', 'add_bulk_price_variation_data', 10, 3 );
- 1 回答
- 0 关注
- 109 浏览
添加回答
举报
0/150
提交
取消