Автор, данная функция делает подсчёт только в корзине. Для того что бы получить выбранный метод оплаты нужно цепляться к хукам относящиеся к оформлению заказа (т.е. checkout).
Как вариант можно использовать этот хук
woocommerce_after_calculate_totals
Пример использования такой:
add_action( 'woocommerce_after_calculate_totals', 'custom_fee_for_paypal' );
function custom_fee_for_paypal( $cart ) {
//проверяем это страница оформления заказа или нет
if ( is_checkout() || defined('WOOCOMMERCE_CHECKOUT') ) {
//получаем выбранный метод оплаты
$patment_method = WC()->session->get( 'chosen_payment_method' );
//Если выбранный метод равен paypal то идём дальше
if( $patment_method == 'paypal' ) {
$percentage = 0.14;
//Получаем значение суммы надбавки за пайпел
$surcharge = ( $cart->cart_contents_total + $cart->shipping_total ) * $percentage;
//Добавляем надбавку
$cart->add_fee( 'Комиссия за PayPal ', $surcharge, true, '' );
}
}
}
Я этот код написал только что "на коленке", так что он не претендует на истину. Если что то не будет работать в этом коде, то подумайте почему.