Small Order Fee for Low-Value EDD Carts
Adds a small processing fee to Easy Digital Downloads orders below an amount, covering payment costs on very cheap purchases.
Opens WPIDE on
Code
$wpide_edd_small_fee = array(
'below' => 5, // Orders under this subtotal...
'amount' => 0.50, // ...pay this fee.
'label' => 'Processing fee',
);
$wpide_edd_small_fee_apply = function () use ( $wpide_edd_small_fee ) {
if ( ! function_exists( 'EDD' ) || ! EDD()->fees ) {
return;
}
EDD()->fees->remove_fee( 'wpide_small_order_fee' );
$subtotal = (float) edd_get_cart_subtotal();
if ( $subtotal > 0 && $subtotal < $wpide_edd_small_fee['below'] ) {
EDD()->fees->add_fee( array( 'amount' => $wpide_edd_small_fee['amount'], 'label' => $wpide_edd_small_fee['label'], 'id' => 'wpide_small_order_fee' ) );
}
};
add_action( 'edd_post_add_to_cart', $wpide_edd_small_fee_apply );
add_action( 'edd_post_remove_from_cart', $wpide_edd_small_fee_apply );
add_action( 'template_redirect', function () use ( $wpide_edd_small_fee_apply ) {
if ( function_exists( 'edd_is_checkout' ) && edd_is_checkout() ) {
$wpide_edd_small_fee_apply();
}
} );
Notes
Free carts never get the fee, which shows as its own line at checkout and on the receipt.
How to add this snippet
- Install WPIDE on your WordPress site (it is free) and open Code Snippets.
- Use snippet above adds it from the library in one click. Or copy the code into a new snippet with the same code type.
- It is added inactive: review the code and settings, then switch it on.