public function showCustomPluginRow($file, $plugin_data) { if (!is_network_admin() && is_multisite()) { return; } $messages = apply_filters('factory_plugin_row_' . $this->pluginName, array(), $file, $plugin_data); // if nothign to show then, use default handle if (count($messages) == 0) { wp_plugin_update_row($file, $plugin_data); return; } $wp_list_table = _get_list_table('WP_Plugins_List_Table'); foreach ($messages as $message) { echo '<tr class="plugin-update-tr"><td colspan="' . $wp_list_table->get_column_count() . '" class="plugin-update colspanchange"><div class="update-message">'; echo $message; echo '</div></td></tr>'; } }
if (!empty($plugin_data['AuthorURI'])) { $author = '<a href="' . $plugin_data['AuthorURI'] . '">' . $plugin_data['Author'] . '</a>'; } $plugin_meta[] = sprintf(__('By %s'), $author); } // Details link using API info, if available if (isset($plugin_data['slug']) && current_user_can('install_plugins')) { $plugin_meta[] = sprintf('<a href="%s" class="thickbox" aria-label="%s" data-title="%s">%s</a>', esc_url(network_admin_url('plugin-install.php?tab=plugin-information&plugin=' . $plugin_data['slug'] . '&TB_iframe=true&width=600&height=550')), esc_attr(sprintf(__('More information about %s'), $plugin_name)), esc_attr($plugin_name), __('View details')); } elseif (!empty($plugin_data['PluginURI'])) { $plugin_meta[] = sprintf('<a href="%s">%s</a>', esc_url($plugin_data['PluginURI']), __('Visit plugin site')); } $plugin_meta = apply_filters('plugin_row_meta', $plugin_meta, $plugin_file, $plugin_data, $status); echo implode(' | ', $plugin_meta); ?> </div> </td> </tr> <?php ob_start(); wp_plugin_update_row($plugin_file, $plugin_data); $row = ob_get_contents(); ob_end_clean(); echo str_replace('colspan="0"', 'colspan="4"', $row); } ?> </tbody> </table> <?php require_once dirname(__FILE__) . "/admin_footer.php"; wp_print_request_filesystem_credentials_modal();