private function update_package() { $sid = wpl_request::getVar('sid'); $tmp_directory = wpl_global::init_tmp_folder(); $dest = $tmp_directory . 'package.zip'; $zip_file = wpl_global::get_web_page('http://billing.realtyna.com/index.php?option=com_rls&view=downloadables&task=download&sid=' . $sid . '&randomkey=' . rand(1, 100)); if (!$zip_file) { $this->response(array('success' => '0', 'error' => __('Error: #U202, Could not download the update package!', WPL_TEXTDOMAIN), 'message' => '')); } if (!class_exists('ZipArchive')) { $this->response(array('success' => '0', 'error' => __('Error: #U205, Your PHP has no ZipArchive support enabled!', WPL_TEXTDOMAIN), 'message' => '')); } if (!wpl_file::write($dest, $zip_file)) { $this->response(array('success' => '0', 'error' => __('Error: #U203, Could not create the update file!', WPL_TEXTDOMAIN), 'message' => '')); } if (!wpl_global::zip_extract($dest, $tmp_directory)) { $this->response(array('success' => '0', 'error' => __('Error: #U204, Could not extract the update file!', WPL_TEXTDOMAIN), 'message' => '')); } $script_file = $tmp_directory . 'installer.php'; if (!wpl_file::exists($script_file)) { $this->response(array('error' => __("Installer file doesn't exist!", WPL_TEXTDOMAIN), 'message' => '')); } if (!is_writable(WPL_ABSPATH . 'WPL.php')) { $this->response(array('error' => __("PHP doesn't have write access to the files and directories!", WPL_TEXTDOMAIN), 'message' => '')); } /** including installer and run the install method **/ include $script_file; if (!class_exists('wpl_installer')) { $this->response(array('error' => __("Installer class doesn't exist!", WPL_TEXTDOMAIN), 'message' => '')); } /** run install script **/ $wpl_installer = new wpl_installer(); $wpl_installer->path = $tmp_directory; if (!$wpl_installer->run()) { $this->response(array('error' => $wpl_installer->error, 'message' => '')); } /** Trigger Event **/ wpl_global::event_handler('package_updated', array('package_id' => isset($wpl_installer->addon_id) ? $wpl_installer->addon_id : 0)); $message = $wpl_installer->message ? $wpl_installer->message : __('Addon Updated.', WPL_TEXTDOMAIN); $this->response(array('error' => '', 'message' => $message)); }
/** * Checks Realtyna billing credentials * @author Howard <*****@*****.**> * @static * @return array */ public static function check_realtyna_credentials() { /** import settings library **/ _wpl_import('libraries.settings'); $current_url = wpl_global::get_full_url(); $domain = wpl_global::domain($current_url); $settings = wpl_global::get_settings(); $phpver = phpversion(); $wplversion = wpl_global::wpl_version(); $wpversion = wpl_global::wp_version(); $username = $settings['realtyna_username']; $password = $settings['realtyna_password']; $POST = array('domain' => $domain, 'wpversion' => $wpversion, 'wplversion' => $wplversion, 'phpver' => $phpver, 'username' => urlencode($username), 'password' => urlencode($password), 'command' => 'check_credentials', 'format' => 'json'); $io_handler = 'http://billing.realtyna.com/io/io.php'; $result = wpl_global::get_web_page($io_handler, $POST); $answer = json_decode($result, true); /** saving status **/ $status = isset($answer['status']) ? $answer['status'] : 0; wpl_settings::save_setting('realtyna_verified', $status, 1); $message = $status ? __('Credentials verified.', WPL_TEXTDOMAIN) : __('Invalid credentials!', WPL_TEXTDOMAIN); $success = 1; return array('success' => $success, 'message' => $message, 'status' => $status); }