Файловый менеджер - Редактировать - /home/iss2024/rasgpinc.com/wp-content/plugins/elementor/modules/global-classes/database/migrations/migrate-to-posts.php
Ðазад
<?php namespace Elementor\Modules\GlobalClasses\Database\Migrations; use Elementor\Core\Database\Base_Migration; use Elementor\Core\Kits\Documents\Kit; use Elementor\Modules\GlobalClasses\Concerns\Has_Kit_Dependency; use Elementor\Modules\GlobalClasses\Global_Class_Post_Type; use Elementor\Modules\GlobalClasses\Global_Classes_Order; use Elementor\Modules\GlobalClasses\Global_Classes_Relations; use Elementor\Modules\GlobalClasses\Global_Classes_Repository; use Elementor\Modules\GlobalClasses\Utils\Global_Class_Data_Normalizer; use Elementor\Plugin; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } class Migrate_To_Posts extends Base_Migration { use Has_Kit_Dependency; public function up() { Global_Class_Post_Type::ensure_registered(); $migrated = $this->migrate_global_classes_to_posts(); if ( ! $migrated ) { return; } self::run_document_tracking( $this->get_kit() ); // We'll comment it out for now as we may prefer to avoid data restoration upon downgrading // $this->cleanup_kit_meta(); } private function migrate_global_classes_to_posts(): bool { $kit = $this->get_kit(); if ( ! $kit ) { return false; } $global_classes = self::get_aggregate_global_classes( $kit ); if ( empty( $global_classes ) || empty( $global_classes['items'] ) ) { return false; } $existing_posts = $this->get_existing_class_posts(); if ( ! empty( $existing_posts ) ) { return false; } $raw_items = $global_classes['items']; $order = $global_classes['order'] ?? array_keys( $raw_items ); $items = Global_Class_Data_Normalizer::normalize_styles( $raw_items ); Global_Classes_Repository::make( $kit )->put( $items, $order ); return true; } private function get_existing_class_posts(): array { return get_posts( [ 'post_type' => Global_Class_Post_Type::CPT, 'post_status' => 'publish', 'posts_per_page' => -1, 'fields' => 'ids', ] ); } public static function get_aggregate_global_classes( ?Kit $kit = null ): array { $empty_result = [ 'items' => [], 'order' => [], ]; if ( ! $kit ) { return $empty_result; } return $kit->get_json_meta( Global_Classes_Repository::META_KEY_FRONTEND ) ?? $empty_result; } public static function run_document_tracking( ?Kit $kit ): void { if ( ! $kit ) { return; } $valid_class_ids = Global_Classes_Order::make( $kit )->set_preview( false )->get_order(); if ( empty( $valid_class_ids ) ) { return; } $relations = new Global_Classes_Relations(); Plugin::$instance->db->iterate_elementor_documents( function ( $document ) use ( $relations, $valid_class_ids ) { $post_id = $document->get_main_id(); $used_class_ids = $relations->collect_class_ids_from_post( $post_id, $valid_class_ids ); if ( ! empty( $used_class_ids ) ) { $relations->set_styles_for_post( $post_id, $used_class_ids ); } } ); } private function cleanup_kit_meta(): void { $kit = Plugin::$instance->kits_manager->get_active_kit(); if ( ! $kit ) { return; } $kit->delete_meta( Global_Classes_Repository::META_KEY_FRONTEND ); $kit->delete_meta( Global_Classes_Repository::META_KEY_PREVIEW ); } }
| ver. 1.1 | |
.
| PHP 8.4.21 | Ð“ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ñ Ñтраницы: 0 |
proxy
|
phpinfo
|
ÐаÑтройка