我创建了一个自定义字段,该字段获取一个值并将其添加到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
),'');
}
这是输入字段,它是数字。
这是我的购物车输出
所以,这里的问题是“轨道长度(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>';
}