/** * Print plugin information after WP installed a plugin * * @param $a * @param $b * @param $result */ function learn_press_upgrader_post_install($a, $b, $result) { if (!empty($_REQUEST['learnpress']) && $_REQUEST['learnpress'] == 'active') { if (is_wp_error($result)) { } else { $slug = $_REQUEST['plugin']; $plugin = learn_press_plugin_basename_from_slug($slug); activate_plugin($plugin, false, is_network_admin()); // ensure that plugin is enabled $is_activate = is_plugin_active($plugin); $result['status'] = $is_activate ? 'activate' : 'deactivate'; $result['status_text'] = $is_activate ? __('Enabled', 'learn_press') : __('Disabled', 'learn_press'); } learn_press_send_json($result); } }
public function display_rows() { $plugins_allowedtags = array('a' => array('href' => array(), 'title' => array(), 'target' => array()), 'abbr' => array('title' => array()), 'acronym' => array('title' => array()), 'code' => array(), 'pre' => array(), 'em' => array(), 'strong' => array(), 'ul' => array(), 'ol' => array(), 'li' => array(), 'p' => array(), 'br' => array()); $plugins_group_titles = array('Performance' => _x('Performance', 'Plugin installer group title'), 'Social' => _x('Social', 'Plugin installer group title'), 'Tools' => _x('Tools', 'Plugin installer group title')); $tab = !empty($_REQUEST['tab']) ? $_REQUEST['tab'] : ''; $group = null; foreach ((array) $this->items as $kk => $plugin) { if (is_object($plugin)) { $plugin = (array) $plugin; } // Display the group heading if there is one if (isset($plugin['group']) && $plugin['group'] != $group) { if (isset($this->groups[$plugin['group']])) { $group_name = $this->groups[$plugin['group']]; if (isset($plugins_group_titles[$group_name])) { $group_name = $plugins_group_titles[$group_name]; } } else { $group_name = $plugin['group']; } // Starting a new group, close off the divs of the last one if (!empty($group)) { echo '</div></div>'; } echo '<div class="plugin-group"><h3>' . esc_html($group_name) . '</h3>'; // needs an extra wrapping div for nth-child selectors to work echo '<div class="plugin-items">'; $group = $plugin['group']; } $title = wp_kses($plugin['name'], $plugins_allowedtags); // Remove any HTML from the description. $description = strip_tags($plugin['short_description']); $version = wp_kses($plugin['version'], $plugins_allowedtags); $name = strip_tags($title . ' ' . $version); $author = wp_kses($plugin['author'], $plugins_allowedtags); if (!empty($author)) { $author = ' <cite>' . sprintf(__('By %s'), $author) . '</cite>'; } $action_links = array(); $plugin_file = learn_press_plugin_basename_from_slug($plugin['slug']); if (current_user_can('install_plugins') || current_user_can('update_plugins')) { if ($this->test_mode) { $status = array('status' => file_exists(WP_PLUGIN_DIR . '/' . $plugin['slug']) ? 'newer_installed' : 'install', 'url' => admin_url('admin-ajax.php?action=learnpress_plugin_install&plugin=' . $plugin['slug'])); } else { $status = install_plugin_install_status($plugin); } switch ($status['status']) { case 'install': if ($status['url']) { /* translators: 1: Plugin name and version. */ $action_links[] = '<a class="install-now button thimpress" data-action="install-now" data-slug="' . esc_attr($plugin['slug']) . '" href="' . esc_url($status['url']) . '&learnpress=active" aria-label="' . esc_attr(sprintf(__('Install %s now'), $name)) . '" data-name="' . esc_attr($name) . '">' . __('Install and Active') . '</a>'; } break; case 'update_available': if ($status['url']) { /* translators: 1: Plugin name and version */ $action_links[] = '<a class="update-now button thimpress" data-action="update-now" data-plugin="' . esc_attr($status['file']) . '" data-slug="' . esc_attr($plugin['slug']) . '" href="' . esc_url($status['url']) . '&learnpress=active" aria-label="' . esc_attr(sprintf(__('Update %s now'), $name)) . '" data-name="' . esc_attr($name) . '">' . __('Update Now') . '</a>'; } break; case 'latest_installed': case 'newer_installed': if (is_plugin_active($plugin_file)) { $action_links[] = '<span class="button button-disabled" title="">' . _x('Enabled', 'plugin') . '</span>'; } else { $action_links[] = '<a class="active-now button thimpress" data-action="active-now" href="' . wp_nonce_url('plugins.php?action=activate&learnpress=active&plugin=' . $plugin_file, 'activate-plugin_' . $plugin_file) . '" >' . _x('Enable', 'plugin') . '</a>'; } break; } } /*$details_link = self_admin_url( 'plugin-install.php?tab=plugin-information&plugin=' . $plugin['slug'] . '&TB_iframe=true&width=600&height=550' ); $action_links[] = '<a href="' . esc_url( $details_link ) . '" class="thickbox" aria-label="' . esc_attr( sprintf( __( 'More information about %s' ), $name ) ) . '" data-title="' . esc_attr( $name ) . '">' . __( 'More Details' ) . '</a>'; */ if (!empty($plugin['icons']['svg'])) { $plugin_icon_url = $plugin['icons']['svg']; } elseif (!empty($plugin['icons']['2x'])) { $plugin_icon_url = $plugin['icons']['2x']; } elseif (!empty($plugin['icons']['1x'])) { $plugin_icon_url = $plugin['icons']['1x']; } else { $plugin_icon_url = $plugin['icons']['default']; } /** * Filter the install action links for a plugin. * * @since 2.7.0 * * @param array $action_links An array of plugin action hyperlinks. Defaults are links to Details and Install Now. * @param array $plugin The plugin currently being listed. */ $action_links = apply_filters('plugin_install_action_links', $action_links, $plugin); $date_format = __('M j, Y @ H:i'); $last_updated_timestamp = strtotime($plugin['last_updated']); $details_link = ""; $message = null; if ('bundle_activate' == $tab) { if (learn_press_is_plugin_install($plugin_file)) { if (is_plugin_active($plugin_file)) { $message = sprintf('<span class="addon-status enabled">%s</span>', __('Enabled', 'learn_press')); } else { $message = sprintf('<span class="addon-status disabled">%s</span>', __('Disabled', 'learn_press')); } } else { $message = sprintf('<span class="addon-status not_install">%s</span>', __('Not Install', 'learn_press')); } } ?> <div class="plugin-card plugin-card-<?php echo sanitize_html_class($plugin['slug']); ?> "> <div class="plugin-card-top"> <a href="<?php echo esc_url($details_link); ?> " class="thickbox plugin-icon"><img src="<?php echo esc_attr($plugin_icon_url); ?> " /></a> <div class="name column-name"> <h4><a href="<?php echo esc_url($details_link); ?> " class="thickbox"><?php echo $title; ?> </a></h4> </div> <div class="action-links"> <?php if ($action_links) { echo '<ul class="plugin-action-buttons"><li>' . implode('</li><li>', $action_links) . '</li></ul>'; } //echo $message; ?> </div> <div class="desc column-description"> <p><?php echo $description; ?> </p> <p class="authors"><?php echo $author; ?> </p> </div> </div> <div class="plugin-card-bottom"> <div class="vers column-rating"> <?php wp_star_rating(array('rating' => $plugin['rating'], 'type' => 'percent', 'number' => $plugin['num_ratings'])); ?> <span class="num-ratings">(<?php echo number_format_i18n($plugin['num_ratings']); ?> )</span> </div> <div class="column-updated"> <strong><?php _e('Last Updated:'); ?> </strong> <span title="<?php echo esc_attr(date_i18n($date_format, $last_updated_timestamp)); ?> "> <?php printf(__('%s ago'), human_time_diff($last_updated_timestamp)); ?> </span> </div> <div class="column-downloaded"> <?php if ($plugin['active_installs'] >= 1000000) { $active_installs_text = _x('1+ Million', 'Active plugin installs'); } else { $active_installs_text = number_format_i18n($plugin['active_installs']) . '+'; } printf(__('%s Active Installs'), $active_installs_text); ?> </div> <div class="column-compatibility"> <?php if (!empty($plugin['tested']) && version_compare(substr($GLOBALS['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'], '<')) { 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>'; } ?> </div> </div> </div> <?php } // Close off the group divs of the last one if (!empty($group)) { echo '</div></div>'; } }