*/ public static function all() { $raw = apply_filters( 'atoz_backup_sources', array() ); $out = array(); foreach ( (array) $raw as $s ) { if ( empty( $s['slug'] ) || empty( $s['export'] ) || ! is_callable( $s['export'] ) ) { continue; } $slug = sanitize_key( $s['slug'] ); $out[ $slug ] = array( 'slug' => $slug, 'label' => isset( $s['label'] ) ? (string) $s['label'] : $slug, 'export' => $s['export'], 'import' => ( ! empty( $s['import'] ) && is_callable( $s['import'] ) ) ? $s['import'] : null, ); } return $out; } /** * A single source by slug. * * @param string $slug Slug. * @return array|null */ public static function get( $slug ) { $all = self::all(); return $all[ sanitize_key( $slug ) ] ?? null; } }