Create New Item
×
Item Type
File
Folder
Item Name
×
Search file in folder and subfolders...
File Manager
/
wp-content
/
plugins
/
really-simple-ssl
/
lets-encrypt
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php defined('ABSPATH') or die("you do not have access to this page!"); if (!function_exists('rsssl_user_can_manage')) { function rsssl_user_can_manage() { if (!is_user_logged_in()) { return false; } if (!current_user_can('manage_options')) { return false; } return true; } } function rsssl_dns_verification_required() { if (!rsssl_do_local_lets_encrypt_generation()) { return false; } if (get_option('rsssl_verification_type') === 'DNS') { return true; } if (rsssl_wildcard_certificate_required()) { return true; } return false; } if (!function_exists('rsssl_is_cpanel')) { function rsssl_is_cpanel() { if (get_option('rsssl_force_cpanel')) { return true; } $open_basedir = ini_get("open_basedir"); if (empty($open_basedir) && file_exists("/usr/local/cpanel")) { return true; } else { if (rsssl_check_port(2082)) { return true; } else { return false; } } } } if (!function_exists('rsssl_cpanel_api_supported')) { function rsssl_cpanel_api_supported() { return rsssl_is_cpanel() && file_exists("/usr/local/cpanel/php/cpanel.php"); } } if (!function_exists('rsssl_activated_by_default')) { function rsssl_activated_by_default() { $activated_by_default = false; $activated_by_default_hosts = RSSSL_LE()->config->activated_by_default; $current_host = rsssl_get_other_host(); if (in_array($current_host, $activated_by_default_hosts)) { $activated_by_default = true; } return $activated_by_default; } } if (!function_exists('rsssl_activation_required')) { function rsssl_activation_required() { $dashboard_activation_required = false; $dashboard_activation_required_hosts = RSSSL_LE()->config->dashboard_activation_required; $current_host = rsssl_get_other_host(); if (in_array($current_host, $dashboard_activation_required_hosts)) { $dashboard_activation_required = true; } return $dashboard_activation_required; } } if (!function_exists('rsssl_paid_only')) { function rsssl_paid_only() { $paid_only = false; $paid_only_hosts = RSSSL_LE()->config->paid_only; $current_host = rsssl_get_other_host(); if (in_array($current_host, $paid_only_hosts)) { $paid_only = true; } return $paid_only; } } if (!function_exists('rsssl_is_plesk')) { function rsssl_is_plesk() { if (get_option('rsssl_force_plesk')) { return true; } if (get_option('rsssl_hosting_dashboard') === 'plesk') { return true; } if (rsssl_is_cpanel()) { return false; } $open_basedir = ini_get("open_basedir"); if (empty($open_basedir) && is_dir('/usr/local/psa')) { return true; } else { if (rsssl_check_port(8443)) { return true; } else { return false; } } } } if (!function_exists('rsssl_is_directadmin')) { function rsssl_is_directadmin() { if (get_option('rsssl_force_directadmin')) { return true; } if (get_option('rsssl_hosting_dashboard') === 'directadmin') { return true; } if (rsssl_is_cpanel()) { return false; } if (rsssl_is_plesk()) { return false; } if (rsssl_check_port(2222)) { return true; } else { return false; } } } function rsssl_check_port($port) { $port_check_status = get_option("rsssl_port_check_{$port}"); if (!function_exists('fsockopen') || $port_check_status === 'fail') { return false; } $ipAddress = gethostbyname('localhost'); $link = @fsockopen($ipAddress, $port, $errno, $error, 5); if ($link) { update_option("rsssl_port_check_{$port}", 'success'); return true; } update_option("rsssl_port_check_{$port}", 'fail'); return false; } if (!function_exists('rsssl_get_other_host')) { function rsssl_get_other_host() { return rsssl_get_value('other_host_type', false); } } if (!function_exists('rsssl_progress_add')) { function rsssl_progress_add($item) { $progress = get_option("rsssl_le_installation_progress", array()); if (!in_array($item, $progress)) { $progress[] = $item; update_option("rsssl_le_installation_progress", $progress); } } } if (!function_exists('rsssl_uses_known_dashboard')) { function rsssl_uses_known_dashboard() { if (rsssl_is_cpanel() || rsssl_is_plesk() || rsssl_is_directadmin()) { return true; } else { return false; } } } if (!function_exists('rsssl_is_ready_for')) { function rsssl_is_ready_for($item) { if (!rsssl_do_local_lets_encrypt_generation()) { rsssl_progress_add('directories'); rsssl_progress_add('generation'); rsssl_progress_add('dns-verification'); } if (!rsssl_dns_verification_required()) { rsssl_progress_add('dns-verification'); } if (empty(rsssl_get_not_completed_steps($item))) { return true; } else { return false; } } } function rsssl_get_not_completed_steps($item) { $sequence = array_column(RSSSL_LE()->config->steps['lets-encrypt'], 'id'); $index = array_search($item, $sequence); $sequence = array_slice($sequence, 0, $index, true); $not_completed = array(); $finished = get_option("rsssl_le_installation_progress", array()); foreach ($sequence as $status) { if (!in_array($status, $finished)) { $not_completed[] = $status; } } return $not_completed; } if (!function_exists('rsssl_progress_remove')) { function rsssl_progress_remove($item) { $progress = get_option("rsssl_le_installation_progress", array()); if (in_array($item, $progress)) { $index = array_search($item, $progress); unset($progress[$index]); update_option("rsssl_le_installation_progress", $progress); } } } if (!function_exists('rsssl_php_requirement_met')) { function rsssl_php_requirement_met() { if (version_compare(PHP_VERSION, rsssl_le_php_version, '<')) { rsssl_progress_remove('system-status'); $action = 'stop'; $status = 'error'; $message = sprintf(__("The minimum requirements for the PHP version have not been met. Please upgrade to %s", "really-simple-ssl"), rsssl_le_php_version); } else { $action = 'continue'; $status = 'success'; $message = __("You have the required PHP version to continue.", "really-simple-ssl"); } return new RSSSL_RESPONSE($status, $action, $message); } } if (!function_exists('rsssl_get_value')) { function rsssl_get_value($fieldname, $use_default = true) { $default = false; $fields = get_option('rsssl_options_lets-encrypt'); if ($use_default) { if (!isset(RSSSL_LE()->config->fields[$fieldname])) { return false; } $default = isset(RSSSL_LE()->config->fields[$fieldname]['default']) ? RSSSL_LE()->config->fields[$fieldname]['default'] : ''; } $value = isset($fields[$fieldname]) ? $fields[$fieldname] : $default; return $value; } } if (!function_exists('rsssl_do_local_lets_encrypt_generation')) { function rsssl_do_local_lets_encrypt_generation() { $not_local_cert_hosts = RSSSL_LE()->config->not_local_certificate_hosts; $current_host = rsssl_get_other_host(); if (in_array($current_host, $not_local_cert_hosts)) { return false; } return true; } } function rsssl_get_manual_instructions_text($url) { $default_url = 'https://really-simple-ssl.com/install-ssl-certificate'; $dashboard_activation_required = rsssl_activation_required(); $activated_by_default = rsssl_activated_by_default(); $paid_only = rsssl_paid_only(); $button_activate = '<br><a href="' . $default_url . '" target="_blank" class="button button-primary">' . __("Instructions", "really-simple-ssl") . '</a> '; $button_complete = '<br><a href="' . $default_url . '" target="_blank" class="button button-primary">' . __("Instructions", "really-simple-ssl") . '</a> '; if ($url === $default_url) { $complete_manually = sprintf(__("Please complete manually in your hosting dashboard.", "really-simple-ssl"), '<a target="_blank" href="' . $url . '">', '</a>'); $activate_manually = sprintf(__("Please activate it manually on your hosting dashboard.", "really-simple-ssl"), '<a target="_blank" href="' . $url . '">', '</a>'); } else { $complete_manually = sprintf(__("Please complete %smanually%s", "really-simple-ssl"), '<a target="_blank" href="' . $url . '">', '</a>'); $activate_manually = sprintf(__("Please activate it on your dashboard %smanually%s", "really-simple-ssl"), '<a target="_blank" href="' . $url . '">', '</a>'); $button_activate .= '<a href="' . $url . '" target="_blank" class="button button-primary">' . __("Go to activation", "really-simple-ssl") . '</a>'; $button_complete .= '<a href="' . $url . '" target="_blank" class="button button-primary">' . __("Go to installation", "really-simple-ssl") . '</a>'; } if ($activated_by_default) { $msg = sprintf(__("According to our information, your hosting provider supplies your account with an SSL certificate by default. Please contact your %shosting support%s if this is not the case.", "really-simple-ssl"), '<a target="_blank" href="' . $url . '">', '</a>') . ' ' . __("After completing the installation, you can continue to the next step to complete your configuration.", "really-simple-ssl"); } else { if ($dashboard_activation_required) { $msg = __("You already have free SSL on your hosting environment.", "really-simple-ssl") . ' ' . $activate_manually . ' ' . __("After completing the installation, you can continue to the next step to complete your configuration.", "really-simple-ssl") . $button_activate; } else { if ($paid_only) { $msg = sprintf(__("According to our information, your hosting provider does not allow any kind of SSL installation, other then their own paid certificate. For an alternative hosting provider with SSL, see this %sarticle%s.", "really-simple-ssl"), '<a target="_blank" href="https://really-simple-ssl.com/hosting-providers-with-free-ssl">', '</a>'); } else { $msg = __("Your hosting environment does not allow automatic SSL installation.", "really-simple-ssl") . ' ' . $complete_manually . ' ' . sprintf(__("You can follow these %sinstructions%s.", "really-simple-ssl"), '<a target="_blank" href="' . $default_url . '">', '</a>') . ' ' . __("After completing the installation, you can continue to the next step to complete your configuration.", "really-simple-ssl") . $button_complete; } } } return $msg; } if (!function_exists('rsssl_notice')) { function rsssl_notice($msg, $type = 'notice', $remove_after_change = false, $echo = true, $condition = false) { if ($msg == '') { return; } $condition_check = ""; $condition_question = ""; $condition_answer = ""; $rsssl_hidden = ""; if ($condition) { $condition_check = "condition-check"; $condition_question = "data-condition-question='{$condition['question']}'"; $condition_answer = "data-condition-answer='{$condition['answer']}'"; $args['condition'] = array($condition['question'] => $condition['answer']); $rsssl_hidden = rsssl_field::this()->condition_applies($args) ? "" : "rsssl-hidden"; } $remove_after_change_class = $remove_after_change ? "rsssl-remove-after-change" : ""; $html = "<div class='rsssl-panel-wrap'><div class='rsssl-panel rsssl-notification rsssl-{$type} {$remove_after_change_class} {$rsssl_hidden} {$condition_check}' {$condition_question} {$condition_answer}><div>{$msg}</div></div></div>"; if ($echo) { echo $html; } else { return $html; } } } if (!function_exists('rsssl_sidebar_notice')) { function rsssl_sidebar_notice($msg, $type = 'notice', $echo = true, $condition = false) { if ($msg == '') { return; } $condition_check = ""; $condition_question = ""; $condition_answer = ""; $rsssl_hidden = ""; if ($condition) { $condition_check = "condition-check"; $condition_question = "data-condition-question='{$condition['question']}'"; $condition_answer = "data-condition-answer='{$condition['answer']}'"; $args['condition'] = array($condition['question'] => $condition['answer']); $rsssl_hidden = rsssl_field::this()->condition_applies($args) ? "" : "rsssl-hidden"; } $html = "<div class='rsssl-help-modal rsssl-notice rsssl-{$type} {$rsssl_hidden} {$condition_check}' {$condition_question} {$condition_answer}>{$msg}</div>"; if ($echo) { echo $html; } else { return $html; } } } if (!function_exists('rsssl_read_more')) { function rsssl_read_more($url, $add_space = true) { $html = sprintf(__("For more information on this subject, please read this %sarticle%s", 'really-simple-ssl'), '<a target="_blank" href="' . $url . '">', '</a>'); if ($add_space) { $html = ' ' . $html; } return $html; } } register_activation_hook(__FILE__, 'rsssl_set_activation_time_stamp'); if (!function_exists('rsssl_set_activation_time_stamp')) { function rsssl_set_activation_time_stamp($networkwide) { update_option('rsssl_activation_time', time()); } } if (!function_exists('rsssl_array_filter_multidimensional')) { function rsssl_array_filter_multidimensional($array, $filter_key, $filter_value) { $new = array_filter($array, function ($var) use($filter_value, $filter_key) { return isset($var[$filter_key]) ? $var[$filter_key] == $filter_value : false; }); return $new; } } if (!function_exists('rsssl_is_subdomain')) { function rsssl_is_subdomain() { $domain = rsssl_get_domain(); if (strpos($domain, 'www.') !== false) { return false; } $root = rsssl_get_root_domain($domain); if ($root === $domain) { return false; } else { return true; } } } if (!function_exists('rsssl_get_subdomain')) { function rsssl_get_root_domain($domain) { $sub = strtolower(trim($domain)); $count = substr_count($sub, '.'); if ($count === 2) { if (strlen(explode('.', $sub)[1]) > 3) { $sub = explode('.', $sub, 2)[1]; } } else { if ($count > 2) { $sub = rsssl_get_root_domain(explode('.', $sub, 2)[1]); } } return $sub; } } if (!function_exists('rsssl_get_domain')) { function rsssl_get_domain() { $domain = site_url(); $parse = parse_url($domain); $domain = $parse['host']; $domain = str_replace(array('http://', 'https://'), '', $domain); return $domain; } } function rsssl_insert_after_key($array, $key, $items) { $keys = array_keys($array); $key = array_search($key, $keys); $array = array_slice($array, 0, $key, true) + $items + array_slice($array, 3, count($array) - 3, true); return $array; } if (!function_exists('rsssl_wildcard_certificate_required')) { function rsssl_wildcard_certificate_required() { if (get_option('rsssl_verification_type') === 'DNS') { return true; } if (!is_multisite()) { return false; } else { if (defined('SUBDOMAIN_INSTALL') && SUBDOMAIN_INSTALL) { return true; } else { return false; } } } } if (!function_exists('rsssl_maybe_drop_subdomain_test')) { function rsssl_maybe_drop_subdomain_test($steps) { if (is_multisite()) { $index = array_search('system-status', array_column($steps['lets-encrypt'], 'id')); $index++; $actions = $steps['lets-encrypt'][$index]['actions']; $sub_index = array_search('is_subdomain_setup', array_column($actions, 'action')); unset($actions[$sub_index]); $steps['lets-encrypt'][$index]['actions'] = $actions; } return $steps; } add_filter('rsssl_steps', 'rsssl_maybe_drop_subdomain_test', 20); } if (!function_exists('rsssl_can_install_shell_addon')) { function rsssl_can_install_shell_addon() { if (!rsssl_is_cpanel()) { return false; } if (defined('rsssl_shell_path')) { return false; } if (function_exists('shell_exec') || function_exists('system') || function_exists('passthru') || function_exists('exec')) { return true; } else { return false; } } } if (!function_exists('rsssl_generated_by_rsssl')) { function rsssl_generated_by_rsssl() { return get_option('rsssl_le_certificate_generated_by_rsssl'); } }