Добавить дополнительную плату на основе значения пользовательского поля ввода - PullRequest
0 голосов
/ 04 апреля 2019

У меня есть созданное пользовательское поле, которое получает значение и добавляет его в корзину 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
        ),'');

    }

В этом поле добавляется поле ввода, это числовое значение.

Итак, моя корзинаoutput

enter image description here

Таким образом, проблема здесь заключается в том, что значения «Длина дорожки (м)» должны быть вычислены до общего

Элемент 1 = 999 $ Длина дорожки (м) = 24 $ / м

Я очень запутался в том, как сделать эту работу

, и этот код я использую для отображения этих значений накорзина

// 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>';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...