Мне нужно добавить заряд на общий вес товара и показать его в корзине.
Я имею в виду в корзине, при добавлении товара, я буду устанавливать дополнительную плату.
Этот заряд должен быть рассчитан следующим образом:
$extra_charge = $total_cart_weight * 0.15;
Если это возможно, как я могу достичь этого?
Спасибо
Вы можете легко подключить эту функцию к 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' );
Этот код протестирован и работает. Он идет по файлу function.php вашей активной дочерней темы или темы.
Для налоговых опций: увидеть налоговые опции метода add_fee () в зависимости от ваших глобальных налоговых настроек.
Ссылка:
Я считаю, что вы могли бы использовать этот Плагин для создания категории за дополнительную плату. Возможно, вам придется отредактировать плагин, чтобы сделать% от платы за корзину% от общей стоимости, но это не должно быть слишком сложно выяснить. Я не могу отредактировать плагин для вас, если я не знаю, откуда вы получаете вес. Вам просто нужно отредактировать файл wc-extra-fee-option.php и изменить строку 133 так, чтобы $ extra_fee_option_cost умножалось на вес вместо $ total. Вы можете сделать это, поместив вес в класс, а затем вызвать класс в строке 133. В качестве альтернативы вы можете сделать вес глобальной переменной и просто использовать эту глобальную переменную вместо $ total в строке 133. Надеюсь, это поможет!