public static function update_plugin() { if (!current_user_can('upload_plugins')) { wp_die(esc_html__('Sorry, you are not allowed to install plugins on this site.')); } check_admin_referer('plugin-upload'); $file_upload = new File_Upload_Upgrader('pluginzip', 'package'); $title = __('Upload Plugin'); $parent_file = 'plugins.php'; $submenu_file = 'plugin-install.php'; require_once ABSPATH . 'wp-admin/admin-header.php'; $title = sprintf(__('Installing Plugin from uploaded file: %s'), esc_html(basename($file_upload->filename))); $nonce = 'plugin-upload'; $url = add_query_arg(array('package' => $file_upload->id), 'update.php?action=upload-plugin'); $type = 'upload'; // Install plugin type, From Web or an Upload. require_once dirname(__FILE__) . '/custom-plugin-upgrader.php'; $upgrader = new CAJ_ETPU_Plugin_Upgrader(new Plugin_Installer_Skin(compact('type', 'title', 'nonce', 'url'))); $result = $upgrader->install($file_upload->package); if ($result || is_wp_error($result)) { $file_upload->cleanup(); } include ABSPATH . 'wp-admin/admin-footer.php'; exit; }
/** * Custom Iconfont update. */ public function upload_iconfont() { include_once 'class-ac-iconfont-upgrader.php'; include_once 'class-ac-iconfont-upgrader-skin.php'; if (isset($_GET['action'])) { $action = isset($_REQUEST['action']) ? $_REQUEST['action'] : ''; if ('upload-iconfont' == $action) { if (!current_user_can('manage_axiscomposer')) { wp_die(__('You do not have sufficient permissions to install iconfonts on this site.', 'axiscomposer-iconfont')); } check_admin_referer('axiscomposer-iconfont-upload'); $file_upload = new File_Upload_Upgrader('iconfontzip', 'package'); $title = __('Upload Iconfont', 'axiscomposer-iconfont'); $parent_file = 'axiscomposer-iconfont-new'; $submenu_file = 'admin.php?page=axiscomposer-iconfont'; require_once ABSPATH . 'wp-admin/admin-header.php'; $title = sprintf(__('Installing Iconfont from uploaded file: %s', 'axiscomposer-iconfont'), esc_html(basename($file_upload->filename))); $nonce = 'axiscomposer-iconfont-upload'; $url = add_query_arg(array('package' => $file_upload->id), 'update.php?action=upload-iconfont'); $type = 'upload'; //Install plugin type, From Web or an Upload. $upgrader = new AC_Iconfont_Upgrader(new WP_Upgrader_Skin(compact('type', 'title', 'nonce', 'url'))); $result = $upgrader->install($file_upload->package); if ($result || is_wp_error($result)) { $file_upload->cleanup(); } include ABSPATH . 'wp-admin/admin-footer.php'; } } }
public function save() { global $thesis; if ($this->args['file_type'] === 'image') { $url = "admin-post.php?action=" . $this->args['window_action'] . "&window_nonce=" . wp_create_nonce('thesis_upload_iframe'); if (is_array($result = $thesis->api->save_image('thesis_file', substr($this->args['folder'], 0, 7), (int) $this->args['post_id']))) { foreach ($result as $p => $value) { $url .= "&{$p}=" . ($p == 'url' ? urlencode(esc_url_raw($value)) : $value); } } if ($this->args['save_callback'] && is_callable($this->args['save_callback'])) { call_user_func_array($this->args['save_callback'], array($result, 'delete' => !empty($_POST['delete_image']) ? true : false)); } wp_redirect(admin_url($url)); exit; } elseif ($this->args['file_type'] === 'zip' && in_array($this->args['folder'], array('skin', 'package', 'box'))) { // new skin/box/package. Unpack and send to the right directory define('IFRAME_REQUEST', true); require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; require_once THESIS_API . '/upload-ext.php'; $upload = new File_Upload_Upgrader('thesis_file', 'object'); add_action('admin_head', array($this, 'admin_css')); add_action('admin_enqueue_scripts', array($this, 'admin_scripts')); require_once ABSPATH . 'wp-admin/admin-header.php'; $title = sprintf(__('Installing %s from uploaded file: %s'), ucwords($this->args['folder']), basename($upload->filename)); $nonce = $this->args['nonce']; $url = add_query_arg(array('object' => $upload->id), 'update.php?action=' . $this->args['action'] . ''); $type = 'upload'; $upgrader = new thesis_uploader(new thesis_upload_skin(compact('type', 'title', 'nonce', 'url'))); $result = $upgrader->install($upload->package, $this->args, $upload->id); if ($result || is_wp_error($result)) { $upload->cleanup(); } include ABSPATH . 'wp-admin/admin-footer.php'; } elseif ($this->args['file_type'] === 'txt') { $url = "admin-post.php?action=" . $this->args['window_action'] . "&window_nonce=" . wp_create_nonce('thesis_upload_iframe'); if ($thesis->skins->import('thesis_file', $this->args['nonce'])) { wp_redirect("{$url}&import=true"); } else { wp_redirect("{$url}&import=false"); } exit; } }
check_admin_referer('theme-upload'); $file_upload = new File_Upload_Upgrader('themezip', 'package'); wp_enqueue_script('customize-loader'); $title = __('Upload Theme'); $parent_file = 'themes.php'; $submenu_file = 'theme-install.php'; require_once ABSPATH . 'wp-admin/admin-header.php'; $title = sprintf(__('Installing Theme from uploaded file: %s'), esc_html(basename($file_upload->filename))); $nonce = 'theme-upload'; $url = add_query_arg(array('package' => $file_upload->id), 'update.php?action=upload-theme'); $type = 'upload'; //Install plugin type, From Web or an Upload. $upgrader = new Theme_Upgrader(new Theme_Installer_Skin(compact('type', 'title', 'nonce', 'url'))); $result = $upgrader->install($file_upload->package); if ($result || is_wp_error($result)) { $file_upload->cleanup(); } include ABSPATH . 'wp-admin/admin-footer.php'; } else { /** * Fires when a custom plugin or theme update request is received. * * The dynamic portion of the hook name, `$action`, refers to the action * provided in the request for wp-admin/update.php. Can be used to * provide custom update functionality for themes and plugins. * * @since 2.8.0 */ do_action("update-custom_{$action}"); } }
/** * Upload lens request submission * * Adaptation of WordPress core theme upload and install routines for * uploading and * installing lenses via a ZIP file upload. * * @uses wp_verify_nonce() * @uses wp_die() * @uses wp_enqueue_style() * @uses add_query_tag() * @uses slidedeck2_action() * @uses SlideDeckLens::copy_inc() * @uses File_Upload_Upgrader * @uses SlideDeck_Lens_Installer_Skin * @uses SlideDeck_Lens_Upload * @uses SlideDeck_Lens_Upload::install() * @uses is_wp_error() * @uses File_Upload_Upgrader::cleanup() */ function upload_lens() { if (!current_user_can($this->roles['upload_lens'])) { wp_die(__('You do not have sufficient permissions to install SlideDeck lenses on this site.', $this->namespace)); } check_admin_referer("{$this->namespace}-upload-lens"); // Load the SlideDeck Lens Upload Classes if (!class_exists('SlideDeckLensUpload')) { include SLIDEDECK2_DIRNAME . '/classes/slidedeck-lens-upload.php'; } $file_upload = new File_Upload_Upgrader('slidedecklenszip', 'package'); $title = __("Upload SlideDeck Lens", $this->namespace); $parent_file = ""; $submenu_file = ""; wp_enqueue_style("{$this->namespace}-admin"); wp_enqueue_style("{$this->namespace}-admin-lite"); require_once ABSPATH . 'wp-admin/admin-header.php'; $title = sprintf(__("Installing SlideDeck Lens from uploaded file: %s", 'slidedeck'), basename($file_upload->filename)); $nonce = "{$this->namespace}-upload-lens"; $url = add_query_arg(array('package' => $file_upload->id), 'update.php?action=upload-slidedeck-lens'); $type = 'upload'; $lens_dirname = preg_replace("/\\.([a-zA-Z0-9]+)\$/", "", basename($file_upload->filename)); $upgrader = new SlideDeck_Lens_Upload(new SlideDeck_Lens_Installer_Skin(compact('type', 'title', 'lens_dirname', 'nonce', 'url'))); $result = $upgrader->install($file_upload->package); if ($result || is_wp_error($result)) { $file_upload->cleanup(); } include ABSPATH . 'wp-admin/admin-footer.php'; }
public static function settings_panel() { if (isset($_GET['wpak_action']) && $_GET['wpak_action'] == 'upload-theme') { if (!current_user_can('upload_plugins') && !current_user_can('wpak_edit_apps')) { wp_die(__('You do not have sufficient permissions to install WP AppKit themes on this site.', WpAppKit::i18n_domain)); } check_admin_referer('wpak-theme-upload'); include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; $file_upload = new File_Upload_Upgrader('themezip', 'package'); $file_type = wp_check_filetype($file_upload->filename); if ($file_type['ext'] == 'zip' && $file_type['type'] == 'application/zip') { $title = sprintf(__('Installing WP AppKit from uploaded file: %s', WpAppKit::i18n_domain), esc_html(basename($file_upload->filename))); $nonce = 'wpak-theme-upload'; $url = add_query_arg(array('package' => $file_upload->id)); // A nonce is passed to WP_Upgrader_Skin class, so wp_nonce_url() is called and url is escaped there... $upgrader = new WP_Upgrader(new WP_Upgrader_Skin(compact('title', 'nonce', 'url'))); $destination_folder_name = basename(sanitize_file_name($file_upload->filename), ".zip"); $result = $upgrader->run(array('package' => $file_upload->package, 'destination' => WpakThemes::get_themes_directory() . '/' . $destination_folder_name, 'clear_destination' => true, 'clear_working' => true, 'hook_extra' => array())); if ($result || is_wp_error($result)) { $file_upload->cleanup(); } if (!is_wp_error($result)) { echo sprintf(__("WP AppKit theme '%s' installed successfully!", WpAppKit::i18n_domain), $destination_folder_name); } else { _e('An error occured', WpAppKit::i18n_domain); echo ' : ' . $result->get_error_message(); } echo '<br/><br/><a href="' . esc_url(remove_query_arg('wpak_action')) . '">' . __('Back to theme upload form', WpAppKit::i18n_domain) . '</a>'; echo '<br/><br/><a href="' . admin_url() . '/edit.php?post_type=wpak_apps">' . __('Go to my WP AppKit app list', WpAppKit::i18n_domain) . '</a>'; } else { _e("Uploaded file must be a valid zip file", WpAppKit::i18n_domain); } } else { ?> <div class="wrap" id="wpak-settings"> <h2><?php _e('WP AppKit Themes upload', WpAppKit::i18n_domain); ?> </h2> <?php if (!empty($result['message'])) { ?> <div class="<?php echo $result['type']; ?> " ><p><?php echo $result['message']; ?> </p></div> <?php } ?> <div class="upload-plugin"> <p class="install-help"><?php _e('If you have a WP AppKit theme in a .zip format, you may install it by uploading it here.'); ?> </p> <form method="post" enctype="multipart/form-data" class="wp-upload-form" action="<?php echo esc_url(add_query_arg(array('wpak_action' => 'upload-theme'))); ?> "> <?php wp_nonce_field('wpak-theme-upload'); ?> <label class="screen-reader-text" for="themezip"><?php _e('WP AppKit Theme zip file', WpAppKit::i18n_domain); ?> </label> <input type="file" id="themezip" name="themezip" /> <?php submit_button(__('Install Now'), 'button', 'install-theme-submit', false); ?> </form> </div> </div> <?php } }
function sp_do_theme_upload() { if (!sp_current_user_can('SPF Manage Themes')) { spa_etext('Access denied - you do not have permission'); die; } check_admin_referer('forum-theme_upload', 'forum-theme_upload'); include_once SPBOOT . 'admin/spa-admin-updater-class.php'; $file_upload = new File_Upload_Upgrader('themezip', 'package'); require_once ABSPATH . 'wp-admin/admin-header.php'; $title = sprintf(spa_text('Uploading SP Theme from uploaded file: %s'), basename($file_upload->filename)); $nonce = 'theme-upload'; $url = add_query_arg(array('package' => $file_upload->id), 'update.php?action=upload-sp-theme'); $type = 'upload'; $upgrader = new SP_Theme_Upgrader(new SP_Theme_Installer_Skin(compact('type', 'title', 'nonce', 'url'))); $result = $upgrader->install($file_upload->package); if ($result || is_wp_error($result)) { $file_upload->cleanup(); } # double check if we deleted the upload file and output message if not if (file_exists($file_upload->package)) { echo sprintf(spa_text('Notice: Unable to remove the uploaded theme zip archive: %s'), $file_upload->package); } include ABSPATH . 'wp-admin/admin-footer.php'; }