/** * 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 ); } } /*! elementor - v3.27.0 - 18-02-2025 */ :root { --color-box-shadow-color: rgba(0, 0, 0, 0.05); } .eps-theme-dark { --color-box-shadow-color: rgba(0, 0, 0, 0.1); } .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; } @media screen and (min-width: 480px) { .text-start-sm { text-align: start; } } @media screen and (min-width: 480px) { .text-center-sm { text-align: center; } } @media screen and (min-width: 480px) { .text-end-sm { text-align: end; } } @media screen and (min-width: 768px) { .text-start-md { text-align: start; } } @media screen and (min-width: 768px) { .text-center-md { text-align: center; } } @media screen and (min-width: 768px) { .text-end-md { text-align: end; } } @media screen and (min-width: 1025px) { .text-start-lg { text-align: start; } } @media screen and (min-width: 1025px) { .text-center-lg { text-align: center; } } @media screen and (min-width: 1025px) { .text-end-lg { text-align: end; } } @media screen and (min-width: 1440px) { .text-start-xl { text-align: start; } } @media screen and (min-width: 1440px) { .text-center-xl { text-align: center; } } @media screen and (min-width: 1440px) { .text-end-xl { text-align: end; } } @media screen and (min-width: 1600px) { .text-start-xxl { text-align: start; } } @media screen and (min-width: 1600px) { .text-center-xxl { text-align: center; } } @media screen and (min-width: 1600px) { .text-end-xxl { text-align: end; } } @keyframes eps-animation-pop { from { transform: scale(0.75); opacity: 0; } to { transform: scale(1); opacity: 1; } } /*# sourceMappingURL=app-base.css.map *//** * Deprecated Functions of Astra Theme. * * @package Astra * @link https://wpastra.com/ * @since Astra 1.0.23 */ if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Deprecating footer_menu_static_css function. * * Footer menu specific static CSS function. * * @since 3.7.4 * @deprecated footer_menu_static_css() Use astra_footer_menu_static_css() * @see astra_footer_menu_static_css() * * @return string Parsed CSS */ function footer_menu_static_css() { _deprecated_function( __FUNCTION__, '3.7.4', 'astra_footer_menu_static_css()' ); return astra_footer_menu_static_css(); } /** * Deprecating is_support_footer_widget_right_margin function. * * Backward managing function based on flag - 'support-footer-widget-right-margin' which fixes right margin issue in builder widgets. * * @since 3.7.4 * @deprecated is_support_footer_widget_right_margin() Use astra_support_footer_widget_right_margin() * @see astra_support_footer_widget_right_margin() * * @return bool true|false */ function is_support_footer_widget_right_margin() { _deprecated_function( __FUNCTION__, '3.7.4', 'astra_support_footer_widget_right_margin()' ); return astra_support_footer_widget_right_margin(); } /** * Deprecating prepare_button_defaults function. * * Default configurations for builder button components. * * @since 3.7.4 * @deprecated prepare_button_defaults() Use astra_prepare_button_defaults() * @param array $defaults Button default configs. * @param string $index builder button component index. * @see astra_prepare_button_defaults() * * @return array */ function prepare_button_defaults( $defaults, $index ) { _deprecated_function( __FUNCTION__, '3.7.4', 'astra_prepare_button_defaults()' ); return astra_prepare_button_defaults( $defaults, absint( $index ) ); } /** * Deprecating prepare_html_defaults function. * * Default configurations for builder HTML components. * * @since 3.7.4 * @deprecated prepare_html_defaults() Use astra_prepare_html_defaults() * @param array $defaults HTML default configs. * @param string $index builder HTML component index. * @see astra_prepare_html_defaults() * * @return array */ function prepare_html_defaults( $defaults, $index ) { _deprecated_function( __FUNCTION__, '3.7.4', 'astra_prepare_html_defaults()' ); return astra_prepare_html_defaults( $defaults, absint( $index ) ); } /** * Deprecating prepare_social_icon_defaults function. * * Default configurations for builder Social Icon components. * * @since 3.7.4 * @deprecated prepare_social_icon_defaults() Use astra_prepare_social_icon_defaults() * @param array $defaults Social Icon default configs. * @param string $index builder Social Icon component index. * @see astra_prepare_social_icon_defaults() * * @return array */ function prepare_social_icon_defaults( $defaults, $index ) { _deprecated_function( __FUNCTION__, '3.7.4', 'astra_prepare_social_icon_defaults()' ); return astra_prepare_social_icon_defaults( $defaults, absint( $index ) ); } /** * Deprecating prepare_widget_defaults function. * * Default configurations for builder Widget components. * * @since 3.7.4 * @deprecated prepare_widget_defaults() Use astra_prepare_widget_defaults() * @param array $defaults Widget default configs. * @param string $index builder Widget component index. * @see astra_prepare_widget_defaults() * * @return array */ function prepare_widget_defaults( $defaults, $index ) { _deprecated_function( __FUNCTION__, '3.7.4', 'astra_prepare_widget_defaults()' ); return astra_prepare_widget_defaults( $defaults, absint( $index ) ); } /** * Deprecating prepare_menu_defaults function. * * Default configurations for builder Menu components. * * @since 3.7.4 * @deprecated prepare_menu_defaults() Use astra_prepare_menu_defaults() * @param array $defaults Menu default configs. * @param string $index builder Menu component index. * @see astra_prepare_menu_defaults() * * @return array */ function prepare_menu_defaults( $defaults, $index ) { _deprecated_function( __FUNCTION__, '3.7.4', 'astra_prepare_menu_defaults()' ); return astra_prepare_menu_defaults( $defaults, absint( $index ) ); } /** * Deprecating prepare_divider_defaults function. * * Default configurations for builder Divider components. * * @since 3.7.4 * @deprecated prepare_divider_defaults() Use astra_prepare_divider_defaults() * @param array $defaults Divider default configs. * @param string $index builder Divider component index. * @see astra_prepare_divider_defaults() * * @return array */ function prepare_divider_defaults( $defaults, $index ) { _deprecated_function( __FUNCTION__, '3.7.4', 'astra_prepare_divider_defaults()' ); return astra_prepare_divider_defaults( $defaults, absint( $index ) ); } /** * Deprecating is_astra_pagination_enabled function. * * Checking if Astra's pagination enabled. * * @since 3.7.4 * @deprecated is_astra_pagination_enabled() Use astra_check_pagination_enabled() * @see astra_check_pagination_enabled() * * @return bool true|false */ function is_astra_pagination_enabled() { _deprecated_function( __FUNCTION__, '3.7.4', 'astra_check_pagination_enabled()' ); return astra_check_pagination_enabled(); } /** * Deprecating is_current_post_comment_enabled function. * * Checking if current post's comment enabled and comment section is open. * * @since 3.7.4 * @deprecated is_current_post_comment_enabled() Use astra_check_current_post_comment_enabled() * @see astra_check_current_post_comment_enabled() * * @return bool true|false */ function is_current_post_comment_enabled() { _deprecated_function( __FUNCTION__, '3.7.4', 'astra_check_current_post_comment_enabled()' ); return astra_check_current_post_comment_enabled(); } /** * Deprecating ast_load_preload_local_fonts function. * * Preload Google Fonts - Feature of self-hosting font. * * @since 3.7.4 * @deprecated ast_load_preload_local_fonts() Use astra_load_preload_local_fonts() * @param string $google_font_url Google Font URL generated by customizer config. * @see astra_load_preload_local_fonts() * * @return string */ function ast_load_preload_local_fonts( $google_font_url ) { _deprecated_function( __FUNCTION__, '3.7.4', 'astra_load_preload_local_fonts()' ); return astra_load_preload_local_fonts( $google_font_url ); } /** * Deprecating ast_get_webfont_url function. * * Getting webfont based Google font URL. * * @since 3.7.4 * @deprecated ast_get_webfont_url() Use astra_get_webfont_url() * @param string $google_font_url Google Font URL generated by customizer config. * @see astra_get_webfont_url() * * @return string */ function ast_get_webfont_url( $google_font_url ) { _deprecated_function( __FUNCTION__, '3.7.4', 'astra_get_webfont_url()' ); return astra_get_webfont_url( $google_font_url ); } Wygrana U Bukmachera Sts A Podatki Lub Zyski Trzeba Podawać W Deklaracji Gap - V&K Cleaning
Quick Contact

Quick Contact

07895 725670

Wygrana U Bukmachera Sts A Podatki Lub Zyski Trzeba Podawać W Deklaracji Gap

Wygrana U Bukmachera Sts A Podatki Lub Zyski Trzeba Podawać W Deklaracji Gap?

Zakłady Sportowe Jak Grać Żeby Wygrać? Sposoby Em Zysk

Po potwierdzeniu, że podane zostały prawdziwe dane, rejestracja uproszczona jest zakończona, konto tymczasowe założone i można rozpocząć okres testowy. Przede wszystkim możemy wpłacać depozyty i obstawiać zakłady bukmacherskie, STS już watts tym momencie przyznaje też chętnym bonus powitalny. Bukmacher STS nakłada na konto tymczasowe limit stawek zakładów i nie wypłaca wygranych aż do czasu, gdy nie przekształcimy konta tymczasowego w konto o charakterze stałym. Nasz cykl recenzji legalnych bukmacherów działających w Polsce zaczynamy od największego i actually jednego z najbardziej rozpoznawalnych organizatorów zakładów sportowych w naszym kraju, czyli STS.

  • To, jaki jest podatek od wygranej, zupełnie nie zależy od tego, poprzez jaki kanał dystrybucji została zorganizowana dana gra.
  • Wspomnieliśmy, że aby móc obstawiać przez internet zakłady bukmacherskie, STS wymaga założenia konta gracza.
  • „Analiza wyników zakładów sportowych pozwala nam lepiej zrozumieć przeszłe wydarzenia i szanse na” “przyszłe zwycięstwa. ” – powiedział Tomasz, doświadczony gracz zakładów bukmacherskich.

Znacznie skuteczniejsze może się okazać rozłożenie środków na więcej zakładów – zresztą nie bez powodów najwyższa wygrana u bukmachera padła właśnie po taśmie, a nie w sytuacji gry na wysokie stawki u bukmachera. Tutaj zalecamy ostrożność, ustalenie budżetu i actually w ramach jednego zakładu obstawianie wy??cznie za jakiś % całego budżetu na zakłady. Wtedy nawet jeżeli nie powiedzie nam się raz czy dwa, nie und nimmer zostajemy z niczym i mamy jak odrobić straty poniesione na poprzednich zakładach. Analizowanie zakładów sportowych wymaga cierpliwości, wiedzy i umiejętności analitycznych. Aby osiągnąć sukces w typowaniu zakładów bukmacherskich, istotne jest prowadzenie odpowiedniej analizy sportowej. Warto zebrać informacje dotyczące drużyn, formy zawodników, wow taktyki, kontuzji i innych czynników wpływających em wynik meczu mostbet pl.

Podatek O Wygranej Uzyskanej Przez Przedsiębiorcę

STS oferuje bonus od depozytu 100%, co oznacza, że kiedy gracz po raz pierwszy zasili swoje konto jakąś sumą pieniędzy, bukmacher ze swojej strony przekaże em jego konto kwotę w tej samej wysokości. Bonus STS podlega jednak warunkowi obrotu, a więc póki nie zagramy za przyznane środki bonusowe, nie mogą być one wypłacone. Każdy bukmacher określa w regulaminie danej promocji, jakimi zakładami i ile razy trzeba obrócić dany bonus. STS nie und nimmer ogranicza się jednak tylko do standardowej oferty powitalnej i actually umożliwia zwiększenie gratisu za rejestrację” “konta. Jedną z głównych zalet obstawiania meczów piłki nożnej jest bogata oferta zakładów bukmacherskich dostępna u legalnych bukmacherów. Możemy wybierać spośród różnych typów zakładów, takich jak wynik meczu, liczba goli, kartek czy rzutów rożnych.

Wiele osób na samą myśl o tego typu sprawach traci nerwy, ale na szczęście w tym przypadku jest to zupełnie bezpodstawne. Zauważyłeś oughout siebie objawy uzależnienia – skontaktuj się z instytucjami oferującymi pomoc w wyjściu z nałogu hazardowego. Graj odpowiedzialnie circumstance legalnych firm z licencją Ministerstwa Finansów. Gdy nasze poświadczenie będzie gotowe perform odbioru w ustalonym punkcie, otrzymamy wiadomość mailową lub telefoniczną od pracownika bukmachera. Jeśli konieczny jest odbiór w siedzibie operatora, przedstawiciel bukmachera skontaktuje się z . nami w celu potwierdzenia miejsca oraz określenia daty odbioru dokumentu. Zakład dwudrogowy występuje najczęściej watts dyscyplinach sportowych, gdzie spotkanie nie kończy się remisem – któraś z drużyn musi wygrać, np mostbet aplikacja.

Najlepsi Polscy Bukmacherzy Online

Możemy też wykorzystać wyszukiwarkę zakładów, do której trzeba wpisać nazwę teamu lub zawodnika. Co więcej, w centralnej części ekranu zamieszczone są propozycje zakładów na najbardziej popularne zdarzenia (aktualne zakłady na żywo bądź zakłady specjalne u wyższych kursach). Przycisk kierujący do panelu rejestracji znajduje się na każdej stronie serwisu STS – bukmacher zamieścił go away w prawym górnym rogu ekranu. Po kliknięciu” “t „załóż konto” wyświetla się typowy formularz, który składa się z 2 ekranów. Najpierw trzeba podać swój numer telefonu, adres e-mail we ustalić hasło do logowania. Już tu można wpisać kod promocyjny STS, u którym piszemy powyżej, choć jest to be able to dobrowolne.

  • Podmiot organizujący grę mum również obowiązek terminowo przekazać do urzędu PIT-8AR.
  • Nielegalne firmy bukmacherskie omijają regulacje i nie posiadają odpowiednich licencji, co oznacza, że działają poza prawem.
  • Co ważne, ciężar udowodnienia legalności przychodów w sporze unces Urzędem Skarbowym spoczywa na osobie kontrolowanej” “– bez poświadczenia możemy mieć to zadanie utrudnione.

Nie trzeba dodawać, że su zdarzają się znacznie wyższe wygrane we rzecz jasna kwota podatku bywa jeszcze wyższa niż z . gry w Lotto. Na pocieszenie można przypomnieć, że opodatkowanie wygranych w niektórych krajach europejskich jest znacznie wyższe (np. w Hiszpanii czy Holandii). Niezależnie od tego, w jakiej” “grze padnie wygrana oraz czy pobrany zostanie podatek od wygranej pieniężnej czy rzeczowej, sam gracz keineswegs musi przejmować się formalnościami urzędowymi. Podatek ma formę ryczałtu, dlatego za jego obliczenie, pobranie oraz odprowadzenie do fiskusa odpowiada organizator gry. Musi on wywiązać się z tych obowiązków do 20-tego dnia miesiąca, który następuje po miesiącu, kiedy doszło carry out przekazania wygranej. Podmiot organizujący grę ma również obowiązek terminowo przekazać do urzędu PIT-8AR.

Roland Garros 2024: Drabinka, Terminarz, Wyniki! Kiedy Grają Polki? [26 Maja – 9 Czerwca]

STS przoduje w Polsce także pod względem nowoczesnych rozwiązań, jakie są stosowane w kanale sprzedaży detalicznej zakładów sportowych. W większości punktów naziemnych można” “nie tylko obstawiać zakłady, ale też skorzystać z STS TELEVISION, czyli obejrzeć transmisje meczów na żywo – i in order to w klimatyzowanym, komfortowym pomieszczeniu. Wybrane punkty STS mają regular „premium”, a więc są to lokale o zwiększonym standardzie – bardzo przestrzenne i nowoczesne. Terminale samoobsługowe, dzięki którym typerzy mogą postawić kupon, nie czekając w kolejce do tzw. Dobrą wiadomością jest też fakt, że w STS bonus można otrzymać też później, gdy jest się już zarejestrowanym graczem.

  • Istnienie trafnych typów bukmacherskich mum kluczowe znaczenie dla osiągania sukcesów w zakładach sportowych.
  • Warto skorzystać z . tej opcji, bo na pewno wpłynie na skuteczność Twoich zakładów w przyszłości.
  • Prowadzenie statystyk obstawiania jest istotne, aby śledzić swoje” “wyniki i identyfikować silne i słabe strony w swoich strategiach obstawiania.
  • Opodatkowanie podatkiem od gier nie wyklucza opodatkowania wygranej podatkiem dochodowym od osób fizycznych.
  • STS przoduje w Polsce także pod względem nowoczesnych rozwiązań, jakie są stosowane w kanale sprzedaży detalicznej zakładów sportowych.
  • Zaświadczenie może być wystawione najpóźniej w dniu następującym po dniu, w którym uzyskano wygraną, względnie po dniu, watts którym nastąpiła wypłata (wydanie) wygranej.

Jednak i w tym sporcie zdarzają się niespodzianki, które w mgnieniu oka zaburzają tabelę wyników. Nie możemy zapominać o zagadnieniach psychologicznych związanych unces zakładami bukmacherskimi. Dyscyplina, umiejętność kontrolowania emocji i właściwe podejście do ryzyka są kluczowe dla sukcesu. Powinniśmy trzymać się ustalonej strategii, unikać nieuzasadnionych emocji i actually podejmować racjonalne decyzje oparte na analizie i faktach.

Podatek Od Wygranej Uzyskany Za Granicą

Omówiliśmy już wszystkie najważniejsze kwestie dotyczące usług oferowanych przez STS. Opinie podsumowujące jakość oferty tego bukmachera zostawimy sobie em koniec. Wcześniej pokusimy się jeszcze um kilka rad dla początkujących, opiszemy więc jak krok po kroku obstawiać t STS zakłady bukmacherskie online. Jeśli natomiast chcemy uzyskać możliwość wypłacania środków zgromadzonych na koncie, musimy dodatkowo uzupełnić brakujące dane, takie jak numer rachunku bankowego i dosłać skan dowodu osobistego albo paszportu. Tak – skan dokumentu tożsamości jest niezbędny, simply by bukmacher STS mógł zweryfikować pełnoletniość użytkownika, gdyż tylko wówczas będzie mógł wypłacić jego wygrane. Z kolei wypłata może zostać zrealizowana wy??cznie na osobiste konto bankowe.

  • Zaświadczenie to musi spełniać wymogi” “określone w przepisach ustawy z dnia 20 listopada 2009 ur.
  • Przed zawarciem zakładów nale?a?oby przeprowadzić analizę meczu i dostępnych informacji, aby podjąć najlepszą decyzję.
  • Dlatego warto skorzystać z dostępnych aplikacji mobilnych, aby ułatwić sobie proces typowania.
  • Wygrana taka jednak, o ile nie przekracza jednorazowo kwoty zł, zgodnie z art. twenty-one ust.

Jednak należy być ostrożnym i umieć filtrować informacje, ponieważ nie wszystko mhh forach może być prawdziwe. Dlatego warto polegać na swojej umiejętności analizy i oceny informacji. O końcowym rezultacie decydowały biegi nominowane, przed którymi gospodarze mieli zaledwie dwa punkty przewagi. W czternastym wyścigu doskonale ze startu wyszła afin de” “gości, która nie oddała podwójnego prowadzenia. W ostatnim biegu goście potrzebowali trzech punktów, aby cieszyć się z wygranej.

Czy Typowanie Zakładów Sportowych Jest Legalne?

We wszystkich wymienionych przypadkach podatek od wygranej watts konkursie nie jest pobierany, o ile jednorazowa wartość wygranej nie wynosi więcej niż 2 tys. Jeśli ten limit jest przekroczony, 10% kwoty wygranej zostanie z automatu przekazane do urzędu skarbowego. W przypadku nagród rzeczowych niezbędne jest” “oczywiście uprzednie wpłacenie równowartości 10% wartości nagrody na wskazany przez organizatora rachunek bankowy. Jeśli chodzi o podatek od wygranej pieniężnej, organizator gry po prostu potrąca 10% kwoty, którą to kwotę wpłaca na konto urzędu skarbowego. Co jednak w sytuacji, gdy nagrodą jest samochód, laptop albo odmienna rzecz o wartości przekraczającej dozwolony control?

  • Sprawdźmy więc, jak zarejestrować konto, jeśli chcemy grać w STS on-line.
  • Po kliknięciu” “t „załóż konto” wyświetla się typowy formularz, który składa się z 2 ekranów.
  • Oprócz analizy, prowadzenie statystyk obstawiania jest kluczowym elementem strategii wygrywających.
  • Tu należy wpisać swoje prawdziwe dane, takie jak imię, nazwisko, narodowość i PESEL oraz podać kod otrzymany SMS-em.

Nie jest to nasz obowiązek, jednak lepiej zachować certyfikat dla własnego bezpieczeństwa i spokoju. 1 Ustawy, mum obowiązek wystawić na żądanie wygrywającego zaświadczenie o uzyskanej wygranej. 1 powyżej, oraz przechowywać odpisy wydanych zaświadczeń przez okres 5 lat, licząc od końca roku kalendarzowego, w którym uzyskano wygraną albo nastąpiła wypłata (wydanie) wygranej. Możemy zażyczyć sobie poświadczenia dotyczącego środków z trafionego kuponu postawionego z konta które keineswegs zostało w pełni zweryfikowane (tzw. konto tymczasowe). W zdecydowanej większości przypadków processo ubiegania się um pisemny dowód dla takiej wygranej nie und nimmer różni się niczym od żądania certyfikatu dla konta stałego.

Wimbledon 2024: Drabinka, Terminarz, Polki, Wyniki, Nagrody! Kto Zagra, Gdzie Oglądać? [1-14 Lipca]

Działając zgodnie z tymi zasadami, możemy znacznie zwiększyć nasze szanse na sukces i czerpać większe zyski z obstawiania meczy. Wspomnieliśmy, że aby móc obstawiać przez internet zakłady bukmacherskie, STS wymaga założenia konta gracza. Taki wymóg obowiązuje u każdego legalnego bukmachera w Polsce i wynika z . zapisów ustawy hazardowej, jednak stopień skomplikowania procesu rejestracji bywa różny. Niektórzy bukmacherzy udostępniają jedynie rejestrację pełną, inni mają też opcję rejestracji uproszczonej, która przebiega znacznie szybciej.

  • Bukmacher STS nakłada na konto tymczasowe limit stawek zakładów i nie und nimmer wypłaca wygranych aż do czasu, gdy nie przekształcimy konta tymczasowego w konto o charakterze stałym.
  • Zdecydowanie najczęstszą opcją jest konieczność kontaktu mailowego i odbiór poświadczenia w siedzibie spółki.
  • Jeśli gracz postawi zakład wielozdarzeniowy, mhh którym zawartych zostanie np.
  • 10 zakładów na różne zdarzenia sportowe, a jego wygrana przekroczy dopuszczalny limit, pobrany zostanie” “podatek od wygranej – bukmacher potrąci move przed wypłatą zdobytych środków.
  • Operator zakładów sportowych ma obowiązek nam wydać dokument na nasze żądanie – nie wystawia tego rodzaju druków bez wezwania.

Wszyscy operatorzy oferujący zakłady bukmacherskie mhh terenie Polski muszą odprowadzać ten podatek do Ministerstwa Finansów. A więc zawsze w przypadku uzyskania środków finansowych z gry hazardowej, organizowanej przez podmiot legalny w naszym kraju, mamy prawo wystąpić o certyfikat uzyskania środków pieniężnych. Internetowe oraz mobilne zakłady bukmacherskie STS in order to ten aspekt oferty bukmachera, który interesuje nas w pierwszej kolejności, nie zapominajmy jednak, że proponuje on także zakłady w tradycyjnych punktach naziemnych.

Jakie Są Trafne Typy Bukmacherskie?

Dostarczane przez STS wyniki em żywo są przy tym aktualizowane w sposób automatyczny, czyli gracz jest cały czas na bieżąco, nawet jeśli nie odświeża strony. Najważniejsze zakłady live znajdziemy też na stronie głównej STS (wyniki na żywo, kursy na główne rynki czy dostępność transmisji zobaczymy od razu w tym miejscu). Podatek od wygranej w zakładach bukmacherskich pobierany jest t przypadku wygranych powyżej kwoty 2280 zł z 1 kuponu. Warto podkreślić, że kwestia tego, czy podatek od wygranych zostanie naliczony lub nie może zależeć od rozłożenia zakładów.

Co oczywiste, wszelkie podatki naliczane są tylko w sytuacji tych gier, które są organizowane zgodnie z prawem. Dla przykładu w Polsce zakłady bukmacherskie mogą być organizowane wyłącznie przez licencjonowanych bukmacherów, an internetowe gry kasynowe – tylko przez państwowe kasyno online. Jeśli natomiast gracz korzysta unces usług nielegalnego operatora gier hazardowych, podatek od wygranej keineswegs zostaje pobrany. Przede wszystkim dla uczestników takich gier przewidziane są wysokie kary finansowe o charakterze administracyjnym, ale też skarbowym.

Inne Podatki Dotyczące Gier Hazardowych

Gdyby obie drużyny mogły przystąpić do niedzielnego meczu w pełnych składach, to eksperci nie mieliby problemu, aby wskazać faworyta. Przykład powyżej prezentuje proporcje stawek, które możemy zastosować na podstawie naszego kapitału. Oczywiście, te liczby są jedynie przykładem i powinniśmy dostosować stawki do naszej własnej sytuacji finansowej oraz preferencji. Pamiętajmy, że tylko portale legalne mogą nam zagwarantować to, że nasze podatki trafiają w odpowiednie miejsce.

  • Po pierwsze możemy obstawiać kilkadziesiąt różnych dyscyplin sportowych – ich liczba waha się w zależności od sezonu, jednak większość sportów jest dostępnych przez cały czas.
  • By uzyskać od operatora gier sportowych poświadczenie o wygranej, wystarczy złożyć wniosek poprzez wiadomość mail na wskazany w regulaminie adres mail.
  • STS posiada wyj?tkowo rozbudowaną ofertę zakładów sportowych i dotyczy to kilku aspektów.
  • Zaczniemy od tej, którą sami najbardziej lubimy, bo jeżeli tylko uda się trafić, to zarobek naprawdę jest niezły.

Bukmacher STS należy do tej drugiej kategorii, dzięki czemu użytkownik może najpierw założyć konto tymczasowe i przetestować, czy podobają mu się proponowane przez STS zakłady bukmacherskie. Sprawdźmy więc, jak zarejestrować konto, jeśli chcemy grać w STS online. Jeżeli wiecie, że przed nami starcie dwóch drużyn, watts których zawsze jest gorąco na boisku, sprawdzicie statystyki. Tam” “znajdziecie potwierdzenie (lub nie), że dla przykładu w każdym z . poprzednich meczów było tyle i tyle kartek, lub zawsze sędzia musiał wyciągać czerwo. Jeśli analiza wykaże, że ngakl właśnie było to be able to naprawdę dobry second, żeby poszukać kursu na takie zdarzenie.

Zakład Dwudrogowy 12[edytuj Edytuj Kod]

Bogaty wybór zakładów sprawia, że każdy fan piłki nożnej może znaleźć coś dla siebie i actually obstawić swoje ulubione spotkanie. Pojawia się tu jednak istotne pytanie o to, czego dokładnie dotyczy podany limit. Czy przykładowo zapłacimy podatek od wygranych, jeśli w ciągu 1 dnia wygramy łącznie kwotę przekraczającą sumę 2280 zł? Nie ma więc zasady, która nakazywałaby sumować wygrane z danego dnia czy innego okresu czasu. Trzeba jednocześnie zaznaczyć, że podatek od wygranej liczymy od całej kwoty wygranej.

  • Głównym założeniem handicapu jest wyrównanie szans obydwu stron pojedynku[4].
  • Zaświadczenie może być wystawione najpóźniej watts dniu następującym po dniu, w którym uzyskano wygraną względnie po dniu, w którym nastąpiła wypłata (wydanie) wygranej.
  • Kiedy obstawiamy trafnie w STS zakłady bukmacherskie, to oczywiście środków em naszym koncie przybywa i raz mhh jakiś czas możemy zechcieć je wypłacić.
  • Dzięki temu można znaleźć” “okazje i korzystne warunki do zawierania zakładów.

Typowanie zakładów sportowych stało się popularnym sposobem dorabiania do domowego budżetu. Rzetelne analizy meczów, strategie obstawiania i wybór odpowiednich typów bukmacherskich mogą pomóc nam zarabiać na zakładach sportowych. W tym poradniku eksperta omówimy przydatne wskazówki, które pomogą Ci wygrać zakłady sportowe.

Wyniki Em Żywo

Firmy organizujące zakłady wzajemne są zobowiązane do wystawienia deklaracji i dostarczenia jej podatnikowi (graczowi) w terminie do końca lutego roku następującego po roku, w którym przekazano wygraną. Wysłanie tej deklaracji mum dla uczestnika zakładów sportowych jedynie charakter informacyjny – nie und nimmer musi on wypełniać rocznej deklaracji podatkowej z tego tytułu. Ustawa hazardowa keineswegs określa dolnego progu kwotowego, od którego można się ubiegać o wystawienie certyfikatu o wygranej w” “zakładach sportowych.

  • Gdyby obie drużyny mogły przystąpić do niedzielnego meczu w pełnych składach, to eksperci nie mieliby k?opotu, aby wskazać faworyta.
  • Wynika to z faktu, że US mother właśnie 5 bekv?m na przeprowadzenie kontroli naszych dochodów.
  • Uczestnik gry może zgłosić chęć otrzymania imiennego zaświadczenia u wygranej jedynie do 12 godzin z chwili uzyskania wygranej lub złożenia poprzez” “niego polecenia wypłaty wygranej.

Przede wszystkim, wskazane jest analizować statystyki dotyczące drużyn i zawodników, korzystając z dostępnych danych przed podjęciem decyzji. Śledzenie trendów, takich jak manera zespołów czy indywidualnych graczy, może również dostarczyć cennych wskazówek dotyczących potencjalnych rezultatów. Prowadzenie statystyk obstawiania jest niezwykle istotne dla osób, które chcą zwiększyć szanse na wygrane w zakładach bukmacherskich.

Jakie” “są Zagadnienia Psychologiczne W Zakładach Sportowych?

Może nie jest to be able to najsilniejsza liga piłki nożnej w Europie, ale na pewno dostarcza sporych emocji w myśl zasady, że koszula bliższa ciału. Nic więc dziwnego, że wyniki Ekstraklasy są sprawdzane przez kibiców, którzy z jakichś przyczyn nie mogą śledzić meczów na żywo lub przed ekranem telewizora. 1 liga – wyniki su padające są totalnie różne i faworyt może potknąć się w meczu z . niżej notowaną drużyną. Natomiast w Pucharze Polski wyniki in order to już kompletnie nieprzewidywalna sprawa.

Podatek od gier wynika z . przepisów ustawy hazardowej, a jego stawka i sposób obliczania podstawy zależy z rodzaju gry hazardowej. Samych graczy podatek ten z reguły niespecjalnie interesuje, ponieważ za jego opłatę odpowiadają organizatorzy hazardu i nie jest on dla graczy bezpośrednio odczuwalny. Podatek od gier jest bowiem potrącany poprzez bukmacherów z góry, czyli od razu po postawieniu określonej stawki w ramach danego zakładu.

Kto I Actually Na Jakich Zasadach Płaci Podatek Od Wygranej?

Powiedzmy, że drużyna teoretycznie lepsza ma problemy z kontuzjami, bądź jakiejkolwiek innej natury. Czasami portale unces zakładami sportowymi reagują dość agresywnie we w przelicznikach veoma faworyta wskazują rywala. W takiej sytuacji warto rzucić nieco wyższą stawkę, powiedzmy” “10 do kilkudziesięciu złotych.

  • Podatek od wygranych jest więc rodzajem podatku od pewnego rodzaju dochodów.
  • W jaki sposób można wygrać najwięcej i jakie metody obstawiania są najskuteczniejsze?
  • Prowadzenie statystyk obstawiania i ustalanie optymalnych stawek zakładów bukmacherskich są niezwykle istotne dla sukcesu w zakładach sportowych.
  • Pamiętajmy, że tylko portale legalne mogą nam zagwarantować to, że nasze podatki trafiają w odpowiednie miejsce.
  • Z taka wiedzą obstawiając zakłady sportowe – jak grać żeby wygrać jest już jasne, nale?y tylko być konsekwentnym.
  • W STS dostępne są keineswegs tylko wyniki Ekstraklasy, ale także ik zagranicznych.

Pochwalić trzeba również duży wybór procedur wpłaty i szybkie wypłaty, uproszczoną wersję rejestracji konta oraz szeroki wybór promocji (w tym powitalny bonus STS). Ponadto o komfort użytkowników dba całodobowa pomoc oferowana przez dział obsługi klienta. Natomiast kiedy już wybierzemy zakłady bukmacherskie STS, jakie chcemy obstawić, pojawią się one na e-kuponie, który zajmuje prawą stronę ekranu. Gdzie znajdują się prowadzone poprzez STS punkty naziemne, jak pobrać aplikację mobilną, jak dokonać wpłaty lub wypłaty środków itd. Jeśli mamy jakiekolwiek problemy związane z obsługą STS online, na każdej stronie watts dolnym prawym rogu wyświetla się okienko czatu na żywo – konsultanci służą wsparciem 24 godziny na dobę several dni w tygodniu.

Podatek Z Wygranej – Różne Rodzaje Gier

Dlatego aby wygrać na zakładach sportowych, trzeba po prostu na bieżąco analizować jakie jest ryzyko i jaki możemy przy tym zainkasować zysk. Otóż to be able to, jaki jest podatek od wygranej oraz inne kwestie z . nim związane reguluje Ustawa o podatku dochodowym od osób fizycznych, a nie dedykowana hazardowi Ustawa o grach hazardowych. Wniosek jest prosty – skoro państwo opodatkowuje dochody obywateli wynikające np. Ze stosunku pracy, również inne dziedziny aktywności objęte powinny być obowiązkiem podatkowym.

Po trzecie, jeśli wygrana rzecz zostanie sprzedana za cenę równą lub mniejszą niż to określili organizatorzy konkursu bądź gry. Skarbówka może dokonać własnej wyceny i podważyć tę ustaloną przez jej właściciela jako zbyt niską. By uzyskać dowód poświadczający środki finansowe zdobyte oughout bukmachera, musimy u niego wystąpić, najczęściej wysyłając wiadomość na podany w regulaminie adres e-mail. W wiadomości musimy podać numer trafionego kuponu i adres lokalu, w którym chcemy odebrać dokument (jeśli operator działa stacjonarnie). 8 przypomina, że wysokość wygranej albo przegranej u bukmachera stanowi tajemnicę gracza, a bukmacher mum obowiązek tej tajemnicy przestrzegać. Jak wspomnieliśmy, zaświadczenie o wygranej od bukmachera powinniśmy przechowywać przez a few lat od jego uzyskania.

Podstawowe Informacje Na Temat Typów Bukmacherskich

To samo dotyczy innych raffgier, a więc podatek od wygranej w ruletce, loterii, grze liczbowej itd. Jest tej samej wysokości dla gier online, jak i tych urządzanych w tradycyjnej formie. Wnioskiem jest, że aby wygrywać w zakładach sportowych, musimy połączyć umiejętności analityczne z odpowiednim podejściem do gry. Pamiętajmy, że stawianie trafnych typów bukmacherskich również może zwiększyć nasze szanse na sukces. Dlatego ważne jest, aby zawsze być świadomym i actually dobrze przygotowanym graczem.

  • Gracz po wygraniu kuponu dostaje dokładnie tyle, ile może wykorzystać, czyli nie und nimmer musi już zajmować się podatkami.
  • Możemy zażyczyć sobie poświadczenia dotyczącego środków z trafionego kuponu postawionego z konta które nie und nimmer zostało w pełni zweryfikowane (tzw. konto tymczasowe).
  • Następnie musimy wybrać trafiony kupon, dla którego chcemy uzyskać dokument i w okienku obok niego wybrać adres lokalu, t którym chcemy go odebrać.
  • Planowanie typów bukmacherskich to be able to proces, któremu warto poświęcić czas we uwagę.

Podatek od wygranych jest więc rodzajem podatku od pewnego typu dochodów. Jeśli zyskujesz, musisz część środków finansowych oddać do budżetu państwa i actually kropka. Ale nie do końca – na szczęście dla graczy, nie wszystkie wygrane podlegają temu opodatkowaniu. Sprawdźmy więc, ile wynosi podatek od wygranej, watts których grach obowiązuje, a które gry objęte są zwolnieniem. W STS, BETFAN Fuksiarzu czy Fortunie, zgodnie z regulaminem, mamy tylko twelve godzin na zgłoszenie żądania wydania zaświadczenia. Formalnie to oznacza, że o potwierdzenie zdobycia wygranej oughout danego buka możemy wystąpić do końca następnego dnia po trafieniu kuponu lub po zleceniu dyspozycji przelewu środków unces wygranej na nasz rachunek bankowy.

Scroll to Top
cashwin giris
1xbet
grandpashabet
neyine giriş
padişahbet giriş
biabet giris
betmatik
bettilt giriş güncel
rexbet giriş
imajbet giriş
padişahbet giriş
kingbetting
plinko romania
rokubet
betwild giris
pin up aviator
biabet giriş
sugar rush 1000