Server IP : 192.64.118.117 / Your IP : 3.148.113.167 Web Server : LiteSpeed System : Linux premium56.web-hosting.com 4.18.0-513.24.1.lve.1.el8.x86_64 #1 SMP Thu May 9 15:10:09 UTC 2024 x86_64 User : thecgapy ( 1160) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/thecgapy/mobilecreationz.com/wp-content/plugins/e-signature/models/ |
Upload File : |
<?php /** * WP_E_addon a class for addons controller. * * . * * @version 1.1.4 * @author Abu shoaib */ class WP_E_Addon extends WP_E_Model { public function __construct() { parent::__construct(); $this->settings = new WP_E_Setting(); $this->document = new WP_E_Document(); // adding action } public function esign_update_check($addon_id, $old_version) { $esig_license = $this->settings->get_generic("esig_wp_esignature_license_active"); if (empty($esig_license) || $esig_license == 'invalid') { return; } if (!get_transient('esign-update-list')) { return; } else { //if(!get_transient('esign-update-check'.$addon_id)) //{ $plugin_list = json_decode(get_transient('esign-update-list')); if (!is_object($plugin_list)) { return; } //delete_transient('esign-message'); foreach ($plugin_list as $plugin) { if ($addon_id != $plugin->addon_id) { continue; } else { if (version_compare($old_version, $plugin->new_version, '<')) { //$esign_auto_update =$this->settings->get_generic("esign_auto_update"); // if(isset($esign_auto_update) && !empty($esign_auto_update) ) //{ if (!get_transient('esign-auto-downloads')) { $downloads = array(); $downloads[$addon_id] = $plugin->item_name; set_transient('esign-auto-downloads', $downloads, 60 * 60 * 1); } else { $downloads = get_transient('esign-auto-downloads'); if (empty($downloads)) { $downloads = array(); $downloads[$addon_id] = $plugin->item_name; } elseif (!array_key_exists($addon_id, $downloads)) { $downloads[$addon_id] = $plugin->item_name; } delete_transient('esign-auto-downloads'); set_transient('esign-auto-downloads', $downloads, 60 * 60 * 1); } delete_transient('esign-addons-updates-available'); set_transient('esign-addons-updates-available', 'yes', 20); // } // else //{ //R$msg = 'WP E-Signature ' . $plugin->item_name . ' ' . $plugin->new_version . ' Updates is available <a href="?page=esign-addons&esig_action=update&download_url=' . urlencode($plugin->download_link) . '&download_name=' . $plugin->download_name . '" class="esign-addon-update-btn"> Click Here To Update</a>'; $msg = sprintf(__('WP E-Signature business pack %s Updates is available <a href="%s" class="esign-addon-update-btn"> Click Here To Update</a>', 'esign'), $plugin->new_version,$this->updateLink($plugin_list)); if (!get_transient('esign-message')) { $message = array(); $message['business_addon'] = $msg; set_transient('esign-message', json_encode($message), 300); } else { $message = json_decode(get_transient('esign-message')); if (empty($message)) { $message = array(); $message['business_addon'] = $msg; } elseif (!property_exists($message, $addon_id)) { $message->business_addon = $msg; } delete_transient('esign-message'); set_transient('esign-message', json_encode($message), 300); } // } set_transient('esign-update-check' . $addon_id, 'checked', 60); } else { if (!get_transient('esign-message')) { continue; } $message = json_decode(get_transient('esign-message')); if (!is_object($message)) { return; } if (property_exists($message, $addon_id)) { unset($message->$addon_id); delete_transient('esign-message'); if (isset($message)) { set_transient('esign-message', json_encode($message), 300); } } } } } //} } } public function esig_all_plugin_activation() { $array_Plugins = get_plugins(); if (!empty($array_Plugins)) { foreach ($array_Plugins as $plugin_file => $plugin_data) { if (is_plugin_inactive($plugin_file)) { $plugin_name = $plugin_data['Name']; if ($plugin_name != "WP E-Signature") { if (preg_match("/WP E-Signature/", $plugin_name)) { $success = $this->esig_addons_enable($plugin_file); } } } } } } /* * addons tab generate method * * Since 1.1.4 */ public function esig_addons_tabs($current = 'all') { $tabs = array('all' => __('All','esig'), 'enable' => __('Enabled','esig'), 'disable' => __('Disabled','esig'), 'get-more' => __('Get More','esig')); echo '<div id="icon-themes" class="icon32"><br></div>'; echo '<h2 class="nav-tab-wrapper">'; foreach ($tabs as $tab => $name) { $class = ( $tab == $current ) ? ' nav-tab-active esig-tab-active-background' : 'esig-nav-tab-border'; echo "<a class='nav-tab $class' href='?page=esign-addons&tab=$tab'>$name</a>"; } echo '</h2>'; } public function esig_get_all_addons_list() { $all_addons_list = $this->esig_get_premium_addons_list(); $all_install = array(); if ($all_addons_list) { foreach ($all_addons_list as $addonlist => $addons) { if ($addonlist != "esig-price") { if ($addons->addon_name != 'WP E-Signature') { if ($addons->download_access == 'yes') { // set all addon transients $all_install[$addons->download_name] = $addons->download_link; } } } } } return json_encode($all_install); } /* * * * esig get all addons list. */ public function esig_get_premium_addons_list() { $api_params = array( 'esig-remote-request' => 'on', 'esig_action' => 'addons_list', 'license_key' => Esign_licenses::get_license_key(), 'url' => Esign_licenses::get_site_url(), 'author' => 'ApproveMe', ); $request = wp_remote_post(Esign_licenses::$approveme_url, array('timeout' => 15, 'sslverify' => false, 'body' => $api_params)); if (!is_wp_error($request)): $request = json_decode(wp_remote_retrieve_body($request)); return $request; else: return false; endif; } /* * * * esig get all addons list. */ public function esig_get_addons_update_list() { $api_params = array( 'esig-remote-request' => 'on', 'esig_action' => 'update_list', 'license_key' => Esign_licenses::get_license_key(), 'url' => Esign_licenses::get_site_url(), 'author' => 'ApproveMe', ); $request = wp_remote_post(Esign_licenses::$approveme_url, array('timeout' => 15, 'sslverify' => false, 'body' => $api_params)); if (!is_wp_error($request)): $request = wp_remote_retrieve_body($request); return $request; else: return false; endif; } /* * * * esig get all addons list. */ public function esig_get_addons_list() { $api_params = array( 'esig-remote-request' => 'on', 'esig_action' => 'addons_list_basic', 'license_key' => Esign_licenses::get_license_key(), 'url' => Esign_licenses::get_site_url(), 'author' => 'Approve Me', ); $request = wp_remote_post(Esign_licenses::$approveme_url, array('timeout' => 15, 'sslverify' => false, 'body' => $api_params)); if (!is_wp_error($request)): $request = json_decode(wp_remote_retrieve_body($request)); return $request; else: return false; endif; } public function esig_addons_installall() { set_time_limit(0); if (!function_exists('WP_E_Sig')) return; $all_addons = json_decode(get_transient('esig-all-addons-install')); // add onlist is empty then return false . if (!$all_addons) { $all_addons = json_decode($this->esig_get_all_addons_list()); if (!$all_addons) { return false; } } // if class not exists add wp updater class if (!class_exists('WP_Upgrader')) require ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; foreach ($all_addons as $download_name => $source) { $wp_installer = new WP_Upgrader(); $result = $wp_installer->run(array( 'package' => $source, 'destination' => Esig_Addons::get_install_dir(), 'clear_destination' => false, // Do not overwrite files. 'clear_working' => true, 'hook_extra' => array( 'type' => 'plugin', 'action' => 'install', ) )); // activating addon $plugin_root_folder = trim($download_name, ".zip"); $plugin_file = $this->esig_get_addons_file_path($plugin_root_folder); $this->esig_addons_enable($plugin_file); } return true; } public function esig_addons_install($source, $download_name) { if (!function_exists('WP_E_Sig')) return; // if class not exists add wp updater class if (!class_exists('WP_Upgrader')) require ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; // setting destination to plugin folder . // activating addon. $plugin_root_folder = trim($download_name, ".zip"); $wp_installer = new WP_Upgrader(); $result = $wp_installer->run(array( 'package' => $source, 'destination' => Esig_Addons::get_install_dir($plugin_root_folder), 'clear_destination' => false, // Do not overwrite files. 'clear_working' => true, 'hook_extra' => array( 'type' => 'plugin', 'action' => 'install', ) )); if (is_wp_error($result)) { self::esig_direct_install($source, WP_PLUGIN_DIR); } $plugin_file = $this->esig_get_addons_file_path($plugin_root_folder); $this->esig_addons_enable($plugin_file); return true; } public function esig_addons_update($source, $download_name) { if (!class_exists('WP_Upgrader')) require ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; // setting destination to plugin folder . // activating addon. $plugin_root_folder = explode("/", $download_name); if (Esig_Addons::is_old_addons_exists($plugin_root_folder[0])) { if($download_name !='esig-signer-input-fields'){ $this->esig_addons_delete($download_name); } // installing newly $this->esig_addons_install($source, $plugin_root_folder[0] . ".zip"); return true; } $wp_installer = new WP_Upgrader(); $result = $wp_installer->run(array( 'package' => $source, 'destination' => Esig_Addons::get_update_dir($download_name) . $plugin_root_folder[0], 'clear_destination' => true, 'clear_working' => true, 'hook_extra' => array( 'plugin' => $download_name, 'action' => 'update', ), )); // if update is failed. if (is_wp_error($result)) { if (get_transient('esign-auto-downloads')) { delete_transient('esign-auto-downloads'); delete_transient('esign-update-list'); set_transient('esign-auto-up-failed', 'yes', 300); //$this->settings->set('esign_auto_update',''); } } return true; } public function esig_get_addons_file_path($plugin_root_folder) { $plugin_files = ''; $installed_directory = Esig_Addons::get_installed_directory($plugin_root_folder); if ($handle = @opendir($installed_directory . $plugin_root_folder)) { while (false !== ($entry = readdir($handle))) { if (substr($entry, 0, 1) == '.') continue; if (substr($entry, -4) == '.php') $plugin_data = Esig_Addons::get_addon_data($installed_directory . "$plugin_root_folder/$entry", false, 'plugin'); if (empty($plugin_data['Name'])) { continue; } else { $plugin_files = "$plugin_root_folder/$entry"; break; } } closedir($handle); } else { return false; } return $plugin_files; } public function esig_addon_activate($plugin_file) { if (!current_user_can('activate_plugins')) wp_die(__('You do not have sufficient permissions to activate plugins for this site.')); $plugins = FALSE; $plugins = get_option('active_plugins'); // get active plugins if ($plugins) { // plugins to active $pugins_to_active = array( $plugin_file, ); foreach ($pugins_to_active as $plugin) { if (!in_array($plugin, $plugins)) { array_push($plugins, $plugin); update_option('active_plugins', $plugins); } } } // end if $plugins return true; } /* * * * Deactivating addons * Since 1.1.4 */ public function esig_addons_disable($plugin_file) { if (!is_esig_super_admin()) { wp_die(__('You do not have sufficient permissions to deactivate plugins for this site.Only super admin activate/deactivate')); } if (!current_user_can('activate_plugins')) wp_die(__('You do not have sufficient permissions to deactivate plugins for this site.')); Esig_Addons::deactivate($plugin_file); return true; } /* * * * Deactivating addons * Since 1.1.4 */ public function esig_addons_enable($plugin_file) { if (!is_esig_super_admin()) { wp_die(__('You do not have sufficient permissions to deactivate plugins for this site.Only super admin activate/deactivate')); } if (!current_user_can('activate_plugins')) wp_die(__('You do not have sufficient permissions to deactivate plugins for this site.')); Esig_Addons::activate($plugin_file); return true; } /* * * * Deactivating addons * Since 1.1.4 */ public function esig_addons_delete($plugin_folder) { if (!current_user_can('activate_plugins')) wp_die(__('You do not have sufficient permissions to deactivate plugins for this site.')); $plugins = get_plugin_files(Esig_Addons::get_delete_path($plugin_folder)); $deleted = delete_plugins($plugins); if ($deleted) { return true; } } public function get_package_price() { global $wp_version; if (!function_exists('WP_E_Sig')) return; $esig = WP_E_Sig(); $api_params = array( 'esig-remote-request' => 'on', 'esig_action' => 'pk_price', 'url' => Esign_licenses::$approveme_url, ); $request = wp_remote_post(Esign_licenses::$approveme_url, array('timeout' => 15, 'sslverify' => false, 'body' => $api_params)); if (!is_wp_error($request)): $request = json_decode(wp_remote_retrieve_body($request)); if ($this->settings->get_generic('esig_wp_esignature_license_key') && ($this->settings->get_generic('esig_wp_esignature_license_active')) == 'valid') { $license_key = 'yes'; } else { $license_key = 'no'; } foreach ($request as $addonlist => $addons) { if ($addonlist == "esig-price") { if (($esig_license_type = $this->settings->get_generic('esig_wp_esignature_license_type') ) != 'Business License') { $buisness_price = is_array($addons) ? $addons[0]->amount : null; $professional_price = is_array($addons) ? $addons[1]->amount : null; $individual_price = is_array($addons) ? $addons[2]->amount : null; if (($esig_license_type = $this->settings->get_generic('esig_wp_esignature_license_type') ) == 'Professional License' && $license_key != 'no') { $price = $buisness_price - $professional_price; } elseif (($esig_license_type = $this->settings->get_generic('esig_wp_esignature_license_type') ) == 'Individual License' && $license_key != 'no') { $price = $buisness_price - $individual_price; } else { $price = $buisness_price; } set_transient('esig-addons-price', $price, 12 * HOUR_IN_SECONDS); return $price; } else { set_transient('esig-addons-price', "buisness", 12 * HOUR_IN_SECONDS); return "buisness"; } } } else: return false; endif; } public static function esig_direct_install($source, $destination) { _e("Trying to install with alternative method...<br>","esig"); $temp_files = download_url($source); $result = unzip_file($temp_files, $destination); // Once extracted, delete the temp files . if ($temp_files) unlink($temp_files); if (!is_wp_error($result)) { _e("Install successfull.<br>","esig"); return true; } _e("Install failed. Try to install manually","esig"); } public function one_click_installation_option($all_addons_list) { if (!Esign_licenses::is_business_license()) { return false; } if(is_object($all_addons_list) && !isset($all_addons_list->business_pack)){ return false; } $business = $all_addons_list->business_pack; if (Esig_Addons::find_old_installed_addon()) { return false; } elseif (Esig_Addons::is_business_pack_exists() && Esig_Addons::is_updates_available()) { return "?page=esign-addons&esig_action=update&download_url=" . WP_E_Addon::base64_url_encode($business->download_link) . "&download_name=e-signature-business-add-ons/e-signature-business-add-ons.php"; } elseif (!Esig_Addons::is_business_pack_exists()) { return "?page=esign-addons&esig_action=install&download_url=" . WP_E_Addon::base64_url_encode($business->download_link) . "&download_name=" . $business->download_name; } return false; } public function updateLink($all_addons_list) { if (!Esign_licenses::is_business_license()) { return false; } if(is_object($all_addons_list) && !isset($all_addons_list->business_pack)){ return false; } $business = $all_addons_list->business_pack; if (Esig_Addons::is_business_pack_exists() && Esig_Addons::is_updates_available()) { return "?page=esign-addons&esig_action=update&download_url=" . WP_E_Addon::base64_url_encode($business->download_link) . "&download_name=e-signature-business-add-ons/e-signature-business-add-ons.php"; } return false; } public function one_click_installation_link() { $all_addons_list = $this->esig_get_premium_addons_list(); $business = $all_addons_list->business_pack; if (Esig_Addons::find_old_installed_addon()) { return false; } elseif (Esig_Addons::is_business_pack_exists() && Esig_Addons::is_updates_available()) { return "?page=esign-addons&esig_action=install&download_url=" . self::base64_url_encode($business->download_link) . "&download_name=e-signature-business-add-ons/e-signature-business-add-ons.php"; } elseif (!Esig_Addons::is_business_pack_exists()) { return "?page=esign-addons&esig_action=install&download_url=" . self::base64_url_encode($business->download_link) . "&download_name=" . $business->download_name; } return false; } public static function base64_url_encode($input) { return strtr(base64_encode($input), '+/=', '-_,'); } public static function base64_url_decode($input) { return base64_decode(strtr($input, '-_,', '+/=')); } // esig temp directory writable public static function is_dir_writable() { if (file_put_contents(ESIGN_PLUGIN_PATH . "/assets/temps/test.txt", "writable check")) { @unlink(ESIGN_PLUGIN_PATH . "/assets/temps/test.txt"); return true; } if (wp_is_writable(ESIGN_PLUGIN_PATH . "/assets/temps")) { return true; } return false; } public static function is_business_pack_list($addons){ if(is_object($addons)){ if($addons->download_name == 'e-signature-business-add-ons.zip'){ return true; } } return false ; } }