public function auto_pods() {

		/**
		 * Filter to override all settings for which templates are used.
		 *
		 * Note: If this filter does not return null, all back-end settings are ignored. To add to settings with a filter, use 'pods_pfat_auto_pods';
		 *
		 * @param array $auto_pods Array of parameters to use instead of those from settings.
		 *
		 * @return array Settings arrays for each post type.
		 *
		 * @since 2.4.5
		 */
		$auto_pods = apply_filters( 'pods_pfat_auto_pods_override', null );
		if ( ! is_null( $auto_pods ) ) {
			return $auto_pods;
		}

		// try to get cached results of this method
		$key       = '_pods_pfat_auto_pods';
		$auto_pods = pods_transient_get( $key );

		// check if we already have the results cached & use it if we can.
		if ( $auto_pods === false ) {
			// get possible pods
			$the_pods = $this->the_pods();

			// start output array empty
			$auto_pods = array();

			// get pods api class
			$api = pods_api();

			// loop through each to see if auto templates is enabled
			foreach ( $the_pods as $the_pod => $the_pod_label ) {
				// get this Pods' data.
				$pod_data = $api->load_pod( array( 'name' => $the_pod ) );

				// if auto template is enabled add info about Pod to array
				if ( 1 == pods_v( 'pfat_enable', $pod_data['options'] ) ) {
					// check if pfat_single and pfat_archive are set
					$single           = pods_v( 'pfat_single', $pod_data['options'], false, true );
					$archive          = pods_v( 'pfat_archive', $pod_data['options'], false, true );
					$single_append    = pods_v( 'pfat_append_single', $pod_data['options'], true, true );
					$archive_append   = pods_v( 'pfat_append_archive', $pod_data['options'], true, true );
					$single_filter    = pods_v( 'pfat_filter_single', $pod_data['options'], 'the_content', true );
					$archive_filter   = pods_v( 'pfat_filter_archive', $pod_data['options'], 'the_content', true );
					$run_outside_loop = pods_v( 'pfat_run_outside_loop', $pod_data['options'], false, true );
					$type             = pods_v( 'type', $pod_data, false, true );
					// check if it's a post type that has an archive
					if ( $type === 'post_type' && $the_pod !== 'post' || $the_pod !== 'page' ) {
						$has_archive = pods_v( 'has_archive', $pod_data['options'], false, true );
					} else {
						$has_archive = true;
					}

					if ( empty( $single_filter ) ) {
						$single_filter = 'the_content';
					}

					if ( empty( $archive_filter ) ) {
						$archive_filter = 'the_content';
					}

					// build output array
					$auto_pods[ $the_pod ] = array(
						'name'             => $the_pod,
						'label'            => $the_pod_label,
						'single'           => $single,
						'archive'          => $archive,
						'single_append'    => $single_append,
						'archive_append'   => $archive_append,
						'has_archive'      => $has_archive,
						'single_filter'    => $single_filter,
						'archive_filter'   => $archive_filter,
						'run_outside_loop' => $run_outside_loop,
						'type'             => $type,
					);
				}//end if
			}//end foreach

			// cache the results
			pods_transient_set( $key, $auto_pods );
		}//end if

		/**
		 * Add to or change settings.
		 *
		 * Use this filter to change or add to the settings set in the back-end for this plugin. Has no effect if 'pods_pfat_auto_pods_override' filter is being used.
		 *
		 * @param array $auto_pods Array of parameters to use instead of those from settings.
		 *
		 * @return array Settings arrays for each post type.
		 *
		 * @since 2.4.5
		 */
		$auto_pods = apply_filters( 'pods_pfat_auto_pods', $auto_pods );

		return $auto_pods;

	}