| @@ -3,16 +3,16 @@ | ||
| 3 | 3 | |
| 4 | 4 | use Elementor\Api; |
| 5 | 5 | use Elementor\Core\Breakpoints\Manager as Breakpoints_Manager; |
| 6 | 6 | use Elementor\Core\Experiments\Manager as Experiments_Manager; |
| 7 | +use Elementor\Core\Schemes\Base; | |
| 7 | 8 | use Elementor\Core\Settings\Manager as SettingsManager; |
| 8 | 9 | use Elementor\Core\Settings\Page\Manager as SettingsPageManager; |
| 9 | 10 | use Elementor\Icons_Manager; |
| 10 | -use Elementor\Includes\Elements\Container; | |
| 11 | 11 | use Elementor\Modules\Usage\Module; |
| 12 | 12 | use Elementor\Plugin; |
| 13 | 13 | use Elementor\Tracker; |
| 14 | -use Elementor\App\Modules\ImportExport\Utils; | |
| 14 | +use Elementor\Utils; | |
| 15 | 15 | |
| 16 | 16 | if ( ! defined( 'ABSPATH' ) ) { |
| 17 | 17 | exit; // Exit if accessed directly. |
| 18 | 18 | } |
| @@ -404,9 +404,9 @@ | ||
| 404 | 404 | update_metadata( 'post', $post_id, '_elementor_data', $json_value ); |
| 405 | 405 | |
| 406 | 406 | // Clear WP cache for next step. |
| 407 | 407 | wp_cache_flush(); |
| 408 | - } | |
| 408 | + } // End foreach(). | |
| 409 | 409 | } |
| 410 | 410 | |
| 411 | 411 | /** |
| 412 | 412 | * @param Updater $updater |
| @@ -479,9 +479,9 @@ | ||
| 479 | 479 | // We need the `wp_slash` in order to avoid the unslashing during the `update_post_meta` |
| 480 | 480 | $json_value = wp_slash( wp_json_encode( $data ) ); |
| 481 | 481 | |
| 482 | 482 | update_metadata( 'post', $post_id, '_elementor_data', $json_value ); |
| 483 | - } | |
| 483 | + } // End foreach(). | |
| 484 | 484 | |
| 485 | 485 | return $updater->should_run_again( $post_ids ); |
| 486 | 486 | } |
| 487 | 487 | |
| @@ -515,9 +515,9 @@ | ||
| 515 | 515 | continue; |
| 516 | 516 | } |
| 517 | 517 | |
| 518 | 518 | $document->save_template_type(); |
| 519 | - } | |
| 519 | + } // End foreach(). | |
| 520 | 520 | |
| 521 | 521 | return $updater->should_run_again( $post_ids ); |
| 522 | 522 | } |
| 523 | 523 | |
| @@ -529,9 +529,9 @@ | ||
| 529 | 529 | add_option( 'elementor_load_fa4_shim', 'yes' ); |
| 530 | 530 | } |
| 531 | 531 | |
| 532 | 532 | /** |
| 533 | - * Migrate Icon control string value to Icons control array value | |
| 533 | + * migrate Icon control string value to Icons control array value | |
| 534 | 534 | * |
| 535 | 535 | * @param array $element |
| 536 | 536 | * @param array $args |
| 537 | 537 | * |
| @@ -581,10 +581,11 @@ | ||
| 581 | 581 | /** |
| 582 | 582 | * Update database to separate page from post. |
| 583 | 583 | * |
| 584 | 584 | * @param Updater $updater |
| 585 | - * @param string $type | |
| 586 | 585 | * |
| 586 | + * @param string $type | |
| 587 | + * | |
| 587 | 588 | * @return bool |
| 588 | 589 | */ |
| 589 | 590 | public static function rename_document_base_to_wp( $updater, $type ) { |
| 590 | 591 | global $wpdb; |
| @@ -608,8 +609,26 @@ | ||
| 608 | 609 | return $updater->should_run_again( $post_ids ); |
| 609 | 610 | } |
| 610 | 611 | |
| 611 | 612 | /** |
| 613 | + * Update database to separate page from post. | |
| 614 | + * | |
| 615 | + * @param Updater $updater | |
| 616 | + * | |
| 617 | + * @return bool | |
| 618 | + */ | |
| 619 | + // Because the query is slow on large sites, temporary don't upgrade. | |
| 620 | + /* public static function _v_2_7_0_rename_document_types_to_wp( $updater ) { | |
| 621 | + return self::rename_document_base_to_wp( $updater, 'post' ) || self::rename_document_base_to_wp( $updater, 'page' ); | |
| 622 | + }*/ | |
| 623 | + | |
| 624 | + // Upgrade code was fixed & moved to _v_2_7_1_remove_old_usage_data. | |
| 625 | + /* public static function _v_2_7_0_remove_old_usage_data() {} */ | |
| 626 | + | |
| 627 | + // Upgrade code moved to _v_2_7_1_recalc_usage_data. | |
| 628 | + /* public static function _v_2_7_0_recalc_usage_data( $updater ) {} */ | |
| 629 | + | |
| 630 | + /** | |
| 612 | 631 | * Don't use the old data anymore. |
| 613 | 632 | * Since 2.7.1 the key was changed from `elementor_elements_usage` to `elementor_controls_usage`. |
| 614 | 633 | */ |
| 615 | 634 | public static function _v_2_7_1_remove_old_usage_data() { |
| @@ -709,187 +728,223 @@ | ||
| 709 | 728 | |
| 710 | 729 | return self::move_settings_to_kit( $callback, $updater ); |
| 711 | 730 | } |
| 712 | 731 | |
| 713 | - public static function _v_3_2_0_migrate_breakpoints_to_new_system( $updater, $include_revisions = true ) { | |
| 732 | + /** | |
| 733 | + * Move default colors settings to active kit and all it's revisions. | |
| 734 | + * | |
| 735 | + * @param Updater $updater | |
| 736 | + * | |
| 737 | + * @return bool | |
| 738 | + */ | |
| 739 | + public static function _v_3_0_0_move_default_colors_to_kit( $updater, $include_revisions = true ) { | |
| 714 | 740 | $callback = function( $kit_id ) { |
| 741 | + if ( ! Plugin::$instance->kits_manager->is_custom_colors_enabled() ) { | |
| 742 | + self::notice( 'System colors are disabled. nothing to do.' ); | |
| 743 | + return; | |
| 744 | + } | |
| 745 | + | |
| 715 | 746 | $kit = Plugin::$instance->documents->get( $kit_id ); |
| 716 | 747 | |
| 717 | - $kit_settings = $kit->get_meta( SettingsPageManager::META_KEY ); | |
| 718 | - | |
| 719 | - if ( ! $kit_settings ) { | |
| 720 | - // Nothing to upgrade. | |
| 748 | + // Already exist. use raw settings that doesn't have default values. | |
| 749 | + $meta_key = SettingsPageManager::META_KEY; | |
| 750 | + $kit_raw_settings = $kit->get_meta( $meta_key ); | |
| 751 | + if ( isset( $kit_raw_settings['system_colors'] ) ) { | |
| 752 | + self::notice( 'System colors already exist. nothing to do.' ); | |
| 721 | 753 | return; |
| 722 | 754 | } |
| 723 | 755 | |
| 724 | - $prefix = Breakpoints_Manager::BREAKPOINT_SETTING_PREFIX; | |
| 725 | - $old_mobile_option_key = $prefix . 'md'; | |
| 726 | - $old_tablet_option_key = $prefix . 'lg'; | |
| 756 | + $scheme_obj = Plugin::$instance->schemes_manager->get_scheme( 'color' ); | |
| 727 | 757 | |
| 728 | - $breakpoint_values = [ | |
| 729 | - $old_mobile_option_key => Plugin::$instance->kits_manager->get_current_settings( $old_mobile_option_key ), | |
| 730 | - $old_tablet_option_key => Plugin::$instance->kits_manager->get_current_settings( $old_tablet_option_key ), | |
| 758 | + $default_colors = $scheme_obj->get_scheme(); | |
| 759 | + | |
| 760 | + $new_ids = [ | |
| 761 | + 'primary', | |
| 762 | + 'secondary', | |
| 763 | + 'text', | |
| 764 | + 'accent', | |
| 731 | 765 | ]; |
| 732 | 766 | |
| 733 | - // Breakpoint values are either a number, or an empty string (empty setting). | |
| 734 | - array_walk( $breakpoint_values, function( &$breakpoint_value, $breakpoint_key ) { | |
| 735 | - if ( $breakpoint_value ) { | |
| 736 | - // If the saved breakpoint value is a number, 1px is reduced because the new breakpoints system is | |
| 737 | - // based on max-width, as opposed to the old breakpoints system that worked based on min-width. | |
| 738 | - $breakpoint_value--; | |
| 739 | - } | |
| 767 | + foreach ( $default_colors as $index => $color ) { | |
| 768 | + $kit->add_repeater_row( 'system_colors', [ | |
| 769 | + '_id' => $new_ids[ $index - 1 ], // $default_colors starts from 1. | |
| 770 | + 'title' => $color['title'], | |
| 771 | + 'color' => strtoupper( $color['value'] ), | |
| 772 | + ] ); | |
| 773 | + } | |
| 774 | + }; | |
| 740 | 775 | |
| 741 | - return $breakpoint_value; | |
| 742 | - } ); | |
| 776 | + return self::move_settings_to_kit( $callback, $updater, $include_revisions ); | |
| 777 | + } | |
| 743 | 778 | |
| 744 | - $kit_settings[ $prefix . Breakpoints_Manager::BREAKPOINT_KEY_MOBILE ] = $breakpoint_values[ $old_mobile_option_key ]; | |
| 745 | - $kit_settings[ $prefix . Breakpoints_Manager::BREAKPOINT_KEY_TABLET ] = $breakpoint_values[ $old_tablet_option_key ]; | |
| 779 | + /** | |
| 780 | + * Move saved colors settings to active kit and all it's revisions. | |
| 781 | + * | |
| 782 | + * @param Updater $updater | |
| 783 | + * | |
| 784 | + * @return bool | |
| 785 | + */ | |
| 786 | + public static function _v_3_0_0_move_saved_colors_to_kit( $updater, $include_revisions = true ) { | |
| 787 | + $callback = function( $kit_id ) { | |
| 788 | + $kit = Plugin::$instance->documents->get( $kit_id ); | |
| 746 | 789 | |
| 747 | - $page_settings_manager = SettingsManager::get_settings_managers( 'page' ); | |
| 748 | - $page_settings_manager->save_settings( $kit_settings, $kit_id ); | |
| 749 | - }; | |
| 790 | + // Already exist. use raw settings that doesn't have default values. | |
| 791 | + $meta_key = SettingsPageManager::META_KEY; | |
| 792 | + $kit_raw_settings = $kit->get_meta( $meta_key ); | |
| 793 | + if ( isset( $kit_raw_settings['custom_colors'] ) ) { | |
| 794 | + self::notice( 'Custom colors already exist. nothing to do.' ); | |
| 795 | + return; | |
| 796 | + } | |
| 750 | 797 | |
| 751 | - return self::move_settings_to_kit( $callback, $updater, $include_revisions ); | |
| 752 | - } | |
| 798 | + $system_colors_rows = $kit->get_settings( 'system_colors' ); | |
| 753 | 799 | |
| 754 | - public static function _v_3_4_8_fix_font_awesome_default_value_from_1_to_yes() { | |
| 755 | - // if `Icons_Manager::LOAD_FA4_SHIM_OPTION_KEY` value is '1', then set it to `yes`. | |
| 756 | - $load_fa4_shim_option = get_option( Icons_Manager::LOAD_FA4_SHIM_OPTION_KEY ); | |
| 800 | + if ( ! $system_colors_rows ) { | |
| 801 | + $system_colors_rows = []; | |
| 802 | + } | |
| 757 | 803 | |
| 758 | - if ( '1' === $load_fa4_shim_option ) { | |
| 759 | - update_option( Icons_Manager::LOAD_FA4_SHIM_OPTION_KEY, 'yes' ); | |
| 760 | - } | |
| 761 | - } | |
| 804 | + $system_colors = []; | |
| 762 | 805 | |
| 763 | - public static function _v_3_5_0_remove_old_elementor_scheme() { | |
| 764 | - global $wpdb; | |
| 806 | + foreach ( $system_colors_rows as $color_row ) { | |
| 807 | + $system_colors[] = strtoupper( $color_row['color'] ); | |
| 808 | + } | |
| 765 | 809 | |
| 766 | - $wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE 'elementor_scheme_%';" ); | |
| 767 | - } | |
| 810 | + $saved_scheme_obj = Plugin::$instance->schemes_manager->get_scheme( 'color-picker' ); | |
| 768 | 811 | |
| 769 | - public static function _v_3_8_0_fix_php8_image_custom_size() { | |
| 770 | - global $wpdb; | |
| 812 | + $current_saved_colors_rows = $saved_scheme_obj->get_scheme(); | |
| 771 | 813 | |
| 772 | - $attachment_ids = $wpdb->get_col( | |
| 773 | - 'SELECT `post_id` FROM `' . $wpdb->postmeta . '` | |
| 774 | - WHERE `meta_key` = "_wp_attachment_metadata" | |
| 775 | - AND ( | |
| 776 | - `meta_value` LIKE \'%elementor_custom_%\' | |
| 777 | - );' | |
| 778 | - ); | |
| 814 | + $current_saved_colors = []; | |
| 779 | 815 | |
| 780 | - foreach ( $attachment_ids as $attachment_id ) { | |
| 781 | - $attachment_metadata = wp_get_attachment_metadata( $attachment_id ); | |
| 782 | - if ( empty( $attachment_metadata['sizes'] ) || ! is_array( $attachment_metadata['sizes'] ) ) { | |
| 783 | - continue; | |
| 816 | + foreach ( $current_saved_colors_rows as $color_row ) { | |
| 817 | + $current_saved_colors[] = strtoupper( $color_row['value'] ); | |
| 784 | 818 | } |
| 785 | 819 | |
| 786 | - $old_attachment_metadata = $attachment_metadata; | |
| 787 | - foreach ( $attachment_metadata['sizes'] as $size_key => $size_value ) { | |
| 788 | - if ( 0 !== strpos( $size_key, 'elementor_custom_' ) ) { | |
| 789 | - continue; | |
| 790 | - } | |
| 820 | + $colors_to_save = array_diff( $current_saved_colors, $system_colors ); | |
| 791 | 821 | |
| 792 | - if ( absint( $size_value['width'] ) !== $size_value['width'] ) { | |
| 793 | - $attachment_metadata['sizes'][ $size_key ]['width'] = (int) $size_value['width']; | |
| 794 | - } | |
| 822 | + if ( empty( $colors_to_save ) ) { | |
| 823 | + self::notice( 'Saved colors not found. nothing to do.' ); | |
| 824 | + return; | |
| 825 | + } | |
| 795 | 826 | |
| 796 | - if ( absint( $size_value['height'] ) !== $size_value['height'] ) { | |
| 797 | - $attachment_metadata['sizes'][ $size_key ]['height'] = (int) $size_value['height']; | |
| 798 | - } | |
| 827 | + foreach ( $colors_to_save as $index => $color ) { | |
| 828 | + $kit->add_repeater_row( 'custom_colors', [ | |
| 829 | + '_id' => Utils::generate_random_string(), | |
| 830 | + 'title' => esc_html__( 'Saved Color', 'elementor' ) . ' #' . ( $index + 1 ), | |
| 831 | + 'color' => $color, | |
| 832 | + ] ); | |
| 799 | 833 | } |
| 834 | + }; | |
| 800 | 835 | |
| 801 | - if ( $old_attachment_metadata['sizes'] === $attachment_metadata['sizes'] ) { | |
| 802 | - continue; | |
| 836 | + return self::move_settings_to_kit( $callback, $updater, $include_revisions ); | |
| 837 | + } | |
| 838 | + | |
| 839 | + /** | |
| 840 | + * Move default typography settings to active kit and all it's revisions. | |
| 841 | + * | |
| 842 | + * @param Updater $updater | |
| 843 | + * | |
| 844 | + * @return bool | |
| 845 | + */ | |
| 846 | + public static function _v_3_0_0_move_default_typography_to_kit( $updater, $include_revisions = true ) { | |
| 847 | + $callback = function( $kit_id ) { | |
| 848 | + if ( ! Plugin::$instance->kits_manager->is_custom_typography_enabled() ) { | |
| 849 | + self::notice( 'System typography is disabled. nothing to do.' ); | |
| 850 | + return; | |
| 803 | 851 | } |
| 804 | 852 | |
| 805 | - wp_update_attachment_metadata( $attachment_id, $attachment_metadata ); | |
| 806 | - } | |
| 807 | - } | |
| 853 | + $kit = Plugin::$instance->documents->get( $kit_id ); | |
| 808 | 854 | |
| 809 | - public static function _v_3_16_0_container_updates( $updater ) { | |
| 810 | - $post_ids = self::get_post_ids_by_element_type( $updater, 'container' ); | |
| 855 | + // Already exist. use raw settings that doesn't have default values. | |
| 856 | + $meta_key = SettingsPageManager::META_KEY; | |
| 857 | + $kit_raw_settings = $kit->get_meta( $meta_key ); | |
| 858 | + if ( isset( $kit_raw_settings['system_typography'] ) ) { | |
| 859 | + self::notice( 'System typography already exist. nothing to do.' ); | |
| 860 | + return; | |
| 861 | + } | |
| 811 | 862 | |
| 812 | - if ( empty( $post_ids ) ) { | |
| 813 | - return false; | |
| 814 | - } | |
| 863 | + $scheme_obj = Plugin::$instance->schemes_manager->get_scheme( 'typography' ); | |
| 815 | 864 | |
| 816 | - foreach ( $post_ids as $post_id ) { | |
| 817 | - $document = Plugin::$instance->documents->get( $post_id ); | |
| 865 | + $default_typography = $scheme_obj->get_scheme(); | |
| 818 | 866 | |
| 819 | - if ( $document ) { | |
| 820 | - $data = $document->get_elements_data(); | |
| 867 | + $new_ids = [ | |
| 868 | + 'primary', | |
| 869 | + 'secondary', | |
| 870 | + 'text', | |
| 871 | + 'accent', | |
| 872 | + ]; | |
| 873 | + | |
| 874 | + foreach ( $default_typography as $index => $typography ) { | |
| 875 | + $kit->add_repeater_row( 'system_typography', [ | |
| 876 | + '_id' => $new_ids[ $index - 1 ], // $default_typography starts from 1. | |
| 877 | + 'title' => $typography['title'], | |
| 878 | + 'typography_typography' => 'custom', | |
| 879 | + 'typography_font_family' => $typography['value']['font_family'], | |
| 880 | + 'typography_font_weight' => $typography['value']['font_weight'], | |
| 881 | + ] ); | |
| 821 | 882 | } |
| 883 | + }; | |
| 822 | 884 | |
| 823 | - if ( empty( $data ) ) { | |
| 824 | - continue; | |
| 825 | - } | |
| 885 | + return self::move_settings_to_kit( $callback, $updater, $include_revisions ); | |
| 886 | + } | |
| 826 | 887 | |
| 827 | - $data = self::iterate_containers( $data ); | |
| 888 | + public static function v_3_1_0_move_optimized_dom_output_to_experiments() { | |
| 889 | + $saved_option = get_option( 'elementor_optimized_dom_output' ); | |
| 828 | 890 | |
| 829 | - self::save_updated_document( $post_id, $data ); | |
| 891 | + if ( $saved_option ) { | |
| 892 | + $new_option = 'enabled' === $saved_option ? Experiments_Manager::STATE_ACTIVE : Experiments_Manager::STATE_INACTIVE; | |
| 893 | + | |
| 894 | + add_option( 'elementor_experiment-e_dom_optimization', $new_option ); | |
| 830 | 895 | } |
| 831 | 896 | } |
| 832 | 897 | |
| 833 | - public static function _v_3_17_0_site_settings_updates() { | |
| 834 | - $options = [ 'elementor_active_kit', 'elementor_previous_kit' ]; | |
| 898 | + public static function _v_3_2_0_migrate_breakpoints_to_new_system( $updater, $include_revisions = true ) { | |
| 899 | + $callback = function( $kit_id ) { | |
| 900 | + $kit = Plugin::$instance->documents->get( $kit_id ); | |
| 835 | 901 | |
| 836 | - foreach ( $options as $option_name ) { | |
| 837 | - self::maybe_add_gap_control_data( $option_name ); | |
| 838 | - } | |
| 839 | - } | |
| 902 | + $kit_settings = $kit->get_meta( SettingsPageManager::META_KEY ); | |
| 840 | 903 | |
| 841 | - /** | |
| 842 | - * Upgrade Elementor 3.26.0 - Delete old experiments from the DB. | |
| 843 | - * | |
| 844 | - * @since 3.26.0 | |
| 845 | - * @static | |
| 846 | - * @access public | |
| 847 | - */ | |
| 848 | - public static function _v_3_26_0() { | |
| 849 | - delete_option( 'elementor_experiment-ai-layout' ); | |
| 850 | - delete_option( 'elementor_experiment-block_editor_assets_optimize' ); | |
| 851 | - delete_option( 'elementor_experiment-container_grid' ); | |
| 852 | - delete_option( 'elementor_experiment-display-conditions' ); | |
| 853 | - delete_option( 'elementor_experiment-e_dom_optimization' ); | |
| 854 | - delete_option( 'elementor_experiment-e_global_styleguide' ); | |
| 855 | - delete_option( 'elementor_experiment-e_image_loading_optimization' ); | |
| 856 | - delete_option( 'elementor_experiment-e_lazyload' ); | |
| 857 | - delete_option( 'elementor_experiment-e_optimized_assets_loading' ); | |
| 858 | - delete_option( 'elementor_experiment-e_optimized_css_loading' ); | |
| 859 | - delete_option( 'elementor_experiment-e_scroll_snap' ); | |
| 860 | - delete_option( 'elementor_experiment-floating-buttons' ); | |
| 861 | - delete_option( 'elementor_experiment-form-submissions' ); | |
| 862 | - delete_option( 'elementor_experiment-link-in-bio' ); | |
| 863 | - delete_option( 'elementor_experiment-loop' ); | |
| 864 | - delete_option( 'elementor_experiment-notes' ); | |
| 865 | - delete_option( 'elementor_experiment-off-canvas' ); | |
| 866 | - delete_option( 'elementor_experiment-page-transitions' ); | |
| 867 | - delete_option( 'elementor_experiment-search' ); | |
| 868 | - delete_option( 'elementor_experiment-taxonomy-filter' ); | |
| 869 | - } | |
| 904 | + if ( ! $kit_settings ) { | |
| 905 | + // Nothing to upgrade. | |
| 906 | + return; | |
| 907 | + } | |
| 870 | 908 | |
| 871 | - private static function maybe_add_gap_control_data( $option_name ) { | |
| 872 | - $kit_id = get_option( $option_name ); | |
| 909 | + $prefix = Breakpoints_Manager::BREAKPOINT_SETTING_PREFIX; | |
| 910 | + $old_mobile_option_key = $prefix . 'md'; | |
| 911 | + $old_tablet_option_key = $prefix . 'lg'; | |
| 873 | 912 | |
| 874 | - if ( ! $kit_id ) { | |
| 875 | - return; | |
| 876 | - } | |
| 913 | + $breakpoint_values = [ | |
| 914 | + $old_mobile_option_key => Plugin::$instance->kits_manager->get_current_settings( $old_mobile_option_key ), | |
| 915 | + $old_tablet_option_key => Plugin::$instance->kits_manager->get_current_settings( $old_tablet_option_key ), | |
| 916 | + ]; | |
| 877 | 917 | |
| 878 | - $kit_data_array = get_post_meta( (int) $kit_id, '_elementor_page_settings', true ); | |
| 918 | + // Breakpoint values are either a number, or an empty string (empty setting). | |
| 919 | + array_walk( $breakpoint_values, function( &$breakpoint_value, $breakpoint_key ) { | |
| 920 | + if ( $breakpoint_value ) { | |
| 921 | + // If the saved breakpoint value is a number, 1px is reduced because the new breakpoints system is | |
| 922 | + // based on max-width, as opposed to the old breakpoints system that worked based on min-width. | |
| 923 | + $breakpoint_value--; | |
| 924 | + } | |
| 879 | 925 | |
| 880 | - $setting_not_exist = ! isset( $kit_data_array['space_between_widgets'] ); | |
| 881 | - $already_processed = isset( $kit_data_array['space_between_widgets']['column'] ); | |
| 926 | + return $breakpoint_value; | |
| 927 | + } ); | |
| 882 | 928 | |
| 883 | - if ( $setting_not_exist || $already_processed ) { | |
| 884 | - return; | |
| 885 | - } | |
| 929 | + $kit_settings[ $prefix . Breakpoints_Manager::BREAKPOINT_KEY_MOBILE ] = $breakpoint_values[ $old_mobile_option_key ]; | |
| 930 | + $kit_settings[ $prefix . Breakpoints_Manager::BREAKPOINT_KEY_TABLET ] = $breakpoint_values[ $old_tablet_option_key ]; | |
| 886 | 931 | |
| 887 | - $kit_data_array['space_between_widgets'] = Utils::update_space_between_widgets_values( $kit_data_array['space_between_widgets'] ); | |
| 932 | + $page_settings_manager = SettingsManager::get_settings_managers( 'page' ); | |
| 933 | + $page_settings_manager->save_settings( $kit_settings, $kit_id ); | |
| 934 | + }; | |
| 888 | 935 | |
| 889 | - update_post_meta( (int) $kit_id, '_elementor_page_settings', $kit_data_array ); | |
| 936 | + return self::move_settings_to_kit( $callback, $updater, $include_revisions ); | |
| 890 | 937 | } |
| 891 | 938 | |
| 939 | + public static function _v_3_5_0_remove_old_elementor_scheme() { | |
| 940 | + global $wpdb; | |
| 941 | + | |
| 942 | + $key = Base::SCHEME_OPTION_PREFIX; | |
| 943 | + | |
| 944 | + $wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE '{$key}%';" ); // phpcs:ignore | |
| 945 | + } | |
| 946 | + | |
| 892 | 947 | public static function remove_remote_info_api_data() { |
| 893 | 948 | global $wpdb; |
| 894 | 949 | |
| 895 | 950 | $key = Api::TRANSIENT_KEY_PREFIX; |
| @@ -939,80 +994,6 @@ | ||
| 939 | 994 | |
| 940 | 995 | private static function notice( $message ) { |
| 941 | 996 | $logger = Plugin::$instance->logger->get_logger(); |
| 942 | 997 | $logger->notice( $message ); |
| 943 | - } | |
| 944 | - | |
| 945 | - public static function get_post_ids_by_element_type( $updater, string $element_type ): array { | |
| 946 | - global $wpdb; | |
| 947 | - | |
| 948 | - return $updater->query_col( | |
| 949 | - 'SELECT `post_id` | |
| 950 | - FROM `' . $wpdb->postmeta . '` | |
| 951 | - WHERE `meta_key` = "_elementor_data" | |
| 952 | - AND `meta_value` LIKE \'%"elType":"' . $element_type . '"%\';' | |
| 953 | - ); | |
| 954 | - } | |
| 955 | - /** | |
| 956 | - * @param $data | |
| 957 | - * | |
| 958 | - * @return array|mixed | |
| 959 | - */ | |
| 960 | - private static function iterate_containers( $data ) { | |
| 961 | - return Plugin::$instance->db->iterate_data( | |
| 962 | - $data, function ( $element ) { | |
| 963 | - | |
| 964 | - if ( 'container' !== $element['elType'] || ! isset( $element['elements'] ) ) { | |
| 965 | - return $element; | |
| 966 | - } | |
| 967 | - | |
| 968 | - $element = self::maybe_convert_to_inner_container( $element ); | |
| 969 | - $element = self::maybe_convert_to_grid_container( $element ); | |
| 970 | - return Container::slider_to_gaps_converter( $element ); | |
| 971 | - } | |
| 972 | - ); | |
| 973 | - } | |
| 974 | - | |
| 975 | - /** | |
| 976 | - * @param $element | |
| 977 | - * | |
| 978 | - * @return array | |
| 979 | - */ | |
| 980 | - private static function maybe_convert_to_inner_container( $element ) { | |
| 981 | - foreach ( $element['elements'] as &$inner_element ) { | |
| 982 | - if ( 'container' === $inner_element['elType'] && ! $inner_element['isInner'] ) { | |
| 983 | - $inner_element['isInner'] = true; | |
| 984 | - } | |
| 985 | - } | |
| 986 | - | |
| 987 | - return $element; | |
| 988 | - } | |
| 989 | - | |
| 990 | - /** | |
| 991 | - * @param $element | |
| 992 | - * | |
| 993 | - * @return array | |
| 994 | - */ | |
| 995 | - private static function maybe_convert_to_grid_container( $element ) { | |
| 996 | - $is_grid_container = isset( $element['settings']['container_type'] ) && 'grid' === $element['settings']['container_type']; | |
| 997 | - if ( 'container' !== $element['elType'] || empty( $element['settings'] ) || ! $is_grid_container ) { | |
| 998 | - return $element; | |
| 999 | - } | |
| 1000 | - | |
| 1001 | - $element['settings']['presetTitle'] = 'Grid'; | |
| 1002 | - $element['settings']['presetIcon'] = 'eicon-container-grid'; | |
| 1003 | - | |
| 1004 | - return $element; | |
| 1005 | - } | |
| 1006 | - | |
| 1007 | - /** | |
| 1008 | - * @param $post_id | |
| 1009 | - * @param $data | |
| 1010 | - * | |
| 1011 | - * @return void | |
| 1012 | - */ | |
| 1013 | - private static function save_updated_document( $post_id, $data ) { | |
| 1014 | - $json_value = wp_slash( wp_json_encode( $data ) ); | |
| 1015 | - | |
| 1016 | - update_metadata( 'post', $post_id, '_elementor_data', $json_value ); | |
| 1017 | 998 | } |
| 1018 | 999 | } |