/** * Astra Updates * * Functions for updating data, used by the background updater. * * @package Astra * @version 2.1.3 */ defined( 'ABSPATH' ) || exit; /** * Clear Astra + Astra Pro assets cache. * * @since 3.6.1 * @return void. */ function astra_clear_all_assets_cache() { if ( ! class_exists( 'Astra_Cache_Base' ) ) { return; } // Clear Astra theme asset cache. $astra_cache_base_instance = new Astra_Cache_Base( 'astra' ); $astra_cache_base_instance->refresh_assets( 'astra' ); // Clear Astra Addon's static and dynamic CSS asset cache. $astra_addon_cache_base_instance = new Astra_Cache_Base( 'astra-addon' ); $astra_addon_cache_base_instance->refresh_assets( 'astra-addon' ); } /** * 4.0.0 backward handling part. * * 1. Migrate existing setting & do required onboarding for new admin dashboard v4.0.0 app. * 2. Migrating Post Structure & Meta options in title area meta parts. * * @since 4.0.0 * @return void */ function astra_theme_background_updater_4_0_0() { // Dynamic customizer migration starts here. $theme_options = get_option( 'astra-settings', array() ); if ( ! isset( $theme_options['dynamic-blog-layouts'] ) && ! isset( $theme_options['theme-dynamic-customizer-support'] ) ) { $theme_options['dynamic-blog-layouts'] = false; $theme_options['theme-dynamic-customizer-support'] = true; $post_types = Astra_Posts_Structure_Loader::get_supported_post_types(); // Archive summary box compatibility. $archive_title_font_size = array( 'desktop' => isset( $theme_options['font-size-archive-summary-title']['desktop'] ) ? $theme_options['font-size-archive-summary-title']['desktop'] : 40, 'tablet' => isset( $theme_options['font-size-archive-summary-title']['tablet'] ) ? $theme_options['font-size-archive-summary-title']['tablet'] : '', 'mobile' => isset( $theme_options['font-size-archive-summary-title']['mobile'] ) ? $theme_options['font-size-archive-summary-title']['mobile'] : '', 'desktop-unit' => isset( $theme_options['font-size-archive-summary-title']['desktop-unit'] ) ? $theme_options['font-size-archive-summary-title']['desktop-unit'] : 'px', 'tablet-unit' => isset( $theme_options['font-size-archive-summary-title']['tablet-unit'] ) ? $theme_options['font-size-archive-summary-title']['tablet-unit'] : 'px', 'mobile-unit' => isset( $theme_options['font-size-archive-summary-title']['mobile-unit'] ) ? $theme_options['font-size-archive-summary-title']['mobile-unit'] : 'px', ); $single_title_font_size = array( 'desktop' => isset( $theme_options['font-size-entry-title']['desktop'] ) ? $theme_options['font-size-entry-title']['desktop'] : '', 'tablet' => isset( $theme_options['font-size-entry-title']['tablet'] ) ? $theme_options['font-size-entry-title']['tablet'] : '', 'mobile' => isset( $theme_options['font-size-entry-title']['mobile'] ) ? $theme_options['font-size-entry-title']['mobile'] : '', 'desktop-unit' => isset( $theme_options['font-size-entry-title']['desktop-unit'] ) ? $theme_options['font-size-entry-title']['desktop-unit'] : 'px', 'tablet-unit' => isset( $theme_options['font-size-entry-title']['tablet-unit'] ) ? $theme_options['font-size-entry-title']['tablet-unit'] : 'px', 'mobile-unit' => isset( $theme_options['font-size-entry-title']['mobile-unit'] ) ? $theme_options['font-size-entry-title']['mobile-unit'] : 'px', ); $archive_summary_box_bg = array( 'desktop' => array( 'background-color' => ! empty( $theme_options['archive-summary-box-bg-color'] ) ? $theme_options['archive-summary-box-bg-color'] : '', 'background-image' => '', 'background-repeat' => 'repeat', 'background-position' => 'center center', 'background-size' => 'auto', 'background-attachment' => 'scroll', 'background-type' => '', 'background-media' => '', ), 'tablet' => array( 'background-color' => '', 'background-image' => '', 'background-repeat' => 'repeat', 'background-position' => 'center center', 'background-size' => 'auto', 'background-attachment' => 'scroll', 'background-type' => '', 'background-media' => '', ), 'mobile' => array( 'background-color' => '', 'background-image' => '', 'background-repeat' => 'repeat', 'background-position' => 'center center', 'background-size' => 'auto', 'background-attachment' => 'scroll', 'background-type' => '', 'background-media' => '', ), ); // Single post structure. foreach ( $post_types as $post_type ) { /** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort $single_post_structure = isset( $theme_options['blog-single-post-structure'] ) ? $theme_options['blog-single-post-structure'] : array( 'single-image', 'single-title-meta' ); /** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort $migrated_post_structure = array(); if ( ! empty( $single_post_structure ) ) { /** @psalm-suppress PossiblyInvalidIterator */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort foreach ( $single_post_structure as $key ) { /** @psalm-suppress PossiblyInvalidIterator */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort if ( 'single-title-meta' === $key ) { $migrated_post_structure[] = 'ast-dynamic-single-' . esc_attr( $post_type ) . '-title'; if ( 'post' === $post_type ) { $migrated_post_structure[] = 'ast-dynamic-single-' . esc_attr( $post_type ) . '-meta'; } } if ( 'single-image' === $key ) { $migrated_post_structure[] = 'ast-dynamic-single-' . esc_attr( $post_type ) . '-image'; } } $theme_options[ 'ast-dynamic-single-' . esc_attr( $post_type ) . '-structure' ] = $migrated_post_structure; } // Single post meta. /** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort $single_post_meta = isset( $theme_options['blog-single-meta'] ) ? $theme_options['blog-single-meta'] : array( 'comments', 'category', 'author' ); /** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort $migrated_post_metadata = array(); if ( ! empty( $single_post_meta ) ) { $tax_counter = 0; $tax_slug = 'ast-dynamic-single-' . esc_attr( $post_type ) . '-taxonomy'; /** @psalm-suppress PossiblyInvalidIterator */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort foreach ( $single_post_meta as $key ) { /** @psalm-suppress PossiblyInvalidIterator */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort switch ( $key ) { case 'author': $migrated_post_metadata[] = 'author'; break; case 'date': $migrated_post_metadata[] = 'date'; break; case 'comments': $migrated_post_metadata[] = 'comments'; break; case 'category': if ( 'post' === $post_type ) { $migrated_post_metadata[] = $tax_slug; $theme_options[ $tax_slug ] = 'category'; $tax_counter = ++$tax_counter; $tax_slug = 'ast-dynamic-single-' . esc_attr( $post_type ) . '-taxonomy-' . $tax_counter; } break; case 'tag': if ( 'post' === $post_type ) { $migrated_post_metadata[] = $tax_slug; $theme_options[ $tax_slug ] = 'post_tag'; $tax_counter = ++$tax_counter; $tax_slug = 'ast-dynamic-single-' . esc_attr( $post_type ) . '-taxonomy-' . $tax_counter; } break; default: break; } } $theme_options[ 'ast-dynamic-single-' . esc_attr( $post_type ) . '-metadata' ] = $migrated_post_metadata; } // Archive layout compatibilities. $archive_banner_layout = class_exists( 'WooCommerce' ) && 'product' === $post_type ? false : true; // Setting WooCommerce archive option disabled as WC already added their header content on archive. $theme_options[ 'ast-archive-' . esc_attr( $post_type ) . '-title' ] = $archive_banner_layout; // Single layout compatibilities. $single_banner_layout = class_exists( 'WooCommerce' ) && 'product' === $post_type ? false : true; // Setting WC single option disabled as there is no any header set from default WooCommerce. $theme_options[ 'ast-single-' . esc_attr( $post_type ) . '-title' ] = $single_banner_layout; // BG color support. $theme_options[ 'ast-dynamic-archive-' . esc_attr( $post_type ) . '-banner-image-type' ] = ! empty( $theme_options['archive-summary-box-bg-color'] ) ? 'custom' : 'none'; $theme_options[ 'ast-dynamic-archive-' . esc_attr( $post_type ) . '-banner-custom-bg' ] = $archive_summary_box_bg; // Archive title font support. /** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort $theme_options[ 'ast-dynamic-archive-' . esc_attr( $post_type ) . '-title-font-family' ] = ! empty( $theme_options['font-family-archive-summary-title'] ) ? $theme_options['font-family-archive-summary-title'] : ''; /** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort /** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort $theme_options[ 'ast-dynamic-archive-' . esc_attr( $post_type ) . '-title-font-size' ] = $archive_title_font_size; /** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort /** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort $theme_options[ 'ast-dynamic-archive-' . esc_attr( $post_type ) . '-title-font-weight' ] = ! empty( $theme_options['font-weight-archive-summary-title'] ) ? $theme_options['font-weight-archive-summary-title'] : ''; /** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort /** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort $archive_dynamic_line_height = ! empty( $theme_options['line-height-archive-summary-title'] ) ? $theme_options['line-height-archive-summary-title'] : ''; /** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort /** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort $archive_dynamic_text_transform = ! empty( $theme_options['text-transform-archive-summary-title'] ) ? $theme_options['text-transform-archive-summary-title'] : ''; /** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort $theme_options[ 'ast-dynamic-archive-' . esc_attr( $post_type ) . '-title-font-extras' ] = array( 'line-height' => $archive_dynamic_line_height, 'line-height-unit' => 'em', 'letter-spacing' => '', 'letter-spacing-unit' => 'px', 'text-transform' => $archive_dynamic_text_transform, 'text-decoration' => '', ); // Archive title colors support. /** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort $theme_options[ 'ast-dynamic-archive-' . esc_attr( $post_type ) . '-banner-title-color' ] = ! empty( $theme_options['archive-summary-box-title-color'] ) ? $theme_options['archive-summary-box-title-color'] : ''; /** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort /** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort $theme_options[ 'ast-dynamic-archive-' . esc_attr( $post_type ) . '-banner-text-color' ] = ! empty( $theme_options['archive-summary-box-text-color'] ) ? $theme_options['archive-summary-box-text-color'] : ''; /** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort // Single title colors support. /** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort $theme_options[ 'ast-dynamic-single-' . esc_attr( $post_type ) . '-banner-title-color' ] = ! empty( $theme_options['entry-title-color'] ) ? $theme_options['entry-title-color'] : ''; /** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort // Single title font support. /** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort $theme_options[ 'ast-dynamic-single-' . esc_attr( $post_type ) . '-title-font-family' ] = ! empty( $theme_options['font-family-entry-title'] ) ? $theme_options['font-family-entry-title'] : ''; /** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort /** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort $theme_options[ 'ast-dynamic-single-' . esc_attr( $post_type ) . '-title-font-size' ] = $single_title_font_size; /** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort /** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort $theme_options[ 'ast-dynamic-single-' . esc_attr( $post_type ) . '-title-font-weight' ] = ! empty( $theme_options['font-weight-entry-title'] ) ? $theme_options['font-weight-entry-title'] : ''; /** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort /** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort $single_dynamic_line_height = ! empty( $theme_options['line-height-entry-title'] ) ? $theme_options['line-height-entry-title'] : ''; /** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort /** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort $single_dynamic_text_transform = ! empty( $theme_options['text-transform-entry-title'] ) ? $theme_options['text-transform-entry-title'] : ''; /** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort $theme_options[ 'ast-dynamic-single-' . esc_attr( $post_type ) . '-title-font-extras' ] = array( 'line-height' => $single_dynamic_line_height, 'line-height-unit' => 'em', 'letter-spacing' => '', 'letter-spacing-unit' => 'px', 'text-transform' => $single_dynamic_text_transform, 'text-decoration' => '', ); } // Set page specific structure, as page only has featured image at top & title beneath to it, hardcoded writing it here. $theme_options['ast-dynamic-single-page-structure'] = array( 'ast-dynamic-single-page-image', 'ast-dynamic-single-page-title' ); // EDD content layout & sidebar layout migration in new dynamic option. $theme_options['archive-download-content-layout'] = isset( $theme_options['edd-archive-product-layout'] ) ? $theme_options['edd-archive-product-layout'] : 'default'; $theme_options['archive-download-sidebar-layout'] = isset( $theme_options['edd-sidebar-layout'] ) ? $theme_options['edd-sidebar-layout'] : 'no-sidebar'; $theme_options['single-download-content-layout'] = isset( $theme_options['edd-single-product-layout'] ) ? $theme_options['edd-single-product-layout'] : 'default'; $theme_options['single-download-sidebar-layout'] = isset( $theme_options['edd-single-product-sidebar-layout'] ) ? $theme_options['edd-single-product-sidebar-layout'] : 'default'; update_option( 'astra-settings', $theme_options ); } // Admin backward handling starts here. $admin_dashboard_settings = get_option( 'astra_admin_settings', array() ); if ( ! isset( $admin_dashboard_settings['theme-setup-admin-migrated'] ) ) { if ( ! isset( $admin_dashboard_settings['self_hosted_gfonts'] ) ) { $admin_dashboard_settings['self_hosted_gfonts'] = isset( $theme_options['load-google-fonts-locally'] ) ? $theme_options['load-google-fonts-locally'] : false; } if ( ! isset( $admin_dashboard_settings['preload_local_fonts'] ) ) { $admin_dashboard_settings['preload_local_fonts'] = isset( $theme_options['preload-local-fonts'] ) ? $theme_options['preload-local-fonts'] : false; } // Consider admin part from theme side migrated. $admin_dashboard_settings['theme-setup-admin-migrated'] = true; update_option( 'astra_admin_settings', $admin_dashboard_settings ); } // Check if existing user and disable smooth scroll-to-id. if ( ! isset( $theme_options['enable-scroll-to-id'] ) ) { $theme_options['enable-scroll-to-id'] = false; update_option( 'astra-settings', $theme_options ); } // Check if existing user and disable scroll to top if disabled from pro addons list. $scroll_to_top_visibility = false; /** @psalm-suppress UndefinedClass */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort if ( defined( 'ASTRA_EXT_VER' ) && Astra_Ext_Extension::is_active( 'scroll-to-top' ) ) { /** @psalm-suppress UndefinedClass */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort $scroll_to_top_visibility = true; } if ( ! isset( $theme_options['scroll-to-top-enable'] ) ) { $theme_options['scroll-to-top-enable'] = $scroll_to_top_visibility; update_option( 'astra-settings', $theme_options ); } // Default colors & typography flag. if ( ! isset( $theme_options['update-default-color-typo'] ) ) { $theme_options['update-default-color-typo'] = false; update_option( 'astra-settings', $theme_options ); } // Block editor experience improvements compatibility flag. if ( ! isset( $theme_options['v4-block-editor-compat'] ) ) { $theme_options['v4-block-editor-compat'] = false; update_option( 'astra-settings', $theme_options ); } } /** * 4.0.2 backward handling part. * * 1. Read Time option backwards handling for old users. * * @since 4.0.2 * @return void */ function astra_theme_background_updater_4_0_2() { $theme_options = get_option( 'astra-settings', array() ); if ( ! isset( $theme_options['v4-0-2-update-migration'] ) && isset( $theme_options['blog-single-meta'] ) && in_array( 'read-time', $theme_options['blog-single-meta'] ) ) { if ( isset( $theme_options['ast-dynamic-single-post-metadata'] ) && ! in_array( 'read-time', $theme_options['ast-dynamic-single-post-metadata'] ) ) { $theme_options['ast-dynamic-single-post-metadata'][] = 'read-time'; $theme_options['v4-0-2-update-migration'] = true; update_option( 'astra-settings', $theme_options ); } } } /** * Handle backward compatibility on version 4.1.0 * * @since 4.1.0 * @return void */ function astra_theme_background_updater_4_1_0() { $theme_options = get_option( 'astra-settings', array() ); if ( ! isset( $theme_options['v4-1-0-update-migration'] ) ) { $theme_options['v4-1-0-update-migration'] = true; $current_payment_list = array(); $old_payment_list = isset( $theme_options['single-product-payment-list']['items'] ) ? $theme_options['single-product-payment-list']['items'] : array(); $visa_payment = isset( $theme_options['single-product-payment-visa'] ) ? $theme_options['single-product-payment-visa'] : ''; $mastercard_payment = isset( $theme_options['single-product-payment-mastercard'] ) ? $theme_options['single-product-payment-mastercard'] : ''; $discover_payment = isset( $theme_options['single-product-payment-discover'] ) ? $theme_options['single-product-payment-discover'] : ''; $paypal_payment = isset( $theme_options['single-product-payment-paypal'] ) ? $theme_options['single-product-payment-paypal'] : ''; $apple_pay_payment = isset( $theme_options['single-product-payment-apple-pay'] ) ? $theme_options['single-product-payment-apple-pay'] : ''; false !== $visa_payment ? array_push( $current_payment_list, array( 'id' => 'item-100', 'enabled' => true, 'source' => 'icon', 'icon' => 'cc-visa', 'image' => '', 'label' => __( 'Visa', 'astra' ), ) ) : ''; false !== $mastercard_payment ? array_push( $current_payment_list, array( 'id' => 'item-101', 'enabled' => true, 'source' => 'icon', 'icon' => 'cc-mastercard', 'image' => '', 'label' => __( 'Mastercard', 'astra' ), ) ) : ''; false !== $mastercard_payment ? array_push( $current_payment_list, array( 'id' => 'item-102', 'enabled' => true, 'source' => 'icon', 'icon' => 'cc-amex', 'image' => '', 'label' => __( 'Amex', 'astra' ), ) ) : ''; false !== $discover_payment ? array_push( $current_payment_list, array( 'id' => 'item-103', 'enabled' => true, 'source' => 'icon', 'icon' => 'cc-discover', 'image' => '', 'label' => __( 'Discover', 'astra' ), ) ) : ''; $paypal_payment ? array_push( $current_payment_list, array( 'id' => 'item-104', 'enabled' => true, 'source' => 'icon', 'icon' => 'cc-paypal', 'image' => '', 'label' => __( 'Paypal', 'astra' ), ) ) : ''; $apple_pay_payment ? array_push( $current_payment_list, array( 'id' => 'item-105', 'enabled' => true, 'source' => 'icon', 'icon' => 'cc-apple-pay', 'image' => '', 'label' => __( 'Apple Pay', 'astra' ), ) ) : ''; if ( $current_payment_list ) { $theme_options['single-product-payment-list'] = array( 'items' => array_merge( $current_payment_list, $old_payment_list ), ); update_option( 'astra-settings', $theme_options ); } if ( ! isset( $theme_options['woo_support_global_settings'] ) ) { $theme_options['woo_support_global_settings'] = true; update_option( 'astra-settings', $theme_options ); } if ( isset( $theme_options['theme-dynamic-customizer-support'] ) ) { $post_types = Astra_Posts_Structure_Loader::get_supported_post_types(); foreach ( $post_types as $post_type ) { $theme_options[ 'ast-dynamic-single-' . esc_attr( $post_type ) . '-title-font-extras' ]['text-transform'] = ''; } update_option( 'astra-settings', $theme_options ); } } } /** * 4.1.4 backward handling cases. * * 1. Migrating users to combined color overlay option to new dedicated overlay options. * * @since 4.1.4 * @return void */ function astra_theme_background_updater_4_1_4() { $theme_options = get_option( 'astra-settings', array() ); if ( ! isset( $theme_options['v4-1-4-update-migration'] ) ) { $ast_bg_control_options = array( 'off-canvas-background', 'footer-adv-bg-obj', 'footer-bg-obj', ); foreach ( $ast_bg_control_options as $bg_option ) { if ( isset( $theme_options[ $bg_option ] ) && ! isset( $theme_options[ $bg_option ]['overlay-type'] ) ) { $bg_type = isset( $theme_options[ $bg_option ]['background-type'] ) ? $theme_options[ $bg_option ]['background-type'] : ''; $theme_options[ $bg_option ]['overlay-type'] = 'none'; $theme_options[ $bg_option ]['overlay-color'] = ''; $theme_options[ $bg_option ]['overlay-opacity'] = ''; $theme_options[ $bg_option ]['overlay-gradient'] = ''; if ( 'image' === $bg_type ) { $bg_img = isset( $theme_options[ $bg_option ]['background-image'] ) ? $theme_options[ $bg_option ]['background-image'] : ''; $bg_color = isset( $theme_options[ $bg_option ]['background-color'] ) ? $theme_options[ $bg_option ]['background-color'] : ''; if ( '' !== $bg_img && '' !== $bg_color && ( ! is_numeric( strpos( $bg_color, 'linear-gradient' ) ) && ! is_numeric( strpos( $bg_color, 'radial-gradient' ) ) ) ) { $theme_options[ $bg_option ]['overlay-type'] = 'classic'; $theme_options[ $bg_option ]['overlay-color'] = $bg_color; $theme_options[ $bg_option ]['overlay-opacity'] = ''; $theme_options[ $bg_option ]['overlay-gradient'] = ''; } } } } $ast_resp_bg_control_options = array( 'hba-footer-bg-obj-responsive', 'hbb-footer-bg-obj-responsive', 'footer-bg-obj-responsive', 'footer-menu-bg-obj-responsive', 'hb-footer-bg-obj-responsive', 'hba-header-bg-obj-responsive', 'hbb-header-bg-obj-responsive', 'hb-header-bg-obj-responsive', 'header-mobile-menu-bg-obj-responsive', 'site-layout-outside-bg-obj-responsive', 'content-bg-obj-responsive', ); $post_types = Astra_Posts_Structure_Loader::get_supported_post_types(); foreach ( $post_types as $index => $post_type ) { $ast_resp_bg_control_options[] = 'ast-dynamic-archive-' . esc_attr( $post_type ) . '-banner-custom-bg'; $ast_resp_bg_control_options[] = 'ast-dynamic-single-' . esc_attr( $post_type ) . '-banner-background'; } $component_limit = defined( 'ASTRA_EXT_VER' ) ? Astra_Builder_Helper::$component_limit : Astra_Builder_Helper::$num_of_header_menu; for ( $index = 1; $index <= $component_limit; $index++ ) { $_prefix = 'menu' . $index; $ast_resp_bg_control_options[] = 'header-' . $_prefix . '-bg-obj-responsive'; } foreach ( $ast_resp_bg_control_options as $resp_bg_option ) { // Desktop version. /** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort if ( isset( $theme_options[ $resp_bg_option ]['desktop'] ) && is_array( $theme_options[ $resp_bg_option ]['desktop'] ) && ! isset( $theme_options[ $resp_bg_option ]['desktop']['overlay-type'] ) ) { // @codingStandardsIgnoreStart $desk_bg_type = isset( $theme_options[ $resp_bg_option ]['desktop']['background-type'] ) ? $theme_options[ $resp_bg_option ]['desktop']['background-type'] : ''; // @codingStandardsIgnoreEnd $theme_options[ $resp_bg_option ]['desktop']['overlay-type'] = ''; $theme_options[ $resp_bg_option ]['desktop']['overlay-color'] = ''; $theme_options[ $resp_bg_option ]['desktop']['overlay-opacity'] = ''; $theme_options[ $resp_bg_option ]['desktop']['overlay-gradient'] = ''; if ( 'image' === $desk_bg_type ) { $bg_img = isset( $theme_options[ $resp_bg_option ]['desktop']['background-image'] ) ? $theme_options[ $resp_bg_option ]['desktop']['background-image'] : ''; $bg_color = isset( $theme_options[ $resp_bg_option ]['desktop']['background-color'] ) ? $theme_options[ $resp_bg_option ]['desktop']['background-color'] : ''; if ( '' !== $bg_img && '' !== $bg_color && ( ! is_numeric( strpos( $bg_color, 'linear-gradient' ) ) && ! is_numeric( strpos( $bg_color, 'radial-gradient' ) ) ) ) { $theme_options[ $resp_bg_option ]['desktop']['overlay-type'] = 'classic'; $theme_options[ $resp_bg_option ]['desktop']['overlay-color'] = $bg_color; $theme_options[ $resp_bg_option ]['desktop']['overlay-opacity'] = ''; $theme_options[ $resp_bg_option ]['desktop']['overlay-gradient'] = ''; } } } // Tablet version. /** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort if ( isset( $theme_options[ $resp_bg_option ]['tablet'] ) && is_array( $theme_options[ $resp_bg_option ]['tablet'] ) && ! isset( $theme_options[ $resp_bg_option ]['tablet']['overlay-type'] ) ) { // @codingStandardsIgnoreStart $tablet_bg_type = isset( $theme_options[ $resp_bg_option ]['tablet']['background-type'] ) ? $theme_options[ $resp_bg_option ]['tablet']['background-type'] : ''; // @codingStandardsIgnoreEnd $theme_options[ $resp_bg_option ]['tablet']['overlay-type'] = ''; $theme_options[ $resp_bg_option ]['tablet']['overlay-color'] = ''; $theme_options[ $resp_bg_option ]['tablet']['overlay-opacity'] = ''; $theme_options[ $resp_bg_option ]['tablet']['overlay-gradient'] = ''; if ( 'image' === $tablet_bg_type ) { $bg_img = isset( $theme_options[ $resp_bg_option ]['tablet']['background-image'] ) ? $theme_options[ $resp_bg_option ]['tablet']['background-image'] : ''; $bg_color = isset( $theme_options[ $resp_bg_option ]['tablet']['background-color'] ) ? $theme_options[ $resp_bg_option ]['tablet']['background-color'] : ''; if ( '' !== $bg_img && '' !== $bg_color && ( ! is_numeric( strpos( $bg_color, 'linear-gradient' ) ) && ! is_numeric( strpos( $bg_color, 'radial-gradient' ) ) ) ) { $theme_options[ $resp_bg_option ]['tablet']['overlay-type'] = 'classic'; $theme_options[ $resp_bg_option ]['tablet']['overlay-color'] = $bg_color; $theme_options[ $resp_bg_option ]['tablet']['overlay-opacity'] = ''; $theme_options[ $resp_bg_option ]['tablet']['overlay-gradient'] = ''; } } } // Mobile version. /** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort if ( isset( $theme_options[ $resp_bg_option ]['mobile'] ) && is_array( $theme_options[ $resp_bg_option ]['mobile'] ) && ! isset( $theme_options[ $resp_bg_option ]['mobile']['overlay-type'] ) ) { // @codingStandardsIgnoreStart $mobile_bg_type = isset( $theme_options[ $resp_bg_option ]['mobile']['background-type'] ) ? $theme_options[ $resp_bg_option ]['mobile']['background-type'] : ''; // @codingStandardsIgnoreEnd $theme_options[ $resp_bg_option ]['mobile']['overlay-type'] = ''; $theme_options[ $resp_bg_option ]['mobile']['overlay-color'] = ''; $theme_options[ $resp_bg_option ]['mobile']['overlay-opacity'] = ''; $theme_options[ $resp_bg_option ]['mobile']['overlay-gradient'] = ''; if ( 'image' === $mobile_bg_type ) { $bg_img = isset( $theme_options[ $resp_bg_option ]['mobile']['background-image'] ) ? $theme_options[ $resp_bg_option ]['mobile']['background-image'] : ''; $bg_color = isset( $theme_options[ $resp_bg_option ]['mobile']['background-color'] ) ? $theme_options[ $resp_bg_option ]['mobile']['background-color'] : ''; if ( '' !== $bg_img && '' !== $bg_color && ( ! is_numeric( strpos( $bg_color, 'linear-gradient' ) ) && ! is_numeric( strpos( $bg_color, 'radial-gradient' ) ) ) ) { $theme_options[ $resp_bg_option ]['mobile']['overlay-type'] = 'classic'; $theme_options[ $resp_bg_option ]['mobile']['overlay-color'] = $bg_color; $theme_options[ $resp_bg_option ]['mobile']['overlay-opacity'] = ''; $theme_options[ $resp_bg_option ]['mobile']['overlay-gradient'] = ''; } } } } $theme_options['v4-1-4-update-migration'] = true; update_option( 'astra-settings', $theme_options ); } } /** * Handle backward compatibility on version 4.1.6 * * @since 4.1.6 * @return void */ function astra_theme_background_updater_4_1_6() { $theme_options = get_option( 'astra-settings', array() ); if ( ! isset( $theme_options['list-block-vertical-spacing'] ) ) { $theme_options['list-block-vertical-spacing'] = false; update_option( 'astra-settings', $theme_options ); } } /** * Set flag to avoid direct reflections on live site & to maintain backward compatibility for existing users. * * @since 4.1.7 * @return void */ function astra_theme_background_updater_4_1_7() { $theme_options = get_option( 'astra-settings', array() ); if ( ! isset( $theme_options['add-hr-styling-css'] ) ) { $theme_options['add-hr-styling-css'] = false; update_option( 'astra-settings', $theme_options ); } if ( ! isset( $theme_options['astra-site-svg-logo-equal-height'] ) ) { $theme_options['astra-site-svg-logo-equal-height'] = false; update_option( 'astra-settings', $theme_options ); } } /** * Migrating users to new container layout options * * @since 4.2.0 * @return void */ function astra_theme_background_updater_4_2_0() { $theme_options = get_option( 'astra-settings', array() ); if ( ! isset( $theme_options['v4-2-0-update-migration'] ) ) { $post_types = Astra_Posts_Structure_Loader::get_supported_post_types(); $theme_options = get_option( 'astra-settings' ); $blog_types = array( 'single', 'archive' ); $third_party_layouts = array( 'woocommerce', 'edd', 'lifterlms', 'lifterlms-course-lesson', 'learndash' ); // Global. if ( isset( $theme_options['site-content-layout'] ) ) { $theme_options = astra_apply_layout_migration( 'site-content-layout', 'ast-site-content-layout', 'site-content-style', 'site-sidebar-style', $theme_options ); } // Single, archive. foreach ( $blog_types as $blog_type ) { foreach ( $post_types as $post_type ) { $old_layout = $blog_type . '-' . esc_attr( $post_type ) . '-content-layout'; $new_layout = $blog_type . '-' . esc_attr( $post_type ) . '-ast-content-layout'; $content_style = $blog_type . '-' . esc_attr( $post_type ) . '-content-style'; $sidebar_style = $blog_type . '-' . esc_attr( $post_type ) . '-sidebar-style'; if ( isset( $theme_options[ $old_layout ] ) ) { $theme_options = astra_apply_layout_migration( $old_layout, $new_layout, $content_style, $sidebar_style, $theme_options ); } } } // Third party existing layout migrations to new layout options. foreach ( $third_party_layouts as $layout ) { $old_layout = $layout . '-content-layout'; $new_layout = $layout . '-ast-content-layout'; $content_style = $layout . '-content-style'; $sidebar_style = $layout . '-sidebar-style'; if ( isset( $theme_options[ $old_layout ] ) ) { if ( 'lifterlms' === $layout ) { // Lifterlms course/lesson sidebar style migration case. $theme_options = astra_apply_layout_migration( $old_layout, $new_layout, $content_style, 'lifterlms-course-lesson-sidebar-style', $theme_options ); } $theme_options = astra_apply_layout_migration( $old_layout, $new_layout, $content_style, $sidebar_style, $theme_options ); } } if ( ! isset( $theme_options['fullwidth_sidebar_support'] ) ) { $theme_options['fullwidth_sidebar_support'] = false; } $theme_options['v4-2-0-update-migration'] = true; update_option( 'astra-settings', $theme_options ); } } /** * Handle migration from old to new layouts. * * Migration cases for old users, old layouts -> new layouts. * * @since 4.2.0 * @param mixed $old_layout old_layout. * @param mixed $new_layout new_layout. * @param mixed $content_style content_style. * @param mixed $sidebar_style sidebar_style. * @param array $theme_options theme_options. * @return array $theme_options The updated theme options. */ function astra_apply_layout_migration( $old_layout, $new_layout, $content_style, $sidebar_style, $theme_options ) { switch ( astra_get_option( $old_layout ) ) { case 'boxed-container': $theme_options[ $new_layout ] = 'normal-width-container'; $theme_options[ $content_style ] = 'boxed'; $theme_options[ $sidebar_style ] = 'boxed'; break; case 'content-boxed-container': $theme_options[ $new_layout ] = 'normal-width-container'; $theme_options[ $content_style ] = 'boxed'; $theme_options[ $sidebar_style ] = 'unboxed'; break; case 'plain-container': $theme_options[ $new_layout ] = 'normal-width-container'; $theme_options[ $content_style ] = 'unboxed'; $theme_options[ $sidebar_style ] = 'unboxed'; break; case 'page-builder': $theme_options[ $new_layout ] = 'full-width-container'; $theme_options[ $content_style ] = 'unboxed'; $theme_options[ $sidebar_style ] = 'unboxed'; break; case 'narrow-container': $theme_options[ $new_layout ] = 'narrow-width-container'; $theme_options[ $content_style ] = 'unboxed'; $theme_options[ $sidebar_style ] = 'unboxed'; break; default: $theme_options[ $new_layout ] = 'default'; $theme_options[ $content_style ] = 'default'; $theme_options[ $sidebar_style ] = 'default'; break; } return $theme_options; } /** * Handle backward compatibility on version 4.2.2 * * @since 4.2.2 * @return void */ function astra_theme_background_updater_4_2_2() { $theme_options = get_option( 'astra-settings', array() ); if ( ! isset( $theme_options['v4-2-2-core-form-btns-styling'] ) ) { $theme_options['v4-2-2-core-form-btns-styling'] = false; update_option( 'astra-settings', $theme_options ); } } /** * Handle backward compatibility on version 4.6.0 * * @since 4.4.0 * @return void */ function astra_theme_background_updater_4_4_0() { $theme_options = get_option( 'astra-settings', array() ); if ( ! isset( $theme_options['v4-4-0-backward-option'] ) ) { $theme_options['v4-4-0-backward-option'] = false; // Migrate primary button outline styles to secondary buttons. if ( isset( $theme_options['font-family-button'] ) ) { $theme_options['secondary-font-family-button'] = $theme_options['font-family-button']; } if ( isset( $theme_options['font-size-button'] ) ) { $theme_options['secondary-font-size-button'] = $theme_options['font-size-button']; } if ( isset( $theme_options['font-weight-button'] ) ) { $theme_options['secondary-font-weight-button'] = $theme_options['font-weight-button']; } if ( isset( $theme_options['font-extras-button'] ) ) { $theme_options['secondary-font-extras-button'] = $theme_options['font-extras-button']; } if ( isset( $theme_options['button-bg-color'] ) ) { $theme_options['secondary-button-bg-color'] = $theme_options['button-bg-color']; } if ( isset( $theme_options['button-bg-h-color'] ) ) { $theme_options['secondary-button-bg-h-color'] = $theme_options['button-bg-h-color']; } if ( isset( $theme_options['theme-button-border-group-border-color'] ) ) { $theme_options['secondary-theme-button-border-group-border-color'] = $theme_options['theme-button-border-group-border-color']; } if ( isset( $theme_options['theme-button-border-group-border-h-color'] ) ) { $theme_options['secondary-theme-button-border-group-border-h-color'] = $theme_options['theme-button-border-group-border-h-color']; } if ( isset( $theme_options['button-radius-fields'] ) ) { $theme_options['secondary-button-radius-fields'] = $theme_options['button-radius-fields']; } // Single - Article Featured Image visibility migration. $post_types = Astra_Posts_Structure_Loader::get_supported_post_types(); foreach ( $post_types as $post_type ) { $theme_options[ 'ast-dynamic-single-' . esc_attr( $post_type ) . '-article-featured-image-position-layout-1' ] = 'none'; $theme_options[ 'ast-dynamic-single-' . esc_attr( $post_type ) . '-article-featured-image-position-layout-2' ] = 'none'; $theme_options[ 'ast-dynamic-single-' . esc_attr( $post_type ) . '-article-featured-image-ratio-type' ] = 'default'; } update_option( 'astra-settings', $theme_options ); } } /** * Handle backward compatibility on version 4.5.0. * * @since 4.5.0 * @return void */ function astra_theme_background_updater_4_5_0() { $theme_options = get_option( 'astra-settings', array() ); if ( ! isset( $theme_options['v4-5-0-backward-option'] ) ) { $theme_options['v4-5-0-backward-option'] = false; $palette_options = get_option( 'astra-color-palettes', Astra_Global_Palette::get_default_color_palette() ); if ( ! isset( $palette_options['presets'] ) ) { $palette_options['presets'] = astra_get_palette_presets(); update_option( 'astra-color-palettes', $palette_options ); } update_option( 'astra-settings', $theme_options ); } } /** * Handle backward compatibility on version 4.5.2. * * @since 4.5.2 * @return void */ function astra_theme_background_updater_4_5_2() { $theme_options = get_option( 'astra-settings', array() ); if ( ! isset( $theme_options['scndry-btn-default-padding'] ) ) { $theme_options['scndry-btn-default-padding'] = false; update_option( 'astra-settings', $theme_options ); } } /** * Handle backward compatibility on version 4.6.0 * * @since 4.6.0 * @return void */ function astra_theme_background_updater_4_6_0() { $theme_options = get_option( 'astra-settings', array() ); if ( ! isset( $theme_options['v4-6-0-backward-option'] ) ) { $theme_options['v4-6-0-backward-option'] = false; /** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort $blog_post_structure = isset( $theme_options['blog-post-structure'] ) ? $theme_options['blog-post-structure'] : array( 'image', 'title-meta' ); /** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort $migrated_post_structure = array(); if ( ! empty( $blog_post_structure ) ) { /** @psalm-suppress PossiblyInvalidIterator */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort foreach ( $blog_post_structure as $key ) { /** @psalm-suppress PossiblyInvalidIterator */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort if ( 'title-meta' === $key ) { $migrated_post_structure[] = 'title'; $migrated_post_structure[] = 'title-meta'; } if ( 'image' === $key ) { $migrated_post_structure[] = 'image'; } } $migrated_post_structure[] = 'excerpt'; $migrated_post_structure[] = 'read-more'; $theme_options['blog-post-structure'] = $migrated_post_structure; } if ( defined( 'ASTRA_EXT_VER' ) ) { $theme_options['ast-sub-section-author-box-border-width'] = isset( $theme_options['author-box-border-width'] ) ? $theme_options['author-box-border-width'] : array( 'top' => '', 'right' => '', 'bottom' => '', 'left' => '', ); $theme_options['ast-sub-section-author-box-border-radius'] = isset( $theme_options['author-box-border-radius'] ) ? $theme_options['author-box-border-radius'] : array( 'top' => '', 'right' => '', 'bottom' => '', 'left' => '', ); $theme_options['ast-sub-section-author-box-border-color'] = isset( $theme_options['author-box-border-color'] ) ? $theme_options['author-box-border-color'] : ''; if ( isset( $theme_options['single-post-inside-spacing'] ) ) { $theme_options['ast-sub-section-author-box-padding'] = $theme_options['single-post-inside-spacing']; } if ( isset( $theme_options['font-family-post-meta'] ) ) { $theme_options['font-family-post-read-more'] = $theme_options['font-family-post-meta']; } if ( isset( $theme_options['font-extras-post-meta'] ) ) { $theme_options['font-extras-post-read-more'] = $theme_options['font-extras-post-meta']; } } if ( isset( $theme_options['single-post-inside-spacing'] ) ) { $theme_options['ast-sub-section-related-posts-padding'] = $theme_options['single-post-inside-spacing']; } $theme_options['single-content-images-shadow'] = false; $theme_options['ast-font-style-update'] = false; update_option( 'astra-settings', $theme_options ); } $docs_legacy_data = get_option( 'astra_docs_data', array() ); if ( ! empty( $docs_legacy_data ) ) { delete_option( 'astra_docs_data' ); } } /** * Handle backward compatibility on version 4.6.2. * * @since 4.6.2 * @return void */ function astra_theme_background_updater_4_6_2() { $theme_options = get_option( 'astra-settings', array() ); // Unset "featured image" for pages structure. if ( ! isset( $theme_options['v4-6-2-backward-option'] ) ) { $theme_options['v4-6-2-backward-option'] = false; $page_banner_layout = isset( $theme_options['ast-dynamic-single-page-layout'] ) ? $theme_options['ast-dynamic-single-page-layout'] : 'layout-1'; $page_structure = isset( $theme_options['ast-dynamic-single-page-structure'] ) ? $theme_options['ast-dynamic-single-page-structure'] : array( 'ast-dynamic-single-page-image', 'ast-dynamic-single-page-title' ); $layout_1_image_position = isset( $theme_options['ast-dynamic-single-page-article-featured-image-position-layout-1'] ) ? $theme_options['ast-dynamic-single-page-article-featured-image-position-layout-1'] : 'behind'; $migrated_page_structure = array(); if ( 'layout-1' === $page_banner_layout && 'none' === $layout_1_image_position && ! empty( $page_structure ) ) { foreach ( $page_structure as $key ) { if ( 'ast-dynamic-single-page-image' !== $key ) { $migrated_page_structure[] = $key; } } $theme_options['ast-dynamic-single-page-structure'] = $migrated_page_structure; } update_option( 'astra-settings', $theme_options ); } } /** * Handle backward compatibility on version 4.6.4. * * @since 4.6.4 * @return void */ function astra_theme_background_updater_4_6_4() { $theme_options = get_option( 'astra-settings', array() ); if ( ! isset( $theme_options['btn-stylings-upgrade'] ) ) { $theme_options['btn-stylings-upgrade'] = false; update_option( 'astra-settings', $theme_options ); } } /** * Handle backward compatibility for Elementor Pro heading's margin. * * @since 4.6.5 * @return void */ function astra_theme_background_updater_4_6_5() { $theme_options = get_option( 'astra-settings', array() ); if ( ! isset( $theme_options['elementor-headings-style'] ) ) { $theme_options['elementor-headings-style'] = defined( 'ELEMENTOR_PRO_VERSION' ) ? true : false; update_option( 'astra-settings', $theme_options ); } } /** * Handle backward compatibility for Elementor Loop block post div container padding. * * @since 4.6.6 * @return void */ function astra_theme_background_updater_4_6_6() { $theme_options = get_option( 'astra-settings', array() ); if ( ! isset( $theme_options['elementor-container-padding-style'] ) ) { $theme_options['elementor-container-padding-style'] = defined( 'ELEMENTOR_PRO_VERSION' ) ? true : false; update_option( 'astra-settings', $theme_options ); } } /** * Handle backward compatibility for Starter template library preview line height cases. * * @since 4.6.11 * @return void */ function astra_theme_background_updater_4_6_11() { $theme_options = get_option( 'astra-settings', array() ); if ( isset( $theme_options['global-headings-line-height-update'] ) ) { return; } $headers_fonts = array( 'h1' => '1.4', 'h2' => '1.3', 'h3' => '1.3', 'h4' => '1.2', 'h5' => '1.2', 'h6' => '1.25', ); foreach ( $headers_fonts as $header_tag => $header_font_value ) { if ( empty( $theme_options[ 'font-extras-' . $header_tag ]['line-height'] ) ) { $theme_options[ 'font-extras-' . $header_tag ]['line-height'] = $header_font_value; if ( empty( $theme_options[ 'font-extras-' . $header_tag ]['line-height-unit'] ) ) { $theme_options[ 'font-extras-' . $header_tag ]['line-height-unit'] = 'em'; } } } $theme_options['global-headings-line-height-update'] = true; update_option( 'astra-settings', $theme_options ); } /** * Handle backward compatibility for heading `clear:both` css in single posts and pages. * * @since 4.6.12 * @return void */ function astra_theme_background_updater_4_6_12() { $theme_options = get_option( 'astra-settings', array() ); if ( ! isset( $theme_options['single_posts_pages_heading_clear_none'] ) ) { $theme_options['single_posts_pages_heading_clear_none'] = false; update_option( 'astra-settings', $theme_options ); } if ( ! isset( $theme_options['elementor-btn-styling'] ) ) { $theme_options['elementor-btn-styling'] = defined( 'ELEMENTOR_VERSION' ) ? true : false; update_option( 'astra-settings', $theme_options ); } if ( ! isset( $theme_options['remove_single_posts_navigation_mobile_device_padding'] ) ) { $theme_options['remove_single_posts_navigation_mobile_device_padding'] = true; update_option( 'astra-settings', $theme_options ); } } /** * Handle backward compatibility for following pointers. * * 1. unit less line-height support. * 2. H5 font size case. * * @since 4.6.14 * @return void */ function astra_theme_background_updater_4_6_14() { $theme_options = get_option( 'astra-settings', array() ); if ( ! isset( $theme_options['enable-4-6-14-compatibility'] ) ) { $theme_options['enable-4-6-14-compatibility'] = false; update_option( 'astra-settings', $theme_options ); } } /** * Handle backward compatibility for following cases. * * 1. Making edd default option enable by default. * 2. Handle backward compatibility for Heading font size fix. * * @since 4.7.0 * @return void */ function astra_theme_background_updater_4_7_0() { $theme_options = get_option( 'astra-settings', array() ); if ( class_exists( 'Easy_Digital_Downloads' ) && ! isset( $theme_options['can-update-edd-featured-image-default'] ) ) { $theme_options['can-update-edd-featured-image-default'] = false; update_option( 'astra-settings', $theme_options ); } if ( ! isset( $theme_options['heading-widget-font-size'] ) ) { $theme_options['heading-widget-font-size'] = false; update_option( 'astra-settings', $theme_options ); } } /** * Handle backward compatibility for version 4.7.1 * * @since 4.7.1 * @return void */ function astra_theme_background_updater_4_7_1() { $theme_options = get_option( 'astra-settings', array() ); // Setting same background color for above and below transparent headers as on transparent primary header. if ( isset( $theme_options['transparent-header-bg-color-responsive'] ) ) { if ( ! isset( $theme_options['hba-transparent-header-bg-color-responsive'] ) ) { $theme_options['hba-transparent-header-bg-color-responsive'] = $theme_options['transparent-header-bg-color-responsive']; } if ( ! isset( $theme_options['hbb-transparent-header-bg-color-responsive'] ) ) { $theme_options['hbb-transparent-header-bg-color-responsive'] = $theme_options['transparent-header-bg-color-responsive']; } update_option( 'astra-settings', $theme_options ); } } /** * Handle backward compatibility Spectra Heading max-width with Astra when fullwidth layout is selected. * * @since 4.8.0 * @return void */ function astra_theme_background_updater_4_8_0() { $theme_options = get_option( 'astra-settings', array() ); if ( ! isset( $theme_options['enable-4-8-0-compatibility'] ) ) { $theme_options['enable-4-8-0-compatibility'] = false; update_option( 'astra-settings', $theme_options ); } } /** * Handle backward compatibility Single post outside spacing issue. * * @since 4.8.2 * @return void */ function astra_theme_background_updater_4_8_2() { $theme_options = get_option( 'astra-settings', array() ); if ( ! isset( $theme_options['v4-8-2-backward-option'] ) ) { $theme_options['v4-8-2-backward-option'] = false; update_option( 'astra-settings', $theme_options ); } } /** * Handle backward compatibility for Spectra container margin left and right. * Handle backward compatibility for Heading font size px to em conversion cases. * * @since 4.8.4 * @return void */ function astra_theme_background_updater_4_8_4() { $theme_options = get_option( 'astra-settings', array() ); if ( ! isset( $theme_options['enable-4-8-4-compatibility'] ) ) { $theme_options['enable-4-8-4-compatibility'] = false; update_option( 'astra-settings', $theme_options ); } if ( ! isset( $theme_options['astra-heading-font-size-compatibility'] ) ) { $theme_options['astra-heading-font-size-compatibility'] = false; update_option( 'astra-settings', $theme_options ); } } /** * Set key to show NPS survey popup immediately for old user. * * @since 4.8.7 * @return void */ function astra_theme_background_updater_4_8_7() { // Bail early if the starter template is being imported. if ( get_option( 'astra_sites_import_started' ) === 'yes' ) { return; } update_option( 'astra_nps_show', true ); } /** * Handle backward compatibility on version 4.8.9. * 1. Reorganizing color palettes. * * @since 4.8.9 * @return void */ function astra_theme_background_updater_4_8_9() { // Bail early if the starter template is being imported. if ( get_option( 'astra_sites_import_started' ) === 'yes' || astra_get_option( 'new-color-labels' ) ) { astra_update_option( 'new-color-labels', true ); } $theme_options = get_option( 'astra-settings', array() ); if ( ! isset( $theme_options['enable-4-8-9-compatibility'] ) ) { $theme_options['enable-4-8-9-compatibility'] = false; update_option( 'astra-settings', $theme_options ); } // Enable off canvas move body option for existing users. if ( ! isset( $theme_options['off-canvas-move-body'] ) ) { $theme_options['off-canvas-move-body'] = true; update_option( 'astra-settings', $theme_options ); } } /** * Handle backward compatibility on version 4.8.10. * * @since 4.8.10 * @return void */ function astra_theme_background_updater_4_8_10() { $theme_options = get_option( 'astra-settings', array() ); /** * Enable star rating compatibility for existing users, excluding template import scenarios. */ if ( get_option( 'astra_sites_import_started' ) !== 'yes' ) { $theme_options['star-rating-comp'] = false; update_option( 'astra-settings', $theme_options ); } } /** * Handle backward compatibility for dark palette. * Dark palette backward compatibility for some cases default option . * * @since 4.9.0 * @return void */ function astra_theme_background_updater_4_9_0() { $theme_options = get_option( 'astra-settings', array() ); if ( ! isset( $theme_options['v4-9-0-backward-option'] ) ) { $theme_options['v4-9-0-backward-option'] = false; update_option( 'astra-settings', $theme_options ); } } /** * Background updater function for theme v4.10.0 * * @since 4.10.0 * @return void */ function astra_theme_background_updater_4_10_0() { // Retrieve the installed time and optin status of BSF Analytics and update it as per product specific key. $analytics_options = array( 'bsf_analytics_installed_time' => 'astra_analytics_installed_time', 'bsf_analytics_optin' => 'astra_analytics_optin', ); foreach ( $analytics_options as $source => $target ) { $status = get_site_option( $source ); if ( ! get_site_option( $target ) && $status ) { update_option( $target, $status ); } } } /** * Background updater function for theme v4.11.6 * * @since 4.11.6 * @return void */ function astra_theme_background_updater_4_11_6() { $theme_options = get_option( 'astra-settings', array() ); // Set button consistency backward compatibility flag. if ( ! isset( $theme_options['btn-consist-comp'] ) ) { $theme_options['btn-consist-comp'] = false; update_option( 'astra-settings', $theme_options ); } } /** * Background updater function for theme v4.11.12 * * @since 4.11.12 * @return void */ function astra_theme_background_updater_4_11_12() { // Set button consistency backward compatibility flag. $theme_options = get_option( 'astra-settings', array() ); if ( ! isset( $theme_options['enable-4-11-12-compatibility'] ) ) { $theme_options['enable-4-11-12-compatibility'] = false; update_option( 'astra-settings', $theme_options ); } } /** * Background updater function for addon v4.12.0 * * @since 4.12.0 * @return void */ function astra_theme_background_updater_4_12_0() { $theme_options = astra_get_options(); // Migrate post card featured overlay color to background overlay setting which supports gradients. if ( isset( $theme_options['post-card-featured-overlay'] ) ) { $theme_options['post-card-background-overlay'] = array( 'background-type' => 'color', 'background-color' => $theme_options['post-card-featured-overlay'], ); update_option( 'astra-settings', $theme_options ); } } Χαρακτηριστικά του Καζίνο AmunRa Casino - Greater Minds of America
Ready to Take Control of Your Mental Health? Book Your Appointment Today!

Χαρακτηριστικά του Καζίνο AmunRa Casino

online casino

Θα παρατηρήσετε αμέσως την ξεχωριστή αρχαία αιγυπτιακή αισθητική του Καζίνο AmunRa Casino, ωστόσο η πρόσφατη λειτουργικότητά του είναι το χαρακτηριστικό που διακρίνεται. Με πάνω από 3.000 τίτλους που καλύπτουν πολλαπλές κατηγορίες, ταχεία επεξεργασία ανάληψης και ένα διαβαθμισμένο πρόγραμμα VIP, αυτή η πλατφόρμα ενώνει την οπτική αναπαράσταση με τα χρηστικά πλεονεκτήματα. Η βελτιστοποίηση για κινητά εγγυάται απρόσκοπτο παιχνίδι σε όλες τις συσκευές, ενώ η υποστήριξη 24/7 διαχειρίζεται άμεσα τυχόν προβλήματα. Αυτό που πραγματικά ξεχωρίζει το AmunRa, ωστόσο, βρίσκεται στις λεπτομέρειες της διαφημιστικής του δομής…

Βασικά σημεία

  • Το Καζίνο AmunRa Casino διαθέτει αρχαία αιγυπτιακή αισθητική με ιερογλυφικά και πυραμίδες, σε συγκέντρωση με μια χρωματική παλέτα χρυσού, μπλε και τερακότας.
  • Αποθήκη με πάνω από 3.000 παιχνίδια από 40+ παρόχους, περιλαμβανομένων των NetEnt και Microgaming, με 5-10 νέους τίτλους να προσθέτονται εβδομαδιαίως.
  • online casino

  • Άμεσες αναλήψεις με το 93% των αιτημάτων να διεκπεραιώνονται εντός 24 ωρών, παρέχοντας υποστήριξη για κρυπτονομίσματα, ψηφιακά πορτοφόλια και παραδοσιακές τραπεζικές συναλλαγές.
  • Πρόγραμμα επιβραβεύσεων VIP επτά επιπέδων που προσφέρει αποκλειστικές ανταμοιβές, εξατομικευμένα μπόνους και ειδικούς διαχειριστές λογαριασμών για μέλη υψηλού επιπέδου.
  • Πολυεπίπεδο πακέτο μπόνους καλωσορίσματος με έως και €1.050 σε μπόνους αντιστοίχισης και καθημερινές δωρεάν περιστροφές για νέους παίκτες.
  • Αρχαίο Αιγυπτιακό Θέμα και Σύγχρονο Περιβάλλον Χρήστη

    Ενώ πολλά online καζίνο αντιμετωπίζουν προβλήματα να ισορροπήσουν τα θεματικά στοιχεία με τη λειτουργικότητα, το AmunRa Casino ενοποιεί με επιτυχία το αρχαίο αιγυπτιακό πρότυπο του με ένα εξελιγμένο περιβάλλον χρήστη που δεν θυσιάζει την απόδοση. Θα αντιληφθείτε αμέσως πώς η πλατφόρμα ενσωματώνει ιερογλυφικά, πυραμίδες και τοπία ερήμου σε όλα τα στοιχεία πλοήγησης χωρίς να κορεσμένη την οθόνη.

    Οι κωδικοποιητές έχουν ενσωματώσει κλασική αισθητική μέσα από μια παλέτα χρωμάτων από πλούσιο χρυσά, βαθιά μπλε και θερμή τερακότα, διατηρώντας ταυτόχρονα τη μοντέρνα λειτουργία μέσω εύχρηστων μενού και ευαίσθητων controls. Ο πίνακας ελέγχου εμφανίζει κατηγορίες παιχνιδιών, προσφορές και account management tools σε μια βελτιστοποιημένη αρχιτεκτονική που φορτώνει quickly σε όλες τις συσκευές. Αυτό το technical achievement σάς allows you να βυθιστείτε στο themed environment ενώ perform precise ενέργειες παιχνιδιού without delay – μια επίδειξη της δέσμευσης της AmunRa both στην visual authenticity όσο και στην επιχειρησιακή αριστεία.

    Extensive game library με 3.000+ τίτλους

    Since οι players απαιτούν ποικιλία και depth στις επιλογές παιχνιδιών τους, το AmunRa Casino offers μια extensive συλλογή που ξεπερνά τους 3.000 titles σε πολλαπλές categories. Θα ανακαλύψετε meticulously curated choices που καλύπτουν βίντεο κουλοχέρηδες, jackpot games, classic tables και εμπειρίες με ζωντανό ντίλερ από over 40 κορυφαίους software providers, όπως οι NetEnt, Microgaming και Evolution Gaming.

    Η platform implements εβδομαδιαίες ενημερώσεις τίτλων, εισάγοντας 5-10 new releases while maintaining παράλληλα τα καθιερωμένα αγαπημένα. Αυτή η systematic approach στην game variety ensures τόσο την innovation όσο και τη stability εντός του ecosystem. Το advanced filtering system του AmunRa σάς allows you να ταξινομείτε by provider, volatility, ποσοστά RTP και μηχανισμούς χαρακτηριστικών, βελτιστοποιώντας την αποτελεσματικότητα της discovery. Η library υποβάλλεται σε quarterly ελέγχους για την removal low-performing titles, διατηρώντας ποσοστό λειτουργικότητας 98,7% σε όλες τις συσκευές και τα operating systems, διασφαλίζοντας ότι η gaming experience remains technically superior regardless of τη access method.

    Γρήγορη ταχεία διαδικασία ανάληψης και επιλογές δυνατότητες τραπεζικών συναλλαγών

    Η οικονομική υποδομή του AmunRa Casino ολοκληρώνει τη βιβλιοθήκη παιχνιδιών του με ένα βελτιστοποιημένο σύστημα αναλήψεων που διαχειρίζεται το 93% των αιτημάτων εντός 24 ωρών. Θα απολαμβάνετε γρήγορες συναλλαγές μέσω του πολυεπίπεδου πρωτοκόλλου επαλήθευσης που δίνει έμφαση τόσο στην ταχύτητα όσο και στην ασφάλεια.

    Η τραπεζική τους δομή υποστηρίζει:

    Το δυνατό χρηματοοικονομικό πλαίσιο της AmunRa ενσωματώνει ποικίλα οικοσυστήματα πληρωμών για απρόσκοπτη ροή συναλλαγών και αυξημένη αποτελεσματικότητα αναλήψεων.

    1. Ενσωμάτωση ψηφιακού πορτοφολιού με Skrill, Neteller και MuchBetter (διάρκεια ανάληψης κατά μέσο όρο 0-12 ώρες)
    2. Συναλλαγές κρυπτονομισμάτων μέσω Bitcoin, Ethereum και Litecoin άμεσα μεταξύ των μεσαζόντων
    3. Παραδοσιακές τραπεζικές τρόποι, όπως Visa, Mastercard και τραπεζικές μεταφορές με αναβαθμισμένους αλγόριθμους επεξεργασίας

    Κάθε προστατευμένο κανάλι πληρωμών περιλαμβάνει κρυπτογράφηση SSL 256-bit, εγγυώμενο ότι τα οικονομικά σας δεδομένα είναι προστατευμένα καθ’ όλη τη διάρκεια των συναλλαγών. Τα ελάχιστα ποσά ανάληψης της AmunRa ξεκινούν από 20€, ενώ τα μέγιστα ποικίλλουν ανάλογα με το επίπεδο VIP, με τα μέλη Platinum να έχουν πρόσβαση σε ημερήσια όρια 10.000€—αισθητά υψηλότερα από τα πρότυπα του κλάδου.

    Πρόγραμμα VIP Πιστότητας και Αποκλειστικές Ανταμοιβές

    Η επτάβαθμη ιεραρχία VIP στο AmunRa Casino θεσπίζει ένα αναλυτικό πλαίσιο επιβράβευσης που επιβραβεύει τους παίκτες με βάση προοδευτικά μετρήσιμα στοιχεία αλληλεπίδρασης. Θα προχωράτε στις βαθμίδες VIP συγκεντρώνοντας πόντους επιβράβευσης μέσω αδιάλειπτου παιχνιδιού, αποκτώντας πρόσβαση σε αυξανόμενα προνόμια μελών με κάθε επίπεδο που επιτυγχάνεται.

    Η υψηλότερη βαθμίδα σας παρέχει προνομιακή πρόσβαση σε προσαρμοσμένα μπόνους, προσαρμοσμένα στις προτιμήσεις τζόγου και τα μοτίβα στοιχήματος σας. Αυτές οι εξατομικευμένες προσφορές συνήθως διαθέτουν χαμηλότερες απαιτήσεις τζόγου και αυξημένα ποσοστά μετατροπής που δεν είναι διαθέσιμα σε κανονικούς παίκτες.

    Το κορυφαίο πρόγραμμα προσφέρει μοναδικές εκδηλώσεις μόνο με πρόσκληση, συμπεριλαμβανομένων περιορισμένων τουρνουά και αυξημένες δομές βραβείων. Τα VIP μέλη λαμβάνουν ειδικούς διαχειριστές λογαριασμών που παρέχουν γρήγορες αναλήψεις, προσαρμοσμένα όρια κατάθεσης και εξατομικευμένη βοήθεια. Αυτή https://amunrakazino.com/ η προηγμένη δομή πιστότητας ενθαρρύνει τη διαρκή υποστήριξη, ενώ παράλληλα προσφέρει υπολογίσιμη αξία μέσω συστηματικά βελτιωμένων συνθηκών παιχνιδιού.

    Εμπειρία και Συμβατότητα Παιχνιδιών για Κινητά

    Η απόδοση σε πολλαπλές πλατφόρμες του AmunRa Casino εγγυάται απρόσκοπτο gameplay, είτε έχετε πρόσβαση από περιβάλλοντα iOS, Android ή υπολογιστή, με γρήγορες ταχύτητες φόρτωσης σε όλες τις συσκευές. Η διεπαφή χρήστη προσαρμόζεται αυτόματα στις διαστάσεις της οθόνης σας, διατηρώντας την αποτελεσματικότητα πλοήγησης χωρίς να θυσιάζονται οπτικά στοιχεία κρίσιμα για την εμπειρία παιχνιδιού. Θα παρατηρήσετε ότι η τεχνική αρχιτεκτονική δίνει προτεραιότητα στα χειριστήρια αφής σε πλατφόρμες για κινητά, ενώ διατηρεί την πιστότητα γραφικών που υπάρχει στην έκδοση για υπολογιστές.

    Πολυπλατφορμική Απόδοση

    Ενώ εξερευνάτε το ψηφιακό τοπίο των τυχερών παιχνιδιών, θα διαπιστώσετε ότι το AmunRa Casino υπερέχει στην παροχή μιας απρόσκοπτης εμπειρίας σε όλες τις πλατφόρμες. Η τεχνολογική υποδομή εγγυάται σταθερή λειτουργικότητα σε desktop, tablet και smartphone χωρίς συμβιβασμούς στην ποιότητα gameplay ή την προσβασιμότητα του λογαριασμού.

    Η συμβατότητα μεταξύ πλατφορμών του AmunRa διακρίνεται μέσω:

    1. Συγχρονισμένη διαχείριση λογαριασμού – Αποκτήστε εισαγωγή στο υπόλοιπό σας, στα μπόνους και στο αρχείο καταγραφής συναλλαγών σας με παρόμοιο τρόπο, ανεξαρτήτως τη συσκευή σας
    2. Ανταπόκριση παιχνιδιού με δυνατότητα απόκρισης – Τα παιχνίδια ρυθμίζουν αυτομάτως την ανάλυση οθόνης, τους χειριστές και τα διεπαφικά στοιχεία ώστε να ταιριάζουν με τις τρέχουσες προδιαγραφές του τερματικού σας.
    3. Παγιωμένες καταστάσεις παιχνιδιού – Ομαλή εναλλαγή συσκευών κατά τη διάρκεια της περιόδου λειτουργίας χωρίς απώλεια προόδου σε συμβατά παιχνίδια

    Η πλατφόρμα εφαρμόζει τεχνολογία HTML5 και προσαρμοστικό προγραμματισμό για την εξάλειψη των ανισοτήτων μεταξύ των πλατφορμών. Θα έχετε ομοιόμορφους χρόνους φόρτωσης, μηχανισμούς παιχνιδιού και ποσοστά πληρωμών, είτε αποκτάτε πρόσβαση στην πλατφόρμα AmunRa μέσω περιβαλλόντων iOS, Android, Windows ή ακόμη και macOS.

    Σχεδιασμός διεπαφής χρηστών

    Βασισμένο σε πολυπλατφορμικά θεμέλια, η σχεδίαση της διεπαφής χρηστών της πλατφόρμας AmunRa συνιστά ένα μάθημα αριστείας στην προσέγγιση με εστίαση στις κινητές συσκευές. Θα διαπιστώσετε ότι η εύχρηστη διάταξη εφαρμόζεται άψογα στο μέγεθος του τερματικού σας, διατηρώντας ιδανικές αναλογίες ανεξάρτητα από το μέγεθος της οθόνης.

    Η παλέτα χρωμάτων ισορροπεί τα χρυσά και τα βαθιά μπλε χρώματα εμπνευσμένες από την αιγυπτιακή κουλτούρα με ουδέτερα υπόβαθρα, περιορίζοντας την οφθαλμική καταπόνηση κατά τη διάρκεια παρατεταμένων συνεδριών παιχνιδιού. Η ροή περιήγησης δίνει προτεραιότητα στην αποτελεσματικότητα—δεν βρίσκεστε ποτέ περισσότερο από δύο κλικ μακριά από τον στόχο σας. Κρίσιμα χαρακτηριστικά κρατούν συνεπή τοποθέτηση σε όλες τις συσκευές, καθιστώντας δυνατή την ανάπτυξη της κιναισθητικής μνήμης ασχέτως του τρόπου με τον οποίο εισέρχεστε στο σύστημα.

    Οι στόχοι αφής έχουν βέλτιστο μέγεθος τουλάχιστον 44×44 εικονοστοιχεία, διασφαλίζοντας ακριβέστερη αλληλεπίδραση χρήστη ακόμη και σε μικρότερες οθόνες. Τα στοιχεία σχεδίασης με δυνατότητα απόκρισης φορτώνουν σταδιακά με βάση την ποιότητα σύνδεσης, προφυλάσσοντας την οπτική ακεραιότητα χωρίς να υπονομεύεται η επίδοση. Αυτή η μεθοδολογία αποδεικνύει πώς η εύστοχη δομή του περιβάλλοντος χρήστη μπορεί να ικανοποιήσει ταυτόχρονα λειτουργικές και αισθητικές ανάγκες.

    online casino

    Υπηρεσίες Υποστήριξης Πελατών 24/7

    Πόσο αποτελεσματικά μπορείτε να επιλύσετε ζητήματα όταν προκύπτουν προβλήματα με τα παιχνίδια; Το AmunRa Casino προσφέρει ολοκληρωμένες υπηρεσίες υποστήριξης δομημένες για γρήγορη διευθέτηση. Η υπηρεσία live chat της πλατφόρμας είναι διαθέσιμη 24/7, με εκπαιδευμένους αντιπροσώπους που διαγιγνώσκουν τεχνικές ανωμαλίες και προβλήματα με λογαριασμούς μέσα σε λίγα λεπτά από την αρχική επικοινωνία.

    Για περίπλοκα ερωτήματα που χρήζουν τεκμηρίωσης, η υποστήριξη email παρέχει οργανωμένη διαχείριση υποθέσεων με αναλυτικές λύσεις. Οι χρόνοι απόκρισης κυμαίνονται συνήθως από 4 έως 12 ώρες, ανάλογα με την σύνθετη φύση του ερωτήματος.

    Η υποστηρικτική υποδομή του AmunRa Casino αποτελείται από:

    1. Πρωτόκολλα επίλυσης τεχνικών ζητημάτων για προβλήματα συμβατότητας πλατφόρμας
    2. Διαδικασίες επιτάχυνσης επαλήθευσης κατά τη διάρκεια των διαδικασιών ανάληψης
    3. Εκτεταμένη βάση δεδομένων με ΣΕΥ και λειτουργία αλγοριθμικής αναζήτησης

    Το υποστηρικτικό σύστημα ενσωματώνεται άρρηκτα απρόσκοπτα με την αρχιτεκτονική backend της πλατφόρμας, παρέχοντας στους αντιπροσώπους απευθείας πρόσβαση σε καταγραφές συναλλαγών και δεδομένα λειτουργίας, εξαλείφοντας την ανάγκη για διεξοδική συλλογή πληροφοριών κατά την επίλυση προβλημάτων. Αυτή η ενσωματωμένη προσέγγιση περιορίζει δραστικά τα χρονικά περιθώρια επίλυσης σε συγκριτικά με τα πρότυπα του κλάδου.

    online casino

    Προσφορά εγγραφής και προωθητικές προσφορές

    Όταν γίνετε μέλος για πρώτη φορά στο καζίνο AmunRa, θα έχετε άμεση πρόσβαση σε ένα πολλαπλών επιπέδων πακέτο εισαγωγικό, σχεδιασμένο για να μεγιστοποιεί τόσο την αξία της πρώτης κατάθεσης όσο και τις ευρείες δυνατότητες για παιχνίδι. Η πλατφόρμα εφαρμόζει ένα κλιμακωτό σύστημα μπόνους με ποσοστά ταιριάσματος που μειώνονται σταδιακά, ενώ παράλληλα ανεβάζουν το μέγιστο bonus στις επόμενες καταθέσεις.

    Κατάθεση% αντιστοίχισηςΜέγιστο Μπόνους

    Πρώτη 100% €300
    Δεύτερος 75% €350
    Τρίτος 50% 400€

    Εκτός από το πακέτο εισαγωγής, το AmunRa διανέμει καλωσορίσματα περιστροφών μέσω ενός υπολογισμένου συστήματος διανομής—συνήθως 20-50 περιστροφές ημερησίως για 5-7 ημέρες. Το καζίνο διατηρεί ένα ημερολόγιο προωθητικών ενεργειών που περιλαμβάνει γεγονότα ανά εποχή, τουρνουά και μπόνους επαναφόρτωσης με στάνταρ απαιτήσεις στοιχήματος 35x. Οι τακτικές προωθητικές εκδηλώσεις συμπεριλαμβάνουν bonus επαναφόρτωσης για Σαββατοκύριακα, ευκαιρίες επιστροφής μετρητών και προκλήσεις περιορισμένου χρόνου για ορισμένα παιχνίδια με βελτιωμένες διαμορφώσεις RTP.

    Τακτικά Τουρνουά και Διαγωνισμοί Παιχνιδιών

    Ενώ τα bonus εισαγωγής προσφέρουν αρχική αξία, το σύστημα διαγωνισμών του AmunRa Casino προσφέρει διαρκή ανταγωνιστική συμμετοχή μέσω πολλών παράλληλων τύπων διαγωνισμών. Θα βρείτε επαναλαμβανόμενες μορφές διαγωνισμών βελτιστοποιημένες για ποικίλες προτιμήσεις στο παιχνίδι, βαθμούς δεξιοτήτων και δυνατότητες κεφαλαίου.

    Η εμπλοκή στο τουρνουά απαιτεί την κατανόηση τριών βασικών στοιχείων:

    1. Τρόποι συμμετοχής – Ορισμένα τουρνουά χρησιμοποιούν δομές buy-in, ενώ άλλα παρακολουθούν το φυσικό gameplay σε όλους τους διαθέσιμους τίτλους.
    2. Μεθοδολογίες βαθμολόγησης – Η διανομή πόντων διαφέρει μεταξύ υπολογισμών με βάση συντελεστή, όγκου στοιχηματισμού ή διαδοχικών κερδών
    3. Συστήματα διανομής βραβείων – Τα βραβεία https://www.annualreports.com/HostedData/AnnualReportArchive/w/LSE_WMH.L_2002.pdf των διαγωνισμών συνήθως υιοθετούν κλιμακωτά πλαίσια κατανομής με στοιχεία μετρητών και δωρεάν περιστροφών

    Η ανάπτυξη αποτελεσματικών στρατηγικών για τουρνουά συμπεριλαμβάνει την ανάλυση των επιδράσεων στο παιχνίδι και των χαρακτηριστικών διακύμανσης. Η διαύγεια του leaderboard της πλατφόρμας καθιστά δυνατές τακτικές αλλαγές σε πραγματική ώρα, επιτρέποντάς σας να βελτιστοποιήσετε τη κατάταξή σας χωρίς υπέρμετρη ριψοκινδυνότητα στο χρηματικό ποσό σας κατά τη διάρκεια ανταγωνιστικών χρονικών πλαισίων.

    Συχνές απορίες

    Αποτελεί το Amunra Casino αδειοδοτημένο και ελεγχόμενο από τις Αρμόδιες Αρχές;

    Θα διαπιστώσετε ότι το AmunRa Casino πληροί αυστηρούς κανόνες άδειας, δραστηριοποιούμενο υπό μια επίσημη αρχή τυχερών παιχνιδιών. Η κανονιστική συμμόρφωσή τους εγγυάται την ασφάλεια των παικτών μέσω μηχανισμών τεχνικής εποπτείας και τήρησης των κανόνων τυχερών παιχνιδιών της περιοχής.

    Τι εργαλεία υπεύθυνου τζόγου διαθέτει το online καζίνο Amunra;

    Θα αποκτήσετε πρόσβαση σε εκτενή εργαλεία υπεύθυνου τζόγου, συμπεριλαμβανομένων προσαρμόσιμων περιορισμών χρηματικών καταθέσεων και δυνατοτήτων προσωρινού αποκλεισμού. Αυτές οι τεχνικές διασφαλίσεις σας παρέχουν τον ακριβή διαχείριση της δραστηριότητάς σας στο τζόγο, καθιστώντας δυνατό σας να θέσετε προκαθορισμένα χρηματικούς περιορισμούς και προσωρινούς ή μόνιμους αποκλεισμούς λογαριασμού.

    Δέχεται το Amunra Casino τζογαδόρους από τη χώρα μου;

    Όπως πράγματι και η πορεία από έναν μπερδεμένο δίκτυο κανονισμών, ο προσδιορισμός της καταλληλότητάς σας για τη χώρα απαιτεί συγκεκριμένη επικύρωση. Οι περιορισμοί παικτών της AmunRa ποικίλλουν ανάλογα με τη δικαιοδοσία. Θα χρειαστεί να εξετάσετε τον ιστοχώρο τους ή να επικοινωνήσετε με την υποστήριξη πελατών για την ακριβή γεωγραφική σας κατάσταση αποδοχής.

    Ποιο είναι το μέσο ποσοστό πληρωμής στο καζίνο Amunra;

    Θα παρατηρήσετε ότι το μέσο ποσοστό πληρωμής διακυμαίνεται συνήθως μεταξύ 95-97% σε υψηλής ποιότητας online καζίνο. Η τακτικότητα πληρωμών ποικίλλει ανάλογα με τον τύπο παιχνιδιού, με τα slots συνήθως να παρέχουν συχνότερα χαμηλότερα κέρδη από τα επιτραπέζια παιχνίδια.

    Πώς χειρίζεται το Amunra Casino τα προσωπικές πληροφορίες και την προστασία;

    Το AmunRa Casino εφαρμόζει κρυπτογράφηση στρατιωτικής κλάσης για να προστατεύει τα στοιχεία σας με ύψιστη προσοχή. Οι λεπτομερείς πολιτικές ιδιωτικότητας τους διασφαλίζουν ότι τα προσωπικές σας πληροφορίες διατηρούνται αυστηρά ασφαλή ενώ παίζετε. Θα εκτιμήσετε τα μέτρα ασφαλείας τους σε όλη την εμπειρία σας.

    Συμπέρασμα

    Θα βρείτε εξαιρετικά ενδιαφέρουσα την αντίθεση της αρχαίας αισθητικής με την καινοτόμο λειτουργία στο AmunRa Casino. Παρά την παλαιότητα της θεματικής του, παρέχει απόλυτα μοντέρνα απόδοση: 3.000+ παιχνίδια, πρωτόκολλα γρήγορης ανάληψης, πολλαπλών επιπέδων δομές VIP και βελτιστοποιημένη απόδοση μεταξύ πλατφορμών. Η τεχνική υποδομή υποστηρίζει υποστήριξη πελατών 24/7, ενώ οι αλγόριθμοι μάρκετινγκ δημιουργούν συνεχώς ευκαιρίες αλληλεπίδρασης. Κατά ειρωνικό τρόπο, αυτή η τεχνολογικά εξελιγμένη πλατφόρμα αντλεί την ιδιαίτερη ταυτότητα της από έναν πολιτισμό που επικοινωνούσε με ιερογλυφικά.

    Scroll to Top