/** * process bulk actions for module/plugin * @param array $plugins * @param $action action bulk */ public function process_bulk_action($plugins = array(), $action = '') { // Grab plugin data from $_POST. #$plugins = isset( $_POST['plugin'] ) ? (array) $_POST['plugin'] : array(); $plugins_to_activate = array(); // Split plugin value into array with plugin file path, plugin source and plugin name. $plugins_need2activate = array(); if (is_array($plugins)) { foreach ($plugins as $i => $plugin) { $_plugin = explode(',', $plugin); if (isset(HW_TGM_Module_Activation::get_instance()->plugins[$_plugin[0]])) { $module_info = HW_TGM_Module_Activation::get_instance()->plugins[$_plugin[0]]; $active = array(); //local downloaded plugins if (!empty($module_info['require_wp_plugin']) && file_exists(WP_PLUGIN_DIR . '/' . trim($module_info['require_wp_plugin'], '/'))) { $active[] = $module_info['require_wp_plugin']; $active[] = 'repo'; $plugin_data = get_plugin_data(WP_PLUGIN_DIR . '/' . trim($module_info['require_wp_plugin'], '/')); $active[] = $plugin_data['Name']; } if (!empty($module_info['require_module'])) { //check module that require an other $require_module = $module_info['require_module']; if (!hw_is_active_module($require_module)) { hw_inline_msg("Xin lỗi, module `{$module_info['name']}` yêu cầu cài trước module " . $require_module); $plugins_to_activate[] = array($module_info['slug'], $module_info['name']); } } if (!empty($module_info['require_wp_plugin']) && !is_plugin_active($module_info['require_wp_plugin']) && !empty($active)) { $plugins_need2activate[] = $active; } } $plugins_to_activate[] = $_plugin; } } foreach ($plugins_to_activate as $i => $array) { if (isset($array[1]) && !preg_match('|.php$|', $array[1])) { unset($plugins_to_activate[$i]); } } // Return early if there are no plugins to activate. if (empty($plugins_to_activate)) { return; } //activate plugins require for the your modules if (count($plugins_need2activate)) { $this->hw_activate_plugins($plugins_need2activate); } if ('tgmpa-bulk-activate' === $action) { // Now we are good to go - let's start activating plugins. hw_activate_modules($plugins_to_activate); } elseif ('tgmpa-bulk-deactivate' === $action) { //deactive module hw_deactivate_modules($plugins_to_activate); } // Update recently activated plugins option. $recent = (array) get_option('recently_activated'); foreach ($plugins as $plugin => $time) { if (isset($recent[$plugin])) { unset($recent[$plugin]); } } update_option('recently_activated', $recent); }
if (isset($_data['from'])) { $url .= '&from=' . urlencode(stripslashes($_data['from'])); } $type = 'web'; //Install plugin type, From Web or an Upload. $upgrader = new HW_Module_Upgrader(new HW_Module_Installer_Skin(compact('title', 'url', 'nonce', 'plugin', 'api')), new HW_Modules_Packages_Upgrader($modules_package)); if (!empty($api->download_link)) { $upgrader->install('http://localhost/wp2/wp-content/plugins/hw-hoangweb/data/uploads/test-module.zip'); } } elseif ($action == 'activate-module') { if (!current_user_can('update_plugins')) { wp_die(__('You do not have sufficient permissions to update plugins for this site.')); } check_admin_referer('activate-module_' . $plugin); wp_redirect(admin_url('hw-update.php?action=activate-plugin&failure=true&plugin=' . urlencode($plugin) . '&_wpnonce=' . $_data['_wpnonce'])); hw_activate_modules($plugin); wp_redirect(admin_url('hw-update.php?action=activate-plugin&success=true&plugin=' . urlencode($plugin) . '&_wpnonce=' . $_data['_wpnonce'])); die; } elseif ('upload-module' == $action) { if (!current_user_can('upload_plugins')) { wp_die(__('You do not have sufficient permissions to install plugins on this site.')); } check_admin_referer('module-upload'); $file_upload = new HW_File_Upload_Upgrader($_data['package']); $title = sprintf(__('Installing Module from uploaded file: %s'), esc_html(basename($_data['package']))); $nonce = 'module-upload'; $url = add_query_arg(array('file' => base64_encode($_data['package'])), 'hw-update.php?action=upload-module'); $type = 'upload'; //Install plugin type, From Web or an Upload. $upgrader = new HW_Module_Upgrader(new HW_Module_Installer_Skin(compact('type', 'title', 'nonce', 'url')), new HW_Modules_Packages_Upgrader($modules_package)); $result = $upgrader->install($_data['package']);