【问题标题】:Get value new custom field in variations product Woocommerce?在变体产品 Woocommerce 中获得价值的新自定义字段?
【发布时间】:2020-03-09 13:32:53
【问题描述】:

美好的一天!我在变体产品 Woocommerce 中创建了新的自定义文件!如何获取该字段的值以便在其他功能中使用他?

一般来说,我需要将一个值从一个函数传递到另一个函数,是否可以这样做?

add_action( 'woocommerce_product_after_variable_attributes', 'num_cubicmeters_fields', 10, 3 );
function num_cubicmeters_fields( $loop, $variation_data, $variation ) {
    woocommerce_wp_text_input( array(
        'id'                => '_num_cubic_var[' . $variation->ID . ']', // id поля
        'label'             => 'Количество кубометров', // Надпись над полем
        'description'       => 'Укажи количество кубометров',// Описание поля
        'desc_tip'          => 'true', // Всплывающая подсказка
        'placeholder'       => 'Количество кубометров, м3', // Надпись внутри поля
        'type'              => 'number', // Тип поля
        'custom_attributes' => array( // Произвольные аттрибуты
            'step' => 'any', // Шаг значений
            'min'  => '0', // Минимальное значение
        ),
        'value'             => get_post_meta( $variation->ID, '_num_cubic_var', true ),
    ) );
}


add_action( 'woocommerce_save_product_variation', 'art_save_variation_settings_fields', 10, 2 );
function art_save_variation_settings_fields( $post_id ) {
    $woocommerce__num_cubic_var = $_POST['_num_cubic_var'][ $post_id ];
    if (isset($woocommerce__num_cubic_var) && ! empty( $woocommerce__num_cubic_var ) ) {
        update_post_meta( $post_id, '_num_cubic_var', esc_attr( $woocommerce__num_cubic_var ) );
    }
}

add_filter( 'woocommerce_available_variation', 'load_variation_settings_fields' );
function load_variation_settings_fields( $variations ) {
    $variations_num_cubic = get_post_meta( $variations['variation_id'], '_num_cubic_var', true );
    if ( isset( $variations_num_cubic ) && ! empty( $variations_num_cubic ) ) {
        $variations['_num_cubic_var'] = '<div class="num-cubicmeters-prod">';
        $variations['_num_cubic_var'] .= '<span>Количество Кубометров</span>';
        $variations['_num_cubic_var'] .= get_post_meta( $variations['variation_id'], '_num_cubic_var', true ) . ' м3';
        $variations['_num_cubic_var'] .= '</div>';
    }

    return $variations;
}



function ut_before_calculate_totals( $cart_obj ) {

////    global $product;
////    echo '<pre>';
////        var_dump($product);
////    echo '</pre>';
//
//    $meta = get_post_meta();
//    var_dump($meta);


//    $variations_num_cubic = get_post_meta( $variations['variation_id'], '_num_cubic_var', true );
//    var_dump($variations_num_cubic);



    foreach( $cart_obj->get_cart() as $key => $value ) {

        $product_total_price = ( !empty( get_post_meta( $value['data']->get_id(), '_sale_price', true) ) ) ? get_post_meta( $value['data']->get_id(), '_sale_price', true) : get_post_meta( $value['data']->get_id(), '_regular_price', true);
        $volume = ( isset( $value['variation']['attribute_m-3-na-poddone'] ) ) ? $value['variation']['attribute_m-3-na-poddone'] : 1 ;
        $result_price = $product_total_price * $volume ;

        $value['data']->set_price( $result_price );

    }
}

function create field

dunction for use field

【问题讨论】:

    标签: php wordpress woocommerce


    【解决方案1】:

    你是这个意思吗?

    function ut_before_calculate_totals( $cart_obj ) {
        foreach( $cart_obj->get_cart() as $key => $value ) {
            //echo '<pre>', print_r($value, 1), '</pre>';
            // The variation ID
            $variation_id = $value['data']->get_id();
    
            // output
            echo $variation_id . '<br>';
    
            // Get post meta
            $variations_num_cubic = get_post_meta( $variation_id, '_num_cubic_var', true );
    
            // output
            echo $variations_num_cubic . '<br>';
        }
    }
    add_action( 'woocommerce_before_calculate_totals', 'ut_before_calculate_totals', 10, 1 );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-11
      • 1970-01-01
      • 2021-04-12
      • 2015-07-12
      相关资源
      最近更新 更多