get_main_id() : 0; if ( ! $post_id ) { return; } $pt = get_post_type( $post_id ); if ( ! in_array( $pt, [ 'page', 'post' ], true ) ) { return; } // --- CORRECCIÓN: LISTA HONESTA --- // 1. Nos quitamos la venda (Desactivamos el filtro del Runtime) if ( function_exists( 'abdielmskef_intercept_active_kit' ) ) { remove_filter( 'pre_option_elementor_active_kit', 'abdielmskef_intercept_active_kit' ); remove_filter( 'option_elementor_active_kit', 'abdielmskef_intercept_active_kit' ); } // 2. Miramos la verdad (Obtenemos el ID real de la base de datos) $active_kit_id = function_exists( 'abdielmskef_get_active_kit_id' ) ? (int) abdielmskef_get_active_kit_id() : 0; // 3. Nos ponemos la venda de nuevo (Reactivamos el filtro para no romper los estilos de la página) if ( function_exists( 'abdielmskef_intercept_active_kit' ) ) { add_filter( 'pre_option_elementor_active_kit', 'abdielmskef_intercept_active_kit' ); add_filter( 'option_elementor_active_kit', 'abdielmskef_intercept_active_kit' ); } // ---------------------------------- $active_kit_name = $active_kit_id ? get_the_title( $active_kit_id ) : ''; if ( $active_kit_name ) { /* translators: %s: The name of the current global active kit */ $options = [ 0 => sprintf( __( 'Predeterminado del sitio (%s)', 'abdiel-multi-style-kits-for-elementor' ), $active_kit_name ) ]; } else { $options = [ 0 => __( 'Predeterminado del sitio', 'abdiel-multi-style-kits-for-elementor' ) ]; } if ( function_exists( 'abdielmskef_query_kits' ) ) { foreach ( abdielmskef_query_kits() as $kid ) { $options[ (int) $kid ] = get_the_title( $kid ) . ' (#' . (int) $kid . ')'; } } try { $document->start_controls_section( 'abdielmskef_section_local_kit', [ 'label' => __( 'Multi Style Kits', 'abdiel-multi-style-kits-for-elementor' ), 'tab' => \Elementor\Controls_Manager::TAB_SETTINGS, ] ); $document->add_control( ABDIELMSKEF_META_LOCAL_KIT_ID, [ 'label' => __( 'Local kit', 'abdiel-multi-style-kits-for-elementor' ), 'type' => \Elementor\Controls_Manager::SELECT, 'options' => $options, 'default' => 0, // Aquí indicamos al usuario explícitamente que no espere un cambio en vivo 'description' => __( 'Selecciona un kit para esta página. IMPORTANTE: Debes Guardar y Refrescar el editor para ver los cambios.', 'abdiel-multi-style-kits-for-elementor' ), ] ); $document->end_controls_section(); } catch ( \Throwable $e ) { } }, 10, 1 ); /** * Encolar el script JS externo (editor.js) * Este script es vital: es el que mostrará la barra de "Refrescar" cuando detecte el cambio. */ add_action( 'elementor/editor/after_enqueue_scripts', function() { // Llamada al archivo externo wp_enqueue_script( 'abdielmskef-editor', ABDIELMSKEF_URL . 'assets/js/editor.js', [ 'jquery' ], ABDIELMSKEF_VERSION, true ); // Pasamos los textos para la barra flotante (i18n) wp_localize_script( 'abdielmskef-editor', 'abdielmskef_EDITOR', [ 'i18n' => [ 'save' => __( 'Guardar', 'abdiel-multi-style-kits-for-elementor' ), 'refresh' => __( 'Refrescar', 'abdiel-multi-style-kits-for-elementor' ), 'cancel' => __( 'Cancelar', 'abdiel-multi-style-kits-for-elementor' ), 'pending' => __( 'Cambios de Kit detectados.', 'abdiel-multi-style-kits-for-elementor' ), 'pressSave' => __( 'Guarda los cambios y refresca la página para aplicar el nuevo Kit correctamente.', 'abdiel-multi-style-kits-for-elementor' ), ], ] ); } );