Last active
July 3, 2017 01:18
-
-
Save ChromeOrange/5770314 to your computer and use it in GitHub Desktop.
Add a surcharge to the cart and checkout
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /** | |
| * Add a 1% surcharge to your cart / checkout | |
| * change the $percentage to set the surcharge to a value to suit | |
| * Uses the WooCommerce fees API | |
| * | |
| * Add to theme functions.php | |
| */ | |
| add_action( 'woocommerce_cart_calculate_fees','woocommerce_custom_surcharge' ); | |
| function woocommerce_custom_surcharge() { | |
| global $woocommerce; | |
| if ( is_admin() && ! defined( 'DOING_AJAX' ) ) | |
| return; | |
| $percentage = 0.01; | |
| $surcharge = ( $woocommerce->cart->cart_contents_total + $woocommerce->cart->shipping_total ) * $percentage; | |
| $woocommerce->cart->add_fee( 'Surcharge', $surcharge, true, '' ); | |
| } |
Hi, thanks for this snippet.
Is it possible to add the fee based on the chosen payment method?
Author
Corrected to remove 'standard' from add_fee based on woocommerce/woocommerce#6808
Where do i post this code ?
How would I make the fee/surcharge populate based on a minimum cart total amount...say $500...?
Was anyone able to find an answer to not have the surcharge be added to one product at all? I want it added to all products exept one of them. Thanks in advance.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hi Everyone,
The reason this is happening is due to a rounding error - PayPal can only accept 2 decimal places for the surcharge.
Below is the code that worked for me: