'taxonomies', $result, $data, $imported_data, $customization, $runner ); } public function import_elementor_content_customization( $result, array $data, array $imported_data, $customization, $runner ) { return $this->delegate_to_import_runner( 'elementor-content', $result, $data, $imported_data, $customization, $runner ); } public function elementor_content_post_types( $post_types, $customization ) { $selected_pages = $customization['pages'] ?? null; if ( null !== $selected_pages && empty( $selected_pages ) ) { return array_filter( $post_types, function ( $post_type ) { return 'page' !== $post_type; } ); } return $post_types; } public function export_elementor_content_filter_query_args( $query_args, $post_type, $customization ) { $selected_pages = $customization['pages'] ?? null; if ( 'page' === $post_type && ! empty( $selected_pages ) ) { $query_args['post__in'] = $selected_pages; } return $query_args; } public function wp_content_filter_query_args( $query_args, $post_type, $customization ) { if ( 'page' === $post_type ) { $query_args['include'] = $customization['pages'] ?? null; } return $query_args; } public function wp_content_post_types( $post_types, $data ) { $customization = $data['customization']['content'] ?? null; $selected_pages = $customization['pages'] ?? null; $include_menus = ! is_null( $customization['menus'] ) ? $customization['menus'] : true; $exclude_post_types = []; if ( ! $include_menus ) { $exclude_post_types[] = 'nav_menu_item'; } if ( null !== $selected_pages && empty( $selected_pages ) ) { $exclude_post_types[] = 'page'; } return array_diff( $post_types, $exclude_post_types ); } /** * Delegate export to the appropriate runner. * * @param string $type Customization type * @param mixed $result Previous filter result * @param array $data Export data * @param array $customization Customization settings * @param object $runner Core runner instance * @return mixed */ private function delegate_to_export_runner( string $type, $result, array $data, array $customization, $runner ) { $runner_class = $this->export_runners[ $type ] ?? null; if ( ! $runner_class ) { return $result; } return ( new $runner_class() )->handle( $result, $data, $customization, $runner ); } /** * Delegate import to the appropriate runner. * * @param string $type Customization type * @param mixed $result Previous filter result * @param array $data Import data * @param array $imported_data Already imported data * @param array $customization Customization settings * @param object $runner Core runner instance * @return mixed */ private function delegate_to_import_runner( string $type, $result, array $data, array $imported_data, array $customization, $runner ) { $runner_class = $this->import_runners[ $type ] ?? null; if ( ! $runner_class ) { return $result; } return ( new $runner_class() )->handle( $result, $data, $imported_data, $customization, $runner ); } }