* @global int $paged
* @global string $type
* @global string $term
- * @global string $wp_version
*/
public function prepare_items() {
include( ABSPATH . 'wp-admin/includes/plugin-install.php' );
if ( 'search' === $tab ) {
$tabs['search'] = __( 'Search Results' );
}
- if ( $tab === 'beta' || false !== strpos( $GLOBALS['wp_version'], '-' ) ) {
+ if ( $tab === 'beta' || false !== strpos( get_bloginfo( 'version' ), '-' ) ) {
$tabs['beta'] = _x( 'Beta Testing', 'Plugin Installer' );
}
$tabs['featured'] = _x( 'Featured', 'Plugin Installer' );
$nonmenu_tabs = array( 'plugin-information' ); // Valid actions to perform which do not have a Menu item.
/**
- * Filter the tabs shown on the Plugin Install screen.
+ * Filters the tabs shown on the Plugin Install screen.
*
* @since 2.7.0
*
$tabs = apply_filters( 'install_plugins_tabs', $tabs );
/**
- * Filter tabs not associated with a menu item on the Plugin Install screen.
+ * Filters tabs not associated with a menu item on the Plugin Install screen.
*
* @since 2.7.0
*
'active_installs' => true
),
// Send the locale and installed plugin slugs to the API so it can provide context-sensitive results.
- 'locale' => get_locale(),
+ 'locale' => get_user_locale(),
'installed_plugins' => $this->get_installed_plugin_slugs(),
);
}
/**
- * Filter API request arguments for each Plugin Install screen tab.
+ * Filters API request arguments for each Plugin Install screen tab.
*
* The dynamic portion of the hook name, `$tab`, refers to the plugin install tabs.
* Default tabs include 'featured', 'popular', 'recommended', 'favorites', and 'upload'.
*
* @param array|bool $args Plugin Install API arguments.
*/
- $args = apply_filters( "install_plugins_table_api_args_$tab", $args );
+ $args = apply_filters( "install_plugins_table_api_args_{$tab}", $args );
if ( !$args )
return;
?>
</ul>
- <?php install_search_form( isset( $views['plugin-install-search'] ) ); ?>
+ <?php install_search_form(); ?>
</div>
<?php
}
}
}
- /**
- * @global string $wp_version
- */
public function display_rows() {
$plugins_allowedtags = array(
'a' => array( 'href' => array(),'title' => array(), 'target' => array() ),
/* translators: 1: Plugin name and version. */
$action_links[] = '<a class="install-now button" data-slug="' . esc_attr( $plugin['slug'] ) . '" href="' . esc_url( $status['url'] ) . '" aria-label="' . esc_attr( sprintf( __( 'Install %s now' ), $name ) ) . '" data-name="' . esc_attr( $name ) . '">' . __( 'Install Now' ) . '</a>';
}
-
break;
+
case 'update_available':
if ( $status['url'] ) {
/* translators: 1: Plugin name and version */
$action_links[] = '<a class="update-now button aria-button-if-js" data-plugin="' . esc_attr( $status['file'] ) . '" data-slug="' . esc_attr( $plugin['slug'] ) . '" href="' . esc_url( $status['url'] ) . '" aria-label="' . esc_attr( sprintf( __( 'Update %s now' ), $name ) ) . '" data-name="' . esc_attr( $name ) . '">' . __( 'Update Now' ) . '</a>';
}
-
break;
+
case 'latest_installed':
case 'newer_installed':
- $action_links[] = '<span class="button button-disabled">' . _x( 'Installed', 'plugin' ) . '</span>';
+ if ( is_plugin_active( $status['file'] ) ) {
+ $action_links[] = '<button type="button" class="button button-disabled" disabled="disabled">' . _x( 'Active', 'plugin' ) . '</button>';
+ } elseif ( current_user_can( 'activate_plugins' ) ) {
+ $button_text = __( 'Activate' );
+ /* translators: %s: Plugin name */
+ $button_label = _x( 'Activate %s', 'plugin' );
+ $activate_url = add_query_arg( array(
+ '_wpnonce' => wp_create_nonce( 'activate-plugin_' . $status['file'] ),
+ 'action' => 'activate',
+ 'plugin' => $status['file'],
+ ), network_admin_url( 'plugins.php' ) );
+
+ if ( is_network_admin() ) {
+ $button_text = __( 'Network Activate' );
+ /* translators: %s: Plugin name */
+ $button_label = _x( 'Network Activate %s', 'plugin' );
+ $activate_url = add_query_arg( array( 'networkwide' => 1 ), $activate_url );
+ }
+
+ $action_links[] = sprintf(
+ '<a href="%1$s" class="button activate-now" aria-label="%2$s">%3$s</a>',
+ esc_url( $activate_url ),
+ esc_attr( sprintf( $button_label, $plugin['name'] ) ),
+ $button_text
+ );
+ } else {
+ $action_links[] = '<button type="button" class="button button-disabled" disabled="disabled">' . _x( 'Installed', 'plugin' ) . '</button>';
+ }
break;
}
}
}
/**
- * Filter the install action links for a plugin.
+ * Filters the install action links for a plugin.
*
* @since 2.7.0
*
<?php
if ( $plugin['active_installs'] >= 1000000 ) {
$active_installs_text = _x( '1+ Million', 'Active plugin installs' );
+ } elseif ( 0 == $plugin['active_installs'] ) {
+ $active_installs_text = _x( 'Less Than 10', 'Active plugin installs' );
} else {
$active_installs_text = number_format_i18n( $plugin['active_installs'] ) . '+';
}
</div>
<div class="column-compatibility">
<?php
- if ( ! empty( $plugin['tested'] ) && version_compare( substr( $GLOBALS['wp_version'], 0, strlen( $plugin['tested'] ) ), $plugin['tested'], '>' ) ) {
+ $wp_version = get_bloginfo( 'version' );
+
+ if ( ! empty( $plugin['tested'] ) && version_compare( substr( $wp_version, 0, strlen( $plugin['tested'] ) ), $plugin['tested'], '>' ) ) {
echo '<span class="compatibility-untested">' . __( 'Untested with your version of WordPress' ) . '</span>';
- } elseif ( ! empty( $plugin['requires'] ) && version_compare( substr( $GLOBALS['wp_version'], 0, strlen( $plugin['requires'] ) ), $plugin['requires'], '<' ) ) {
+ } elseif ( ! empty( $plugin['requires'] ) && version_compare( substr( $wp_version, 0, strlen( $plugin['requires'] ) ), $plugin['requires'], '<' ) ) {
echo '<span class="compatibility-incompatible">' . __( '<strong>Incompatible</strong> with your version of WordPress' ) . '</span>';
} else {
echo '<span class="compatibility-compatible">' . __( '<strong>Compatible</strong> with your version of WordPress' ) . '</span>';