tools_settings = $tools_settings; $this->logger = $logger; $this->layouts_settings_storage = $layouts_settings_storage; $this->post_selections_settings_storage = $post_selections_settings_storage; } public function echo_dump_file(): void { $dump_data = array( 'error_logs' => $this->logger->get_error_logs(), 'logs' => $this->logger->get_logs(), 'cpt_data' => $this->get_cpt_dump_data(), 'environment' => array( 'theme' => Environment_Detector::get_theme_data(), 'installation' => Environment_Detector::get_installation_data(), ), ); $redirect_url = add_query_arg( array( 'message' => 1, ) ); ?> $post_type, 'post_status' => 'publish', 'posts_per_page' => - 1, ); if ( array() !== $slugs ) { $query_args['post_name__in'] = $slugs; } $wp_query = new WP_Query( $query_args ); /** * @var WP_Post[] */ return $wp_query->get_posts(); } /** * @return array */ protected function get_cpt_dump_data(): array { $export_data = array(); $views_to_export = array() !== $this->tools_settings->dump_views ? $this->get_posts( Hard_Layout_Cpt::cpt_name(), $this->tools_settings->dump_views ) : array(); $cards_to_export = array() !== $this->tools_settings->dump_cards ? $this->get_posts( Hard_Post_Selection_Cpt::cpt_name(), $this->tools_settings->dump_cards ) : array(); foreach ( $views_to_export as $view_post ) { $view_data = $this->layouts_settings_storage->get( $view_post->post_name ); // we don't need to save defaults. $export_data[ $view_post->post_name ] = $view_data->getFieldValues( '', true ); } foreach ( $cards_to_export as $card_post ) { $card_data = $this->post_selections_settings_storage->get( $card_post->post_name ); $card_unique_id = $card_data->get_unique_id(); // we don't need to save defaults. $export_data[ $card_unique_id ] = $card_data->getFieldValues( '', true ); } return $export_data; } }