/** * Outputs links after bulk plugin installation is complete. * * @since 2.2.0 */ public function bulk_footer() { /** Serve up the string to say installations (and possibly activations) are complete */ parent::bulk_footer(); /** Flush plugins cache so we can make sure that the installed plugins list is always up to date */ wp_cache_flush(); /** Display message based on if all plugins are now active or not */ $complete = array(); foreach (TGM_Plugin_Activation::$instance->plugins as $plugin) { if (!is_plugin_active($plugin['file_path'])) { echo '<p><a href="' . add_query_arg('page', TGM_Plugin_Activation::$instance->menu, admin_url(TGM_Plugin_Activation::$instance->parent_url_slug)) . '" title="' . esc_attr(TGM_Plugin_Activation::$instance->strings['return']) . '" target="_parent">' . __(TGM_Plugin_Activation::$instance->strings['return'], TGM_Plugin_Activation::$instance->domain) . '</a></p>'; $complete[] = $plugin; break; } else { $complete[] = ''; } } /** Filter out any empty entries */ $complete = array_filter($complete); /** All plugins are active, so we display the complete string and hide the menu to protect users */ if (empty($complete)) { echo '<p>' . sprintf(TGM_Plugin_Activation::$instance->strings['complete'], '<a href="' . admin_url() . '" title="' . __('Return to the Dashboard', TGM_Plugin_Activation::$instance->domain) . '">' . __('Return to the Dashboard', TGM_Plugin_Activation::$instance->domain) . '</a>') . '</p>'; echo '<style type="text/css">#adminmenu .wp-submenu li.current { display: none !important; }</style>'; } }