Absolutely this should be an option, it’s amazing how this idea is three years old now.
Customers should not be able to apply points to products that are already on sale
EDIT: Include this on your functions.php file to use original price instead of sale price when redeeming points:
//do not apply fixed price coupon when product is on sale
add_action( ‘woocommerce_before_calculate_totals’, ‘adjust_cart_coupon’, 10, 1);
function adjust_cart_coupon( $cart_object) {
global $woocommerce;
if ($coupons = WC()->cart->get_applied_coupons() == False ) {
$coupon = False;
} else {
foreach ( WC()->cart->get_applied_coupons() as $code ) {
$coupons1 = new WC_Coupon( $code );
if ($coupons1->type == ‘fixed_cart’){
$coupon = True;
}
}
}
if ($coupon == True){
foreach ( $cart_object->get_cart() as $cart_item ){
$price = $cart_item[‘data’]->regular_price;
//sets cart item to use regular price and not sale price
$cart_item[‘data’]->set_price( $price );
}
}
}
I really need this before our black friday is it possible to put code here to block points redemption on sale items?
Absolutely this should be an option, it’s amazing how this idea is three years old now.
Customers should not be able to apply points to products that are already on sale
EDIT: Include this on your functions.php file to use original price instead of sale price when redeeming points:
//do not apply fixed price coupon when product is on sale
add_action( ‘woocommerce_before_calculate_totals’, ‘adjust_cart_coupon’, 10, 1);
function adjust_cart_coupon( $cart_object) {
global $woocommerce;
if ( is_admin() && ! defined( ‘DOING_AJAX’ ) ){
return;
}
$coupon = False;
if ($coupons = WC()->cart->get_applied_coupons() == False ) {
$coupon = False;
} else {
foreach ( WC()->cart->get_applied_coupons() as $code ) {
$coupons1 = new WC_Coupon( $code );
if ($coupons1->type == ‘fixed_cart’){
$coupon = True;
}
}
}
if ($coupon == True){
foreach ( $cart_object->get_cart() as $cart_item ){
$price = $cart_item[‘data’]->regular_price;
//sets cart item to use regular price and not sale price
$cart_item[‘data’]->set_price( $price );
}
}
}