为了账号安全,请及时绑定邮箱和手机立即绑定

WooCommerce:从产品变体中获取自定义字段并将其显示为变体价格的后缀

WooCommerce:从产品变体中获取自定义字段并将其显示为变体价格的后缀

PHP
慕的地10843 2023-04-15 20:33:44
我试图从产品变体的自定义数字字段中获取一个值,并将其显示为变体价格的后缀以及自定义文本。我在工作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 回答

?
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 );



查看完整回答
反对 回复 2023-04-15
  • 1 回答
  • 0 关注
  • 109 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信