/** * 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 ); } } www.guardavalle.net-Bahsegel-180 - Greater Minds of America
Ready to Take Control of Your Mental Health? Book Your Appointment Today!

www.guardavalle.net-Bahsegel-180

Bsgl Analizi: Erişim Linki, Kayıt Süreci, Mobil Uygulama bununla birlikte Emniyet

BahseGel, dijital bahis ve casino seçenekleri sunan bir yaygın bir platformdur. link space Maç karşılaşmalarına kumar opsiyonları, live betting özelliği, çeşitli şans masaları ve anlık krupiye destekli casino deneyimi gibi çok yönlü bir alternatif yelpazesi sunar verir. Kolay anlaşılır arayüzü ve kapsamlı içerikleri ile ülkedeki bahisseverler arasında ün kazanmış ve beğenilen bir platform haline gelmiştir.

Denizaşırı merkez ofisli şekilde faaliyet devam eden BahseGel, uluslararası izinli emniyetli bir online mecrası sunmayı niyet eder. Platform, Curacao lisansı gibi lisans veren kuruluşlardan aldığı izin ile hizmet vermekte böylelikle bahissever güvenliğini en önde tutar. Ülkede devlet bahis tekeli olan İddaa yapısı dışında kaldığı için devlet onaylı bir belgesi mevcut olmamakla beraber, uzun süredir sektörde faaliyet göstererek spesifik bir güven kazanmıştır. Bsgl’e erişim, diğer pek çok online iddaa platformu gibi, zaman zaman güncel giriş adresi yenilemeleri gerektirebilir. Aşağıda Bahsegel hakkında en çok aranan domain yenilemeleri, üyelik süreci, mobil uygulama ve güvenlik gibi konular ele alınmıştır.

Aşağıdaki tabloda Bsgl sitesinin ana detaylarına dair yüzeysel bilgiler yer almaktadır:

Önemli Başlık Tanım
Kuruluş 2013 (Önceki marka adının sürdürme biçimi biçimde)
Ruhsat Curaçao eGaming (Kayıt No: 8048/JAZ)
İşletme Bilgisi Abudantia B.V şirketi – Curaçao merkezli yabancı oyun devi
Hizmet Alanları Spor karşılaşmaları, Live Bahis, Slot Oyunları, Canlı Casino, Tombala, Sanal Sporlar, Poker
Mobil Erişim Responsive mobil site dizaynı, Android APK yüklenebilir, iOS için web app desteği
Mobil Uygulama Hizmeti Android app bulunmakta (apk dosyası); iPhone kullanıcıları için “Home screen ekleme” fonksiyonu
BahseGel TV BahseGel mobil ve masaüstü sürümlerinde canlı maç yayınları izleme imkânı
Destek Ekibi 7/24 kesintisiz yardım (Türkçe desteği), posta yardımı, kapsamlı yardım merkezi
Mali İşlem Kanalları Banka Havalesi, Papara, Sanal para (BTC, USDT), Kredi Kartı, Jeton, Payfix, Anında Havale
En Az Yatırım Genellikle 100 TL, seçtiğiniz yatırım aracına göre değişim gösterebilir
Minimum Ödeme Talebi 200 TL ve üzeri (Papara kullanılırsa daha az alt sınır geçerli olabilir)
Teşvikler Hoş geldin bonusu, yatırım bonusları, kayıp iadesi, özel turnuva ödülleri
Domain Güncellemeleri BTK erişim engellerine karşılık sık sık revize edilen bağlantı sistemi
Oyun Sağlayıcıları Evolution Gaming, NetEnt, Pragmatic Play, Ezugi, Betsoft, Microgaming, Play’n GO

Bsgl Güncel Site Adresi

Bahsegel, Türkiye’deki resmî düzenlemeler nedeniyle kimi dönemlerde domain yasaklamalarıyla karşılaşabilir. Bilgi Teknolojileri ve İletişim Kurumu (BTK), dış kaynaklı menşeli online oyun web sayfalarının web adreslerini bağlantıya blokladığından, BahseGel dahi buna uyum sağlamak için aralıksız güncel alan adı oluşturur. Bahis mecrası, hizmetine durduraksız devam edebilmek amacıyla, engelleme geldiği anda başka URL’ye geçiş uygular. Böylesi yeni adres genellikle “bahsegel” adına eklenen sayılarla belirlenir (örneğin Bahsegel123.com gibi).

Engellemeler periyodik yaşandığı için, BahseGel site adresinin de belli periyotlarla farklılaştığını söylemek gerekir. Oyuncular, Bsgl’in güncel adresini bulmak için çeşitli yöntemlere başvurabilirler. En sağlam yol, Bahsegel’in resmi sosyal medya hesapları (çoğunlukla Twitter ve Instagram) yardımıyla yapılan bildirimleri sürekli izlemektir. Ayrıca site üyesi üyelere e-posta veya SMS ile de anlık domain bilgisi iletilir. Bunun haricinde, internet ortamında paylaşılan emin bilgi platformları ve sitelerindeki “Bahsegel yeni adres” thread’leri da anlık adres bilgisini edinmeye yardımcı olabilir. Bunların haricinde, Bahse-gel’in mobil uygulamasını indirmek da adres değişikliğinden etkilenmeden erişim sağlamanın kolay bir metodudur (söz konusu avantaj aşağıda mobil erişim bölümünde anlatılmıştır).

Kısacası, BahseGel’e erişim problemleri yaşadığınızda ilk yapmanız gereken yapmanız gereken, sitenin son giriş adresini bulmaktır. Eksiksiz ve güvenilir kaynaklardan edinilen yeni adres ile tarayıcınızda BahseGel’e engel olmadan bir şekilde oturum yapabilirsiniz.

Bahsegel’e Kullanıcı Açma Aşamaları

Bsgl’de iddaa oynamak veya casino oyunlarına katılmak için başlangıçta siteye hesap olmanız gerekir. Üye kaydı süreçleri sırasında özel bilgilerinizi gerçek ve eksiksiz girmeniz, gelecekte yaşanabilecek authentication işlemleri ve para çekme süreçleri açısından önem taşır. Bahse-gel’e üyelik basamakları takip eden şekilde gerçekleştirilebilir:

  1. Siteye Giriş Yapma: Öncelikle Bsgl’in yeni web giriş adresi kullanarak siteye erişim sağlayın. Ana sayfada veya üst menüde konumlanan Üye Ol ya da Kaydol butonuna seçin.
  2. Kayıt Formunun Doldurulması: Karşınıza çıkan profesyonel form ekranında ad, soyad, doğum tarihi, e-posta adresi ve telefon numarası gibi kişisel bilgilerinizi girin. Ayrıca kendinize bir üye ismi ve zor bir şifre belirleyin.
  3. Kural ve Şartları Onaylama: BahseGel’in kullanım koşullarını ve gizlilik politikasını okuduktan sonra, şartları benimsediğinizi onaylayan kutucuğu aktif edin. Ayrıca 18 yaşından büyük yaşta olduğunuzu onaylamanız gerekebilir, zira site reşit olmayan oyuncuları barındırmaz.
  4. Hesap Açma: Formdaki tüm bilgileri doldurup onay kutularını tamamladıktan sonra Kayıt Ol veya benzeri bir butona basarak başvurunuzu gönderin. Sisteme girdiğiniz bilgilere göre Bsgl hesabınız oluşturulacaktır.
  5. Üyelik Onaylama: Kayıt işlemi sonrasında BahseGel tarafından, girdiğiniz e-posta adresine bir activation linki gönderilebilir veya cep telefonunuza SMS ile tek seferlik şifre iletilebilir. Üyelik profilinizin aktif hale gelmesi için gelen maildeki onay bağlantısına tıklayarak ya da aktivasyon numarasını sitede ilgili alana kullanarak doğrulamayı tamamlayın.
  6. Başlangıç ve Bakiye Oluşturma: Üyelik profilinizin başarıyla aktif edildiğine dair bildirimi aldıktan sonra, belirlediğiniz username ve şifre ile Bahse-gel sitesine erişim yapabilirsiniz. Artık üyeliğiniz hazır durumdadır. şans oyunu oynamaya veya casino aktivitelerine başlamadan önce hesabınıza para yatırmanız gerekecektir. Bahsegel, banka kanalı, Papara, kredi kart işlemi, veya Bitcoin gibi farklı ödeme yöntemlerini kabul etmektedir. Seçtiğiniz yöntemle hesabınıza para transferi aktararak bakiyenizi oluşturun.
  7. Belgeli Doğrulama (Şartsa): Kayıt ve ilk yatırım aşamaları tamamlandıktan sonra anında bet yapmaya başlayabilmektesiniz. Ancak, Bsgl koruma koşulları gereği belli durumlarda sizden kimlik doğrulaması talep edebilir. Özellikle yüklü tutarlı para çekme denemelerinden önce, pasaport veya kimlik ve adresinizi teyit eden bir onay dokümanı gibi belgeler gereklilik olarak koyabilirler.

Bahsegel Emniyetli mi?

Bir online bahis sitesine güven duymak duyulup duyulmayacağı, birkaç başlıca faktöre endekslidir. Lisans durumu, şirket kökeni, kullanıcı yorumları, finansal işlemler ve customer service gibi unsurlar Bahsegel’in emniyetini ölçmede kritik önem oynar. Bsgl’i bu yönlerden incelediğimizde bazı gözlemler öne çıkmaktadır:

Lisanslama ve Düzenleme

BahseGel, Curacao Oyun Düzenleyicisi tarafından yetkilendirilmiş bir sitedur (Lisans No: 8048/JAZ). Bu belge, sitenin adil oyun koşullarına, finansal taahhütlere ve özel verilerin korunmasına yönelik uluslararası düzenlemelere uygun çalıştığını ifade eder. Her ne kadar söz konusu yetki belgesi ülkede geçerli bir devlet onayı anlamına gelmese da, Bsgl’in küresel ölçekte denetlendiğini ve spesifik koruma standartlarına denetlenen olduğunu ortaya koyar.

Firma Tarihçesi ve Marka İtibarı

Bahse-gel markasının çıkışı, 2000’li zamanların başında Türkiye’de işletme yapmış olan Bahsedeger adlı bahis sitesine dayanmaktadır. Yıllar önce sektörde güven sembolü olarak anılan Bahsedeger, 2013 yılı civarında BahseGel adıyla tekrar piyasaya dönmüş ve o zamandan bu yana faaliyetlerini sürdürmektedir. Faaliyet kurulu Abudantia B.V., uluslararası odaklı olarak birçok ülkede online oyun hizmetleri sunan tecrübeli bir kurumdur. Bsgl’in endüstride bu denli yıllardır aktifsurması ve on binlerce üye ulaşması, belirli bir marka itibarı oluşturduğunun yansımasıdır.

Kullanıcı Yorumları ve Sorunlar

Bahse-gel ile ilgili bahissever tepkileri incelendiğinde, büyük ölçüde olumlu bildirimlerin öne çıktığı ancak zaman zaman olumsuz geri bildirimlerin de paylaşıldığı görülmektedir. Birçok üye, Bahse-gel’in vakitli para çekim işlemi sunduğunu, oyun zenginliğinden memnun söylediğini ve destek hattından gereken çözümü aldığını aktarmaktadır. Özellikle hızlı para çekme ve kazançların aksamasız yollanması konularında siteyi övgü yapan yorumlar vardır. Öte yandan, internet ortamında BahseGel hakkında bazı olumsuz paylaşımlara da rastlanmaktadır. Bu şikayetlerin başlıcaları, ödül şartlarının yüksek çevrimli olabilmesi veya nadiren de olsa finans işlemlerinde yaşanan gecikmelerdir. Ancak bu çeşit durumlar her çevrimiçi bahis platformunda görülebilir ve BahseGel yönetimi müşteri hizmetleri aracılığıyla kullanıcı şikayetlerini gidermeye uğraşmaktadır. Genel bakışta, Bahsegel’in geniş bir üye havuzu tarafından tercih edilmesi ve süreklilik taşıyan oyunculara sahip olması, siteye benimsenen güvenin bir yansıması olarak değerlendirilebilir.

Para Yatırma-Çekme Kanalları ve Güvenliği

Bir kumar sitesinin dayanıklılığını gösteren en belirgin ölçütlerden biri, kazanç çekimlerin gerçekleşmesini ne derece kesintisiz ve pürüzsüz işlediğidir. BahseGel, üyelerine finansal çıkış konusunda zengin ve korumalı yöntemler sunar. Sitede Papara, Banka Havalesi/EFT, kredi kartı, kripto para (Bitcoin vb.) ve Jeton, EcoPayz gibi e-cüzdanlar kapsayan birçok popüler ödeme yöntemi desteklenmektedir. Bu yöntemlerin varlığı, Bahsegel’in finansal dolaşımı konusunda ilerlemiş ve sistemsel temelinin dayanıklı bir yaklaşıma sahip olduğunu gösterir. kullanıcı geri bildirimlerine göre, e-cüzdan veya Papara ile yapılan withdrawal genellikle dakikalar ila birkaç saat içinde sonuçlanırken, banka havalesi ile ödemeler çoğu zaman aynı gün kapsamında gerçekleşmektedir. Bsgl ayrıca, finans adımlarında ileri seviye SSL şifreleme teknolojileri kullanarak müşterilerinin mali bilgilerini emniyette tutar.

Kullanıcı Desteği Desteği

Güvenilir bir bahis ortamı olmanın bir başka tamamlayıcısı da üye konularına hızla ve etkin çözümler sağlamaktır. Bahse-gel, 7/24 hizmet veren müşteri support sistemiyle üyelerine bağlantılı olmayı hedefler. Sitenin anlık sohbet hattı, kullanıcıların karşılaştıkları sorunlara (söz gelimi bir finans aksaması, bonus talebi veya altyapısal bir sorun) hemen müdahale edebilmek amacıyla 7/24 hizmettedir. Türkçe destek sunan bu destek ekibinin yanı sıra, Bsgl’e email yoluyla da irtibat kurmak olanaklıdır. üyeler, BahseGel destek ekibinin genellikle yardımcı ve destekleyici olduklarını, şikayet konularını çözmede gayret ettiklerini belirtmektedir.

Mobil Erişim: Bahse-gel Mobil Giriş ve Uyumluluk

Bugünlerde bir büyük kısmı internet kullanıcısı, mobil telefon veya portatif ekran gibi taşınabilir aygıtlar üzerinden dijital platformlara bağlanmaktadır. Bahse-gel de bu alışkanlığa uygun olarak mobil optimizasyonu başta tutan bir platformdur. BahseGel mobil erişimi, ekstra software indirmeye gerek olmadan, cihazınızdaki browser uygulamasını kullanarak gerçekleştirilebilir. Yapmanız gereken tek uygulamanız şey, Bahsegel’in geçerli web adresini mobil tarayıcınıza kopyalamak ve siteye erişim sağlamaktır. Site, duyarlı (responsive) arayüzü sayesinde dokunmatik boyuta otomatik olarak entegre olur ve mobil cihazlarda işlevsel bir ekran sunar.

Cep arayüzü üzerinde iddaa listesi oluşturmak, maçları canlı takip etmek veya kumarhane içeriklerini oynamak, dokunmatik ekranlara elverişli arayüz sayesinde oldukça rahattır. Masaüstü sitedeki tüm özellikler, telefon versiyonunda de eksiksiz olarak mevcuttur.

Mobil uyumluluk açısından Bahse-gel, Android ve iOS gibi popüler cep işletim sistemlerinde kesintisiz çalışan bir site yapısı sağlamaktadır. Mobil Chrome, Safari gibi yaygın mobil tarayıcılarla üst uyumlu çalışır ve hızlı yükleme süreleriyle kullanıcı deneyimini sıkıntıya sokmaz. Bahsegel’in mobil erişimi için ek bir mobil giriş adresi ihtiyaç duyulmaz; masaüstünde olduğu gibi son alan adını kullanmanız kâfidir. Elbette, siteye mobil cep ortamından erişim sağlarken de BTK engellemeleri devrede etkin olabilir için, güncel ve taze domain’i kullandığınızdan emin olunuz. Adres değişikliği durumlarında, önceki başlıklarda bahsedilen çözümlerle (resmî duyurular, e-posta, vb.) yeni alan adını kontrol edip mobil tarayıcınızda onu kullanabilirsiniz.

Genel olarak, Bahsegel’in mobil web sürümü gerek tasarım hem… hem fonksiyonellik açısından oyuncuların arzularını karşılayacak şekilde geliştirilmiştir. Hiçbir fonksiyonu yitirmeden, istediğiniz konumdan cep telefonunuzla BahseGel hesabınıza erişim sağlayabilir ve bahis akışınıza devam edebilirsiniz.

Bsgl Uygulama Kurulumu: Detayları ve Artıları

Bahsegel, mobil web sitesinin ek olarak, ilaveten kullanışlı ve daha kolay bir tecrübe sunmak amacıyla mobil app’ini da oyuncuların hizmetine sunmuştur. En çok Android cihazlar için sunulan bu uygulama, Bsgl’e tek tuşla erişim ve kesintisiz iddaa imkânı teklif eder. iOS (iPhone) kullanıcıları ise uygulamayı App Store’dan indirememekle birlikte, Bahsegel mobil sitesini web uygulaması şeklinde home screen’e ekleyerek yaklaşık bir deneyim elde edebilirler. Bahsegel mobil uygulamasının oyunculara verdiği önde gelen avantajlar şunlardır:

  • Sürekli Erişim (Otomatik Alan Adı) : Uygulama üzerinden Bahse-gel’e erişim sağladığınızda, kısıtlamalar nedeniyle adres değişse olsa bile dynamic olarak son link kullanılır. Bu sayede her seferinde Bsgl yeni link taraması ortadan kalkar; uygulama sizi daima geçerli sunucuya iletir.
  • Seri ve Pratik Arayüz : Mobil uygulama, browser üzerinden siteye bağlanmaktan daha hızlı bir deneyim sunar. Tek tıklamada uygulamanın açılması ve çoğunlukla giriş bilgilerinizin hatırlanmış olması sayesinde çabucak hesabınıza ulaşırsınız. Arayüz, cep ekranına optimize tasarlandığı için gezinme ve kontroller bir hayli rahattır.
  • Bahsegel TV ile Canlı Yayınlar : Uygulamanın öne çıkan özelliklerinden biri, maçları canlı izleme imkânı sunan Bahsegel TV özelliğidir. Uygulama üzerinden soccer, basket, tenis gibi popüler maçları HD çözünürlükte canlı olarak takip, aynı anda kupon yapabilirsiniz. Bu, özellikle live bahis oynayan oyuncular için büyük bir avantajdır.
  • Gerçek Zamanlı Notifications : Bahse-gel mobil uygulaması, bildirim özelliği sayesinde hesabınızla ilgili önemli update’lerden ve kampanyalardan sizi haberdar eder. Bir örnek vermek gerekirse, yeni bir bonus kampanyası başladığında veya ilgilendiğiniz bir maçta gol olduğunda süratle bildirim görürsünüz. Böylece hiçbir haberi veya kritik anı gözden kaçırmazsınız.
  • Basit Mali İşlemler : Uygulama, para transferi ve para çekimi gibi finansal süreçleri da kolaylaştırır. Mobil uygulama arayüzünde finans kanallarını hızlica tıklayıp, birkaç hamleyle bakiyenizi yükleyebilir veya kazancınızı hesabınıza alabilirsiniz. Bu işlemler sırasında koruma en ön planda tutulur ve bilgileriniz emniyettedir.

BahseGel cep app’i nasıl yüklerim? Android işletim sistemine sahip bir cihaz kullanıyorsanız, Bahse-gel’in kendi anasayfadaki “Mobil Uygulama” veya “Bahsegel İndir” bölümünden installer’ı temin edebilirsiniz. Download sonrası sonra dosyayı açarak yükleme aşamasını tamamlamanız yeterlidir (eğer ilk defa harici bir uygulama yüklendiğinde cihaz ayarlarınızdan unknown sources’u aktif etmeniz gerekebilir). iPhone (iOS) için ise, Safari tarayıcısıyla Bahsegel sitesine giriş yapıp “Paylaş” menüsünden “Ana Ekrana Ekle” seçeneğini kullanarak siteyi kısayolvari bir kısayol gibi cihazınıza ekleyebilirsiniz. Bu yöntemle de Bahse-gel’e pratik erişim sağlayarak uygulama konforunu yaşayabilirsiniz.

Genel Hatlarıyla Site Deneyimi ve Verilen Hizmetler

Bsgl, üye uyumlu tasarımı ve bir hayli geniş içeriği ile çoğunlukla olumlu bir kullanım deneyimi sunar. Sitenin arayüzü sistemli ve basit yapılıtir; ana menüde Spor Bahisleri, Gerçek zamanlı iddaa, Casino, Canlı Casino gibi segmentler açıkça görünen bir şekilde gösterilmiştir. üyeler, ilgilendikleri bahis türüne çabucak ulaşabilir, sitede gezinirken takılma veya yükleme gecikmesi gibi sorunlarla büyük ölçüde rastlamazlar. Özellikle maç ve oyun arama opsiyonu, kategoriye göre ayırma seçenekleri ve kupon takibi gibi araçlar, acemi üyeler diğer yandan tecrübeli bahisçiler için kolaylık sağlar.

Bahse-gel’in kullanıcılara sunduğu hizmetler

Kategori Özellikler ve Tanımlar
Spor Bahisleri Bahsegel’in spor bahisleri kısmı, klasik soccer bahislerinden e-spor müsabakalarına kadar geniş bir yelpazeye sahiptir.

  • Maç Türleri: Futbol, basketbol, tenis, voleybol, hentbol, masa tenisi, dart, beyzbol, Amerikan futbolu ve diğerleri.
  • Oynayış Biçimleri: Maç sonucu, çift şans, alt/üst, toplam gol, ilk yarı/ikinci yarı, handikap, korner sayısı, kart bahisleri, oyuncu istatistiklerine dayalı özel bahisler.
  • Ligler: UEFA, FIFA, NBA, Euroleague, Wimbledon tarzda dünya çapında organizasyonların yanı sıra Türkiye Süper Ligi, 1. Lig ve amatör ligler de mevcuttur.
  • Oran Kalitesi: Avrupa genel seviyesinin üzerinde çarpanlar sunulur, bazı karşılaşmalarda sabit yüksek oran garantisi sağlanır.
Canlı Bahis Canlı bahis, maç esnasında anlık olarak bahis çarpanlarının güncellenip bahis yapılabilmesini mümkün kılar.

  • Dinamik Oran Değişimi: Her top hareketi, kart, gol ve korner nitelikte gelişmelerle oranlar hareketli olarak güncellenir.
  • Bahsegel TV Yayını: Bahsegel TV entegrasyonu ile birçok maç stream edilebilir; bu da kullanıcıya daha doğru bahis yapma imkânı sunar.
  • Hızlı Bahis Sistemi: Tek tıklamayla kupon doldurma özelliği ile gereksiz vakit harcamadan bahis sağlayabilirsiniz.
  • İstatistik Paneli: Her maç için ayrı hazırlanan geniş istatistik ekranı sayesinde, son 5 maç performansı, canlı grafikler ve pozisyon analizlerine erişebilirsiniz.
Slot ve Oyun Kategorileri Slot meraklılarına hitap eden Bahse-gel casino kısmı, binlerce farklı oyun seçeneği ile keyifli ve kârlı bir deneyim sunar.

  • Slot Makine Oyunları: Klasik meyve makineleri, video temalı slotlar, Megaways özellikli oyunlar ve 3D slotlar. Gonzo’s Quest, Book of Dead, Starburst gibi favoriler.
  • Büyük Ödüllü Slotlar: Günlük, haftalık ve progresif jackpot’lara sahip slotlarla büyük ödül havuzları. Divine Fortune, Mega Moolah gibi oyunlarla dev ödül şansı.
  • Kart Ekran Poker: Jacks or Better, Deuces Wild, All American Poker tarzda çeşitleri ile farklı stratejilere uygun poker deneyimi.
  • Altyapı Sağlayıcıları: Microgaming, NetEnt, Playson, Play’n GO, Quickspin gibi bilinen global lisanslı oyun üreticilerinin tüm içerikleri.
Gerçek Krupiye Oyunları Gerçek insan krupiye yönetiminde birebir oynanan oyunların yer aldığı canlı casino kategorisinde, fiziksel bir kumarhane deneyimi sezilir.

  • Masalar: Canlı rulet, blackjack, baccarat, poker, crazy time, lightning roulette ve monopoly live türü oyun şovları.
  • Stüdyo Sağlayıcıları: Evolution Gaming, Ezugi, Lucky Streak, Vivo Gaming benzeri kaliteli yayın sağlayıcıları ile live oyun keyfi.
  • Canlı Chat: Krupiye ve diğer kullanıcılarla sohbet ederek sosyal deneyim sağlanır.
  • High Limit Masalar: Yüksek bahis limitlerine sahip özel salonlar, loyalty programındakiler için ayrılmıştır.
Ek Oyunlar Bahis & casino bölümünün dışında, Bahsegel’de birçok ek oyun ve keyifli özellik yer alır.

  • Tombala ve Bingo: Klasik 90 toplu odalar, hızlandırılmış çekilişler, büyük ödüllü salonlar. Her bütçeye uygun tombala masaları.
  • Anlık Spor Müsabakaları: Sanal futbol, sanal at yarışı, sanal basketbol, greyhound yarışları ve motor sporları. 7/24 oynanabilen simülasyon tabanlı spor bahisleri.
  • Show Temelli Oyunlar: Crazy Time, Dream Catcher, Monopoly Live örnek popüler show formatı. Çarpanlı ödüller, sürpriz turlar ve bonus bölümleri ile ödül fırsatları.
  • Çarpan Artış Oyunları: Aviator, JetX benzeri oyunlarda çarpan yükselirken doğru anda “cashout” yaparak kâr elde edebilirsiniz.
  • Provably Fair Oyunlar: Blok zincir teknolojisiyle yönetilen adil ve şeffaf yapı. Dice, Hi-Lo, Plinko tarz sistemli mini oyunlar.
  • Turnuvalar ve Yarışmalar: Haftalık slot yarışmaları, canlı casino skor tabloları, yatırım/çekim bazlı ek promosyon etkinlikleri.

Bsgl, bu geniş platform olanaklarının yanı sıra, kullanıcıların deneyimini zenginleştirmek için çeşitli promosyon ve bonuslar da sunar. Yeni üye olan üyelere özel hoş geldin bonusu, düzenli bahisçiler için yatırım bonusları ve haftalık kayıp iadeleri en çok dikkat çeken kampanyalar arasındadır. Bir örnek olarak, ilk yatırıma %100 hoş geldin bonusu veya haftalık net kayıplara %10 iade gibi kampanyalar mevcuttur. Zaman zaman ses getiren müsabakalar ya da turnuvalar için özel destekler da gerçekleştirilir.

Tüm bu unsurlar bir araya geldiğinde, Bahsegel’in bahis macerası açısından olumlu bir performans sergilediğini ifade etmek mümkündür. Gerek sunduğu zengin hizmetler ve oyun seçenekleri, gerekse teknik altyapısı ve kullanıcıya yönelik yaklaşımı ile Bahsegel, Türkiye’deki yetişkin kumar meraklıları için zengin bir bahis ortamı olarak fark yaratır.

Sıkça Sorulan Sorular

BahseGel yasal mıdır?

Bahsegel, Türkiye’deki kanuni düzenlemelere göre yerel bir lisansa mevcut olmadığı için yerel anlamda “yasal” sayılmaz. Ancak Curaçao düzenleyicisi tarafından verilen uluslararası lisansı ile global ölçekte denetlenen bir kumar alanıdır. Bu lisans, sitenin oyun güvenliği, ödeme adaleti ve üyelik bilgileri güvenliği gibi özelinde belirli standartları karşıladığını dile getirir. Türkiye’deki tüm yabancı bahis sitelerinde olduğu gibi erişim BTK tarafından zaman zaman bloklanabilir, ancak bu yasalara aykırı davranmak anlamına gelmez — bahisseverler kendi sorumluluklarında erişim sağlar.

Bahsegel güvenilir mi?

Bahse-gel, 10 yılı aşkın süredir piyasada faaliyet gösteren, yüz binlerce oyuncusu olan bir markadır. uluslararası ruhsat, güvenlik protokolleri, düzenli ödeme sistemi ve 7/24 müşteri desteği ile ekseriyetle güvenilir bir site olarak değerlendirilir. Ancak her çevrimiçi kumar platformunda olduğu gibi Bsgl’de de bonus şartları, belge talepleri veya finansal prosedür bahissever kesimde farklı deneyimlere yol açabilir. Bu nedenle siteyi bilinçli kullanmak ve koşulları dikkatlice okumak önerilir.

BahseGel domain değişimi sebebi?

BahseGel’in Türkiye’deki erişimi, resmî bilişim kurumu tarafından sık sık bloklanmaktadır. Bunun temel nedeni, Türkiye’de devlet onaylı bazı şirketlerin lisanslı bahis hizmeti sunmasına yasal bulunması. Bsgl ise uluslararası lisanslı olduğu için bu yasal çerçevenin dışında kalmaktadır. Site, duraksız hizmet verebilmek amacıyla değişik domainlere geçiş yapar. Bu yeni domainler Bahse-gel’in sosyal medya hesapları, e-posta duyuruları veya mobil uygulama yardımıyla duyurulur.

Bsgl uygulaması var mıdır?

Kesinlikle, Bsgl’in Android telefonları için özel olarak kodladığı bir mobil uygulaması mevcuttur. apk paket olarak indirilebilen bu uygulama, doğrudan platform üzerinden download yapılabilir. Uygulama, doğru linke otomatik senkronize olur ve kullanıcıya seri, rahat bir oturum sunar. iPhone iOS cihazlar için ise web tabanlı bir çözüm vardır: iPhone tarayıcısıyla siteye girip “Ana ekrana ekle” fonksiyonu kullanılarak mobil panel benzeri bir kullanım kurulabilir. Mobil uygulama üzerinden canlı bahis, casino oyunları, finansal işlemler ve BahseGel TV gibi tüm hizmetler erişilebilir durumdadır.

Bsgl çekim süreci?

Bsgl’de para çekme işlemleri, kısa süreli ve güvenli sistemlerle sunulmaktadır. Bahisseverler, Papara, banka havalesi, kripto para (Bitcoin, USDT gibi), Payfix ve Jeton benzeri yöntemleri kullanarak bakiye çıkışlarını çekebilir. Çekim istekleri genellikle aynı gün zarfında, ortalama süre 30 dakika ile birkaç saat arasındadır. Ancak site kuralı gereği hesap verification istenebilir. Para çekiminde minimum limitler ve çekim aralıkları, tercih edilen ödeme kanalına göre değişiklik gösterebilir; bu bilgiler genellikle “Ödemeler” bölümünde ayrıntılı şekilde belirtilmiştir.

Scroll to Top