load discount(strikeout) only for the default variant for variable products
load discount(strikeout) only for the default variant for variable products
add_filter( 'woo_discount_rules_price_strikeout_after_discount_price', 'woo_discount_rules_price_strikeout_after_discount_price_method', 10, 2 );
function woo_discount_rules_price_strikeout_after_discount_price_method($item_price, $product){
if ( ! ( is_shop() || is_product_category() || is_product_tag() ) ) return $item_price;
if($product->is_type(array('variable', 'subscription_variation', 'variable-subscription'))){
// Searching for the default variation
$default_attributes = $product->get_default_attributes();
// Loop through available variations
foreach($product->get_available_variations() as $variation){
$found = true; // Initializing
// Loop through variation attributes
foreach( $variation['attributes'] as $key => $value ){
$taxonomy = str_replace( 'attribute_', '', $key );
// Searching for a matching variation as default
if( isset($default_attributes[$taxonomy]) && $default_attributes[$taxonomy] != $value ){
$found = false;
break;
}
}
// When it's found we set it and we stop the main loop
if( $found ) {
$default_variaton = $variation;
break;
} // If not we continue
else {
continue;
}
}
if(isset($default_variaton)){
if(isset($default_variaton['variation_id']) && !empty($default_variaton['variation_id'])){
$product = wc_get_product($default_variaton['variation_id']);
global $flycart_woo_discount_rules;
if(!empty($flycart_woo_discount_rules)){
$discounted_price = $flycart_woo_discount_rules->pricingRules->getDiscountPriceOfProduct($product);
if($discounted_price != null && $discounted_price != ''){
$item_price = preg_replace('/<\/del> <ins>.*<\/ins>/', '</del><ins>'.wc_price($discounted_price).$product->get_price_suffix($discounted_price).'</ins>', $item_price);
}
}
}
}
}
return $item_price;
}