JezK
Edit File: module.php
<?php namespace Elementor\Modules\DefaultStyles; use Elementor\Core\Base\Module as BaseModule; use Elementor\Modules\AtomicWidgets\Module as Atomic_Widgets_Module; use Elementor\Modules\DefaultStyles\ImportExportCustomization\Import_Export_Customization; use Elementor\Plugin; if ( ! defined( 'ABSPATH' ) ) { exit; } class Module extends BaseModule { const PACKAGES = [ 'editor-default-styles', ]; public function get_name() { return 'default-styles'; } public function __construct() { parent::__construct(); if ( ! Plugin::$instance->experiments->is_feature_active( Atomic_Widgets_Module::EXPERIMENT_NAME ) ) { return; } add_filter( 'elementor/editor/v2/packages', fn( $packages ) => $this->add_packages( $packages ) ); ( new Default_Style_Post_Type() )->register(); ( new Default_Styles_Tag_Post_IDs() )->register_hooks(); add_filter( 'elementor/editor/localize_settings', fn( $settings ) => $this->add_editor_localize_settings( $settings ) ); ( new Default_Styles_REST_API() )->register_hooks(); ( new Atomic_Default_Styles() )->register_hooks(); ( new Import_Export_Customization() )->register_hooks(); add_filter( 'elementor/kit/meta_to_preserve_on_kit_import', [ $this, 'add_meta_to_preserve_on_kit_import' ] ); add_action( 'elementor/kit/after_new_kit_created', [ $this, 'clone_default_styles_for_new_kit' ], 10, 1 ); } public function add_meta_to_preserve_on_kit_import( array $meta_keys ): array { return array_merge( $meta_keys, [ Default_Styles_Tag_Post_IDs::META_KEY, ] ); } public function clone_default_styles_for_new_kit( array $params ): void { [ 'new_kit_id' => $new_kit_id, 'previous_kit_id' => $previous_kit_id ] = $params; $previous_kit = Plugin::$instance->kits_manager->get_kit( $previous_kit_id ); $new_kit = Plugin::$instance->kits_manager->get_kit( $new_kit_id ); if ( ! $previous_kit || ! $new_kit ) { return; } $tags = Default_Styles_Tag_Post_IDs::make( $previous_kit )->get_all(); foreach ( array_keys( $tags ) as $tag ) { Default_Style_Post::clone_to_other_kit( $tag, $previous_kit, $new_kit ); } } private function add_packages( $packages ) { return array_merge( $packages, self::PACKAGES ); } private function add_editor_localize_settings( array $settings ): array { if ( ! isset( $settings['atomic'] ) ) { $settings['atomic'] = []; } $settings['atomic']['default_styles'] = [ 'allowed_tags' => Default_Styles_Allowed_Tags::TAGS, ]; return $settings; } }