ASTRA_Ext_WooCommerce_Markup::get_sale_flash_markup( string $sale_notification, object $product )
Astra Sale flash markup.
Description
Parameters
- $sale_notification
-
(string) (Required) sale bubble type.
- $product
-
(object) (Required) Product.
Return
(mixed) HTML markup.
Source
File: addons/woocommerce/classes/class-astra-ext-woocommerce-markup.php
public function get_sale_flash_markup( $sale_notification, $product ) { $sale_percent_value = ''; $text = __( 'Sale!', 'astra-addon' ); // Default text. $sale_percentage_data = array(); switch ( $sale_notification ) { // Display % instead of "Sale!". case 'sale-percentage': $sale_percent_value = astra_get_option( 'product-sale-percent-value' ); // if not variable product. if ( ! $product->is_type( 'variable' ) ) { $sale_price = $product->get_sale_price(); if ( $sale_price ) { $regular_price = $product->get_regular_price(); $percent_sale = round( ( ( ( $regular_price - $sale_price ) / $regular_price ) * 100 ), 0 ); $sale_percent_value = $sale_percent_value ? $sale_percent_value : '-[value]%'; $text = str_replace( '[value]', $percent_sale, $sale_percent_value ); } } else { // if variable product. foreach ( $product->get_children() as $child_id ) { $variation = wc_get_product( $child_id ); if ( $variation instanceof WC_Product ) { // Checking in case if the wc_get_product exists or is not false. $sale_price = $variation->get_sale_price(); if ( $sale_price ) { $regular_price = $variation->get_regular_price(); $percent_sale = round( ( ( ( $regular_price - $sale_price ) / $regular_price ) * 100 ), 0 ); $sale_percent_value = $sale_percent_value ? $sale_percent_value : '-[value]%'; $text = str_replace( '[value]', $percent_sale, $sale_percent_value ); $sale_percentage_data[ $child_id ] = $percent_sale; } } } } break; } // CSS classes. $classes = array(); $classes[] = ( self::is_shop_page_modern_style() ) ? 'ast-on-card-button ast-onsale-card' : 'onsale'; $classes[] = astra_get_option( 'product-sale-style' ); $classes = implode( ' ', $classes ); // Generate markup. return '<span ' . astra_attr( 'woo-sale-badge-container', array( 'class' => $classes, 'data-sale' => wp_json_encode( $sale_percentage_data ), 'data-notification' => $sale_notification, 'data-sale-per-text' => $sale_percent_value, ) ) . '>' . esc_html( $text ) . '</span>'; }
Expand full source code Collapse full source code View on Trac