You can use PHP code like this in your child themes functions file or custom functionality/code snippets plugin.
No need for plugins or coupon codes, this code applies the discount based on the user I.D.
add_action('woocommerce_cart_calculate_fees', 'apply_discount_for_specific_user'); function apply_discount_for_specific_user() { // Get the current user $user = wp_get_current_user(); // Replace with the specific user ID you want to target $specific_user_id = 5; // Change 5 to the ID of the user // Check if the current user's ID matches the specific user ID if ($user->ID == $specific_user_id) { // Define the discount amount $discount = 10; // 10 units of currency, e.g., $10 // Add the discount to the cart WC()->cart->add_fee(__('Special Discount', 'your-text-domain'), -$discount); } }
Usage – Settings
Swap out the value for the $specific_user_id
from 5 and the value for $discount
variable from 10.
And here’s the result for user with the id of 5 who gets a $10 discount on the cart page and at checkout.
About The Code
The code uses the woocommerce_cart_calculate_fees action hook which is located inside the class-wc-cart.php file in WooCommerce. Its wrapped in the calculate_fees()
function which is used in the class-wc-cart-totals.php file to get fee objects from the cart.
You can use this hook to add fee’s and apply discounts conditionally in WooCommerce.
Here’s more code which uses the woocommerce_cart_calculate_fees hook.
Leave a Reply
You must be logged in to post a comment.