Version Description
- Improved and added dashboard notices
- Improved debug logging
- Added option to dismiss all Really Simple SSL notices
- Fixed a bug where other plugins buttons had their style reset
Download this release
Release Info
Developer | RogierLankhorst |
Plugin | Really Simple SSL |
Version | 3.2.4 |
Comparing to | |
See all releases |
Code changes from version 3.2.3 to 3.2.4
- class-admin.php +371 -112
- css/main.css +0 -6
- css/main.min.css +1 -1
- readme.txt +11 -4
- rlrsssl-really-simple-ssl.php +1 -1
class-admin.php
CHANGED
@@ -49,7 +49,7 @@ class rsssl_admin extends rsssl_front_end
|
|
49 |
function __construct()
|
50 |
{
|
51 |
|
52 |
-
|
53 |
wp_die(sprintf(__('%s is a singleton class and you cannot create a second instance.', 'really-simple-ssl'), get_class($this)));
|
54 |
|
55 |
self::$_this = $this;
|
@@ -663,6 +663,8 @@ class rsssl_admin extends rsssl_front_end
|
|
663 |
/**
|
664 |
* Log events during plugin execution
|
665 |
*
|
|
|
|
|
666 |
* @since 2.1
|
667 |
*
|
668 |
* @access public
|
@@ -672,8 +674,8 @@ class rsssl_admin extends rsssl_front_end
|
|
672 |
public function trace_log($msg)
|
673 |
{
|
674 |
if (!$this->debug) return;
|
|
|
675 |
$this->debug_log = $this->debug_log . "<br>" . $msg;
|
676 |
-
$this->debug_log = strstr($this->debug_log, '** Detecting configuration **');
|
677 |
error_log($msg);
|
678 |
}
|
679 |
|
@@ -694,7 +696,7 @@ class rsssl_admin extends rsssl_front_end
|
|
694 |
if (defined('RSSSL_SAFE_MODE') && RSSSL_SAFE_MODE) $safe_mode = RSSSL_SAFE_MODE;
|
695 |
|
696 |
if (!current_user_can($this->capability)) return;
|
697 |
-
$this->trace_log("
|
698 |
if ($this->site_has_ssl) {
|
699 |
//when one of the used server variables was found, test if the redirect works
|
700 |
|
@@ -1281,12 +1283,9 @@ class rsssl_admin extends rsssl_front_end
|
|
1281 |
|
1282 |
public function detect_configuration()
|
1283 |
{
|
1284 |
-
$this->trace_log("
|
1285 |
-
$this->trace_log("plugin version: " . rsssl_version);
|
1286 |
-
|
1287 |
//if current page is on SSL, we can assume SSL is available, even when an errormsg was returned
|
1288 |
if ($this->is_ssl_extended()) {
|
1289 |
-
$this->trace_log("Already on SSL, start detecting configuration");
|
1290 |
$this->site_has_ssl = TRUE;
|
1291 |
} else {
|
1292 |
//if certificate is valid
|
@@ -1344,7 +1343,6 @@ class rsssl_admin extends rsssl_front_end
|
|
1344 |
}
|
1345 |
}
|
1346 |
|
1347 |
-
$this->trace_log("SSL type: " . $this->ssl_type);
|
1348 |
}
|
1349 |
$this->check_for_siteurl_in_wpconfig();
|
1350 |
|
@@ -1561,20 +1559,35 @@ class rsssl_admin extends rsssl_front_end
|
|
1561 |
return $version;
|
1562 |
}
|
1563 |
}
|
1564 |
-
|
1565 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1566 |
{
|
1567 |
if (is_multisite() && RSSSL()->rsssl_multisite->is_per_site_activated_multisite_subfolder_install()) {
|
1568 |
return false;
|
1569 |
-
}
|
1570 |
return true;
|
|
|
|
|
1571 |
}
|
1572 |
}
|
1573 |
|
1574 |
-
|
1575 |
-
|
1576 |
-
|
1577 |
-
|
|
|
|
|
|
|
|
|
1578 |
|
1579 |
public function htaccess_contains_redirect_rules()
|
1580 |
{
|
@@ -1619,11 +1632,13 @@ class rsssl_admin extends rsssl_front_end
|
|
1619 |
}
|
1620 |
}
|
1621 |
|
1622 |
-
|
1623 |
-
|
1624 |
-
* this is the case if either the wp_redirect is set, or the htaccess redirect is set.
|
1625 |
*
|
1626 |
-
|
|
|
|
|
|
|
1627 |
|
1628 |
public function has_301_redirect()
|
1629 |
{
|
@@ -1728,6 +1743,14 @@ class rsssl_admin extends rsssl_front_end
|
|
1728 |
}
|
1729 |
}
|
1730 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1731 |
|
1732 |
public function update_htaccess_after_settings_save($oldvalue = false, $newvalue = false, $option = false)
|
1733 |
{
|
@@ -1787,32 +1810,56 @@ class rsssl_admin extends rsssl_front_end
|
|
1787 |
//check if the mixed content fixer is active
|
1788 |
$response = wp_remote_get(home_url());
|
1789 |
|
1790 |
-
if (
|
1791 |
-
|
1792 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1793 |
}
|
1794 |
|
1795 |
-
if ($
|
1796 |
-
$mixed_content_fixer_detected = '
|
1797 |
-
|
1798 |
-
$
|
1799 |
-
|
1800 |
-
|
|
|
1801 |
}
|
1802 |
|
1803 |
set_transient('rsssl_mixed_content_fixer_detected', $mixed_content_fixer_detected, 600);
|
1804 |
}
|
1805 |
|
1806 |
if ($mixed_content_fixer_detected === 'no-response'){
|
1807 |
-
|
|
|
1808 |
$this->mixed_content_fixer_detected = FALSE;
|
1809 |
}
|
1810 |
if ($mixed_content_fixer_detected === 'not-found'){
|
1811 |
-
|
|
|
1812 |
$this->mixed_content_fixer_detected = FALSE;
|
1813 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1814 |
if ($mixed_content_fixer_detected === 'found'){
|
1815 |
-
$this->trace_log("Mixed content fixer
|
|
|
1816 |
$this->mixed_content_fixer_detected = true;
|
1817 |
}
|
1818 |
|
@@ -2061,7 +2108,9 @@ class rsssl_admin extends rsssl_front_end
|
|
2061 |
show a notice when the .htaccess file does not contain redirect rules
|
2062 |
*/
|
2063 |
|
2064 |
-
|
|
|
|
|
2065 |
|
2066 |
add_action('admin_print_footer_scripts', array($this, 'insert_dismiss_htaccess'));
|
2067 |
?>
|
@@ -2093,7 +2142,7 @@ class rsssl_admin extends rsssl_front_end
|
|
2093 |
SSL success message
|
2094 |
*/
|
2095 |
|
2096 |
-
if ($this->ssl_enabled && $this->site_has_ssl && !$this->ssl_success_message_shown) {
|
2097 |
if (!current_user_can("activate_plugins")) return;
|
2098 |
|
2099 |
add_action('admin_print_footer_scripts', array($this, 'insert_dismiss_success'));
|
@@ -2233,6 +2282,11 @@ class rsssl_admin extends rsssl_front_end
|
|
2233 |
<?php
|
2234 |
}
|
2235 |
|
|
|
|
|
|
|
|
|
|
|
2236 |
public function insert_dismiss_settings_script()
|
2237 |
{
|
2238 |
$ajax_nonce = wp_create_nonce("really-simple-ssl");
|
@@ -2501,17 +2555,23 @@ class rsssl_admin extends rsssl_front_end
|
|
2501 |
|
2502 |
$enable = __("Enable", "really-simple-ssl");
|
2503 |
$dismiss = __("dismiss", "really-simple-ssl");
|
2504 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
2505 |
|
2506 |
$notices = array(
|
2507 |
'ssl_enabled' => array(
|
2508 |
'callback' => 'rsssl_ssl_enabled',
|
2509 |
'output' => array(
|
2510 |
-
'
|
2511 |
'msg' =>__('SSL is enabled on your site.', 'really-simple-ssl'),
|
2512 |
'icon' => 'success'
|
2513 |
),
|
2514 |
-
'
|
2515 |
'msg' => __('SSL is not enabled yet', 'really-simple-ssl'),
|
2516 |
'icon' => 'warning'
|
2517 |
),
|
@@ -2540,6 +2600,16 @@ class rsssl_admin extends rsssl_front_end
|
|
2540 |
'icon' => 'warning',
|
2541 |
'dismissible' => true
|
2542 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2543 |
),
|
2544 |
),
|
2545 |
|
@@ -2561,35 +2631,45 @@ class rsssl_admin extends rsssl_front_end
|
|
2561 |
),
|
2562 |
),
|
2563 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2564 |
|
2565 |
'check_redirect' => array(
|
2566 |
-
|
2567 |
-
|
2568 |
'output' => array(
|
2569 |
'htaccess-redirect-set' => array(
|
2570 |
'msg' =>__('301 redirect to https set: .htaccess redirect.', 'really-simple-ssl'),
|
2571 |
-
'icon' => 'success'
|
2572 |
-
'dismissible' => true
|
2573 |
-
),
|
2574 |
-
'301-wp-redirect' => array(
|
2575 |
-
'msg' => __('301 redirect to https set: WordPress redirect.', 'really-simple-ssl'),
|
2576 |
-
'icon' => 'success',
|
2577 |
-
'dismissible' => true
|
2578 |
),
|
|
|
|
|
2579 |
'wp-redirect-to-htaccess' => array(
|
2580 |
'msg' => __('WordPress 301 redirect enabled. We recommend to enable the 301 .htaccess redirect option on your specific setup.', 'really-simple-ssl') . " "
|
2581 |
-
. "<span><a href
|
2582 |
. __("or", "really-simple-ssl")
|
2583 |
. "<span class='rsssl-dashboard-dismiss' data-dismiss_type='check_redirect'><a href='#' class='rsssl-dismiss-text rsssl-close-warning'>$dismiss</a></span>"
|
2584 |
. "<span class='rsssl-dashboard-plusone update-plugins rsssl-update-count'><span class='update-count'>1</span></span>",
|
2585 |
'icon' => 'warning',
|
2586 |
-
'plusone' =>
|
2587 |
'dismissible' => true
|
2588 |
),
|
2589 |
-
'no-redirect-
|
2590 |
'msg' => __('Enable a .htaccess redirect or WordPress redirect in the settings to create a 301 redirect.', 'really-simple-ssl'),
|
2591 |
'icon' => 'warning',
|
2592 |
-
'dismissible' =>
|
2593 |
),
|
2594 |
'htaccess-not-writeable' => array(
|
2595 |
'msg' => __('.htaccess is not writable. Set 301 WordPress redirect, or set the .htaccess manually if you want to redirect in .htaccess.', 'really-simple-ssl'),
|
@@ -2597,7 +2677,7 @@ class rsssl_admin extends rsssl_front_end
|
|
2597 |
'dismissible' => true
|
2598 |
),
|
2599 |
'htaccess-cannot-be-set' => array(
|
2600 |
-
'msg' => __('Https redirect cannot be set in the .htaccess. Set the .htaccess redirect manually or enable WordPress redirect in the settings.', 'really-simple-ssl'),
|
2601 |
'icon' => 'warning',
|
2602 |
'dismissible' => true
|
2603 |
),
|
@@ -2609,8 +2689,22 @@ class rsssl_admin extends rsssl_front_end
|
|
2609 |
),
|
2610 |
),
|
2611 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2612 |
|
2613 |
'hsts_enabled' => array(
|
|
|
2614 |
'callback' => 'rsssl_hsts_enabled',
|
2615 |
'output' => array(
|
2616 |
'contains-hsts' => array(
|
@@ -2624,7 +2718,6 @@ class rsssl_admin extends rsssl_front_end
|
|
2624 |
),
|
2625 |
),
|
2626 |
|
2627 |
-
|
2628 |
'secure_cookies_set' => array(
|
2629 |
'callback' => 'rsssl_secure_cookies_set',
|
2630 |
'output' => array(
|
@@ -2659,6 +2752,30 @@ class rsssl_admin extends rsssl_front_end
|
|
2659 |
}
|
2660 |
|
2661 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2662 |
private function notice_row($id, $notice){
|
2663 |
if (!current_user_can('manage_options')) return;
|
2664 |
|
@@ -2694,14 +2811,29 @@ class rsssl_admin extends rsssl_front_end
|
|
2694 |
<td><?php echo $icon?></td><td class="rsssl-table-td-main-content"><?php echo $msg?></td>
|
2695 |
<td class="rsssl-dashboard-dismiss" data-dismiss_type="<?php echo $id?>"><?php echo $dismiss?></td>
|
2696 |
</tr>
|
2697 |
-
|
2698 |
<?php
|
2699 |
}
|
2700 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2701 |
public function reset_plusone_cache(){
|
2702 |
delete_transient('rsssl_plusone_count');
|
2703 |
}
|
2704 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2705 |
public function count_plusones(){
|
2706 |
if (!current_user_can('manage_options')) return 0;
|
2707 |
$count = get_transient('rsssl_plusone_count');
|
@@ -2830,24 +2962,57 @@ class rsssl_admin extends rsssl_front_end
|
|
2830 |
<?php
|
2831 |
if ($this->debug) {
|
2832 |
echo "<h2>" . __("Log for debugging purposes", "really-simple-ssl") . "</h2>";
|
2833 |
-
echo "<p>" . __("Send
|
2834 |
echo "<div class='debug-log'>";
|
2835 |
if (defined('RSSSL_SAFE_MODE') && RSSSL_SAFE_MODE) echo "SAFE MODE<br>";
|
2836 |
-
echo "Options:<br>";
|
2837 |
-
if ($this->htaccess_redirect) echo "* htaccess redirect<br>";
|
2838 |
-
if ($this->wp_redirect) echo "* WordPress redirect<br>";
|
2839 |
-
if ($this->autoreplace_insecure_links) echo "* Mixed content fixer<br>";
|
2840 |
|
2841 |
-
echo "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2842 |
if (is_multisite()) {
|
2843 |
echo "MULTISITE<br>";
|
2844 |
echo (!RSSSL()->rsssl_multisite->ssl_enabled_networkwide) ? "SSL is being activated per site<br>" : "SSL is activated network wide<br>";
|
2845 |
}
|
2846 |
|
2847 |
-
echo ($this->ssl_enabled) ? "SSL is enabled for this site<br>" : "SSL is not yet enabled for this site<br>";
|
2848 |
echo $this->debug_log;
|
2849 |
-
|
2850 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2851 |
$this->debug_log = "";
|
2852 |
$this->save_options();
|
2853 |
} else {
|
@@ -2948,27 +3113,27 @@ class rsssl_admin extends rsssl_front_end
|
|
2948 |
}
|
2949 |
}
|
2950 |
|
2951 |
-
|
2952 |
-
|
2953 |
-
|
2954 |
-
|
2955 |
-
|
2956 |
-
|
2957 |
-
|
2958 |
-
|
2959 |
|
2960 |
-
|
2961 |
|
2962 |
-
|
2963 |
-
|
2964 |
-
|
2965 |
-
|
2966 |
-
|
2967 |
-
|
2968 |
-
|
2969 |
-
|
2970 |
|
2971 |
-
|
2972 |
?>
|
2973 |
</div>
|
2974 |
<?php }
|
@@ -3014,7 +3179,6 @@ class rsssl_admin extends rsssl_front_end
|
|
3014 |
return '<button type="button" class="close">
|
3015 |
<span class="rsssl-close-warning">X</span>
|
3016 |
</button>';
|
3017 |
-
|
3018 |
}
|
3019 |
|
3020 |
/**
|
@@ -3028,7 +3192,6 @@ class rsssl_admin extends rsssl_front_end
|
|
3028 |
|
3029 |
private function get_banner_html($args)
|
3030 |
{
|
3031 |
-
|
3032 |
$default = array(
|
3033 |
'pro' => false,
|
3034 |
);
|
@@ -3119,7 +3282,6 @@ class rsssl_admin extends rsssl_front_end
|
|
3119 |
|
3120 |
add_settings_field('id_deactivate_keep_ssl', __("Deactivate plugin and keep SSL", "really-simple-ssl"), array($this, 'get_option_deactivate_keep_ssl'), 'rlrsssl', 'rlrsssl_settings');
|
3121 |
|
3122 |
-
|
3123 |
}
|
3124 |
|
3125 |
/**
|
@@ -3317,7 +3479,6 @@ class rsssl_admin extends rsssl_front_end
|
|
3317 |
|
3318 |
public function get_option_htaccess_redirect()
|
3319 |
{
|
3320 |
-
|
3321 |
$options = get_option('rlrsssl_options');
|
3322 |
|
3323 |
$htaccess_redirect = $this->htaccess_redirect;
|
@@ -3334,7 +3495,7 @@ class rsssl_admin extends rsssl_front_end
|
|
3334 |
}
|
3335 |
|
3336 |
?>
|
3337 |
-
<label class="rsssl-switch" id="rsssl-maybe-highlight">
|
3338 |
<input id="rlrsssl_options" name="rlrsssl_options[htaccess_redirect]" size="40" value="1"
|
3339 |
type="checkbox" <?php checked(1, $this->htaccess_redirect, true) ?> />
|
3340 |
<span class="rsssl-slider rsssl-round"></span>
|
@@ -3426,6 +3587,16 @@ class rsssl_admin extends rsssl_front_end
|
|
3426 |
RSSSL()->rsssl_help->get_help_tip(__("If this option is set to true, the mixed content fixer will fire on the init hook instead of the template_redirect hook. Only use this option when you experience problems with the mixed content fixer.", "really-simple-ssl"));
|
3427 |
}
|
3428 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3429 |
public function get_option_dismiss_all_notices()
|
3430 |
{
|
3431 |
?>
|
@@ -3490,6 +3661,12 @@ class rsssl_admin extends rsssl_front_end
|
|
3490 |
|
3491 |
}
|
3492 |
|
|
|
|
|
|
|
|
|
|
|
|
|
3493 |
public function get_option_autoreplace_insecure_links()
|
3494 |
{
|
3495 |
//$options = get_option('rlrsssl_options');
|
@@ -3546,7 +3723,7 @@ class rsssl_admin extends rsssl_front_end
|
|
3546 |
}
|
3547 |
if (!defined("rsssl_pro_version")) {
|
3548 |
if (!class_exists('RSSSL_PRO')) {
|
3549 |
-
$premium_link = '<a target="_blank" href="https://really-simple-ssl.com/
|
3550 |
array_unshift($links, $premium_link);
|
3551 |
}
|
3552 |
}
|
@@ -3639,10 +3816,12 @@ class rsssl_admin extends rsssl_front_end
|
|
3639 |
return false;
|
3640 |
}
|
3641 |
|
3642 |
-
|
|
|
|
|
3643 |
* Retrieve the contents of the test page
|
3644 |
-
|
3645 |
-
|
3646 |
|
3647 |
protected function get_test_page_contents()
|
3648 |
{
|
@@ -3664,10 +3843,8 @@ class rsssl_admin extends rsssl_front_end
|
|
3664 |
$this->trace_log("test page url, enter in browser to check manually: " . $testpage_url);
|
3665 |
|
3666 |
if (!is_wp_error($response) && (strpos($filecontents, "#SSL TEST PAGE#") !== false)) {
|
3667 |
-
|
3668 |
$this->trace_log("SSL test page loaded successfully");
|
3669 |
} else {
|
3670 |
-
|
3671 |
$error = "";
|
3672 |
if (is_wp_error($response)) $error = $response->get_error_message();
|
3673 |
$this->trace_log("Could not open testpage " . $error);
|
@@ -3700,7 +3877,6 @@ class rsssl_admin extends rsssl_front_end
|
|
3700 |
*
|
3701 |
* Determine the htaccess file. This can be either the regular .htaccess file, or an htaccess.conf file on bitnami installations.
|
3702 |
*
|
3703 |
-
*
|
3704 |
*/
|
3705 |
|
3706 |
public function htaccess_file() {
|
@@ -3713,21 +3889,48 @@ class rsssl_admin extends rsssl_front_end
|
|
3713 |
return $htaccess_file;
|
3714 |
}
|
3715 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3716 |
public function highlight_js(){
|
3717 |
?>
|
3718 |
<script>
|
3719 |
jQuery(document).ready(function ($) {
|
3720 |
'use strict';
|
3721 |
-
|
3722 |
-
if (
|
3723 |
-
|
|
|
3724 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
3725 |
});
|
3726 |
});
|
3727 |
</script>
|
3728 |
<?php
|
3729 |
}
|
3730 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3731 |
public function maybe_remove_highlight_from_url() {
|
3732 |
|
3733 |
$http_referrer = isset($_POST['_wp_http_referer']) ? $_POST['_wp_http_referer'] : false;
|
@@ -3761,38 +3964,43 @@ function rsssl_autoreplace_insecure_links(){
|
|
3761 |
}
|
3762 |
|
3763 |
function rsssl_ssl_enabled(){
|
3764 |
-
|
|
|
|
|
|
|
|
|
3765 |
}
|
3766 |
|
3767 |
function rsssl_ssl_detected(){
|
3768 |
-
|
3769 |
-
|
3770 |
-
|
3771 |
-
|
3772 |
-
|
3773 |
-
|
3774 |
-
|
|
|
|
|
3775 |
|
3776 |
return false;
|
3777 |
}
|
3778 |
|
3779 |
function rsssl_check_redirect(){
|
|
|
|
|
|
|
3780 |
if (RSSSL()->really_simple_ssl->has_301_redirect() && RSSSL()->rsssl_server->uses_htaccess() && RSSSL()->really_simple_ssl->htaccess_contains_redirect_rules()) {
|
3781 |
return 'htaccess-redirect-set';
|
3782 |
}
|
3783 |
if (RSSSL()->really_simple_ssl->has_301_redirect() && RSSSL()->really_simple_ssl->wp_redirect && RSSSL()->rsssl_server->uses_htaccess() && !RSSSL()->really_simple_ssl->htaccess_redirect) {
|
3784 |
return 'wp-redirect-to-htaccess';
|
3785 |
}
|
3786 |
-
if (RSSSL()->
|
3787 |
-
|
3788 |
-
|
3789 |
-
|
3790 |
-
|
3791 |
-
|
3792 |
-
return 'htaccess-not-writeable';
|
3793 |
-
} else {
|
3794 |
-
return 'htaccess-cannot-be-set';
|
3795 |
-
}
|
3796 |
} else {
|
3797 |
return 'default';
|
3798 |
}
|
@@ -3825,3 +4033,54 @@ function rsssl_htaccess_redirect_allowed()
|
|
3825 |
{
|
3826 |
return RSSSL()->really_simple_ssl->htaccess_redirect_allowed();
|
3827 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
function __construct()
|
50 |
{
|
51 |
|
52 |
+
if (isset(self::$_this))
|
53 |
wp_die(sprintf(__('%s is a singleton class and you cannot create a second instance.', 'really-simple-ssl'), get_class($this)));
|
54 |
|
55 |
self::$_this = $this;
|
663 |
/**
|
664 |
* Log events during plugin execution
|
665 |
*
|
666 |
+
* @param string $msg
|
667 |
+
*
|
668 |
* @since 2.1
|
669 |
*
|
670 |
* @access public
|
674 |
public function trace_log($msg)
|
675 |
{
|
676 |
if (!$this->debug) return;
|
677 |
+
if (strpos($this->debug_log, $msg)) return;
|
678 |
$this->debug_log = $this->debug_log . "<br>" . $msg;
|
|
|
679 |
error_log($msg);
|
680 |
}
|
681 |
|
696 |
if (defined('RSSSL_SAFE_MODE') && RSSSL_SAFE_MODE) $safe_mode = RSSSL_SAFE_MODE;
|
697 |
|
698 |
if (!current_user_can($this->capability)) return;
|
699 |
+
$this->trace_log("<br>" . "<b>" . "SSL Configuration" . "</b>");
|
700 |
if ($this->site_has_ssl) {
|
701 |
//when one of the used server variables was found, test if the redirect works
|
702 |
|
1283 |
|
1284 |
public function detect_configuration()
|
1285 |
{
|
1286 |
+
$this->trace_log("<b>" . "Detecting configuration" . "</b>");
|
|
|
|
|
1287 |
//if current page is on SSL, we can assume SSL is available, even when an errormsg was returned
|
1288 |
if ($this->is_ssl_extended()) {
|
|
|
1289 |
$this->site_has_ssl = TRUE;
|
1290 |
} else {
|
1291 |
//if certificate is valid
|
1343 |
}
|
1344 |
}
|
1345 |
|
|
|
1346 |
}
|
1347 |
$this->check_for_siteurl_in_wpconfig();
|
1348 |
|
1559 |
return $version;
|
1560 |
}
|
1561 |
}
|
1562 |
+
|
1563 |
+
/**
|
1564 |
+
* @return bool
|
1565 |
+
*
|
1566 |
+
* Check if the .htaccess redirect is allowed on this setup
|
1567 |
+
*
|
1568 |
+
* @since 2.0
|
1569 |
+
*
|
1570 |
+
*/
|
1571 |
+
|
1572 |
+
public function htaccess_redirect_allowed()
|
1573 |
{
|
1574 |
if (is_multisite() && RSSSL()->rsssl_multisite->is_per_site_activated_multisite_subfolder_install()) {
|
1575 |
return false;
|
1576 |
+
} if (RSSSL()->rsssl_server->uses_htaccess()) {
|
1577 |
return true;
|
1578 |
+
} else {
|
1579 |
+
return false;
|
1580 |
}
|
1581 |
}
|
1582 |
|
1583 |
+
/**
|
1584 |
+
* @return bool
|
1585 |
+
*
|
1586 |
+
* Checks if the htaccess contains redirect rules, either actual redirect or a rsssl marker.
|
1587 |
+
*
|
1588 |
+
* @since 2.0
|
1589 |
+
*
|
1590 |
+
*/
|
1591 |
|
1592 |
public function htaccess_contains_redirect_rules()
|
1593 |
{
|
1632 |
}
|
1633 |
}
|
1634 |
|
1635 |
+
/**
|
1636 |
+
* @return bool
|
|
|
1637 |
*
|
1638 |
+
* Checks if a 301 redirect is set
|
1639 |
+
* this is the case if either the wp_redirect is set, or the htaccess redirect is set.
|
1640 |
+
*
|
1641 |
+
*/
|
1642 |
|
1643 |
public function has_301_redirect()
|
1644 |
{
|
1743 |
}
|
1744 |
}
|
1745 |
|
1746 |
+
/**
|
1747 |
+
* @param bool $oldvalue
|
1748 |
+
* @param bool $newvalue
|
1749 |
+
* @param bool $option
|
1750 |
+
*
|
1751 |
+
* Update the .htaccess file after saving settings
|
1752 |
+
*
|
1753 |
+
*/
|
1754 |
|
1755 |
public function update_htaccess_after_settings_save($oldvalue = false, $newvalue = false, $option = false)
|
1756 |
{
|
1810 |
//check if the mixed content fixer is active
|
1811 |
$response = wp_remote_get(home_url());
|
1812 |
|
1813 |
+
if (!is_wp_error($response)) {
|
1814 |
+
if ( is_array( $response ) ) {
|
1815 |
+
$status = wp_remote_retrieve_response_code( $response );
|
1816 |
+
$web_source = wp_remote_retrieve_body( $response );
|
1817 |
+
}
|
1818 |
+
|
1819 |
+
if ( $status != 200 ) {
|
1820 |
+
$mixed_content_fixer_detected = 'no-response';
|
1821 |
+
} elseif ( strpos( $web_source, "data-rsssl=" ) === false ) {
|
1822 |
+
$mixed_content_fixer_detected = 'not-found';
|
1823 |
+
} else {
|
1824 |
+
$mixed_content_fixer_detected = 'found';
|
1825 |
+
}
|
1826 |
}
|
1827 |
|
1828 |
+
if (is_wp_error($response)) {
|
1829 |
+
$mixed_content_fixer_detected = 'error';
|
1830 |
+
$error = $response->get_error_message();
|
1831 |
+
set_transient('rsssl_curl_error' , $error, 600);
|
1832 |
+
if (!empty($error) && (strpos($error, "cURL error") !== false) ) {
|
1833 |
+
$mixed_content_fixer_detected = 'curl-error';
|
1834 |
+
}
|
1835 |
}
|
1836 |
|
1837 |
set_transient('rsssl_mixed_content_fixer_detected', $mixed_content_fixer_detected, 600);
|
1838 |
}
|
1839 |
|
1840 |
if ($mixed_content_fixer_detected === 'no-response'){
|
1841 |
+
//Could not connect to website
|
1842 |
+
$this->trace_log("Could not connect to webpage to detect mixed content fixer");
|
1843 |
$this->mixed_content_fixer_detected = FALSE;
|
1844 |
}
|
1845 |
if ($mixed_content_fixer_detected === 'not-found'){
|
1846 |
+
//Mixed content fixer marker not found in the websource
|
1847 |
+
$this->trace_log("Mixed content marker not found in websource");
|
1848 |
$this->mixed_content_fixer_detected = FALSE;
|
1849 |
}
|
1850 |
+
if ($mixed_content_fixer_detected === 'error'){
|
1851 |
+
$this->trace_log("Mixed content marker not found: unknown error");
|
1852 |
+
//Error encountered while retrieving the webpage. Fallback since most errors should be cURL errors
|
1853 |
+
$this->mixed_content_fixer_detected = FALSE;
|
1854 |
+
}
|
1855 |
+
if ($mixed_content_fixer_detected === 'curl-error'){
|
1856 |
+
//Site has has a cURL error
|
1857 |
+
$this->trace_log("Mixed content fixer could not be detected: cURL error");
|
1858 |
+
$this->mixed_content_fixer_detected = FALSE;
|
1859 |
+
}
|
1860 |
if ($mixed_content_fixer_detected === 'found'){
|
1861 |
+
$this->trace_log("Mixed content fixer succesfully detected");
|
1862 |
+
//Mixed content fixer was successfully detected on the front end
|
1863 |
$this->mixed_content_fixer_detected = true;
|
1864 |
}
|
1865 |
|
2108 |
show a notice when the .htaccess file does not contain redirect rules
|
2109 |
*/
|
2110 |
|
2111 |
+
$options = get_option('rlrsssl_options');
|
2112 |
+
|
2113 |
+
if (!$this->wp_redirect && $this->ssl_enabled && !$this->htaccess_warning_shown && !$this->htaccess_contains_redirect_rules() && $options['dismiss_all_notices'] !== true) {
|
2114 |
|
2115 |
add_action('admin_print_footer_scripts', array($this, 'insert_dismiss_htaccess'));
|
2116 |
?>
|
2142 |
SSL success message
|
2143 |
*/
|
2144 |
|
2145 |
+
if ($this->ssl_enabled && $this->site_has_ssl && !$this->ssl_success_message_shown && $options['dismiss_all_notices'] !== true) {
|
2146 |
if (!current_user_can("activate_plugins")) return;
|
2147 |
|
2148 |
add_action('admin_print_footer_scripts', array($this, 'insert_dismiss_success'));
|
2282 |
<?php
|
2283 |
}
|
2284 |
|
2285 |
+
/**
|
2286 |
+
*
|
2287 |
+
* Insert the script to dismiss dashboard notices
|
2288 |
+
*/
|
2289 |
+
|
2290 |
public function insert_dismiss_settings_script()
|
2291 |
{
|
2292 |
$ajax_nonce = wp_create_nonce("really-simple-ssl");
|
2555 |
|
2556 |
$enable = __("Enable", "really-simple-ssl");
|
2557 |
$dismiss = __("dismiss", "really-simple-ssl");
|
2558 |
+
$curl_error = get_transient('rsssl_curl_error');
|
2559 |
+
|
2560 |
+
if (RSSSL()->rsssl_server->uses_htaccess()) {
|
2561 |
+
$redirect_plusone = true;
|
2562 |
+
} else {
|
2563 |
+
$redirect_plusone = false;
|
2564 |
+
}
|
2565 |
|
2566 |
$notices = array(
|
2567 |
'ssl_enabled' => array(
|
2568 |
'callback' => 'rsssl_ssl_enabled',
|
2569 |
'output' => array(
|
2570 |
+
'ssl-enabled' => array(
|
2571 |
'msg' =>__('SSL is enabled on your site.', 'really-simple-ssl'),
|
2572 |
'icon' => 'success'
|
2573 |
),
|
2574 |
+
'ssl-not-enabled' => array(
|
2575 |
'msg' => __('SSL is not enabled yet', 'really-simple-ssl'),
|
2576 |
'icon' => 'warning'
|
2577 |
),
|
2600 |
'icon' => 'warning',
|
2601 |
'dismissible' => true
|
2602 |
),
|
2603 |
+
'error' => array(
|
2604 |
+
'msg' =>__('Error occured when retrieving the webpage.', 'really-simple-ssl'),
|
2605 |
+
'icon' => 'warning',
|
2606 |
+
'dismissible' => true
|
2607 |
+
),
|
2608 |
+
'curl-error' => array(
|
2609 |
+
'msg' =>sprintf(__("The mixed content fixer could not be detected due to a cURL error: %s. cURL errors are often caused by an outdated version of PHP or cURL and don't affect the front-end of your site. Contact your hosting provider for a fix. %sMore information about this warning%s", 'really-simple-ssl'), "<b>" . $curl_error . "</b>", '<a target="_blank" href="https://www.really-simple-ssl.com/knowledge-base/curl-errors/">', '</a>' ),
|
2610 |
+
'icon' => 'warning',
|
2611 |
+
'dismissible' => true
|
2612 |
+
),
|
2613 |
),
|
2614 |
),
|
2615 |
|
2631 |
),
|
2632 |
),
|
2633 |
|
2634 |
+
'wordpress_redirect' => array(
|
2635 |
+
'condition' => array('rsssl_wp_redirect_condition'),
|
2636 |
+
'callback' => 'rsssl_wordpress_redirect',
|
2637 |
+
'output' => array(
|
2638 |
+
'301-wp-redirect' => array(
|
2639 |
+
'msg' => __('301 redirect to https set: WordPress redirect.', 'really-simple-ssl'),
|
2640 |
+
'icon' => 'success'
|
2641 |
+
),
|
2642 |
+
'no-redirect' => array(
|
2643 |
+
'msg' => __('No 301 redirect is set. Enable the WordPress 301 redirect in the settings to get a 301 permanent redirect.', 'really-simple-ssl'),
|
2644 |
+
'icon' => 'warning'
|
2645 |
+
),
|
2646 |
+
)
|
2647 |
+
),
|
2648 |
|
2649 |
'check_redirect' => array(
|
2650 |
+
'condition' => array('rsssl_ssl_enabled' , 'rsssl_htaccess_redirect_allowed', 'rsssl_no_multisite'),
|
2651 |
+
'callback' => 'rsssl_check_redirect',
|
2652 |
'output' => array(
|
2653 |
'htaccess-redirect-set' => array(
|
2654 |
'msg' =>__('301 redirect to https set: .htaccess redirect.', 'really-simple-ssl'),
|
2655 |
+
'icon' => 'success'
|
|
|
|
|
|
|
|
|
|
|
|
|
2656 |
),
|
2657 |
+
//generate an enable link to highlight the setting, setting name is same as array key
|
2658 |
+
$enable_link = $this->generate_enable_link($setting_name = 'wp-redirect-to-htaccess'),
|
2659 |
'wp-redirect-to-htaccess' => array(
|
2660 |
'msg' => __('WordPress 301 redirect enabled. We recommend to enable the 301 .htaccess redirect option on your specific setup.', 'really-simple-ssl') . " "
|
2661 |
+
. "<span><a href=$enable_link>$enable</a></span>" . " "
|
2662 |
. __("or", "really-simple-ssl")
|
2663 |
. "<span class='rsssl-dashboard-dismiss' data-dismiss_type='check_redirect'><a href='#' class='rsssl-dismiss-text rsssl-close-warning'>$dismiss</a></span>"
|
2664 |
. "<span class='rsssl-dashboard-plusone update-plugins rsssl-update-count'><span class='update-count'>1</span></span>",
|
2665 |
'icon' => 'warning',
|
2666 |
+
'plusone' => $redirect_plusone,
|
2667 |
'dismissible' => true
|
2668 |
),
|
2669 |
+
'no-redirect-set' => array(
|
2670 |
'msg' => __('Enable a .htaccess redirect or WordPress redirect in the settings to create a 301 redirect.', 'really-simple-ssl'),
|
2671 |
'icon' => 'warning',
|
2672 |
+
'dismissible' => false
|
2673 |
),
|
2674 |
'htaccess-not-writeable' => array(
|
2675 |
'msg' => __('.htaccess is not writable. Set 301 WordPress redirect, or set the .htaccess manually if you want to redirect in .htaccess.', 'really-simple-ssl'),
|
2677 |
'dismissible' => true
|
2678 |
),
|
2679 |
'htaccess-cannot-be-set' => array(
|
2680 |
+
'msg' => __('Https redirect cannot be set in the .htaccess file. Set the .htaccess redirect manually or enable the WordPress 301 redirect in the settings.', 'really-simple-ssl'),
|
2681 |
'icon' => 'warning',
|
2682 |
'dismissible' => true
|
2683 |
),
|
2689 |
),
|
2690 |
),
|
2691 |
|
2692 |
+
'elementor' => array(
|
2693 |
+
'condition' => array('uses_elementor' , 'ssl_activation_time_no_longer_then_3_days_ago'),
|
2694 |
+
'callback' => 'rsssl_elementor_notice',
|
2695 |
+
'output' => array(
|
2696 |
+
'elementor-notice' => array(
|
2697 |
+
'msg' => sprintf(__("Your site uses Elementor. This can require some additional steps before getting the secure lock. %sSee our guide for detailed instructions%s ", "really-simple-ssl"), '<a target="_blank" href="https://really-simple-ssl.com/knowledge-base/how-to-fix-mixed-content-in-elementor-after-moving-to-ssl/">', '</a>')
|
2698 |
+
. __("or", "really-simple-ssl")
|
2699 |
+
. "<span class='rsssl-dashboard-dismiss' data-dismiss_type='elementor'><a href='#' class='rsssl-dismiss-text rsssl-close-warning'>$dismiss</a></span>",
|
2700 |
+
'icon' => 'warning',
|
2701 |
+
'dismissible' => true
|
2702 |
+
),
|
2703 |
+
),
|
2704 |
+
),
|
2705 |
|
2706 |
'hsts_enabled' => array(
|
2707 |
+
'condition' => array('rsssl_no_multisite'),
|
2708 |
'callback' => 'rsssl_hsts_enabled',
|
2709 |
'output' => array(
|
2710 |
'contains-hsts' => array(
|
2718 |
),
|
2719 |
),
|
2720 |
|
|
|
2721 |
'secure_cookies_set' => array(
|
2722 |
'callback' => 'rsssl_secure_cookies_set',
|
2723 |
'output' => array(
|
2752 |
}
|
2753 |
|
2754 |
|
2755 |
+
/**
|
2756 |
+
* @param $setting_name
|
2757 |
+
*
|
2758 |
+
* @return string
|
2759 |
+
*
|
2760 |
+
* Generate an enable link for the specific setting, redirects to settings page and highlights the setting.
|
2761 |
+
*
|
2762 |
+
*/
|
2763 |
+
|
2764 |
+
public function generate_enable_link($setting_name)
|
2765 |
+
{
|
2766 |
+
return add_query_arg(array("page"=>"rlrsssl_really_simple_ssl", "tab"=>"settings", "highlight"=>"$setting_name"),admin_url("options-general.php"));
|
2767 |
+
}
|
2768 |
+
|
2769 |
+
/**
|
2770 |
+
* @param $id
|
2771 |
+
* @param $notice
|
2772 |
+
*
|
2773 |
+
* Generate a notice row in the configuration dashboard tab
|
2774 |
+
*
|
2775 |
+
* @since 3.2
|
2776 |
+
*
|
2777 |
+
*/
|
2778 |
+
|
2779 |
private function notice_row($id, $notice){
|
2780 |
if (!current_user_can('manage_options')) return;
|
2781 |
|
2811 |
<td><?php echo $icon?></td><td class="rsssl-table-td-main-content"><?php echo $msg?></td>
|
2812 |
<td class="rsssl-dashboard-dismiss" data-dismiss_type="<?php echo $id?>"><?php echo $dismiss?></td>
|
2813 |
</tr>
|
|
|
2814 |
<?php
|
2815 |
}
|
2816 |
|
2817 |
+
/**
|
2818 |
+
*
|
2819 |
+
* Reset the plusone count transient
|
2820 |
+
*
|
2821 |
+
* @since 3.2
|
2822 |
+
*
|
2823 |
+
*/
|
2824 |
+
|
2825 |
public function reset_plusone_cache(){
|
2826 |
delete_transient('rsssl_plusone_count');
|
2827 |
}
|
2828 |
|
2829 |
+
/**
|
2830 |
+
* @return int|mixed
|
2831 |
+
*
|
2832 |
+
* Count the plusones
|
2833 |
+
*
|
2834 |
+
* @since 3.2
|
2835 |
+
*/
|
2836 |
+
|
2837 |
public function count_plusones(){
|
2838 |
if (!current_user_can('manage_options')) return 0;
|
2839 |
$count = get_transient('rsssl_plusone_count');
|
2962 |
<?php
|
2963 |
if ($this->debug) {
|
2964 |
echo "<h2>" . __("Log for debugging purposes", "really-simple-ssl") . "</h2>";
|
2965 |
+
echo "<p>" . __("Send us a copy of these lines if you have any issues. The log will be erased when debug is set to false", "really-simple-ssl") . "</p>";
|
2966 |
echo "<div class='debug-log'>";
|
2967 |
if (defined('RSSSL_SAFE_MODE') && RSSSL_SAFE_MODE) echo "SAFE MODE<br>";
|
|
|
|
|
|
|
|
|
2968 |
|
2969 |
+
echo "<b>General</b><br>";
|
2970 |
+
echo "Plugin version: " . rsssl_version ."<br>";
|
2971 |
+
|
2972 |
+
if (RSSSL()->rsssl_certificate->is_valid()) {
|
2973 |
+
echo "SSL certificate is valid<br>";
|
2974 |
+
} else {
|
2975 |
+
echo "Invalid SSL certificate<br>";
|
2976 |
+
}
|
2977 |
+
echo ($this->ssl_enabled) ? "SSL is enabled<br><bR>" : "SSL is not yet enabled<br><br>";
|
2978 |
+
|
2979 |
+
echo "<b>Options</b><br>";
|
2980 |
+
if ($this->autoreplace_insecure_links) echo "* Mixed content fixer<br>";
|
2981 |
+
if ($this->wp_redirect) echo "* WordPress redirect<br>";
|
2982 |
+
if ($this->htaccess_redirect) echo "* htaccess redirect<br>";
|
2983 |
+
if ($this->do_not_edit_htaccess) echo "* Stop editing the .htaccess file<br>";
|
2984 |
+
if ($this->switch_mixed_content_fixer_hook) echo "* Use alternative method to fix mixed content<br>";
|
2985 |
+
if ($this->dismiss_all_notices) echo "* Dismiss all Really Simple SSL notices<br>";
|
2986 |
+
echo "<br>";
|
2987 |
+
|
2988 |
+
echo "<b>Server information</b><br>";
|
2989 |
+
echo "Server: " . RSSSL()->rsssl_server->get_server() . "<br>";
|
2990 |
+
echo "SSL Type: $this->ssl_type<br>";
|
2991 |
if (is_multisite()) {
|
2992 |
echo "MULTISITE<br>";
|
2993 |
echo (!RSSSL()->rsssl_multisite->ssl_enabled_networkwide) ? "SSL is being activated per site<br>" : "SSL is activated network wide<br>";
|
2994 |
}
|
2995 |
|
|
|
2996 |
echo $this->debug_log;
|
2997 |
+
|
2998 |
+
echo "<br><br><b>Constants</b><br>";
|
2999 |
+
|
3000 |
+
if (defined('RSSSL_FORCE_ACTIVATE')) echo "RSSSL_FORCE_ACTIVATE defined";
|
3001 |
+
if (defined('RSSSL_NO_FLUSH')) echo "RSSSL_NO_FLUSH defined";
|
3002 |
+
if (defined('RSSSL_DISMISS_ACTIVATE_SSL_NOTICE')) echo "RSSSL_DISMISS_ACTIVATE_SSL_NOTICE defined";
|
3003 |
+
if (defined('RLRSSSL_DO_NOT_EDIT_HTACCESS')) echo "RLRSSSL_DO_NOT_EDIT_HTACCESS defined";
|
3004 |
+
if (defined('RSSSL_SAFE_MODE')) echo "RSSSL_SAFE_MODE defined";
|
3005 |
+
if (defined("RSSSL_SERVER_OVERRIDE")) echo "RSSSL_SERVER_OVERRIDE defined";
|
3006 |
+
|
3007 |
+
if( !defined('RSSSL_FORCE_ACTIVATE')
|
3008 |
+
&& !defined('RSSSL_NO_FLUSH')
|
3009 |
+
&& !defined('RSSSL_DISMISS_ACTIVATE_SSL_NOTICE')
|
3010 |
+
&& !defined('RLRSSSL_DO_NOT_EDIT_HTACCESS')
|
3011 |
+
&& !defined('RSSSL_SAFE_MODE')
|
3012 |
+
&& !defined("RSSSL_SERVER_OVERRIDE")
|
3013 |
+
) echo "No constants defined";
|
3014 |
+
|
3015 |
+
echo "</div>";
|
3016 |
$this->debug_log = "";
|
3017 |
$this->save_options();
|
3018 |
} else {
|
3113 |
}
|
3114 |
}
|
3115 |
|
3116 |
+
if (defined("EDD_SL_PLUGIN_DIR") && (get_locale() === 'nl_NL')) {
|
3117 |
+
$this->get_banner_html(array(
|
3118 |
+
'img' => 'edd-moneybird.jpg',
|
3119 |
+
'title' => 'EDD Moneybird',
|
3120 |
+
'description' => __("Export your Easy Digital Downloads sales directly to Moneybird.", "really-simple-ssl"),
|
3121 |
+
'url' => 'https://really-simple-plugins.com/download/edd-moneybird/',
|
3122 |
+
)
|
3123 |
+
);
|
3124 |
|
3125 |
+
}
|
3126 |
|
3127 |
+
if (defined('WC_PLUGIN_FILE') && (get_locale() === 'nl_NL')) {
|
3128 |
+
$this->get_banner_html(array(
|
3129 |
+
'img' => 'woocommerce-moneybird.jpg',
|
3130 |
+
'title' => 'WooCommerce Moneybird',
|
3131 |
+
'description' => __("Export your WooCommerce sales directly to Moneybird.", "really-simple-ssl"),
|
3132 |
+
'url' => 'https://really-simple-plugins.com/download/woocommerce-moneybird/',
|
3133 |
+
)
|
3134 |
+
);
|
3135 |
|
3136 |
+
}
|
3137 |
?>
|
3138 |
</div>
|
3139 |
<?php }
|
3179 |
return '<button type="button" class="close">
|
3180 |
<span class="rsssl-close-warning">X</span>
|
3181 |
</button>';
|
|
|
3182 |
}
|
3183 |
|
3184 |
/**
|
3192 |
|
3193 |
private function get_banner_html($args)
|
3194 |
{
|
|
|
3195 |
$default = array(
|
3196 |
'pro' => false,
|
3197 |
);
|
3282 |
|
3283 |
add_settings_field('id_deactivate_keep_ssl', __("Deactivate plugin and keep SSL", "really-simple-ssl"), array($this, 'get_option_deactivate_keep_ssl'), 'rlrsssl', 'rlrsssl_settings');
|
3284 |
|
|
|
3285 |
}
|
3286 |
|
3287 |
/**
|
3479 |
|
3480 |
public function get_option_htaccess_redirect()
|
3481 |
{
|
|
|
3482 |
$options = get_option('rlrsssl_options');
|
3483 |
|
3484 |
$htaccess_redirect = $this->htaccess_redirect;
|
3495 |
}
|
3496 |
|
3497 |
?>
|
3498 |
+
<label class="rsssl-switch" id="rsssl-maybe-highlight-wp-redirect-to-htaccess">
|
3499 |
<input id="rlrsssl_options" name="rlrsssl_options[htaccess_redirect]" size="40" value="1"
|
3500 |
type="checkbox" <?php checked(1, $this->htaccess_redirect, true) ?> />
|
3501 |
<span class="rsssl-slider rsssl-round"></span>
|
3587 |
RSSSL()->rsssl_help->get_help_tip(__("If this option is set to true, the mixed content fixer will fire on the init hook instead of the template_redirect hook. Only use this option when you experience problems with the mixed content fixer.", "really-simple-ssl"));
|
3588 |
}
|
3589 |
|
3590 |
+
/**
|
3591 |
+
*
|
3592 |
+
* Get the option to dismiss all Really Simple SSL notices
|
3593 |
+
*
|
3594 |
+
* @since 3.2
|
3595 |
+
*
|
3596 |
+
* @access public
|
3597 |
+
*
|
3598 |
+
*/
|
3599 |
+
|
3600 |
public function get_option_dismiss_all_notices()
|
3601 |
{
|
3602 |
?>
|
3661 |
|
3662 |
}
|
3663 |
|
3664 |
+
/**
|
3665 |
+
*
|
3666 |
+
* Mixed content fixer option
|
3667 |
+
*
|
3668 |
+
*/
|
3669 |
+
|
3670 |
public function get_option_autoreplace_insecure_links()
|
3671 |
{
|
3672 |
//$options = get_option('rlrsssl_options');
|
3723 |
}
|
3724 |
if (!defined("rsssl_pro_version")) {
|
3725 |
if (!class_exists('RSSSL_PRO')) {
|
3726 |
+
$premium_link = '<a target="_blank" href="https://really-simple-ssl.com/downloads/really-simple-ssl-pro/">' . __('Premium Support', 'really-simple-ssl') . '</a>';
|
3727 |
array_unshift($links, $premium_link);
|
3728 |
}
|
3729 |
}
|
3816 |
return false;
|
3817 |
}
|
3818 |
|
3819 |
+
/**
|
3820 |
+
* @return mixed|string
|
3821 |
+
*
|
3822 |
* Retrieve the contents of the test page
|
3823 |
+
*
|
3824 |
+
*/
|
3825 |
|
3826 |
protected function get_test_page_contents()
|
3827 |
{
|
3843 |
$this->trace_log("test page url, enter in browser to check manually: " . $testpage_url);
|
3844 |
|
3845 |
if (!is_wp_error($response) && (strpos($filecontents, "#SSL TEST PAGE#") !== false)) {
|
|
|
3846 |
$this->trace_log("SSL test page loaded successfully");
|
3847 |
} else {
|
|
|
3848 |
$error = "";
|
3849 |
if (is_wp_error($response)) $error = $response->get_error_message();
|
3850 |
$this->trace_log("Could not open testpage " . $error);
|
3877 |
*
|
3878 |
* Determine the htaccess file. This can be either the regular .htaccess file, or an htaccess.conf file on bitnami installations.
|
3879 |
*
|
|
|
3880 |
*/
|
3881 |
|
3882 |
public function htaccess_file() {
|
3889 |
return $htaccess_file;
|
3890 |
}
|
3891 |
|
3892 |
+
/**
|
3893 |
+
*
|
3894 |
+
* Insert script to highlight option after dashboard click
|
3895 |
+
*
|
3896 |
+
* @since 3.2
|
3897 |
+
*
|
3898 |
+
* @access public
|
3899 |
+
*
|
3900 |
+
*/
|
3901 |
+
|
3902 |
public function highlight_js(){
|
3903 |
?>
|
3904 |
<script>
|
3905 |
jQuery(document).ready(function ($) {
|
3906 |
'use strict';
|
3907 |
+
<?php
|
3908 |
+
if (isset($_GET['highlight'])) {
|
3909 |
+
$setting_name = sanitize_text_field( $_GET['highlight'] );
|
3910 |
+
echo "var setting_name = '$setting_name'" . ";";
|
3911 |
}
|
3912 |
+
?>
|
3913 |
+
|
3914 |
+
$(function() {
|
3915 |
+
if (document.location.href.indexOf('&highlight=' + setting_name) > -1 ) {
|
3916 |
+
$('#rsssl-maybe-highlight-' + setting_name).closest('tr').addClass('rsssl-highlight');
|
3917 |
+
}
|
3918 |
});
|
3919 |
});
|
3920 |
</script>
|
3921 |
<?php
|
3922 |
}
|
3923 |
|
3924 |
+
/**
|
3925 |
+
*
|
3926 |
+
* Determine whether or not to remove the &highlight= parameter from URL
|
3927 |
+
*
|
3928 |
+
* @since 3.2
|
3929 |
+
*
|
3930 |
+
* @access public
|
3931 |
+
*
|
3932 |
+
*/
|
3933 |
+
|
3934 |
public function maybe_remove_highlight_from_url() {
|
3935 |
|
3936 |
$http_referrer = isset($_POST['_wp_http_referer']) ? $_POST['_wp_http_referer'] : false;
|
3964 |
}
|
3965 |
|
3966 |
function rsssl_ssl_enabled(){
|
3967 |
+
if (RSSSL()->really_simple_ssl->ssl_enabled) {
|
3968 |
+
return 'ssl-enabled';
|
3969 |
+
} else {
|
3970 |
+
return 'ssl-not-enabled';
|
3971 |
+
}
|
3972 |
}
|
3973 |
|
3974 |
function rsssl_ssl_detected(){
|
3975 |
+
if (!RSSSL()->really_simple_ssl->wpconfig_ok()) {
|
3976 |
+
return 'fail';
|
3977 |
+
}
|
3978 |
+
if (!RSSSL()->really_simple_ssl->site_has_ssl) {
|
3979 |
+
return 'no-ssl-detected';
|
3980 |
+
}
|
3981 |
+
if (RSSSL()->really_simple_ssl->site_has_ssl) {
|
3982 |
+
return 'ssl-detected';
|
3983 |
+
}
|
3984 |
|
3985 |
return false;
|
3986 |
}
|
3987 |
|
3988 |
function rsssl_check_redirect(){
|
3989 |
+
if (!RSSSL()->really_simple_ssl->has_301_redirect()) {
|
3990 |
+
return 'no-redirect-set';
|
3991 |
+
}
|
3992 |
if (RSSSL()->really_simple_ssl->has_301_redirect() && RSSSL()->rsssl_server->uses_htaccess() && RSSSL()->really_simple_ssl->htaccess_contains_redirect_rules()) {
|
3993 |
return 'htaccess-redirect-set';
|
3994 |
}
|
3995 |
if (RSSSL()->really_simple_ssl->has_301_redirect() && RSSSL()->really_simple_ssl->wp_redirect && RSSSL()->rsssl_server->uses_htaccess() && !RSSSL()->really_simple_ssl->htaccess_redirect) {
|
3996 |
return 'wp-redirect-to-htaccess';
|
3997 |
}
|
3998 |
+
if (RSSSL()->rsssl_server->uses_htaccess() && (!is_multisite() || !RSSSL()->rsssl_multisite->is_per_site_activated_multisite_subfolder_install())) {
|
3999 |
+
if (!is_writable(RSSSL()->really_simple_ssl->htaccess_file())) {
|
4000 |
+
return 'htaccess-not-writeable';
|
4001 |
+
} else {
|
4002 |
+
return 'htaccess-cannot-be-set';
|
4003 |
+
}
|
|
|
|
|
|
|
|
|
4004 |
} else {
|
4005 |
return 'default';
|
4006 |
}
|
4033 |
{
|
4034 |
return RSSSL()->really_simple_ssl->htaccess_redirect_allowed();
|
4035 |
}
|
4036 |
+
|
4037 |
+
function uses_elementor()
|
4038 |
+
{
|
4039 |
+
if (defined('ELEMENTOR_VERSION') || defined('ELEMENTOR_PRO_VERSION')) {
|
4040 |
+
return true;
|
4041 |
+
} else {
|
4042 |
+
return false;
|
4043 |
+
}
|
4044 |
+
}
|
4045 |
+
|
4046 |
+
function ssl_activation_time_no_longer_then_3_days_ago()
|
4047 |
+
{
|
4048 |
+
|
4049 |
+
$activation_time = get_option('rsssl_activation_timestamp');
|
4050 |
+
$three_days_after_activation = $activation_time + 3 * DAY_IN_SECONDS;
|
4051 |
+
|
4052 |
+
if (time() < $three_days_after_activation) {
|
4053 |
+
return true;
|
4054 |
+
} else {
|
4055 |
+
return false;
|
4056 |
+
}
|
4057 |
+
}
|
4058 |
+
|
4059 |
+
function rsssl_elementor_notice()
|
4060 |
+
{
|
4061 |
+
return 'elementor-notice';
|
4062 |
+
}
|
4063 |
+
|
4064 |
+
function rsssl_wp_redirect_condition() {
|
4065 |
+
if (RSSSL()->really_simple_ssl->has_301_redirect() && RSSSL()->really_simple_ssl->wp_redirect && !RSSSL()->really_simple_ssl->htaccess_redirect) {
|
4066 |
+
return true;
|
4067 |
+
} else {
|
4068 |
+
return false;
|
4069 |
+
}
|
4070 |
+
}
|
4071 |
+
|
4072 |
+
function rsssl_wordpress_redirect() {
|
4073 |
+
if (RSSSL()->really_simple_ssl->has_301_redirect() && RSSSL()->really_simple_ssl->wp_redirect) {
|
4074 |
+
return '301-wp-redirect';
|
4075 |
+
} else {
|
4076 |
+
return 'no-redirect';
|
4077 |
+
}
|
4078 |
+
}
|
4079 |
+
|
4080 |
+
function rsssl_no_multisite(){
|
4081 |
+
if (!is_multisite()) {
|
4082 |
+
return true;
|
4083 |
+
} else {
|
4084 |
+
return false;
|
4085 |
+
}
|
4086 |
+
}
|
css/main.css
CHANGED
@@ -607,12 +607,6 @@ input:focus + .rsssl-slider {
|
|
607 |
padding-left: 10px;
|
608 |
}
|
609 |
|
610 |
-
/*Reset the bootstrap styling to make dashboard dismiss buttons identical*/
|
611 |
-
|
612 |
-
button {
|
613 |
-
all: initial;
|
614 |
-
}
|
615 |
-
|
616 |
.rsssl-dashboard-dismiss .close {
|
617 |
all: initial;
|
618 |
}
|
607 |
padding-left: 10px;
|
608 |
}
|
609 |
|
|
|
|
|
|
|
|
|
|
|
|
|
610 |
.rsssl-dashboard-dismiss .close {
|
611 |
all: initial;
|
612 |
}
|
css/main.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.rsssl-notice{background-color:#fff;border-left:4px solid green;padding:1px 15px}.rsssl-main{flex:1;width:80%;float:left}.rsssl-sidebar img{max-width:100%}#message.updated.notice.activate-ssl{padding-top:10px}.activate-ssl ul,.rsssl-result ul,.rsssl_bullets{list-style-type:square;margin-left:30px}.activate-ssl .button{margin-bottom:20px}.really-simple-ssl-table{display:flex;flex-direction:column;max-width:1140px}.rsssl-table-td-main-content{width:100%}.really-simple-ssl-table tr:first-child{border-top-left-radius:.55rem;border-top-right-radius:.55rem}.really-simple-ssl-table tr:last-child{margin-bottom:0;border-bottom-left-radius:.55rem;border-bottom-right-radius:.55rem}.really-simple-ssl-table tr{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.debug-log{background-color:#fff;padding:15px;border:1px solid black}.rsssl-icons{width:15px;height:15px}.rsssl-update-count{margin-left:4px !important;display:inline-block;vertical-align:top;box-sizing:border-box;margin:1px 0 -1px 2px;padding:0 5px;min-width:18px;height:18px;border-radius:9px;background-color:#ca4a1f;color:#fff;font-size:11px;line-height:1.6;text-align:center;z-index:26}[data-rsssl-tooltip],.rsssl-tooltip{position:relative;cursor:pointer}[data-rsssl-tooltip]:before,[data-rsssl-tooltip]:after,.rsssl-tooltip:before,.rsssl-tooltip:after{position:absolute;visibility:hidden;-ms-filter:"alpha(opacity=0)";filter:alpha(opacity=0);opacity:0;-webkit-transition:opacity .2s ease-in-out,visibility .2s ease-in-out,-webkit-transform .2s cubic-bezier(0.71,1.7,0.77,1.24);-moz-transition:opacity .2s ease-in-out,visibility .2s ease-in-out,-moz-transform .2s cubic-bezier(0.71,1.7,0.77,1.24);transition:opacity .2s ease-in-out,visibility .2s ease-in-out,transform .2s cubic-bezier(0.71,1.7,0.77,1.24);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0);pointer-events:none}[data-rsssl-tooltip]:hover:before,[data-rsssl-tooltip]:hover:after,[data-rsssl-tooltip]:focus:before,[data-rsssl-tooltip]:focus:after,.rsssl-tooltip:hover:before,.rsssl-tooltip:hover:after,.rsssl-tooltip:focus:before,.rsssl-tooltip:focus:after{visibility:visible;-ms-filter:"alpha(opacity=100)";filter:alpha(opacity=100);opacity:1}.rsssl-tooltip:before,[data-rsssl-tooltip]:before{z-index:1001;border:6px solid transparent;background:transparent;content:""}.rsssl-tooltip:after,[data-rsssl-tooltip]:after{z-index:1000;padding:8px;width:160px;background-color:#000;background-color:hsla(0,0,20%,0.9);color:#fff;content:attr(data-rsssl-tooltip);font-size:14px;line-height:1.2}[data-rsssl-tooltip]:before,[data-rsssl-tooltip]:after,.rsssl-tooltip:before,.rsssl-tooltip:after,.rsssl-tooltip-top:before,.rsssl-tooltip-top:after{bottom:100%;left:50%}[data-rsssl-tooltip]:before,.rsssl-tooltip:before,.rsssl-tooltip-top:before{margin-left:-6px;margin-bottom:-12px;border-top-color:#000;border-top-color:hsla(0,0,20%,0.9)}[data-rsssl-tooltip]:after,.rsssl-tooltip:after,.rsssl-tooltip-top:after{margin-left:-80px}[data-rsssl-tooltip]:hover:before,[data-rsssl-tooltip]:hover:after,[data-rsssl-tooltip]:focus:before,[data-rsssl-tooltip]:focus:after,.rsssl-tooltip:hover:before,.rsssl-tooltip:hover:after,.rsssl-tooltip:focus:before,.rsssl-tooltip:focus:after,.rsssl-tooltip-top:hover:before,.rsssl-tooltip-top:hover:after,.rsssl-tooltip-top:focus:before,.rsssl-tooltip-top:focus:after{-webkit-transform:translateY(-12px);-moz-transform:translateY(-12px);transform:translateY(-12px)}.rsssl-tooltip-left:before,.rsssl-tooltip-left:after{right:100%;bottom:50%;left:auto}.rsssl-tooltip-left:before{margin-left:0;margin-right:-12px;margin-bottom:0;border-top-color:transparent;border-left-color:#000;border-left-color:hsla(0,0,20%,0.9)}.rsssl-tooltip-left:hover:before,.rsssl-tooltip-left:hover:after,.rsssl-tooltip-left:focus:before,.rsssl-tooltip-left:focus:after{-webkit-transform:translateX(-12px);-moz-transform:translateX(-12px);transform:translateX(-12px)}.rsssl-tooltip-bottom:before,.rsssl-tooltip-bottom:after{top:100%;bottom:auto;left:50%}.rsssl-tooltip-bottom:before{margin-top:-12px;margin-bottom:0;border-top-color:transparent;border-bottom-color:#000;border-bottom-color:hsla(0,0,20%,0.9)}.rsssl-tooltip-bottom:hover:before,.rsssl-tooltip-bottom:hover:after,.rsssl-tooltip-bottom:focus:before,.rsssl-tooltip-bottom:focus:after{-webkit-transform:translateY(12px);-moz-transform:translateY(12px);transform:translateY(12px)}.rsssl-tooltip-right:before,.rsssl-tooltip-right:after{bottom:50%;left:100%}.rsssl-tooltip-right:before{margin-bottom:0;margin-left:-12px;border-top-color:transparent;border-right-color:#000;border-right-color:hsla(0,0,20%,0.9)}.rsssl-tooltip-right:hover:before,.rsssl-tooltip-right:hover:after,.rsssl-tooltip-right:focus:before,.rsssl-tooltip-right:focus:after{-webkit-transform:translateX(12px);-moz-transform:translateX(12px);transform:translateX(12px)}.rsssl-tooltip-left:before,.rsssl-tooltip-right:before{top:3px}.rsssl-tooltip-left:after,.rsssl-tooltip-right:after{margin-left:0;margin-bottom:-16px}.rsssl-really-simple-plugins-logo{background-color:#dcdcdc;margin-left:-15px;margin-right:-15px}.rsssl-sidebar{width:240px;margin-top:20px;padding-left:15px;padding-right:15px;margin-right:15px;padding-bottom:15px;background-color:#ececec}.rsssl-sidebar-single-content-container{min-height:125px;padding-bottom:35px;margin-bottom:10px;background-color:#dcdcdc;width:100%;border-radius:3%}.rsssl-sidebar-single-content-container-pro{min-height:125px;padding-bottom:35px;margin-bottom:10px;background-color:#dcdcdc;width:100%;border-radius:3%}.rsssl-sidebar-title h3{font-size:.9em}.rsssl-sidebar-text-content-pro{font-weight:700;font-size:.8em;width:90%;margin:auto}.rsssl-sidebar-text-content{width:45%;padding-top:5px;padding-right:7px;font-weight:700;font-size:.8em;float:right;margin:10px auto}.rsssl-pro-image{height:30px;margin-top:6px}.rsssl-sidebar-image-pro{width:90%;margin:10px}.rsssl-sidebar-image{width:100px;float:left;padding:10px;height:100px}@media screen and (max-width:1024px) and (min-width:541px){.rsssl-main{width:100%}.rsssl-sidebar-title{text-align:center}.rsssl-container{flex-direction:column}.rsssl-sidebar{width:100%}.rsssl-really-simple-plugins-logo{width:40%}.rsssl-sidebar-single-content-container{width:40%;padding-left:25px;float:left;margin-right:25px}.rsssl-sidebar-single-content-container-pro{width:40%;padding-left:25px;margin:auto auto 25px}.rsssl-sidebar-um-text-content{width:40%}.rsssl-pro-image{display:none}}@media screen and (max-width:540px){.rsssl-main{width:100%}.rsssl-container{flex-direction:column}.rsssl-sidebar{display:grid;text-align:-webkit-center;width:70%}.rsssl-sidebar-um-text-content{width:45%}.rsssl-sidebar-single-content-container-pro{padding-bottom:10px}.rsssl-sidebar-single-content-container{padding-bottom:10px}}.rsssl-sidebar h4{font-size:14px;font-style:italic}.rsssl-wrapper{padding:30px}.rsssl-sidebar-list{font-size:.9em}#rsssl-premium-button-pro{display:inline-table;width:40%;text-align:center;float:right;font-size:inherit;height:25px;-webkit-border-radius:12px;-moz-border-radius:12px;border-radius:12px;background-color:#7bd561;color:white;margin-right:5px}.rsssl-sidebar-content{float:left;padding-bottom:10px}hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0}.rsssl-container{display:flex}#rsssl-premium-button{display:inline-table;width:40%;text-align:center;float:right;font-size:inherit;height:25px;-webkit-border-radius:12px;-moz-border-radius:12px;border-radius:12px;background-color:#017faf;color:white;margin-right:5px}.rsssl-more-info-button{clear:both}#TB_ajaxContent{text-align:center !important}#TB_window{height:370px !important}.rsssl-button-deactivate-keep-ssl{margin-right:15px}.rsssl-scan-button{float:left;margin-top:17px;margin-right:5px}.rsssl-switch{position:relative;display:inline-block;width:40px;height:21px}.rsssl-switch input{display:none}.rsssl-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;-webkit-transition:.4s;transition:.4s}.rsssl-slider:before{position:absolute;content:"";height:15px;width:15px;left:4px;bottom:3px;background-color:white;-webkit-transition:.4s;transition:.4s}.rsssl-slider.rsssl-round{border-radius:20px}.rsssl-slider.rsssl-round:before{border-radius:50%}input:checked+.rsssl-slider{background-color:#2daae1}input:checked+.rsssl-slider:before{-webkit-transform:translateX(17px);-ms-transform:translateX(17px);transform:translateX(17px)}input:disabled+.rsssl-slider{background-color:#b3e0f4}input:focus+.rsssl-slider{box-shadow:0 0 1px #2daae1}.debug-log{width:90%}.rsssl-dismiss-text{font-size:1em;color:#0073aa;margin-left:6px}.rsssl-dashboard-plusone{margin-left:8px}.rsssl-highlight{border-left:4px solid #46b450;box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);background-image:none !important;-o-animation:fadeIt 5s ease-in-out;animation:fadeIt 5s ease-in-out}@-o-keyframes fadeIt{0{background-color:#fff}30%{background-color:#d6efd6}100%{background-color:inherit}}@keyframes fadeIt{0{background-color:#fff}30%{background-color:#d6efd6}100%{background-color:inherit}}.form-table th{padding-left:10px}
|
1 |
+
.rsssl-notice{background-color:#fff;border-left:4px solid green;padding:1px 15px}.rsssl-main{flex:1;width:80%;float:left}.rsssl-sidebar img{max-width:100%}#message.updated.notice.activate-ssl{padding-top:10px}.activate-ssl ul,.rsssl-result ul,.rsssl_bullets{list-style-type:square;margin-left:30px}.activate-ssl .button{margin-bottom:20px}.really-simple-ssl-table{display:flex;flex-direction:column;max-width:1140px}.rsssl-table-td-main-content{width:100%}.really-simple-ssl-table tr:first-child{border-top-left-radius:.55rem;border-top-right-radius:.55rem}.really-simple-ssl-table tr:last-child{margin-bottom:0;border-bottom-left-radius:.55rem;border-bottom-right-radius:.55rem}.really-simple-ssl-table tr{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.debug-log{background-color:#fff;padding:15px;border:1px solid black}.rsssl-icons{width:15px;height:15px}.rsssl-update-count{margin-left:4px !important;display:inline-block;vertical-align:top;box-sizing:border-box;margin:1px 0 -1px 2px;padding:0 5px;min-width:18px;height:18px;border-radius:9px;background-color:#ca4a1f;color:#fff;font-size:11px;line-height:1.6;text-align:center;z-index:26}[data-rsssl-tooltip],.rsssl-tooltip{position:relative;cursor:pointer}[data-rsssl-tooltip]:before,[data-rsssl-tooltip]:after,.rsssl-tooltip:before,.rsssl-tooltip:after{position:absolute;visibility:hidden;-ms-filter:"alpha(opacity=0)";filter:alpha(opacity=0);opacity:0;-webkit-transition:opacity .2s ease-in-out,visibility .2s ease-in-out,-webkit-transform .2s cubic-bezier(0.71,1.7,0.77,1.24);-moz-transition:opacity .2s ease-in-out,visibility .2s ease-in-out,-moz-transform .2s cubic-bezier(0.71,1.7,0.77,1.24);transition:opacity .2s ease-in-out,visibility .2s ease-in-out,transform .2s cubic-bezier(0.71,1.7,0.77,1.24);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0);pointer-events:none}[data-rsssl-tooltip]:hover:before,[data-rsssl-tooltip]:hover:after,[data-rsssl-tooltip]:focus:before,[data-rsssl-tooltip]:focus:after,.rsssl-tooltip:hover:before,.rsssl-tooltip:hover:after,.rsssl-tooltip:focus:before,.rsssl-tooltip:focus:after{visibility:visible;-ms-filter:"alpha(opacity=100)";filter:alpha(opacity=100);opacity:1}.rsssl-tooltip:before,[data-rsssl-tooltip]:before{z-index:1001;border:6px solid transparent;background:transparent;content:""}.rsssl-tooltip:after,[data-rsssl-tooltip]:after{z-index:1000;padding:8px;width:160px;background-color:#000;background-color:hsla(0,0,20%,0.9);color:#fff;content:attr(data-rsssl-tooltip);font-size:14px;line-height:1.2}[data-rsssl-tooltip]:before,[data-rsssl-tooltip]:after,.rsssl-tooltip:before,.rsssl-tooltip:after,.rsssl-tooltip-top:before,.rsssl-tooltip-top:after{bottom:100%;left:50%}[data-rsssl-tooltip]:before,.rsssl-tooltip:before,.rsssl-tooltip-top:before{margin-left:-6px;margin-bottom:-12px;border-top-color:#000;border-top-color:hsla(0,0,20%,0.9)}[data-rsssl-tooltip]:after,.rsssl-tooltip:after,.rsssl-tooltip-top:after{margin-left:-80px}[data-rsssl-tooltip]:hover:before,[data-rsssl-tooltip]:hover:after,[data-rsssl-tooltip]:focus:before,[data-rsssl-tooltip]:focus:after,.rsssl-tooltip:hover:before,.rsssl-tooltip:hover:after,.rsssl-tooltip:focus:before,.rsssl-tooltip:focus:after,.rsssl-tooltip-top:hover:before,.rsssl-tooltip-top:hover:after,.rsssl-tooltip-top:focus:before,.rsssl-tooltip-top:focus:after{-webkit-transform:translateY(-12px);-moz-transform:translateY(-12px);transform:translateY(-12px)}.rsssl-tooltip-left:before,.rsssl-tooltip-left:after{right:100%;bottom:50%;left:auto}.rsssl-tooltip-left:before{margin-left:0;margin-right:-12px;margin-bottom:0;border-top-color:transparent;border-left-color:#000;border-left-color:hsla(0,0,20%,0.9)}.rsssl-tooltip-left:hover:before,.rsssl-tooltip-left:hover:after,.rsssl-tooltip-left:focus:before,.rsssl-tooltip-left:focus:after{-webkit-transform:translateX(-12px);-moz-transform:translateX(-12px);transform:translateX(-12px)}.rsssl-tooltip-bottom:before,.rsssl-tooltip-bottom:after{top:100%;bottom:auto;left:50%}.rsssl-tooltip-bottom:before{margin-top:-12px;margin-bottom:0;border-top-color:transparent;border-bottom-color:#000;border-bottom-color:hsla(0,0,20%,0.9)}.rsssl-tooltip-bottom:hover:before,.rsssl-tooltip-bottom:hover:after,.rsssl-tooltip-bottom:focus:before,.rsssl-tooltip-bottom:focus:after{-webkit-transform:translateY(12px);-moz-transform:translateY(12px);transform:translateY(12px)}.rsssl-tooltip-right:before,.rsssl-tooltip-right:after{bottom:50%;left:100%}.rsssl-tooltip-right:before{margin-bottom:0;margin-left:-12px;border-top-color:transparent;border-right-color:#000;border-right-color:hsla(0,0,20%,0.9)}.rsssl-tooltip-right:hover:before,.rsssl-tooltip-right:hover:after,.rsssl-tooltip-right:focus:before,.rsssl-tooltip-right:focus:after{-webkit-transform:translateX(12px);-moz-transform:translateX(12px);transform:translateX(12px)}.rsssl-tooltip-left:before,.rsssl-tooltip-right:before{top:3px}.rsssl-tooltip-left:after,.rsssl-tooltip-right:after{margin-left:0;margin-bottom:-16px}.rsssl-really-simple-plugins-logo{background-color:#dcdcdc;margin-left:-15px;margin-right:-15px}.rsssl-sidebar{width:240px;margin-top:20px;padding-left:15px;padding-right:15px;margin-right:15px;padding-bottom:15px;background-color:#ececec}.rsssl-sidebar-single-content-container{min-height:125px;padding-bottom:35px;margin-bottom:10px;background-color:#dcdcdc;width:100%;border-radius:3%}.rsssl-sidebar-single-content-container-pro{min-height:125px;padding-bottom:35px;margin-bottom:10px;background-color:#dcdcdc;width:100%;border-radius:3%}.rsssl-sidebar-title h3{font-size:.9em}.rsssl-sidebar-text-content-pro{font-weight:700;font-size:.8em;width:90%;margin:auto}.rsssl-sidebar-text-content{width:45%;padding-top:5px;padding-right:7px;font-weight:700;font-size:.8em;float:right;margin:10px auto}.rsssl-pro-image{height:30px;margin-top:6px}.rsssl-sidebar-image-pro{width:90%;margin:10px}.rsssl-sidebar-image{width:100px;float:left;padding:10px;height:100px}@media screen and (max-width:1024px) and (min-width:541px){.rsssl-main{width:100%}.rsssl-sidebar-title{text-align:center}.rsssl-container{flex-direction:column}.rsssl-sidebar{width:100%}.rsssl-really-simple-plugins-logo{width:40%}.rsssl-sidebar-single-content-container{width:40%;padding-left:25px;float:left;margin-right:25px}.rsssl-sidebar-single-content-container-pro{width:40%;padding-left:25px;margin:auto auto 25px}.rsssl-sidebar-um-text-content{width:40%}.rsssl-pro-image{display:none}}@media screen and (max-width:540px){.rsssl-main{width:100%}.rsssl-container{flex-direction:column}.rsssl-sidebar{display:grid;text-align:-webkit-center;width:70%}.rsssl-sidebar-um-text-content{width:45%}.rsssl-sidebar-single-content-container-pro{padding-bottom:10px}.rsssl-sidebar-single-content-container{padding-bottom:10px}}.rsssl-sidebar h4{font-size:14px;font-style:italic}.rsssl-wrapper{padding:30px}.rsssl-sidebar-list{font-size:.9em}#rsssl-premium-button-pro{display:inline-table;width:40%;text-align:center;float:right;font-size:inherit;height:25px;-webkit-border-radius:12px;-moz-border-radius:12px;border-radius:12px;background-color:#7bd561;color:white;margin-right:5px}.rsssl-sidebar-content{float:left;padding-bottom:10px}hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0}.rsssl-container{display:flex}#rsssl-premium-button{display:inline-table;width:40%;text-align:center;float:right;font-size:inherit;height:25px;-webkit-border-radius:12px;-moz-border-radius:12px;border-radius:12px;background-color:#017faf;color:white;margin-right:5px}.rsssl-more-info-button{clear:both}#TB_ajaxContent{text-align:center !important}#TB_window{height:370px !important}.rsssl-button-deactivate-keep-ssl{margin-right:15px}.rsssl-scan-button{float:left;margin-top:17px;margin-right:5px}.rsssl-switch{position:relative;display:inline-block;width:40px;height:21px}.rsssl-switch input{display:none}.rsssl-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;-webkit-transition:.4s;transition:.4s}.rsssl-slider:before{position:absolute;content:"";height:15px;width:15px;left:4px;bottom:3px;background-color:white;-webkit-transition:.4s;transition:.4s}.rsssl-slider.rsssl-round{border-radius:20px}.rsssl-slider.rsssl-round:before{border-radius:50%}input:checked+.rsssl-slider{background-color:#2daae1}input:checked+.rsssl-slider:before{-webkit-transform:translateX(17px);-ms-transform:translateX(17px);transform:translateX(17px)}input:disabled+.rsssl-slider{background-color:#b3e0f4}input:focus+.rsssl-slider{box-shadow:0 0 1px #2daae1}.debug-log{width:90%}.rsssl-dismiss-text{font-size:1em;color:#0073aa;margin-left:6px}.rsssl-dashboard-plusone{margin-left:8px}.rsssl-highlight{border-left:4px solid #46b450;box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);background-image:none !important;-o-animation:fadeIt 5s ease-in-out;animation:fadeIt 5s ease-in-out}@-o-keyframes fadeIt{0{background-color:#fff}30%{background-color:#d6efd6}100%{background-color:inherit}}@keyframes fadeIt{0{background-color:#fff}30%{background-color:#d6efd6}100%{background-color:inherit}}.form-table th{padding-left:10px}.rsssl-dashboard-dismiss .close{all:initial}.rsssl-dashboard-dismiss span{font-size:1.5em;color:darkgrey;font-family:sans-serif}.rsssl-dashboard-dismiss span:hover{cursor:pointer;color:grey}
|
readme.txt
CHANGED
@@ -6,7 +6,7 @@ Requires at least: 4.6
|
|
6 |
License: GPL2
|
7 |
Tested up to: 5.2
|
8 |
Requires PHP: 5.4
|
9 |
-
Stable tag: 3.2.
|
10 |
|
11 |
No setup required! You only need an SSL certificate, and this plugin will do the rest.
|
12 |
|
@@ -30,9 +30,10 @@ some cool features.
|
|
30 |
* The mixed content scan, which shows you what you have to do if you don't have the green lock yet
|
31 |
* The option to enable HTTP Strict Transport Security
|
32 |
* The option to configure your site for the HSTS preload list
|
|
|
33 |
* Mixed Content Fixer for the back-end
|
34 |
-
* More detailed feedback on the configuration page
|
35 |
-
* Certificate expiration check: get an email when your SSL certificate is about to expire
|
36 |
* Premium support
|
37 |
|
38 |
= What does the plugin actually do =
|
@@ -81,6 +82,12 @@ If you are experiencing redirect loops on your site, try these [instructions](ht
|
|
81 |
Yes. There is a dedicated network settings page where you can switch between network activated SSL and per page SSL. In the dedicated pro for multisite plugin, you can override all site settings for SSL on the network level, and can activate and deactivate SSL in the network menu for each site.
|
82 |
|
83 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
84 |
= 3.2.3 =
|
85 |
* Added right-to-left text support
|
86 |
* Show a plusone behind the notice that generated it
|
@@ -90,7 +97,7 @@ Yes. There is a dedicated network settings page where you can switch between net
|
|
90 |
* Added site health notice
|
91 |
|
92 |
= 3.2.2 =
|
93 |
-
* Fix: some single sites setup were having issues with multisite files being
|
94 |
|
95 |
= 3.2.1 =
|
96 |
* Fix: error in regex, cause a fatal error in cases where a plus one already was showing in the settings menu
|
6 |
License: GPL2
|
7 |
Tested up to: 5.2
|
8 |
Requires PHP: 5.4
|
9 |
+
Stable tag: 3.2.4
|
10 |
|
11 |
No setup required! You only need an SSL certificate, and this plugin will do the rest.
|
12 |
|
30 |
* The mixed content scan, which shows you what you have to do if you don't have the green lock yet
|
31 |
* The option to enable HTTP Strict Transport Security
|
32 |
* The option to configure your site for the HSTS preload list
|
33 |
+
* Advanced security headers for additional security
|
34 |
* Mixed Content Fixer for the back-end
|
35 |
+
* More detailed feedback on the configuration page
|
36 |
+
* Certificate expiration check: get an email when your SSL certificate is about to expire
|
37 |
* Premium support
|
38 |
|
39 |
= What does the plugin actually do =
|
82 |
Yes. There is a dedicated network settings page where you can switch between network activated SSL and per page SSL. In the dedicated pro for multisite plugin, you can override all site settings for SSL on the network level, and can activate and deactivate SSL in the network menu for each site.
|
83 |
|
84 |
== Changelog ==
|
85 |
+
= 3.2.4 =
|
86 |
+
* Improved and added dashboard notices
|
87 |
+
* Improved debug logging
|
88 |
+
* Added option to dismiss all Really Simple SSL notices
|
89 |
+
* Fixed a bug where other plugins buttons had their style reset
|
90 |
+
|
91 |
= 3.2.3 =
|
92 |
* Added right-to-left text support
|
93 |
* Show a plusone behind the notice that generated it
|
97 |
* Added site health notice
|
98 |
|
99 |
= 3.2.2 =
|
100 |
+
* Fix: some single sites setup were having issues with multisite files being included.
|
101 |
|
102 |
= 3.2.1 =
|
103 |
* Fix: error in regex, cause a fatal error in cases where a plus one already was showing in the settings menu
|
rlrsssl-really-simple-ssl.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Plugin Name: Really Simple SSL
|
4 |
* Plugin URI: https://www.really-simple-ssl.com
|
5 |
* Description: Lightweight plugin without any setup to make your site SSL proof
|
6 |
-
* Version: 3.2.
|
7 |
* Text Domain: really-simple-ssl
|
8 |
* Domain Path: /languages
|
9 |
* Author: Rogier Lankhorst, Mark Wolters
|
3 |
* Plugin Name: Really Simple SSL
|
4 |
* Plugin URI: https://www.really-simple-ssl.com
|
5 |
* Description: Lightweight plugin without any setup to make your site SSL proof
|
6 |
+
* Version: 3.2.4
|
7 |
* Text Domain: really-simple-ssl
|
8 |
* Domain Path: /languages
|
9 |
* Author: Rogier Lankhorst, Mark Wolters
|