PluginProbe
Elementor Website Builder – more than just a page builder / 4.3.1
Elementor Website Builder – more than just a page builder v4.3.1
4.3.1 4.3.0 4.3.0-beta3 4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 4.0.8 All 454 releases
← All changes | modules/global-classes/database/migrations/migrate-to-posts.php +13 -23 4.1.5 → 4.3.1 View file →
@@ -3,14 +3,16 @@
3 3 namespace Elementor\Modules\GlobalClasses\Database\Migrations;
4 4
5 5 use Elementor\Core\Database\Base_Migration;
6 6 use Elementor\Core\Kits\Documents\Kit;
7 -use Elementor\Modules\GlobalClasses\Concerns\Has_Kit_Dependency;
7 +use Elementor\Core\Kits\Concerns\Has_Kit_Dependency;
8 8 use Elementor\Modules\GlobalClasses\Global_Class_Post_Type;
9 9 use Elementor\Modules\GlobalClasses\Global_Classes_Order;
10 +use Elementor\Modules\GlobalClasses\Global_Classes_Post_IDs;
10 11 use Elementor\Modules\GlobalClasses\Global_Classes_Relations;
11 12 use Elementor\Modules\GlobalClasses\Global_Classes_Repository;
12 13 use Elementor\Modules\GlobalClasses\Utils\Global_Class_Data_Normalizer;
14 +use Elementor\Modules\GlobalClasses\Utils\Kit_Utils;
13 15 use Elementor\Plugin;
14 16
15 17 if ( ! defined( 'ABSPATH' ) ) {
16 18 exit; // Exit if accessed directly.
@@ -21,26 +23,23 @@
21 23
22 24 public function up() {
23 25 Global_Class_Post_Type::ensure_registered();
24 26
25 - $migrated = $this->migrate_global_classes_to_posts();
27 + $active_kit = $this->get_kit();
26 28
27 - if ( ! $migrated ) {
28 - return;
29 + foreach ( Kit_Utils::get_all_kit_documents() as $kit ) {
30 + $migrated = $this->migrate_kit( $kit );
31 +
32 + if ( $migrated && $active_kit && $kit->get_id() === $active_kit->get_id() ) {
33 + self::run_document_tracking( $kit );
34 + }
29 35 }
30 36
31 - self::run_document_tracking( $this->get_kit() );
32 -
33 37 // We'll comment it out for now as we may prefer to avoid data restoration upon downgrading
34 38 // $this->cleanup_kit_meta();
35 39 }
36 40
37 - private function migrate_global_classes_to_posts(): bool {
38 - $kit = $this->get_kit();
39 - if ( ! $kit ) {
40 - return false;
41 - }
42 -
41 + public static function migrate_kit( Kit $kit ): bool {
43 42 $global_classes = self::get_aggregate_global_classes( $kit );
44 43
45 44 if ( empty( $global_classes ) || empty( $global_classes['items'] ) ) {
46 45 return false;
@@ -45,11 +44,11 @@
45 44 if ( empty( $global_classes ) || empty( $global_classes['items'] ) ) {
46 45 return false;
47 46 }
48 47
49 - $existing_posts = $this->get_existing_class_posts();
48 + $existing_order = Global_Classes_Order::make( $kit )->set_preview( false )->get_order();
50 49
51 - if ( ! empty( $existing_posts ) ) {
50 + if ( ! empty( $existing_order ) ) {
52 51 return false;
53 52 }
54 53
55 54 $raw_items = $global_classes['items'];
@@ -59,17 +58,8 @@
59 58
60 59 Global_Classes_Repository::make( $kit )->put( $items, $order );
61 60
62 61 return true;
63 - }
64 -
65 - private function get_existing_class_posts(): array {
66 - return get_posts( [
67 - 'post_type' => Global_Class_Post_Type::CPT,
68 - 'post_status' => 'publish',
69 - 'posts_per_page' => -1,
70 - 'fields' => 'ids',
71 - ] );
72 62 }
73 63
74 64 public static function get_aggregate_global_classes( ?Kit $kit = null ): array {
75 65 $empty_result = [