' . esc_html__( 'See your plugins’ and themes’ rank, installs, downloads, rating and known vulnerabilities on WordPress.org, here on your dashboard.', 'trackpluse' ) . '

'; echo '

' . esc_html__( 'Choose your plugins', 'trackpluse' ) . '

'; return; } $settings = TrackPluse_Settings::get(); $stats = TrackPluse_Api::stats( $settings['author'], $settings['plugins'], $settings['themes'] ); if ( is_wp_error( $stats ) ) { echo '

' . esc_html( $stats->get_error_message() ) . '

'; self::footer(); return; } if ( array() === $stats['data'] ) { echo '

' . esc_html__( 'TrackWP has no figures for these yet. Check the username and slugs in the settings.', 'trackpluse' ) . '

'; self::footer(); return; } TrackPluse_Listing::summary( $stats['data'] ); echo ''; $more = count( $stats['data'] ) - $settings['shown']; if ( $more > 0 ) { // A username's full list is its free author page; otherwise the catalog. $all = '' !== $settings['author'] ? TrackPluse_Api::base() . '/authors/' . rawurlencode( $settings['author'] ) : TrackPluse_Api::base() . '/plugins'; echo '

'; echo esc_html( sprintf( /* translators: %s: number of plugins and themes not shown. */ _n( 'And %s more', 'And %s more', $more, 'trackpluse' ), number_format_i18n( $more ) ) ); echo ' ' . esc_html__( 'See them all on TrackWP', 'trackpluse' ) . ' ' . esc_html__( '(opens in a new tab)', 'trackpluse' ) . '

'; } self::footer(); } /** * Where the figures come from, and the links. */ private static function footer() { ?>