/** * Astra Theme & Addon Common function. * * @package Astra Addon */ /** * Apply CSS for the element */ if ( ! function_exists( 'astra_color_responsive_css' ) ) { /** * Astra Responsive Colors * * @param array $setting Responsive colors. * @param string $css_property CSS property. * @param string $selector CSS selector. * @return string Dynamic responsive CSS. */ function astra_color_responsive_css( $setting, $css_property, $selector ) { // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound $css = ''; if ( isset( $setting['desktop'] ) && ! empty( $setting['desktop'] ) ) { $css .= $selector . '{' . $css_property . ':' . esc_attr( $setting['desktop'] ) . ';}'; } if ( isset( $setting['tablet'] ) && ! empty( $setting['tablet'] ) ) { $css .= '@media (max-width:' . astra_addon_get_tablet_breakpoint() . 'px) {' . $selector . '{' . $css_property . ':' . esc_attr( $setting['tablet'] ) . ';} }'; } if ( isset( $setting['mobile'] ) && ! empty( $setting['mobile'] ) ) { $css .= '@media (max-width:' . astra_addon_get_mobile_breakpoint() . 'px) {' . $selector . '{' . $css_property . ':' . esc_attr( $setting['mobile'] ) . ';} }'; } return $css; } } /** * Get Font Size value */ if ( ! function_exists( 'astra_responsive_font' ) ) { /** * Get Font CSS value * * @param array $font CSS value. * @param string $device CSS device. * @param string $default Default value. * @return mixed */ function astra_responsive_font( $font, $device = 'desktop', $default = '' ) { // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound $css_val = ''; if ( isset( $font[ $device ] ) && isset( $font[ $device . '-unit' ] ) ) { if ( '' != $default ) { $font_size = astra_get_css_value( $font[ $device ], $font[ $device . '-unit' ], $default ); } else { $font_size = astra_get_font_css_value( $font[ $device ], $font[ $device . '-unit' ] ); } } elseif ( is_numeric( $font ) ) { $font_size = astra_get_css_value( $font ); } else { $font_size = ( ! is_array( $font ) ) ? $font : ''; } return $font_size; } } if ( function_exists( 'astra_do_action_deprecated' ) ) { // Depreciating astra_woo_qv_product_summary filter. add_action( 'astra_woo_quick_view_product_summary', 'astra_addon_deprecated_astra_woo_quick_view_product_summary_action', 10 ); /** * Astra Color Palettes * * @since 1.1.2 */ function astra_addon_deprecated_astra_woo_quick_view_product_summary_action() { astra_do_action_deprecated( 'astra_woo_qv_product_summary', array(), '1.0.22', 'astra_woo_quick_view_product_summary', '' ); } } /** * Get Responsive Spacing */ if ( ! function_exists( 'astra_responsive_spacing' ) ) { /** * Get Spacing value * * @param array $option CSS value. * @param string $side top | bottom | left | right. * @param string $device CSS device. * @param string $default Default value. * @param string $prefix Prefix value. * @return mixed */ function astra_responsive_spacing( $option, $side = '', $device = 'desktop', $default = '', $prefix = '' ) { // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound if ( isset( $option[ $device ][ $side ] ) && isset( $option[ $device . '-unit' ] ) ) { $spacing = astra_get_css_value( $option[ $device ][ $side ], $option[ $device . '-unit' ], $default ); } elseif ( is_numeric( $option ) ) { $spacing = astra_get_css_value( $option ); } else { $spacing = ( ! is_array( $option ) ) ? $option : ''; } if ( '' !== $prefix && '' !== $spacing ) { return $prefix . $spacing; } return $spacing; } } /** * Get calc Responsive Spacing */ if ( ! function_exists( 'astra_calc_spacing' ) ) { /** * Get Spacing value * * @param array $value Responsive spacing value with unit. * @param string $operation + | - | * | /. * @param string $from Perform operation from the value. * @param string $from_unit Perform operation from the value of unit. * @return mixed */ function astra_calc_spacing( $value, $operation = '', $from = '', $from_unit = '' ) { // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound $css = ''; if ( ! empty( $value ) ) { $css = $value; if ( ! empty( $operation ) && ! empty( $from ) ) { if ( ! empty( $from_unit ) ) { $css = 'calc( ' . $value . ' ' . $operation . ' ' . $from . $from_unit . ' )'; } if ( '*' === $operation || '/' === $operation ) { $css = 'calc( ' . $value . ' ' . $operation . ' ' . $from . ' )'; } } } return $css; } } /** * Adjust the background obj. */ if ( ! function_exists( 'astra_get_background_obj' ) ) { /** * Adjust Brightness * * @param array $bg_obj Color code in HEX. * * @return array Color code in HEX. */ function astra_get_background_obj( $bg_obj ) { // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound $gen_bg_css = array(); $bg_img = isset( $bg_obj['background-image'] ) ? $bg_obj['background-image'] : ''; $bg_color = isset( $bg_obj['background-color'] ) ? $bg_obj['background-color'] : ''; $bg_type = isset( $bg_obj['background-type'] ) ? $bg_obj['background-type'] : ''; if ( '' !== $bg_type ) { switch ( $bg_type ) { case 'color': if ( '' !== $bg_img && '' !== $bg_color ) { $gen_bg_css['background-image'] = 'linear-gradient(to right, ' . $bg_color . ', ' . $bg_color . '), url(' . $bg_img . ');'; } elseif ( '' === $bg_img ) { $gen_bg_css['background-color'] = $bg_color . ';'; } break; case 'image': if ( '' !== $bg_img && '' !== $bg_color && ( ! is_numeric( strpos( $bg_color, 'linear-gradient' ) ) && ! is_numeric( strpos( $bg_color, 'radial-gradient' ) ) ) ) { $gen_bg_css['background-image'] = 'linear-gradient(to right, ' . $bg_color . ', ' . $bg_color . '), url(' . $bg_img . ');'; } if ( '' === $bg_color || is_numeric( strpos( $bg_color, 'linear-gradient' ) ) || is_numeric( strpos( $bg_color, 'radial-gradient' ) ) && '' !== $bg_img ) { $gen_bg_css['background-image'] = 'url(' . $bg_img . ');'; } break; case 'gradient': if ( isset( $bg_color ) ) { $gen_bg_css['background-image'] = $bg_color . ';'; } break; default: break; } } elseif ( '' !== $bg_color ) { $gen_bg_css['background-color'] = $bg_color . ';'; } if ( '' !== $bg_img ) { if ( isset( $bg_obj['background-repeat'] ) ) { $gen_bg_css['background-repeat'] = esc_attr( $bg_obj['background-repeat'] ); } if ( isset( $bg_obj['background-position'] ) ) { $gen_bg_css['background-position'] = esc_attr( $bg_obj['background-position'] ); } if ( isset( $bg_obj['background-size'] ) ) { $gen_bg_css['background-size'] = esc_attr( $bg_obj['background-size'] ); } if ( isset( $bg_obj['background-attachment'] ) ) { $gen_bg_css['background-attachment'] = esc_attr( $bg_obj['background-attachment'] ); } } return $gen_bg_css; } } /** * Adjust the background obj. */ if ( ! function_exists( 'astra_get_responsive_background_obj' ) ) { /** * Add Responsive bacground CSS * * @param array $bg_obj_res Color array. * @param array $device Device name. * * @return array Color code in HEX. */ function astra_get_responsive_background_obj( $bg_obj_res, $device ) { // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound $gen_bg_css = array(); if ( ! is_array( $bg_obj_res ) ) { return; } $bg_obj = $bg_obj_res[ $device ]; $bg_img = isset( $bg_obj['background-image'] ) ? $bg_obj['background-image'] : ''; $bg_tab_img = isset( $bg_obj_res['tablet']['background-image'] ) ? $bg_obj_res['tablet']['background-image'] : ''; $bg_desk_img = isset( $bg_obj_res['desktop']['background-image'] ) ? $bg_obj_res['desktop']['background-image'] : ''; $bg_color = isset( $bg_obj['background-color'] ) ? $bg_obj['background-color'] : ''; $tablet_css = ( isset( $bg_obj_res['tablet']['background-image'] ) && $bg_obj_res['tablet']['background-image'] ) ? true : false; $desktop_css = ( isset( $bg_obj_res['desktop']['background-image'] ) && $bg_obj_res['desktop']['background-image'] ) ? true : false; $bg_type = ( isset( $bg_obj['background-type'] ) && $bg_obj['background-type'] ) ? $bg_obj['background-type'] : ''; if ( '' !== $bg_type ) { switch ( $bg_type ) { case 'color': if ( '' !== $bg_img && '' !== $bg_color ) { $gen_bg_css['background-image'] = 'linear-gradient(to right, ' . $bg_color . ', ' . $bg_color . '), url(' . $bg_img . ');'; } elseif ( 'mobile' === $device ) { if ( $desktop_css ) { $gen_bg_css['background-image'] = 'linear-gradient(to right, ' . $bg_color . ', ' . $bg_color . '), url(' . $bg_desk_img . ');'; } elseif ( $tablet_css ) { $gen_bg_css['background-image'] = 'linear-gradient(to right, ' . $bg_color . ', ' . $bg_color . '), url(' . $bg_tab_img . ');'; } else { $gen_bg_css['background-color'] = $bg_color . ';'; $gen_bg_css['background-image'] = 'none;'; } } elseif ( 'tablet' === $device ) { if ( $desktop_css ) { $gen_bg_css['background-image'] = 'linear-gradient(to right, ' . $bg_color . ', ' . $bg_color . '), url(' . $bg_desk_img . ');'; } else { $gen_bg_css['background-color'] = $bg_color . ';'; $gen_bg_css['background-image'] = 'none;'; } } elseif ( '' === $bg_img ) { $gen_bg_css['background-color'] = $bg_color . ';'; $gen_bg_css['background-image'] = 'none;'; } break; case 'image': if ( '' !== $bg_img && '' !== $bg_color && ( ! is_numeric( strpos( $bg_color, 'linear-gradient' ) ) && ! is_numeric( strpos( $bg_color, 'radial-gradient' ) ) ) ) { $gen_bg_css['background-image'] = 'linear-gradient(to right, ' . $bg_color . ', ' . $bg_color . '), url(' . $bg_img . ');'; } if ( '' === $bg_color || is_numeric( strpos( $bg_color, 'linear-gradient' ) ) || is_numeric( strpos( $bg_color, 'radial-gradient' ) ) && '' !== $bg_img ) { $gen_bg_css['background-image'] = 'url(' . $bg_img . ');'; } break; case 'gradient': if ( isset( $bg_color ) ) { $gen_bg_css['background-image'] = $bg_color . ';'; } break; default: break; } } elseif ( '' !== $bg_color ) { $gen_bg_css['background-color'] = $bg_color . ';'; } if ( '' !== $bg_img ) { if ( isset( $bg_obj['background-repeat'] ) ) { $gen_bg_css['background-repeat'] = esc_attr( $bg_obj['background-repeat'] ); } if ( isset( $bg_obj['background-position'] ) ) { $gen_bg_css['background-position'] = esc_attr( $bg_obj['background-position'] ); } if ( isset( $bg_obj['background-size'] ) ) { $gen_bg_css['background-size'] = esc_attr( $bg_obj['background-size'] ); } if ( isset( $bg_obj['background-attachment'] ) ) { $gen_bg_css['background-attachment'] = esc_attr( $bg_obj['background-attachment'] ); } } return $gen_bg_css; } } /** * Search Form */ if ( ! function_exists( 'astra_addon_get_search_form' ) ) : /** * Display search form. * * @param bool $echo Default to echo and not return the form. * @return string|void String when $echo is false. */ function astra_addon_get_search_form( $echo = true ) { // get customizer placeholder field value. $astra_search_input_placeholder = isset( $args['input_placeholder'] ) ? $args['input_placeholder'] : astra_default_strings( 'string-search-input-placeholder', false ); $form = ''; /** * Filters the HTML output of the search form. * * @param string $form The search form HTML output. */ $result = apply_filters( 'astra_get_search_form', $form ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound if ( null === $result ) { $result = $form; } if ( $echo ) { echo $result; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } else { return $result; } } endif; /** * Get instance of WP_Filesystem. * * @since 2.6.4 * * @return WP_Filesystem */ function astra_addon_filesystem() { return astra_addon_filesystem::instance(); } /** * Check the WordPress version. * * @since 2.7.0 * @param string $version WordPress version to compare with the current version. * @param string $compare Comparison value i.e > or < etc. * @return bool True/False based on the $version and $compare value. */ function astra_addon_wp_version_compare( $version, $compare ) { return version_compare( get_bloginfo( 'version' ), $version, $compare ); } /** * Adjust Brightness * * @param array $bg_obj Color code in HEX. * * @return array Color code in HEX. * * @since 2.7.1 */ function astra_addon_get_megamenu_background_obj( $bg_obj ) { $gen_bg_css = array(); $bg_img = isset( $bg_obj['background-image'] ) ? $bg_obj['background-image'] : ''; $bg_color = isset( $bg_obj['background-color'] ) ? $bg_obj['background-color'] : ''; if ( '' !== $bg_img && '' !== $bg_color ) { $gen_bg_css = array( 'background-image' => 'linear-gradient(to right, ' . esc_attr( $bg_color ) . ', ' . esc_attr( $bg_color ) . '), url(' . esc_url( $bg_img ) . ')', ); } elseif ( '' !== $bg_img ) { $gen_bg_css = array( 'background-image' => 'url(' . esc_url( $bg_img ) . ')' ); } elseif ( '' !== $bg_color ) { $gen_bg_css = array( 'background-color' => esc_attr( $bg_color ) ); } if ( '' !== $bg_img ) { if ( isset( $bg_obj['background-repeat'] ) ) { $gen_bg_css['background-repeat'] = esc_attr( $bg_obj['background-repeat'] ); } if ( isset( $bg_obj['background-position'] ) ) { $gen_bg_css['background-position'] = esc_attr( $bg_obj['background-position'] ); } if ( isset( $bg_obj['background-size'] ) ) { $gen_bg_css['background-size'] = esc_attr( $bg_obj['background-size'] ); } if ( isset( $bg_obj['background-attachment'] ) ) { $gen_bg_css['background-attachment'] = esc_attr( $bg_obj['background-attachment'] ); } } return $gen_bg_css; } /** * Calculate Astra Mega-menu spacing. * * @param array $spacing_obj - Spacing dimensions with their values. * * @return array parsed CSS. * * @since 3.0.0 */ function astra_addon_get_megamenu_spacing_css( $spacing_obj ) { $gen_spacing_css = array(); foreach ( $spacing_obj as $property => $value ) { if ( '' == $value && 0 !== $value ) { continue; } $gen_spacing_css[ $property ] = esc_attr( $spacing_obj[ $property ] ) . 'px'; } return $gen_spacing_css; } /** * Check the Astra 3.5.0 version is using or not. * As this is major update and frequently we used version_compare, added a function for this for easy maintenance. * * @since 3.5.0 */ function astra_addon_check_theme_3_5_0_version() { return version_compare( ASTRA_THEME_VERSION, '3.5.0', '<' ); } May 2025 - Lead Squeezers CRM

Month: May 2025

Новые горизонты в азартных играх: исследуем марвел казино

В мире онлайн-казино марвел казино привлекает внимание своей уникальной концепцией и широким выбором игр. Это заведение не только предлагает классические азартные развлечения, но и стремится создать атмосферу, где каждый игрок чувствует себя частью чего-то большего. В этой статье мы рассмотрим, как марвел казино вписывается в глобальную индустрию азартных игр. Что делает марвел казино уникальным? Марвел …

Новые горизонты в азартных играх: исследуем марвел казино Read More »

Bezpłatne Gry hazardowe Spróbuj phoenix sun kasyno gry hazardowe darmowo automaty

Content Bezpłatne zabawy kasynowe na automatach przez internet | phoenix sun kasyno Darmowe hazard – wideo ruletka Automaty Hot Spot darmowo formularza Kasynopl.com Obecnie automaty sieciowy Hot Spot są osiągalne przy innych typach, ofiarując graczom obszerną gamę motywów, procedur jak i również promocji bonusowych. Burning Hot podaje dużo miarki wypłat i możliwość wygrania symboli bonusowych, …

Bezpłatne Gry hazardowe Spróbuj phoenix sun kasyno gry hazardowe darmowo automaty Read More »

Better 20 Casinos on the internet Uk Best Local casino Web sites October 2025

Blogs Best Slot Websites for 2025: The uk’s Better Gambling enterprises to have Online slots games Wild Western Wins Gambling enterprise Respect Plan Restriction Victory Limit Grand Ivy – Biggest welcome bonus in the united kingdom Online casinos plan no deposit 100 percent free revolves incentives in several suggests, while the in depth below. The …

Better 20 Casinos on the internet Uk Best Local casino Web sites October 2025 Read More »

RTP, Paytable & Incentives Told me

Blogs Luck Enjoy Enjoy the Experience The fresh slot have a good 6-reel, 4-line style, bringing a nice 4,096 a method to earn on every spin. Victories try molded https://realmoney-casino.ca/777-casino/ because of the getting coordinating signs to your surrounding reels of kept in order to right, which range from the first reel.

Krypto Casino Da spiller du casino addert krypto

Content Hvordan kan erfarne spillere komme fre i bevegelse igang krypto casino? Mobilspilling for norske online kasinoer Den akselererende populariteten per smarttelefoner har hatt ett alvorstung følge igang veksten av mobilkasinospilling. På å anrette ut formue må du imidlertid anvende bankoverføring, der det er ett lett om hjertet i tillegg til abstrakt løsning.

Online Keno Gamble Keno Online game On the web the real deal Money!

Blogs What’s the best gambling establishment deposit way of play keno on the web? Real cash Keno against. Totally free Plays Developers of the finest Online slots Live Specialist Online game: Using Casino to you In that way, you could potentially become familiar with the rules, gain experience and knowledge, become more convinced and you …

Online Keno Gamble Keno Online game On the web the real deal Money! Read More »

How Verified Licenses Shape Trust in Online Gaming Tools

In digital gaming, trust is the invisible foundation that transforms casual players into loyal participants. Without reliable assurances, users hesitate to engage, fearing unfair play or unsafe environments. Yet, in the absence of physical oversight, how do operators establish credibility? The answer lies in verified licenses—technical credentials and institutional guarantees that verify compliance, enhance transparency, …

How Verified Licenses Shape Trust in Online Gaming Tools Read More »

Aufführen Eltern in einem Erreichbar Spielbank Banküberweisung!

Content Ist und bleibt die Banküberweisung die eine zuverlässige Zahlungsmethode? Wafer Spiele as part of Angeschlossen-Casinos offerte die höchsten Auszahlungen? Tipp 3: Doch within seriösen Verbunden Spielsaal qua rapider Ausschüttung vortragen! In der Banküberweisung inoffizieller mitarbeiter Casino seid ihr auch auf keinen fall unabdingbar in diesseitigen Internetverbindung dependent. Der habt schließlich gleichfalls diese Gelegenheit, den …

Aufführen Eltern in einem Erreichbar Spielbank Banküberweisung! Read More »

Warum die alten Griechen Zeus Opfer brachten – moderne Lektionen von Natur und Mythos

Mythen und religiöse Praktiken sind seit Jahrhunderten tief in den Kulturen verwurzelt und prägen unser Verständnis von Natur und Gesellschaft. Auch heute noch sind sie relevant, weil sie uns helfen, komplexe Zusammenhänge zu begreifen und unser Verhalten im Einklang mit der Umwelt zu reflektieren. Die alten Griechen waren Meister darin, ihre Welt durch Geschichten, Rituale …

Warum die alten Griechen Zeus Opfer brachten – moderne Lektionen von Natur und Mythos Read More »

Chicken Road Game Play Online & Win Real Money at ValorBet

Before placing bets, test the waters by playing Mission Uncrossable in demo mode. Still, following these tips can help you have fun and make informed decisions. Ready to stop asking “Is Chicken Road game fake? The site’s design keeps the focus on gameplay and clear controls. Roobet regularly runs tournaments, daily missions, and leaderboards for …

Chicken Road Game Play Online & Win Real Money at ValorBet Read More »