根据自定义输入字段值添加额外费用

时间:2019-04-04 06:14:49

标签: php wordpress woocommerce

我创建了一个自定义字段,该字段获取一个值并将其添加到woocommerce购物车中

add_action( 'woocommerce_before_add_to_cart_button', 'fabric_length_product_field' );

    function fabric_length_product_field() {
        global $product;

        woocommerce_form_field('track_length', array(
            'type'     => 'text',
            'class'    => array('my-field-class form-row-wide'),
            'label'    => __('Track Length (m)', 'woocommerce'),
            'maxlength'  => 4,
            'required' => true, // or false
        ),'');

    }

这是输入字段,它是数字。

这是我的购物车输出

enter image description here

所以,这里的问题是“轨道长度(m)”值应计算为总值

项目1 = 999美元 轨道长度(m)= $ 24 / m

我对如何使这项工作感到困惑

这是我用来在购物车上显示这些值的代码

// Change the line total price
add_filter( 'woocommerce_get_discounted_price', 'calculate_discounted_price', 10, 2 );
// Display the line total price
add_filter( 'woocommerce_cart_item_subtotal', 'display_discounted_price', 10, 2 );

function calculate_discounted_price( $price, $values ) {

    global $woocommerce;
    $items = WC()->cart->get_cart();
    $arr_product=array();
    foreach($items as $item => $values) {             
        $tl_val = $values['tlength']['value'] * 24;
    }   
    $price += $tl_val;
    return $price;
}

    function display_discounted_price( $values, $item ) {

    global $woocommerce;
    $items = WC()->cart->get_cart();
    $arr_product=array();

    foreach($items as $gitem => $values) {             
        $tl_val = $values['tlength']['value'];
        $tl_val_computed = $values['tlength']['value'] * 24;
    } 

    return wc_price( $item[ 'line_total' ] ).'<font style="display:block;color:#949494;font-size:12px;">'.$tl_val.'m x $24 = $'.$tl_val_computed.'</font>';
}

0 个答案:

没有答案