Display Sale Badge using alternative Events

Display sale badges using alternative events.

// Display Sale Badge using alternative Events (useful while sale flash event missing in theme)
if (!function_exists('advanced_woo_discount_rules_display_sale_badge_using_alternative_events')) {
    function advanced_woo_discount_rules_display_sale_badge_using_alternative_events() {
        global $post, $product;
        if (!empty($post) && !empty($product) && $product->is_on_sale()) {
            echo apply_filters('woocommerce_sale_flash', '<span class="onsale">' . esc_html__('Sale!', 'woocommerce') . '</span>', $post, $product);
        }
    }
    add_action('woocommerce_before_shop_loop_item_title', function() {
        advanced_woo_discount_rules_display_sale_badge_using_alternative_events();
    });
    add_action('woocommerce_before_single_product_summary', function() {
        advanced_woo_discount_rules_display_sale_badge_using_alternative_events();
    });
}