2016-08-15 14 views
3

Мне нужно добавить стоимость на полный вес продукта и показать его в корзине.
Я имею в виду в корзине, добавляя товар, я установил дополнительную плату.WooCommerce - Добавление дополнительной платы в корзину по всему объему товаров

Этот заряд следует рассчитать так:

$extra_charge = $total_cart_weight * 0.15; 

Если это возможно, как я могу добиться этого?

Благодаря

+0

Проверили вы мой код? Это намного лучше, низкое потребление ресурсов и легкий вес, чем плагин. Спасибо – LoicTheAztec

+0

да, я тестировал. Я не знаю знаний о коде, поэтому мне нужна ваша помощь: мое название темы «santa», а cart wight - «$ woocommerce-> cart-> cart_contents_weight», как я могу изменить эту функцию для работы? –

ответ

1

Вы можете сделать это легко закреплять эту функцию, чтобы woocommerce_cart_calculate_fees крючке, таким образом:

function weight_add_cart_fee() { 

    // Set here your percentage 
    $percentage = 0.15; 

    if (is_admin() && ! defined('DOING_AJAX')) 
     return; 

    // Get weight of all items in the cart 
    $cart_weight = WC()->cart->get_cart_contents_weight(); 

    // calculate the fee amount 
    $fee = $cart_weight * $percentage; 

    // If weight amount is not null, adds the fee calcualtion to cart 
    if (!empty($cart_weight)) { 
     WC()->cart->add_fee(__('Extra charge (weight): ', 'your_theme_slug'), $fee, false); 
    } 
} 
add_action('woocommerce_cart_calculate_fees','weight_add_cart_fee'); 

Этот код проверен и работает. Он идет в файле functions.php вашей активной дочерней темы или темы.

Для налоговых опций: см add_fee() method tax options в зависимости от глобальных настроек налогов.

Ссылка:

0

Я считаю, что вы могли бы использовать this плагин для создания дополнительной категории заряда. Возможно, вам придется отредактировать плагин, чтобы% от платы за загрузку составляло% от общей суммы веса, но это не должно быть слишком сложно понять. Я не могу редактировать плагин для вас, если я не знаю, откуда вы получаете вес. Вам просто нужно отредактировать файл wc-extra-fee-option.php и изменить строку 133, чтобы $ extra_fee_option_cost умножался на вес вместо $ total. Вы можете сделать это, поместив вес в класс, а затем вызовите класс в строке 133. В качестве альтернативы вы можете сделать вес глобальной переменной и просто использовать эту глобальную переменную вместо $ total в строке 133. Надеюсь, это поможет!