Bulk Discount for Several EDD Downloads
Takes a percentage off the Easy Digital Downloads cart when it contains a set number of downloads or more, shown as a discount line at checkout.
Opens WPIDE on
Code
$wpide_edd_bulk = array(
'items' => 3, // Minimum downloads in the cart.
'percent' => 15, // Percent off the subtotal.
);
$wpide_edd_bulk_apply = function () use ( $wpide_edd_bulk ) {
if ( ! function_exists( 'EDD' ) || ! EDD()->fees ) {
return;
}
EDD()->fees->remove_fee( 'wpide_bulk_discount' );
$count = count( (array) edd_get_cart_contents() );
if ( $count >= $wpide_edd_bulk['items'] ) {
EDD()->fees->add_fee( array(
'amount' => -round( (float) edd_get_cart_subtotal() * $wpide_edd_bulk['percent'] / 100, edd_currency_decimal_filter() ),
'label' => sprintf( 'Bulk discount (%d%%)', $wpide_edd_bulk['percent'] ),
'id' => 'wpide_bulk_discount',
'no_tax' => false,
) );
}
};
add_action( 'edd_post_add_to_cart', $wpide_edd_bulk_apply );
add_action( 'edd_post_remove_from_cart', $wpide_edd_bulk_apply );
add_action( 'template_redirect', function () use ( $wpide_edd_bulk_apply ) {
if ( function_exists( 'edd_is_checkout' ) && edd_is_checkout() ) {
$wpide_edd_bulk_apply();
}
} );
Notes
Uses EDD cart fees and recalculates whenever items are added or removed.
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.