PluginProbe
Elementor Website Builder – more than just a page builder / 4.3.0-beta3
Elementor Website Builder – more than just a page builder v4.3.0-beta3
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 4.1.0-beta1 4.1.0-dev1 All 452 releases
← All changes | core/kits/manager.php +26 -1 4.0.94.3.0-beta3 View file →
@@ -137,12 +137,16 @@
137 137
138 138 public function create_new_kit( $kit_name = '', $settings = [], $active = true ) {
139 139 $kit_name = $kit_name ? $kit_name : esc_html__( 'Custom', 'elementor' );
140 140
141 + $current_kit = $this->get_active_kit();
142 +
143 + $kit_meta_data = $this->get_meta_to_preserve( $current_kit );
144 +
141 145 $id = $this->create( [
142 146 'post_title' => $kit_name,
143 147 'settings' => $settings,
144 - ] );
148 + ], $kit_meta_data );
145 149
146 150 if ( $active ) {
147 151 update_option( self::OPTION_PREVIOUS, $this->get_active_id() );
148 152 update_option( self::OPTION_ACTIVE, $id );
@@ -147,9 +151,30 @@
147 151 update_option( self::OPTION_PREVIOUS, $this->get_active_id() );
148 152 update_option( self::OPTION_ACTIVE, $id );
149 153 }
150 154
155 + do_action( 'elementor/kit/after_new_kit_created', [
156 + 'new_kit_id' => $id,
157 + 'previous_kit_id' => $current_kit->get_post()->ID,
158 + ] );
159 +
151 160 return $id;
161 + }
162 +
163 + private function get_meta_to_preserve( Kit $current_kit ): array {
164 + $meta_keys_to_preserve = apply_filters( 'elementor/kit/meta_to_preserve_on_kit_import', [] );
165 +
166 + $kit_meta_data = [];
167 +
168 + foreach ( $meta_keys_to_preserve as $meta_key ) {
169 + $value = $current_kit->get_meta( $meta_key );
170 +
171 + if ( ! empty( $value ) ) {
172 + $kit_meta_data[ $meta_key ] = $value;
173 + }
174 + }
175 +
176 + return $kit_meta_data;
152 177 }
153 178
154 179 public function create_default() {
155 180 return $this->create( [