Add individual charges for each payment method as a flat rate and/or as a percentage of the cart total. The plugin first calculates the percentage rate and then adds the fixed rate on top. Coupons are not supported. (Sorry guys. I tried, but no way.)
You will find a stable version in WordPress plugin directory.
Previous versions have been created by Jörn Lund, who abandoned this project due to a pile of other projects in 2016. See the previous GitHub for details. The new version is maintained by Karolína Vyskočilová since 2017.
- Translations moved to WordPress.org and deleted from the plugin itself.
Applied to the payment gateway fee before it is added to woocomerce' cart. If you work with subtotal, check how to get it.
Example:
function my_pay4pay_amount( $amount , $calculation_base , $current_payment_gateway , $taxable , $include_taxes , $tax_class ) {
if ( my_customer_complained_too_much() )
return $amount * 10;
else
return $amount;
}
$current_gateway_id = 'cod';
add_filter( "woocommerce_pay4pay_{$current_gateway_id}_amount", 'my_pay4pay_amount' , 10 , 6 );
Handle if a payment fee is applied. If you work with subtotal, check how to get it.
Example:
function my_pay4pay_handle_christmas( $do_apply , $amount , $calculation_base , $current_payment_gateway ) {
if ( today_is_christmas() )
return false;
else
return $do_apply;
}
add_filter( "woocommerce_pay4pay_apply", 'my_pay4pay_handle_christmas' , 10 , 4 );
Handle if a payment fee on a specific payment method should be applied. If you work with subtotal, check how to get it.
Example:
function my_pay4pay_apply( $do_apply , $amount , $calculation_base , $current_payment_gateway ) {
if ( my_customer_is_a_nice_guy() )
return false;
else
return $do_apply;
}
$current_gateway_id = 'cod';
add_filter( "woocommerce_pay4pay_applyfor_{$current_gateway_id}", 'my_pay4pay_apply' , 10 , 4 );
Within your filter use following lines:
$cart = WC()->cart;
if ( wc_prices_include_tax() ) {
$subtotal = intval( $cart->subtotal );
} else {
$subtotal = intval( $cart->subtotal_ex_tax );
}