PluginProbe
Elementor Website Builder – more than just a page builder / 4.1.4
Elementor Website Builder – more than just a page builder v4.1.4
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 +23 -13 4.3.1 → 4.1.4 View file →
@@ -3,16 +3,14 @@
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\Core\Kits\Concerns\Has_Kit_Dependency;
7 +use Elementor\Modules\GlobalClasses\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;
11 10 use Elementor\Modules\GlobalClasses\Global_Classes_Relations;
12 11 use Elementor\Modules\GlobalClasses\Global_Classes_Repository;
13 12 use Elementor\Modules\GlobalClasses\Utils\Global_Class_Data_Normalizer;
14 -use Elementor\Modules\GlobalClasses\Utils\Kit_Utils;
15 13 use Elementor\Plugin;
16 14
17 15 if ( ! defined( 'ABSPATH' ) ) {
18 16 exit; // Exit if accessed directly.
@@ -23,23 +21,26 @@
23 21
24 22 public function up() {
25 23 Global_Class_Post_Type::ensure_registered();
26 24
27 - $active_kit = $this->get_kit();
25 + $migrated = $this->migrate_global_classes_to_posts();
28 26
29 - foreach ( Kit_Utils::get_all_kit_documents() as $kit ) {
30 - $migrated = $this->migrate_kit( $kit );
27 + if ( ! $migrated ) {
28 + return;
29 + }
31 30
32 - if ( $migrated && $active_kit && $kit->get_id() === $active_kit->get_id() ) {
33 - self::run_document_tracking( $kit );
34 - }
35 - }
31 + self::run_document_tracking( $this->get_kit() );
36 32
37 33 // We'll comment it out for now as we may prefer to avoid data restoration upon downgrading
38 34 // $this->cleanup_kit_meta();
39 35 }
40 36
41 - public static function migrate_kit( Kit $kit ): bool {
37 + private function migrate_global_classes_to_posts(): bool {
38 + $kit = $this->get_kit();
39 + if ( ! $kit ) {
40 + return false;
41 + }
42 +
42 43 $global_classes = self::get_aggregate_global_classes( $kit );
43 44
44 45 if ( empty( $global_classes ) || empty( $global_classes['items'] ) ) {
45 46 return false;
@@ -44,11 +45,11 @@
44 45 if ( empty( $global_classes ) || empty( $global_classes['items'] ) ) {
45 46 return false;
46 47 }
47 48
48 - $existing_order = Global_Classes_Order::make( $kit )->set_preview( false )->get_order();
49 + $existing_posts = $this->get_existing_class_posts();
49 50
50 - if ( ! empty( $existing_order ) ) {
51 + if ( ! empty( $existing_posts ) ) {
51 52 return false;
52 53 }
53 54
54 55 $raw_items = $global_classes['items'];
@@ -58,8 +59,17 @@
58 59
59 60 Global_Classes_Repository::make( $kit )->put( $items, $order );
60 61
61 62 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 + ] );
62 72 }
63 73
64 74 public static function get_aggregate_global_classes( ?Kit $kit = null ): array {
65 75 $empty_result = [