Version Description
- New user interface
- Fix: transient stored with 'WEEK_IN_SECONDS' as string instead of constant
- Improvement: notices dashboard, with dismissable notices
- Improvement: improved naming of settings, and instructions
- Improvement: articles in tips & tricks section
Download this release
Release Info
Developer | RogierLankhorst |
Plugin | Really Simple SSL |
Version | 4.0.0 |
Comparing to | |
See all releases |
Code changes from version 3.3.4 to 4.0.0
- assets/logo-really-simple-ssl.png +0 -0
- assets/really-simple-ssl-logo.svg +1594 -0
- assets/ziprecipes.png +0 -0
- class-admin.php +1504 -1415
- class-certificate.php +29 -6
- class-front-end.php +1 -43
- class-help.php +36 -18
- class-mixed-content-fixer.php +0 -1
- class-multisite.php +401 -361
- class-site-health.php +96 -30
- css/main-rtl.css +1 -1
- css/main-rtl.min.css +1 -1
- css/main.css +162 -146
- css/main.css.map +1 -0
- css/main.less +697 -0
- css/main.min.css +1 -1
- force-deactivate.txt +84 -100
- grid/css/grid-rtl.css +361 -0
- grid/css/grid-rtl.css.map +1 -0
- grid/css/grid-rtl.less +441 -0
- grid/css/grid-rtl.min.css +1 -0
- grid/css/grid.css +678 -0
- grid/css/grid.css.map +1 -0
- grid/css/grid.less +766 -0
- grid/css/grid.min.css +1 -0
- grid/templates/grid-container.php +1 -0
- grid/templates/grid-element.php +14 -0
- grid/templates/header.php +8 -0
- grid/templates/ms-settings.php +3 -0
- grid/templates/other-plugins.php +60 -0
- grid/templates/progress-footer.php +56 -0
- grid/templates/progress-header.php +20 -0
- grid/templates/progress.php +60 -0
- grid/templates/settings-footer.php +3 -0
- grid/templates/settings.php +7 -0
- grid/templates/support-footer.php +8 -0
- grid/templates/support.php +45 -0
- grid/templates/tips-tricks-footer.php +3 -0
- grid/templates/tips-tricks.php +53 -0
- includes/simple-scrollbar.css +51 -0
- includes/simple-scrollbar.js +165 -0
- includes/simple-scrollbar.min.css +1 -0
- includes/simple-scrollbar.min.js +1 -0
- js/scripts.js +134 -0
- js/scripts.min.js +1 -0
- languages/really-simple-ssl.pot +949 -0
- readme.txt +10 -5
- rlrsssl-really-simple-ssl.php +80 -26
- system-status.php +157 -0
assets/logo-really-simple-ssl.png
CHANGED
Binary file
|
assets/really-simple-ssl-logo.svg
ADDED
@@ -0,0 +1,1594 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2 |
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
3 |
+
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="891px" height="140px" viewBox="0 0 891 140" enable-background="new 0 0 891 140" xml:space="preserve"> <image id="image0" width="891" height="140" x="0" y="0"
|
4 |
+
xlink:href="data:image/png;base64,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" />
|
1594 |
+
</svg>
|
assets/ziprecipes.png
CHANGED
Binary file
|
class-admin.php
CHANGED
@@ -5,10 +5,10 @@ class rsssl_admin extends rsssl_front_end
|
|
5 |
{
|
6 |
|
7 |
private static $_this;
|
8 |
-
|
9 |
public $wpconfig_siteurl_not_fixed = FALSE;
|
10 |
public $no_server_variable = FALSE;
|
11 |
public $errors = Array();
|
|
|
12 |
|
13 |
public $do_wpconfig_loadbalancer_fix = FALSE;
|
14 |
public $site_has_ssl = FALSE;
|
@@ -20,14 +20,12 @@ class rsssl_admin extends rsssl_front_end
|
|
20 |
//general settings
|
21 |
public $capability = 'activate_plugins';
|
22 |
|
23 |
-
public $ssl_test_page_error;
|
24 |
public $htaccess_test_success = FALSE;
|
25 |
public $plugin_version = rsssl_version; //deprecated, but used in pro plugin until 1.0.25
|
26 |
|
27 |
public $plugin_dir = "really-simple-ssl";
|
28 |
public $plugin_filename = "rlrsssl-really-simple-ssl.php";
|
29 |
public $ABSpath;
|
30 |
-
|
31 |
public $do_not_edit_htaccess = FALSE;
|
32 |
public $javascript_redirect = FALSE;
|
33 |
public $htaccess_redirect = FALSE;
|
@@ -39,13 +37,10 @@ class rsssl_admin extends rsssl_front_end
|
|
39 |
public $debug = TRUE;
|
40 |
public $debug_log;
|
41 |
|
42 |
-
public $plugin_conflict = ARRAY();
|
43 |
public $plugin_db_version;
|
44 |
-
public $plugin_upgraded;
|
45 |
-
public $mixed_content_fixer_status = "OK";
|
46 |
public $ssl_type = "NA";
|
47 |
-
|
48 |
-
|
49 |
|
50 |
function __construct()
|
51 |
{
|
@@ -61,13 +56,21 @@ class rsssl_admin extends rsssl_front_end
|
|
61 |
|
62 |
$this->get_plugin_upgraded(); //call always, otherwise db version will not match anymore.
|
63 |
|
64 |
-
if (
|
65 |
-
|
66 |
-
|
|
|
|
|
67 |
|
68 |
register_deactivation_hook(dirname(__FILE__) . "/" . $this->plugin_filename, array($this, 'deactivate'));
|
69 |
-
|
70 |
add_action('admin_init', array($this, 'add_privacy_info'));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
71 |
|
72 |
}
|
73 |
|
@@ -76,6 +79,31 @@ class rsssl_admin extends rsssl_front_end
|
|
76 |
return self::$_this;
|
77 |
}
|
78 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
79 |
public function add_privacy_info()
|
80 |
{
|
81 |
if (!function_exists('wp_add_privacy_policy_content')) {
|
@@ -93,10 +121,15 @@ class rsssl_admin extends rsssl_front_end
|
|
93 |
);
|
94 |
}
|
95 |
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
|
|
|
|
|
|
|
|
|
|
100 |
}
|
101 |
|
102 |
/**
|
@@ -134,17 +167,20 @@ class rsssl_admin extends rsssl_front_end
|
|
134 |
add_action('shutdown', 'flush_rewrite_rules');
|
135 |
}
|
136 |
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
- No SSL detected
|
142 |
-
*/
|
143 |
|
|
|
|
|
|
|
|
|
|
|
|
|
144 |
|
145 |
//when configuration should run again
|
146 |
-
if ($this->clicked_activate_ssl() || !$this->ssl_enabled || !$this->site_has_ssl || $is_on_settings_page || is_network_admin()) {
|
147 |
-
|
148 |
if (is_multisite()) $this->build_domain_list();//has to come after clicked_activate_ssl, otherwise this domain won't get counted.
|
149 |
$this->detect_configuration();
|
150 |
|
@@ -170,27 +206,19 @@ class rsssl_admin extends rsssl_front_end
|
|
170 |
|
171 |
//when SSL is enabled, and not enabled by user, ask for activation.
|
172 |
add_action("admin_notices", array($this, 'show_notice_activate_ssl'), 10);
|
173 |
-
add_action('rsssl_activation_notice', array($this, 'no_ssl_detected'), 10);
|
174 |
add_action('rsssl_activation_notice', array($this, 'ssl_detected'), 10);
|
175 |
add_action('rsssl_activation_notice_inner', array($this, 'almost_ready_to_migrate'), 30);
|
176 |
-
add_action('
|
177 |
-
add_action('rsssl_activation_notice_inner', array($this, 'show_enable_ssl_button'), 50);
|
178 |
-
|
179 |
-
add_action('plugins_loaded', array($this, 'check_plugin_conflicts'), 30);
|
180 |
|
181 |
//add the settings page for the plugin
|
182 |
add_action('admin_enqueue_scripts', array($this, 'enqueue_assets'));
|
183 |
-
add_action('admin_init', array($this, 'load_translation'), 20);
|
184 |
|
185 |
//settings page, form and settings link in the plugins page
|
186 |
add_action('admin_menu', array($this, 'add_settings_page'), 40);
|
187 |
-
|
|
|
188 |
add_action('admin_init', array($this, 'listen_for_deactivation'), 40);
|
189 |
-
|
190 |
-
//Only redirect while on own settings page, otherwise deactivate link in plugins overview will break.
|
191 |
-
//if ($this->is_settings_page()) {
|
192 |
-
add_action( 'update_option_rlrsssl_options', array( $this, 'maybe_remove_highlight_from_url' ) );
|
193 |
-
//}
|
194 |
|
195 |
$plugin = rsssl_plugin;
|
196 |
add_filter("plugin_action_links_$plugin", array($this, 'plugin_settings_link'));
|
@@ -198,15 +226,12 @@ class rsssl_admin extends rsssl_front_end
|
|
198 |
//Add update notification to Settings admin menu
|
199 |
add_action('admin_menu', array($this, 'rsssl_edit_admin_menu') );
|
200 |
|
201 |
-
//check if the uninstallfile is safely renamed to php.
|
202 |
-
$this->check_for_uninstall_file();
|
203 |
|
204 |
//callbacks for the ajax dismiss buttons
|
205 |
-
add_action('wp_ajax_dismiss_htaccess_warning', array($this, 'dismiss_htaccess_warning_callback'));
|
206 |
add_action('wp_ajax_dismiss_success_message', array($this, 'dismiss_success_message_callback'));
|
207 |
add_action('wp_ajax_rsssl_dismiss_review_notice', array($this, 'dismiss_review_notice_callback'));
|
208 |
add_action('wp_ajax_rsssl_dismiss_settings_notice', array($this, 'dismiss_settings_notice_callback'));
|
209 |
-
|
210 |
|
211 |
//handle notices
|
212 |
add_action('admin_notices', array($this, 'show_notices'));
|
@@ -217,7 +242,22 @@ class rsssl_admin extends rsssl_front_end
|
|
217 |
add_action("update_option_rlrsssl_options", array($this, "update_htaccess_after_settings_save"), 20, 3);
|
218 |
}
|
219 |
|
220 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
221 |
* Deactivate the plugin while keeping SSL
|
222 |
* Activated when the 'uninstall_keep_ssl' button is clicked in the settings tab
|
223 |
*
|
@@ -225,14 +265,12 @@ class rsssl_admin extends rsssl_front_end
|
|
225 |
|
226 |
public function listen_for_deactivation()
|
227 |
{
|
228 |
-
|
229 |
-
//check if we are on ssl settings page
|
230 |
-
if (!$this->is_settings_page()) return;
|
231 |
//check user role
|
232 |
if (!current_user_can($this->capability)) return;
|
233 |
|
234 |
//check nonce
|
235 |
if (!isset($_GET['token']) || (!wp_verify_nonce($_GET['token'], 'rsssl_deactivate_plugin'))) return;
|
|
|
236 |
//check for action
|
237 |
if (isset($_GET["action"]) && $_GET["action"] == 'uninstall_keep_ssl') {
|
238 |
//deactivate plugin, but don't revert to http.
|
@@ -240,7 +278,6 @@ class rsssl_admin extends rsssl_front_end
|
|
240 |
$plugin = plugin_basename(trim($plugin));
|
241 |
|
242 |
if (is_multisite()) {
|
243 |
-
|
244 |
$network_current = get_site_option('active_sitewide_plugins', array());
|
245 |
if (is_plugin_active_for_network($plugin)) {
|
246 |
unset($network_current[$plugin]);
|
@@ -268,13 +305,11 @@ class rsssl_admin extends rsssl_front_end
|
|
268 |
}
|
269 |
}
|
270 |
|
271 |
-
|
272 |
-
/*
|
273 |
* Remove the plugin from the active plugins array when called from listen_for_deactivation
|
274 |
*
|
275 |
* */
|
276 |
|
277 |
-
|
278 |
public function remove_plugin_from_array($plugin, $current)
|
279 |
{
|
280 |
$key = array_search($plugin, $current);
|
@@ -284,7 +319,7 @@ class rsssl_admin extends rsssl_front_end
|
|
284 |
return $current;
|
285 |
}
|
286 |
|
287 |
-
|
288 |
* @Since 3.1
|
289 |
*
|
290 |
* Check if site uses an htaccess.conf file, used in bitnami installations
|
@@ -312,10 +347,10 @@ class rsssl_admin extends rsssl_front_end
|
|
312 |
return $sites;
|
313 |
}
|
314 |
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
|
320 |
public function switch_to_blog_bw_compatible($site)
|
321 |
{
|
@@ -329,21 +364,17 @@ class rsssl_admin extends rsssl_front_end
|
|
329 |
}
|
330 |
|
331 |
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
|
336 |
private function clicked_activate_ssl()
|
337 |
{
|
338 |
if (!current_user_can($this->capability)) return;
|
339 |
-
//if (!isset( $_POST['rsssl_nonce'] ) || !wp_verify_nonce( $_POST['rsssl_nonce'], 'rsssl_nonce' )) return false;
|
340 |
|
341 |
if (isset($_POST['rsssl_do_activate_ssl'])) {
|
342 |
$this->activate_ssl();
|
343 |
-
|
344 |
-
//if (empty(get_option('rsssl_activation_timestamp'))) {
|
345 |
-
update_option('rsssl_activation_timestamp', time());
|
346 |
-
//}
|
347 |
|
348 |
return true;
|
349 |
}
|
@@ -352,21 +383,21 @@ class rsssl_admin extends rsssl_front_end
|
|
352 |
}
|
353 |
|
354 |
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
|
359 |
public function activate_ssl()
|
360 |
{
|
361 |
$this->ssl_enabled = true;
|
362 |
$this->wp_redirect = true;
|
363 |
-
|
364 |
$this->set_siteurl_to_ssl();
|
365 |
$this->save_options();
|
366 |
-
|
367 |
-
|
368 |
}
|
369 |
|
|
|
|
|
|
|
370 |
|
371 |
public function deactivate_ssl()
|
372 |
{
|
@@ -378,10 +409,11 @@ class rsssl_admin extends rsssl_front_end
|
|
378 |
$this->save_options();
|
379 |
}
|
380 |
|
381 |
-
public function
|
382 |
if (isset($_GET['page']) && $_GET['page'] == 'rlrsssl_really_simple_ssl') return;
|
383 |
$url = add_query_arg( array(
|
384 |
"page" => "rlrsssl_really_simple_ssl",
|
|
|
385 |
), admin_url( "options-general.php" ) );
|
386 |
wp_redirect( $url );
|
387 |
exit;
|
@@ -400,16 +432,15 @@ class rsssl_admin extends rsssl_front_end
|
|
400 |
return apply_filters('rsssl_wpconfig_ok_check', $result);
|
401 |
}
|
402 |
|
403 |
-
|
404 |
-
This message is shown when
|
405 |
-
|
406 |
-
|
407 |
|
408 |
public function show_notice_activate_ssl()
|
409 |
{
|
410 |
//prevent showing the review on edit screen, as gutenberg removes the class which makes it editable.
|
411 |
$screen = get_current_screen();
|
412 |
-
|
413 |
|
414 |
if ($this->ssl_enabled) return;
|
415 |
|
@@ -431,98 +462,186 @@ class rsssl_admin extends rsssl_front_end
|
|
431 |
|
432 |
}
|
433 |
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
?>
|
438 |
-
<style>
|
439 |
-
.activate-ssl {
|
440 |
-
border-left: 4px solid #F8BE2E;
|
441 |
-
}
|
442 |
-
.activate-ssl .button {
|
443 |
-
margin-bottom:20px;
|
444 |
-
}
|
445 |
-
<?php echo apply_filters('rsssl_pro_inline_style', ''); ?>
|
446 |
-
</style>
|
447 |
-
<div id="message" class="notice activate-ssl <?php echo apply_filters('rsssl_activate_notice_class', '');?>">
|
448 |
-
<?php
|
449 |
-
do_action('rsssl_activation_notice_inner');
|
450 |
-
?>
|
451 |
-
</div>
|
452 |
-
<?php
|
453 |
-
}
|
454 |
-
}
|
455 |
|
456 |
-
public function
|
457 |
{
|
458 |
-
|
459 |
-
<style>
|
460 |
-
.rsssl-notice {
|
461 |
-
background-color: #fff;
|
462 |
-
border-left: 4px solid #F8BE2E;
|
463 |
-
padding: 1px 15px;
|
464 |
-
}
|
465 |
-
</style>
|
466 |
-
<div id="message" class="error notice rsssl-notice-certificate">
|
467 |
-
<h1><?php echo __("Detected possible certificate issues", "really-simple-ssl"); ?></h1>
|
468 |
-
<p>
|
469 |
-
<?php
|
470 |
-
$reload_https_url = esc_url_raw("https://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]);
|
471 |
-
$link_open = '<p><a class="button" target="_blank" href="' . $reload_https_url . '">';
|
472 |
-
$link_close = '</a></p>';
|
473 |
-
|
474 |
-
printf(__("Really Simple SSL failed to detect a valid SSL certificate. If you do have an SSL certificate, try to reload this page over https by clicking this button: %sReload over https%s The built-in certificate check will run once daily, to force a new certificate check visit the SSL settings page. ", "really-simple-ssl"), $link_open, $link_close);
|
475 |
-
|
476 |
-
$ssl_test_url = "https://www.ssllabs.com/ssltest/";
|
477 |
-
$link_open = '<a target="_blank" href="' . $ssl_test_url . '">';
|
478 |
-
$link_close = '</a>';
|
479 |
-
|
480 |
-
printf(__("Really Simple SSL requires a valid SSL certificate. You can check your certificate on %sQualys SSL Labs%s.", "really-simple-ssl"), $link_open, $link_close);
|
481 |
-
echo "<br><br>";
|
482 |
-
printf(__("If your site has cPanel, you can %sget a free SSL certificate%s. ", "really-simple-ssl"), '<a target="_blank" href="https://really-simple-ssl.com/knowledge-base/how-to-install-a-free-ssl-certificate-on-your-wordpress-cpanel-hosting/">', '</a>');
|
483 |
-
|
484 |
-
?>
|
485 |
-
</p>
|
486 |
-
</div>
|
487 |
-
<?php }
|
488 |
-
}
|
489 |
-
|
490 |
|
491 |
-
|
492 |
-
|
493 |
-
|
494 |
|
495 |
-
|
|
|
|
|
496 |
|
|
|
|
|
|
|
|
|
|
|
497 |
|
498 |
-
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
|
|
|
|
|
|
|
|
|
|
|
503 |
|
504 |
$backup_link = "https://really-simple-ssl.com/knowledge-base/backing-up-your-site/";
|
505 |
$link_open = '<a target="_blank" href="'.$backup_link.'">';
|
506 |
$link_close = '</a>';
|
507 |
?>
|
508 |
-
<li
|
|
|
509 |
</ul>
|
510 |
-
|
511 |
-
|
512 |
-
|
513 |
-
|
514 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
515 |
|
516 |
-
#message .message-li::before {
|
517 |
-
vertical-align: middle;
|
518 |
-
margin-right: 25px;
|
519 |
-
color: lightgrey;
|
520 |
-
content: "\f345";
|
521 |
-
font: 400 21px/1 dashicons;
|
522 |
-
}
|
523 |
-
</style>
|
524 |
-
<?php
|
525 |
-
}
|
526 |
|
527 |
/**
|
528 |
* @since 2.3
|
@@ -532,53 +651,17 @@ class rsssl_admin extends rsssl_front_end
|
|
532 |
|
533 |
public function show_enable_ssl_button()
|
534 |
{
|
535 |
-
|
536 |
-
?>
|
537 |
-
<style>
|
538 |
-
.btn-premium {
|
539 |
-
margin-left: 10px !important;
|
540 |
-
}
|
541 |
-
.btn-premium-activated {
|
542 |
-
padding-top: 10px;
|
543 |
-
padding-bottom: 10px;
|
544 |
-
}
|
545 |
-
</style>
|
546 |
-
<p>
|
547 |
-
<div class="rsssl-activate-ssl-button">
|
548 |
<form action="" method="post">
|
549 |
<?php wp_nonce_field('rsssl_nonce', 'rsssl_nonce'); ?>
|
550 |
<input type="submit" class='button button-primary'
|
551 |
value="<?php _e("Go ahead, activate SSL!", "really-simple-ssl"); ?>" id="rsssl_do_activate_ssl"
|
552 |
name="rsssl_do_activate_ssl">
|
553 |
<?php if (!defined("rsssl_pro_version") ) { ?>
|
554 |
-
<a class="button
|
555 |
<?php } ?>
|
556 |
</form>
|
557 |
-
|
558 |
-
<div id="rsssl-logo" style="float: right; margin-top: -35px;"><img width=180px" src="<?php echo rsssl_url?>/assets/logo-really-simple-ssl.png" alt="review-logo"></div>
|
559 |
-
</div>
|
560 |
-
</p>
|
561 |
-
<?php
|
562 |
-
}
|
563 |
-
}
|
564 |
-
|
565 |
-
/**
|
566 |
-
* @since 2.3
|
567 |
-
* Shows option to buy pro
|
568 |
-
* @access public
|
569 |
-
*
|
570 |
-
*/
|
571 |
-
|
572 |
-
public function show_pro()
|
573 |
-
{
|
574 |
-
if ($this->site_has_ssl) {
|
575 |
-
?>
|
576 |
-
<p><?php _e('You can also let the automatic scan of the pro version handle this for you, and get premium support, increased security with HSTS and more!', 'really-simple-ssl'); ?>
|
577 |
-
<a target="_blank"
|
578 |
-
href="<?php echo $this->pro_url; ?>"><?php _e("Check out Really Simple SSL Pro", "really-simple-ssl"); ?></a>
|
579 |
-
</p>
|
580 |
-
<?php
|
581 |
-
}
|
582 |
}
|
583 |
|
584 |
/**
|
@@ -598,15 +681,18 @@ class rsssl_admin extends rsssl_front_end
|
|
598 |
return false;
|
599 |
}
|
600 |
|
601 |
-
|
602 |
-
|
603 |
-
|
|
|
|
|
604 |
|
605 |
-
|
606 |
{
|
607 |
if (file_exists(dirname(__FILE__) . '/force-deactivate.php')) {
|
608 |
-
|
609 |
}
|
|
|
610 |
}
|
611 |
|
612 |
/**
|
@@ -630,7 +716,6 @@ class rsssl_admin extends rsssl_front_end
|
|
630 |
$this->review_notice_shown = isset($options['review_notice_shown']) ? $options['review_notice_shown'] : FALSE;
|
631 |
$this->ssl_success_message_shown = isset($options['ssl_success_message_shown']) ? $options['ssl_success_message_shown'] : FALSE;
|
632 |
$this->plugin_db_version = isset($options['plugin_db_version']) ? $options['plugin_db_version'] : "1.0";
|
633 |
-
$this->debug = isset($options['debug']) ? $options['debug'] : FALSE;
|
634 |
$this->do_not_edit_htaccess = isset($options['do_not_edit_htaccess']) ? $options['do_not_edit_htaccess'] : FALSE;
|
635 |
$this->htaccess_redirect = isset($options['htaccess_redirect']) ? $options['htaccess_redirect'] : FALSE;
|
636 |
$this->switch_mixed_content_fixer_hook = isset($options['switch_mixed_content_fixer_hook']) ? $options['switch_mixed_content_fixer_hook'] : FALSE;
|
@@ -644,9 +729,9 @@ class rsssl_admin extends rsssl_front_end
|
|
644 |
$network_htaccess_redirect = isset($network_options["htaccess_redirect"]) ? $network_options["htaccess_redirect"] : false;
|
645 |
$network_do_not_edit_htaccess = isset($network_options["do_not_edit_htaccess"]) ? $network_options["do_not_edit_htaccess"] : false;
|
646 |
/*
|
647 |
-
|
648 |
-
|
649 |
-
|
650 |
$ssl_enabled_networkwide = isset($network_options["ssl_enabled_networkwide"]) ? $network_options["ssl_enabled_networkwide"] : false;
|
651 |
if ($ssl_enabled_networkwide) {
|
652 |
$this->htaccess_redirect = $network_htaccess_redirect;
|
@@ -685,7 +770,8 @@ class rsssl_admin extends rsssl_front_end
|
|
685 |
$nr_of_sites = RSSSL()->rsssl_multisite->get_total_blog_count();
|
686 |
$sites = RSSSL()->rsssl_multisite->get_sites_bw_compatible(0, $nr_of_sites);
|
687 |
|
688 |
-
|
|
|
689 |
foreach ($sites as $site) {
|
690 |
$this->switch_to_blog_bw_compatible($site);
|
691 |
$options = get_option('rlrsssl_options');
|
@@ -697,12 +783,15 @@ class rsssl_admin extends rsssl_front_end
|
|
697 |
}
|
698 |
|
699 |
if (is_plugin_active(rsssl_plugin) && $ssl_enabled) {
|
700 |
-
|
701 |
$this->sites[] = home_url();
|
|
|
702 |
}
|
703 |
restore_current_blog(); //switches back to previous blog, not current, so we have to do it each loop
|
704 |
}
|
705 |
|
|
|
|
|
706 |
set_transient('rsssl_domain_list', $this->sites, HOUR_IN_SECONDS);
|
707 |
|
708 |
$this->save_options();
|
@@ -721,11 +810,23 @@ class rsssl_admin extends rsssl_front_end
|
|
721 |
public function get_plugin_upgraded()
|
722 |
{
|
723 |
if ($this->plugin_db_version != rsssl_version) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
724 |
$this->plugin_db_version = rsssl_version;
|
725 |
-
$this->plugin_upgraded = true;
|
726 |
$this->save_options();
|
727 |
}
|
728 |
-
$this->plugin_upgraded = false;
|
729 |
}
|
730 |
|
731 |
/**
|
@@ -741,10 +842,10 @@ class rsssl_admin extends rsssl_front_end
|
|
741 |
|
742 |
public function trace_log($msg)
|
743 |
{
|
744 |
-
|
|
|
745 |
if (strpos($this->debug_log, $msg)) return;
|
746 |
-
$this->debug_log = $this->debug_log . "
|
747 |
-
error_log($msg);
|
748 |
}
|
749 |
|
750 |
/**
|
@@ -795,7 +896,7 @@ class rsssl_admin extends rsssl_front_end
|
|
795 |
}
|
796 |
|
797 |
if (!is_multisite()) {
|
798 |
-
$this->
|
799 |
}
|
800 |
|
801 |
}
|
@@ -933,16 +1034,12 @@ class rsssl_admin extends rsssl_front_end
|
|
933 |
$wpconfig = preg_replace($siteurl_pattern, "define('WP_SITEURL','https://", $wpconfig);
|
934 |
file_put_contents($wpconfig_path, $wpconfig);
|
935 |
} else {
|
936 |
-
|
937 |
-
$this->trace_log("not able to fix wpconfig siteurl/homeurl.");
|
938 |
-
}
|
939 |
//only when siteurl or homeurl is defined in wpconfig, and wpconfig is not writable is there a possible issue because we cannot edit the defined urls.
|
940 |
$this->wpconfig_siteurl_not_fixed = TRUE;
|
941 |
}
|
942 |
} else {
|
943 |
-
|
944 |
-
$this->trace_log("no siteurl/homeurl defines in wpconfig");
|
945 |
-
}
|
946 |
}
|
947 |
}
|
948 |
|
@@ -1016,19 +1113,13 @@ class rsssl_admin extends rsssl_front_end
|
|
1016 |
}
|
1017 |
|
1018 |
file_put_contents($wpconfig_path, $wpconfig);
|
1019 |
-
|
1020 |
-
$this->trace_log("wp config loadbalancer fix inserted");
|
1021 |
-
}
|
1022 |
} else {
|
1023 |
-
|
1024 |
-
$this->trace_log("wp config loadbalancer fix FAILED");
|
1025 |
-
}
|
1026 |
$this->wpconfig_loadbalancer_fix_failed = TRUE;
|
1027 |
}
|
1028 |
} else {
|
1029 |
-
|
1030 |
-
$this->trace_log("wp config loadbalancer fix already in place, great!");
|
1031 |
-
}
|
1032 |
}
|
1033 |
$this->save_options();
|
1034 |
|
@@ -1054,7 +1145,7 @@ class rsssl_admin extends rsssl_front_end
|
|
1054 |
|
1055 |
//check permissions
|
1056 |
if (!is_writable($wpconfig_path)) {
|
1057 |
-
|
1058 |
return;
|
1059 |
}
|
1060 |
|
@@ -1069,15 +1160,11 @@ class rsssl_admin extends rsssl_front_end
|
|
1069 |
|
1070 |
//check if the fix is already there
|
1071 |
if (strpos($wpconfig, "//Begin Really Simple SSL Server variable fix") !== FALSE) {
|
1072 |
-
|
1073 |
-
$this->trace_log("wp config server variable fix already in place, great!");
|
1074 |
-
}
|
1075 |
return;
|
1076 |
}
|
1077 |
|
1078 |
-
|
1079 |
-
$this->trace_log("Adding server variable to wpconfig");
|
1080 |
-
}
|
1081 |
$rule = $this->get_server_variable_fix_code();
|
1082 |
|
1083 |
$insert_after = "<?php";
|
@@ -1086,7 +1173,7 @@ class rsssl_admin extends rsssl_front_end
|
|
1086 |
$wpconfig = substr_replace($wpconfig, $rule, $pos + 1 + strlen($insert_after), 0);
|
1087 |
}
|
1088 |
file_put_contents($wpconfig_path, $wpconfig);
|
1089 |
-
|
1090 |
|
1091 |
$this->save_options();
|
1092 |
}
|
@@ -1104,12 +1191,12 @@ class rsssl_admin extends rsssl_front_end
|
|
1104 |
protected function get_server_variable_fix_code()
|
1105 |
{
|
1106 |
if (is_multisite() && !RSSSL()->rsssl_multisite->ssl_enabled_networkwide && RSSSL()->rsssl_multisite->is_multisite_subfolder_install()) {
|
1107 |
-
|
1108 |
return "";
|
1109 |
}
|
1110 |
|
1111 |
if (is_multisite() && !RSSSL()->rsssl_multisite->ssl_enabled_networkwide && count($this->sites) == 0) {
|
1112 |
-
|
1113 |
return "";
|
1114 |
}
|
1115 |
|
@@ -1117,9 +1204,7 @@ class rsssl_admin extends rsssl_front_end
|
|
1117 |
$rule = "\n" . "//Begin Really Simple SSL Server variable fix" . "\n";
|
1118 |
foreach ($this->sites as $domain) {
|
1119 |
//remove http or https.
|
1120 |
-
|
1121 |
-
$this->trace_log("getting server variable rule for:" . $domain);
|
1122 |
-
}
|
1123 |
$domain = preg_replace("/(http:\/\/|https:\/\/)/", "", $domain);
|
1124 |
|
1125 |
//we excluded subfolders, so treat as domain
|
@@ -1158,7 +1243,7 @@ class rsssl_admin extends rsssl_front_end
|
|
1158 |
|
1159 |
//check for permissions
|
1160 |
if (!is_writable($wpconfig_path)) {
|
1161 |
-
|
1162 |
$this->errors['wpconfig not writable'] = TRUE;
|
1163 |
return;
|
1164 |
}
|
@@ -1227,8 +1312,6 @@ class rsssl_admin extends rsssl_front_end
|
|
1227 |
|
1228 |
public function save_options()
|
1229 |
{
|
1230 |
-
delete_transient('rsssl_plusone_count');
|
1231 |
-
|
1232 |
//any options added here should also be added to function options_validate()
|
1233 |
$options = array(
|
1234 |
'site_has_ssl' => $this->site_has_ssl,
|
@@ -1238,7 +1321,6 @@ class rsssl_admin extends rsssl_front_end
|
|
1238 |
'ssl_success_message_shown' => $this->ssl_success_message_shown,
|
1239 |
'autoreplace_insecure_links' => $this->autoreplace_insecure_links,
|
1240 |
'plugin_db_version' => $this->plugin_db_version,
|
1241 |
-
'debug' => $this->debug,
|
1242 |
'do_not_edit_htaccess' => $this->do_not_edit_htaccess,
|
1243 |
'htaccess_redirect' => $this->htaccess_redirect,
|
1244 |
'ssl_enabled' => $this->ssl_enabled,
|
@@ -1249,23 +1331,11 @@ class rsssl_admin extends rsssl_front_end
|
|
1249 |
'dismiss_review_notice' => $this->dismiss_review_notice,
|
1250 |
|
1251 |
);
|
1252 |
-
update_option('rlrsssl_options', $options);
|
1253 |
-
}
|
1254 |
-
|
1255 |
-
/**
|
1256 |
-
* Load the translation files
|
1257 |
-
*
|
1258 |
-
* @since 1.0
|
1259 |
-
*
|
1260 |
-
* @access public
|
1261 |
-
*
|
1262 |
-
*/
|
1263 |
|
1264 |
-
|
1265 |
-
{
|
1266 |
-
load_plugin_textdomain('really-simple-ssl', FALSE, dirname(plugin_basename(__FILE__)) . '/languages/');
|
1267 |
}
|
1268 |
|
|
|
1269 |
/**
|
1270 |
* Handles deactivation of this plugin
|
1271 |
*
|
@@ -1303,6 +1373,7 @@ class rsssl_admin extends rsssl_front_end
|
|
1303 |
RSSSL()->rsssl_multisite->deactivate();
|
1304 |
if (!RSSSL()->rsssl_multisite->ssl_enabled_networkwide) $this->build_domain_list();
|
1305 |
}
|
|
|
1306 |
|
1307 |
$this->remove_wpconfig_edit();
|
1308 |
$this->removeHtaccessEdit();
|
@@ -1351,7 +1422,7 @@ class rsssl_admin extends rsssl_front_end
|
|
1351 |
|
1352 |
public function detect_configuration()
|
1353 |
{
|
1354 |
-
$this->trace_log("
|
1355 |
//if current page is on SSL, we can assume SSL is available, even when an errormsg was returned
|
1356 |
if ($this->is_ssl_extended()) {
|
1357 |
$this->site_has_ssl = TRUE;
|
@@ -1434,10 +1505,7 @@ class rsssl_admin extends rsssl_front_end
|
|
1434 |
|
1435 |
$this->htaccess_test_success = get_transient('rsssl_htaccess_test_success');
|
1436 |
if (!$this->htaccess_test_success) {
|
1437 |
-
|
1438 |
-
if ($this->debug) {
|
1439 |
-
$this->trace_log("testing htaccess rules...");
|
1440 |
-
}
|
1441 |
|
1442 |
$filecontents = "";
|
1443 |
$testpage_url = trailingslashit($this->test_url()) . "testssl/";
|
@@ -1597,7 +1665,7 @@ class rsssl_admin extends rsssl_front_end
|
|
1597 |
$this->save_options();
|
1598 |
} else {
|
1599 |
$this->errors['HTACCESS_NOT_WRITABLE'] = TRUE;
|
1600 |
-
|
1601 |
}
|
1602 |
}
|
1603 |
|
@@ -1636,7 +1704,7 @@ class rsssl_admin extends rsssl_front_end
|
|
1636 |
* @since 2.0
|
1637 |
*
|
1638 |
*/
|
1639 |
-
|
1640 |
public function htaccess_redirect_allowed()
|
1641 |
{
|
1642 |
if (is_multisite() && RSSSL()->rsssl_multisite->is_per_site_activated_multisite_subfolder_install()) {
|
@@ -1748,6 +1816,63 @@ class rsssl_admin extends rsssl_front_end
|
|
1748 |
return $result;
|
1749 |
}
|
1750 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1751 |
|
1752 |
/**
|
1753 |
* Adds redirect to https rules to the .htaccess file or htaccess.conf on Bitnami.
|
@@ -1831,7 +1956,7 @@ class rsssl_admin extends rsssl_front_end
|
|
1831 |
}
|
1832 |
|
1833 |
if (!is_writable($this->htaccess_file())) {
|
1834 |
-
|
1835 |
return;
|
1836 |
}
|
1837 |
|
@@ -1902,6 +2027,10 @@ class rsssl_admin extends rsssl_front_end
|
|
1902 |
}
|
1903 |
}
|
1904 |
|
|
|
|
|
|
|
|
|
1905 |
set_transient('rsssl_mixed_content_fixer_detected', $mixed_content_fixer_detected, 600);
|
1906 |
}
|
1907 |
|
@@ -1931,27 +2060,33 @@ class rsssl_admin extends rsssl_front_end
|
|
1931 |
$this->mixed_content_fixer_detected = true;
|
1932 |
}
|
1933 |
|
|
|
|
|
|
|
|
|
|
|
1934 |
return $mixed_content_fixer_detected;
|
1935 |
}
|
1936 |
|
1937 |
-
|
1938 |
* Create redirect rules for the .htaccess.
|
|
|
|
|
|
|
1939 |
*
|
1940 |
-
|
1941 |
-
|
1942 |
-
|
1943 |
-
|
1944 |
-
|
1945 |
-
|
1946 |
-
public function get_redirect_rules($manual = false)
|
1947 |
{
|
1948 |
$this->trace_log("retrieving redirect rules");
|
1949 |
//only add the redirect rules when a known type of SSL was detected. Otherwise, we use https.
|
1950 |
$rule = "";
|
1951 |
-
|
1952 |
//if the htaccess test was successfull, and we know the redirectype, edit
|
1953 |
if ($this->htaccess_redirect && ($manual || $this->htaccess_test_success) && $this->ssl_type != "NA") {
|
1954 |
-
|
1955 |
$rule .= "<IfModule mod_rewrite.c>" . "\n";
|
1956 |
$rule .= "RewriteEngine on" . "\n";
|
1957 |
|
@@ -2004,9 +2139,7 @@ class rsssl_admin extends rsssl_front_end
|
|
2004 |
$rule = strrev(implode("", explode(strrev("[OR]"), strrev($rule), 2)));
|
2005 |
}
|
2006 |
} else {
|
2007 |
-
|
2008 |
-
$this->trace_log("single site or networkwide activation");
|
2009 |
-
}
|
2010 |
}
|
2011 |
|
2012 |
//fastest cache compatibility
|
@@ -2034,7 +2167,6 @@ class rsssl_admin extends rsssl_front_end
|
|
2034 |
return $rule;
|
2035 |
}
|
2036 |
|
2037 |
-
|
2038 |
/**
|
2039 |
* Show warning when wpconfig could not be fixed
|
2040 |
*
|
@@ -2048,49 +2180,49 @@ class rsssl_admin extends rsssl_front_end
|
|
2048 |
{
|
2049 |
//prevent showing the review on edit screen, as gutenberg removes the class which makes it editable.
|
2050 |
$screen = get_current_screen();
|
2051 |
-
|
2052 |
-
?>
|
2053 |
-
<div id="message" class="error notice">
|
2054 |
-
<h1><?php echo __("System detection encountered issues", "really-simple-ssl"); ?></h1>
|
2055 |
-
|
2056 |
-
<?php if ($this->wpconfig_siteurl_not_fixed) { ?>
|
2057 |
-
<p>
|
2058 |
-
<?php echo __("A definition of a siteurl or homeurl was detected in your wp-config.php, but the file is not writable.", "really-simple-ssl"); ?>
|
2059 |
-
</p>
|
2060 |
-
<p><?php echo __("Set your wp-config.php to writable and reload this page.", "really-simple-ssl"); ?></p>
|
2061 |
-
<?php }
|
2062 |
-
if ($this->do_wpconfig_loadbalancer_fix) { ?>
|
2063 |
-
<p><?php echo __("Your wp-config.php has to be edited, but is not writable.", "really-simple-ssl"); ?></p>
|
2064 |
-
<p><?php echo __("Because your site is behind a loadbalancer and is_ssl() returns false, you should add the following line of code to your wp-config.php.", "really-simple-ssl"); ?>
|
2065 |
-
<br><br><code>
|
2066 |
-
//Begin Really Simple SSL Load balancing fix<br>
|
2067 |
-
if ((isset($_ENV["HTTPS"]) && ("on" == $_ENV["HTTPS"]))<br>
|
2068 |
-
|| (isset($_SERVER["HTTP_X_FORWARDED_SSL"]) && (strpos($_SERVER["HTTP_X_FORWARDED_SSL"], "1") !== false))<br>
|
2069 |
-
|| (isset($_SERVER["HTTP_X_FORWARDED_SSL"]) && (strpos($_SERVER["HTTP_X_FORWARDED_SSL"], "on") !== false))<br>
|
2070 |
-
|| (isset($_SERVER["HTTP_CF_VISITOR"]) && (strpos($_SERVER["HTTP_CF_VISITOR"], "https") !== false))<br>
|
2071 |
-
|| (isset($_SERVER["HTTP_CLOUDFRONT_FORWARDED_PROTO"]) && (strpos($_SERVER["HTTP_CLOUDFRONT_FORWARDED_PROTO"], "https") !== false))<br>
|
2072 |
-
|| (isset($_SERVER["HTTP_X_FORWARDED_PROTO"]) && (strpos($_SERVER["HTTP_X_FORWARDED_PROTO"], "https") !== false))<br>
|
2073 |
-
|| (isset($_SERVER["HTTP_X_PROTO"]) && (strpos($_SERVER["HTTP_X_PROTO"], "SSL") !== false))<br>
|
2074 |
-
) {<br>
|
2075 |
-
$_SERVER["HTTPS"] = "on";<br>
|
2076 |
-
}<br>
|
2077 |
-
//END Really Simple SSL
|
2078 |
-
</code><br>
|
2079 |
-
</p>
|
2080 |
-
<p><?php echo __("Or set your wp-config.php to writable and reload this page.", "really-simple-ssl"); ?></p>
|
2081 |
-
<?php
|
2082 |
-
}
|
2083 |
|
2084 |
-
|
2085 |
-
|
2086 |
-
|
2087 |
-
|
2088 |
-
|
2089 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2090 |
?>
|
|
|
|
|
|
|
|
|
2091 |
|
2092 |
-
|
2093 |
-
|
|
|
|
|
|
|
2094 |
}
|
2095 |
|
2096 |
|
@@ -2131,11 +2263,17 @@ class rsssl_admin extends rsssl_front_end
|
|
2131 |
return false;
|
2132 |
}
|
2133 |
|
|
|
|
|
|
|
|
|
2134 |
public function show_leave_review_notice()
|
2135 |
{
|
|
|
|
|
2136 |
//prevent showing the review on edit screen, as gutenberg removes the class which makes it editable.
|
2137 |
$screen = get_current_screen();
|
2138 |
-
|
2139 |
|
2140 |
//this user has never had the review notice yet.
|
2141 |
if ($this->ssl_enabled && !get_option('rsssl_activation_timestamp')){
|
@@ -2146,22 +2284,21 @@ class rsssl_admin extends rsssl_front_end
|
|
2146 |
}
|
2147 |
|
2148 |
if (!$this->review_notice_shown && get_option('rsssl_activation_timestamp') && get_option('rsssl_activation_timestamp') < strtotime("-1 month")) {
|
2149 |
-
if ($this->dismiss_review_notice) return;
|
2150 |
add_action('admin_print_footer_scripts', array($this, 'insert_dismiss_review'));
|
2151 |
?>
|
2152 |
<style>
|
2153 |
-
.rsssl-container {
|
2154 |
display: flex;
|
2155 |
padding:12px;
|
2156 |
}
|
2157 |
-
.rsssl-container .dashicons {
|
2158 |
margin-left:10px;
|
2159 |
margin-right:5px;
|
2160 |
}
|
2161 |
-
.rsssl-review-image img{
|
2162 |
margin-top:0.5em;
|
2163 |
}
|
2164 |
-
.rsssl-buttons-row {
|
2165 |
margin-top:10px;
|
2166 |
display: flex;
|
2167 |
align-items: center;
|
@@ -2182,7 +2319,7 @@ class rsssl_admin extends rsssl_front_end
|
|
2182 |
<a class="button button-primary" target="_blank"
|
2183 |
href="https://wordpress.org/support/plugin/really-simple-ssl/reviews/#new-post"><?php _e('Leave a review', 'really-simple-ssl'); ?></a>
|
2184 |
<div class="dashicons dashicons-calendar"></div><a href="#" id="maybe-later"><?php _e('Maybe later', 'really-simple-ssl'); ?></a>
|
2185 |
-
<div class="dashicons dashicons-no-alt"></div><a href="<?php echo esc_url(add_query_arg(array("page"=>"rlrsssl_really_simple_ssl", "tab"=>"configuration", "rsssl_dismiss_review_notice"=>1),admin_url("options-general.php") ) );?>"
|
2186 |
</div>
|
2187 |
</div>
|
2188 |
</div>
|
@@ -2202,182 +2339,21 @@ class rsssl_admin extends rsssl_front_end
|
|
2202 |
|
2203 |
public function show_notices()
|
2204 |
{
|
2205 |
-
|
2206 |
-
|
2207 |
-
|
2208 |
-
|
2209 |
-
|
2210 |
-
|
2211 |
-
|
2212 |
-
$
|
2213 |
-
|
2214 |
-
|
2215 |
-
|
2216 |
-
|
2217 |
-
?>
|
2218 |
-
<div id="message" class="error notice is-dismissible rlrsssl-htaccess">
|
2219 |
-
<p>
|
2220 |
-
<?php echo __("You do not have a 301 redirect to https active in the settings. For SEO purposes it is advised to use 301 redirects. You can enable a 301 redirect in the settings.", "really-simple-ssl"); ?>
|
2221 |
-
<a href="<?php echo admin_url('options-general.php?page=rlrsssl_really_simple_ssl')?>"><?php echo __("View settings page", "really-simple-ssl"); ?></a>
|
2222 |
-
</p>
|
2223 |
-
</div>
|
2224 |
-
<?php
|
2225 |
-
}
|
2226 |
-
|
2227 |
-
if (isset($this->errors["DEACTIVATE_FILE_NOT_RENAMED"])) {
|
2228 |
-
?>
|
2229 |
-
<div id="message" class="error notice is-dismissible rlrsssl-fail">
|
2230 |
-
<h1>
|
2231 |
-
<?php _e("Major security issue!", "really-simple-ssl"); ?>
|
2232 |
-
</h1>
|
2233 |
-
<p>
|
2234 |
-
<?php _e("The 'force-deactivate.php' file has to be renamed to .txt. Otherwise your ssl can be deactivated by anyone on the internet.", "really-simple-ssl"); ?>
|
2235 |
-
</p>
|
2236 |
-
<a href="<?php echo admin_url('options-general.php?page=rlrsssl_really_simple_ssl')?>"><?php echo __("Check again", "really-simple-ssl"); ?></a>
|
2237 |
-
</div>
|
2238 |
-
<?php
|
2239 |
-
}
|
2240 |
-
|
2241 |
-
if (is_multisite() && !is_main_site(get_current_blog_id())) return;
|
2242 |
-
/*
|
2243 |
-
SSL success message
|
2244 |
-
*/
|
2245 |
-
|
2246 |
-
if ($this->ssl_enabled && $this->site_has_ssl && !$this->ssl_success_message_shown && $options['dismiss_all_notices'] !== true) {
|
2247 |
-
if (!current_user_can("activate_plugins")) return;
|
2248 |
-
|
2249 |
-
add_action('admin_print_footer_scripts', array($this, 'insert_dismiss_success'));
|
2250 |
-
?>
|
2251 |
-
<div id="message" class="updated notice is-dismissible rlrsssl-success">
|
2252 |
-
|
2253 |
-
<h1><?php _e("SSL activated!", "really-simple-ssl"); ?></h1>
|
2254 |
-
<p>
|
2255 |
-
<?php _e("Take the time to review these things", "really-simple-ssl");?>
|
2256 |
-
<ul class="message-ul">
|
2257 |
-
<li class="message-li"><?php _e("Don't forget to change your settings in Google Analytics and Webmaster tools.", "really-simple-ssl");
|
2258 |
-
?>
|
2259 |
-
<a target="_blank"
|
2260 |
-
href="https://really-simple-ssl.com/knowledge-base/how-to-setup-google-analytics-and-google-search-consolewebmaster-tools/">
|
2261 |
-
<?php _e("More info", "really-simple-ssl"); ?></a>
|
2262 |
-
</li>
|
2263 |
-
|
2264 |
-
<?php if (rsssl_uses_elementor() && rsssl_does_not_use_pro()) {
|
2265 |
-
?>
|
2266 |
-
<li class="message-li"><?php _e("We have detected Elementor.", "really-simple-ssl");?>
|
2267 |
-
<a target="_blank"
|
2268 |
-
href="https://really-simple-ssl.com/knowledge-base/how-to-fix-mixed-content-in-elementor-after-moving-to-ssl/"><?php _e("See our article for instructions", "really-simple-ssl"); ?></a>
|
2269 |
-
</li>
|
2270 |
-
<?php }
|
2271 |
-
?>
|
2272 |
-
<li class="message-li"><?php _e("Improve your security", "really-simple-ssl");?>
|
2273 |
-
<?php if (!defined('rsssl_pro_plugin')) {
|
2274 |
-
$margin = '-20px';
|
2275 |
-
} else {
|
2276 |
-
$margin = '-60px';
|
2277 |
-
}?>
|
2278 |
-
<a target="_blank" href="https://really-simple-ssl.com/new-security-headers-for-really-simple-ssl-pro-coming-up/"><?php _e("with security headers", "really-simple-ssl"); ?></a>
|
2279 |
-
</li>
|
2280 |
-
</ul>
|
2281 |
-
</p>
|
2282 |
-
<?php if (!defined('rsssl_pro_plugin')) { ?>
|
2283 |
-
<a class="button action btn-premium btn-premium-activated" style="margin-bottom: 10px;" href="https://really-simple-ssl.com/pro" target="_blank"><?php _e("Really Simple SSL Pro", "really-simple-ssl"); ?></a>
|
2284 |
-
<?php } ?>
|
2285 |
-
<div id="rsssl-logo" style="float: right; margin-top: <?php echo $margin ?>;"><img width=180px" src="<?php echo rsssl_url?>/assets/logo-really-simple-ssl.png" alt="review-logo"></div>
|
2286 |
-
</div>
|
2287 |
-
<style>
|
2288 |
-
.message-ul {
|
2289 |
-
list-style-type: none;
|
2290 |
-
}
|
2291 |
-
|
2292 |
-
#message .message-li::before {
|
2293 |
-
vertical-align: middle;
|
2294 |
-
margin-right: 25px;
|
2295 |
-
color: lightgrey;
|
2296 |
-
content: "\f345";
|
2297 |
-
font: 400 21px/1 dashicons;
|
2298 |
-
}
|
2299 |
-
</style>
|
2300 |
-
<?php
|
2301 |
-
}
|
2302 |
-
|
2303 |
-
//some notices for SSL situations
|
2304 |
-
if ($this->site_has_ssl) {
|
2305 |
-
if (sizeof($this->plugin_conflict) > 0) {
|
2306 |
-
//pre WooCommerce 2.5
|
2307 |
-
if (isset($this->plugin_conflict["WOOCOMMERCE_FORCEHTTP"]) && $this->plugin_conflict["WOOCOMMERCE_FORCEHTTP"] && isset($this->plugin_conflict["WOOCOMMERCE_FORCESSL"]) && $this->plugin_conflict["WOOCOMMERCE_FORCESSL"]) {
|
2308 |
-
?>
|
2309 |
-
<div id="message" class="error notice"><p>
|
2310 |
-
<?php _e("Really Simple SSL has a conflict with another plugin.", "really-simple-ssl"); ?>
|
2311 |
-
<br>
|
2312 |
-
<?php _e("The force http after leaving checkout in WooCommerce will create a redirect loop.", "really-simple-ssl"); ?>
|
2313 |
-
<br>
|
2314 |
-
<a href="admin.php?page=wc-settings&tab=checkout"><?php _e("Show me this setting", "really-simple-ssl"); ?></a>
|
2315 |
-
</p></div>
|
2316 |
-
<?php
|
2317 |
-
}
|
2318 |
-
}
|
2319 |
}
|
2320 |
}
|
2321 |
|
2322 |
-
/**
|
2323 |
-
* Insert some ajax script to dismiss the SSL success message, and stop nagging about it
|
2324 |
-
*
|
2325 |
-
* @since 2.0
|
2326 |
-
*
|
2327 |
-
* @access public
|
2328 |
-
*
|
2329 |
-
*/
|
2330 |
-
|
2331 |
-
public function insert_dismiss_success()
|
2332 |
-
{
|
2333 |
-
$ajax_nonce = wp_create_nonce("really-simple-ssl-dismiss");
|
2334 |
-
?>
|
2335 |
-
<script type='text/javascript'>
|
2336 |
-
jQuery(document).ready(function ($) {
|
2337 |
-
$(".rlrsssl-success.notice.is-dismissible").on("click", ".notice-dismiss", function (event) {
|
2338 |
-
var data = {
|
2339 |
-
'action': 'dismiss_success_message',
|
2340 |
-
'security': '<?php echo $ajax_nonce; ?>'
|
2341 |
-
};
|
2342 |
-
|
2343 |
-
$.post(ajaxurl, data, function (response) {
|
2344 |
-
|
2345 |
-
});
|
2346 |
-
});
|
2347 |
-
});
|
2348 |
-
</script>
|
2349 |
-
<?php
|
2350 |
-
}
|
2351 |
-
|
2352 |
-
/**
|
2353 |
-
* Insert some ajax script to dismiss the htaccess failed fail message, and stop nagging about it
|
2354 |
-
*
|
2355 |
-
* @since 2.0
|
2356 |
-
*
|
2357 |
-
* @access public
|
2358 |
-
*
|
2359 |
-
*/
|
2360 |
-
|
2361 |
-
public function insert_dismiss_htaccess()
|
2362 |
-
{
|
2363 |
-
$ajax_nonce = wp_create_nonce("really-simple-ssl");
|
2364 |
-
?>
|
2365 |
-
<script type='text/javascript'>
|
2366 |
-
jQuery(document).ready(function ($) {
|
2367 |
-
$(".rlrsssl-htaccess.notice.is-dismissible").on("click", ".notice-dismiss", function (event) {
|
2368 |
-
var data = {
|
2369 |
-
'action': 'dismiss_htaccess_warning',
|
2370 |
-
'security': '<?php echo $ajax_nonce; ?>'
|
2371 |
-
};
|
2372 |
-
$.post(ajaxurl, data, function (response) {
|
2373 |
-
|
2374 |
-
});
|
2375 |
-
});
|
2376 |
-
});
|
2377 |
-
</script>
|
2378 |
-
<?php
|
2379 |
-
}
|
2380 |
-
|
2381 |
/**
|
2382 |
* Insert some ajax script to dismiss the review notice, and stop nagging about it
|
2383 |
*
|
@@ -2420,32 +2396,6 @@ class rsssl_admin extends rsssl_front_end
|
|
2420 |
<?php
|
2421 |
}
|
2422 |
|
2423 |
-
/**
|
2424 |
-
*
|
2425 |
-
* Insert the script to dismiss dashboard notices
|
2426 |
-
*/
|
2427 |
-
|
2428 |
-
public function insert_dismiss_settings_script()
|
2429 |
-
{
|
2430 |
-
$ajax_nonce = wp_create_nonce("really-simple-ssl");
|
2431 |
-
|
2432 |
-
?>
|
2433 |
-
<script type='text/javascript'>
|
2434 |
-
jQuery(document).ready(function ($) {
|
2435 |
-
$(".rsssl-dashboard-dismiss").on("click", ".rsssl-close-warning",function (event) {
|
2436 |
-
var type = $(this).closest('.rsssl-dashboard-dismiss').data('dismiss_type');
|
2437 |
-
var data = {
|
2438 |
-
'action': 'rsssl_dismiss_settings_notice',
|
2439 |
-
'type' : type,
|
2440 |
-
'security': '<?php echo $ajax_nonce; ?>'
|
2441 |
-
};
|
2442 |
-
$.post(ajaxurl, data, function (response) {});
|
2443 |
-
$(this).closest('tr').remove();
|
2444 |
-
});
|
2445 |
-
});
|
2446 |
-
</script>
|
2447 |
-
<?php
|
2448 |
-
}
|
2449 |
|
2450 |
/**
|
2451 |
* Process the ajax dismissal of the success message.
|
@@ -2459,31 +2409,11 @@ class rsssl_admin extends rsssl_front_end
|
|
2459 |
public function dismiss_success_message_callback()
|
2460 |
{
|
2461 |
if (!current_user_can($this->capability) ) return;
|
2462 |
-
//nonce check fails if url is changed to SSL.
|
2463 |
-
//check_ajax_referer( 'really-simple-ssl-dismiss', 'security' );
|
2464 |
$this->ssl_success_message_shown = TRUE;
|
2465 |
$this->save_options();
|
2466 |
wp_die();
|
2467 |
}
|
2468 |
|
2469 |
-
/**
|
2470 |
-
* Process the ajax dismissal of the htaccess message.
|
2471 |
-
*
|
2472 |
-
* @since 2.1
|
2473 |
-
*
|
2474 |
-
* @access public
|
2475 |
-
*
|
2476 |
-
*/
|
2477 |
-
|
2478 |
-
public function dismiss_htaccess_warning_callback()
|
2479 |
-
{
|
2480 |
-
if (!current_user_can($this->capability) ) return;
|
2481 |
-
check_ajax_referer('really-simple-ssl', 'security');
|
2482 |
-
$this->htaccess_warning_shown = TRUE;
|
2483 |
-
$this->save_options();
|
2484 |
-
wp_die(); // this is required to terminate immediately and return a proper response
|
2485 |
-
}
|
2486 |
-
|
2487 |
/**
|
2488 |
* Process the ajax dismissal of settings notice
|
2489 |
*
|
@@ -2497,13 +2427,27 @@ class rsssl_admin extends rsssl_front_end
|
|
2497 |
{
|
2498 |
if (!current_user_can($this->capability) ) return;
|
2499 |
|
2500 |
-
|
2501 |
-
|
|
|
|
|
|
|
2502 |
$dismiss_type = sanitize_title( $_POST['type'] );
|
2503 |
update_option( "rsssl_".$dismiss_type."_dismissed", true );
|
2504 |
delete_transient( 'rsssl_plusone_count' );
|
2505 |
}
|
2506 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2507 |
}
|
2508 |
|
2509 |
/**
|
@@ -2543,13 +2487,13 @@ class rsssl_admin extends rsssl_front_end
|
|
2543 |
public function add_settings_page()
|
2544 |
{
|
2545 |
if (!current_user_can($this->capability)) return;
|
|
|
2546 |
//hides the settings page if the hide menu for subsites setting is enabled
|
2547 |
if (is_multisite() && rsssl_multisite::this()->hide_menu_for_subsites && !is_super_admin()) return;
|
2548 |
|
2549 |
global $rsssl_admin_page;
|
2550 |
|
2551 |
$count = $this->count_plusones();
|
2552 |
-
|
2553 |
if ($count > 0 ) {
|
2554 |
$update_count = "<span class='update-plugins rsssl-update-count'><span class='update-count'>$count</span></span>";
|
2555 |
} else {
|
@@ -2563,9 +2507,6 @@ class rsssl_admin extends rsssl_front_end
|
|
2563 |
'rlrsssl_really_simple_ssl', //url
|
2564 |
array($this, 'settings_page')); //function
|
2565 |
|
2566 |
-
// Adds my_help_tab when my_admin_page loads
|
2567 |
-
add_action('load-' . $rsssl_admin_page, array($this, 'admin_add_help_tab'));
|
2568 |
-
|
2569 |
}
|
2570 |
|
2571 |
/**
|
@@ -2577,53 +2518,25 @@ class rsssl_admin extends rsssl_front_end
|
|
2577 |
*
|
2578 |
*/
|
2579 |
|
2580 |
-
|
2581 |
-
{
|
2582 |
-
if (!current_user_can($this->capability)) return;
|
2583 |
-
|
2584 |
-
global $menu;
|
2585 |
-
|
2586 |
-
$count = $this->count_plusones();
|
2587 |
-
|
2588 |
-
$menu_slug = 'options-general.php';
|
2589 |
-
$menu_title = __('Settings');
|
2590 |
-
|
2591 |
-
foreach($menu as $index => $menu_item){
|
2592 |
-
if (!isset($menu_item[2]) || !isset($menu_item[0])) continue;
|
2593 |
-
if ($menu_item[2]===$menu_slug){
|
2594 |
-
$pattern = '/<span.*>([1-9])<\/span><\/span>/i';
|
2595 |
-
if (preg_match($pattern, $menu_item[0], $matches)){
|
2596 |
-
if (isset($matches[1])) $count = intval($count) + intval($matches[1]);
|
2597 |
-
}
|
2598 |
-
|
2599 |
-
$update_count = $count > 0 ? "<span class='update-plugins rsssl-update-count'><span class='update-count'>$count</span></span>":'';
|
2600 |
-
$menu[$index][0] = $menu_title . $update_count;
|
2601 |
-
}
|
2602 |
-
|
2603 |
-
}
|
2604 |
-
|
2605 |
-
}
|
2606 |
-
|
2607 |
-
|
2608 |
-
|
2609 |
-
/**
|
2610 |
-
* Admin help tab
|
2611 |
-
*
|
2612 |
-
* @since 2.0
|
2613 |
-
*
|
2614 |
-
* @access public
|
2615 |
-
*
|
2616 |
-
*/
|
2617 |
-
|
2618 |
-
public function admin_add_help_tab()
|
2619 |
{
|
2620 |
-
|
2621 |
-
|
2622 |
-
$
|
2623 |
-
|
2624 |
-
|
2625 |
-
|
2626 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2627 |
}
|
2628 |
|
2629 |
/**
|
@@ -2638,113 +2551,239 @@ class rsssl_admin extends rsssl_front_end
|
|
2638 |
public function admin_tabs($current = 'homepage')
|
2639 |
{
|
2640 |
$tabs = array(
|
2641 |
-
'configuration' =>
|
2642 |
-
'settings' => __("Settings", "really-simple-ssl"),
|
2643 |
-
'debug' => __("Debug", "really-simple-ssl")
|
2644 |
);
|
|
|
2645 |
|
2646 |
-
|
|
|
|
|
2647 |
|
2648 |
-
|
2649 |
-
|
2650 |
-
|
2651 |
-
$class = ($tab == $current) ? ' nav-tab-active' : '';
|
2652 |
-
echo "<a class='nav-tab$class' href='?page=rlrsssl_really_simple_ssl&tab=$tab'>$name</a>";
|
2653 |
}
|
2654 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2655 |
}
|
2656 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2657 |
|
2658 |
/**
|
2659 |
* Get array of notices
|
2660 |
* - condition: function returning boolean, if notice should be shown or not
|
2661 |
* - callback: function, returning boolean or string, with multiple possible answers, and resulting messages and icons
|
2662 |
-
*
|
2663 |
* @return array
|
2664 |
*/
|
2665 |
|
2666 |
-
|
2667 |
-
public function get_notices_list()
|
2668 |
{
|
2669 |
$defaults = array(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2670 |
'condition' => array(),
|
2671 |
'callback' => false,
|
2672 |
);
|
2673 |
|
2674 |
-
$enable = __("Enable", "really-simple-ssl");
|
2675 |
-
$dismiss = __("dismiss", "really-simple-ssl");
|
2676 |
$curl_error = get_transient('rsssl_curl_error');
|
2677 |
|
2678 |
-
|
2679 |
-
|
2680 |
-
|
2681 |
-
|
2682 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2683 |
|
2684 |
-
$notices = array(
|
2685 |
'ssl_enabled' => array(
|
2686 |
'callback' => 'rsssl_ssl_enabled',
|
|
|
2687 |
'output' => array(
|
2688 |
-
'
|
2689 |
'msg' =>__('SSL is enabled on your site.', 'really-simple-ssl'),
|
2690 |
'icon' => 'success'
|
2691 |
),
|
2692 |
-
'
|
2693 |
-
'msg' => __('SSL is not enabled yet', 'really-simple-ssl'),
|
2694 |
-
'icon' => 'warning'
|
2695 |
),
|
2696 |
),
|
2697 |
),
|
2698 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2699 |
'mixed_content_fixer_detected' => array(
|
2700 |
-
'condition' => array('rsssl_site_has_ssl', '
|
2701 |
-
'callback' => '
|
|
|
2702 |
'output' => array(
|
2703 |
'found' => array(
|
2704 |
-
'msg' =>__('Mixed content fixer was successfully detected on the front-end', 'really-simple-ssl'),
|
2705 |
'icon' => 'success'
|
2706 |
),
|
2707 |
'no-response' => array(
|
2708 |
-
'
|
2709 |
-
|
2710 |
-
|
2711 |
-
. "<span class='rsssl-dashboard-plusone update-plugins rsssl-update-count'><span class='update-count'>1</span></span>",
|
2712 |
-
'icon' => 'error',
|
2713 |
'dismissible' => true,
|
2714 |
'plusone' => true
|
2715 |
),
|
2716 |
'not-found' => array(
|
2717 |
-
'
|
2718 |
-
'
|
|
|
2719 |
'dismissible' => true
|
2720 |
),
|
2721 |
'error' => array(
|
2722 |
-
'msg' =>__('Error
|
2723 |
-
'icon' => '
|
2724 |
'dismissible' => true
|
2725 |
),
|
2726 |
-
'
|
2727 |
-
'
|
2728 |
-
'
|
|
|
2729 |
'dismissible' => true
|
2730 |
),
|
2731 |
-
|
2732 |
-
|
2733 |
-
|
2734 |
-
|
2735 |
-
|
2736 |
-
'output' => array(
|
2737 |
-
'fail' => array(
|
2738 |
-
'msg' =>__('Failed activating SSL.', 'really-simple-ssl'),
|
2739 |
-
'icon' => 'success'
|
2740 |
-
),
|
2741 |
-
'no-ssl-detected' => array(
|
2742 |
-
'msg' => sprintf(__("No SSL detected. See our guide on how to %sget a free SSL certificate%s ", "really-simple-ssl"), '<a target="_blank" href="https://really-simple-ssl.com/knowledge-base/how-to-install-a-free-ssl-certificate-on-your-wordpress-cpanel-hosting/">', '</a>'),
|
2743 |
-
'icon' => 'warning'
|
2744 |
-
),
|
2745 |
-
'ssl-detected' => array(
|
2746 |
-
'msg' => __('An SSL certificate was detected on your site.', 'really-simple-ssl'),
|
2747 |
-
'icon' => 'success'
|
2748 |
),
|
2749 |
),
|
2750 |
),
|
@@ -2752,6 +2791,7 @@ class rsssl_admin extends rsssl_front_end
|
|
2752 |
'wordpress_redirect' => array(
|
2753 |
'condition' => array('rsssl_wp_redirect_condition'),
|
2754 |
'callback' => 'rsssl_wordpress_redirect',
|
|
|
2755 |
'output' => array(
|
2756 |
'301-wp-redirect' => array(
|
2757 |
'msg' => __('301 redirect to https set: WordPress redirect.', 'really-simple-ssl'),
|
@@ -2759,117 +2799,128 @@ class rsssl_admin extends rsssl_front_end
|
|
2759 |
),
|
2760 |
'no-redirect' => array(
|
2761 |
'msg' => __('No 301 redirect is set. Enable the WordPress 301 redirect in the settings to get a 301 permanent redirect.', 'really-simple-ssl'),
|
2762 |
-
'icon' => '
|
2763 |
),
|
2764 |
)
|
2765 |
),
|
2766 |
|
2767 |
'check_redirect' => array(
|
2768 |
-
'condition' => array('rsssl_ssl_enabled' , '
|
2769 |
'callback' => 'rsssl_check_redirect',
|
2770 |
-
'
|
|
|
2771 |
'htaccess-redirect-set' => array(
|
2772 |
-
'msg' =>__('301 redirect to https set: .htaccess redirect.', 'really-simple-ssl'),
|
2773 |
'icon' => 'success'
|
2774 |
),
|
2775 |
-
//generate an enable link to highlight the setting, setting name is same as array key
|
2776 |
-
$enable_link = $this->generate_enable_link($setting_name = 'wp-redirect-to-htaccess'),
|
2777 |
'wp-redirect-to-htaccess' => array(
|
2778 |
-
'
|
2779 |
-
|
2780 |
-
|
2781 |
-
|
2782 |
-
|
2783 |
-
'
|
2784 |
-
'plusone' => $redirect_plusone,
|
2785 |
-
'dismissible' => true
|
2786 |
),
|
2787 |
'no-redirect-set' => array(
|
2788 |
-
'msg' => __('Enable a .htaccess redirect or WordPress redirect in the settings to create a 301 redirect.', 'really-simple-ssl'),
|
2789 |
-
'icon' => '
|
2790 |
'dismissible' => false
|
2791 |
),
|
2792 |
'htaccess-not-writeable' => array(
|
2793 |
-
'
|
2794 |
-
'
|
2795 |
-
'dismissible' => true
|
2796 |
-
),
|
2797 |
-
'htaccess-cannot-be-set' => array(
|
2798 |
-
'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'),
|
2799 |
'icon' => 'warning',
|
2800 |
'dismissible' => true
|
2801 |
),
|
2802 |
-
'
|
2803 |
-
|
|
|
2804 |
'icon' => 'warning',
|
2805 |
-
'dismissible' => true
|
|
|
2806 |
),
|
2807 |
),
|
2808 |
),
|
2809 |
|
2810 |
'elementor' => array(
|
2811 |
-
'condition' => array(
|
2812 |
-
'callback' => '
|
|
|
2813 |
'output' => array(
|
2814 |
-
'
|
2815 |
-
|
2816 |
-
|
2817 |
-
|
2818 |
-
'icon' => 'warning',
|
2819 |
'dismissible' => true
|
2820 |
),
|
2821 |
),
|
2822 |
),
|
2823 |
|
2824 |
'divi' => array(
|
2825 |
-
'condition' => array(
|
2826 |
-
'callback' => '
|
|
|
2827 |
'output' => array(
|
2828 |
-
'
|
2829 |
-
|
2830 |
-
|
2831 |
-
|
2832 |
-
'icon' => 'warning',
|
2833 |
'dismissible' => true
|
2834 |
),
|
2835 |
),
|
2836 |
),
|
2837 |
|
2838 |
'hsts_enabled' => array(
|
2839 |
-
'condition' => array('
|
2840 |
-
'callback' => '
|
|
|
2841 |
'output' => array(
|
2842 |
-
'
|
2843 |
'msg' =>__('HTTP Strict Transport Security was enabled.', 'really-simple-ssl'),
|
2844 |
'icon' => 'success'
|
2845 |
),
|
2846 |
-
'
|
2847 |
-
'msg' => sprintf(__('
|
2848 |
-
'icon' => '
|
2849 |
),
|
2850 |
),
|
2851 |
),
|
2852 |
|
2853 |
'secure_cookies_set' => array(
|
2854 |
-
|
|
|
|
|
2855 |
'output' => array(
|
2856 |
-
'
|
2857 |
-
'msg' =>__('Secure cookies set', 'really-simple-ssl'),
|
2858 |
'icon' => 'success'
|
2859 |
),
|
2860 |
-
'
|
2861 |
-
'msg' => sprintf(__("Secure cookie settings not enabled (%
|
2862 |
-
'icon' => '
|
2863 |
),
|
2864 |
),
|
2865 |
),
|
2866 |
|
2867 |
-
'
|
2868 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2869 |
'output' => array(
|
2870 |
-
'
|
2871 |
-
'msg' =>
|
2872 |
-
'icon' => '
|
|
|
2873 |
),
|
2874 |
),
|
2875 |
),
|
@@ -2877,12 +2928,225 @@ class rsssl_admin extends rsssl_front_end
|
|
2877 |
|
2878 |
$notices = apply_filters('rsssl_notices', $notices);
|
2879 |
foreach ($notices as $id => $notice) {
|
2880 |
-
$notices[$id] = wp_parse_args($notice, $
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2881 |
}
|
2882 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2883 |
return $notices;
|
2884 |
}
|
2885 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2886 |
|
2887 |
/**
|
2888 |
* @param $setting_name
|
@@ -2893,9 +3157,13 @@ class rsssl_admin extends rsssl_front_end
|
|
2893 |
*
|
2894 |
*/
|
2895 |
|
2896 |
-
public function generate_enable_link($setting_name)
|
2897 |
{
|
2898 |
-
|
|
|
|
|
|
|
|
|
2899 |
}
|
2900 |
|
2901 |
/**
|
@@ -2911,31 +3179,18 @@ class rsssl_admin extends rsssl_front_end
|
|
2911 |
private function notice_row($id, $notice){
|
2912 |
if (!current_user_can('manage_options')) return;
|
2913 |
|
2914 |
-
|
2915 |
-
if (!empty($notice['condition']) ) {
|
2916 |
-
$condition_functions = $notice['condition'];
|
2917 |
-
|
2918 |
-
foreach ($condition_functions as $func) {
|
2919 |
-
$condition = $func();
|
2920 |
-
if (!$condition) return;
|
2921 |
-
}
|
2922 |
-
}
|
2923 |
-
|
2924 |
-
$func = $notice['callback'];
|
2925 |
-
$output = $func();
|
2926 |
-
|
2927 |
-
if (!isset($notice['output'][$output])) {
|
2928 |
return;
|
2929 |
}
|
2930 |
|
2931 |
-
$msg = $notice['output'][
|
2932 |
-
$icon_type = $notice['output'][
|
2933 |
|
2934 |
-
if
|
|
|
2935 |
|
2936 |
-
|
2937 |
-
$
|
2938 |
-
$dismiss = (isset($notice['output'][$output]['dismissible']) && $notice['output'][$output]['dismissible']) ? $this->rsssl_dismiss_button() : '';
|
2939 |
|
2940 |
?>
|
2941 |
<tr>
|
@@ -2945,22 +3200,12 @@ class rsssl_admin extends rsssl_front_end
|
|
2945 |
<?php
|
2946 |
}
|
2947 |
|
2948 |
-
/**
|
2949 |
-
*
|
2950 |
-
* Reset the plusone count transient
|
2951 |
-
*
|
2952 |
-
* @since 3.2
|
2953 |
-
*
|
2954 |
-
*/
|
2955 |
|
2956 |
-
public function reset_plusone_cache(){
|
2957 |
-
delete_transient('rsssl_plusone_count');
|
2958 |
-
}
|
2959 |
|
2960 |
/**
|
2961 |
-
* @return int|mixed
|
2962 |
-
*
|
2963 |
* Count the plusones
|
|
|
|
|
2964 |
*
|
2965 |
* @since 3.2
|
2966 |
*/
|
@@ -2969,52 +3214,22 @@ class rsssl_admin extends rsssl_front_end
|
|
2969 |
if ( ! current_user_can( 'manage_options' ) ) {
|
2970 |
return 0;
|
2971 |
}
|
|
|
|
|
2972 |
$count = get_transient( 'rsssl_plusone_count' );
|
2973 |
-
if ( $count === false ) {
|
2974 |
$count = 0;
|
2975 |
-
|
2976 |
-
$options = get_option( 'rlrsssl_options' );
|
2977 |
-
|
2978 |
$notices = $this->get_notices_list();
|
2979 |
foreach ( $notices as $id => $notice ) {
|
2980 |
-
|
2981 |
-
|
2982 |
-
|
2983 |
-
|
2984 |
-
|
2985 |
-
|
2986 |
-
|
2987 |
-
$condition = $func();
|
2988 |
-
if ( ! $condition ) {
|
2989 |
-
break;
|
2990 |
-
}
|
2991 |
-
}
|
2992 |
-
|
2993 |
-
if ( $condition ) {
|
2994 |
-
$func = $notice['callback'];
|
2995 |
-
$output = $func();
|
2996 |
-
$success = ( isset( $notice['output'][ $output ]['icon'] )
|
2997 |
-
&& ( $notice['output'][ $output ]['icon']
|
2998 |
-
=== 'success' ) ) ? true : false;
|
2999 |
-
|
3000 |
-
if ( ( isset( $notice['output'][ $output ]['dismissible'] )
|
3001 |
-
&& $notice['output'][ $output ]['dismissible']
|
3002 |
-
&& ( $options['dismiss_all_notices'] !== false ) )
|
3003 |
-
) {
|
3004 |
-
update_option( 'rsssl_' . $id . '_dismissed', true );
|
3005 |
-
continue;
|
3006 |
-
}
|
3007 |
-
|
3008 |
-
//&& notice not dismissed
|
3009 |
-
if ( ! $success
|
3010 |
-
&& isset( $notice['output'][ $output ]['plusone'] )
|
3011 |
-
&& $notice['output'][ $output ]['plusone']
|
3012 |
-
) {
|
3013 |
-
$count ++;
|
3014 |
-
}
|
3015 |
-
}
|
3016 |
}
|
3017 |
-
set_transient( 'rsssl_plusone_count', $count,
|
3018 |
}
|
3019 |
return $count;
|
3020 |
}
|
@@ -3028,272 +3243,244 @@ class rsssl_admin extends rsssl_front_end
|
|
3028 |
*
|
3029 |
*/
|
3030 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3031 |
|
3032 |
-
|
3033 |
-
|
3034 |
-
|
|
|
3035 |
|
3036 |
-
|
3037 |
|
3038 |
-
if (isset
|
3039 |
-
|
|
|
3040 |
|
3041 |
-
|
3042 |
-
<div class="rsssl-container">
|
3043 |
-
<div class="rsssl-main"><?php
|
3044 |
|
3045 |
-
|
3046 |
-
case 'configuration' :
|
3047 |
|
3048 |
-
|
3049 |
-
|
3050 |
-
|
3051 |
-
|
3052 |
-
|
3053 |
-
<table class="really-simple-ssl-table">
|
3054 |
-
<thead></thead>
|
3055 |
-
<tbody>
|
3056 |
-
<?php
|
3057 |
-
|
3058 |
-
$this->reset_plusone_cache();
|
3059 |
-
$notices = $this->get_notices_list();
|
3060 |
-
foreach ($notices as $id => $notice) {
|
3061 |
-
$this->notice_row($id, $notice);
|
3062 |
-
}
|
3063 |
|
3064 |
-
|
3065 |
-
|
3066 |
-
|
|
|
|
|
3067 |
|
3068 |
-
|
3069 |
-
|
3070 |
-
</table>
|
3071 |
|
3072 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3073 |
|
3074 |
-
|
3075 |
-
|
3076 |
-
|
3077 |
-
/*
|
3078 |
-
Second tab, Settings
|
3079 |
-
*/
|
3080 |
-
|
3081 |
-
?>
|
3082 |
-
<form action="options.php" method="post">
|
3083 |
-
<?php
|
3084 |
-
settings_fields('rlrsssl_options');
|
3085 |
-
do_settings_sections('rlrsssl');
|
3086 |
-
?>
|
3087 |
-
|
3088 |
-
<input class="button button-primary" name="Submit" type="submit"
|
3089 |
-
value="<?php echo __("Save", "really-simple-ssl"); ?>"/>
|
3090 |
-
</form>
|
3091 |
-
<?php
|
3092 |
-
break;
|
3093 |
-
|
3094 |
-
case 'debug' :
|
3095 |
-
/*
|
3096 |
-
third tab: debug
|
3097 |
-
*/
|
3098 |
-
?>
|
3099 |
-
<div>
|
3100 |
-
<?php
|
3101 |
-
if ($this->debug) {
|
3102 |
-
echo "<h2>" . __("Log for debugging purposes", "really-simple-ssl") . "</h2>";
|
3103 |
-
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>";
|
3104 |
-
echo "<div class='debug-log'>";
|
3105 |
-
if (defined('RSSSL_SAFE_MODE') && RSSSL_SAFE_MODE) echo "SAFE MODE<br>";
|
3106 |
-
|
3107 |
-
echo "<b>General</b><br>";
|
3108 |
-
echo "Plugin version: " . rsssl_version ."<br>";
|
3109 |
-
|
3110 |
-
if (RSSSL()->rsssl_certificate->is_valid()) {
|
3111 |
-
echo "SSL certificate is valid<br>";
|
3112 |
-
} else {
|
3113 |
-
echo "Invalid SSL certificate<br>";
|
3114 |
-
}
|
3115 |
-
echo ($this->ssl_enabled) ? "SSL is enabled<br><bR>" : "SSL is not yet enabled<br><br>";
|
3116 |
-
|
3117 |
-
echo "<b>Options</b><br>";
|
3118 |
-
if ($this->autoreplace_insecure_links) echo "* Mixed content fixer<br>";
|
3119 |
-
if ($this->wp_redirect) echo "* WordPress redirect<br>";
|
3120 |
-
if ($this->htaccess_redirect) echo "* htaccess redirect<br>";
|
3121 |
-
if ($this->do_not_edit_htaccess) echo "* Stop editing the .htaccess file<br>";
|
3122 |
-
if ($this->switch_mixed_content_fixer_hook) echo "* Use alternative method to fix mixed content<br>";
|
3123 |
-
if ($this->dismiss_all_notices) echo "* Dismiss all Really Simple SSL notices<br>";
|
3124 |
-
echo "<br>";
|
3125 |
-
|
3126 |
-
echo "<b>Server information</b><br>";
|
3127 |
-
echo "Server: " . RSSSL()->rsssl_server->get_server() . "<br>";
|
3128 |
-
echo "SSL Type: $this->ssl_type<br>";
|
3129 |
-
if (is_multisite()) {
|
3130 |
-
echo "MULTISITE<br>";
|
3131 |
-
echo (!RSSSL()->rsssl_multisite->ssl_enabled_networkwide) ? "SSL is being activated per site<br>" : "SSL is activated network wide<br>";
|
3132 |
-
}
|
3133 |
-
|
3134 |
-
echo $this->debug_log;
|
3135 |
-
|
3136 |
-
echo "<br><br><b>Constants</b><br>";
|
3137 |
-
|
3138 |
-
if (defined('RSSSL_FORCE_ACTIVATE')) echo "RSSSL_FORCE_ACTIVATE defined";
|
3139 |
-
if (defined('RSSSL_NO_FLUSH')) echo "RSSSL_NO_FLUSH defined";
|
3140 |
-
if (defined('RSSSL_DISMISS_ACTIVATE_SSL_NOTICE')) echo "RSSSL_DISMISS_ACTIVATE_SSL_NOTICE defined";
|
3141 |
-
if (defined('RLRSSSL_DO_NOT_EDIT_HTACCESS')) echo "RLRSSSL_DO_NOT_EDIT_HTACCESS defined";
|
3142 |
-
if (defined('RSSSL_SAFE_MODE')) echo "RSSSL_SAFE_MODE defined";
|
3143 |
-
if (defined("RSSSL_SERVER_OVERRIDE")) echo "RSSSL_SERVER_OVERRIDE defined";
|
3144 |
-
|
3145 |
-
if( !defined('RSSSL_FORCE_ACTIVATE')
|
3146 |
-
&& !defined('RSSSL_NO_FLUSH')
|
3147 |
-
&& !defined('RSSSL_DISMISS_ACTIVATE_SSL_NOTICE')
|
3148 |
-
&& !defined('RLRSSSL_DO_NOT_EDIT_HTACCESS')
|
3149 |
-
&& !defined('RSSSL_SAFE_MODE')
|
3150 |
-
&& !defined("RSSSL_SERVER_OVERRIDE")
|
3151 |
-
) echo "No constants defined";
|
3152 |
-
|
3153 |
-
echo "</div>";
|
3154 |
-
$this->debug_log = "";
|
3155 |
-
$this->save_options();
|
3156 |
-
} else {
|
3157 |
-
echo "<br>";
|
3158 |
-
_e("To view results here, enable the debug option in the settings tab.", "really-simple-ssl");
|
3159 |
-
}
|
3160 |
-
|
3161 |
-
?>
|
3162 |
-
</div>
|
3163 |
-
<?php
|
3164 |
-
break;
|
3165 |
-
default:
|
3166 |
-
echo '';
|
3167 |
-
}
|
3168 |
-
//possibility to hook into the tabs.
|
3169 |
-
do_action("show_tab_{$tab}");
|
3170 |
-
?>
|
3171 |
-
</div><!-- end main-->
|
3172 |
|
3173 |
-
|
|
|
3174 |
|
3175 |
-
|
3176 |
-
|
3177 |
-
|
3178 |
-
|
3179 |
-
|
3180 |
-
|
3181 |
-
* @since 2.5.27
|
3182 |
-
*
|
3183 |
-
*/
|
3184 |
|
3185 |
-
|
|
|
|
|
|
|
3186 |
|
3187 |
-
|
3188 |
|
3189 |
-
|
3190 |
-
|
3191 |
-
|
3192 |
-
|
3193 |
-
|
3194 |
-
|
3195 |
-
|
3196 |
-
$link_open = '<a target="_blank" href="https://really-simple-ssl.com/contact">';
|
3197 |
|
3198 |
-
|
3199 |
-
|
3200 |
-
</div>
|
3201 |
|
3202 |
-
|
3203 |
-
|
3204 |
-
|
3205 |
-
|
3206 |
-
|
3207 |
-
|
3208 |
-
* Before generating, check if Really Simple SSL pro, Ultimate Member is active. For Moneybird, check if locale = nl_NL
|
3209 |
-
*
|
3210 |
-
*/
|
3211 |
-
|
3212 |
-
$admin_url = admin_url();
|
3213 |
-
$url = is_multisite() ? 'https://really-simple-ssl.com/downloads/really-simple-ssl-pro-multisite/' : 'https://really-simple-ssl.com/pro/';
|
3214 |
-
$this->get_banner_html(array(
|
3215 |
-
'img' => 'rsssl-pro.jpg',
|
3216 |
-
'title' => 'Really Simple SSL Pro',
|
3217 |
-
'description' => __("Really Simple SSL Pro optimizes your SSL configuration: extensive scan for mixed content issues, access to premium support, HSTS and more!", "really-simple-ssl"),
|
3218 |
-
'url' => $url,
|
3219 |
-
'pro' => true,
|
3220 |
-
)
|
3221 |
-
);
|
3222 |
-
|
3223 |
-
if (!class_exists('COMPLIANZ')) {
|
3224 |
-
$this->get_banner_html( array(
|
3225 |
-
'img' => 'complianz.jpg',
|
3226 |
-
'title' => 'Complianz',
|
3227 |
-
'description' => __( "The Complianz Privacy Suite (GDPR/CaCPA) for WordPress. Simple, Quick and Complete. Up-to-date customized legal documents by a prominent IT Law firm.", "really-simple-ssl" ),
|
3228 |
-
'url' => "$admin_url" . "plugin-install.php?s=complianz+RogierLankhorst&tab=search&type=term",
|
3229 |
-
'pro' => true,
|
3230 |
-
)
|
3231 |
-
);
|
3232 |
-
}
|
3233 |
|
3234 |
-
|
3235 |
-
|
3236 |
-
|
3237 |
-
|
3238 |
-
|
3239 |
-
|
3240 |
-
|
3241 |
-
|
3242 |
-
|
3243 |
-
|
3244 |
-
|
3245 |
-
|
3246 |
-
|
3247 |
-
|
3248 |
-
'title' => 'WP Search Insights',
|
3249 |
-
'description' => __("Records all searches made on your site. See valuable insights in a clean dashboard", "really-simple-ssl"),
|
3250 |
-
'url' => "$admin_url" . "plugin-install.php?s=wp+search+insights+Rogier+Lankhorst&tab=search&type=term",
|
3251 |
-
)
|
3252 |
-
);
|
3253 |
-
}
|
3254 |
|
3255 |
-
|
|
|
|
|
3256 |
|
3257 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3258 |
|
3259 |
-
|
3260 |
-
|
3261 |
-
|
3262 |
-
|
3263 |
-
|
3264 |
-
|
3265 |
-
|
3266 |
-
|
3267 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3268 |
|
3269 |
-
|
3270 |
-
|
3271 |
-
'img' => 'edd-moneybird.jpg',
|
3272 |
-
'title' => 'EDD Moneybird',
|
3273 |
-
'description' => __("Export your Easy Digital Downloads sales directly to Moneybird.", "really-simple-ssl"),
|
3274 |
-
'url' => 'https://really-simple-plugins.com/download/edd-moneybird/',
|
3275 |
-
)
|
3276 |
-
);
|
3277 |
|
3278 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3279 |
|
3280 |
-
|
3281 |
-
$this->get_banner_html(array(
|
3282 |
-
'img' => 'woocommerce-moneybird.jpg',
|
3283 |
-
'title' => 'WooCommerce Moneybird',
|
3284 |
-
'description' => __("Export your WooCommerce sales directly to Moneybird.", "really-simple-ssl"),
|
3285 |
-
'url' => 'https://really-simple-plugins.com/download/woocommerce-moneybird/',
|
3286 |
-
)
|
3287 |
-
);
|
3288 |
|
3289 |
-
|
3290 |
-
|
3291 |
-
|
3292 |
-
|
3293 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
3294 |
|
3295 |
-
|
3296 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3297 |
}
|
3298 |
|
3299 |
/**
|
@@ -3308,14 +3495,16 @@ class rsssl_admin extends rsssl_front_end
|
|
3308 |
* @return string
|
3309 |
*/
|
3310 |
|
3311 |
-
public function
|
3312 |
{
|
3313 |
if ($type == 'success') {
|
3314 |
-
return "<
|
3315 |
-
} elseif ($type == "
|
3316 |
-
return "<
|
3317 |
-
}
|
3318 |
-
return "<
|
|
|
|
|
3319 |
}
|
3320 |
}
|
3321 |
|
@@ -3330,7 +3519,7 @@ class rsssl_admin extends rsssl_front_end
|
|
3330 |
public function rsssl_dismiss_button()
|
3331 |
{
|
3332 |
return '<button type="button" class="close">
|
3333 |
-
<span class="rsssl-close-warning">X</span>
|
3334 |
</button>';
|
3335 |
}
|
3336 |
|
@@ -3378,22 +3567,55 @@ class rsssl_admin extends rsssl_front_end
|
|
3378 |
*
|
3379 |
*/
|
3380 |
|
3381 |
-
public function enqueue_assets($hook)
|
3382 |
-
{
|
3383 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3384 |
|
3385 |
-
|
3386 |
-
|
3387 |
-
*/
|
3388 |
|
3389 |
-
|
|
|
|
|
|
|
3390 |
|
3391 |
-
|
3392 |
-
|
|
|
3393 |
} else {
|
3394 |
-
|
3395 |
}
|
3396 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3397 |
}
|
3398 |
|
3399 |
/**
|
@@ -3412,37 +3634,37 @@ class rsssl_admin extends rsssl_front_end
|
|
3412 |
}
|
3413 |
|
3414 |
register_setting('rlrsssl_options', 'rlrsssl_options', array($this, 'options_validate'));
|
3415 |
-
|
3416 |
-
// Show a dismiss review
|
3417 |
-
if (!$this->dismiss_review_notice && !$this->review_notice_shown && get_option('rsssl_activation_timestamp') && get_option('rsssl_activation_timestamp') < strtotime("-1 month")) {
|
3418 |
-
add_settings_field('id_dismiss_review_notice', __("Dismiss review notice", "really-simple-ssl"), array($this, 'get_option_dismiss_review_notice'), 'rlrsssl', 'rlrsssl_settings');
|
3419 |
-
}
|
3420 |
-
|
3421 |
add_settings_section('rlrsssl_settings', __("Settings", "really-simple-ssl"), array($this, 'section_text'), 'rlrsssl');
|
3422 |
-
|
|
|
|
|
3423 |
|
3424 |
//only show option to enable or disable mixed content and redirect when SSL is detected
|
3425 |
if ($this->ssl_enabled) {
|
3426 |
-
|
|
|
3427 |
|
3428 |
//when enabled networkwide, it's handled on the network settings page
|
3429 |
if (RSSSL()->rsssl_server->uses_htaccess() && (!is_multisite() || !RSSSL()->rsssl_multisite->ssl_enabled_networkwide)) {
|
3430 |
-
|
|
|
3431 |
}
|
3432 |
-
|
3433 |
-
add_settings_field('id_javascript_redirect', __("Enable Javascript redirection to SSL", "really-simple-ssl"), array($this, 'get_option_javascript_redirect'), 'rlrsssl', 'rlrsssl_settings');
|
3434 |
}
|
3435 |
|
3436 |
-
add_settings_field('id_debug', __("Debug", "really-simple-ssl"), array($this, 'get_option_debug'), 'rlrsssl', 'rlrsssl_settings');
|
3437 |
//on multisite this setting can only be set networkwide
|
3438 |
if (RSSSL()->rsssl_server->uses_htaccess() && !is_multisite()) {
|
3439 |
-
|
|
|
3440 |
}
|
3441 |
|
3442 |
-
|
3443 |
-
|
|
|
|
|
|
|
3444 |
|
3445 |
-
|
|
|
3446 |
|
3447 |
}
|
3448 |
|
@@ -3457,9 +3679,7 @@ class rsssl_admin extends rsssl_front_end
|
|
3457 |
|
3458 |
public function section_text()
|
3459 |
{
|
3460 |
-
|
3461 |
-
<p><?php _e('Settings to optimize your SSL configuration', 'really-simple-ssl'); ?></p>
|
3462 |
-
<?php
|
3463 |
}
|
3464 |
|
3465 |
/**
|
@@ -3481,8 +3701,6 @@ class rsssl_admin extends rsssl_front_end
|
|
3481 |
$newinput['review_notice_shown'] = $this->review_notice_shown;
|
3482 |
$newinput['plugin_db_version'] = $this->plugin_db_version;
|
3483 |
$newinput['ssl_enabled'] = $this->ssl_enabled;
|
3484 |
-
$newinput['debug_log'] = $this->debug_log;
|
3485 |
-
$newinput['dismiss_review_notice'] = $this->dismiss_review_notice;
|
3486 |
|
3487 |
if (!empty($input['hsts']) && $input['hsts'] == '1') {
|
3488 |
$newinput['hsts'] = TRUE;
|
@@ -3508,13 +3726,6 @@ class rsssl_admin extends rsssl_front_end
|
|
3508 |
$newinput['autoreplace_insecure_links'] = FALSE;
|
3509 |
}
|
3510 |
|
3511 |
-
if (!empty($input['debug']) && $input['debug'] == '1') {
|
3512 |
-
$newinput['debug'] = TRUE;
|
3513 |
-
} else {
|
3514 |
-
$newinput['debug'] = FALSE;
|
3515 |
-
$this->debug_log = "";
|
3516 |
-
}
|
3517 |
-
|
3518 |
if (!empty($input['do_not_edit_htaccess']) && $input['do_not_edit_htaccess'] == '1') {
|
3519 |
$newinput['do_not_edit_htaccess'] = TRUE;
|
3520 |
} else {
|
@@ -3533,12 +3744,6 @@ class rsssl_admin extends rsssl_front_end
|
|
3533 |
$newinput['dismiss_all_notices'] = FALSE;
|
3534 |
}
|
3535 |
|
3536 |
-
if (!empty($input['dismiss_review_notice']) && $input['dismiss_review_notice'] == '1') {
|
3537 |
-
$newinput['dismiss_review_notice'] = TRUE;
|
3538 |
-
} else {
|
3539 |
-
$newinput['dismiss_review_notice'] = FALSE;
|
3540 |
-
}
|
3541 |
-
|
3542 |
if (!empty($input['htaccess_redirect']) && $input['htaccess_redirect'] == '1') {
|
3543 |
$newinput['htaccess_redirect'] = TRUE;
|
3544 |
} else {
|
@@ -3548,60 +3753,6 @@ class rsssl_admin extends rsssl_front_end
|
|
3548 |
return $newinput;
|
3549 |
}
|
3550 |
|
3551 |
-
/**
|
3552 |
-
* Insert option into settings form
|
3553 |
-
* deprecated
|
3554 |
-
* @since 2.0
|
3555 |
-
*
|
3556 |
-
* @access public
|
3557 |
-
*
|
3558 |
-
*/
|
3559 |
-
|
3560 |
-
public function get_option_debug()
|
3561 |
-
{
|
3562 |
-
|
3563 |
-
?>
|
3564 |
-
<label class="rsssl-switch">
|
3565 |
-
<input id="rlrsssl_options" name="rlrsssl_options[debug]" size="40" value="1"
|
3566 |
-
type="checkbox" <?php checked(1, $this->debug, true) ?> />
|
3567 |
-
<span class="rsssl-slider rsssl-round"></span>
|
3568 |
-
</label>
|
3569 |
-
<?php
|
3570 |
-
RSSSL()->rsssl_help->get_help_tip(__("Enable this option to get debug info in the debug tab.", "really-simple-ssl"));
|
3571 |
-
|
3572 |
-
}
|
3573 |
-
|
3574 |
-
/**
|
3575 |
-
* Insert option into settings form
|
3576 |
-
* @since 2.2
|
3577 |
-
*
|
3578 |
-
* @access public
|
3579 |
-
*
|
3580 |
-
*/
|
3581 |
-
|
3582 |
-
public function get_option_javascript_redirect()
|
3583 |
-
{
|
3584 |
-
$javascript_redirect = $this->javascript_redirect;
|
3585 |
-
$disabled = "";
|
3586 |
-
$comment = "";
|
3587 |
-
|
3588 |
-
if (is_multisite() && rsssl_multisite::this()->javascript_redirect) {
|
3589 |
-
$disabled = "disabled";
|
3590 |
-
$javascript_redirect = TRUE;
|
3591 |
-
$comment = __("This option is enabled on the network menu.", "really-simple-ssl");
|
3592 |
-
}
|
3593 |
-
|
3594 |
-
?>
|
3595 |
-
<label class="rsssl-switch">
|
3596 |
-
<input id="rlrsssl_options" name="rlrsssl_options[javascript_redirect]" size="40" value="1"
|
3597 |
-
type="checkbox" <?php checked(1, $javascript_redirect, true) ?> />
|
3598 |
-
<span class="rsssl-slider rsssl-round"></span>
|
3599 |
-
</label>
|
3600 |
-
<?php
|
3601 |
-
RSSSL()->rsssl_help->get_help_tip(__("This is a fallback you should only use if other redirection methods do not work.", "really-simple-ssl"));
|
3602 |
-
echo $comment;
|
3603 |
-
|
3604 |
-
}
|
3605 |
|
3606 |
/**
|
3607 |
* Insert option into settings form
|
@@ -3622,20 +3773,16 @@ class rsssl_admin extends rsssl_front_end
|
|
3622 |
$wp_redirect = TRUE;
|
3623 |
$comment = __("This option is enabled on the network menu.", "really-simple-ssl");
|
3624 |
}
|
3625 |
-
|
3626 |
?>
|
3627 |
<label class="rsssl-switch">
|
3628 |
<input id="rlrsssl_options" name="rlrsssl_options[wp_redirect]" size="40" value="1"
|
3629 |
-
type="checkbox" <?php checked(1, $wp_redirect, true) ?> />
|
3630 |
<span class="rsssl-slider rsssl-round"></span>
|
3631 |
</label>
|
3632 |
<?php
|
3633 |
-
|
3634 |
-
echo $comment;
|
3635 |
-
|
3636 |
}
|
3637 |
|
3638 |
-
|
3639 |
/**
|
3640 |
* Insert option into settings form
|
3641 |
* The .htaccess redirect is not shown for multisite sites that are enabled network wide.
|
@@ -3646,78 +3793,29 @@ class rsssl_admin extends rsssl_front_end
|
|
3646 |
*
|
3647 |
*/
|
3648 |
|
3649 |
-
|
3650 |
-
|
3651 |
-
|
3652 |
-
|
3653 |
-
|
3654 |
-
|
3655 |
-
|
3656 |
-
|
3657 |
-
//networkwide is not shown, so this only applies to per site activated sites.
|
3658 |
-
if (is_multisite() && RSSSL()->rsssl_multisite->htaccess_redirect) {
|
3659 |
$disabled = "disabled";
|
3660 |
-
$htaccess_redirect = TRUE;
|
3661 |
$comment = __("This option is enabled on the network menu.", "really-simple-ssl");
|
3662 |
-
|
3663 |
-
|
3664 |
-
|
3665 |
-
|
3666 |
-
|
|
|
3667 |
<label class="rsssl-switch" id="rsssl-maybe-highlight-wp-redirect-to-htaccess">
|
3668 |
<input id="rlrsssl_options" name="rlrsssl_options[htaccess_redirect]" size="40" value="1"
|
3669 |
-
type="checkbox" <?php checked(1, $this->htaccess_redirect, true) ?>
|
3670 |
<span class="rsssl-slider rsssl-round"></span>
|
3671 |
</label>
|
3672 |
-
|
3673 |
-
|
3674 |
-
|
3675 |
-
|
3676 |
-
if ($this->uses_htaccess_conf()) {
|
3677 |
-
$htaccess_file = "htaccess.conf (/conf/htaccess.conf/)";
|
3678 |
-
} else {
|
3679 |
-
$htaccess_file = ".htaccess";
|
3680 |
-
}
|
3681 |
-
|
3682 |
-
if ($this->htaccess_redirect && (!is_writable($this->htaccess_file()) || !$this->htaccess_test_success)) {
|
3683 |
-
echo "<br><br>";
|
3684 |
-
if (!is_writable($this->htaccess_file())) _e("The $htaccess_file file is not writable. Add these lines to your htaccess manually, or set 644 writing permissions.", "really-simple-ssl");
|
3685 |
-
if (!$this->htaccess_test_success) _e("The .htaccess redirect rules that were selected by this plugin failed in the test. The following redirect rules were tested:", "really-simple-ssl");
|
3686 |
-
echo "<br><br>";
|
3687 |
-
if ($this->ssl_type != "NA") {
|
3688 |
-
$manual = true;
|
3689 |
-
$rules = $this->get_redirect_rules($manual);
|
3690 |
-
|
3691 |
-
$arr_search = array("<", ">", "\n");
|
3692 |
-
$arr_replace = array("<", ">", "<br>");
|
3693 |
-
$rules = str_replace($arr_search, $arr_replace, $rules);
|
3694 |
-
|
3695 |
-
?>
|
3696 |
-
<code>
|
3697 |
-
<?php echo $rules; ?>
|
3698 |
-
</code>
|
3699 |
-
<?php
|
3700 |
-
} else {
|
3701 |
-
_e("The plugin could not detect any possible redirect rule.", "really-simple-ssl");
|
3702 |
-
}
|
3703 |
-
}
|
3704 |
-
|
3705 |
-
//on multisite, the .htaccess do not edit option is not available
|
3706 |
-
if (!is_multisite()) {
|
3707 |
-
if ($this->do_not_edit_htaccess) {
|
3708 |
-
_e("If the setting 'do not edit htaccess' is enabled, you can't change this setting.", "really-simple-ssl");
|
3709 |
-
} elseif (!$this->htaccess_redirect) {
|
3710 |
-
$link_start = '<a target="_blank" href="https://really-simple-ssl.com/knowledge-base/remove-htaccess-redirect-site-lockout/">';
|
3711 |
-
$link_end = '</a>';
|
3712 |
-
printf(
|
3713 |
-
__('Before you enable this, make sure you know how to %1$sregain access%2$s to your site in case of a redirect loop.', 'really-simple-ssl'),
|
3714 |
-
$link_start,
|
3715 |
-
$link_end
|
3716 |
-
);
|
3717 |
-
}
|
3718 |
-
}
|
3719 |
-
|
3720 |
-
}
|
3721 |
|
3722 |
/**
|
3723 |
* Insert option into settings form
|
@@ -3737,8 +3835,10 @@ class rsssl_admin extends rsssl_front_end
|
|
3737 |
<span class="rsssl-slider rsssl-round"></span>
|
3738 |
</label>
|
3739 |
<?php
|
3740 |
-
|
3741 |
-
|
|
|
|
|
3742 |
}
|
3743 |
|
3744 |
/**
|
@@ -3759,7 +3859,6 @@ class rsssl_admin extends rsssl_front_end
|
|
3759 |
<span class="rsssl-slider rsssl-round"></span>
|
3760 |
</label>
|
3761 |
<?php
|
3762 |
-
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"));
|
3763 |
}
|
3764 |
|
3765 |
/**
|
@@ -3781,7 +3880,6 @@ class rsssl_admin extends rsssl_front_end
|
|
3781 |
<span class="rsssl-slider rsssl-round"></span>
|
3782 |
</label>
|
3783 |
<?php
|
3784 |
-
RSSSL()->rsssl_help->get_help_tip(__("Enable this option to dismiss all +1 notices in the Configuration tab", "really-simple-ssl"));
|
3785 |
}
|
3786 |
|
3787 |
/**
|
@@ -3794,68 +3892,136 @@ class rsssl_admin extends rsssl_front_end
|
|
3794 |
*
|
3795 |
*/
|
3796 |
|
3797 |
-
|
3798 |
-
public function get_option_deactivate_keep_ssl()
|
3799 |
{
|
3800 |
|
3801 |
?>
|
|
|
3802 |
<style>
|
3803 |
-
|
|
|
3804 |
text-align: center !important;
|
|
|
3805 |
}
|
3806 |
-
#TB_window {
|
3807 |
-
height:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3808 |
}
|
3809 |
-
</style>
|
3810 |
-
<div><input class="thickbox button" title="" type="button" style="display: block; float: left;" alt="#TB_inline?
|
3811 |
-
height=370&width=400&inlineId=deactivate_keep_ssl" value="<?php echo __('Deactivate Plugin and keep SSL', 'really-simple-ssl'); ?>"/></div>
|
3812 |
-
<div id="deactivate_keep_ssl" style="display: none;">
|
3813 |
-
<h1 style="margin: 10px 0; text-align: center;"><?php _e("Are you sure?", "really-simple-ssl") ?></h1>
|
3814 |
-
<h2 style="margin: 20px 0; text-align: left;"><?php _e("Deactivating the plugin while keeping SSL will do the following:", "really-simple-ssl") ?></h2>
|
3815 |
-
<ul style="text-align: left; font-size: 1.2em;">
|
3816 |
-
<li><?php _e("* The mixed content fixer will stop working", "really-simple-ssl") ?></li>
|
3817 |
-
<li><?php _e("* The WordPress 301 and Javascript redirect will stop working", "really-simple-ssl") ?></li>
|
3818 |
-
<li><?php _e("* Your site address will remain https://", "really-simple-ssl") ?> </li>
|
3819 |
-
<li><?php _e("* The .htaccess redirect will remain active", "really-simple-ssl") ?></li>
|
3820 |
-
<?php _e("Deactivating the plugin via the plugins overview will revert the site back to http://.", "really-simple-ssl") ?>
|
3821 |
-
</ul>
|
3822 |
|
3823 |
-
|
3824 |
-
|
3825 |
-
|
3826 |
-
|
3827 |
-
|
3828 |
-
|
3829 |
-
|
3830 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3831 |
|
3832 |
-
|
3833 |
-
|
3834 |
-
|
3835 |
-
|
3836 |
-
|
3837 |
-
<a class="button" href="#" id="rsssl_close_tb_window"><?php _e("Cancel", "really-simple-ssl") ?></a>
|
3838 |
|
|
|
|
|
|
|
|
|
3839 |
|
3840 |
-
|
3841 |
-
|
3842 |
-
|
|
|
|
|
|
|
3843 |
|
3844 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3845 |
|
3846 |
-
|
3847 |
-
|
3848 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3849 |
|
3850 |
-
|
3851 |
-
|
3852 |
-
|
3853 |
-
|
3854 |
-
|
3855 |
-
|
3856 |
-
</
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3857 |
<?php
|
3858 |
-
RSSSL()->rsssl_help->get_help_tip(__("Enable this option to dismiss the review notice.", "really-simple-ssl"));
|
3859 |
}
|
3860 |
|
3861 |
/**
|
@@ -3866,7 +4032,6 @@ class rsssl_admin extends rsssl_front_end
|
|
3866 |
|
3867 |
public function get_option_autoreplace_insecure_links()
|
3868 |
{
|
3869 |
-
//$options = get_option('rlrsssl_options');
|
3870 |
$autoreplace_mixed_content = $this->autoreplace_insecure_links;
|
3871 |
$disabled = "";
|
3872 |
$comment = "";
|
@@ -3878,19 +4043,20 @@ class rsssl_admin extends rsssl_front_end
|
|
3878 |
}
|
3879 |
|
3880 |
?>
|
3881 |
-
<label class="rsssl-switch">
|
3882 |
<input id="rlrsssl_options" name="rlrsssl_options[autoreplace_insecure_links]" size="40" value="1"
|
3883 |
-
type="checkbox" <?php checked(1, $autoreplace_mixed_content, true) ?>
|
3884 |
<span class="rsssl-slider rsssl-round"></span>
|
3885 |
</label>
|
3886 |
-
|
3887 |
-
|
3888 |
-
|
3889 |
}
|
3890 |
|
3891 |
/**
|
3892 |
* Add settings link on plugins overview page
|
3893 |
-
*
|
|
|
3894 |
* @since 2.0
|
3895 |
*
|
3896 |
* @access public
|
@@ -3900,46 +4066,22 @@ class rsssl_admin extends rsssl_front_end
|
|
3900 |
|
3901 |
public function plugin_settings_link($links)
|
3902 |
{
|
3903 |
-
|
3904 |
-
//add 'revert to http' after the Deactivate link on the plugins overview page
|
3905 |
-
if (isset($links['deactivate'])) {
|
3906 |
-
$deactivate_link = $links['deactivate'];
|
3907 |
-
$links['deactivate'] = str_replace('</a>', " " . __("(revert to http)", "really-simple-ssl") . '</a>', $deactivate_link);
|
3908 |
-
}
|
3909 |
-
|
3910 |
$settings_link = '<a href="' . admin_url("options-general.php?page=rlrsssl_really_simple_ssl") . '">' . __("Settings", "really-simple-ssl") . '</a>';
|
3911 |
array_unshift($links, $settings_link);
|
3912 |
|
3913 |
-
|
3914 |
-
|
3915 |
-
|
3916 |
-
|
3917 |
-
|
3918 |
-
|
3919 |
-
}
|
3920 |
-
}
|
3921 |
-
if (!defined("rsssl_pro_version")) {
|
3922 |
-
if (!class_exists('RSSSL_PRO')) {
|
3923 |
-
$premium_link = '<a target="_blank" href="https://really-simple-ssl.com/downloads/really-simple-ssl-pro/">' . __('Premium Support', 'really-simple-ssl') . '</a>';
|
3924 |
-
array_unshift($links, $premium_link);
|
3925 |
-
}
|
3926 |
-
}
|
3927 |
-
return $links;
|
3928 |
-
}
|
3929 |
-
|
3930 |
-
/**
|
3931 |
-
* Check for possible plugin conflicts
|
3932 |
-
*
|
3933 |
-
* @since 2.0
|
3934 |
-
*
|
3935 |
-
* @access public
|
3936 |
-
* @return none
|
3937 |
-
*
|
3938 |
-
*/
|
3939 |
|
3940 |
-
|
3941 |
-
|
3942 |
-
|
|
|
|
|
|
|
3943 |
}
|
3944 |
|
3945 |
|
@@ -4022,7 +4164,6 @@ class rsssl_admin extends rsssl_front_end
|
|
4022 |
|
4023 |
protected function get_test_page_contents()
|
4024 |
{
|
4025 |
-
|
4026 |
$filecontents = get_transient('rsssl_testpage');
|
4027 |
if (!$filecontents) {
|
4028 |
$filecontents = "";
|
@@ -4101,20 +4242,22 @@ class rsssl_admin extends rsssl_front_end
|
|
4101 |
<script>
|
4102 |
jQuery(document).ready(function ($) {
|
4103 |
'use strict';
|
4104 |
-
|
4105 |
-
|
4106 |
-
|
4107 |
-
|
4108 |
-
|
4109 |
-
|
4110 |
-
|
4111 |
-
|
4112 |
-
|
4113 |
-
|
4114 |
-
$('#rsssl-maybe-highlight-' + setting_name).closest('tr').addClass('rsssl-highlight');
|
4115 |
}
|
4116 |
}
|
4117 |
-
}
|
|
|
|
|
|
|
4118 |
});
|
4119 |
</script>
|
4120 |
<?php
|
@@ -4136,12 +4279,33 @@ class rsssl_admin extends rsssl_front_end
|
|
4136 |
if ($http_referrer && strpos( $http_referrer, "&highlight=" ) ) {
|
4137 |
$url = add_query_arg( array(
|
4138 |
"page" => "rlrsssl_really_simple_ssl",
|
4139 |
-
"tab" => "
|
4140 |
), admin_url( "options-general.php" ) );
|
4141 |
wp_safe_redirect( $url );
|
4142 |
exit;
|
4143 |
}
|
4144 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4145 |
} //class closure
|
4146 |
|
4147 |
/**
|
@@ -4149,11 +4313,6 @@ class rsssl_admin extends rsssl_front_end
|
|
4149 |
* @return string
|
4150 |
*/
|
4151 |
|
4152 |
-
if (!function_exists('rsssl_mixed_content_fixer_detected')) {
|
4153 |
-
function rsssl_mixed_content_fixer_detected() {
|
4154 |
-
return RSSSL()->really_simple_ssl->mixed_content_fixer_detected();
|
4155 |
-
}
|
4156 |
-
}
|
4157 |
|
4158 |
if (!function_exists('rsssl_site_has_ssl')) {
|
4159 |
function rsssl_site_has_ssl() {
|
@@ -4161,35 +4320,28 @@ if (!function_exists('rsssl_site_has_ssl')) {
|
|
4161 |
}
|
4162 |
}
|
4163 |
|
4164 |
-
if (!function_exists('rsssl_autoreplace_insecure_links')) {
|
4165 |
-
function rsssl_autoreplace_insecure_links() {
|
4166 |
-
return RSSSL()->really_simple_ssl->autoreplace_insecure_links;
|
4167 |
-
}
|
4168 |
-
}
|
4169 |
-
|
4170 |
if (!function_exists('rsssl_ssl_enabled')) {
|
4171 |
-
|
4172 |
-
|
4173 |
-
|
4174 |
-
} else {
|
4175 |
-
return 'ssl-not-enabled';
|
4176 |
-
}
|
4177 |
-
}
|
4178 |
}
|
4179 |
|
4180 |
if (!function_exists('rsssl_ssl_detected')) {
|
4181 |
function rsssl_ssl_detected() {
|
|
|
4182 |
if ( ! RSSSL()->really_simple_ssl->wpconfig_ok() ) {
|
4183 |
-
return 'fail';
|
4184 |
}
|
4185 |
-
|
4186 |
-
|
|
|
4187 |
}
|
4188 |
-
|
4189 |
-
|
|
|
4190 |
}
|
4191 |
|
4192 |
-
return
|
4193 |
}
|
4194 |
}
|
4195 |
|
@@ -4198,84 +4350,48 @@ if (!function_exists('rsssl_check_redirect')) {
|
|
4198 |
if ( ! RSSSL()->really_simple_ssl->has_301_redirect() ) {
|
4199 |
return 'no-redirect-set';
|
4200 |
}
|
|
|
4201 |
if ( RSSSL()->really_simple_ssl->has_301_redirect() && RSSSL()->rsssl_server->uses_htaccess() && RSSSL()->really_simple_ssl->htaccess_contains_redirect_rules() ) {
|
4202 |
return 'htaccess-redirect-set';
|
4203 |
}
|
4204 |
-
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 ) {
|
4205 |
-
return 'wp-redirect-to-htaccess';
|
4206 |
-
}
|
4207 |
-
if ( RSSSL()->rsssl_server->uses_htaccess() && ( ! is_multisite() || ! RSSSL()->rsssl_multisite->is_per_site_activated_multisite_subfolder_install() ) ) {
|
4208 |
-
if ( ! is_writable( RSSSL()->really_simple_ssl->htaccess_file() ) ) {
|
4209 |
-
return 'htaccess-not-writeable';
|
4210 |
-
} else {
|
4211 |
-
return 'htaccess-cannot-be-set';
|
4212 |
-
}
|
4213 |
-
} else {
|
4214 |
-
return 'default';
|
4215 |
-
}
|
4216 |
-
}
|
4217 |
-
}
|
4218 |
|
4219 |
-
if (!
|
4220 |
-
|
4221 |
-
|
4222 |
-
|
4223 |
-
|
4224 |
-
|
4225 |
}
|
4226 |
-
}
|
4227 |
-
}
|
4228 |
|
4229 |
-
if (!
|
4230 |
-
|
4231 |
-
if ( RSSSL()->really_simple_ssl->contains_secure_cookie_settings() ) {
|
4232 |
-
return 'set';
|
4233 |
-
} else {
|
4234 |
-
return 'not-set';
|
4235 |
}
|
4236 |
-
}
|
4237 |
-
}
|
4238 |
|
4239 |
-
|
4240 |
-
function rsssl_scan_upsell() {
|
4241 |
-
return 'upsell';
|
4242 |
}
|
4243 |
}
|
4244 |
|
4245 |
-
if (!function_exists('
|
4246 |
-
function
|
4247 |
-
|
4248 |
-
|
4249 |
-
}
|
4250 |
|
4251 |
-
|
4252 |
-
if (!function_exists('uses_elementor')) {
|
4253 |
-
function uses_elementor() {
|
4254 |
-
if ( defined( 'ELEMENTOR_VERSION' ) || defined( 'ELEMENTOR_PRO_VERSION' ) ) {
|
4255 |
return true;
|
4256 |
-
} else {
|
4257 |
-
return false;
|
4258 |
}
|
|
|
4259 |
}
|
4260 |
}
|
4261 |
|
4262 |
if (!function_exists('rsssl_uses_elementor')) {
|
4263 |
function rsssl_uses_elementor() {
|
4264 |
-
|
4265 |
-
return true;
|
4266 |
-
} else {
|
4267 |
-
return false;
|
4268 |
-
}
|
4269 |
}
|
4270 |
}
|
4271 |
|
4272 |
if (!function_exists('rsssl_uses_divi')) {
|
4273 |
function rsssl_uses_divi() {
|
4274 |
-
|
4275 |
-
return true;
|
4276 |
-
} else {
|
4277 |
-
return false;
|
4278 |
-
}
|
4279 |
}
|
4280 |
}
|
4281 |
|
@@ -4293,12 +4409,6 @@ if (!function_exists('rsssl_ssl_activation_time_no_longer_then_3_days_ago')) {
|
|
4293 |
}
|
4294 |
}
|
4295 |
|
4296 |
-
if (!function_exists('rsssl_elementor_notice')) {
|
4297 |
-
function rsssl_elementor_notice() {
|
4298 |
-
return 'elementor-notice';
|
4299 |
-
}
|
4300 |
-
}
|
4301 |
-
|
4302 |
if (!function_exists('rsssl_wp_redirect_condition')) {
|
4303 |
function rsssl_wp_redirect_condition() {
|
4304 |
if ( RSSSL()->really_simple_ssl->has_301_redirect() && RSSSL()->really_simple_ssl->wp_redirect && ! RSSSL()->really_simple_ssl->htaccess_redirect ) {
|
@@ -4318,24 +4428,3 @@ if (!function_exists('rsssl_wordpress_redirect')) {
|
|
4318 |
}
|
4319 |
}
|
4320 |
}
|
4321 |
-
|
4322 |
-
if (!function_exists('rsssl_no_multisite')) {
|
4323 |
-
function rsssl_no_multisite() {
|
4324 |
-
if ( ! is_multisite() ) {
|
4325 |
-
return true;
|
4326 |
-
} else {
|
4327 |
-
return false;
|
4328 |
-
}
|
4329 |
-
}
|
4330 |
-
}
|
4331 |
-
|
4332 |
-
if (!function_exists('rsssl_does_not_use_pro')) {
|
4333 |
-
function rsssl_does_not_use_pro() {
|
4334 |
-
if ( ! defined("rsssl_pro_version") ) {
|
4335 |
-
// Does not use RSSSL pro
|
4336 |
-
return true;
|
4337 |
-
} else {
|
4338 |
-
return false;
|
4339 |
-
}
|
4340 |
-
}
|
4341 |
-
}
|
5 |
{
|
6 |
|
7 |
private static $_this;
|
|
|
8 |
public $wpconfig_siteurl_not_fixed = FALSE;
|
9 |
public $no_server_variable = FALSE;
|
10 |
public $errors = Array();
|
11 |
+
public $tasks = array();
|
12 |
|
13 |
public $do_wpconfig_loadbalancer_fix = FALSE;
|
14 |
public $site_has_ssl = FALSE;
|
20 |
//general settings
|
21 |
public $capability = 'activate_plugins';
|
22 |
|
|
|
23 |
public $htaccess_test_success = FALSE;
|
24 |
public $plugin_version = rsssl_version; //deprecated, but used in pro plugin until 1.0.25
|
25 |
|
26 |
public $plugin_dir = "really-simple-ssl";
|
27 |
public $plugin_filename = "rlrsssl-really-simple-ssl.php";
|
28 |
public $ABSpath;
|
|
|
29 |
public $do_not_edit_htaccess = FALSE;
|
30 |
public $javascript_redirect = FALSE;
|
31 |
public $htaccess_redirect = FALSE;
|
37 |
public $debug = TRUE;
|
38 |
public $debug_log;
|
39 |
|
|
|
40 |
public $plugin_db_version;
|
|
|
|
|
41 |
public $ssl_type = "NA";
|
42 |
+
public $dismiss_all_notices = false;
|
43 |
+
public $pro_url;
|
44 |
|
45 |
function __construct()
|
46 |
{
|
56 |
|
57 |
$this->get_plugin_upgraded(); //call always, otherwise db version will not match anymore.
|
58 |
|
59 |
+
if (is_multisite()) {
|
60 |
+
$this->pro_url = 'https://really-simple-ssl.com/pro-multisite';
|
61 |
+
} else {
|
62 |
+
$this->pro_url = 'https://really-simple-ssl.com/pro';
|
63 |
+
}
|
64 |
|
65 |
register_deactivation_hook(dirname(__FILE__) . "/" . $this->plugin_filename, array($this, 'deactivate'));
|
|
|
66 |
add_action('admin_init', array($this, 'add_privacy_info'));
|
67 |
+
add_action('admin_init', array($this, 'maybe_dismiss_review_notice'));
|
68 |
+
add_action( "update_option_rlrsssl_options", array( $this, "maybe_clear_transients" ), 10, 3 );
|
69 |
+
|
70 |
+
// Only show deactivate popup when SSL has been enabled.
|
71 |
+
if ($this->ssl_enabled) {
|
72 |
+
add_action('admin_footer', array($this, 'deactivate_popup'), 40);
|
73 |
+
}
|
74 |
|
75 |
}
|
76 |
|
79 |
return self::$_this;
|
80 |
}
|
81 |
|
82 |
+
/**
|
83 |
+
* @param $oldvalue
|
84 |
+
* @param $newvalue
|
85 |
+
* @param $option
|
86 |
+
*/
|
87 |
+
public function maybe_clear_transients($oldvalue, $newvalue, $option){
|
88 |
+
if ($oldvalue !== $newvalue ) {
|
89 |
+
$this->clear_transients();
|
90 |
+
}
|
91 |
+
}
|
92 |
+
|
93 |
+
/**
|
94 |
+
* Clear some transients
|
95 |
+
*/
|
96 |
+
|
97 |
+
public function clear_transients(){
|
98 |
+
delete_transient('rsssl_mixed_content_fixer_detected');
|
99 |
+
delete_transient('rsssl_plusone_count');
|
100 |
+
delete_transient('rsssl_remaining_task_count');
|
101 |
+
}
|
102 |
+
|
103 |
+
/**
|
104 |
+
* Add some privacy info, telling our users we aren't tracking them
|
105 |
+
*/
|
106 |
+
|
107 |
public function add_privacy_info()
|
108 |
{
|
109 |
if (!function_exists('wp_add_privacy_policy_content')) {
|
121 |
);
|
122 |
}
|
123 |
|
124 |
+
/**
|
125 |
+
* Dismiss review notice of dismissed by the user
|
126 |
+
*/
|
127 |
+
|
128 |
+
public function maybe_dismiss_review_notice() {
|
129 |
+
if (isset($_GET['rsssl_dismiss_review_notice'])){
|
130 |
+
$this->review_notice_shown = true;
|
131 |
+
$this->save_options();
|
132 |
+
}
|
133 |
}
|
134 |
|
135 |
/**
|
167 |
add_action('shutdown', 'flush_rewrite_rules');
|
168 |
}
|
169 |
|
170 |
+
// Set default progress toggle to remaining tasks if it hasn't been set
|
171 |
+
if (!get_option('rsssl_all_tasks') && !get_option('rsssl_remaining_tasks') ) {
|
172 |
+
update_option('rsssl_remaining_tasks', true);
|
173 |
+
}
|
|
|
|
|
174 |
|
175 |
+
/*
|
176 |
+
Detect configuration when:
|
177 |
+
- SSL activation just confirmed.
|
178 |
+
- on settings page
|
179 |
+
- No SSL detected
|
180 |
+
*/
|
181 |
|
182 |
//when configuration should run again
|
183 |
+
if ($this->clicked_activate_ssl() || !$this->ssl_enabled || !$this->site_has_ssl || $is_on_settings_page || is_network_admin() || defined('RSSSL_DOING_SYSTEM_STATUS') ) {
|
|
|
184 |
if (is_multisite()) $this->build_domain_list();//has to come after clicked_activate_ssl, otherwise this domain won't get counted.
|
185 |
$this->detect_configuration();
|
186 |
|
206 |
|
207 |
//when SSL is enabled, and not enabled by user, ask for activation.
|
208 |
add_action("admin_notices", array($this, 'show_notice_activate_ssl'), 10);
|
|
|
209 |
add_action('rsssl_activation_notice', array($this, 'ssl_detected'), 10);
|
210 |
add_action('rsssl_activation_notice_inner', array($this, 'almost_ready_to_migrate'), 30);
|
211 |
+
add_action('rsssl_activation_notice_footer', array($this, 'show_enable_ssl_button'), 50);
|
|
|
|
|
|
|
212 |
|
213 |
//add the settings page for the plugin
|
214 |
add_action('admin_enqueue_scripts', array($this, 'enqueue_assets'));
|
|
|
215 |
|
216 |
//settings page, form and settings link in the plugins page
|
217 |
add_action('admin_menu', array($this, 'add_settings_page'), 40);
|
218 |
+
add_action('admin_init', array($this, 'create_form'), 40);
|
219 |
+
add_action('admin_init', array($this, 'backward_compatibility'), 40);
|
220 |
add_action('admin_init', array($this, 'listen_for_deactivation'), 40);
|
221 |
+
add_action( 'update_option_rlrsssl_options', array( $this, 'maybe_remove_highlight_from_url' ), 50 );
|
|
|
|
|
|
|
|
|
222 |
|
223 |
$plugin = rsssl_plugin;
|
224 |
add_filter("plugin_action_links_$plugin", array($this, 'plugin_settings_link'));
|
226 |
//Add update notification to Settings admin menu
|
227 |
add_action('admin_menu', array($this, 'rsssl_edit_admin_menu') );
|
228 |
|
|
|
|
|
229 |
|
230 |
//callbacks for the ajax dismiss buttons
|
|
|
231 |
add_action('wp_ajax_dismiss_success_message', array($this, 'dismiss_success_message_callback'));
|
232 |
add_action('wp_ajax_rsssl_dismiss_review_notice', array($this, 'dismiss_review_notice_callback'));
|
233 |
add_action('wp_ajax_rsssl_dismiss_settings_notice', array($this, 'dismiss_settings_notice_callback'));
|
234 |
+
add_action('wp_ajax_rsssl_update_task_toggle_option', array($this, 'update_task_toggle_option'));
|
235 |
|
236 |
//handle notices
|
237 |
add_action('admin_notices', array($this, 'show_notices'));
|
242 |
add_action("update_option_rlrsssl_options", array($this, "update_htaccess_after_settings_save"), 20, 3);
|
243 |
}
|
244 |
|
245 |
+
public function check_upgrade() {
|
246 |
+
$prev_version = get_option( 'rsssl_current_version', false );
|
247 |
+
if ( $prev_version && version_compare( $prev_version, '4.0', '<' ) ) {
|
248 |
+
update_option('rsssl_remaining_tasks', true);
|
249 |
+
}
|
250 |
+
update_option( 'rsssl_current_version', rsssl_version );
|
251 |
+
}
|
252 |
+
|
253 |
+
/**
|
254 |
+
* Because of breaking changes in 4.0 we need to remove some legacy actions to ensure no issues occur
|
255 |
+
*/
|
256 |
+
public function backward_compatibility(){
|
257 |
+
if ( function_exists('RSSSL_PRO') ) remove_action( 'admin_init', array(RSSSL_PRO()->rsssl_premium_options, 'add_pro_settings'),60);
|
258 |
+
}
|
259 |
+
|
260 |
+
/**
|
261 |
* Deactivate the plugin while keeping SSL
|
262 |
* Activated when the 'uninstall_keep_ssl' button is clicked in the settings tab
|
263 |
*
|
265 |
|
266 |
public function listen_for_deactivation()
|
267 |
{
|
|
|
|
|
|
|
268 |
//check user role
|
269 |
if (!current_user_can($this->capability)) return;
|
270 |
|
271 |
//check nonce
|
272 |
if (!isset($_GET['token']) || (!wp_verify_nonce($_GET['token'], 'rsssl_deactivate_plugin'))) return;
|
273 |
+
|
274 |
//check for action
|
275 |
if (isset($_GET["action"]) && $_GET["action"] == 'uninstall_keep_ssl') {
|
276 |
//deactivate plugin, but don't revert to http.
|
278 |
$plugin = plugin_basename(trim($plugin));
|
279 |
|
280 |
if (is_multisite()) {
|
|
|
281 |
$network_current = get_site_option('active_sitewide_plugins', array());
|
282 |
if (is_plugin_active_for_network($plugin)) {
|
283 |
unset($network_current[$plugin]);
|
305 |
}
|
306 |
}
|
307 |
|
308 |
+
/**
|
|
|
309 |
* Remove the plugin from the active plugins array when called from listen_for_deactivation
|
310 |
*
|
311 |
* */
|
312 |
|
|
|
313 |
public function remove_plugin_from_array($plugin, $current)
|
314 |
{
|
315 |
$key = array_search($plugin, $current);
|
319 |
return $current;
|
320 |
}
|
321 |
|
322 |
+
/**
|
323 |
* @Since 3.1
|
324 |
*
|
325 |
* Check if site uses an htaccess.conf file, used in bitnami installations
|
347 |
return $sites;
|
348 |
}
|
349 |
|
350 |
+
/**
|
351 |
+
* The new get_sites function returns an object.
|
352 |
+
* @param $site
|
353 |
+
*/
|
354 |
|
355 |
public function switch_to_blog_bw_compatible($site)
|
356 |
{
|
364 |
}
|
365 |
|
366 |
|
367 |
+
/**
|
368 |
+
* checks if the user just clicked the "activate SSL" button.
|
369 |
+
*/
|
370 |
|
371 |
private function clicked_activate_ssl()
|
372 |
{
|
373 |
if (!current_user_can($this->capability)) return;
|
|
|
374 |
|
375 |
if (isset($_POST['rsssl_do_activate_ssl'])) {
|
376 |
$this->activate_ssl();
|
377 |
+
update_option('rsssl_activation_timestamp', time());
|
|
|
|
|
|
|
378 |
|
379 |
return true;
|
380 |
}
|
383 |
}
|
384 |
|
385 |
|
386 |
+
/**
|
387 |
+
* Activate the SSL for this site
|
388 |
+
*/
|
389 |
|
390 |
public function activate_ssl()
|
391 |
{
|
392 |
$this->ssl_enabled = true;
|
393 |
$this->wp_redirect = true;
|
|
|
394 |
$this->set_siteurl_to_ssl();
|
395 |
$this->save_options();
|
|
|
|
|
396 |
}
|
397 |
|
398 |
+
/**
|
399 |
+
* Deactivate SSL for this site
|
400 |
+
*/
|
401 |
|
402 |
public function deactivate_ssl()
|
403 |
{
|
409 |
$this->save_options();
|
410 |
}
|
411 |
|
412 |
+
public function redirect_to_settings_page() {
|
413 |
if (isset($_GET['page']) && $_GET['page'] == 'rlrsssl_really_simple_ssl') return;
|
414 |
$url = add_query_arg( array(
|
415 |
"page" => "rlrsssl_really_simple_ssl",
|
416 |
+
"tab" => "configuration",
|
417 |
), admin_url( "options-general.php" ) );
|
418 |
wp_redirect( $url );
|
419 |
exit;
|
432 |
return apply_filters('rsssl_wpconfig_ok_check', $result);
|
433 |
}
|
434 |
|
435 |
+
/**
|
436 |
+
This message is shown when SSL is not enabled by the user yet
|
437 |
+
*/
|
|
|
438 |
|
439 |
public function show_notice_activate_ssl()
|
440 |
{
|
441 |
//prevent showing the review on edit screen, as gutenberg removes the class which makes it editable.
|
442 |
$screen = get_current_screen();
|
443 |
+
if ( $screen->base === 'post' ) return;
|
444 |
|
445 |
if ($this->ssl_enabled) return;
|
446 |
|
462 |
|
463 |
}
|
464 |
|
465 |
+
/**
|
466 |
+
* Show a notice that the website is ready to migrate to SSL.
|
467 |
+
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
468 |
|
469 |
+
public function ssl_detected()
|
470 |
{
|
471 |
+
if ($this->site_has_ssl || (defined('RSSSL_FORCE_ACTIVATE') && RSSSL_FORCE_ACTIVATE)) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
472 |
|
473 |
+
ob_start();
|
474 |
+
do_action('rsssl_activation_notice_inner');
|
475 |
+
$content = ob_get_clean();
|
476 |
|
477 |
+
ob_start();
|
478 |
+
do_action('rsssl_activation_notice_footer');
|
479 |
+
$footer = ob_get_clean();
|
480 |
|
481 |
+
$class = apply_filters("rsssl_activation_notice_classes", "updated activate-ssl rsssl-pro-dismiss-notice");
|
482 |
+
$title = __("Almost ready to migrate to SSL!", "really-simple-ssl");
|
483 |
+
echo $this->notice_html( $class, $title, $content, $footer);
|
484 |
+
}
|
485 |
+
}
|
486 |
|
487 |
+
/**
|
488 |
+
* Show almost ready to migrate notice
|
489 |
+
*/
|
490 |
+
public function almost_ready_to_migrate()
|
491 |
+
{
|
492 |
+
_e("Before you migrate, please check for: ", 'really-simple-ssl'); ?>
|
493 |
+
<p>
|
494 |
+
<ul>
|
495 |
+
<li><?php _e('Http references in your .css and .js files: change any http:// into https://', 'really-simple-ssl'); ?></li>
|
496 |
+
<li><?php _e('Images, stylesheets or scripts from a domain without an SSL certificate: remove them or move to your own server', 'really-simple-ssl'); ?></li><?php
|
497 |
|
498 |
$backup_link = "https://really-simple-ssl.com/knowledge-base/backing-up-your-site/";
|
499 |
$link_open = '<a target="_blank" href="'.$backup_link.'">';
|
500 |
$link_close = '</a>';
|
501 |
?>
|
502 |
+
<li><?php printf(__("We strongly recommend to create a %sbackup%s of your site before activating SSL", 'really-simple-ssl'), $link_open, $link_close); ?> </li>
|
503 |
+
<li><?php _e("You may need to login in again.", "really-simple-ssl") ?></li>
|
504 |
</ul>
|
505 |
+
</p>
|
506 |
+
<p><?php
|
507 |
+
if (!defined('rsssl_pro_version')) {
|
508 |
+
_e('You can also let the automatic scan of the pro version handle this for you, and get premium support, increased security with HSTS and more!', 'really-simple-ssl');
|
509 |
+
?>
|
510 |
+
<a target="_blank"
|
511 |
+
href="<?php
|
512 |
+
echo $this->pro_url; ?>"><?php _e("Check out Really Simple SSL Pro", "really-simple-ssl");
|
513 |
+
}
|
514 |
+
?>
|
515 |
+
</a>
|
516 |
+
</p>
|
517 |
+
|
518 |
+
<?php
|
519 |
+
}
|
520 |
+
|
521 |
+
|
522 |
+
/**
|
523 |
+
* @param string $class
|
524 |
+
* @param string $title
|
525 |
+
* @param string $content
|
526 |
+
* @param string|bool $footer
|
527 |
+
* @return false|string
|
528 |
+
*
|
529 |
+
* @since 4.0
|
530 |
+
* Return the notice HTML
|
531 |
+
*
|
532 |
+
*/
|
533 |
+
|
534 |
+
public function notice_html($class, $title, $content, $footer=false) {
|
535 |
+
|
536 |
+
ob_start();
|
537 |
+
?>
|
538 |
+
<style>
|
539 |
+
#rsssl-message.error{
|
540 |
+
border-left-color:#d7263d;
|
541 |
+
}
|
542 |
+
.activate-ssl {
|
543 |
+
border-left: 4px solid #F8BE2E;
|
544 |
+
}
|
545 |
+
.activate-ssl .button {
|
546 |
+
margin-bottom: 5px;
|
547 |
+
}
|
548 |
+
|
549 |
+
#rsssl-message .button-primary {
|
550 |
+
margin-right: 10px;
|
551 |
+
}
|
552 |
+
|
553 |
+
.rsssl-notice-header {
|
554 |
+
height: 60px;
|
555 |
+
border-bottom: 1px solid #dedede;
|
556 |
+
display: flex;
|
557 |
+
flex-direction: row;
|
558 |
+
justify-content: space-between;
|
559 |
+
align-items: center;
|
560 |
+
padding-left: 25px;
|
561 |
+
}
|
562 |
+
.rsssl-notice-header h1 {
|
563 |
+
font-weight: bold;
|
564 |
+
}
|
565 |
+
|
566 |
+
.rsssl-notice-content {
|
567 |
+
margin-top: 20px;
|
568 |
+
padding-bottom: 20px;
|
569 |
+
padding-left: 25px;
|
570 |
+
}
|
571 |
+
|
572 |
+
.rsssl-notice-footer {
|
573 |
+
border-top: 1px solid #dedede;
|
574 |
+
height: 35px;
|
575 |
+
display: flex;
|
576 |
+
align-items: center;
|
577 |
+
padding-top: 10px;
|
578 |
+
padding-bottom: 10px;
|
579 |
+
margin-left: 25px;
|
580 |
+
margin-right: 25px;
|
581 |
+
}
|
582 |
+
|
583 |
+
#rsssl-message {
|
584 |
+
padding: 0;
|
585 |
+
border-left-color: #333;
|
586 |
+
}
|
587 |
+
|
588 |
+
#rsssl-message .rsssl-notice-li::before {
|
589 |
+
vertical-align: middle;
|
590 |
+
margin-right: 25px;
|
591 |
+
color: lightgrey;
|
592 |
+
content: "\f345";
|
593 |
+
font: 400 21px/1 dashicons;
|
594 |
+
}
|
595 |
+
|
596 |
+
#rsssl-message ul {
|
597 |
+
list-style: none;
|
598 |
+
list-style-position: inside;
|
599 |
+
}
|
600 |
+
#rsssl-message li {
|
601 |
+
margin-left:30px;
|
602 |
+
margin-bottom:10px;
|
603 |
+
}
|
604 |
+
#rsssl-message li:before {
|
605 |
+
background-color: #f8be2e;
|
606 |
+
color: #fff;
|
607 |
+
height: 10px;
|
608 |
+
width: 10px;
|
609 |
+
border-radius:50%;
|
610 |
+
content: '';
|
611 |
+
position: absolute;
|
612 |
+
margin-top: 5px;
|
613 |
+
margin-left:-30px;
|
614 |
+
}
|
615 |
+
|
616 |
+
.settings_page_rlrsssl_really_simple_ssl #wpcontent #rsssl-message, .settings_page_really-simple-ssl #wpcontent #rsssl-message {
|
617 |
+
margin: 20px;
|
618 |
+
}
|
619 |
+
<?php echo apply_filters('rsssl_pro_inline_style', ''); ?>
|
620 |
+
|
621 |
+
</style>
|
622 |
+
|
623 |
+
<div id="rsssl-message" class="notice <?php echo $class?> really-simple-plugins">
|
624 |
+
<div class="rsssl-notice">
|
625 |
+
<div class="rsssl-notice-header">
|
626 |
+
<h1><?php echo $title ?></h1>
|
627 |
+
</div>
|
628 |
+
<div class="rsssl-notice-content">
|
629 |
+
<?php echo $content ?>
|
630 |
+
</div>
|
631 |
+
<?php
|
632 |
+
if ($footer ) { ?>
|
633 |
+
<div class="rsssl-notice-footer">
|
634 |
+
<?php echo $footer;?>
|
635 |
+
</div>
|
636 |
+
<?php } ?>
|
637 |
+
</div>
|
638 |
+
</div>
|
639 |
+
<?php
|
640 |
+
|
641 |
+
$content = ob_get_clean();
|
642 |
+
return $content;
|
643 |
+
}
|
644 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
645 |
|
646 |
/**
|
647 |
* @since 2.3
|
651 |
|
652 |
public function show_enable_ssl_button()
|
653 |
{
|
654 |
+
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
655 |
<form action="" method="post">
|
656 |
<?php wp_nonce_field('rsssl_nonce', 'rsssl_nonce'); ?>
|
657 |
<input type="submit" class='button button-primary'
|
658 |
value="<?php _e("Go ahead, activate SSL!", "really-simple-ssl"); ?>" id="rsssl_do_activate_ssl"
|
659 |
name="rsssl_do_activate_ssl">
|
660 |
<?php if (!defined("rsssl_pro_version") ) { ?>
|
661 |
+
<a class="button button-default" href="<?php echo $this->pro_url ?>" target="_blank"><?php _e("Get ready with PRO!", "really-simple-ssl"); ?></a>
|
662 |
<?php } ?>
|
663 |
</form>
|
664 |
+
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
665 |
}
|
666 |
|
667 |
/**
|
681 |
return false;
|
682 |
}
|
683 |
|
684 |
+
/**
|
685 |
+
* Check if the uninstall file is renamed to .php
|
686 |
+
*
|
687 |
+
* @return string
|
688 |
+
*/
|
689 |
|
690 |
+
public function check_for_uninstall_file()
|
691 |
{
|
692 |
if (file_exists(dirname(__FILE__) . '/force-deactivate.php')) {
|
693 |
+
return 'fail';
|
694 |
}
|
695 |
+
return 'success';
|
696 |
}
|
697 |
|
698 |
/**
|
716 |
$this->review_notice_shown = isset($options['review_notice_shown']) ? $options['review_notice_shown'] : FALSE;
|
717 |
$this->ssl_success_message_shown = isset($options['ssl_success_message_shown']) ? $options['ssl_success_message_shown'] : FALSE;
|
718 |
$this->plugin_db_version = isset($options['plugin_db_version']) ? $options['plugin_db_version'] : "1.0";
|
|
|
719 |
$this->do_not_edit_htaccess = isset($options['do_not_edit_htaccess']) ? $options['do_not_edit_htaccess'] : FALSE;
|
720 |
$this->htaccess_redirect = isset($options['htaccess_redirect']) ? $options['htaccess_redirect'] : FALSE;
|
721 |
$this->switch_mixed_content_fixer_hook = isset($options['switch_mixed_content_fixer_hook']) ? $options['switch_mixed_content_fixer_hook'] : FALSE;
|
729 |
$network_htaccess_redirect = isset($network_options["htaccess_redirect"]) ? $network_options["htaccess_redirect"] : false;
|
730 |
$network_do_not_edit_htaccess = isset($network_options["do_not_edit_htaccess"]) ? $network_options["do_not_edit_htaccess"] : false;
|
731 |
/*
|
732 |
+
If multiste, and networkwide, only the networkwide setting counts.
|
733 |
+
if multisite, and per site, only the networkwide setting counts if it is true.
|
734 |
+
*/
|
735 |
$ssl_enabled_networkwide = isset($network_options["ssl_enabled_networkwide"]) ? $network_options["ssl_enabled_networkwide"] : false;
|
736 |
if ($ssl_enabled_networkwide) {
|
737 |
$this->htaccess_redirect = $network_htaccess_redirect;
|
770 |
$nr_of_sites = RSSSL()->rsssl_multisite->get_total_blog_count();
|
771 |
$sites = RSSSL()->rsssl_multisite->get_sites_bw_compatible(0, $nr_of_sites);
|
772 |
|
773 |
+
$this->trace_log("building domain list for multisite...");
|
774 |
+
$has_sites_with_ssl = false;
|
775 |
foreach ($sites as $site) {
|
776 |
$this->switch_to_blog_bw_compatible($site);
|
777 |
$options = get_option('rlrsssl_options');
|
783 |
}
|
784 |
|
785 |
if (is_plugin_active(rsssl_plugin) && $ssl_enabled) {
|
786 |
+
$this->trace_log("- adding: " . home_url());
|
787 |
$this->sites[] = home_url();
|
788 |
+
$has_sites_with_ssl = true;
|
789 |
}
|
790 |
restore_current_blog(); //switches back to previous blog, not current, so we have to do it each loop
|
791 |
}
|
792 |
|
793 |
+
if (!$has_sites_with_ssl) $this->trace_log("- SSL not enabled on any site " );
|
794 |
+
|
795 |
set_transient('rsssl_domain_list', $this->sites, HOUR_IN_SECONDS);
|
796 |
|
797 |
$this->save_options();
|
810 |
public function get_plugin_upgraded()
|
811 |
{
|
812 |
if ($this->plugin_db_version != rsssl_version) {
|
813 |
+
if ( $this->plugin_db_version !== '1.0' && version_compare( $this->plugin_db_version, '4.0.0', '<' ) ) {
|
814 |
+
update_option('rsssl_upgraded_to_four', true);
|
815 |
+
}
|
816 |
+
|
817 |
+
if ( $this->plugin_db_version !== '1.0' ) {
|
818 |
+
$dismiss_options = $this->get_notices_list( array(
|
819 |
+
'dismiss_on_upgrade' => true,
|
820 |
+
) );
|
821 |
+
foreach ($dismiss_options as $dismiss_option ) {
|
822 |
+
update_option( "rsssl_" . $dismiss_option . "_dismissed" , true);
|
823 |
+
}
|
824 |
+
delete_transient( 'rsssl_plusone_count' );
|
825 |
+
}
|
826 |
+
|
827 |
$this->plugin_db_version = rsssl_version;
|
|
|
828 |
$this->save_options();
|
829 |
}
|
|
|
830 |
}
|
831 |
|
832 |
/**
|
842 |
|
843 |
public function trace_log($msg)
|
844 |
{
|
845 |
+
if (defined('RSSSL_DOING_SYSTEM_STATUS') || (defined('WP_DEBUG') && WP_DEBUG ) )
|
846 |
+
|
847 |
if (strpos($this->debug_log, $msg)) return;
|
848 |
+
$this->debug_log = $this->debug_log . "\n" . $msg;
|
|
|
849 |
}
|
850 |
|
851 |
/**
|
896 |
}
|
897 |
|
898 |
if (!is_multisite()) {
|
899 |
+
$this->redirect_to_settings_page();
|
900 |
}
|
901 |
|
902 |
}
|
1034 |
$wpconfig = preg_replace($siteurl_pattern, "define('WP_SITEURL','https://", $wpconfig);
|
1035 |
file_put_contents($wpconfig_path, $wpconfig);
|
1036 |
} else {
|
1037 |
+
$this->trace_log("not able to fix wpconfig siteurl/homeurl.");
|
|
|
|
|
1038 |
//only when siteurl or homeurl is defined in wpconfig, and wpconfig is not writable is there a possible issue because we cannot edit the defined urls.
|
1039 |
$this->wpconfig_siteurl_not_fixed = TRUE;
|
1040 |
}
|
1041 |
} else {
|
1042 |
+
$this->trace_log("no siteurl/homeurl defines in wpconfig");
|
|
|
|
|
1043 |
}
|
1044 |
}
|
1045 |
|
1113 |
}
|
1114 |
|
1115 |
file_put_contents($wpconfig_path, $wpconfig);
|
1116 |
+
$this->trace_log("wp config loadbalancer fix inserted");
|
|
|
|
|
1117 |
} else {
|
1118 |
+
$this->trace_log("wp config loadbalancer fix FAILED");
|
|
|
|
|
1119 |
$this->wpconfig_loadbalancer_fix_failed = TRUE;
|
1120 |
}
|
1121 |
} else {
|
1122 |
+
$this->trace_log("wp config loadbalancer fix already in place, great!");
|
|
|
|
|
1123 |
}
|
1124 |
$this->save_options();
|
1125 |
|
1145 |
|
1146 |
//check permissions
|
1147 |
if (!is_writable($wpconfig_path)) {
|
1148 |
+
$this->trace_log("wp-config.php not writable");
|
1149 |
return;
|
1150 |
}
|
1151 |
|
1160 |
|
1161 |
//check if the fix is already there
|
1162 |
if (strpos($wpconfig, "//Begin Really Simple SSL Server variable fix") !== FALSE) {
|
1163 |
+
$this->trace_log("wp config server variable fix already in place, great!");
|
|
|
|
|
1164 |
return;
|
1165 |
}
|
1166 |
|
1167 |
+
$this->trace_log("Adding server variable to wpconfig");
|
|
|
|
|
1168 |
$rule = $this->get_server_variable_fix_code();
|
1169 |
|
1170 |
$insert_after = "<?php";
|
1173 |
$wpconfig = substr_replace($wpconfig, $rule, $pos + 1 + strlen($insert_after), 0);
|
1174 |
}
|
1175 |
file_put_contents($wpconfig_path, $wpconfig);
|
1176 |
+
$this->trace_log("wp config server variable fix inserted");
|
1177 |
|
1178 |
$this->save_options();
|
1179 |
}
|
1191 |
protected function get_server_variable_fix_code()
|
1192 |
{
|
1193 |
if (is_multisite() && !RSSSL()->rsssl_multisite->ssl_enabled_networkwide && RSSSL()->rsssl_multisite->is_multisite_subfolder_install()) {
|
1194 |
+
$this->trace_log("per site activation on subfolder install, wp config server variable fix skipped");
|
1195 |
return "";
|
1196 |
}
|
1197 |
|
1198 |
if (is_multisite() && !RSSSL()->rsssl_multisite->ssl_enabled_networkwide && count($this->sites) == 0) {
|
1199 |
+
$this->trace_log("no sites left with SSL, wp config server variable fix skipped");
|
1200 |
return "";
|
1201 |
}
|
1202 |
|
1204 |
$rule = "\n" . "//Begin Really Simple SSL Server variable fix" . "\n";
|
1205 |
foreach ($this->sites as $domain) {
|
1206 |
//remove http or https.
|
1207 |
+
$this->trace_log("getting server variable rule for:" . $domain);
|
|
|
|
|
1208 |
$domain = preg_replace("/(http:\/\/|https:\/\/)/", "", $domain);
|
1209 |
|
1210 |
//we excluded subfolders, so treat as domain
|
1243 |
|
1244 |
//check for permissions
|
1245 |
if (!is_writable($wpconfig_path)) {
|
1246 |
+
$this->trace_log("could not remove wpconfig edits, wp-config.php not writable");
|
1247 |
$this->errors['wpconfig not writable'] = TRUE;
|
1248 |
return;
|
1249 |
}
|
1312 |
|
1313 |
public function save_options()
|
1314 |
{
|
|
|
|
|
1315 |
//any options added here should also be added to function options_validate()
|
1316 |
$options = array(
|
1317 |
'site_has_ssl' => $this->site_has_ssl,
|
1321 |
'ssl_success_message_shown' => $this->ssl_success_message_shown,
|
1322 |
'autoreplace_insecure_links' => $this->autoreplace_insecure_links,
|
1323 |
'plugin_db_version' => $this->plugin_db_version,
|
|
|
1324 |
'do_not_edit_htaccess' => $this->do_not_edit_htaccess,
|
1325 |
'htaccess_redirect' => $this->htaccess_redirect,
|
1326 |
'ssl_enabled' => $this->ssl_enabled,
|
1331 |
'dismiss_review_notice' => $this->dismiss_review_notice,
|
1332 |
|
1333 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1334 |
|
1335 |
+
update_option('rlrsssl_options', $options);
|
|
|
|
|
1336 |
}
|
1337 |
|
1338 |
+
|
1339 |
/**
|
1340 |
* Handles deactivation of this plugin
|
1341 |
*
|
1373 |
RSSSL()->rsssl_multisite->deactivate();
|
1374 |
if (!RSSSL()->rsssl_multisite->ssl_enabled_networkwide) $this->build_domain_list();
|
1375 |
}
|
1376 |
+
do_action("rsssl_deactivate");
|
1377 |
|
1378 |
$this->remove_wpconfig_edit();
|
1379 |
$this->removeHtaccessEdit();
|
1422 |
|
1423 |
public function detect_configuration()
|
1424 |
{
|
1425 |
+
$this->trace_log("Detecting configuration");
|
1426 |
//if current page is on SSL, we can assume SSL is available, even when an errormsg was returned
|
1427 |
if ($this->is_ssl_extended()) {
|
1428 |
$this->site_has_ssl = TRUE;
|
1505 |
|
1506 |
$this->htaccess_test_success = get_transient('rsssl_htaccess_test_success');
|
1507 |
if (!$this->htaccess_test_success) {
|
1508 |
+
$this->trace_log("testing htaccess rules...");
|
|
|
|
|
|
|
1509 |
|
1510 |
$filecontents = "";
|
1511 |
$testpage_url = trailingslashit($this->test_url()) . "testssl/";
|
1665 |
$this->save_options();
|
1666 |
} else {
|
1667 |
$this->errors['HTACCESS_NOT_WRITABLE'] = TRUE;
|
1668 |
+
$this->trace_log("could not remove rules from htaccess, file not writable");
|
1669 |
}
|
1670 |
}
|
1671 |
|
1704 |
* @since 2.0
|
1705 |
*
|
1706 |
*/
|
1707 |
+
|
1708 |
public function htaccess_redirect_allowed()
|
1709 |
{
|
1710 |
if (is_multisite() && RSSSL()->rsssl_multisite->is_per_site_activated_multisite_subfolder_install()) {
|
1816 |
return $result;
|
1817 |
}
|
1818 |
|
1819 |
+
/**
|
1820 |
+
* returns list of recommended, but not active security headers for this site
|
1821 |
+
* returns empty array if no .htacces file exists
|
1822 |
+
* @return array
|
1823 |
+
*
|
1824 |
+
* @since 4.0
|
1825 |
+
*
|
1826 |
+
* @access public
|
1827 |
+
*
|
1828 |
+
*/
|
1829 |
+
|
1830 |
+
public function get_recommended_security_headers()
|
1831 |
+
{
|
1832 |
+
$not_used_headers = array();
|
1833 |
+
if (RSSSL()->rsssl_server->uses_htaccess() && file_exists($this->htaccess_file())) {
|
1834 |
+
$check_headers = array(
|
1835 |
+
array(
|
1836 |
+
'name' => 'HTTP Strict Transport Security',
|
1837 |
+
'pattern' => 'Strict-Transport-Security',
|
1838 |
+
),
|
1839 |
+
array(
|
1840 |
+
'name' => 'Content Security Policy: Upgrade Insecure Requests',
|
1841 |
+
'pattern' => 'upgrade-insecure-requests',
|
1842 |
+
),
|
1843 |
+
array(
|
1844 |
+
'name' => 'X-XSS protection',
|
1845 |
+
'pattern' => 'X-XSS-Protection',
|
1846 |
+
),
|
1847 |
+
array(
|
1848 |
+
'name' => 'X-Content Type Options',
|
1849 |
+
'pattern' => 'X-Content-Type-Options',
|
1850 |
+
),
|
1851 |
+
array(
|
1852 |
+
'name' => 'Referrer-Policy',
|
1853 |
+
'pattern' => 'Referrer-Policy',
|
1854 |
+
),
|
1855 |
+
array(
|
1856 |
+
'name' => 'X-Frame-Options',
|
1857 |
+
'pattern' => 'X-Frame-Options',
|
1858 |
+
),
|
1859 |
+
array(
|
1860 |
+
'name' => 'Expect-CT',
|
1861 |
+
'pattern' => 'Expect-CT',
|
1862 |
+
),
|
1863 |
+
);
|
1864 |
+
|
1865 |
+
$htaccess = file_get_contents($this->htaccess_file());
|
1866 |
+
foreach ($check_headers as $check_header){
|
1867 |
+
if ( !preg_match("/".$check_header['pattern']."/", $htaccess, $check) ) {
|
1868 |
+
$not_used_headers[] = $check_header['name'];
|
1869 |
+
}
|
1870 |
+
}
|
1871 |
+
}
|
1872 |
+
|
1873 |
+
return $not_used_headers;
|
1874 |
+
}
|
1875 |
+
|
1876 |
|
1877 |
/**
|
1878 |
* Adds redirect to https rules to the .htaccess file or htaccess.conf on Bitnami.
|
1956 |
}
|
1957 |
|
1958 |
if (!is_writable($this->htaccess_file())) {
|
1959 |
+
$this->trace_log(".htaccess not writable.");
|
1960 |
return;
|
1961 |
}
|
1962 |
|
2027 |
}
|
2028 |
}
|
2029 |
|
2030 |
+
if ($this->autoreplace_insecure_links == ! true) {
|
2031 |
+
$mixed_content_fixer_detected = 'not-enabled';
|
2032 |
+
}
|
2033 |
+
|
2034 |
set_transient('rsssl_mixed_content_fixer_detected', $mixed_content_fixer_detected, 600);
|
2035 |
}
|
2036 |
|
2060 |
$this->mixed_content_fixer_detected = true;
|
2061 |
}
|
2062 |
|
2063 |
+
if ($mixed_content_fixer_detected === 'not-enabled') {
|
2064 |
+
$this->trace_log("Mixed content fixer not enabled");
|
2065 |
+
$this->mixed_content_fixer_detected = FALSE;
|
2066 |
+
}
|
2067 |
+
|
2068 |
return $mixed_content_fixer_detected;
|
2069 |
}
|
2070 |
|
2071 |
+
/**
|
2072 |
* Create redirect rules for the .htaccess.
|
2073 |
+
* @since 2.1
|
2074 |
+
*
|
2075 |
+
* @access public
|
2076 |
*
|
2077 |
+
* @param bool $manual
|
2078 |
+
*
|
2079 |
+
* @return string
|
2080 |
+
*/
|
2081 |
+
|
2082 |
+
public function get_redirect_rules($manual = false)
|
|
|
2083 |
{
|
2084 |
$this->trace_log("retrieving redirect rules");
|
2085 |
//only add the redirect rules when a known type of SSL was detected. Otherwise, we use https.
|
2086 |
$rule = "";
|
|
|
2087 |
//if the htaccess test was successfull, and we know the redirectype, edit
|
2088 |
if ($this->htaccess_redirect && ($manual || $this->htaccess_test_success) && $this->ssl_type != "NA") {
|
2089 |
+
$this->trace_log("starting insertion of .htaccess redirects.");
|
2090 |
$rule .= "<IfModule mod_rewrite.c>" . "\n";
|
2091 |
$rule .= "RewriteEngine on" . "\n";
|
2092 |
|
2139 |
$rule = strrev(implode("", explode(strrev("[OR]"), strrev($rule), 2)));
|
2140 |
}
|
2141 |
} else {
|
2142 |
+
$this->trace_log("single site or networkwide activation");
|
|
|
|
|
2143 |
}
|
2144 |
|
2145 |
//fastest cache compatibility
|
2167 |
return $rule;
|
2168 |
}
|
2169 |
|
|
|
2170 |
/**
|
2171 |
* Show warning when wpconfig could not be fixed
|
2172 |
*
|
2180 |
{
|
2181 |
//prevent showing the review on edit screen, as gutenberg removes the class which makes it editable.
|
2182 |
$screen = get_current_screen();
|
2183 |
+
if ( $screen->base === 'post' ) return;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2184 |
|
2185 |
+
ob_start();
|
2186 |
+
if ($this->wpconfig_siteurl_not_fixed) { ?>
|
2187 |
+
<p>
|
2188 |
+
<?php echo __("A definition of a siteurl or homeurl was detected in your wp-config.php, but the file is not writable.", "really-simple-ssl"); ?>
|
2189 |
+
</p>
|
2190 |
+
<p><?php echo __("Set your wp-config.php to writable and reload this page.", "really-simple-ssl"); ?></p>
|
2191 |
+
<?php }
|
2192 |
+
if ($this->do_wpconfig_loadbalancer_fix) { ?>
|
2193 |
+
<p><?php echo __("Your wp-config.php has to be edited, but is not writable.", "really-simple-ssl"); ?></p>
|
2194 |
+
<p><?php echo __("Because your site is behind a loadbalancer and is_ssl() returns false, you should add the following line of code to your wp-config.php.", "really-simple-ssl"); ?>
|
2195 |
+
<br><br><code>
|
2196 |
+
//Begin Really Simple SSL Load balancing fix<br>
|
2197 |
+
if ((isset($_ENV["HTTPS"]) && ("on" == $_ENV["HTTPS"]))<br>
|
2198 |
+
|| (isset($_SERVER["HTTP_X_FORWARDED_SSL"]) && (strpos($_SERVER["HTTP_X_FORWARDED_SSL"], "1") !== false))<br>
|
2199 |
+
|| (isset($_SERVER["HTTP_X_FORWARDED_SSL"]) && (strpos($_SERVER["HTTP_X_FORWARDED_SSL"], "on") !== false))<br>
|
2200 |
+
|| (isset($_SERVER["HTTP_CF_VISITOR"]) && (strpos($_SERVER["HTTP_CF_VISITOR"], "https") !== false))<br>
|
2201 |
+
|| (isset($_SERVER["HTTP_CLOUDFRONT_FORWARDED_PROTO"]) && (strpos($_SERVER["HTTP_CLOUDFRONT_FORWARDED_PROTO"], "https") !== false))<br>
|
2202 |
+
|| (isset($_SERVER["HTTP_X_FORWARDED_PROTO"]) && (strpos($_SERVER["HTTP_X_FORWARDED_PROTO"], "https") !== false))<br>
|
2203 |
+
|| (isset($_SERVER["HTTP_X_PROTO"]) && (strpos($_SERVER["HTTP_X_PROTO"], "SSL") !== false))<br>
|
2204 |
+
) {<br>
|
2205 |
+
$_SERVER["HTTPS"] = "on";<br>
|
2206 |
+
}<br>
|
2207 |
+
//END Really Simple SSL
|
2208 |
+
</code><br>
|
2209 |
+
</p>
|
2210 |
+
<p><?php echo __("Or set your wp-config.php to writable and reload this page.", "really-simple-ssl"); ?></p>
|
2211 |
+
<?php
|
2212 |
+
}
|
2213 |
+
|
2214 |
+
if ($this->no_server_variable) {
|
2215 |
?>
|
2216 |
+
<p><?php echo __('Because your server does not pass a variable with which WordPress can detect SSL, WordPress may create redirect loops on SSL.', 'really-simple-ssl'); ?></p>
|
2217 |
+
<p><?php echo __("Set your wp-config.php to writable and reload this page.", "really-simple-ssl"); ?></p>
|
2218 |
+
<?php
|
2219 |
+
}
|
2220 |
|
2221 |
+
$content = ob_get_clean();
|
2222 |
+
$class = "error";
|
2223 |
+
$title = __("System detection encountered issues", "really-simple-ssl");
|
2224 |
+
|
2225 |
+
echo $this->notice_html( $class, $title, $content );
|
2226 |
}
|
2227 |
|
2228 |
|
2263 |
return false;
|
2264 |
}
|
2265 |
|
2266 |
+
/**
|
2267 |
+
* Shows a notice, asking users for a review.
|
2268 |
+
*/
|
2269 |
+
|
2270 |
public function show_leave_review_notice()
|
2271 |
{
|
2272 |
+
if ($this->dismiss_all_notices) return;
|
2273 |
+
|
2274 |
//prevent showing the review on edit screen, as gutenberg removes the class which makes it editable.
|
2275 |
$screen = get_current_screen();
|
2276 |
+
if ( $screen->base === 'post' ) return;
|
2277 |
|
2278 |
//this user has never had the review notice yet.
|
2279 |
if ($this->ssl_enabled && !get_option('rsssl_activation_timestamp')){
|
2284 |
}
|
2285 |
|
2286 |
if (!$this->review_notice_shown && get_option('rsssl_activation_timestamp') && get_option('rsssl_activation_timestamp') < strtotime("-1 month")) {
|
|
|
2287 |
add_action('admin_print_footer_scripts', array($this, 'insert_dismiss_review'));
|
2288 |
?>
|
2289 |
<style>
|
2290 |
+
.rlrsssl-review .rsssl-container {
|
2291 |
display: flex;
|
2292 |
padding:12px;
|
2293 |
}
|
2294 |
+
.rlrsssl-review .rsssl-container .dashicons {
|
2295 |
margin-left:10px;
|
2296 |
margin-right:5px;
|
2297 |
}
|
2298 |
+
.rlrsssl-review .rsssl-review-image img{
|
2299 |
margin-top:0.5em;
|
2300 |
}
|
2301 |
+
.rlrsssl-review .rsssl-buttons-row {
|
2302 |
margin-top:10px;
|
2303 |
display: flex;
|
2304 |
align-items: center;
|
2319 |
<a class="button button-primary" target="_blank"
|
2320 |
href="https://wordpress.org/support/plugin/really-simple-ssl/reviews/#new-post"><?php _e('Leave a review', 'really-simple-ssl'); ?></a>
|
2321 |
<div class="dashicons dashicons-calendar"></div><a href="#" id="maybe-later"><?php _e('Maybe later', 'really-simple-ssl'); ?></a>
|
2322 |
+
<div class="dashicons dashicons-no-alt"></div><a href="<?php echo esc_url(add_query_arg(array("page"=>"rlrsssl_really_simple_ssl", "tab"=>"configuration", "rsssl_dismiss_review_notice"=>1),admin_url("options-general.php") ) );?>"><?php _e('Don\'t show again', 'really-simple-ssl'); ?></a>
|
2323 |
</div>
|
2324 |
</div>
|
2325 |
</div>
|
2339 |
|
2340 |
public function show_notices()
|
2341 |
{
|
2342 |
+
//prevent showing the review on edit screen, as gutenberg removes the class which makes it editable.
|
2343 |
+
$screen = get_current_screen();
|
2344 |
+
if ( $screen->base === 'post' ) return;
|
2345 |
+
|
2346 |
+
//don't show admin notices on our own settings page: we have the warnings there
|
2347 |
+
if ( $this->is_settings_page() ) return;
|
2348 |
+
|
2349 |
+
$notices = $this->get_notices_list( array('admin_notices'=>true) );
|
2350 |
+
foreach ( $notices as $id => $notice ){
|
2351 |
+
$notice = $notice['output'];
|
2352 |
+
$class = ( $notice['status'] !== 'completed' ) ? 'error' : 'updated';
|
2353 |
+
echo $this->notice_html( $class.' '.$id, $notice['title'], $notice['msg'] );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2354 |
}
|
2355 |
}
|
2356 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2357 |
/**
|
2358 |
* Insert some ajax script to dismiss the review notice, and stop nagging about it
|
2359 |
*
|
2396 |
<?php
|
2397 |
}
|
2398 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2399 |
|
2400 |
/**
|
2401 |
* Process the ajax dismissal of the success message.
|
2409 |
public function dismiss_success_message_callback()
|
2410 |
{
|
2411 |
if (!current_user_can($this->capability) ) return;
|
|
|
|
|
2412 |
$this->ssl_success_message_shown = TRUE;
|
2413 |
$this->save_options();
|
2414 |
wp_die();
|
2415 |
}
|
2416 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2417 |
/**
|
2418 |
* Process the ajax dismissal of settings notice
|
2419 |
*
|
2427 |
{
|
2428 |
if (!current_user_can($this->capability) ) return;
|
2429 |
|
2430 |
+
if (!isset($_POST['token']) || (!wp_verify_nonce($_POST['token'], 'rsssl_nonce'))) {
|
2431 |
+
return;
|
2432 |
+
}
|
2433 |
+
|
2434 |
+
if (isset($_POST['type'])) {
|
2435 |
$dismiss_type = sanitize_title( $_POST['type'] );
|
2436 |
update_option( "rsssl_".$dismiss_type."_dismissed", true );
|
2437 |
delete_transient( 'rsssl_plusone_count' );
|
2438 |
}
|
2439 |
+
|
2440 |
+
// count should be updated, therefore clear cache
|
2441 |
+
$this->clear_transients();
|
2442 |
+
|
2443 |
+
$data = array(
|
2444 |
+
'tasks' => $this->get_remaining_tasks_count(),
|
2445 |
+
'percentage' => $this->get_score_percentage(),
|
2446 |
+
);
|
2447 |
+
$response = json_encode( $data );
|
2448 |
+
header( "Content-Type: application/json" );
|
2449 |
+
echo $response;
|
2450 |
+
exit;
|
2451 |
}
|
2452 |
|
2453 |
/**
|
2487 |
public function add_settings_page()
|
2488 |
{
|
2489 |
if (!current_user_can($this->capability)) return;
|
2490 |
+
|
2491 |
//hides the settings page if the hide menu for subsites setting is enabled
|
2492 |
if (is_multisite() && rsssl_multisite::this()->hide_menu_for_subsites && !is_super_admin()) return;
|
2493 |
|
2494 |
global $rsssl_admin_page;
|
2495 |
|
2496 |
$count = $this->count_plusones();
|
|
|
2497 |
if ($count > 0 ) {
|
2498 |
$update_count = "<span class='update-plugins rsssl-update-count'><span class='update-count'>$count</span></span>";
|
2499 |
} else {
|
2507 |
'rlrsssl_really_simple_ssl', //url
|
2508 |
array($this, 'settings_page')); //function
|
2509 |
|
|
|
|
|
|
|
2510 |
}
|
2511 |
|
2512 |
/**
|
2518 |
*
|
2519 |
*/
|
2520 |
|
2521 |
+
public function rsssl_edit_admin_menu()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2522 |
{
|
2523 |
+
if (!current_user_can($this->capability)) return;
|
2524 |
+
global $menu;
|
2525 |
+
$count = $this->count_plusones();
|
2526 |
+
$menu_slug = 'options-general.php';
|
2527 |
+
$menu_title = __('Settings');
|
2528 |
+
foreach($menu as $index => $menu_item){
|
2529 |
+
if (!isset($menu_item[2]) || !isset($menu_item[0])) continue;
|
2530 |
+
if ($menu_item[2]===$menu_slug){
|
2531 |
+
$pattern = '/<span.*>([1-9])<\/span><\/span>/i';
|
2532 |
+
if (preg_match($pattern, $menu_item[0], $matches)){
|
2533 |
+
if (isset($matches[1])) $count = intval($count) + intval($matches[1]);
|
2534 |
+
}
|
2535 |
+
|
2536 |
+
$update_count = $count > 0 ? "<span class='update-plugins rsssl-update-count'><span class='update-count'>$count</span></span>":'';
|
2537 |
+
$menu[$index][0] = $menu_title . $update_count;
|
2538 |
+
}
|
2539 |
+
}
|
2540 |
}
|
2541 |
|
2542 |
/**
|
2551 |
public function admin_tabs($current = 'homepage')
|
2552 |
{
|
2553 |
$tabs = array(
|
2554 |
+
'configuration' => '',
|
|
|
|
|
2555 |
);
|
2556 |
+
$tabs = apply_filters("rsssl_grid_tabs", $tabs);
|
2557 |
|
2558 |
+
//allow the license tab to show up for older version, to allow for upgrading
|
2559 |
+
$legacy_tabs = apply_filters("rsssl_tabs", array());
|
2560 |
+
if (isset($legacy_tabs['license'])) $tabs['license']= $legacy_tabs['license'];
|
2561 |
|
2562 |
+
// Only show general tab if there are other tabs as well
|
2563 |
+
if (count($tabs) > 1) {
|
2564 |
+
$tabs['configuration'] = __("General", "really-simple-ssl");
|
|
|
|
|
2565 |
}
|
2566 |
+
|
2567 |
+
?>
|
2568 |
+
<div class="nav-tab-wrapper">
|
2569 |
+
<div class="rsssl-logo-container">
|
2570 |
+
<div id="rsssl-logo"><img src="<?php echo rsssl_url?>/assets/really-simple-ssl-logo.svg" alt="review-logo"></div>
|
2571 |
+
</div>
|
2572 |
+
<?php
|
2573 |
+
if (count($tabs)>1) {
|
2574 |
+
foreach ( $tabs as $tab => $name ) {
|
2575 |
+
$class = ( $tab == $current ) ? ' nav-tab-active' : '';
|
2576 |
+
echo "<a class='nav-tab$class' href='?page=rlrsssl_really_simple_ssl&tab=$tab'>$name</a>";
|
2577 |
+
}
|
2578 |
+
}
|
2579 |
+
?>
|
2580 |
+
<div class="header-links">
|
2581 |
+
<div class="documentation">
|
2582 |
+
<a href="https://really-simple-ssl.com/knowledge-base" class="<?php if (defined('rsssl_pro_version')) echo "button button-primary"?>" target="_blank"><?php _e("Documentation", "really-simple-ssl");?></a>
|
2583 |
+
</div>
|
2584 |
+
<div class="header-upsell">
|
2585 |
+
<?php if (defined('rsssl_pro_version')) { ?>
|
2586 |
+
<?php } else { ?>
|
2587 |
+
<div class="documentation">
|
2588 |
+
<a href="https://wordpress.org/support/plugin/really-simple-ssl/" class="button button-primary" target="_blank"><?php _e("Support", "really-simple-ssl") ?></a>
|
2589 |
+
</div>
|
2590 |
+
<?php } ?>
|
2591 |
+
</div>
|
2592 |
+
</div>
|
2593 |
+
</div>
|
2594 |
+
<?php
|
2595 |
}
|
2596 |
|
2597 |
+
/**
|
2598 |
+
* Check if user has upgraded to four from a previous version
|
2599 |
+
* @return bool
|
2600 |
+
*/
|
2601 |
+
|
2602 |
+
public function upgraded_to_four(){
|
2603 |
+
return get_option( 'rsssl_upgraded_to_four' ) ? true : false;
|
2604 |
+
}
|
2605 |
|
2606 |
/**
|
2607 |
* Get array of notices
|
2608 |
* - condition: function returning boolean, if notice should be shown or not
|
2609 |
* - callback: function, returning boolean or string, with multiple possible answers, and resulting messages and icons
|
2610 |
+
* @param array $args
|
2611 |
* @return array
|
2612 |
*/
|
2613 |
|
2614 |
+
public function get_notices_list( $args = array() )
|
|
|
2615 |
{
|
2616 |
$defaults = array(
|
2617 |
+
'admin_notices' => false,
|
2618 |
+
'premium_only' => false,
|
2619 |
+
'dismiss_on_upgrade' => false,
|
2620 |
+
'status' => 'open', //status can be "all" (all tasks, regardless of dismissed or open), "open" (not success/completed) or "completed"
|
2621 |
+
);
|
2622 |
+
$args = wp_parse_args($args, $defaults);
|
2623 |
+
|
2624 |
+
$cache_admin_notices = !$this->is_settings_page() && $args['admin_notices'];
|
2625 |
+
if ( $cache_admin_notices) {
|
2626 |
+
$cached_notices = get_transient('rsssl_admin_notices');
|
2627 |
+
if ( $cached_notices ) return $cached_notices;
|
2628 |
+
}
|
2629 |
+
|
2630 |
+
$htaccess_file = $this->uses_htaccess_conf() ? "htaccess.conf (/conf/htaccess.conf/)" : $htaccess_file = ".htaccess";
|
2631 |
+
if ( $this->ssl_type != "NA" ) {
|
2632 |
+
$rules = $this->get_redirect_rules( true );
|
2633 |
+
$arr_search = array( "<", ">", "\n" );
|
2634 |
+
$arr_replace = array( "<", ">", "<br>" );
|
2635 |
+
$rules = str_replace( $arr_search, $arr_replace, $rules );
|
2636 |
+
$rules = substr($rules, 4, -4);
|
2637 |
+
} else {
|
2638 |
+
$rules = __( "No recommended redirect rules detected.", "really-simple-ssl" ) ;
|
2639 |
+
}
|
2640 |
+
$rules = '<br><code>' . $rules . '</code><br>';
|
2641 |
+
|
2642 |
+
$notice_defaults = array(
|
2643 |
'condition' => array(),
|
2644 |
'callback' => false,
|
2645 |
);
|
2646 |
|
|
|
|
|
2647 |
$curl_error = get_transient('rsssl_curl_error');
|
2648 |
|
2649 |
+
$reload_https_url = esc_url_raw("https://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]);
|
2650 |
+
$notices = array(
|
2651 |
+
'deactivation_file_detected' => array(
|
2652 |
+
'callback' => 'RSSSL()->really_simple_ssl->check_for_uninstall_file',
|
2653 |
+
'score' => 30,
|
2654 |
+
'output' => array(
|
2655 |
+
'fail' => array(
|
2656 |
+
'title' => __("Major security issue!", "really-simple-ssl"),
|
2657 |
+
'msg' => __("The 'force-deactivate.php' file has to be renamed to .txt. Otherwise your ssl can be deactivated by anyone on the internet.", "really-simple-ssl") .' '.
|
2658 |
+
'<a href="'.add_query_arg(array('page'=>'rlrsssl_really_simple_ssl'), admin_url('options-general.php?page=')).'">'.__("Check again", "really-simple-ssl").'</a>',
|
2659 |
+
'icon' => 'warning',
|
2660 |
+
'admin_notice' =>true,
|
2661 |
+
'plusone' => true,
|
2662 |
+
|
2663 |
+
),
|
2664 |
+
),
|
2665 |
+
),
|
2666 |
+
|
2667 |
+
'mixed_content_scan' => array(
|
2668 |
+
'dismiss_on_upgrade' => true,
|
2669 |
+
'condition' => array('rsssl_ssl_enabled'),
|
2670 |
+
'callback' => '_true_',
|
2671 |
+
'score' => 5,
|
2672 |
+
'output' => array(
|
2673 |
+
'true' => array(
|
2674 |
+
'url' => 'https://really-simple-ssl.com/knowledge-base/how-to-track-down-mixed-content-or-insecure-content/',
|
2675 |
+
'msg' => __("SSL is now activated. Check if your website is secure by following this article.", "really-simple-ssl"),
|
2676 |
+
'icon' => 'open',
|
2677 |
+
'dismissible' => true,
|
2678 |
+
'plusone' => true,
|
2679 |
+
),
|
2680 |
+
),
|
2681 |
+
),
|
2682 |
+
|
2683 |
+
'google_analytics' => array(
|
2684 |
+
'dismiss_on_upgrade' => true,
|
2685 |
+
'callback' => '_true_',
|
2686 |
+
'condition' => array('rsssl_ssl_enabled', 'rsssl_ssl_activation_time_no_longer_then_3_days_ago'),
|
2687 |
+
'score' => 5,
|
2688 |
+
'output' => array(
|
2689 |
+
'true' => array(
|
2690 |
+
'msg' => __("Don't forget to change your settings in Google Analytics and Search Console.", "really-simple-ssl"),
|
2691 |
+
'url' => 'https://really-simple-ssl.com/knowledge-base/how-to-setup-google-analytics-and-google-search-consolewebmaster-tools/',
|
2692 |
+
'icon' => 'open',
|
2693 |
+
'dismissible' => true,
|
2694 |
+
'plusone' => true,
|
2695 |
+
),
|
2696 |
+
),
|
2697 |
+
),
|
2698 |
+
|
2699 |
+
'upgraded_to_four' => array(
|
2700 |
+
'callback' => 'RSSSL()->really_simple_ssl->upgraded_to_four',
|
2701 |
+
'score' => 5,
|
2702 |
+
'output' => array(
|
2703 |
+
'true' => array(
|
2704 |
+
'url' => __('https://really-simple-ssl.com/really-simple-ssl-4-a-new-dashboard'),
|
2705 |
+
'msg' => __("Really Simple SSL 4.0. Learn more about our newest major release.", "really-simple-ssl"),
|
2706 |
+
'icon' => 'open',
|
2707 |
+
'dismissible' => true,
|
2708 |
+
'plusone' => false, //set to true on 4.1
|
2709 |
+
),
|
2710 |
+
),
|
2711 |
+
),
|
2712 |
|
|
|
2713 |
'ssl_enabled' => array(
|
2714 |
'callback' => 'rsssl_ssl_enabled',
|
2715 |
+
'score' => 30,
|
2716 |
'output' => array(
|
2717 |
+
'true' => array(
|
2718 |
'msg' =>__('SSL is enabled on your site.', 'really-simple-ssl'),
|
2719 |
'icon' => 'success'
|
2720 |
),
|
2721 |
+
'false' => array(
|
2722 |
+
'msg' => __('SSL is not enabled yet.', 'really-simple-ssl'),
|
2723 |
+
'icon' => 'warning',
|
2724 |
),
|
2725 |
),
|
2726 |
),
|
2727 |
|
2728 |
+
'ssl_detected' => array(
|
2729 |
+
'callback' => 'rsssl_ssl_detected',
|
2730 |
+
'score' => 30,
|
2731 |
+
'output' => array(
|
2732 |
+
'fail' => array(
|
2733 |
+
'msg' =>__('Cannot activate SSL due to system configuration.', 'really-simple-ssl'),
|
2734 |
+
'icon' => 'warning'
|
2735 |
+
),
|
2736 |
+
'no-ssl-detected' => array(
|
2737 |
+
'title' => __("No SSL detected", "really-simple-ssl"),
|
2738 |
+
'msg' => sprintf(__("No SSL detected. See our guide on how to %sget a free SSL certificate%s. If you do have an SSL certificate, try to reload this page over https by clicking this link: %sReload over https.%s", "really-simple-ssl"), '<a target="_blank" href="https://really-simple-ssl.com/knowledge-base/how-to-install-a-free-ssl-certificate-on-your-wordpress-cpanel-hosting/">', '</a>', '<a href="' .$reload_https_url . '">' , '</a>'),
|
2739 |
+
'icon' => 'warning',
|
2740 |
+
'admin_notice' => true,
|
2741 |
+
),
|
2742 |
+
'ssl-detected' => array(
|
2743 |
+
'msg' => __('An SSL certificate was detected on your site.', 'really-simple-ssl'),
|
2744 |
+
'icon' => 'success'
|
2745 |
+
),
|
2746 |
+
),
|
2747 |
+
),
|
2748 |
+
|
2749 |
'mixed_content_fixer_detected' => array(
|
2750 |
+
'condition' => array('rsssl_site_has_ssl', 'rsssl_ssl_enabled'),
|
2751 |
+
'callback' => 'RSSSL()->really_simple_ssl->mixed_content_fixer_detected',
|
2752 |
+
'score' => 10,
|
2753 |
'output' => array(
|
2754 |
'found' => array(
|
2755 |
+
'msg' =>__('Mixed content fixer was successfully detected on the front-end.', 'really-simple-ssl'),
|
2756 |
'icon' => 'success'
|
2757 |
),
|
2758 |
'no-response' => array(
|
2759 |
+
'url' => 'https://really-simple-ssl.com/knowledge-base/how-to-fix-no-response-from-webpage-warning/',
|
2760 |
+
'msg' => __('Really Simple SSL has received no response from the webpage.', 'really-simple-ssl'),
|
2761 |
+
'icon' => 'open',
|
|
|
|
|
2762 |
'dismissible' => true,
|
2763 |
'plusone' => true
|
2764 |
),
|
2765 |
'not-found' => array(
|
2766 |
+
'url' => "https://really-simple-ssl.com/knowledge-base/how-to-check-if-the-mixed-content-fixer-is-active/",
|
2767 |
+
'msg' => __('The mixed content fixer is active, but was not detected on the frontpage.', "really-simple-ssl"),
|
2768 |
+
'icon' => 'open',
|
2769 |
'dismissible' => true
|
2770 |
),
|
2771 |
'error' => array(
|
2772 |
+
'msg' =>__('Error occurred when retrieving the webpage.', 'really-simple-ssl'),
|
2773 |
+
'icon' => 'open',
|
2774 |
'dismissible' => true
|
2775 |
),
|
2776 |
+
'not-enabled' => array(
|
2777 |
+
'url' => $this->generate_enable_link($setting_name = 'autoreplace_insecure_links', $type='free'),
|
2778 |
+
'msg' =>__('Mixed content fixer not enabled. Enable the option to fix mixed content on your site.', 'really-simple-ssl'),
|
2779 |
+
'icon' => 'open',
|
2780 |
'dismissible' => true
|
2781 |
),
|
2782 |
+
'curl-error' => array(
|
2783 |
+
'url' => 'https://really-simple-ssl.com/knowledge-base/curl-errors/',
|
2784 |
+
'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.", 'really-simple-ssl'), "<b>" . $curl_error . "</b>"),
|
2785 |
+
'icon' => 'open',
|
2786 |
+
'dismissible' => true,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2787 |
),
|
2788 |
),
|
2789 |
),
|
2791 |
'wordpress_redirect' => array(
|
2792 |
'condition' => array('rsssl_wp_redirect_condition'),
|
2793 |
'callback' => 'rsssl_wordpress_redirect',
|
2794 |
+
'score' => 10,
|
2795 |
'output' => array(
|
2796 |
'301-wp-redirect' => array(
|
2797 |
'msg' => __('301 redirect to https set: WordPress redirect.', 'really-simple-ssl'),
|
2799 |
),
|
2800 |
'no-redirect' => array(
|
2801 |
'msg' => __('No 301 redirect is set. Enable the WordPress 301 redirect in the settings to get a 301 permanent redirect.', 'really-simple-ssl'),
|
2802 |
+
'icon' => 'open'
|
2803 |
),
|
2804 |
)
|
2805 |
),
|
2806 |
|
2807 |
'check_redirect' => array(
|
2808 |
+
'condition' => array('rsssl_ssl_enabled' , 'RSSSL()->really_simple_ssl->htaccess_redirect_allowed', 'NOT is_multisite'),
|
2809 |
'callback' => 'rsssl_check_redirect',
|
2810 |
+
'score' => 10,
|
2811 |
+
'output' => array(
|
2812 |
'htaccess-redirect-set' => array(
|
2813 |
+
'msg' =>__('301 redirect to https set: .htaccess redirect.', 'really-simple-ssl') ,
|
2814 |
'icon' => 'success'
|
2815 |
),
|
|
|
|
|
2816 |
'wp-redirect-to-htaccess' => array(
|
2817 |
+
'url' => $this->generate_enable_link($setting_name = 'wp-redirect-to-htaccess', $type='free'),
|
2818 |
+
'msg' => __('WordPress 301 redirect enabled. We recommend to enable a 301 .htaccess redirect.', 'really-simple-ssl'),
|
2819 |
+
'icon' => 'open',
|
2820 |
+
'plusone' => RSSSL()->rsssl_server->uses_htaccess(),
|
2821 |
+
'dismissible' => true,
|
2822 |
+
'enable_dismiss' => 'enable',
|
|
|
|
|
2823 |
),
|
2824 |
'no-redirect-set' => array(
|
2825 |
+
'msg' => __('Enable a .htaccess redirect or WordPress redirect in the settings to create a 301 redirect.', 'really-simple-ssl') ,
|
2826 |
+
'icon' => 'open',
|
2827 |
'dismissible' => false
|
2828 |
),
|
2829 |
'htaccess-not-writeable' => array(
|
2830 |
+
'url' => 'https://really-simple-ssl.com/knowledge-base/manually-insert-htaccess-redirect-http-to-https/',
|
2831 |
+
'msg' => sprintf(__('The %s file is not writable. You can either use the WordPress redirect, add the rules manually, or set the file to writable.', 'really-simple-ssl'), $htaccess_file),
|
|
|
|
|
|
|
|
|
2832 |
'icon' => 'warning',
|
2833 |
'dismissible' => true
|
2834 |
),
|
2835 |
+
'htaccess-rules-test-failed' => array(
|
2836 |
+
'url' => 'https://really-simple-ssl.com/knowledge-base/manually-insert-htaccess-redirect-http-to-https/',
|
2837 |
+
'msg' => __('The .htaccess redirect rules selected by this plugin failed in the test. Set manually or dismiss to leave on WordPress redirect.', 'really-simple-ssl') . $rules,
|
2838 |
'icon' => 'warning',
|
2839 |
+
'dismissible' => true,
|
2840 |
+
'plusone'=>true,
|
2841 |
),
|
2842 |
),
|
2843 |
),
|
2844 |
|
2845 |
'elementor' => array(
|
2846 |
+
'condition' => array( 'rsssl_ssl_activation_time_no_longer_then_3_days_ago'),
|
2847 |
+
'callback' => 'rsssl_uses_elementor',
|
2848 |
+
'score' => 5,
|
2849 |
'output' => array(
|
2850 |
+
'true' => array(
|
2851 |
+
'url' => 'https://really-simple-ssl.com/knowledge-base/how-to-fix-mixed-content-in-elementor-after-moving-to-ssl/',
|
2852 |
+
'msg' => __("Your site uses Elementor. This can require some additional steps before getting the secure lock.", "really-simple-ssl"),
|
2853 |
+
'icon' => 'open',
|
|
|
2854 |
'dismissible' => true
|
2855 |
),
|
2856 |
),
|
2857 |
),
|
2858 |
|
2859 |
'divi' => array(
|
2860 |
+
'condition' => array( 'rsssl_ssl_activation_time_no_longer_then_3_days_ago'),
|
2861 |
+
'callback' => 'rsssl_uses_divi',
|
2862 |
+
'score' => 5,
|
2863 |
'output' => array(
|
2864 |
+
'true' => array(
|
2865 |
+
'url' => "https://really-simple-ssl.com/knowledge-base/mixed-content-when-using-divi-theme/",
|
2866 |
+
'msg' => __("Your site uses Divi. This can require some additional steps before getting the secure lock.", "really-simple-ssl"),
|
2867 |
+
'icon' => 'open',
|
|
|
2868 |
'dismissible' => true
|
2869 |
),
|
2870 |
),
|
2871 |
),
|
2872 |
|
2873 |
'hsts_enabled' => array(
|
2874 |
+
'condition' => array('NOT is_multisite'),
|
2875 |
+
'callback' => 'RSSSL()->really_simple_ssl->contains_hsts',
|
2876 |
+
'score' => 5,
|
2877 |
'output' => array(
|
2878 |
+
'true' => array(
|
2879 |
'msg' =>__('HTTP Strict Transport Security was enabled.', 'really-simple-ssl'),
|
2880 |
'icon' => 'success'
|
2881 |
),
|
2882 |
+
'false' => array(
|
2883 |
+
'msg' => sprintf(__('HTTP Strict Transport Security is not enabled %s(Read more)%s.', "really-simple-ssl"), '<a href="https://really-simple-ssl.com/hsts-http-strict-transport-security-good/" target="_blank">', '</a>' ),
|
2884 |
+
'icon' => 'premium'
|
2885 |
),
|
2886 |
),
|
2887 |
),
|
2888 |
|
2889 |
'secure_cookies_set' => array(
|
2890 |
+
'condition' => array('rsssl_ssl_enabled'),
|
2891 |
+
'callback' => 'RSSSL()->really_simple_ssl->contains_secure_cookie_settings',
|
2892 |
+
'score' => 5,
|
2893 |
'output' => array(
|
2894 |
+
'true' => array(
|
2895 |
+
'msg' =>__('Secure cookies set.', 'really-simple-ssl'),
|
2896 |
'icon' => 'success'
|
2897 |
),
|
2898 |
+
'false' => array(
|
2899 |
+
'msg' => sprintf(__("Secure cookie settings not enabled (%sRead more%s).", "really-simple-ssl"), '<a target="_blank" href="https://really-simple-ssl.com/secure-cookies-with-httponly-secure-and-use_only_cookies/">', '</a>'),
|
2900 |
+
'icon' => 'premium'
|
2901 |
),
|
2902 |
),
|
2903 |
),
|
2904 |
|
2905 |
+
'recommended_security_headers_not_set' => array(
|
2906 |
+
'callback' => '_true_',
|
2907 |
+
'score' => 5,
|
2908 |
+
'output' => array(
|
2909 |
+
'true' => array(
|
2910 |
+
'msg' => sprintf(__("Recommended security headers not enabled (%sRead more%s).", "really-simple-ssl"), '<a target="_blank" href="https://really-simple-ssl.com/everything-you-need-to-know-about-security-headers/">', '</a>'),
|
2911 |
+
'icon' => 'premium'
|
2912 |
+
),
|
2913 |
+
),
|
2914 |
+
),
|
2915 |
+
|
2916 |
+
'htaccess_not_writable' => array(
|
2917 |
+
'callback' => 'rsssl_htaccess_not_writable',
|
2918 |
+
'score' => 5,
|
2919 |
'output' => array(
|
2920 |
+
'htaccess' => array(
|
2921 |
+
'msg' => __("Your .htaccess file is not writable. This prevents Really Simple SSL from writing redirects or security headers to your .htaccess file.", "really-simple-ssl"),
|
2922 |
+
'icon' => 'open',
|
2923 |
+
'dismissible' => 'true',
|
2924 |
),
|
2925 |
),
|
2926 |
),
|
2928 |
|
2929 |
$notices = apply_filters('rsssl_notices', $notices);
|
2930 |
foreach ($notices as $id => $notice) {
|
2931 |
+
$notices[$id] = wp_parse_args($notice, $notice_defaults);
|
2932 |
+
}
|
2933 |
+
|
2934 |
+
/**
|
2935 |
+
* If a list of notices that should be dismissed on upgrade is requested
|
2936 |
+
*/
|
2937 |
+
if ( $args['dismiss_on_upgrade'] ) {
|
2938 |
+
$output = array();
|
2939 |
+
foreach( $notices as $key => $notice ) {
|
2940 |
+
if ( isset($notice['dismiss_on_upgrade']) && $notice['dismiss_on_upgrade'] ) {
|
2941 |
+
$output[] = $key;
|
2942 |
+
}
|
2943 |
+
}
|
2944 |
+
return $output;
|
2945 |
+
}
|
2946 |
+
|
2947 |
+
/**
|
2948 |
+
* Filter out notice that do not apply, or are dismissed
|
2949 |
+
*/
|
2950 |
+
|
2951 |
+
foreach ( $notices as $id => $notice ) {
|
2952 |
+
if (get_option( "rsssl_" . $id . "_dismissed" )) {
|
2953 |
+
unset($notices[$id]);
|
2954 |
+
continue;
|
2955 |
+
}
|
2956 |
+
|
2957 |
+
$func = $notice['callback'];
|
2958 |
+
$output = $this->validate_function($func);
|
2959 |
+
|
2960 |
+
//check if all notices should be dismissed
|
2961 |
+
if ( ( isset( $notice['output'][$output]['dismissible'] )
|
2962 |
+
&& $notice['output'][$output]['dismissible']
|
2963 |
+
&& ( $this->dismiss_all_notices ) )
|
2964 |
+
) {
|
2965 |
+
unset($notices[$id]);
|
2966 |
+
continue;
|
2967 |
+
}
|
2968 |
+
|
2969 |
+
if ( !isset($notice['output'][ $output ]) ) {
|
2970 |
+
unset($notices[$id]);
|
2971 |
+
continue;
|
2972 |
+
} else {
|
2973 |
+
$notices[$id]['output'] = $notice['output'][ $output ];
|
2974 |
+
}
|
2975 |
+
|
2976 |
+
$notices[$id]['output']['status'] = ( $notices[$id]['output']['icon'] !== 'success') ? 'open' : 'completed';
|
2977 |
+
|
2978 |
+
if ( $args['status'] === 'open' && ($notices[$id]['output']['status'] === 'completed' ) ){
|
2979 |
+
unset($notices[$id]);
|
2980 |
+
continue;
|
2981 |
+
}
|
2982 |
+
|
2983 |
+
$condition_functions = $notice['condition'];
|
2984 |
+
foreach ( $condition_functions as $func ) {
|
2985 |
+
$condition = $this->validate_function($func, true);
|
2986 |
+
if ( ! $condition ) {
|
2987 |
+
unset($notices[$id]);
|
2988 |
+
}
|
2989 |
+
}
|
2990 |
+
}
|
2991 |
+
|
2992 |
+
//if only admin_notices are required, filter out the rest.
|
2993 |
+
if ( $args['admin_notices'] ) {
|
2994 |
+
foreach ( $notices as $id => $notice ) {
|
2995 |
+
if (!isset($notice['output']['admin_notice'])){
|
2996 |
+
unset( $notices[$id]);
|
2997 |
+
}
|
2998 |
+
}
|
2999 |
+
set_transient('rsssl_admin_notices', $notices, DAY_IN_SECONDS );
|
3000 |
+
}
|
3001 |
+
|
3002 |
+
//sort so warnings are on top
|
3003 |
+
$warnings = array();
|
3004 |
+
$open = array();
|
3005 |
+
$other = array();
|
3006 |
+
foreach ($notices as $key => $notice){
|
3007 |
+
if ($notice['output']['icon']==='warning') {
|
3008 |
+
$warnings[$key] = $notice;
|
3009 |
+
} else if ($notice['output']['icon']==='open') {
|
3010 |
+
$open[$key] = $notice;
|
3011 |
+
} else {
|
3012 |
+
$other[$key] = $notice;
|
3013 |
+
}
|
3014 |
}
|
3015 |
|
3016 |
+
$notices = $warnings + $open + $other;
|
3017 |
+
|
3018 |
+
//add plus ones
|
3019 |
+
foreach ($notices as $key => $notice){
|
3020 |
+
if ( isset($notice['output']['url']) ) {
|
3021 |
+
$url = $notice['output']['url'];
|
3022 |
+
$target = '';
|
3023 |
+
if ( strpos( $url, 'https://really-simple-ssl.com') !== FALSE ){
|
3024 |
+
$info = __('%sMore info%s or %sdismiss%s','really-simple-ssl');
|
3025 |
+
$target = 'target="_blank"';
|
3026 |
+
} else {
|
3027 |
+
$info = __('%sEnable%s or %sdismiss%s','really-simple-ssl');
|
3028 |
+
}
|
3029 |
+
$dismiss_open = "<span class='rsssl-dashboard-dismiss' data-dismiss_type='".$key."'><a href='#' class='rsssl-dismiss-text rsssl-close-warning'>";
|
3030 |
+
$notices[$key]['output']['msg'] .= ' '.sprintf($info ,'<a '.$target.' href="'.$url.'">', '</a>', $dismiss_open, "</a></span>");
|
3031 |
+
}
|
3032 |
+
|
3033 |
+
if ( isset($notice['output']['plusone']) && $notice['output']['plusone']) {
|
3034 |
+
$plusone = "<span class='rsssl-dashboard-plusone update-plugins rsssl-update-count'><span class='update-count'>1</span></span>";
|
3035 |
+
$notices[$key]['output']['msg'] .= $plusone;
|
3036 |
+
}
|
3037 |
+
}
|
3038 |
+
|
3039 |
+
//if we only want a list of premium notices
|
3040 |
+
if ( $args['premium_only'] ) {
|
3041 |
+
foreach ($notices as $key => $notice){
|
3042 |
+
if ( !isset($notice['output']['icon']) || $notice['output']['icon'] !== 'premium' ) {
|
3043 |
+
unset($notices[$key]);
|
3044 |
+
}
|
3045 |
+
}
|
3046 |
+
}
|
3047 |
+
|
3048 |
+
|
3049 |
+
|
3050 |
return $notices;
|
3051 |
}
|
3052 |
|
3053 |
+
/**
|
3054 |
+
* Count number of premium notices we have in the list.
|
3055 |
+
* @return int
|
3056 |
+
*/
|
3057 |
+
public function get_lowest_possible_task_count(){
|
3058 |
+
$premium_notices = $this->get_notices_list(array('premium_only'=>true));
|
3059 |
+
return count($premium_notices) ;
|
3060 |
+
}
|
3061 |
+
|
3062 |
+
/**
|
3063 |
+
* Get output of function, in format 'function', or 'class()->sub()->function'
|
3064 |
+
* @param string $func
|
3065 |
+
* @param bool $is_condition // if the check is a condition, which should return a boolean
|
3066 |
+
* @return string|bool
|
3067 |
+
*/
|
3068 |
+
|
3069 |
+
private function validate_function($func, $is_condition = false ){
|
3070 |
+
$invert = false;
|
3071 |
+
if (strpos($func, 'NOT ') !== FALSE ) {
|
3072 |
+
$func = str_replace('NOT ', '', $func);
|
3073 |
+
$invert = true;
|
3074 |
+
}
|
3075 |
+
|
3076 |
+
if ( $func === '_true_') {
|
3077 |
+
$output = true;
|
3078 |
+
} else if ( $func === '_false_' ) {
|
3079 |
+
$output = false;
|
3080 |
+
} else {
|
3081 |
+
if ( preg_match( '/(.*)\(\)\-\>(.*)->(.*)/i', $func, $matches)) {
|
3082 |
+
$base = $matches[1];
|
3083 |
+
$class = $matches[2];
|
3084 |
+
$function = $matches[3];
|
3085 |
+
$output = call_user_func( array( $base()->{$class}, $function ) );
|
3086 |
+
} else {
|
3087 |
+
$output = $func();
|
3088 |
+
}
|
3089 |
+
|
3090 |
+
if ( $invert ) {
|
3091 |
+
$output = !$output;
|
3092 |
+
}
|
3093 |
+
}
|
3094 |
+
|
3095 |
+
//stringyfy booleans
|
3096 |
+
if (!$is_condition) {
|
3097 |
+
if ( $output === false || $output === 0 ) {
|
3098 |
+
$output = 'false';
|
3099 |
+
}
|
3100 |
+
if ( $output === true || $output === 1 ) {
|
3101 |
+
$output = 'true';
|
3102 |
+
}
|
3103 |
+
}
|
3104 |
+
return sanitize_text_field($output);
|
3105 |
+
}
|
3106 |
+
|
3107 |
+
/**
|
3108 |
+
* Calculate the percentage completed in the dashboard progress section
|
3109 |
+
* Determine max score by adding $notice['score'] to the $max_score variable
|
3110 |
+
* Determine actual score by adding $notice['score'] of each item with a 'success' output to $actual_score
|
3111 |
+
* @return int
|
3112 |
+
*
|
3113 |
+
* @since 4.0
|
3114 |
+
*
|
3115 |
+
*/
|
3116 |
+
|
3117 |
+
public function get_score_percentage() {
|
3118 |
+
if ( ! current_user_can( 'manage_options' ) ) {
|
3119 |
+
return 0;
|
3120 |
+
}
|
3121 |
+
|
3122 |
+
$max_score = 0;
|
3123 |
+
$actual_score = 0;
|
3124 |
+
$notices = $this->get_notices_list(array(
|
3125 |
+
'status' => 'all',
|
3126 |
+
));
|
3127 |
+
foreach ( $notices as $id => $notice ) {
|
3128 |
+
if (isset( $notice['score'] )) {
|
3129 |
+
// Only items matching condition will show in the dashboard. Only use these to determine max count.
|
3130 |
+
$max_score = $max_score + intval( $notice['score'] );
|
3131 |
+
$success = ( isset( $notice['output']['icon'] )
|
3132 |
+
&& ( $notice['output']['icon']
|
3133 |
+
=== 'success' ) ) ? true : false;
|
3134 |
+
if ( $success ) {
|
3135 |
+
// If the output is success, task is completed. Add to actual count.
|
3136 |
+
$actual_score = $actual_score + intval( $notice['score'] );
|
3137 |
+
}
|
3138 |
+
}
|
3139 |
+
}
|
3140 |
+
if ($max_score>0) {
|
3141 |
+
$score = $actual_score / $max_score;
|
3142 |
+
} else {
|
3143 |
+
$score = 0;
|
3144 |
+
}
|
3145 |
+
$score = $score * 100;
|
3146 |
+
$score = intval( round( $score ) );
|
3147 |
+
|
3148 |
+
return $score;
|
3149 |
+
}
|
3150 |
|
3151 |
/**
|
3152 |
* @param $setting_name
|
3157 |
*
|
3158 |
*/
|
3159 |
|
3160 |
+
public function generate_enable_link($setting_name, $type=false)
|
3161 |
{
|
3162 |
+
if ($type == 'free') {
|
3163 |
+
return add_query_arg(array("page" => "rlrsssl_really_simple_ssl", "highlight" => "$setting_name"), admin_url("options-general.php"));
|
3164 |
+
} elseif ($type == 'premium') {
|
3165 |
+
return add_query_arg(array("page" => "rlrsssl_really_simple_ssl", "tab" => "premium", "highlight" => "$setting_name"), admin_url("options-general.php"));
|
3166 |
+
}
|
3167 |
}
|
3168 |
|
3169 |
/**
|
3179 |
private function notice_row($id, $notice){
|
3180 |
if (!current_user_can('manage_options')) return;
|
3181 |
|
3182 |
+
if (!isset($notice['output'])) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3183 |
return;
|
3184 |
}
|
3185 |
|
3186 |
+
$msg = $notice['output']['msg'];
|
3187 |
+
$icon_type = $notice['output']['icon'];
|
3188 |
|
3189 |
+
// Do not show completed tasks if remaining tasks are selected.
|
3190 |
+
if ($icon_type === 'success' && !get_option('rsssl_all_tasks') && get_option('rsssl_remaining_tasks')) return;
|
3191 |
|
3192 |
+
$icon = $this->icon($icon_type);
|
3193 |
+
$dismiss = (isset($notice['output']['dismissible']) && $notice['output']['dismissible']) ? $this->rsssl_dismiss_button() : '';
|
|
|
3194 |
|
3195 |
?>
|
3196 |
<tr>
|
3200 |
<?php
|
3201 |
}
|
3202 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3203 |
|
|
|
|
|
|
|
3204 |
|
3205 |
/**
|
|
|
|
|
3206 |
* Count the plusones
|
3207 |
+
*
|
3208 |
+
* @return int
|
3209 |
*
|
3210 |
* @since 3.2
|
3211 |
*/
|
3214 |
if ( ! current_user_can( 'manage_options' ) ) {
|
3215 |
return 0;
|
3216 |
}
|
3217 |
+
|
3218 |
+
$cache = $this->is_settings_page() ? false : true;
|
3219 |
$count = get_transient( 'rsssl_plusone_count' );
|
3220 |
+
if ( !$cache || ($count === false) ) {
|
3221 |
$count = 0;
|
|
|
|
|
|
|
3222 |
$notices = $this->get_notices_list();
|
3223 |
foreach ( $notices as $id => $notice ) {
|
3224 |
+
$success = ( isset( $notice['output']['icon'] ) && ( $notice['output']['icon'] === 'success' ) ) ? true : false;
|
3225 |
+
if ( ! $success
|
3226 |
+
&& isset( $notice['output']['plusone'] )
|
3227 |
+
&& $notice['output']['plusone']
|
3228 |
+
) {
|
3229 |
+
$count++;
|
3230 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3231 |
}
|
3232 |
+
set_transient( 'rsssl_plusone_count', $count, WEEK_IN_SECONDS );
|
3233 |
}
|
3234 |
return $count;
|
3235 |
}
|
3243 |
*
|
3244 |
*/
|
3245 |
|
3246 |
+
public function general_grid(){
|
3247 |
+
$grid_items = array(
|
3248 |
+
'progress' =>array(
|
3249 |
+
'title' => __("Your progress", "really-simple-ssl"),
|
3250 |
+
'header' => rsssl_template_path . 'progress-header.php',
|
3251 |
+
'content' => rsssl_template_path . 'progress.php',
|
3252 |
+
'footer' => rsssl_template_path . 'progress-footer.php',
|
3253 |
+
'class' => 'regular rsssl-progress',
|
3254 |
+
'type' => 'all',
|
3255 |
+
),
|
3256 |
+
'settings' => array(
|
3257 |
+
'title' => __("Settings", "really-simple-ssl"),
|
3258 |
+
'content' => rsssl_template_path . 'settings.php',
|
3259 |
+
'footer' => rsssl_template_path . 'settings-footer.php',
|
3260 |
+
'class' => 'small settings',
|
3261 |
+
'type' => 'settings',
|
3262 |
+
),
|
3263 |
+
'tipstricks' => array(
|
3264 |
+
'title' => __("Tips & Tricks", "really-simple-ssl"),
|
3265 |
+
'header' => '',
|
3266 |
+
'content' => rsssl_template_path . 'tips-tricks.php',
|
3267 |
+
'footer' => rsssl_template_path . 'tips-tricks-footer.php',
|
3268 |
+
'class' => 'small',
|
3269 |
+
'type' => 'popular',
|
3270 |
+
),
|
3271 |
+
'plugins' => array(
|
3272 |
+
'title' => __("Our plugins", "really-simple-ssl"),
|
3273 |
+
'header' => rsssl_template_path . 'header.php',
|
3274 |
+
'content' => rsssl_template_path . 'other-plugins.php',
|
3275 |
+
'class' => 'half-height no-border no-background upsell-grid-container',
|
3276 |
+
'can_hide' => false,
|
3277 |
+
),
|
3278 |
+
'support' => array(
|
3279 |
+
'title' => __("Support forum", "really-simple-ssl"),
|
3280 |
+
'header' => '',
|
3281 |
+
'content' => rsssl_template_path . 'support.php',
|
3282 |
+
'footer' => rsssl_template_path . 'support-footer.php',
|
3283 |
+
'type' => 'tasks',
|
3284 |
+
'class' => 'half-height',
|
3285 |
+
),
|
3286 |
+
);
|
3287 |
+
return apply_filters( 'rsssl_grid_items', $grid_items );
|
3288 |
+
}
|
3289 |
|
3290 |
+
/**
|
3291 |
+
* Save the task toggle option
|
3292 |
+
* @since 4.0
|
3293 |
+
*/
|
3294 |
|
3295 |
+
public function update_task_toggle_option() {
|
3296 |
|
3297 |
+
if (!isset($_POST['token']) || (!wp_verify_nonce($_POST['token'], 'rsssl_nonce'))) {
|
3298 |
+
return;
|
3299 |
+
}
|
3300 |
|
3301 |
+
if (!isset($_POST["action"]) && $_POST["action"] ==! 'rsssl_update_task_toggle_option') return;
|
|
|
|
|
3302 |
|
3303 |
+
if (!isset($_POST['alltasks']) || (!isset($_POST['remainingtasks']) ) ) return;
|
|
|
3304 |
|
3305 |
+
if ($_POST['alltasks'] === 'checked') {
|
3306 |
+
update_option('rsssl_all_tasks', true);
|
3307 |
+
} else {
|
3308 |
+
update_option('rsssl_all_tasks', false);
|
3309 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3310 |
|
3311 |
+
if ($_POST['remainingtasks'] === 'checked') {
|
3312 |
+
update_option('rsssl_remaining_tasks', true);
|
3313 |
+
} else {
|
3314 |
+
update_option('rsssl_remaining_tasks', false);
|
3315 |
+
}
|
3316 |
|
3317 |
+
wp_die();
|
3318 |
+
}
|
|
|
3319 |
|
3320 |
+
/**
|
3321 |
+
* Get count of all tasks
|
3322 |
+
* @return int
|
3323 |
+
*/
|
3324 |
+
public function get_all_task_count() {
|
3325 |
+
if ( ! current_user_can( 'manage_options' ) ) {
|
3326 |
+
return 0;
|
3327 |
+
}
|
3328 |
|
3329 |
+
$count = count($this->get_notices_list(
|
3330 |
+
array( 'status' => 'all' )
|
3331 |
+
));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3332 |
|
3333 |
+
return $count;
|
3334 |
+
}
|
3335 |
|
3336 |
+
/**
|
3337 |
+
* @return int
|
3338 |
+
*
|
3339 |
+
* Get the remaining open task count, shown in the progress header
|
3340 |
+
*
|
3341 |
+
*/
|
|
|
|
|
|
|
3342 |
|
3343 |
+
public function get_remaining_tasks_count() {
|
3344 |
+
if ( ! current_user_can( 'manage_options' ) ) {
|
3345 |
+
return 0;
|
3346 |
+
}
|
3347 |
|
3348 |
+
$cache = !$this->is_settings_page();
|
3349 |
|
3350 |
+
$count = get_transient( 'rsssl_remaining_task_count' );
|
3351 |
+
if ( !$cache || $count === false ) {
|
3352 |
+
$count = count($this->get_notices_list(
|
3353 |
+
array( 'status' => 'open' )
|
3354 |
+
) );
|
3355 |
+
set_transient( 'rsssl_remaining_task_count', $count, DAY_IN_SECONDS );
|
3356 |
+
}
|
|
|
3357 |
|
3358 |
+
return $count;
|
3359 |
+
}
|
|
|
3360 |
|
3361 |
+
/**
|
3362 |
+
* Get status link for plugin, depending on installed, or premium availability
|
3363 |
+
* @param $item
|
3364 |
+
*
|
3365 |
+
* @return string
|
3366 |
+
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3367 |
|
3368 |
+
public function get_status_link($item){
|
3369 |
+
if (!defined($item['constant_free']) && !defined($item['constant_premium'])) {
|
3370 |
+
$link = admin_url() . "plugin-install.php?s=".$item['search']."&tab=search&type=term";
|
3371 |
+
$text = __('Install', 'really-simple-ssl');
|
3372 |
+
$status = "<a href=$link>$text</a>";
|
3373 |
+
} elseif ($item['constant_free'] == 'wpsi_plugin' || defined($item['constant_premium'] ) ) {
|
3374 |
+
$status = __("Installed", "really-simple-ssl");
|
3375 |
+
} elseif (defined($item['constant_free']) && !defined($item['constant_premium'])) {
|
3376 |
+
$link = $item['website'];
|
3377 |
+
$text = __('Upgrade to pro', 'really-simple-ssl');
|
3378 |
+
$status = "<a href=$link>$text</a>";
|
3379 |
+
}
|
3380 |
+
return $status;
|
3381 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
3382 |
|
3383 |
+
/**
|
3384 |
+
* Render the settings page
|
3385 |
+
*/
|
3386 |
|
3387 |
+
public function settings_page()
|
3388 |
+
{
|
3389 |
+
if (!current_user_can($this->capability)) return;
|
3390 |
+
if (isset ($_GET['tab'])) $this->admin_tabs($_GET['tab']); else $this->admin_tabs('configuration');
|
3391 |
+
if (isset ($_GET['tab'])) $tab = $_GET['tab']; else $tab = 'configuration';
|
3392 |
+
if ( !get_option('rsssl_visited_version_4_dashboard') ) {
|
3393 |
+
update_option('rsssl_visited_version_4_dashboard', true);
|
3394 |
+
}
|
3395 |
+
?>
|
3396 |
+
<div class="rsssl-container">
|
3397 |
+
<div class="rsssl-main"><?php
|
3398 |
+
switch ($tab) {
|
3399 |
+
case 'configuration' :
|
3400 |
+
$this->render_grid($this->general_grid());
|
3401 |
+
do_action("rsssl_configuration_page");
|
3402 |
+
}
|
3403 |
+
//possibility to hook into the tabs.
|
3404 |
+
do_action("show_tab_{$tab}");
|
3405 |
+
?>
|
3406 |
+
</div>
|
3407 |
+
</div>
|
3408 |
+
<?php
|
3409 |
+
}
|
3410 |
|
3411 |
+
/**
|
3412 |
+
* Render grid from grid array
|
3413 |
+
* @param array $grid
|
3414 |
+
*/
|
3415 |
+
public function render_grid($grid){
|
3416 |
+
$container = $this->get_template('grid-container.php', rsssl_path . 'grid/');
|
3417 |
+
$element = $this->get_template('grid-element.php', rsssl_path . 'grid/');
|
3418 |
+
$output = '';
|
3419 |
+
$defaults = array(
|
3420 |
+
'title' => '',
|
3421 |
+
'header' => rsssl_template_path . 'header.php',
|
3422 |
+
'content' => '',
|
3423 |
+
'footer' => '',
|
3424 |
+
'class' => '',
|
3425 |
+
'type' => 'plugins',
|
3426 |
+
'can_hide' => true,
|
3427 |
+
'instructions' => false,
|
3428 |
+
);
|
3429 |
+
foreach ($grid as $index => $grid_item) {
|
3430 |
+
$grid_item = wp_parse_args($grid_item, $defaults);
|
3431 |
+
$footer = $this->get_template_part($grid_item, 'footer', $index);
|
3432 |
+
$content = $this->get_template_part($grid_item, 'content', $index);
|
3433 |
+
$header = $this->get_template_part($grid_item, 'header', $index);
|
3434 |
+
$instructions = $grid_item['instructions'] ? '<a href="'.esc_url($grid_item['instructions']).'" target="_blank">'.__("Instructions manual").'</a>' : '';
|
3435 |
+
// Add form if type is settings
|
3436 |
+
$block = str_replace(array('{class}', '{title}', '{header}', '{content}', '{footer}', '{instructions}'), array($grid_item['class'], $grid_item['title'], $header, $content, $footer, $instructions), $element);
|
3437 |
+
$output .= $block;
|
3438 |
+
}
|
3439 |
|
3440 |
+
echo str_replace('{content}', $output, $container);
|
3441 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
3442 |
|
3443 |
+
/**
|
3444 |
+
* Render grid item based on template
|
3445 |
+
* @param array $grid_item
|
3446 |
+
* @param string $key
|
3447 |
+
* @oaram string $index
|
3448 |
+
*
|
3449 |
+
* @return string
|
3450 |
+
*/
|
3451 |
|
3452 |
+
public function get_template_part($grid_item, $key, $index) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3453 |
|
3454 |
+
if ( !isset($grid_item[$key]) || !$grid_item[$key] ) {
|
3455 |
+
$template_part = '';
|
3456 |
+
} else {
|
3457 |
+
if ( strpos( $grid_item[ $key ], '.php' ) !== false && file_exists($grid_item[ $key ]) ) {
|
3458 |
+
ob_start();
|
3459 |
+
require $grid_item[ $key ];
|
3460 |
+
$template_part = ob_get_clean();
|
3461 |
+
} else {
|
3462 |
+
$template_part = '';
|
3463 |
+
}
|
3464 |
+
}
|
3465 |
|
3466 |
+
if ($key === 'content' ) {
|
3467 |
+
if ( $grid_item['type'] === 'scan' ) {
|
3468 |
+
$template_part = '<form id="rsssl_scan_form" action="" method="post">'.$template_part;
|
3469 |
+
} elseif ( $grid_item['type'] === 'settings' ) {
|
3470 |
+
if ( is_network_admin() ) {
|
3471 |
+
$template_part = '<form action="edit.php?action=rsssl_update_network_settings" method="post">'.wp_nonce_field('rsssl_ms_settings_update', 'rsssl_ms_nonce').
|
3472 |
+
$template_part;
|
3473 |
+
} else {
|
3474 |
+
$template_part = '<form action="options.php" method="post">'.$template_part;
|
3475 |
+
}
|
3476 |
+
}
|
3477 |
+
}
|
3478 |
+
|
3479 |
+
if ( $key === 'footer' && ( $grid_item['type'] === 'scan' || $grid_item['type'] === 'settings') ) {
|
3480 |
+
$template_part .= '</form>';
|
3481 |
+
}
|
3482 |
+
|
3483 |
+
return apply_filters("rsssl_template_part_".$key.'_'.$index, $template_part, $grid_item);
|
3484 |
}
|
3485 |
|
3486 |
/**
|
3495 |
* @return string
|
3496 |
*/
|
3497 |
|
3498 |
+
public function icon($type)
|
3499 |
{
|
3500 |
if ($type == 'success') {
|
3501 |
+
return "<span class='rsssl-progress-status rsssl-success'>".__("Completed", "really-simple-ssl")."</span>";
|
3502 |
+
} elseif ($type == "warning") {
|
3503 |
+
return "<span class='rsssl-progress-status rsssl-warning'>".__("Warning", "really-simple-ssl")."</span>";
|
3504 |
+
} elseif ($type == "open") {
|
3505 |
+
return "<span class='rsssl-progress-status rsssl-open'>".__("Open", "really-simple-ssl")."</span>";
|
3506 |
+
} elseif ($type == "premium") {
|
3507 |
+
return "<span class='rsssl-progress-status rsssl-premium'>".__("Premium", "really-simple-ssl")."</span>";
|
3508 |
}
|
3509 |
}
|
3510 |
|
3519 |
public function rsssl_dismiss_button()
|
3520 |
{
|
3521 |
return '<button type="button" class="close">
|
3522 |
+
<span class="rsssl-close-warning-x">X</span>
|
3523 |
</button>';
|
3524 |
}
|
3525 |
|
3567 |
*
|
3568 |
*/
|
3569 |
|
3570 |
+
public function enqueue_assets($hook)
|
3571 |
+
{
|
3572 |
+
//load on network admin or normal admin settings page
|
3573 |
+
if ( $hook !== 'settings_page_really-simple-ssl' && $hook !== 'settings_page_rlrsssl_really_simple_ssl' ) return;
|
3574 |
+
|
3575 |
+
if (is_rtl()) {
|
3576 |
+
wp_register_style('rlrsssl-css', trailingslashit(rsssl_url) . 'css/main-rtl.min.css', array(), rsssl_version);
|
3577 |
+
wp_register_style('rsssl-grid', trailingslashit(rsssl_url) . 'grid/css/grid-rtl.min.css', array(), rsssl_version);
|
3578 |
+
} else {
|
3579 |
+
wp_register_style('rlrsssl-css', trailingslashit(rsssl_url) . 'css/main.min.css', array(), rsssl_version );
|
3580 |
+
wp_register_style('rsssl-grid', trailingslashit(rsssl_url) . 'grid/css/grid.css', array(), rsssl_version );
|
3581 |
+
}
|
3582 |
+
|
3583 |
+
wp_register_style('rsssl-scrollbar', trailingslashit(rsssl_url) . 'includes/simple-scrollbar.css', "", rsssl_version);
|
3584 |
+
wp_enqueue_style('rsssl-scrollbar');
|
3585 |
|
3586 |
+
wp_enqueue_style('rlrsssl-css');
|
3587 |
+
wp_enqueue_style('rsssl-grid');
|
|
|
3588 |
|
3589 |
+
wp_register_script('rsssl',
|
3590 |
+
trailingslashit(rsssl_url)
|
3591 |
+
. 'js/scripts.js', array("jquery"), rsssl_version);
|
3592 |
+
wp_enqueue_script('rsssl');
|
3593 |
|
3594 |
+
$finished_text = apply_filters('rsssl_finished_text', sprintf(__("Basic SSL configuration finished! Improve your score with %sReally Simple SSL Pro%s.", "really-simple-ssl"), '<a target="_blank" href="' . $this->pro_url . '">', '</a>') );
|
3595 |
+
if ($this->ssl_enabled) {
|
3596 |
+
$ssl_status = __( "SSL is activated on your site.", 'really-simple-ssl' );
|
3597 |
} else {
|
3598 |
+
$ssl_status = __( "SSL is not yet enabled on this site.", 'really-simple-ssl' );
|
3599 |
}
|
3600 |
+
|
3601 |
+
$not_completed_text_singular = $ssl_status.' '. __("You still have %s task open.", 'really-simple-ssl' );
|
3602 |
+
$not_completed_text_plural = $ssl_status .' '.__(" You still have %s tasks open.", 'really-simple-ssl' );
|
3603 |
+
|
3604 |
+
wp_localize_script('rsssl', 'rsssl',
|
3605 |
+
array(
|
3606 |
+
'ajaxurl' => admin_url( 'admin-ajax.php' ),
|
3607 |
+
'token' => wp_create_nonce( 'rsssl_nonce'),
|
3608 |
+
'copied_text' => __("Copied!", "really-simple-ssl"),
|
3609 |
+
'finished_text' => $finished_text,
|
3610 |
+
'not_complete_text_singular' => $not_completed_text_singular,
|
3611 |
+
'not_complete_text_plural' => $not_completed_text_plural,
|
3612 |
+
'lowest_possible_task_count' => RSSSL()->really_simple_ssl->get_lowest_possible_task_count(),
|
3613 |
+
)
|
3614 |
+
);
|
3615 |
+
wp_register_script('rsssl-scrollbar',
|
3616 |
+
trailingslashit(rsssl_url)
|
3617 |
+
. 'includes/simple-scrollbar.js', array("jquery"), rsssl_version);
|
3618 |
+
wp_enqueue_script('rsssl-scrollbar');
|
3619 |
}
|
3620 |
|
3621 |
/**
|
3634 |
}
|
3635 |
|
3636 |
register_setting('rlrsssl_options', 'rlrsssl_options', array($this, 'options_validate'));
|
|
|
|
|
|
|
|
|
|
|
|
|
3637 |
add_settings_section('rlrsssl_settings', __("Settings", "really-simple-ssl"), array($this, 'section_text'), 'rlrsssl');
|
3638 |
+
|
3639 |
+
$help_tip = RSSSL()->rsssl_help->get_help_tip(__("In most cases you need to leave this enabled, to prevent mixed content issues on your site.", "really-simple-ssl"), $return=true);
|
3640 |
+
add_settings_field('id_autoreplace_insecure_links', $help_tip . "<div class='rsssl-settings-text'>" . __("Mixed content fixer", "really-simple-ssl"), array($this, 'get_option_autoreplace_insecure_links'), 'rlrsssl', 'rlrsssl_settings');
|
3641 |
|
3642 |
//only show option to enable or disable mixed content and redirect when SSL is detected
|
3643 |
if ($this->ssl_enabled) {
|
3644 |
+
$help_tip = RSSSL()->rsssl_help->get_help_tip(__("Redirects all requests over HTTP to HTTPS using a PHP 301 redirect. Enable if the .htaccess redirect cannot be used, for example on NGINX servers.", "really-simple-ssl"), $return=true);
|
3645 |
+
add_settings_field('id_wp_redirect', $help_tip . "<div class='rsssl-settings-text'>" . __("Enable WordPress 301 redirect", "really-simple-ssl"), array($this, 'get_option_wp_redirect'), 'rlrsssl', 'rlrsssl_settings', ['class' => 'rsssl-settings-row'] );
|
3646 |
|
3647 |
//when enabled networkwide, it's handled on the network settings page
|
3648 |
if (RSSSL()->rsssl_server->uses_htaccess() && (!is_multisite() || !RSSSL()->rsssl_multisite->ssl_enabled_networkwide)) {
|
3649 |
+
$help_tip = RSSSL()->rsssl_help->get_help_tip(__("A .htaccess redirect is faster and works better with caching. Really Simple SSL detects the redirect code that is most likely to work (99% of websites), but this is not 100%. Make sure you know how to regain access to your site if anything goes wrong!", "really-simple-ssl"), $return=true);
|
3650 |
+
add_settings_field('id_htaccess_redirect', $help_tip . "<div class='rsssl-settings-text'>" . __("Enable 301 .htaccess redirect", "really-simple-ssl"), array($this, 'get_option_htaccess_redirect'), 'rlrsssl', 'rlrsssl_settings');
|
3651 |
}
|
|
|
|
|
3652 |
}
|
3653 |
|
|
|
3654 |
//on multisite this setting can only be set networkwide
|
3655 |
if (RSSSL()->rsssl_server->uses_htaccess() && !is_multisite()) {
|
3656 |
+
$help_tip = RSSSL()->rsssl_help->get_help_tip(__("If you want to customize the Really Simple SSL .htaccess, you need to prevent Really Simple SSL from rewriting it. Enabling this option will do that.", "really-simple-ssl"), $return=true);
|
3657 |
+
add_settings_field('id_do_not_edit_htaccess', $help_tip . "<div class='rsssl-settings-text'>" . __("Stop editing the .htaccess file", "really-simple-ssl"), array($this, 'get_option_do_not_edit_htaccess'), 'rlrsssl', 'rlrsssl_settings');
|
3658 |
}
|
3659 |
|
3660 |
+
//don't show alternative mixed content fixer option if mixed content fixer is disabled.
|
3661 |
+
if ($this->autoreplace_insecure_links) {
|
3662 |
+
$help_tip = 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"), $return=true);
|
3663 |
+
add_settings_field('id_switch_mixed_content_fixer_hook', $help_tip . "<div class='rsssl-settings-text'>" . __("Fire mixed content fixer with different method", "really-simple-ssl"), array($this, 'get_option_switch_mixed_content_fixer_hook'), 'rlrsssl', 'rlrsssl_settings');
|
3664 |
+
}
|
3665 |
|
3666 |
+
$help_tip = RSSSL()->rsssl_help->get_help_tip(__("Enable this option to permanently dismiss all +1 notices in the 'Your progress' tab", "really-simple-ssl"), $return=true);
|
3667 |
+
add_settings_field('id_dismiss_all_notices', $help_tip . "<div class='rsssl-settings-text'>" . __("Dismiss all Really Simple SSL notices", "really-simple-ssl"), array($this, 'get_option_dismiss_all_notices'), 'rlrsssl', 'rlrsssl_settings');
|
3668 |
|
3669 |
}
|
3670 |
|
3679 |
|
3680 |
public function section_text()
|
3681 |
{
|
3682 |
+
|
|
|
|
|
3683 |
}
|
3684 |
|
3685 |
/**
|
3701 |
$newinput['review_notice_shown'] = $this->review_notice_shown;
|
3702 |
$newinput['plugin_db_version'] = $this->plugin_db_version;
|
3703 |
$newinput['ssl_enabled'] = $this->ssl_enabled;
|
|
|
|
|
3704 |
|
3705 |
if (!empty($input['hsts']) && $input['hsts'] == '1') {
|
3706 |
$newinput['hsts'] = TRUE;
|
3726 |
$newinput['autoreplace_insecure_links'] = FALSE;
|
3727 |
}
|
3728 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3729 |
if (!empty($input['do_not_edit_htaccess']) && $input['do_not_edit_htaccess'] == '1') {
|
3730 |
$newinput['do_not_edit_htaccess'] = TRUE;
|
3731 |
} else {
|
3744 |
$newinput['dismiss_all_notices'] = FALSE;
|
3745 |
}
|
3746 |
|
|
|
|
|
|
|
|
|
|
|
|
|
3747 |
if (!empty($input['htaccess_redirect']) && $input['htaccess_redirect'] == '1') {
|
3748 |
$newinput['htaccess_redirect'] = TRUE;
|
3749 |
} else {
|
3753 |
return $newinput;
|
3754 |
}
|
3755 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3756 |
|
3757 |
/**
|
3758 |
* Insert option into settings form
|
3773 |
$wp_redirect = TRUE;
|
3774 |
$comment = __("This option is enabled on the network menu.", "really-simple-ssl");
|
3775 |
}
|
|
|
3776 |
?>
|
3777 |
<label class="rsssl-switch">
|
3778 |
<input id="rlrsssl_options" name="rlrsssl_options[wp_redirect]" size="40" value="1"
|
3779 |
+
type="checkbox" <?php echo $disabled?> <?php checked(1, $wp_redirect, true) ?> />
|
3780 |
<span class="rsssl-slider rsssl-round"></span>
|
3781 |
</label>
|
3782 |
<?php
|
3783 |
+
RSSSL()->rsssl_help->get_comment($comment);
|
|
|
|
|
3784 |
}
|
3785 |
|
|
|
3786 |
/**
|
3787 |
* Insert option into settings form
|
3788 |
* The .htaccess redirect is not shown for multisite sites that are enabled network wide.
|
3793 |
*
|
3794 |
*/
|
3795 |
|
3796 |
+
public function get_option_htaccess_redirect()
|
3797 |
+
{
|
3798 |
+
$comment = $disabled = "";
|
3799 |
+
$link_open = '<a href="https://really-simple-ssl.com/knowledge-base/remove-htaccess-redirect-site-lockout/" target="_blank">';
|
3800 |
+
if (!$this->htaccess_redirect) $comment = sprintf(__("Before you enable the htaccess redirect, make sure you know how to %sregain access%s to your site in case of a redirect loop.", "really-simple-ssl"), $link_open, '</a>');
|
3801 |
+
//networkwide is not shown, so this only applies to per site activated sites.
|
3802 |
+
if (is_multisite() && RSSSL()->rsssl_multisite->htaccess_redirect) {
|
|
|
|
|
|
|
3803 |
$disabled = "disabled";
|
|
|
3804 |
$comment = __("This option is enabled on the network menu.", "really-simple-ssl");
|
3805 |
+
} elseif ($this->do_not_edit_htaccess) {
|
3806 |
+
//on multisite, the .htaccess do not edit option is not available
|
3807 |
+
$comment = __("If the setting 'stop editing the .htaccess file' is enabled, you can't change this setting.", "really-simple-ssl");
|
3808 |
+
$disabled = "disabled";
|
3809 |
+
}
|
3810 |
+
?>
|
3811 |
<label class="rsssl-switch" id="rsssl-maybe-highlight-wp-redirect-to-htaccess">
|
3812 |
<input id="rlrsssl_options" name="rlrsssl_options[htaccess_redirect]" size="40" value="1"
|
3813 |
+
type="checkbox" <?php checked(1, $this->htaccess_redirect, true) ?> <?php echo $disabled?>/>
|
3814 |
<span class="rsssl-slider rsssl-round"></span>
|
3815 |
</label>
|
3816 |
+
<?php
|
3817 |
+
RSSSL()->rsssl_help->get_comment($comment);
|
3818 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3819 |
|
3820 |
/**
|
3821 |
* Insert option into settings form
|
3835 |
<span class="rsssl-slider rsssl-round"></span>
|
3836 |
</label>
|
3837 |
<?php
|
3838 |
+
if (!$this->do_not_edit_htaccess && !is_writable($this->htaccess_file())) {
|
3839 |
+
$comment = __(".htaccess is currently not writable.", "really-simple-ssl");
|
3840 |
+
RSSSL()->rsssl_help->get_comment($comment);
|
3841 |
+
}
|
3842 |
}
|
3843 |
|
3844 |
/**
|
3859 |
<span class="rsssl-slider rsssl-round"></span>
|
3860 |
</label>
|
3861 |
<?php
|
|
|
3862 |
}
|
3863 |
|
3864 |
/**
|
3880 |
<span class="rsssl-slider rsssl-round"></span>
|
3881 |
</label>
|
3882 |
<?php
|
|
|
3883 |
}
|
3884 |
|
3885 |
/**
|
3892 |
*
|
3893 |
*/
|
3894 |
|
3895 |
+
public function deactivate_popup()
|
|
|
3896 |
{
|
3897 |
|
3898 |
?>
|
3899 |
+
<?php add_thickbox();?>
|
3900 |
<style>
|
3901 |
+
|
3902 |
+
#TB_ajaxContent.rsssl-deactivation-popup {
|
3903 |
text-align: center !important;
|
3904 |
+
width:750px;
|
3905 |
}
|
3906 |
+
#TB_window.rsssl-deactivation-popup {
|
3907 |
+
height: 440px !important;
|
3908 |
+
border-left: 7px solid black;
|
3909 |
+
}
|
3910 |
+
.rsssl-deactivation-popup #TB_title{
|
3911 |
+
height: 70px;
|
3912 |
+
border-bottom: 1px solid #dedede;
|
3913 |
+
}
|
3914 |
+
.rsssl-deactivation-popup #TB_ajaxWindowTitle {
|
3915 |
+
font-weight:bold;
|
3916 |
+
font-size:30px;
|
3917 |
+
padding: 20px;
|
3918 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3919 |
|
3920 |
+
.rsssl-deactivation-popup .tb-close-icon {
|
3921 |
+
color:#dedede;
|
3922 |
+
width: 50px;
|
3923 |
+
height: 50px;
|
3924 |
+
top: 12px;
|
3925 |
+
right: 20px;
|
3926 |
+
}
|
3927 |
+
.rsssl-deactivation-popup .tb-close-icon:before {
|
3928 |
+
font: normal 50px/50px dashicons;
|
3929 |
+
}
|
3930 |
+
.rsssl-deactivation-popup #TB_closeWindowButton:focus .tb-close-icon {
|
3931 |
+
outline:0;
|
3932 |
+
box-shadow: 0 0 0 0 #5b9dd9, 0 0 0 0 rgba(30, 140, 190, .8);
|
3933 |
+
color:#dedede;
|
3934 |
+
}
|
3935 |
+
.rsssl-deactivation-popup #TB_closeWindowButton .tb-close-icon:hover {
|
3936 |
+
color:#666;
|
3937 |
+
}
|
3938 |
+
.rsssl-deactivation-popup #TB_closeWindowButton:focus {
|
3939 |
+
outline:0;
|
3940 |
+
}
|
3941 |
+
.rsssl-deactivation-popup #TB_ajaxContent {
|
3942 |
+
width: 100% !important;
|
3943 |
+
padding: 0;
|
3944 |
+
}
|
3945 |
|
3946 |
+
.rsssl-deactivation-popup .button-rsssl-tertiary.button {
|
3947 |
+
background-color: #D7263D !important;
|
3948 |
+
color: white !important;
|
3949 |
+
border-color: #D7263D;
|
3950 |
+
}
|
|
|
3951 |
|
3952 |
+
.rsssl-deactivation-popup .button-rsssl-tertiary.button:hover {
|
3953 |
+
background-color: #f1f1f1 !important;
|
3954 |
+
color: #d7263d !important;
|
3955 |
+
}
|
3956 |
|
3957 |
+
.rsssl-deactivate-notice-content {
|
3958 |
+
margin: 20px
|
3959 |
+
}
|
3960 |
+
.rsssl-deactivate-notice-content h3 , .rsssl-deactivate-notice-content ul{
|
3961 |
+
font-size:1.1em;
|
3962 |
+
}
|
3963 |
|
3964 |
+
.rsssl-deactivate-notice-footer {
|
3965 |
+
padding-top: 20px;
|
3966 |
+
position:absolute;
|
3967 |
+
bottom:15px;
|
3968 |
+
width: 94%;
|
3969 |
+
margin-left: 3%;
|
3970 |
+
border-top: 1px solid #dedede;
|
3971 |
+
}
|
3972 |
|
3973 |
+
.rsssl-deactivation-popup ul {
|
3974 |
+
list-style: circle;
|
3975 |
+
padding-left: 20px;
|
3976 |
+
}
|
3977 |
+
.rsssl-deactivation-popup a {
|
3978 |
+
margin-right:10px !important;
|
3979 |
+
}
|
3980 |
+
</style>
|
3981 |
+
<script>
|
3982 |
+
jQuery(document).ready(function ($) {
|
3983 |
+
$('#rsssl_close_tb_window').click(tb_remove);
|
3984 |
+
$(document).on('click', '#deactivate-really-simple-ssl', function(e){
|
3985 |
+
e.preventDefault();
|
3986 |
+
tb_show( '<?php _e("Are you sure?", "really-simple-ssl") ?>', '#TB_inline?height=420&inlineId=deactivate_keep_ssl', 'null');
|
3987 |
+
$("#TB_window").addClass('rsssl-deactivation-popup');
|
3988 |
|
3989 |
+
});
|
3990 |
+
if ($('#deactivate-really-simple-ssl').length){
|
3991 |
+
$('.rsssl-button-deactivate-revert').attr('href', $('#deactivate-really-simple-ssl').attr('href') );
|
3992 |
+
}
|
3993 |
+
|
3994 |
+
});
|
3995 |
+
</script>
|
3996 |
+
<div id="deactivate_keep_ssl" style="display: none;">
|
3997 |
+
<div class="rsssl-deactivate-notice-content">
|
3998 |
+
<h3 style="margin: 20px 0; text-align: left;">
|
3999 |
+
<?php _e("To deactivate the plugin correctly, please select if you want to:", "really-simple-ssl") ?></h3>
|
4000 |
+
<ul style="text-align: left; font-size: 1.2em;">
|
4001 |
+
<li><?php _e("Deactivate, but stay on SSL.", "really-simple-ssl") ?></li>
|
4002 |
+
<li><?php _e("Deactivate, and revert to http. This will remove all changes by the plugin.", "really-simple-ssl") ?></li>
|
4003 |
+
</ul>
|
4004 |
+
<h3><?php _e("Deactivating the plugin while keeping SSL will do the following:", "really-simple-ssl") ?></h3>
|
4005 |
+
<ul style="text-align: left; font-size: 1.2em;">
|
4006 |
+
<li><?php _e("The mixed content fixer will stop working", "really-simple-ssl") ?></li>
|
4007 |
+
<li><?php _e("The WordPress 301 redirect will stop working", "really-simple-ssl") ?></li>
|
4008 |
+
<li><?php _e("Your site address will remain https://", "really-simple-ssl") ?> </li>
|
4009 |
+
<li><?php _e("The .htaccess redirect will remain active", "really-simple-ssl") ?></li>
|
4010 |
+
</ul>
|
4011 |
+
</div>
|
4012 |
+
|
4013 |
+
<?php
|
4014 |
+
$token = wp_create_nonce('rsssl_deactivate_plugin');
|
4015 |
+
$deactivate_keep_ssl_link = admin_url("options-general.php?page=rlrsssl_really_simple_ssl&action=uninstall_keep_ssl&token=" . $token);
|
4016 |
+
|
4017 |
+
?>
|
4018 |
+
<div class="rsssl-deactivate-notice-footer">
|
4019 |
+
<a class="button button-default" href="#" id="rsssl_close_tb_window"><?php _e("Cancel", "really-simple-ssl") ?></a>
|
4020 |
+
<a class="button button-primary" href="<?php echo $deactivate_keep_ssl_link ?>"><?php _e("Deactivate, keep https", "really-simple-ssl") ?></a>
|
4021 |
+
<a class="button button-rsssl-tertiary rsssl-button-deactivate-revert" href="#"><?php _e("Deactivate, revert to http", "really-simple-ssl") ?></a>
|
4022 |
+
</div>
|
4023 |
+
</div>
|
4024 |
<?php
|
|
|
4025 |
}
|
4026 |
|
4027 |
/**
|
4032 |
|
4033 |
public function get_option_autoreplace_insecure_links()
|
4034 |
{
|
|
|
4035 |
$autoreplace_mixed_content = $this->autoreplace_insecure_links;
|
4036 |
$disabled = "";
|
4037 |
$comment = "";
|
4043 |
}
|
4044 |
|
4045 |
?>
|
4046 |
+
<label class="rsssl-switch" id="rsssl-maybe-highlight-autoreplace_insecure_links">
|
4047 |
<input id="rlrsssl_options" name="rlrsssl_options[autoreplace_insecure_links]" size="40" value="1"
|
4048 |
+
type="checkbox" <?php checked(1, $autoreplace_mixed_content, true) ?> <?php echo $disabled?>/>
|
4049 |
<span class="rsssl-slider rsssl-round"></span>
|
4050 |
</label>
|
4051 |
+
|
4052 |
+
<?php
|
4053 |
+
RSSSL()->rsssl_help->get_comment($comment);
|
4054 |
}
|
4055 |
|
4056 |
/**
|
4057 |
* Add settings link on plugins overview page
|
4058 |
+
* @param string $links
|
4059 |
+
* @return string $links
|
4060 |
* @since 2.0
|
4061 |
*
|
4062 |
* @access public
|
4066 |
|
4067 |
public function plugin_settings_link($links)
|
4068 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4069 |
$settings_link = '<a href="' . admin_url("options-general.php?page=rlrsssl_really_simple_ssl") . '">' . __("Settings", "really-simple-ssl") . '</a>';
|
4070 |
array_unshift($links, $settings_link);
|
4071 |
|
4072 |
+
if ( apply_filters('rsssl_settings_link', 'free') === 'free' ) {
|
4073 |
+
$support = '<a target="_blank" href="https://wordpress.org/support/plugin/really-simple-ssl/">' . __('Support', 'really-simple-ssl') . '</a>';
|
4074 |
+
} else {
|
4075 |
+
$support = '<a target="_blank" href="https://really-simple-ssl.com/support">' . __('Premium Support', 'really-simple-ssl') . '</a>';
|
4076 |
+
}
|
4077 |
+
array_unshift($links, $support);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4078 |
|
4079 |
+
if ( ! defined( 'rsssl_pro_version' ) ) {
|
4080 |
+
$upgrade_link = '<a style="color:#f8be2e;font-weight:bold" target="_blank" href="https://really-simple-ssl.com/pro">'
|
4081 |
+
. __( 'Upgrade to premium', 'really-simple-ssl' ) . '</a>';
|
4082 |
+
array_unshift( $links, $upgrade_link );
|
4083 |
+
}
|
4084 |
+
return $links;
|
4085 |
}
|
4086 |
|
4087 |
|
4164 |
|
4165 |
protected function get_test_page_contents()
|
4166 |
{
|
|
|
4167 |
$filecontents = get_transient('rsssl_testpage');
|
4168 |
if (!$filecontents) {
|
4169 |
$filecontents = "";
|
4242 |
<script>
|
4243 |
jQuery(document).ready(function ($) {
|
4244 |
'use strict';
|
4245 |
+
var sPageURL = window.location.href;
|
4246 |
+
var queryString = sPageURL.split('?');
|
4247 |
+
if (queryString.length === 1) return false;
|
4248 |
+
var setting_name = '';
|
4249 |
+
var rsssl_variables = queryString[1].split('&');
|
4250 |
+
for (var key in rsssl_variables) {
|
4251 |
+
if (rsssl_variables.hasOwnProperty(key)) {
|
4252 |
+
var output = rsssl_variables[key].split('=');
|
4253 |
+
if (output[0]==='highlight') {
|
4254 |
+
setting_name = output[1];
|
|
|
4255 |
}
|
4256 |
}
|
4257 |
+
}
|
4258 |
+
if(setting_name !== '' && $('#rsssl-maybe-highlight-' + setting_name).length) {
|
4259 |
+
$('#rsssl-maybe-highlight-' + setting_name).closest('tr').addClass('rsssl-highlight');
|
4260 |
+
}
|
4261 |
});
|
4262 |
</script>
|
4263 |
<?php
|
4279 |
if ($http_referrer && strpos( $http_referrer, "&highlight=" ) ) {
|
4280 |
$url = add_query_arg( array(
|
4281 |
"page" => "rlrsssl_really_simple_ssl",
|
4282 |
+
"tab" => "configuration"
|
4283 |
), admin_url( "options-general.php" ) );
|
4284 |
wp_safe_redirect( $url );
|
4285 |
exit;
|
4286 |
}
|
4287 |
}
|
4288 |
+
|
4289 |
+
public function get_template($file, $path = rsssl_path, $args = array())
|
4290 |
+
{
|
4291 |
+
|
4292 |
+
$file = trailingslashit($path) . 'templates/' . $file;
|
4293 |
+
$theme_file = trailingslashit(get_stylesheet_directory()) . dirname(rsssl_path) . $file;
|
4294 |
+
|
4295 |
+
if (file_exists($theme_file)) {
|
4296 |
+
$file = $theme_file;
|
4297 |
+
}
|
4298 |
+
|
4299 |
+
if (strpos($file, '.php') !== false) {
|
4300 |
+
ob_start();
|
4301 |
+
require $file;
|
4302 |
+
$contents = ob_get_clean();
|
4303 |
+
} else {
|
4304 |
+
$contents = file_get_contents($file);
|
4305 |
+
}
|
4306 |
+
|
4307 |
+
return $contents;
|
4308 |
+
}
|
4309 |
} //class closure
|
4310 |
|
4311 |
/**
|
4313 |
* @return string
|
4314 |
*/
|
4315 |
|
|
|
|
|
|
|
|
|
|
|
4316 |
|
4317 |
if (!function_exists('rsssl_site_has_ssl')) {
|
4318 |
function rsssl_site_has_ssl() {
|
4320 |
}
|
4321 |
}
|
4322 |
|
|
|
|
|
|
|
|
|
|
|
|
|
4323 |
if (!function_exists('rsssl_ssl_enabled')) {
|
4324 |
+
function rsssl_ssl_enabled() {
|
4325 |
+
return RSSSL()->really_simple_ssl->ssl_enabled;
|
4326 |
+
}
|
|
|
|
|
|
|
|
|
4327 |
}
|
4328 |
|
4329 |
if (!function_exists('rsssl_ssl_detected')) {
|
4330 |
function rsssl_ssl_detected() {
|
4331 |
+
|
4332 |
if ( ! RSSSL()->really_simple_ssl->wpconfig_ok() ) {
|
4333 |
+
return apply_filters('rsssl_ssl_detected', 'fail');
|
4334 |
}
|
4335 |
+
|
4336 |
+
if ( RSSSL()->really_simple_ssl->site_has_ssl ) {
|
4337 |
+
return apply_filters('rsssl_ssl_detected', 'ssl-detected');
|
4338 |
}
|
4339 |
+
|
4340 |
+
if ( !RSSSL()->rsssl_certificate->is_valid() ) {
|
4341 |
+
return apply_filters('rsssl_ssl_detected', 'no-ssl-detected');
|
4342 |
}
|
4343 |
|
4344 |
+
return apply_filters('rsssl_ssl_detected', 'ssl-detected');
|
4345 |
}
|
4346 |
}
|
4347 |
|
4350 |
if ( ! RSSSL()->really_simple_ssl->has_301_redirect() ) {
|
4351 |
return 'no-redirect-set';
|
4352 |
}
|
4353 |
+
|
4354 |
if ( RSSSL()->really_simple_ssl->has_301_redirect() && RSSSL()->rsssl_server->uses_htaccess() && RSSSL()->really_simple_ssl->htaccess_contains_redirect_rules() ) {
|
4355 |
return 'htaccess-redirect-set';
|
4356 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4357 |
|
4358 |
+
if ( RSSSL()->rsssl_server->uses_htaccess() && ! is_writable( RSSSL()->really_simple_ssl->htaccess_file()) && ( ! is_multisite() || ! RSSSL()->rsssl_multisite->is_per_site_activated_multisite_subfolder_install() ) ) {
|
4359 |
+
return 'htaccess-not-writeable';
|
4360 |
+
}
|
4361 |
+
|
4362 |
+
if ( RSSSL()->really_simple_ssl->htaccess_redirect && !RSSSL()->really_simple_ssl->htaccess_test_success) {
|
4363 |
+
return 'htaccess-rules-test-failed';
|
4364 |
}
|
|
|
|
|
4365 |
|
4366 |
+
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 && ( ! is_multisite() || ! RSSSL()->rsssl_multisite->is_per_site_activated_multisite_subfolder_install() )) {
|
4367 |
+
return 'wp-redirect-to-htaccess';
|
|
|
|
|
|
|
|
|
4368 |
}
|
|
|
|
|
4369 |
|
4370 |
+
return 'default';
|
|
|
|
|
4371 |
}
|
4372 |
}
|
4373 |
|
4374 |
+
if (!function_exists('rsssl_htaccess_not_writable')) {
|
4375 |
+
function rsssl_htaccess_not_writable() {
|
4376 |
+
//don't trigger if htaccess not used
|
4377 |
+
if ( !RSSSL()->rsssl_server->uses_htaccess() ) return false;
|
|
|
4378 |
|
4379 |
+
if (RSSSL()->really_simple_ssl->do_not_edit_htaccess || !is_writable(RSSSL()->really_simple_ssl->ABSpath.".htaccess")){
|
|
|
|
|
|
|
4380 |
return true;
|
|
|
|
|
4381 |
}
|
4382 |
+
return false;
|
4383 |
}
|
4384 |
}
|
4385 |
|
4386 |
if (!function_exists('rsssl_uses_elementor')) {
|
4387 |
function rsssl_uses_elementor() {
|
4388 |
+
return ( defined( 'ELEMENTOR_VERSION' ) || defined( 'ELEMENTOR_PRO_VERSION' ) );
|
|
|
|
|
|
|
|
|
4389 |
}
|
4390 |
}
|
4391 |
|
4392 |
if (!function_exists('rsssl_uses_divi')) {
|
4393 |
function rsssl_uses_divi() {
|
4394 |
+
return defined( 'ET_CORE_PATH' );
|
|
|
|
|
|
|
|
|
4395 |
}
|
4396 |
}
|
4397 |
|
4409 |
}
|
4410 |
}
|
4411 |
|
|
|
|
|
|
|
|
|
|
|
|
|
4412 |
if (!function_exists('rsssl_wp_redirect_condition')) {
|
4413 |
function rsssl_wp_redirect_condition() {
|
4414 |
if ( RSSSL()->really_simple_ssl->has_301_redirect() && RSSSL()->really_simple_ssl->wp_redirect && ! RSSSL()->really_simple_ssl->htaccess_redirect ) {
|
4428 |
}
|
4429 |
}
|
4430 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class-certificate.php
CHANGED
@@ -45,12 +45,21 @@ if ( ! class_exists( 'rsssl_certificate' ) ) {
|
|
45 |
//get certificate info
|
46 |
$certinfo = $this->get_certinfo($domain);
|
47 |
|
48 |
-
if (!$certinfo)
|
|
|
|
|
|
|
49 |
|
50 |
//Check if domain is valid
|
51 |
$domain_valid = $this->is_domain_valid($certinfo, $domain);
|
|
|
|
|
|
|
52 |
//Check if date is valid
|
53 |
$date_valid = $this->is_date_valid($certinfo);
|
|
|
|
|
|
|
54 |
//Domain and date valid? Return true
|
55 |
if ($domain_valid && $date_valid) {
|
56 |
return true;
|
@@ -90,6 +99,15 @@ if ( ! class_exists( 'rsssl_certificate' ) ) {
|
|
90 |
|
91 |
}
|
92 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
93 |
/**
|
94 |
*
|
95 |
* Check if the date is valid by looking at the validFrom and validTo times
|
@@ -166,21 +184,26 @@ if ( ! class_exists( 'rsssl_certificate' ) ) {
|
|
166 |
|
167 |
public function get_certinfo($url)
|
168 |
{
|
169 |
-
|
170 |
$certinfo = get_transient('rsssl_certinfo');
|
171 |
-
|
|
|
|
|
|
|
|
|
172 |
$url = 'https://'.$url;
|
173 |
$original_parse = parse_url($url, PHP_URL_HOST);
|
174 |
if ($original_parse) {
|
175 |
-
|
176 |
$get = stream_context_create(array("ssl" => array("capture_peer_cert" => TRUE)));
|
177 |
if ($get) {
|
178 |
set_error_handler(array($this, 'custom_error_handling'));
|
179 |
-
$read = stream_socket_client("ssl://" . $original_parse . ":443", $errno, $errstr,
|
180 |
restore_error_handler();
|
181 |
|
182 |
-
|
|
|
|
|
183 |
|
|
|
184 |
$cert = stream_context_get_params($read);
|
185 |
$certinfo = openssl_x509_parse($cert['options']['ssl']['peer_certificate']);
|
186 |
}
|
45 |
//get certificate info
|
46 |
$certinfo = $this->get_certinfo($domain);
|
47 |
|
48 |
+
if (!$certinfo) {
|
49 |
+
RSSSL()->really_simple_ssl->trace_log("- SSL certificate not valid");
|
50 |
+
return false;
|
51 |
+
}
|
52 |
|
53 |
//Check if domain is valid
|
54 |
$domain_valid = $this->is_domain_valid($certinfo, $domain);
|
55 |
+
if (!$domain_valid) {
|
56 |
+
RSSSL()->really_simple_ssl->trace_log("- Domain on certificate does not match website's domain");
|
57 |
+
}
|
58 |
//Check if date is valid
|
59 |
$date_valid = $this->is_date_valid($certinfo);
|
60 |
+
if (!$date_valid) {
|
61 |
+
RSSSL()->really_simple_ssl->trace_log("- Date on certificate expired or not valid");
|
62 |
+
}
|
63 |
//Domain and date valid? Return true
|
64 |
if ($domain_valid && $date_valid) {
|
65 |
return true;
|
99 |
|
100 |
}
|
101 |
|
102 |
+
public function detection_failed(){
|
103 |
+
$certinfo = get_transient('rsssl_certinfo');
|
104 |
+
if ($certinfo && $certinfo === 'no-response' ) {
|
105 |
+
return true;
|
106 |
+
}
|
107 |
+
|
108 |
+
return false;
|
109 |
+
}
|
110 |
+
|
111 |
/**
|
112 |
*
|
113 |
* Check if the date is valid by looking at the validFrom and validTo times
|
184 |
|
185 |
public function get_certinfo($url)
|
186 |
{
|
|
|
187 |
$certinfo = get_transient('rsssl_certinfo');
|
188 |
+
|
189 |
+
//if the last check resulted in a "no response", we skip this check for a day.
|
190 |
+
if ($certinfo === 'no-response') return false;
|
191 |
+
|
192 |
+
if (!$certinfo || RSSSL()->really_simple_ssl->is_settings_page()) {
|
193 |
$url = 'https://'.$url;
|
194 |
$original_parse = parse_url($url, PHP_URL_HOST);
|
195 |
if ($original_parse) {
|
|
|
196 |
$get = stream_context_create(array("ssl" => array("capture_peer_cert" => TRUE)));
|
197 |
if ($get) {
|
198 |
set_error_handler(array($this, 'custom_error_handling'));
|
199 |
+
$read = stream_socket_client("ssl://" . $original_parse . ":443", $errno, $errstr, 5, STREAM_CLIENT_CONNECT, $get);
|
200 |
restore_error_handler();
|
201 |
|
202 |
+
if (!$read){
|
203 |
+
$certinfo = 'no-response';
|
204 |
+
}
|
205 |
|
206 |
+
if ($errno == 0 && $read) {
|
207 |
$cert = stream_context_get_params($read);
|
208 |
$certinfo = openssl_x509_parse($cert['options']['ssl']['peer_certificate']);
|
209 |
}
|
class-front-end.php
CHANGED
@@ -9,21 +9,17 @@ if ( ! class_exists( 'rsssl_front_end' ) ) {
|
|
9 |
public $javascript_redirect = FALSE;
|
10 |
public $wp_redirect = TRUE;
|
11 |
public $autoreplace_insecure_links = TRUE;
|
|
|
12 |
public $switch_mixed_content_fixer_hook = FALSE;
|
13 |
|
14 |
-
//public $ssl_enabled_networkwide = FALSE;
|
15 |
-
|
16 |
function __construct()
|
17 |
{
|
18 |
if (isset(self::$_this))
|
19 |
wp_die(sprintf(__('%s is a singleton class and you cannot create a second instance.', 'really-simple-ssl'), get_class($this)));
|
20 |
|
21 |
self::$_this = $this;
|
22 |
-
|
23 |
$this->get_options();
|
24 |
-
|
25 |
add_action('rest_api_init', array($this, 'wp_rest_api_force_ssl'), ~PHP_INT_MAX);
|
26 |
-
|
27 |
}
|
28 |
|
29 |
static function this()
|
@@ -31,22 +27,6 @@ if ( ! class_exists( 'rsssl_front_end' ) ) {
|
|
31 |
return self::$_this;
|
32 |
}
|
33 |
|
34 |
-
/**
|
35 |
-
* Sets the SSL variable to on for WordPress, so the native function is_ssl() will return true
|
36 |
-
* It should run as first plugin in WP, otherwise issues might result.
|
37 |
-
*
|
38 |
-
* @since 3.0
|
39 |
-
*
|
40 |
-
* @access public
|
41 |
-
*
|
42 |
-
*/
|
43 |
-
|
44 |
-
// public function set_ssl_var(){
|
45 |
-
// if (($this->ssl_enabled) || $this->ssl_enabled_networkwide) {
|
46 |
-
// $_SERVER["HTTPS"] = "on";
|
47 |
-
// }
|
48 |
-
// }
|
49 |
-
|
50 |
/**
|
51 |
* Javascript redirect, when ssl is true.
|
52 |
*
|
@@ -59,7 +39,6 @@ if ( ! class_exists( 'rsssl_front_end' ) ) {
|
|
59 |
public function force_ssl()
|
60 |
{
|
61 |
if ($this->ssl_enabled) {
|
62 |
-
if ($this->javascript_redirect) add_action('wp_print_scripts', array($this, 'force_ssl_with_javascript'));
|
63 |
if ($this->wp_redirect) add_action('wp', array($this, 'wp_redirect_to_ssl'), 40, 3);
|
64 |
}
|
65 |
}
|
@@ -146,26 +125,5 @@ if ( ! class_exists( 'rsssl_front_end' ) ) {
|
|
146 |
}
|
147 |
}
|
148 |
|
149 |
-
|
150 |
-
/**
|
151 |
-
* Adds some javascript to redirect to https.
|
152 |
-
*
|
153 |
-
* @since 1.0
|
154 |
-
*
|
155 |
-
* @access public
|
156 |
-
*
|
157 |
-
*/
|
158 |
-
|
159 |
-
public function force_ssl_with_javascript()
|
160 |
-
{
|
161 |
-
$script = '<script>';
|
162 |
-
$script .= 'if (document.location.protocol != "https:") {';
|
163 |
-
$script .= 'document.location = document.URL.replace(/^http:/i, "https:");';
|
164 |
-
$script .= '}';
|
165 |
-
$script .= '</script>';
|
166 |
-
|
167 |
-
echo apply_filters('rsssl_javascript_redirect', $script);
|
168 |
-
}
|
169 |
-
|
170 |
}
|
171 |
}
|
9 |
public $javascript_redirect = FALSE;
|
10 |
public $wp_redirect = TRUE;
|
11 |
public $autoreplace_insecure_links = TRUE;
|
12 |
+
public $ssl_enabled;
|
13 |
public $switch_mixed_content_fixer_hook = FALSE;
|
14 |
|
|
|
|
|
15 |
function __construct()
|
16 |
{
|
17 |
if (isset(self::$_this))
|
18 |
wp_die(sprintf(__('%s is a singleton class and you cannot create a second instance.', 'really-simple-ssl'), get_class($this)));
|
19 |
|
20 |
self::$_this = $this;
|
|
|
21 |
$this->get_options();
|
|
|
22 |
add_action('rest_api_init', array($this, 'wp_rest_api_force_ssl'), ~PHP_INT_MAX);
|
|
|
23 |
}
|
24 |
|
25 |
static function this()
|
27 |
return self::$_this;
|
28 |
}
|
29 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
30 |
/**
|
31 |
* Javascript redirect, when ssl is true.
|
32 |
*
|
39 |
public function force_ssl()
|
40 |
{
|
41 |
if ($this->ssl_enabled) {
|
|
|
42 |
if ($this->wp_redirect) add_action('wp', array($this, 'wp_redirect_to_ssl'), 40, 3);
|
43 |
}
|
44 |
}
|
125 |
}
|
126 |
}
|
127 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
128 |
}
|
129 |
}
|
class-help.php
CHANGED
@@ -1,28 +1,46 @@
|
|
1 |
<?php
|
2 |
defined('ABSPATH') or die("you do not have access to this page!");
|
3 |
if ( ! class_exists( 'rsssl_help' ) ) {
|
4 |
-
|
5 |
-
|
6 |
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
|
11 |
-
|
12 |
-
|
13 |
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
|
25 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
|
27 |
-
}//class closure
|
28 |
} //if class exists closure
|
1 |
<?php
|
2 |
defined('ABSPATH') or die("you do not have access to this page!");
|
3 |
if ( ! class_exists( 'rsssl_help' ) ) {
|
4 |
+
class rsssl_help {
|
5 |
+
private static $_this;
|
6 |
|
7 |
+
function __construct() {
|
8 |
+
if ( isset( self::$_this ) )
|
9 |
+
wp_die( sprintf( __( '%s is a singleton class and you cannot create a second instance.','really-simple-ssl' ), get_class( $this ) ) );
|
10 |
|
11 |
+
self::$_this = $this;
|
12 |
+
}
|
13 |
|
14 |
+
static function this() {
|
15 |
+
return self::$_this;
|
16 |
+
}
|
17 |
|
18 |
+
public function get_help_tip($str, $return=false){
|
19 |
+
if ($return) {
|
20 |
+
ob_start();
|
21 |
+
}
|
22 |
+
?>
|
23 |
+
<span class="rsssl-tooltip-right tooltip-right" data-rsssl-tooltip="<?php echo $str?>">
|
24 |
+
<span class="dashicons dashicons-editor-help"></span>
|
25 |
+
</span>
|
26 |
+
<?php
|
27 |
+
if ($return) {
|
28 |
+
$content = ob_get_clean();
|
29 |
+
return $content;
|
30 |
+
}
|
31 |
+
}
|
32 |
|
33 |
+
/**
|
34 |
+
* Break current row, and start new one.
|
35 |
+
* @param string $str
|
36 |
+
* @param string $class
|
37 |
+
*/
|
38 |
+
public function get_comment($str, $class = false) {
|
39 |
+
if (strlen($str) === 0) return;
|
40 |
+
?>
|
41 |
+
</td></tr><tr class="rsssl-comment-text <?php echo esc_attr($class)?>"><td colspan="2"><?php echo $str;?></td></tr>
|
42 |
+
<?php
|
43 |
+
}
|
44 |
|
45 |
+
}//class closure
|
46 |
} //if class exists closure
|
class-mixed-content-fixer.php
CHANGED
@@ -18,7 +18,6 @@ if (!class_exists('rsssl_admin_mixed_content_fixer')) {
|
|
18 |
if (!is_admin() && is_ssl() && RSSSL()->rsssl_front_end->autoreplace_insecure_links) {
|
19 |
$this->fix_mixed_content();
|
20 |
}
|
21 |
-
|
22 |
}
|
23 |
|
24 |
static function this()
|
18 |
if (!is_admin() && is_ssl() && RSSSL()->rsssl_front_end->autoreplace_insecure_links) {
|
19 |
$this->fix_mixed_content();
|
20 |
}
|
|
|
21 |
}
|
22 |
|
23 |
static function this()
|
class-multisite.php
CHANGED
@@ -7,12 +7,9 @@ if (!class_exists('rsssl_multisite')) {
|
|
7 |
{
|
8 |
private static $_this;
|
9 |
|
10 |
-
public $option_group = "rsssl_network_options";
|
11 |
-
public $page_slug = "really-simple-ssl";
|
12 |
public $section = "rsssl_network_options_section";
|
13 |
public $ssl_enabled_networkwide;
|
14 |
public $selected_networkwide_or_per_site;
|
15 |
-
|
16 |
public $wp_redirect;
|
17 |
public $htaccess_redirect;
|
18 |
public $do_not_edit_htaccess;
|
@@ -23,8 +20,6 @@ if (!class_exists('rsssl_multisite')) {
|
|
23 |
public $cert_expiration_warning;
|
24 |
public $hide_menu_for_subsites;
|
25 |
|
26 |
-
private $pro_url = "https://www.really-simple-ssl.com/pro-multisite";
|
27 |
-
|
28 |
function __construct()
|
29 |
{
|
30 |
|
@@ -33,7 +28,6 @@ if (!class_exists('rsssl_multisite')) {
|
|
33 |
|
34 |
self::$_this = $this;
|
35 |
|
36 |
-
|
37 |
$this->load_options();
|
38 |
register_activation_hook(dirname(__FILE__) . "/" . rsssl_plugin, array($this, 'activate'));
|
39 |
|
@@ -41,35 +35,35 @@ if (!class_exists('rsssl_multisite')) {
|
|
41 |
add_filter("admin_url", array($this, "check_admin_protocol"), 20, 3);
|
42 |
add_filter('home_url', array($this, 'check_site_protocol'), 20, 4);
|
43 |
add_filter('site_url', array($this, 'check_site_protocol'), 20, 4);
|
44 |
-
|
45 |
add_action("plugins_loaded", array($this, "process_networkwide_choice"), 10, 0);
|
46 |
add_action("plugins_loaded", array($this, "networkwide_choice_notice"), 20, 0);
|
47 |
-
|
48 |
add_action('network_admin_menu', array(&$this, 'add_multisite_menu'));
|
49 |
add_action('network_admin_edit_rsssl_update_network_settings', array($this, 'update_network_options'));
|
50 |
|
51 |
if (is_network_admin()) {
|
52 |
add_action('network_admin_notices', array($this, 'show_notices'), 10);
|
53 |
-
|
54 |
add_action('admin_print_footer_scripts', array($this, 'insert_dismiss_success'));
|
55 |
add_action('admin_print_footer_scripts', array($this, 'insert_dismiss_wildcard_warning'));
|
56 |
}
|
57 |
|
|
|
|
|
58 |
add_action('wp_ajax_dismiss_success_message_multisite', array($this, 'dismiss_success_message_callback'));
|
59 |
add_action('wp_ajax_dismiss_wildcard_warning', array($this, 'dismiss_wildcard_message_callback'));
|
60 |
-
add_action('wp_ajax_rsssl_pro_dismiss_pro_option_notice', array($this, 'dismiss_pro_option_notice'));
|
61 |
-
add_action("network_admin_notices", array($this, 'show_pro_option_notice'));
|
62 |
-
add_action("rsssl_show_network_tab_settings", array($this, 'settings_tab'));
|
63 |
|
64 |
//If WP version is 5.1 or higher, use wp_insert_site hook for multisite SSL activation in new blogs
|
65 |
if(version_compare(get_bloginfo('version'),'5.1', '>=') ) {
|
66 |
-
|
67 |
} else {
|
68 |
add_action('wpmu_new_blog', array($this, 'maybe_activate_ssl_in_new_blog_deprecated'), 10, 6);
|
69 |
}
|
|
|
70 |
//Listen for run_ssl_process hook switch
|
71 |
add_action('admin_init', array($this, 'listen_for_ssl_conversion_hook_switch'), 40);
|
|
|
|
|
72 |
|
|
|
73 |
|
74 |
}
|
75 |
|
@@ -78,38 +72,207 @@ if (!class_exists('rsssl_multisite')) {
|
|
78 |
return self::$_this;
|
79 |
}
|
80 |
|
|
|
81 |
|
82 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
83 |
|
84 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
85 |
|
86 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
87 |
|
88 |
public function maybe_activate_ssl_in_new_blog_deprecated($blog_id, $user_id=false, $domain=false, $path=false, $site_id=false, $meta=false)
|
89 |
{
|
90 |
-
|
91 |
if ($this->ssl_enabled_networkwide) {
|
92 |
$site = get_blog_details($blog_id);
|
93 |
$this->switch_to_blog_bw_compatible($site);
|
94 |
RSSSL()->really_simple_ssl->activate_ssl();
|
95 |
-
restore_current_blog();
|
96 |
}
|
97 |
}
|
98 |
|
99 |
/**
|
100 |
* Activate SSl in new block
|
101 |
* @since 3.1.6
|
102 |
-
* @param $
|
103 |
* @return void
|
104 |
*/
|
105 |
|
106 |
public function maybe_activate_ssl_in_new_blog($site)
|
107 |
{
|
108 |
-
|
109 |
if ($this->ssl_enabled_networkwide) {
|
110 |
$this->switch_to_blog_bw_compatible($site);
|
111 |
RSSSL()->really_simple_ssl->activate_ssl();
|
112 |
-
restore_current_blog();
|
113 |
}
|
114 |
}
|
115 |
|
@@ -159,84 +322,144 @@ if (!class_exists('rsssl_multisite')) {
|
|
159 |
|
160 |
}
|
161 |
|
162 |
-
|
163 |
-
|
164 |
Add network menu for SSL
|
165 |
Only when plugin is network activated.
|
166 |
-
|
167 |
*/
|
168 |
|
169 |
public function add_multisite_menu()
|
170 |
{
|
171 |
if (!$this->plugin_network_wide_active()) return;
|
172 |
|
173 |
-
register_setting(
|
174 |
-
add_settings_section('rsssl_network_settings', __("Settings", "really-simple-ssl"), array($this, 'section_text'),
|
175 |
-
|
176 |
-
add_settings_field('id_ssl_enabled_networkwide', __("Enable SSL", "really-simple-ssl"), array($this, 'get_option_enable_multisite'),
|
177 |
-
|
178 |
-
|
179 |
}
|
180 |
|
181 |
-
|
182 |
Shows the content of the multisite menu page
|
183 |
*/
|
184 |
|
185 |
-
public function section_text()
|
186 |
-
{
|
187 |
-
_e("Below you can set the multisite options for Really Simple SSL", "really-simple-ssl");
|
188 |
-
}
|
189 |
|
190 |
public function get_option_enable_multisite()
|
191 |
{
|
|
|
192 |
?>
|
193 |
<select name="rlrsssl_network_options[ssl_enabled_networkwide]">
|
194 |
<?php if (!$this->selected_networkwide_or_per_site) { ?>
|
195 |
-
<option value="-1" <?php if (!$this->selected_networkwide_or_per_site) echo "selected"; ?>><?php _e("
|
196 |
<?php } ?>
|
197 |
-
<option value="1" <?php if ($this->ssl_enabled_networkwide) echo "selected"; ?>><?php _e("networkwide", "really-simple-ssl") ?>
|
198 |
-
<option value="0" <?php if (!$this->ssl_enabled_networkwide) echo "selected"; ?>><?php _e("per site", "really-simple-ssl") ?>
|
199 |
</select>
|
200 |
<?php
|
201 |
-
|
202 |
-
//echo '<input id="rlrsssl_options" name="rlrsssl_network_options[ssl_enabled_networkwide]" size="40" type="checkbox" value="1"' . checked( 1, $this->ssl_enabled_networkwide, false ) ." />";
|
203 |
-
rsssl_help::this()->get_help_tip(__("Select to enable SSL networkwide or per site.", "really-simple-ssl"));
|
204 |
-
}
|
205 |
-
|
206 |
-
|
207 |
-
/**
|
208 |
-
* Displays the options page. The big difference here is where you post the data
|
209 |
-
* because, unlike for normal option pages, there is nowhere to process it by
|
210 |
-
* default so we have to create our own hook to process the saving of our options.
|
211 |
-
*/
|
212 |
-
|
213 |
-
public function multisite_menu_page()
|
214 |
-
{
|
215 |
-
$tab = "settings";
|
216 |
-
if (isset ($_GET['tab'])) $tab = $_GET['tab'];
|
217 |
-
$this->admin_tabs($tab);
|
218 |
-
|
219 |
-
do_action("rsssl_show_network_tab_{$tab}");
|
220 |
}
|
221 |
|
222 |
|
223 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
224 |
{
|
225 |
if (isset($_GET['updated'])): ?>
|
226 |
<div id="message" class="updated notice is-dismissible">
|
227 |
-
<p><?php _e('Options saved.', 'really-simple-ssl') ?></p
|
|
|
228 |
<?php endif; ?>
|
229 |
-
|
230 |
-
|
231 |
-
<
|
232 |
-
<?php
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
239 |
</div>
|
|
|
240 |
<?php
|
241 |
}
|
242 |
|
@@ -247,18 +470,18 @@ if (!class_exists('rsssl_multisite')) {
|
|
247 |
|
248 |
public function update_network_options()
|
249 |
{
|
250 |
-
|
|
|
|
|
|
|
251 |
|
252 |
if (isset($_POST["rlrsssl_network_options"])) {
|
253 |
$prev_ssl_enabled_networkwide = $this->ssl_enabled_networkwide;
|
254 |
$options = array_map(array($this, "sanitize_boolean"), $_POST["rlrsssl_network_options"]);
|
255 |
$options["selected_networkwide_or_per_site"] = true;
|
256 |
-
|
257 |
$this->ssl_enabled_networkwide = isset($options["ssl_enabled_networkwide"]) ? $options["ssl_enabled_networkwide"] : false;
|
258 |
-
|
259 |
$this->wp_redirect = isset($options["wp_redirect"]) ? $options["wp_redirect"] : false;
|
260 |
$this->htaccess_redirect = isset($options["htaccess_redirect"]) ? $options["htaccess_redirect"] : false;
|
261 |
-
|
262 |
$this->do_not_edit_htaccess = isset($options["do_not_edit_htaccess"]) ? $options["do_not_edit_htaccess"] : false;
|
263 |
$this->autoreplace_mixed_content = isset($options["autoreplace_mixed_content"]) ? $options["autoreplace_mixed_content"] : false;
|
264 |
$this->javascript_redirect = isset($options["javascript_redirect"]) ? $options["javascript_redirect"] : false;
|
@@ -266,27 +489,25 @@ if (!class_exists('rsssl_multisite')) {
|
|
266 |
$this->mixed_content_admin = isset($options["mixed_content_admin"]) ? $options["mixed_content_admin"] : false;
|
267 |
$this->cert_expiration_warning = isset($options["cert_expiration_warning"]) ? $options["cert_expiration_warning"] : false;
|
268 |
$this->hide_menu_for_subsites = isset($options["hide_menu_for_subsites"]) ? $options["hide_menu_for_subsites"] : false;
|
269 |
-
|
270 |
-
|
271 |
$this->selected_networkwide_or_per_site = isset($options["selected_networkwide_or_per_site"]) ? $options["selected_networkwide_or_per_site"] : false;
|
272 |
-
}
|
273 |
|
274 |
-
|
275 |
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
|
282 |
-
|
283 |
-
|
284 |
-
|
|
|
285 |
|
286 |
}
|
287 |
|
288 |
// At last we redirect back to our options page.
|
289 |
-
wp_redirect(add_query_arg(array('page' =>
|
290 |
exit;
|
291 |
}
|
292 |
|
@@ -314,60 +535,34 @@ if (!class_exists('rsssl_multisite')) {
|
|
314 |
{
|
315 |
//prevent showing the review on edit screen, as gutenberg removes the class which makes it editable.
|
316 |
$screen = get_current_screen();
|
317 |
-
|
318 |
-
|
319 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
320 |
|
321 |
-
if (!RSSSL()->really_simple_ssl->site_has_ssl) {
|
322 |
-
$current_url = esc_url_raw("https://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]);
|
323 |
-
?>
|
324 |
-
<div id="message" class="error notice activate-ssl">
|
325 |
-
<p><?php _e("No SSL was detected. If you do have an SSL certificate, try to reload this page over https by clicking this link:", "really-simple-ssl"); ?>
|
326 |
-
<a
|
327 |
-
href="<?php echo $current_url ?>"><?php _e("reload over https.", "really-simple-ssl"); ?></a>
|
328 |
-
<?php _e("You can check your certificate on", "really-simple-ssl"); ?> <a target="_blank"
|
329 |
-
href="https://www.ssllabs.com/ssltest/">Qualys
|
330 |
-
SSL Labs</a>
|
331 |
-
</p>
|
332 |
-
</div>
|
333 |
-
<?php } ?>
|
334 |
|
335 |
-
<?php if (RSSSL()->really_simple_ssl->site_has_ssl) {
|
336 |
-
if (is_main_site(get_current_blog_id()) && RSSSL()->really_simple_ssl->wpconfig_ok()) {
|
337 |
-
?>
|
338 |
-
<style>
|
339 |
-
#message.updated.notice.activate-ssl {
|
340 |
-
padding-top: 10px;
|
341 |
-
}
|
342 |
-
</style>
|
343 |
-
<div id="message" class="updated notice activate-ssl">
|
344 |
-
<h1><?php _e("Choose your preferred setup", "really-simple-ssl"); ?></h1>
|
345 |
-
<?php _e("Some things can't be done automatically. Before you migrate, please check for: ", 'really-simple-ssl'); ?>
|
346 |
-
<p>
|
347 |
-
<ul>
|
348 |
-
<li><?php _e('Http references in your .css and .js files: change any http:// into //', 'really-simple-ssl'); ?></li>
|
349 |
-
<li><?php _e('Images, stylesheets or scripts from a domain without an SSL certificate: remove them or move to your own server.', 'really-simple-ssl'); ?></li>
|
350 |
-
</ul>
|
351 |
-
</p>
|
352 |
-
<?php $this->show_pro(); ?>
|
353 |
-
<p>
|
354 |
-
<form action="" method="post">
|
355 |
-
<?php wp_nonce_field('rsssl_nonce', 'rsssl_nonce'); ?>
|
356 |
-
<input type="submit" class='button button-primary'
|
357 |
-
value="<?php _e("Activate SSL networkwide", "really-simple-ssl"); ?>"
|
358 |
-
id="rsssl_do_activate_ssl_networkwide" name="rsssl_do_activate_ssl_networkwide">
|
359 |
-
<input type="submit" class='button button-primary'
|
360 |
-
value="<?php _e("Activate SSL per site", "really-simple-ssl"); ?>"
|
361 |
-
id="rsssl_do_activate_ssl_per_site" name="rsssl_do_activate_ssl_per_site">
|
362 |
-
</form>
|
363 |
-
</p>
|
364 |
-
<p>
|
365 |
-
<?php _e("Networkwide activation does not check if a site has an SSL certificate. It just migrates all sites to SSL.", "really-simple-ssl"); ?>
|
366 |
-
</p>
|
367 |
-
</div>
|
368 |
-
<?php
|
369 |
-
}
|
370 |
-
}
|
371 |
}
|
372 |
|
373 |
/**
|
@@ -378,9 +573,9 @@ if (!class_exists('rsssl_multisite')) {
|
|
378 |
public function show_pro()
|
379 |
{
|
380 |
?>
|
381 |
-
<p><?php _e('You can also let the automatic scan of the pro version handle this for you, and get premium support and increased security with HSTS included.', 'really-simple-ssl')
|
382 |
<a target="_blank"
|
383 |
-
href="
|
384 |
</p>
|
385 |
<?php
|
386 |
}
|
@@ -420,7 +615,6 @@ if (!class_exists('rsssl_multisite')) {
|
|
420 |
|
421 |
//enable SSL on all sites on the network
|
422 |
$this->start_ssl_activation();
|
423 |
-
|
424 |
}
|
425 |
|
426 |
if (isset($_POST['rsssl_do_activate_ssl_per_site'])) {
|
@@ -430,6 +624,13 @@ if (!class_exists('rsssl_multisite')) {
|
|
430 |
$this->save_options();
|
431 |
}
|
432 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
433 |
}
|
434 |
|
435 |
|
@@ -475,27 +676,20 @@ if (!class_exists('rsssl_multisite')) {
|
|
475 |
}
|
476 |
|
477 |
if (get_site_option('rsssl_ssl_deactivation_active')){
|
478 |
-
|
|
|
479 |
}
|
480 |
|
481 |
update_site_option('rsssl_run', false);
|
482 |
|
483 |
}
|
484 |
|
485 |
-
public function redirect_to_network_settings_page_after_activation() {
|
486 |
-
$url = add_query_arg( array(
|
487 |
-
"page" => "really-simple-ssl",
|
488 |
-
), network_admin_url( "settings.php" ) );
|
489 |
-
wp_safe_redirect( $url );
|
490 |
-
exit;
|
491 |
-
}
|
492 |
-
|
493 |
public function get_process_completed_percentage(){
|
494 |
$complete_count = get_site_option('rsssl_siteprocessing_progress');
|
495 |
-
|
496 |
$percentage = round(($complete_count/$this->get_total_blog_count())*100,0);
|
497 |
-
if ($percentage > 99) $percentage =
|
498 |
-
|
|
|
499 |
}
|
500 |
|
501 |
public function start_ssl_activation(){
|
@@ -537,14 +731,15 @@ if (!class_exists('rsssl_multisite')) {
|
|
537 |
update_site_option('rsssl_siteprocessing_progress', $current_offset+$nr_of_sites);
|
538 |
}
|
539 |
}
|
540 |
-
|
541 |
}
|
542 |
|
|
|
|
|
|
|
543 |
|
544 |
public function activate_ssl_networkwide()
|
545 |
{
|
546 |
-
|
547 |
-
//run chunked
|
548 |
$nr_of_sites = 200;
|
549 |
$current_offset = get_site_option('rsssl_siteprocessing_progress');
|
550 |
|
@@ -562,12 +757,11 @@ if (!class_exists('rsssl_multisite')) {
|
|
562 |
update_site_option('rsssl_siteprocessing_progress', $current_offset+$nr_of_sites);
|
563 |
}
|
564 |
}
|
565 |
-
$this->redirect_to_network_settings_page_after_activation();
|
566 |
}
|
567 |
|
568 |
|
569 |
//change deprecated function depending on version.
|
570 |
-
|
571 |
* Offset is used to chunk the site loops.
|
572 |
* But offset is not used in the pre 4.6 function.
|
573 |
*
|
@@ -580,13 +774,12 @@ if (!class_exists('rsssl_multisite')) {
|
|
580 |
$args = array(
|
581 |
'number' => $nr_of_sites,
|
582 |
'offset' => $offset,
|
583 |
-
'public' => 1,
|
584 |
);
|
585 |
$sites = ($wp_version >= 4.6) ? get_sites($args) : wp_get_sites();
|
586 |
return $sites;
|
587 |
}
|
588 |
|
589 |
-
|
590 |
The new get_sites function returns an object.
|
591 |
|
592 |
*/
|
@@ -684,7 +877,7 @@ if (!class_exists('rsssl_multisite')) {
|
|
684 |
}
|
685 |
|
686 |
|
687 |
-
|
688 |
* Checks if we are on a subfolder install. (domain.com/site1 )
|
689 |
*
|
690 |
* @since 2.2
|
@@ -752,16 +945,16 @@ if (!class_exists('rsssl_multisite')) {
|
|
752 |
|
753 |
public function listen_for_ssl_conversion_hook_switch()
|
754 |
{
|
755 |
-
|
756 |
-
|
757 |
-
|
758 |
-
|
759 |
-
|
760 |
-
|
761 |
-
|
762 |
-
|
763 |
-
|
764 |
-
|
765 |
}
|
766 |
|
767 |
/**
|
@@ -777,102 +970,51 @@ if (!class_exists('rsssl_multisite')) {
|
|
777 |
{
|
778 |
//prevent showing the review on edit screen, as gutenberg removes the class which makes it editable.
|
779 |
$screen = get_current_screen();
|
780 |
-
|
781 |
-
|
782 |
-
|
783 |
-
|
784 |
-
|
785 |
-
|
786 |
-
|
787 |
-
|
788 |
-
|
789 |
-
<?php _e("The 'force-deactivate.php' file has to be renamed to .txt. Otherwise your ssl can be deactivated by anyone on the internet.", "really-simple-ssl"); ?>
|
790 |
-
</p>
|
791 |
-
<a href="options-general.php?page=rlrsssl_really_simple_ssl"><?php echo __("Check again", "really-simple-ssl"); ?></a>
|
792 |
-
</div>
|
793 |
-
<?php
|
794 |
}
|
795 |
|
796 |
-
|
797 |
* ssl switch for sites processing active
|
798 |
*/
|
799 |
|
800 |
if ($this->ssl_process_active()) {
|
801 |
-
|
802 |
-
|
803 |
-
|
804 |
-
|
805 |
-
|
806 |
-
|
807 |
-
|
808 |
-
|
809 |
-
|
810 |
-
|
811 |
-
|
812 |
-
|
813 |
-
|
814 |
-
|
815 |
-
|
816 |
-
|
817 |
-
|
818 |
-
|
819 |
-
|
820 |
-
|
821 |
-
|
822 |
-
|
823 |
-
|
824 |
-
|
825 |
-
|
826 |
-
|
827 |
-
if ($this->selected_networkwide_or_per_site && !get_site_option("rsssl_success_message_shown")) {
|
828 |
-
|
829 |
-
?>
|
830 |
-
<div id="message" class="updated notice is-dismissible rlrsssl-multisite-success">
|
831 |
-
<p>
|
832 |
-
<?php _e("SSL activated!", "really-simple-ssl"); ?>
|
833 |
-
<?php
|
834 |
-
if ($this->ssl_enabled_networkwide)
|
835 |
-
_e("SSL was activated on your entire network.", "really-simple-ssl");
|
836 |
-
else
|
837 |
-
_e("SSL was activated per site.", "really-simple-ssl");
|
838 |
-
?>
|
839 |
-
|
840 |
-
<?php _e("Don't forget to change your settings in Google Analytics and Webmaster tools.", "really-simple-ssl"); ?>
|
841 |
-
|
842 |
-
<a target="_blank"
|
843 |
-
href="https://really-simple-ssl.com/knowledge-base/how-to-setup-google-analytics-and-google-search-consolewebmaster-tools/"><?php _e("More info.", "really-simple-ssl"); ?></a>
|
844 |
-
</p>
|
845 |
-
</div>
|
846 |
-
<?php
|
847 |
-
}
|
848 |
-
|
849 |
-
if (!$this->ssl_enabled_networkwide && $this->selected_networkwide_or_per_site && $this->is_multisite_subfolder_install()) {
|
850 |
-
//with no server variables, the website could get into a redirect loop.
|
851 |
-
if (RSSSL()->really_simple_ssl->no_server_variable) {
|
852 |
-
?>
|
853 |
-
<div id="message" class="error notice">
|
854 |
-
<p>
|
855 |
-
<?php _e('You run a Multisite installation with subfolders, which prevents this plugin from fixing your missing server variable in the wp-config.php.', 'really-simple-ssl'); ?>
|
856 |
-
<?php _e('Because the $_SERVER["HTTPS"] variable is not set, your website may experience redirect loops.', 'really-simple-ssl'); ?>
|
857 |
-
<?php _e('Activate networkwide to fix this.', 'really-simple-ssl'); ?>
|
858 |
-
</p>
|
859 |
-
</div>
|
860 |
-
<?php
|
861 |
}
|
862 |
-
}
|
863 |
|
864 |
-
|
865 |
-
?>
|
866 |
-
<div id="message" class="error notice is-dismissible rlrsssl-multisite-wildcard-warning">
|
867 |
-
<p>
|
868 |
-
<?php _e("You run a Multisite installation with subdomains, but your site doesn't have a wildcard certificate.", 'really-simple-ssl'); ?>
|
869 |
-
<?php _e("This leads to issues when activating SSL networkwide since subdomains will be forced over SSL as well while they don't have a valid certificate.", 'really-simple-ssl'); ?>
|
870 |
-
<?php _e("Activate SSL per site or install a wildcard certificate to fix this.", 'really-simple-ssl'); ?>
|
871 |
-
</p>
|
872 |
-
</div>
|
873 |
-
<?php
|
874 |
}
|
875 |
-
|
876 |
}
|
877 |
|
878 |
|
@@ -945,125 +1087,23 @@ if (!class_exists('rsssl_multisite')) {
|
|
945 |
|
946 |
public function dismiss_success_message_callback()
|
947 |
{
|
948 |
-
if (!current_user_can($this->capability) ) return;
|
949 |
check_ajax_referer('really-simple-ssl-dismiss', 'security');
|
950 |
-
|
951 |
update_site_option("rsssl_success_message_shown", true);
|
952 |
wp_die();
|
953 |
}
|
954 |
|
955 |
-
public function dismiss_pro_option_notice()
|
956 |
-
{
|
957 |
-
if (!current_user_can($this->capability) ) return;
|
958 |
-
check_ajax_referer('rsssl-pro-dismiss-pro-option-notice' ,'security');
|
959 |
-
|
960 |
-
update_option('rsssl_pro_pro_option_notice_dismissed', true);
|
961 |
-
wp_die();
|
962 |
-
}
|
963 |
-
|
964 |
public function dismiss_wildcard_message_callback()
|
965 |
{
|
966 |
-
if (!current_user_can($this->capability) ) return;
|
967 |
check_ajax_referer('really-simple-ssl-dismiss', 'security');
|
968 |
-
|
969 |
update_site_option("rsssl_wildcard_message_shown", true);
|
970 |
wp_die();
|
971 |
}
|
972 |
|
973 |
-
public function dismiss_pro_option_script()
|
974 |
-
{
|
975 |
-
|
976 |
-
$ajax_nonce = wp_create_nonce("rsssl-pro-dismiss-pro-option-notice");
|
977 |
-
?>
|
978 |
-
<script type='text/javascript'>
|
979 |
-
jQuery(document).ready(function ($) {
|
980 |
-
|
981 |
-
$(".rsssl-pro-dismiss-notice.notice.is-dismissible").on("click", ".notice-dismiss", function (event) {
|
982 |
-
var data = {
|
983 |
-
'action': 'rsssl_pro_dismiss_pro_option_notice',
|
984 |
-
'security': '<?php echo $ajax_nonce; ?>'
|
985 |
-
};
|
986 |
-
|
987 |
-
$.post(ajaxurl, data, function (response) {
|
988 |
-
|
989 |
-
});
|
990 |
-
});
|
991 |
-
});
|
992 |
-
</script>
|
993 |
-
<?php
|
994 |
-
}
|
995 |
-
|
996 |
-
|
997 |
-
public function show_pro_option_notice()
|
998 |
-
{
|
999 |
-
//prevent showing the review on edit screen, as gutenberg removes the class which makes it editable.
|
1000 |
-
$screen = get_current_screen();
|
1001 |
-
if ( $screen->parent_base === 'edit' ) return;
|
1002 |
-
|
1003 |
-
if (!$this->is_settings_page()) return;
|
1004 |
-
|
1005 |
-
$dismissed = get_option('rsssl_pro_pro_option_notice_dismissed');
|
1006 |
-
|
1007 |
-
if (!$dismissed) {
|
1008 |
-
|
1009 |
-
add_action('admin_print_footer_scripts', array($this, 'dismiss_pro_option_script'));
|
1010 |
-
|
1011 |
-
if (defined('rsssl_pro_version')) {
|
1012 |
-
if (!defined('rsssl_pro_ms_version')) {
|
1013 |
-
?>
|
1014 |
-
<div id="message" class="updated notice is-dismissible rsssl-pro-dismiss-notice">
|
1015 |
-
<p>
|
1016 |
-
<?php echo sprintf(__('You are running Really Simple SSL pro. A dedicated add-on for multisite has been released. If you want more options to have full control over your multisite network, you can ask for a discount code to %supgrade%s your license to a multisite license.', 'really-simple-ssl'), '<a href="https://really-simple-ssl.com/contact" title="Really Simple SSL">', '</a>') ?>
|
1017 |
-
</p>
|
1018 |
-
</p></div>
|
1019 |
-
<?php
|
1020 |
-
}
|
1021 |
-
} else {
|
1022 |
-
?>
|
1023 |
-
<div id="message" class="updated notice is-dismissible rsssl-pro-dismiss-notice">
|
1024 |
-
<p>
|
1025 |
-
<?php echo sprintf(__('If you want more options to have full control over your multisite network, you can %supgrade%s your license to a multisite license, or dismiss this message', 'really-simple-ssl'), '<a href="https://really-simple-ssl.com/pro-multisite" title="Really Simple SSL">', '</a>') ?>
|
1026 |
-
</p>
|
1027 |
-
</p></div>
|
1028 |
-
<?php
|
1029 |
-
}
|
1030 |
-
}
|
1031 |
-
}
|
1032 |
-
|
1033 |
public function is_settings_page()
|
1034 |
{
|
1035 |
return (isset($_GET['page']) && $_GET['page'] == 'really-simple-ssl') ? true : false;
|
1036 |
}
|
1037 |
|
1038 |
-
|
1039 |
-
/**
|
1040 |
-
* Create tabs on the settings page
|
1041 |
-
*
|
1042 |
-
* @since 1.0.0
|
1043 |
-
*
|
1044 |
-
* @access public
|
1045 |
-
*
|
1046 |
-
*/
|
1047 |
-
|
1048 |
-
public function admin_tabs($current = 'settings')
|
1049 |
-
{
|
1050 |
-
$tabs = array(
|
1051 |
-
'settings' => __("Settings", "really-simple-ssl"),
|
1052 |
-
);
|
1053 |
-
|
1054 |
-
$tabs = apply_filters("rsssl_network_tabs", $tabs);
|
1055 |
-
|
1056 |
-
if (count($tabs) > 1) {
|
1057 |
-
echo '<h2 class="nav-tab-wrapper">';
|
1058 |
-
|
1059 |
-
foreach ($tabs as $tab => $name) {
|
1060 |
-
$class = ($tab == $current) ? ' nav-tab-active' : '';
|
1061 |
-
echo "<a class='nav-tab$class' href='?page=really-simple-ssl&tab=$tab'>$name</a>";
|
1062 |
-
}
|
1063 |
-
echo '</h2>';
|
1064 |
-
}
|
1065 |
-
}
|
1066 |
-
|
1067 |
public function get_total_blog_count()
|
1068 |
{
|
1069 |
//Get the total blog count from all multisite networks
|
@@ -1082,4 +1122,4 @@ if (!class_exists('rsssl_multisite')) {
|
|
1082 |
}
|
1083 |
|
1084 |
} //class closure
|
1085 |
-
}
|
7 |
{
|
8 |
private static $_this;
|
9 |
|
|
|
|
|
10 |
public $section = "rsssl_network_options_section";
|
11 |
public $ssl_enabled_networkwide;
|
12 |
public $selected_networkwide_or_per_site;
|
|
|
13 |
public $wp_redirect;
|
14 |
public $htaccess_redirect;
|
15 |
public $do_not_edit_htaccess;
|
20 |
public $cert_expiration_warning;
|
21 |
public $hide_menu_for_subsites;
|
22 |
|
|
|
|
|
23 |
function __construct()
|
24 |
{
|
25 |
|
28 |
|
29 |
self::$_this = $this;
|
30 |
|
|
|
31 |
$this->load_options();
|
32 |
register_activation_hook(dirname(__FILE__) . "/" . rsssl_plugin, array($this, 'activate'));
|
33 |
|
35 |
add_filter("admin_url", array($this, "check_admin_protocol"), 20, 3);
|
36 |
add_filter('home_url', array($this, 'check_site_protocol'), 20, 4);
|
37 |
add_filter('site_url', array($this, 'check_site_protocol'), 20, 4);
|
|
|
38 |
add_action("plugins_loaded", array($this, "process_networkwide_choice"), 10, 0);
|
39 |
add_action("plugins_loaded", array($this, "networkwide_choice_notice"), 20, 0);
|
|
|
40 |
add_action('network_admin_menu', array(&$this, 'add_multisite_menu'));
|
41 |
add_action('network_admin_edit_rsssl_update_network_settings', array($this, 'update_network_options'));
|
42 |
|
43 |
if (is_network_admin()) {
|
44 |
add_action('network_admin_notices', array($this, 'show_notices'), 10);
|
|
|
45 |
add_action('admin_print_footer_scripts', array($this, 'insert_dismiss_success'));
|
46 |
add_action('admin_print_footer_scripts', array($this, 'insert_dismiss_wildcard_warning'));
|
47 |
}
|
48 |
|
49 |
+
$plugin = rsssl_plugin;
|
50 |
+
add_filter("network_admin_plugin_action_links_$plugin", array($this, 'plugin_settings_link'));
|
51 |
add_action('wp_ajax_dismiss_success_message_multisite', array($this, 'dismiss_success_message_callback'));
|
52 |
add_action('wp_ajax_dismiss_wildcard_warning', array($this, 'dismiss_wildcard_message_callback'));
|
|
|
|
|
|
|
53 |
|
54 |
//If WP version is 5.1 or higher, use wp_insert_site hook for multisite SSL activation in new blogs
|
55 |
if(version_compare(get_bloginfo('version'),'5.1', '>=') ) {
|
56 |
+
add_action('wp_insert_site', array($this, 'maybe_activate_ssl_in_new_blog'), 20, 1);
|
57 |
} else {
|
58 |
add_action('wpmu_new_blog', array($this, 'maybe_activate_ssl_in_new_blog_deprecated'), 10, 6);
|
59 |
}
|
60 |
+
|
61 |
//Listen for run_ssl_process hook switch
|
62 |
add_action('admin_init', array($this, 'listen_for_ssl_conversion_hook_switch'), 40);
|
63 |
+
add_filter('rsssl_notices', array($this, 'add_multisite_notices'));
|
64 |
+
add_filter('rsssl_ssl_detected', array($this, 'override_ssl_detection_ms'));
|
65 |
|
66 |
+
add_action('rsssl_progress_feedback', array( $this, 'add_ms_progress_feedback' ));
|
67 |
|
68 |
}
|
69 |
|
72 |
return self::$_this;
|
73 |
}
|
74 |
|
75 |
+
public function override_ssl_detection_ms( $output ){
|
76 |
|
77 |
+
//if it's multisite, and it's activated per site, this is not important for the main site.
|
78 |
+
if ( is_multisite() && is_main_site() && $this->selected_networkwide_or_per_site && !$this->ssl_enabled_networkwide ) {
|
79 |
+
return 'not-applicable';
|
80 |
+
}
|
81 |
+
|
82 |
+
return $output;
|
83 |
+
}
|
84 |
|
85 |
+
public function add_ms_progress_feedback(){
|
86 |
+
if ( !is_multisite() ) return;
|
87 |
+
if ( !is_network_admin() ) return;
|
88 |
+
|
89 |
+
if ( !$this->selected_networkwide_or_per_site ) {
|
90 |
+
echo ' '.__('No choice has been made regarding networkwide or per site activation.', 'really-simple-ssl');
|
91 |
+
} else if ($this->ssl_enabled_networkwide){
|
92 |
+
echo ' '.__('SSL is activated network wide.', 'really-simple-ssl');
|
93 |
+
} else {
|
94 |
+
echo ' '.__('SSL is activated per site.', 'really-simple-ssl');
|
95 |
+
}
|
96 |
+
}
|
97 |
|
98 |
+
public function add_multisite_notices($notices) {
|
99 |
+
|
100 |
+
//only on network
|
101 |
+
if ( !is_network_admin()) return $notices;
|
102 |
+
|
103 |
+
$unset_array = array(
|
104 |
+
'mixed_content_fixer_detected',
|
105 |
+
'hsts_enabled',
|
106 |
+
'secure_cookies_set',
|
107 |
+
'mixed_content_scan',
|
108 |
+
'elementor',
|
109 |
+
'divi',
|
110 |
+
'wordpress_redirect',
|
111 |
+
);
|
112 |
+
|
113 |
+
foreach ( $unset_array as $unset_item ) {
|
114 |
+
unset( $notices[$unset_item] );
|
115 |
+
}
|
116 |
+
|
117 |
+
$notices['ssl_enabled'] = array(
|
118 |
+
'callback' => 'RSSSL()->rsssl_multisite->ssl_activation_status',
|
119 |
+
'score' => 30,
|
120 |
+
'output' => array(
|
121 |
+
'ssl-networkwide' => array(
|
122 |
+
'msg' =>__('SSL is enabled networkwide.', 'really-simple-ssl'),
|
123 |
+
'icon' => 'success'
|
124 |
+
),
|
125 |
+
'ssl-per-site' => array(
|
126 |
+
'msg' =>__('SSL is enabled per site.', 'really-simple-ssl'),
|
127 |
+
'icon' => 'success'
|
128 |
+
),
|
129 |
+
'ssl-not-enabled' => array(
|
130 |
+
'msg' => __('SSL is not enabled yet', 'really-simple-ssl'),
|
131 |
+
'icon' => 'open',
|
132 |
+
),
|
133 |
+
),
|
134 |
+
);
|
135 |
+
|
136 |
+
//we don't need an no ssl warning on multisite
|
137 |
+
unset( $notices['ssl_detected']['output']['no-ssl-detected'] );
|
138 |
+
|
139 |
+
$notices['multisite_server_variable_warning'] = array(
|
140 |
+
'callback' => 'RSSSL()->rsssl_multisite->multisite_server_variable_warning',
|
141 |
+
'score' => 30,
|
142 |
+
'output' => array(
|
143 |
+
'no-server-variable' => array(
|
144 |
+
'msg' => __('You run a Multisite installation with subfolders, which prevents this plugin from fixing your missing server variable in the wp-config.php.', 'really-simple-ssl') . " "
|
145 |
+
.__('Because the $_SERVER["HTTPS"] variable is not set, your website may experience redirect loops.', 'really-simple-ssl') . " "
|
146 |
+
.__('Activate networkwide to fix this.', 'really-simple-ssl'),
|
147 |
+
'icon' => 'warning'
|
148 |
+
),
|
149 |
+
),
|
150 |
+
);
|
151 |
+
|
152 |
+
$notices['subdomains_no_wildcard'] = array(
|
153 |
+
'callback' => 'RSSSL()->rsssl_multisite->subdomains_no_wildcard',
|
154 |
+
'score' => 30,
|
155 |
+
'output' => array(
|
156 |
+
'subdomains-no-wildcard' => array(
|
157 |
+
'msg' => __("You run a Multisite installation with subdomains, but your site doesn't have a wildcard certificate.", 'really-simple-ssl') . " "
|
158 |
+
. __("This leads to issues when activating SSL networkwide since subdomains will be forced over SSL as well while they don't have a valid certificate.", 'really-simple-ssl') . " "
|
159 |
+
. __("Activate SSL per site or install a wildcard certificate to fix this.", 'really-simple-ssl'),
|
160 |
+
'icon' => 'warning',
|
161 |
+
'dismissible' => true,
|
162 |
+
),
|
163 |
+
),
|
164 |
+
);
|
165 |
+
return $notices;
|
166 |
+
}
|
167 |
+
|
168 |
+
/**
|
169 |
+
* Get string success or fail network wide or per site
|
170 |
+
* @return string
|
171 |
+
*/
|
172 |
+
|
173 |
+
public function ssl_activation_status(){
|
174 |
+
|
175 |
+
if ( $this->selected_networkwide_or_per_site ) {
|
176 |
+
if ( $this->ssl_enabled_networkwide ){
|
177 |
+
return 'ssl-networkwide';
|
178 |
+
} else {
|
179 |
+
return 'ssl-per-site';
|
180 |
+
}
|
181 |
+
} else {
|
182 |
+
return 'ssl-not-enabled';
|
183 |
+
}
|
184 |
+
}
|
185 |
+
|
186 |
+
/**
|
187 |
+
* Check if site has a server var issue.
|
188 |
+
* @return string
|
189 |
+
*/
|
190 |
+
|
191 |
+
public function multisite_server_variable_warning(){
|
192 |
+
if (!$this->ssl_enabled_networkwide && $this->selected_networkwide_or_per_site && $this->is_multisite_subfolder_install()) {
|
193 |
+
//with no server variables, the website could get into a redirect loop.
|
194 |
+
if (RSSSL()->really_simple_ssl->no_server_variable) {
|
195 |
+
return 'no-server-variable';
|
196 |
+
}
|
197 |
+
}
|
198 |
+
return 'success';
|
199 |
+
}
|
200 |
+
|
201 |
+
/**
|
202 |
+
* Check if we have a subdomains setup, but no wildcard
|
203 |
+
* @return string
|
204 |
+
*/
|
205 |
+
|
206 |
+
public function subdomains_no_wildcard(){
|
207 |
+
|
208 |
+
if (!RSSSL()->really_simple_ssl->ssl_enabled && !$this->is_multisite_subfolder_install() && !RSSSL()->rsssl_certificate->is_wildcard() && !get_site_option("rsssl_wildcard_message_shown")) {
|
209 |
+
return 'subdomains-no-wildcard';
|
210 |
+
}
|
211 |
+
return 'success';
|
212 |
+
}
|
213 |
+
|
214 |
+
/**
|
215 |
+
* Add settings link on plugins overview page
|
216 |
+
* @param array $links
|
217 |
+
* @since 2.0
|
218 |
+
* @access public
|
219 |
+
* @return array
|
220 |
+
*/
|
221 |
+
|
222 |
+
public function plugin_settings_link($links)
|
223 |
+
{
|
224 |
+
$settings_link = '<a href="' . admin_url("options-general.php?page=rlrsssl_really_simple_ssl") . '">' . __("Settings", "really-simple-ssl") . '</a>';
|
225 |
+
array_unshift($links, $settings_link);
|
226 |
+
|
227 |
+
if ( apply_filters('rsssl_settings_link', 'free') === 'free' ) {
|
228 |
+
$support = '<a target="_blank" href="https://wordpress.org/support/plugin/really-simple-ssl/">' . __('Support', 'really-simple-ssl') . '</a>';
|
229 |
+
} else {
|
230 |
+
$support = '<a target="_blank" href="https://really-simple-ssl.com/support">' . __('Premium Support', 'really-simple-ssl') . '</a>';
|
231 |
+
}
|
232 |
+
array_unshift($links, $support);
|
233 |
+
|
234 |
+
if ( ! defined( 'rsssl_pro_version' ) ) {
|
235 |
+
$upgrade_link = '<a style="color:#f8be2e;font-weight:bold" target="_blank" href="https://really-simple-ssl.com/pro/#multisite">'
|
236 |
+
. __( 'Upgrade to premium', 'really-simple-ssl' ) . '</a>';
|
237 |
+
array_unshift( $links, $upgrade_link );
|
238 |
+
}
|
239 |
+
return $links;
|
240 |
+
}
|
241 |
+
|
242 |
+
/**
|
243 |
+
* When a new site is added, maybe activate SSL as well.
|
244 |
+
*
|
245 |
+
* @param int $blog_id
|
246 |
+
* @param bool $user_id
|
247 |
+
* @param bool $domain
|
248 |
+
* @param bool $path
|
249 |
+
* @param bool $site_id
|
250 |
+
* @param bool $meta
|
251 |
+
*/
|
252 |
|
253 |
public function maybe_activate_ssl_in_new_blog_deprecated($blog_id, $user_id=false, $domain=false, $path=false, $site_id=false, $meta=false)
|
254 |
{
|
|
|
255 |
if ($this->ssl_enabled_networkwide) {
|
256 |
$site = get_blog_details($blog_id);
|
257 |
$this->switch_to_blog_bw_compatible($site);
|
258 |
RSSSL()->really_simple_ssl->activate_ssl();
|
259 |
+
restore_current_blog();
|
260 |
}
|
261 |
}
|
262 |
|
263 |
/**
|
264 |
* Activate SSl in new block
|
265 |
* @since 3.1.6
|
266 |
+
* @param $site
|
267 |
* @return void
|
268 |
*/
|
269 |
|
270 |
public function maybe_activate_ssl_in_new_blog($site)
|
271 |
{
|
|
|
272 |
if ($this->ssl_enabled_networkwide) {
|
273 |
$this->switch_to_blog_bw_compatible($site);
|
274 |
RSSSL()->really_simple_ssl->activate_ssl();
|
275 |
+
restore_current_blog();
|
276 |
}
|
277 |
}
|
278 |
|
322 |
|
323 |
}
|
324 |
|
325 |
+
/**
|
|
|
326 |
Add network menu for SSL
|
327 |
Only when plugin is network activated.
|
|
|
328 |
*/
|
329 |
|
330 |
public function add_multisite_menu()
|
331 |
{
|
332 |
if (!$this->plugin_network_wide_active()) return;
|
333 |
|
334 |
+
register_setting('rsssl_network_options', 'rsssl_options');
|
335 |
+
add_settings_section('rsssl_network_settings', __("Settings", "really-simple-ssl"), array($this, 'section_text'), "really-simple-ssl");
|
336 |
+
$help = rsssl_help::this()->get_help_tip(__("Select to enable SSL networkwide or per site.", "really-simple-ssl"), true );
|
337 |
+
add_settings_field('id_ssl_enabled_networkwide', $help.__("Enable SSL", "really-simple-ssl"), array($this, 'get_option_enable_multisite'), "really-simple-ssl", 'rsssl_network_settings');
|
338 |
+
add_submenu_page('settings.php', "SSL", "SSL", 'manage_options', "really-simple-ssl", array(&$this, 'settings_tab'));
|
|
|
339 |
}
|
340 |
|
341 |
+
/**
|
342 |
Shows the content of the multisite menu page
|
343 |
*/
|
344 |
|
345 |
+
public function section_text() {}
|
|
|
|
|
|
|
346 |
|
347 |
public function get_option_enable_multisite()
|
348 |
{
|
349 |
+
|
350 |
?>
|
351 |
<select name="rlrsssl_network_options[ssl_enabled_networkwide]">
|
352 |
<?php if (!$this->selected_networkwide_or_per_site) { ?>
|
353 |
+
<option value="-1" <?php if (!$this->selected_networkwide_or_per_site) echo "selected"; ?>><?php _e("Choose option", "really-simple-ssl") ?>
|
354 |
<?php } ?>
|
355 |
+
<option value="1" <?php if ($this->selected_networkwide_or_per_site && $this->ssl_enabled_networkwide) echo "selected"; ?>><?php _e("networkwide", "really-simple-ssl") ?>
|
356 |
+
<option value="0" <?php if ($this->selected_networkwide_or_per_site && !$this->ssl_enabled_networkwide) echo "selected"; ?>><?php _e("per site", "really-simple-ssl") ?>
|
357 |
</select>
|
358 |
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
359 |
}
|
360 |
|
361 |
|
362 |
+
/**
|
363 |
+
* Build the settings page
|
364 |
+
*
|
365 |
+
* @since 2.0
|
366 |
+
*
|
367 |
+
* @access public
|
368 |
+
*
|
369 |
+
*/
|
370 |
+
|
371 |
+
public function general_grid(){
|
372 |
+
$grid_items = array(
|
373 |
+
'progress' =>array(
|
374 |
+
'title' => __("Your progress", "really-simple-ssl"),
|
375 |
+
'header' => rsssl_template_path . 'progress-header.php',
|
376 |
+
'content' => rsssl_template_path . 'progress.php',
|
377 |
+
'footer' => rsssl_template_path . 'progress-footer.php',
|
378 |
+
'class' => 'regular rsssl-progress',
|
379 |
+
'type' => 'all',
|
380 |
+
),
|
381 |
+
'ms_settings' => array(
|
382 |
+
'title' => __("Settings", "really-simple-ssl"),
|
383 |
+
'header' => rsssl_template_path . 'header.php',
|
384 |
+
'content' => rsssl_template_path . 'ms-settings.php',
|
385 |
+
'footer' => rsssl_template_path . 'settings-footer.php',
|
386 |
+
'class' => ' settings',
|
387 |
+
'type' => 'settings',
|
388 |
+
),
|
389 |
+
'support' => array(
|
390 |
+
'title' => __("Support forum", "really-simple-ssl"),
|
391 |
+
'header' => '',
|
392 |
+
'content' => rsssl_template_path . 'support.php',
|
393 |
+
'footer' => rsssl_template_path . 'support-footer.php',
|
394 |
+
'type' => 'tasks',
|
395 |
+
'class' => 'half-height',
|
396 |
+
),
|
397 |
+
'plugins' => array(
|
398 |
+
'title' => __("Our plugins", "really-simple-ssl"),
|
399 |
+
'header' => rsssl_template_path . 'header.php',
|
400 |
+
'content' => rsssl_template_path . 'other-plugins.php',
|
401 |
+
'footer' => '',
|
402 |
+
'class' => 'half-height no-border no-background upsell-grid-container',
|
403 |
+
'type' => 'plugins',
|
404 |
+
'can_hide' => false,
|
405 |
+
),
|
406 |
+
);
|
407 |
+
$grid_items = apply_filters( 'rsssl_grid_items_ms', $grid_items );
|
408 |
+
|
409 |
+
$defaults = array(
|
410 |
+
'title' => '',
|
411 |
+
'header' => rsssl_template_path . 'header.php',
|
412 |
+
'content' => '',
|
413 |
+
'footer' => '',
|
414 |
+
'class' => '',
|
415 |
+
'type' => 'plugins',
|
416 |
+
'can_hide' => true,
|
417 |
+
'instructions' => false,
|
418 |
+
);
|
419 |
+
foreach ($grid_items as $key => $grid_item ) {
|
420 |
+
$grid_items[$key] = wp_parse_args($grid_item, $defaults);
|
421 |
+
}
|
422 |
+
return $grid_items;
|
423 |
+
}
|
424 |
+
|
425 |
+
public function settings_tab()
|
426 |
{
|
427 |
if (isset($_GET['updated'])): ?>
|
428 |
<div id="message" class="updated notice is-dismissible">
|
429 |
+
<p><?php _e('Options saved.', 'really-simple-ssl') ?></p>
|
430 |
+
</div>
|
431 |
<?php endif; ?>
|
432 |
+
|
433 |
+
<div class="nav-tab-wrapper">
|
434 |
+
<div class="rsssl-logo-container">
|
435 |
+
<div id="rsssl-logo"><img height="50px" src="<?php echo rsssl_url?>/assets/really-simple-ssl-logo.svg" alt="logo"></div>
|
436 |
+
</div>
|
437 |
+
|
438 |
+
|
439 |
+
<div class="header-links">
|
440 |
+
<div class="documentation">
|
441 |
+
<a href="https://really-simple-ssl.com/knowledge-base" target="_blank" class="<?php if (defined('rsssl_pro_version')) echo "button button-primary"?>"><?php _e("Documentation", "really-simple-ssl");?></a>
|
442 |
+
</div>
|
443 |
+
<div class="header-upsell">
|
444 |
+
<?php if (defined('rsssl_pro_version')) { ?>
|
445 |
+
<?php } else { ?>
|
446 |
+
<div class="documentation">
|
447 |
+
<a href="https://wordpress.org/support/plugin/really-simple-ssl/" class="button button-primary" target="_blank"><?php _e("Support", "really-simple-ssl") ?></a>
|
448 |
+
</div>
|
449 |
+
<?php } ?>
|
450 |
+
</div>
|
451 |
+
</div>
|
452 |
+
|
453 |
+
</div>
|
454 |
+
|
455 |
+
<div class="rsssl-container">
|
456 |
+
<div class="rsssl-main"><?php
|
457 |
+
RSSSL()->really_simple_ssl->render_grid($this->general_grid());
|
458 |
+
do_action("rsssl_configuration_page");
|
459 |
+
?>
|
460 |
+
</div>
|
461 |
</div>
|
462 |
+
|
463 |
<?php
|
464 |
}
|
465 |
|
470 |
|
471 |
public function update_network_options()
|
472 |
{
|
473 |
+
if (!isset($_POST['rsssl_ms_nonce']) || !wp_verify_nonce($_POST['rsssl_ms_nonce'], 'rsssl_ms_settings_update')) return;
|
474 |
+
if (!current_user_can('manage_options')) return;
|
475 |
+
|
476 |
+
do_action('rsssl_process_network_options');
|
477 |
|
478 |
if (isset($_POST["rlrsssl_network_options"])) {
|
479 |
$prev_ssl_enabled_networkwide = $this->ssl_enabled_networkwide;
|
480 |
$options = array_map(array($this, "sanitize_boolean"), $_POST["rlrsssl_network_options"]);
|
481 |
$options["selected_networkwide_or_per_site"] = true;
|
|
|
482 |
$this->ssl_enabled_networkwide = isset($options["ssl_enabled_networkwide"]) ? $options["ssl_enabled_networkwide"] : false;
|
|
|
483 |
$this->wp_redirect = isset($options["wp_redirect"]) ? $options["wp_redirect"] : false;
|
484 |
$this->htaccess_redirect = isset($options["htaccess_redirect"]) ? $options["htaccess_redirect"] : false;
|
|
|
485 |
$this->do_not_edit_htaccess = isset($options["do_not_edit_htaccess"]) ? $options["do_not_edit_htaccess"] : false;
|
486 |
$this->autoreplace_mixed_content = isset($options["autoreplace_mixed_content"]) ? $options["autoreplace_mixed_content"] : false;
|
487 |
$this->javascript_redirect = isset($options["javascript_redirect"]) ? $options["javascript_redirect"] : false;
|
489 |
$this->mixed_content_admin = isset($options["mixed_content_admin"]) ? $options["mixed_content_admin"] : false;
|
490 |
$this->cert_expiration_warning = isset($options["cert_expiration_warning"]) ? $options["cert_expiration_warning"] : false;
|
491 |
$this->hide_menu_for_subsites = isset($options["hide_menu_for_subsites"]) ? $options["hide_menu_for_subsites"] : false;
|
|
|
|
|
492 |
$this->selected_networkwide_or_per_site = isset($options["selected_networkwide_or_per_site"]) ? $options["selected_networkwide_or_per_site"] : false;
|
|
|
493 |
|
494 |
+
$this->save_options();
|
495 |
|
496 |
+
if ($this->ssl_enabled_networkwide && !$prev_ssl_enabled_networkwide) {
|
497 |
+
//reset
|
498 |
+
$this->start_ssl_activation();
|
499 |
+
//enable SSL on all sites on the network
|
500 |
+
}
|
501 |
|
502 |
+
if (!$this->ssl_enabled_networkwide && $prev_ssl_enabled_networkwide ) {
|
503 |
+
//if we switch to per page, we deactivate SSL on all pages first, but only if the setting was changed.
|
504 |
+
$this->start_ssl_deactivation();
|
505 |
+
}
|
506 |
|
507 |
}
|
508 |
|
509 |
// At last we redirect back to our options page.
|
510 |
+
wp_redirect(add_query_arg(array('page' => "really-simple-ssl", 'updated' => 'true'), network_admin_url('settings.php')));
|
511 |
exit;
|
512 |
}
|
513 |
|
535 |
{
|
536 |
//prevent showing the review on edit screen, as gutenberg removes the class which makes it editable.
|
537 |
$screen = get_current_screen();
|
538 |
+
if ( $screen->base === 'post' ) return;
|
539 |
+
|
540 |
+
if (is_network_admin() && RSSSL()->really_simple_ssl->wpconfig_ok()) {
|
541 |
+
$class = "updated notice activate-ssl really-simple-plugins";
|
542 |
+
$title = __("Setup", "really-simple-ssl");
|
543 |
+
$content = '<h2>' . __("Some things can't be done automatically. Before you migrate, please check for: ", "really-simple-ssl") . '</h2>';
|
544 |
+
$content .= '<ul>
|
545 |
+
<li>'. __("Http references in your .css and .js files: change any http:// into https://", "really-simple-ssl") .'</li>
|
546 |
+
<li>'. __("Images, stylesheets or scripts from a domain without an SSL certificate: remove them or move to your own server.", "really-simple-ssl") .'</li>
|
547 |
+
</ul>';
|
548 |
+
$content .= __('You can also let the automatic scan of the pro version handle this for you, and get premium support and increased security with HSTS included.', 'really-simple-ssl') . " "
|
549 |
+
. '<a target="_blank"
|
550 |
+
href="https://really-simple-ssl.com/pro-multisite">' . __("Check out Really Simple SSL Premium", "really-simple-ssl") . '</a>' . "<br>";
|
551 |
+
|
552 |
+
$footer = '<form action="" method="post">
|
553 |
+
'. wp_nonce_field('rsssl_nonce', 'rsssl_nonce').'
|
554 |
+
<input type="submit" class="button button-primary"
|
555 |
+
value="'. __("Activate SSL networkwide", "really-simple-ssl").'"
|
556 |
+
id="rsssl_do_activate_ssl_networkwide" name="rsssl_do_activate_ssl_networkwide">
|
557 |
+
<input type="submit" class="button button-primary"
|
558 |
+
value="'. __("Activate SSL per site", "really-simple-ssl").'"
|
559 |
+
id="rsssl_do_activate_ssl_per_site" name="rsssl_do_activate_ssl_per_site">
|
560 |
+
</form>';
|
561 |
+
$content .= __("Networkwide activation does not check if a site has an SSL certificate. It just migrates all sites to SSL.", "really-simple-ssl");
|
562 |
+
echo RSSSL()->really_simple_ssl->notice_html($class, $title, $content, $footer);
|
563 |
+
}
|
564 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
565 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
566 |
}
|
567 |
|
568 |
/**
|
573 |
public function show_pro()
|
574 |
{
|
575 |
?>
|
576 |
+
<p><?php _e('You can also let the automatic scan of the pro version handle this for you, and get premium support and increased security with HSTS included.', 'really-simple-ssl') ?>
|
577 |
<a target="_blank"
|
578 |
+
href="https://really-simple-ssl.com/pro-multisite"><?php _e("Check out Really Simple SSL Premium", "really-simple-ssl"); ?></a>
|
579 |
</p>
|
580 |
<?php
|
581 |
}
|
615 |
|
616 |
//enable SSL on all sites on the network
|
617 |
$this->start_ssl_activation();
|
|
|
618 |
}
|
619 |
|
620 |
if (isset($_POST['rsssl_do_activate_ssl_per_site'])) {
|
624 |
$this->save_options();
|
625 |
}
|
626 |
|
627 |
+
if (isset($_POST['rsssl_do_activate_ssl_networkwide']) || isset($_POST['rsssl_do_activate_ssl_per_site']) ) {
|
628 |
+
$url = add_query_arg( array(
|
629 |
+
"page" => "really-simple-ssl",
|
630 |
+
), network_admin_url( "settings.php" ) );
|
631 |
+
wp_safe_redirect( $url );
|
632 |
+
exit;
|
633 |
+
}
|
634 |
}
|
635 |
|
636 |
|
676 |
}
|
677 |
|
678 |
if (get_site_option('rsssl_ssl_deactivation_active')){
|
679 |
+
//$this->deactivate_ssl_networkwide();
|
680 |
+
$this->end_ssl_deactivation();
|
681 |
}
|
682 |
|
683 |
update_site_option('rsssl_run', false);
|
684 |
|
685 |
}
|
686 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
687 |
public function get_process_completed_percentage(){
|
688 |
$complete_count = get_site_option('rsssl_siteprocessing_progress');
|
|
|
689 |
$percentage = round(($complete_count/$this->get_total_blog_count())*100,0);
|
690 |
+
if ($percentage > 99) $percentage = 100;
|
691 |
+
|
692 |
+
return intval($percentage);
|
693 |
}
|
694 |
|
695 |
public function start_ssl_activation(){
|
731 |
update_site_option('rsssl_siteprocessing_progress', $current_offset+$nr_of_sites);
|
732 |
}
|
733 |
}
|
|
|
734 |
}
|
735 |
|
736 |
+
/**
|
737 |
+
* Activate SSL network wide
|
738 |
+
*/
|
739 |
|
740 |
public function activate_ssl_networkwide()
|
741 |
{
|
742 |
+
//run chunked
|
|
|
743 |
$nr_of_sites = 200;
|
744 |
$current_offset = get_site_option('rsssl_siteprocessing_progress');
|
745 |
|
757 |
update_site_option('rsssl_siteprocessing_progress', $current_offset+$nr_of_sites);
|
758 |
}
|
759 |
}
|
|
|
760 |
}
|
761 |
|
762 |
|
763 |
//change deprecated function depending on version.
|
764 |
+
/**
|
765 |
* Offset is used to chunk the site loops.
|
766 |
* But offset is not used in the pre 4.6 function.
|
767 |
*
|
774 |
$args = array(
|
775 |
'number' => $nr_of_sites,
|
776 |
'offset' => $offset,
|
|
|
777 |
);
|
778 |
$sites = ($wp_version >= 4.6) ? get_sites($args) : wp_get_sites();
|
779 |
return $sites;
|
780 |
}
|
781 |
|
782 |
+
/**
|
783 |
The new get_sites function returns an object.
|
784 |
|
785 |
*/
|
877 |
}
|
878 |
|
879 |
|
880 |
+
/**
|
881 |
* Checks if we are on a subfolder install. (domain.com/site1 )
|
882 |
*
|
883 |
* @since 2.2
|
945 |
|
946 |
public function listen_for_ssl_conversion_hook_switch()
|
947 |
{
|
948 |
+
//check if we are on ssl settings page
|
949 |
+
if (!$this->is_settings_page()) return;
|
950 |
+
//check user role
|
951 |
+
if (!current_user_can('manage_options')) return;
|
952 |
+
//check nonce
|
953 |
+
if (!isset($_GET['token']) || (!wp_verify_nonce($_GET['token'], 'run_ssl_to_admin_init'))) return;
|
954 |
+
//check for action
|
955 |
+
if (isset($_GET["action"]) && $_GET["action"] == 'ssl_conversion_hook_switch') {
|
956 |
+
update_site_option('run_ssl_process_hook_switched', true);
|
957 |
+
}
|
958 |
}
|
959 |
|
960 |
/**
|
970 |
{
|
971 |
//prevent showing the review on edit screen, as gutenberg removes the class which makes it editable.
|
972 |
$screen = get_current_screen();
|
973 |
+
if ( $screen->base === 'post' ) return;
|
974 |
+
|
975 |
+
if ( !$this->is_settings_page() ) {
|
976 |
+
$notices = RSSSL()->really_simple_ssl->get_notices_list( array('admin_notices'=>true) );
|
977 |
+
foreach ( $notices as $id => $notice ){
|
978 |
+
$notice = $notice['output'];
|
979 |
+
$class = ( $notice['status'] !== 'completed' ) ? 'error' : 'updated';
|
980 |
+
echo RSSSL()->really_simple_ssl->notice_html( $class.' '.$id, $notice['title'], $notice['msg'] );
|
981 |
+
}
|
|
|
|
|
|
|
|
|
|
|
982 |
}
|
983 |
|
984 |
+
/**
|
985 |
* ssl switch for sites processing active
|
986 |
*/
|
987 |
|
988 |
if ($this->ssl_process_active()) {
|
989 |
+
$class = "notice is-dismissible rlrsssl-fail";
|
990 |
+
$title = "Website conversion";
|
991 |
+
|
992 |
+
//In some cases the rsssl_ssl_process_hook hook can fail. Therefore we offer the option to switch the hook to admin_init when the conversion is stuck.
|
993 |
+
$token = wp_create_nonce('run_ssl_to_admin_init');
|
994 |
+
$run_ssl_process_hook_switch_link = network_admin_url("settings.php?page=really-simple-ssl&action=ssl_conversion_hook_switch&token=" . $token);
|
995 |
+
|
996 |
+
$link_open = '<a target="_self" href="' . $run_ssl_process_hook_switch_link . '">';
|
997 |
+
$link_close = '</a>';
|
998 |
+
$completed = $this->get_process_completed_percentage();
|
999 |
+
|
1000 |
+
if ($completed < 100){
|
1001 |
+
$class.=" error ";
|
1002 |
+
$content = sprintf(__("Conversion of websites %s percent complete.", "really-simple-ssl"), $completed) . " ";
|
1003 |
+
$content .= __("Site conversion in progress. Please refresh this page to check if the process has finished. It will proceed in the background.", "really-simple-ssl") . " ";
|
1004 |
+
$content .= sprintf(__("If the conversion does not proceed after a few minutes, click %shere%s to force the conversion process.", "really-simple-ssl"), $link_open, $link_close);
|
1005 |
+
} else {
|
1006 |
+
$class.=" updated ";
|
1007 |
+
$activation_active = get_site_option('rsssl_ssl_activation_active');
|
1008 |
+
$content = __("Conversion of websites completed.", "really-simple-ssl") . " ";
|
1009 |
+
if ($activation_active) {
|
1010 |
+
$content .= __("Really Simple SSL has converted all your websites to SSL.", "really-simple-ssl");
|
1011 |
+
} else {
|
1012 |
+
$content .= __("Really Simple SSL has converted all your websites to non SSL.", "really-simple-ssl");
|
1013 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1014 |
}
|
|
|
1015 |
|
1016 |
+
echo RSSSL()->really_simple_ssl->notice_html($class, $title, $content);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1017 |
}
|
|
|
1018 |
}
|
1019 |
|
1020 |
|
1087 |
|
1088 |
public function dismiss_success_message_callback()
|
1089 |
{
|
|
|
1090 |
check_ajax_referer('really-simple-ssl-dismiss', 'security');
|
|
|
1091 |
update_site_option("rsssl_success_message_shown", true);
|
1092 |
wp_die();
|
1093 |
}
|
1094 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1095 |
public function dismiss_wildcard_message_callback()
|
1096 |
{
|
|
|
1097 |
check_ajax_referer('really-simple-ssl-dismiss', 'security');
|
|
|
1098 |
update_site_option("rsssl_wildcard_message_shown", true);
|
1099 |
wp_die();
|
1100 |
}
|
1101 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1102 |
public function is_settings_page()
|
1103 |
{
|
1104 |
return (isset($_GET['page']) && $_GET['page'] == 'really-simple-ssl') ? true : false;
|
1105 |
}
|
1106 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1107 |
public function get_total_blog_count()
|
1108 |
{
|
1109 |
//Get the total blog count from all multisite networks
|
1122 |
}
|
1123 |
|
1124 |
} //class closure
|
1125 |
+
}
|
class-site-health.php
CHANGED
@@ -10,10 +10,10 @@ if (!class_exists("rsssl_site_health")) {
|
|
10 |
|
11 |
if ( isset( self::$_this ) ) {
|
12 |
wp_die( sprintf( __( '%s is a singleton class and you cannot create a second instance.', 'really-simple-ssl' ), get_class( $this ) ) );
|
13 |
-
|
14 |
}
|
15 |
|
16 |
-
|
|
|
17 |
|
18 |
self::$_this = $this;
|
19 |
}
|
@@ -22,45 +22,111 @@ if (!class_exists("rsssl_site_health")) {
|
|
22 |
return self::$_this;
|
23 |
}
|
24 |
|
25 |
-
public function
|
26 |
$tests['direct']['really-simple-ssl'] = array(
|
27 |
'label' => __( 'Really Simple SSL HSTS test' ),
|
28 |
-
'test' => array($this, "
|
29 |
);
|
30 |
|
31 |
return $tests;
|
32 |
}
|
33 |
|
34 |
-
public function
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
'label' => __( 'SSL' ),
|
40 |
'color' => 'blue',
|
41 |
-
),
|
42 |
-
'description' => sprintf(
|
43 |
-
'<p>%s</p>',
|
44 |
-
__( 'You have set a 301 redirect to SSL. This is important for SEO purposes', 'really-simple-ssl' )
|
45 |
-
),
|
46 |
-
'actions' => '',
|
47 |
-
'test' => 'really-simple-ssl',
|
48 |
-
);
|
49 |
-
|
50 |
-
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) {
|
51 |
-
$result['status'] = 'recommended';
|
52 |
-
$result['label'] = __( '301 .htaccess redirect is not enabled.' , 'really-simple-ssl' );
|
53 |
-
$result['description'] = sprintf(
|
54 |
-
'<p>%s</p>',
|
55 |
-
__( 'The 301 .htaccess redirect is often the fastest and most reliable redirect option.' )
|
56 |
-
);
|
57 |
-
$result['actions'] .= sprintf(
|
58 |
-
'<p><a href="%s">%s</a></p>',
|
59 |
-
esc_url( admin_url("options-general.php?page=rlrsssl_really_simple_ssl&tab=settings") ),
|
60 |
-
__( 'Enable 301 .htaccess redirect', 'really-simple-ssl' )
|
61 |
);
|
|
|
62 |
}
|
63 |
-
|
64 |
return $result;
|
65 |
|
66 |
}
|
10 |
|
11 |
if ( isset( self::$_this ) ) {
|
12 |
wp_die( sprintf( __( '%s is a singleton class and you cannot create a second instance.', 'really-simple-ssl' ), get_class( $this ) ) );
|
|
|
13 |
}
|
14 |
|
15 |
+
|
16 |
+
add_filter( 'site_status_tests', array($this, 'rsssl_health_check' ) );
|
17 |
|
18 |
self::$_this = $this;
|
19 |
}
|
22 |
return self::$_this;
|
23 |
}
|
24 |
|
25 |
+
public function rsssl_health_check( $tests ) {
|
26 |
$tests['direct']['really-simple-ssl'] = array(
|
27 |
'label' => __( 'Really Simple SSL HSTS test' ),
|
28 |
+
'test' => array($this, "rsssl_health_test"),
|
29 |
);
|
30 |
|
31 |
return $tests;
|
32 |
}
|
33 |
|
34 |
+
public function rsssl_health_test() {
|
35 |
+
|
36 |
+
|
37 |
+
if (is_multisite() && is_super_admin() ){
|
38 |
+
$url = add_query_arg(array('page' => 'really-simple-ssl'), network_admin_url('settings.php'));
|
39 |
+
} else {
|
40 |
+
$url = add_query_arg(array('page' => 'rlrsssl_really_simple_ssl'), admin_url("options-general.php") );
|
41 |
+
}
|
42 |
+
|
43 |
+
if (!RSSSL()->really_simple_ssl->ssl_enabled) {
|
44 |
+
if ( RSSSL()->really_simple_ssl->site_has_ssl ) {
|
45 |
+
$result['status'] = 'recommended';
|
46 |
+
$result['label'] = __( 'SSL is not enabled.', 'really-simple-ssl' );
|
47 |
+
$result['description'] = sprintf(
|
48 |
+
'<p>%s</p>',
|
49 |
+
__( 'Really Simple SSL detected an SSL certificate, but has not been configured to enforce SSL.',
|
50 |
+
'really-simple-ssl' )
|
51 |
+
);
|
52 |
+
$result['actions'] .= sprintf(
|
53 |
+
'<p><a href="%s">%s</a></p>',
|
54 |
+
$url ,
|
55 |
+
__( 'Activate SSL', 'really-simple-ssl' )
|
56 |
+
);
|
57 |
+
} else {
|
58 |
+
$result['status'] = 'recommended';
|
59 |
+
$result['label'] = __( 'No SSL detected.' , 'really-simple-ssl' );
|
60 |
+
$result['description'] = sprintf(
|
61 |
+
'<p>%s</p>',
|
62 |
+
__( 'Really Simple SSL is installed, but no valid SSL certificate is detected.', 'really-simple-ssl' )
|
63 |
+
);
|
64 |
+
}
|
65 |
+
} else {
|
66 |
+
if (!RSSSL()->really_simple_ssl->has_301_redirect()) {
|
67 |
+
$result['status'] = 'recommended';
|
68 |
+
$result['label'] = __( 'No 301 redirect to SSL not enabled.' , 'really-simple-ssl' );
|
69 |
+
$result['description'] = sprintf(
|
70 |
+
'<p>%s</p>',
|
71 |
+
__( 'To ensure all traffic passes through SSL, please enable a 301 redirect.', 'really-simple-ssl' )
|
72 |
+
);
|
73 |
+
$result['actions'] .= sprintf(
|
74 |
+
'<p><a href="%s">%s</a></p>',
|
75 |
+
$url,
|
76 |
+
__( 'Enable 301 redirect', 'really-simple-ssl' )
|
77 |
+
);
|
78 |
+
} else if ( !is_multisite() && RSSSL()->rsssl_server->uses_htaccess() && !RSSSL()->really_simple_ssl->htaccess_redirect) {
|
79 |
+
$result['status'] = 'recommended';
|
80 |
+
$result['label'] = __( '301 .htaccess redirect is not enabled.' , 'really-simple-ssl' );
|
81 |
+
$result['description'] = sprintf(
|
82 |
+
'<p>%s</p>',
|
83 |
+
__( 'The 301 .htaccess redirect is the fastest and most reliable redirect option.', 'really-simple-ssl' )
|
84 |
+
);
|
85 |
+
$result['actions'] .= sprintf(
|
86 |
+
'<p><a href="%s">%s</a></p>',
|
87 |
+
$url,
|
88 |
+
__( 'Enable 301 .htaccess redirect', 'really-simple-ssl' )
|
89 |
+
);
|
90 |
+
} else {
|
91 |
+
$result = array(
|
92 |
+
'label' => __( '301 SSL redirect enabled', 'really-simple-ssl' ),
|
93 |
+
'status' => 'good',
|
94 |
+
'description' => sprintf(
|
95 |
+
'<p>%s</p>',
|
96 |
+
__( 'You have set a 301 redirect to SSL. This is important for SEO purposes', 'really-simple-ssl' )
|
97 |
+
),
|
98 |
+
'actions' => '',
|
99 |
+
);
|
100 |
+
}
|
101 |
+
|
102 |
+
//returns empty for sites without .htaccess, or if all headers are already in use
|
103 |
+
$recommended_headers = RSSSL()->really_simple_ssl->get_recommended_security_headers();
|
104 |
+
if (!empty($recommended_headers)) {
|
105 |
+
$style = '<style>.rsssl-sec-headers-list li {list-style-type:disc;margin-left:20px;}</style>';
|
106 |
+
$list = '<ul class="rsssl-sec-headers-list"><li>'.implode('</li><li>', $recommended_headers ).'</li></ul>';
|
107 |
+
$result['status'] = 'recommended';
|
108 |
+
$result['label'] = __( 'Missing security headers' , 'really-simple-ssl' );
|
109 |
+
$result['description'] = sprintf(
|
110 |
+
'<p>%s</p>',
|
111 |
+
__( 'Your .htaccess file does not contain all recommended security headers.', 'really-simple-ssl' ).$style.$list
|
112 |
+
);
|
113 |
+
$result['actions'] .= sprintf(
|
114 |
+
'<p><a href="%s" target="_blank">%s</a></p>',
|
115 |
+
'https://really-simple-ssl.com/everything-you-need-to-know-about-security-headers/',
|
116 |
+
__( 'Lear more about security headers', 'really-simple-ssl' )
|
117 |
+
);
|
118 |
+
}
|
119 |
+
}
|
120 |
+
|
121 |
+
|
122 |
+
|
123 |
+
if (isset($result['status'])) {
|
124 |
+
$result['badge'] = array(
|
125 |
'label' => __( 'SSL' ),
|
126 |
'color' => 'blue',
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
127 |
);
|
128 |
+
$result['test']= 'really-simple-ssl';
|
129 |
}
|
|
|
130 |
return $result;
|
131 |
|
132 |
}
|
css/main-rtl.css
CHANGED
@@ -277,7 +277,7 @@
|
|
277 |
.rsssl-tooltip-left:after,
|
278 |
.rsssl-tooltip-right:after {
|
279 |
margin-right: 0;
|
280 |
-
margin-bottom: -
|
281 |
}
|
282 |
|
283 |
/* Styling for the sidebar in the admin tab of the free plugin */
|
277 |
.rsssl-tooltip-left:after,
|
278 |
.rsssl-tooltip-right:after {
|
279 |
margin-right: 0;
|
280 |
+
margin-bottom: -66px;
|
281 |
}
|
282 |
|
283 |
/* Styling for the sidebar in the admin tab of the free plugin */
|
css/main-rtl.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.rsssl-main{flex:1;width:80%;float:right}.rsssl-sidebar img{max-width:100%}.nav-tab-active{background:#fff}.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-right-radius:.55rem;border-top-left-radius:.55rem}.really-simple-ssl-table tr:last-child{margin-bottom:0;border-bottom-right-radius:.55rem;border-bottom-left-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-right:4px !important;display:inline-block;vertical-align:top;box-sizing:border-box;margin:1px 2px -1px 0;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%;right:50%}[data-rsssl-tooltip]:before,.rsssl-tooltip:before,.rsssl-tooltip-top:before{margin-right:-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-right:-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{left:100%;bottom:50%;right:auto}.rsssl-tooltip-left:before{margin-right:0;margin-left:-12px;margin-bottom:0;border-top-color:transparent;border-right-color:#000;border-right-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;right: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%;right:100%}.rsssl-tooltip-right:before{margin-bottom:0;margin-right:-12px;border-top-color:transparent;border-left-color:#000;border-left-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-right:0;margin-bottom:-
|
1 |
+
.rsssl-main{flex:1;width:80%;float:right}.rsssl-sidebar img{max-width:100%}.nav-tab-active{background:#fff}.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-right-radius:.55rem;border-top-left-radius:.55rem}.really-simple-ssl-table tr:last-child{margin-bottom:0;border-bottom-right-radius:.55rem;border-bottom-left-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-right:4px !important;display:inline-block;vertical-align:top;box-sizing:border-box;margin:1px 2px -1px 0;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%;right:50%}[data-rsssl-tooltip]:before,.rsssl-tooltip:before,.rsssl-tooltip-top:before{margin-right:-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-right:-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{left:100%;bottom:50%;right:auto}.rsssl-tooltip-left:before{margin-right:0;margin-left:-12px;margin-bottom:0;border-top-color:transparent;border-right-color:#000;border-right-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;right: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%;right:100%}.rsssl-tooltip-right:before{margin-bottom:0;margin-right:-12px;border-top-color:transparent;border-left-color:#000;border-left-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-right:0;margin-bottom:-66px}.rsssl-really-simple-plugins-logo{background-color:#ececec;margin-right:-15px;margin-left:-15px}.rsssl-sidebar{width:240px;margin-top:20px;padding-right:15px;padding-left:15px;margin-left:15px;padding-bottom:15px;background-color:#ececec}.rsssl-sidebar-single-content-container{min-height:125px;padding-bottom:35px;margin-bottom:10px;background-color:#fff;width:100%;border-radius:3%}.rsssl-sidebar-single-content-container-pro{background-color:#fff;min-height:125px;padding-bottom:35px;margin-bottom:10px;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-left:7px;font-weight:700;font-size:.8em;float:left;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:right;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{background-color:#fff;width:40%;padding-right:25px;float:right;margin-left:25px}.rsssl-sidebar-single-content-container-pro{width:40%;padding-right: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:left;font-size:inherit;height:25px;-webkit-border-radius:12px;-moz-border-radius:12px;border-radius:12px;border:0;background-color:#000;color:white;margin-left:5px}.rsssl-sidebar-content{float:right;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:left;font-size:inherit;height:25px;border-radius:12px;border:0;background-color:#000;color:white;margin-left:5px}.rsssl-more-info-button{border:0;border-radius:50px;clear:both;margin-top:10px}.rsssl-button-deactivate-keep-ssl{margin-left:15px}.rsssl-switch{position:relative;display:inline-block;width:40px;height:21px}.rsssl-switch input{display:none}.rsssl-slider{position:absolute;cursor:pointer;top:0;right:0;left:0;bottom:0;background-color:#ccc;-webkit-transition:.4s;transition:.4s}.rsssl-slider:before{position:absolute;content:"";height:15px;width:15px;right: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-right:6px}.rsssl-dashboard-plusone{margin-right:8px}.rsssl-highlight{border-right: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-right: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}
|
css/main.css
CHANGED
@@ -1,59 +1,95 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
.rsssl-main {
|
2 |
flex: 1;
|
3 |
width: 80%;
|
4 |
-
float:left;
|
5 |
}
|
6 |
-
|
7 |
.rsssl-sidebar img {
|
8 |
-
max-width:100%;
|
9 |
/*height:inherit;*/
|
10 |
}
|
11 |
-
|
12 |
-
.nav-tab-active {
|
13 |
-
background: #fff;
|
14 |
-
}
|
15 |
-
|
16 |
.really-simple-ssl-table {
|
17 |
display: flex;
|
18 |
flex-direction: column;
|
19 |
-
max-width: 1140px;
|
20 |
}
|
21 |
-
|
22 |
.rsssl-table-td-main-content {
|
23 |
width: 100%;
|
24 |
}
|
25 |
-
|
26 |
.really-simple-ssl-table tr:first-child {
|
27 |
-
border-top-left-radius: .55rem;
|
28 |
-
border-top-right-radius: .55rem;
|
29 |
}
|
30 |
-
|
31 |
.really-simple-ssl-table tr:last-child {
|
32 |
margin-bottom: 0;
|
33 |
-
border-bottom-left-radius: .55rem;
|
34 |
-
border-bottom-right-radius: .55rem;
|
35 |
}
|
36 |
-
|
37 |
.really-simple-ssl-table tr {
|
38 |
position: relative;
|
39 |
-
|
40 |
-
padding:
|
41 |
-
margin-bottom: -1px;
|
42 |
background-color: #fff;
|
43 |
-
border: 1px solid rgba(0,0,0,.125);
|
44 |
}
|
45 |
-
|
46 |
.debug-log {
|
47 |
background-color: #fff;
|
48 |
-
padding:15px;
|
49 |
-
border:1px solid black;
|
50 |
}
|
51 |
-
|
52 |
.rsssl-icons {
|
53 |
-
width:15px;
|
54 |
-
height:15px;
|
55 |
}
|
56 |
-
|
57 |
.rsssl-update-count {
|
58 |
margin-left: 4px !important;
|
59 |
display: inline-block;
|
@@ -69,9 +105,8 @@
|
|
69 |
font-size: 11px;
|
70 |
line-height: 1.6;
|
71 |
text-align: center;
|
72 |
-
z-index: 26
|
73 |
}
|
74 |
-
|
75 |
/* rsssl-rsssl-tooltip for settings page */
|
76 |
/* Base styles for the element that has a rsssl-tooltip */
|
77 |
[data-rsssl-tooltip],
|
@@ -79,7 +114,6 @@
|
|
79 |
position: relative;
|
80 |
cursor: pointer;
|
81 |
}
|
82 |
-
|
83 |
/* Base styles for the entire tooltip */
|
84 |
[data-rsssl-tooltip]:before,
|
85 |
[data-rsssl-tooltip]:after,
|
@@ -90,24 +124,14 @@
|
|
90 |
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
|
91 |
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
|
92 |
opacity: 0;
|
93 |
-
-webkit-transition:
|
94 |
-
|
95 |
-
|
96 |
-
-webkit-transform 0.2s cubic-bezier(0.71, 1.7, 0.77, 1.24);
|
97 |
-
-moz-transition:
|
98 |
-
opacity 0.2s ease-in-out,
|
99 |
-
visibility 0.2s ease-in-out,
|
100 |
-
-moz-transform 0.2s cubic-bezier(0.71, 1.7, 0.77, 1.24);
|
101 |
-
transition:
|
102 |
-
opacity 0.2s ease-in-out,
|
103 |
-
visibility 0.2s ease-in-out,
|
104 |
-
transform 0.2s cubic-bezier(0.71, 1.7, 0.77, 1.24);
|
105 |
-webkit-transform: translate3d(0, 0, 0);
|
106 |
-
-moz-transform:
|
107 |
-
transform:
|
108 |
pointer-events: none;
|
109 |
}
|
110 |
-
|
111 |
/* Show the entire rsssl-tooltip on hover and focus */
|
112 |
[data-rsssl-tooltip]:hover:before,
|
113 |
[data-rsssl-tooltip]:hover:after,
|
@@ -122,7 +146,6 @@
|
|
122 |
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
|
123 |
opacity: 1;
|
124 |
}
|
125 |
-
|
126 |
/* Base styles for the rsssl-tooltip's directional arrow */
|
127 |
.rsssl-tooltip:before,
|
128 |
[data-rsssl-tooltip]:before {
|
@@ -131,13 +154,12 @@
|
|
131 |
background: transparent;
|
132 |
content: "";
|
133 |
}
|
134 |
-
|
135 |
/* Base styles for the rsssl-tooltip's content area */
|
136 |
.rsssl-tooltip:after,
|
137 |
[data-rsssl-tooltip]:after {
|
138 |
z-index: 1000;
|
139 |
padding: 8px;
|
140 |
-
width:
|
141 |
background-color: #000;
|
142 |
background-color: hsla(0, 0%, 20%, 0.9);
|
143 |
color: #fff;
|
@@ -145,10 +167,11 @@
|
|
145 |
font-size: 14px;
|
146 |
line-height: 1.2;
|
147 |
}
|
148 |
-
|
149 |
/* Directions */
|
150 |
-
|
151 |
/* Top (default) */
|
|
|
|
|
|
|
152 |
[data-rsssl-tooltip]:before,
|
153 |
[data-rsssl-tooltip]:after,
|
154 |
.rsssl-tooltip:before,
|
@@ -158,7 +181,6 @@
|
|
158 |
bottom: 100%;
|
159 |
left: 50%;
|
160 |
}
|
161 |
-
|
162 |
[data-rsssl-tooltip]:before,
|
163 |
.rsssl-tooltip:before,
|
164 |
.rsssl-tooltip-top:before {
|
@@ -167,14 +189,12 @@
|
|
167 |
border-top-color: #000;
|
168 |
border-top-color: hsla(0, 0%, 20%, 0.9);
|
169 |
}
|
170 |
-
|
171 |
/* Horizontally align top/bottom rsssl-tooltips */
|
172 |
[data-rsssl-tooltip]:after,
|
173 |
.rsssl-tooltip:after,
|
174 |
.rsssl-tooltip-top:after {
|
175 |
margin-left: -80px;
|
176 |
}
|
177 |
-
|
178 |
[data-rsssl-tooltip]:hover:before,
|
179 |
[data-rsssl-tooltip]:hover:after,
|
180 |
[data-rsssl-tooltip]:focus:before,
|
@@ -188,18 +208,16 @@
|
|
188 |
.rsssl-tooltip-top:focus:before,
|
189 |
.rsssl-tooltip-top:focus:after {
|
190 |
-webkit-transform: translateY(-12px);
|
191 |
-
-moz-transform:
|
192 |
-
transform:
|
193 |
}
|
194 |
-
|
195 |
/* Left */
|
196 |
.rsssl-tooltip-left:before,
|
197 |
.rsssl-tooltip-left:after {
|
198 |
right: 100%;
|
199 |
-
bottom: 50
|
200 |
left: auto;
|
201 |
}
|
202 |
-
|
203 |
.rsssl-tooltip-left:before {
|
204 |
margin-left: 0;
|
205 |
margin-right: -12px;
|
@@ -208,16 +226,14 @@
|
|
208 |
border-left-color: #000;
|
209 |
border-left-color: hsla(0, 0%, 20%, 0.9);
|
210 |
}
|
211 |
-
|
212 |
.rsssl-tooltip-left:hover:before,
|
213 |
.rsssl-tooltip-left:hover:after,
|
214 |
.rsssl-tooltip-left:focus:before,
|
215 |
.rsssl-tooltip-left:focus:after {
|
216 |
-webkit-transform: translateX(-12px);
|
217 |
-
-moz-transform:
|
218 |
-
transform:
|
219 |
}
|
220 |
-
|
221 |
/* Bottom */
|
222 |
.rsssl-tooltip-bottom:before,
|
223 |
.rsssl-tooltip-bottom:after {
|
@@ -225,7 +241,6 @@
|
|
225 |
bottom: auto;
|
226 |
left: 50%;
|
227 |
}
|
228 |
-
|
229 |
.rsssl-tooltip-bottom:before {
|
230 |
margin-top: -12px;
|
231 |
margin-bottom: 0;
|
@@ -233,23 +248,20 @@
|
|
233 |
border-bottom-color: #000;
|
234 |
border-bottom-color: hsla(0, 0%, 20%, 0.9);
|
235 |
}
|
236 |
-
|
237 |
.rsssl-tooltip-bottom:hover:before,
|
238 |
.rsssl-tooltip-bottom:hover:after,
|
239 |
.rsssl-tooltip-bottom:focus:before,
|
240 |
.rsssl-tooltip-bottom:focus:after {
|
241 |
-webkit-transform: translateY(12px);
|
242 |
-
-moz-transform:
|
243 |
-
transform:
|
244 |
}
|
245 |
-
|
246 |
/* Right */
|
247 |
.rsssl-tooltip-right:before,
|
248 |
.rsssl-tooltip-right:after {
|
249 |
bottom: 50%;
|
250 |
left: 100%;
|
251 |
}
|
252 |
-
|
253 |
.rsssl-tooltip-right:before {
|
254 |
margin-bottom: 0;
|
255 |
margin-left: -12px;
|
@@ -257,37 +269,31 @@
|
|
257 |
border-right-color: #000;
|
258 |
border-right-color: hsla(0, 0%, 20%, 0.9);
|
259 |
}
|
260 |
-
|
261 |
.rsssl-tooltip-right:hover:before,
|
262 |
.rsssl-tooltip-right:hover:after,
|
263 |
.rsssl-tooltip-right:focus:before,
|
264 |
.rsssl-tooltip-right:focus:after {
|
265 |
-webkit-transform: translateX(12px);
|
266 |
-
-moz-transform:
|
267 |
-
transform:
|
268 |
}
|
269 |
-
|
270 |
/* Move directional arrows down a bit for left/right rsssl-tooltips */
|
271 |
.rsssl-tooltip-left:before,
|
272 |
.rsssl-tooltip-right:before {
|
273 |
top: 3px;
|
274 |
}
|
275 |
-
|
276 |
/* Vertically center rsssl-tooltip content for left/right rsssl-tooltips */
|
277 |
.rsssl-tooltip-left:after,
|
278 |
.rsssl-tooltip-right:after {
|
279 |
margin-left: 0;
|
280 |
-
margin-bottom: -
|
281 |
}
|
282 |
-
|
283 |
/* Styling for the sidebar in the admin tab of the free plugin */
|
284 |
-
|
285 |
.rsssl-really-simple-plugins-logo {
|
286 |
background-color: #ececec;
|
287 |
margin-left: -15px;
|
288 |
margin-right: -15px;
|
289 |
}
|
290 |
-
|
291 |
.rsssl-sidebar {
|
292 |
width: 240px;
|
293 |
margin-top: 20px;
|
@@ -297,7 +303,6 @@
|
|
297 |
padding-bottom: 15px;
|
298 |
background-color: #ECECEC;
|
299 |
}
|
300 |
-
|
301 |
.rsssl-sidebar-single-content-container {
|
302 |
min-height: 125px;
|
303 |
padding-bottom: 35px;
|
@@ -306,7 +311,6 @@
|
|
306 |
width: 100%;
|
307 |
border-radius: 3%;
|
308 |
}
|
309 |
-
|
310 |
.rsssl-sidebar-single-content-container-pro {
|
311 |
background-color: #fff;
|
312 |
min-height: 125px;
|
@@ -315,11 +319,9 @@
|
|
315 |
width: 100%;
|
316 |
border-radius: 3%;
|
317 |
}
|
318 |
-
|
319 |
.rsssl-sidebar-title h3 {
|
320 |
font-size: 0.9em;
|
321 |
}
|
322 |
-
|
323 |
.rsssl-sidebar-text-content-pro {
|
324 |
font-weight: 700;
|
325 |
font-size: 0.8em;
|
@@ -327,7 +329,6 @@
|
|
327 |
/*min-height: 100px;*/
|
328 |
margin: auto;
|
329 |
}
|
330 |
-
|
331 |
.rsssl-sidebar-text-content {
|
332 |
width: 45%;
|
333 |
padding-top: 5px;
|
@@ -337,35 +338,29 @@
|
|
337 |
float: right;
|
338 |
margin: 10px auto;
|
339 |
}
|
340 |
-
|
341 |
.rsssl-pro-image {
|
342 |
height: 30px;
|
343 |
margin-top: 6px;
|
344 |
}
|
345 |
-
|
346 |
.rsssl-sidebar-image-pro {
|
347 |
width: 90%;
|
348 |
margin: 10px;
|
349 |
}
|
350 |
-
|
351 |
.rsssl-sidebar-image {
|
352 |
width: 100px;
|
353 |
float: left;
|
354 |
padding: 10px;
|
355 |
height: 100px;
|
356 |
}
|
357 |
-
|
358 |
@media screen and (max-width: 1024px) and (min-width: 541px) {
|
359 |
/* Let the main container be 100% width again */
|
360 |
.rsssl-main {
|
361 |
width: 100%;
|
362 |
}
|
363 |
-
|
364 |
.rsssl-sidebar-title {
|
365 |
/*margin: auto;*/
|
366 |
text-align: center;
|
367 |
}
|
368 |
-
|
369 |
.rsssl-container {
|
370 |
flex-direction: column;
|
371 |
}
|
@@ -374,8 +369,8 @@
|
|
374 |
/*padding-left: 10%;*/
|
375 |
}
|
376 |
.rsssl-really-simple-plugins-logo {
|
377 |
-
|
378 |
-
|
379 |
.rsssl-sidebar-single-content-container {
|
380 |
background-color: #fff;
|
381 |
width: 40%;
|
@@ -383,13 +378,11 @@
|
|
383 |
float: left;
|
384 |
margin-right: 25px;
|
385 |
}
|
386 |
-
|
387 |
.rsssl-sidebar-single-content-container-pro {
|
388 |
width: 40%;
|
389 |
padding-left: 25px;
|
390 |
margin: auto auto 25px;
|
391 |
}
|
392 |
-
|
393 |
.rsssl-sidebar-um-text-content {
|
394 |
width: 40%;
|
395 |
}
|
@@ -397,7 +390,6 @@
|
|
397 |
display: none;
|
398 |
}
|
399 |
}
|
400 |
-
|
401 |
@media screen and (max-width: 540px) {
|
402 |
.rsssl-main {
|
403 |
width: 100%;
|
@@ -406,34 +398,30 @@
|
|
406 |
flex-direction: column;
|
407 |
}
|
408 |
.rsssl-sidebar {
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
}
|
413 |
.rsssl-sidebar-um-text-content {
|
414 |
width: 45%;
|
415 |
}
|
416 |
-
.rsssl-sidebar-single-content-container-pro {
|
417 |
-
|
418 |
-
}
|
419 |
.rsssl-sidebar-single-content-container {
|
420 |
padding-bottom: 10px;
|
421 |
}
|
422 |
}
|
423 |
-
|
424 |
.rsssl-sidebar h4 {
|
425 |
-
font-size:14px;
|
426 |
-
font-style:italic;
|
427 |
}
|
428 |
-
|
429 |
.rsssl-wrapper {
|
430 |
padding: 30px;
|
431 |
}
|
432 |
-
|
433 |
.rsssl-sidebar-list {
|
434 |
font-size: 0.9em;
|
435 |
}
|
436 |
-
|
437 |
#rsssl-premium-button-pro {
|
438 |
display: inline-table;
|
439 |
width: 40%;
|
@@ -449,12 +437,10 @@
|
|
449 |
color: white;
|
450 |
margin-right: 5px;
|
451 |
}
|
452 |
-
|
453 |
.rsssl-sidebar-content {
|
454 |
float: left;
|
455 |
padding-bottom: 10px;
|
456 |
}
|
457 |
-
|
458 |
hr {
|
459 |
display: block;
|
460 |
height: 1px;
|
@@ -463,11 +449,9 @@ hr {
|
|
463 |
margin: 1em 0;
|
464 |
padding: 0;
|
465 |
}
|
466 |
-
|
467 |
.rsssl-container {
|
468 |
display: flex;
|
469 |
}
|
470 |
-
|
471 |
#rsssl-premium-button {
|
472 |
display: inline-table;
|
473 |
width: 40%;
|
@@ -481,18 +465,12 @@ hr {
|
|
481 |
color: white;
|
482 |
margin-right: 5px;
|
483 |
}
|
484 |
-
|
485 |
.rsssl-more-info-button {
|
486 |
border: none;
|
487 |
border-radius: 50px;
|
488 |
clear: both;
|
489 |
margin-top: 10px;
|
490 |
}
|
491 |
-
|
492 |
-
.rsssl-button-deactivate-keep-ssl {
|
493 |
-
margin-right: 15px;
|
494 |
-
}
|
495 |
-
|
496 |
/*
|
497 |
cool checkbox sliders
|
498 |
*/
|
@@ -513,8 +491,8 @@ hr {
|
|
513 |
right: 0;
|
514 |
bottom: 0;
|
515 |
background-color: #ccc;
|
516 |
-
-webkit-transition: .4s;
|
517 |
-
transition: .4s;
|
518 |
}
|
519 |
.rsssl-slider:before {
|
520 |
position: absolute;
|
@@ -524,8 +502,8 @@ hr {
|
|
524 |
left: 4px;
|
525 |
bottom: 3px;
|
526 |
background-color: white;
|
527 |
-
-webkit-transition: .4s;
|
528 |
-
transition: .4s;
|
529 |
}
|
530 |
.rsssl-slider.rsssl-round {
|
531 |
border-radius: 20px;
|
@@ -547,54 +525,92 @@ input:disabled + .rsssl-slider {
|
|
547 |
input:focus + .rsssl-slider {
|
548 |
box-shadow: 0 0 1px #2DAAE1;
|
549 |
}
|
550 |
-
|
551 |
.debug-log {
|
552 |
width: 90%;
|
553 |
}
|
554 |
-
|
555 |
-
.rsssl-dismiss-text {
|
556 |
-
font-size: 1em;
|
557 |
-
color: #0073aa;
|
558 |
-
margin-left: 6px;
|
559 |
-
}
|
560 |
-
|
561 |
.rsssl-dashboard-plusone {
|
562 |
margin-left: 8px;
|
563 |
}
|
564 |
-
|
565 |
.rsssl-highlight {
|
566 |
-
|
567 |
-
|
568 |
-
background-image:none !important;
|
569 |
-o-animation: fadeIt 5s ease-in-out;
|
570 |
-
animation: fadeIt 5s ease-in-out;
|
571 |
-
|
572 |
@-o-keyframes fadeIt {
|
573 |
-
0%
|
574 |
-
|
575 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
576 |
}
|
577 |
@keyframes fadeIt {
|
578 |
-
0%
|
579 |
-
|
580 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
581 |
}
|
582 |
-
|
583 |
.form-table th {
|
584 |
padding-left: 10px;
|
585 |
}
|
586 |
-
|
587 |
.rsssl-dashboard-dismiss .close {
|
588 |
all: initial;
|
589 |
}
|
590 |
-
|
591 |
.rsssl-dashboard-dismiss span {
|
592 |
font-size: 1.5em;
|
593 |
-
color:
|
594 |
font-family: sans-serif;
|
595 |
}
|
596 |
-
|
597 |
.rsssl-dashboard-dismiss span:hover {
|
598 |
cursor: pointer;
|
599 |
color: grey;
|
600 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
Hide nags from other plugins
|
3 |
+
*/
|
4 |
+
.error:not(.really-simple-plugins),
|
5 |
+
.notice:not(.really-simple-plugins),
|
6 |
+
.update-nag:not(.really-simple-plugins),
|
7 |
+
.notice-info:not(.really-simple-plugins) {
|
8 |
+
display: none !important;
|
9 |
+
}
|
10 |
+
.rsssl-spacer {
|
11 |
+
width: 10px;
|
12 |
+
}
|
13 |
+
/* comments on settings pages */
|
14 |
+
.rsssl-grid .rsssl-item .item-container .form-table tbody tr.rsssl-comment-text {
|
15 |
+
color: #888;
|
16 |
+
font-size: 13px;
|
17 |
+
font-weight: normal;
|
18 |
+
font-style: italic;
|
19 |
+
padding-bottom: 0 !important;
|
20 |
+
margin-top: 0 !important;
|
21 |
+
width: 250px;
|
22 |
+
}
|
23 |
+
.rsssl-grid .rsssl-item .item-container .form-table tbody tr.rsssl-comment-text td {
|
24 |
+
padding-top: 0!important;
|
25 |
+
}
|
26 |
+
.rsssl-networksettings-overlay {
|
27 |
+
position: absolute;
|
28 |
+
top: 0;
|
29 |
+
left: 0;
|
30 |
+
bottom: 0;
|
31 |
+
right: 0;
|
32 |
+
background: rgba(255, 255, 255, 0.8);
|
33 |
+
}
|
34 |
+
.rsssl-networksettings-overlay .rsssl-disabled-settings-overlay {
|
35 |
+
position: absolute;
|
36 |
+
width: calc(100% - 65px);
|
37 |
+
bottom: 0;
|
38 |
+
background-color: #fff;
|
39 |
+
padding: 20px;
|
40 |
+
margin: 12px;
|
41 |
+
box-shadow: 0 0 5px 5px rgba(223, 222, 222, 0.4);
|
42 |
+
}
|
43 |
+
.rsssl-networksettings-overlay .rsssl-disabled-settings-overlay .rsssl-open {
|
44 |
+
float: left;
|
45 |
+
margin-right: 12px;
|
46 |
+
}
|
47 |
+
/* Hide review on own settings page */
|
48 |
+
#rsssl_do_activate_ssl {
|
49 |
+
margin-right: 10px;
|
50 |
+
}
|
51 |
+
.rlrsssl-review {
|
52 |
+
display: none;
|
53 |
+
}
|
54 |
.rsssl-main {
|
55 |
flex: 1;
|
56 |
width: 80%;
|
57 |
+
float: left;
|
58 |
}
|
|
|
59 |
.rsssl-sidebar img {
|
60 |
+
max-width: 100%;
|
61 |
/*height:inherit;*/
|
62 |
}
|
|
|
|
|
|
|
|
|
|
|
63 |
.really-simple-ssl-table {
|
64 |
display: flex;
|
65 |
flex-direction: column;
|
|
|
66 |
}
|
|
|
67 |
.rsssl-table-td-main-content {
|
68 |
width: 100%;
|
69 |
}
|
|
|
70 |
.really-simple-ssl-table tr:first-child {
|
71 |
+
border-top-left-radius: 0.55rem;
|
72 |
+
border-top-right-radius: 0.55rem;
|
73 |
}
|
|
|
74 |
.really-simple-ssl-table tr:last-child {
|
75 |
margin-bottom: 0;
|
76 |
+
border-bottom-left-radius: 0.55rem;
|
77 |
+
border-bottom-right-radius: 0.55rem;
|
78 |
}
|
|
|
79 |
.really-simple-ssl-table tr {
|
80 |
position: relative;
|
81 |
+
padding-left: 5px;
|
82 |
+
padding-top: 10px;
|
|
|
83 |
background-color: #fff;
|
|
|
84 |
}
|
|
|
85 |
.debug-log {
|
86 |
background-color: #fff;
|
87 |
+
padding: 15px;
|
|
|
88 |
}
|
|
|
89 |
.rsssl-icons {
|
90 |
+
width: 15px;
|
91 |
+
height: 15px;
|
92 |
}
|
|
|
93 |
.rsssl-update-count {
|
94 |
margin-left: 4px !important;
|
95 |
display: inline-block;
|
105 |
font-size: 11px;
|
106 |
line-height: 1.6;
|
107 |
text-align: center;
|
108 |
+
z-index: 26;
|
109 |
}
|
|
|
110 |
/* rsssl-rsssl-tooltip for settings page */
|
111 |
/* Base styles for the element that has a rsssl-tooltip */
|
112 |
[data-rsssl-tooltip],
|
114 |
position: relative;
|
115 |
cursor: pointer;
|
116 |
}
|
|
|
117 |
/* Base styles for the entire tooltip */
|
118 |
[data-rsssl-tooltip]:before,
|
119 |
[data-rsssl-tooltip]:after,
|
124 |
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
|
125 |
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
|
126 |
opacity: 0;
|
127 |
+
-webkit-transition: opacity 0.2s ease-in-out, visibility 0.2s ease-in-out, -webkit-transform 0.2s cubic-bezier(0.71, 1.7, 0.77, 1.24);
|
128 |
+
-moz-transition: opacity 0.2s ease-in-out, visibility 0.2s ease-in-out, -moz-transform 0.2s cubic-bezier(0.71, 1.7, 0.77, 1.24);
|
129 |
+
transition: opacity 0.2s ease-in-out, visibility 0.2s ease-in-out, transform 0.2s cubic-bezier(0.71, 1.7, 0.77, 1.24);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
130 |
-webkit-transform: translate3d(0, 0, 0);
|
131 |
+
-moz-transform: translate3d(0, 0, 0);
|
132 |
+
transform: translate3d(0, 0, 0);
|
133 |
pointer-events: none;
|
134 |
}
|
|
|
135 |
/* Show the entire rsssl-tooltip on hover and focus */
|
136 |
[data-rsssl-tooltip]:hover:before,
|
137 |
[data-rsssl-tooltip]:hover:after,
|
146 |
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
|
147 |
opacity: 1;
|
148 |
}
|
|
|
149 |
/* Base styles for the rsssl-tooltip's directional arrow */
|
150 |
.rsssl-tooltip:before,
|
151 |
[data-rsssl-tooltip]:before {
|
154 |
background: transparent;
|
155 |
content: "";
|
156 |
}
|
|
|
157 |
/* Base styles for the rsssl-tooltip's content area */
|
158 |
.rsssl-tooltip:after,
|
159 |
[data-rsssl-tooltip]:after {
|
160 |
z-index: 1000;
|
161 |
padding: 8px;
|
162 |
+
width: 220px;
|
163 |
background-color: #000;
|
164 |
background-color: hsla(0, 0%, 20%, 0.9);
|
165 |
color: #fff;
|
167 |
font-size: 14px;
|
168 |
line-height: 1.2;
|
169 |
}
|
|
|
170 |
/* Directions */
|
|
|
171 |
/* Top (default) */
|
172 |
+
.rsssl-tooltip-right {
|
173 |
+
font-weight: normal;
|
174 |
+
}
|
175 |
[data-rsssl-tooltip]:before,
|
176 |
[data-rsssl-tooltip]:after,
|
177 |
.rsssl-tooltip:before,
|
181 |
bottom: 100%;
|
182 |
left: 50%;
|
183 |
}
|
|
|
184 |
[data-rsssl-tooltip]:before,
|
185 |
.rsssl-tooltip:before,
|
186 |
.rsssl-tooltip-top:before {
|
189 |
border-top-color: #000;
|
190 |
border-top-color: hsla(0, 0%, 20%, 0.9);
|
191 |
}
|
|
|
192 |
/* Horizontally align top/bottom rsssl-tooltips */
|
193 |
[data-rsssl-tooltip]:after,
|
194 |
.rsssl-tooltip:after,
|
195 |
.rsssl-tooltip-top:after {
|
196 |
margin-left: -80px;
|
197 |
}
|
|
|
198 |
[data-rsssl-tooltip]:hover:before,
|
199 |
[data-rsssl-tooltip]:hover:after,
|
200 |
[data-rsssl-tooltip]:focus:before,
|
208 |
.rsssl-tooltip-top:focus:before,
|
209 |
.rsssl-tooltip-top:focus:after {
|
210 |
-webkit-transform: translateY(-12px);
|
211 |
+
-moz-transform: translateY(-12px);
|
212 |
+
transform: translateY(-12px);
|
213 |
}
|
|
|
214 |
/* Left */
|
215 |
.rsssl-tooltip-left:before,
|
216 |
.rsssl-tooltip-left:after {
|
217 |
right: 100%;
|
218 |
+
/*bottom: 50%;*/
|
219 |
left: auto;
|
220 |
}
|
|
|
221 |
.rsssl-tooltip-left:before {
|
222 |
margin-left: 0;
|
223 |
margin-right: -12px;
|
226 |
border-left-color: #000;
|
227 |
border-left-color: hsla(0, 0%, 20%, 0.9);
|
228 |
}
|
|
|
229 |
.rsssl-tooltip-left:hover:before,
|
230 |
.rsssl-tooltip-left:hover:after,
|
231 |
.rsssl-tooltip-left:focus:before,
|
232 |
.rsssl-tooltip-left:focus:after {
|
233 |
-webkit-transform: translateX(-12px);
|
234 |
+
-moz-transform: translateX(-12px);
|
235 |
+
transform: translateX(-12px);
|
236 |
}
|
|
|
237 |
/* Bottom */
|
238 |
.rsssl-tooltip-bottom:before,
|
239 |
.rsssl-tooltip-bottom:after {
|
241 |
bottom: auto;
|
242 |
left: 50%;
|
243 |
}
|
|
|
244 |
.rsssl-tooltip-bottom:before {
|
245 |
margin-top: -12px;
|
246 |
margin-bottom: 0;
|
248 |
border-bottom-color: #000;
|
249 |
border-bottom-color: hsla(0, 0%, 20%, 0.9);
|
250 |
}
|
|
|
251 |
.rsssl-tooltip-bottom:hover:before,
|
252 |
.rsssl-tooltip-bottom:hover:after,
|
253 |
.rsssl-tooltip-bottom:focus:before,
|
254 |
.rsssl-tooltip-bottom:focus:after {
|
255 |
-webkit-transform: translateY(12px);
|
256 |
+
-moz-transform: translateY(12px);
|
257 |
+
transform: translateY(12px);
|
258 |
}
|
|
|
259 |
/* Right */
|
260 |
.rsssl-tooltip-right:before,
|
261 |
.rsssl-tooltip-right:after {
|
262 |
bottom: 50%;
|
263 |
left: 100%;
|
264 |
}
|
|
|
265 |
.rsssl-tooltip-right:before {
|
266 |
margin-bottom: 0;
|
267 |
margin-left: -12px;
|
269 |
border-right-color: #000;
|
270 |
border-right-color: hsla(0, 0%, 20%, 0.9);
|
271 |
}
|
|
|
272 |
.rsssl-tooltip-right:hover:before,
|
273 |
.rsssl-tooltip-right:hover:after,
|
274 |
.rsssl-tooltip-right:focus:before,
|
275 |
.rsssl-tooltip-right:focus:after {
|
276 |
-webkit-transform: translateX(12px);
|
277 |
+
-moz-transform: translateX(12px);
|
278 |
+
transform: translateX(12px);
|
279 |
}
|
|
|
280 |
/* Move directional arrows down a bit for left/right rsssl-tooltips */
|
281 |
.rsssl-tooltip-left:before,
|
282 |
.rsssl-tooltip-right:before {
|
283 |
top: 3px;
|
284 |
}
|
|
|
285 |
/* Vertically center rsssl-tooltip content for left/right rsssl-tooltips */
|
286 |
.rsssl-tooltip-left:after,
|
287 |
.rsssl-tooltip-right:after {
|
288 |
margin-left: 0;
|
289 |
+
margin-bottom: -25px;
|
290 |
}
|
|
|
291 |
/* Styling for the sidebar in the admin tab of the free plugin */
|
|
|
292 |
.rsssl-really-simple-plugins-logo {
|
293 |
background-color: #ececec;
|
294 |
margin-left: -15px;
|
295 |
margin-right: -15px;
|
296 |
}
|
|
|
297 |
.rsssl-sidebar {
|
298 |
width: 240px;
|
299 |
margin-top: 20px;
|
303 |
padding-bottom: 15px;
|
304 |
background-color: #ECECEC;
|
305 |
}
|
|
|
306 |
.rsssl-sidebar-single-content-container {
|
307 |
min-height: 125px;
|
308 |
padding-bottom: 35px;
|
311 |
width: 100%;
|
312 |
border-radius: 3%;
|
313 |
}
|
|
|
314 |
.rsssl-sidebar-single-content-container-pro {
|
315 |
background-color: #fff;
|
316 |
min-height: 125px;
|
319 |
width: 100%;
|
320 |
border-radius: 3%;
|
321 |
}
|
|
|
322 |
.rsssl-sidebar-title h3 {
|
323 |
font-size: 0.9em;
|
324 |
}
|
|
|
325 |
.rsssl-sidebar-text-content-pro {
|
326 |
font-weight: 700;
|
327 |
font-size: 0.8em;
|
329 |
/*min-height: 100px;*/
|
330 |
margin: auto;
|
331 |
}
|
|
|
332 |
.rsssl-sidebar-text-content {
|
333 |
width: 45%;
|
334 |
padding-top: 5px;
|
338 |
float: right;
|
339 |
margin: 10px auto;
|
340 |
}
|
|
|
341 |
.rsssl-pro-image {
|
342 |
height: 30px;
|
343 |
margin-top: 6px;
|
344 |
}
|
|
|
345 |
.rsssl-sidebar-image-pro {
|
346 |
width: 90%;
|
347 |
margin: 10px;
|
348 |
}
|
|
|
349 |
.rsssl-sidebar-image {
|
350 |
width: 100px;
|
351 |
float: left;
|
352 |
padding: 10px;
|
353 |
height: 100px;
|
354 |
}
|
|
|
355 |
@media screen and (max-width: 1024px) and (min-width: 541px) {
|
356 |
/* Let the main container be 100% width again */
|
357 |
.rsssl-main {
|
358 |
width: 100%;
|
359 |
}
|
|
|
360 |
.rsssl-sidebar-title {
|
361 |
/*margin: auto;*/
|
362 |
text-align: center;
|
363 |
}
|
|
|
364 |
.rsssl-container {
|
365 |
flex-direction: column;
|
366 |
}
|
369 |
/*padding-left: 10%;*/
|
370 |
}
|
371 |
.rsssl-really-simple-plugins-logo {
|
372 |
+
width: 40%;
|
373 |
+
}
|
374 |
.rsssl-sidebar-single-content-container {
|
375 |
background-color: #fff;
|
376 |
width: 40%;
|
378 |
float: left;
|
379 |
margin-right: 25px;
|
380 |
}
|
|
|
381 |
.rsssl-sidebar-single-content-container-pro {
|
382 |
width: 40%;
|
383 |
padding-left: 25px;
|
384 |
margin: auto auto 25px;
|
385 |
}
|
|
|
386 |
.rsssl-sidebar-um-text-content {
|
387 |
width: 40%;
|
388 |
}
|
390 |
display: none;
|
391 |
}
|
392 |
}
|
|
|
393 |
@media screen and (max-width: 540px) {
|
394 |
.rsssl-main {
|
395 |
width: 100%;
|
398 |
flex-direction: column;
|
399 |
}
|
400 |
.rsssl-sidebar {
|
401 |
+
display: grid;
|
402 |
+
text-align: -webkit-center;
|
403 |
+
width: 70%;
|
404 |
}
|
405 |
.rsssl-sidebar-um-text-content {
|
406 |
width: 45%;
|
407 |
}
|
408 |
+
.rsssl-sidebar-single-content-container-pro {
|
409 |
+
padding-bottom: 10px;
|
410 |
+
}
|
411 |
.rsssl-sidebar-single-content-container {
|
412 |
padding-bottom: 10px;
|
413 |
}
|
414 |
}
|
|
|
415 |
.rsssl-sidebar h4 {
|
416 |
+
font-size: 14px;
|
417 |
+
font-style: italic;
|
418 |
}
|
|
|
419 |
.rsssl-wrapper {
|
420 |
padding: 30px;
|
421 |
}
|
|
|
422 |
.rsssl-sidebar-list {
|
423 |
font-size: 0.9em;
|
424 |
}
|
|
|
425 |
#rsssl-premium-button-pro {
|
426 |
display: inline-table;
|
427 |
width: 40%;
|
437 |
color: white;
|
438 |
margin-right: 5px;
|
439 |
}
|
|
|
440 |
.rsssl-sidebar-content {
|
441 |
float: left;
|
442 |
padding-bottom: 10px;
|
443 |
}
|
|
|
444 |
hr {
|
445 |
display: block;
|
446 |
height: 1px;
|
449 |
margin: 1em 0;
|
450 |
padding: 0;
|
451 |
}
|
|
|
452 |
.rsssl-container {
|
453 |
display: flex;
|
454 |
}
|
|
|
455 |
#rsssl-premium-button {
|
456 |
display: inline-table;
|
457 |
width: 40%;
|
465 |
color: white;
|
466 |
margin-right: 5px;
|
467 |
}
|
|
|
468 |
.rsssl-more-info-button {
|
469 |
border: none;
|
470 |
border-radius: 50px;
|
471 |
clear: both;
|
472 |
margin-top: 10px;
|
473 |
}
|
|
|
|
|
|
|
|
|
|
|
474 |
/*
|
475 |
cool checkbox sliders
|
476 |
*/
|
491 |
right: 0;
|
492 |
bottom: 0;
|
493 |
background-color: #ccc;
|
494 |
+
-webkit-transition: 0.4s;
|
495 |
+
transition: 0.4s;
|
496 |
}
|
497 |
.rsssl-slider:before {
|
498 |
position: absolute;
|
502 |
left: 4px;
|
503 |
bottom: 3px;
|
504 |
background-color: white;
|
505 |
+
-webkit-transition: 0.4s;
|
506 |
+
transition: 0.4s;
|
507 |
}
|
508 |
.rsssl-slider.rsssl-round {
|
509 |
border-radius: 20px;
|
525 |
input:focus + .rsssl-slider {
|
526 |
box-shadow: 0 0 1px #2DAAE1;
|
527 |
}
|
|
|
528 |
.debug-log {
|
529 |
width: 90%;
|
530 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
531 |
.rsssl-dashboard-plusone {
|
532 |
margin-left: 8px;
|
533 |
}
|
|
|
534 |
.rsssl-highlight {
|
535 |
+
background-color: #fff;
|
536 |
+
border-right: 4px solid #61ce70;
|
|
|
537 |
-o-animation: fadeIt 5s ease-in-out;
|
538 |
+
animation: fadeIt 5s ease-in-out;
|
539 |
+
}
|
540 |
@-o-keyframes fadeIt {
|
541 |
+
0% {
|
542 |
+
background-color: #FFFFFF;
|
543 |
+
}
|
544 |
+
30% {
|
545 |
+
background-color: #d6efd6;
|
546 |
+
}
|
547 |
+
100% {
|
548 |
+
border-left: 0;
|
549 |
+
background-color: inherit;
|
550 |
+
}
|
551 |
}
|
552 |
@keyframes fadeIt {
|
553 |
+
0% {
|
554 |
+
background-color: #FFFFFF;
|
555 |
+
border-left: 0;
|
556 |
+
}
|
557 |
+
30% {
|
558 |
+
background-color: #d6efd6;
|
559 |
+
}
|
560 |
+
100% {
|
561 |
+
background-color: inherit;
|
562 |
+
}
|
563 |
}
|
|
|
564 |
.form-table th {
|
565 |
padding-left: 10px;
|
566 |
}
|
|
|
567 |
.rsssl-dashboard-dismiss .close {
|
568 |
all: initial;
|
569 |
}
|
|
|
570 |
.rsssl-dashboard-dismiss span {
|
571 |
font-size: 1.5em;
|
572 |
+
color: black;
|
573 |
font-family: sans-serif;
|
574 |
}
|
|
|
575 |
.rsssl-dashboard-dismiss span:hover {
|
576 |
cursor: pointer;
|
577 |
color: grey;
|
578 |
+
}
|
579 |
+
/* License page */
|
580 |
+
.rsssl-grid .rsssl-item.rsssl-license-grid .item-container .form-table tbody tr {
|
581 |
+
max-width: 100%;
|
582 |
+
width: 100%;
|
583 |
+
}
|
584 |
+
.rsssl-grid .rsssl-item.rsssl-license-grid .item-container .rsssl-grid-item-footer input + input {
|
585 |
+
margin-left: 20px;
|
586 |
+
}
|
587 |
+
.rsssl_notice_license {
|
588 |
+
font-size: 13px !important;
|
589 |
+
border-radius: 0.25rem;
|
590 |
+
padding: 10px 15px;
|
591 |
+
margin: 10px 0;
|
592 |
+
background-color: #29b6f6;
|
593 |
+
border: 1px solid #29b6f6;
|
594 |
+
color: #fff;
|
595 |
+
}
|
596 |
+
.rsssl_notice_license h1 {
|
597 |
+
font-size: 16px;
|
598 |
+
}
|
599 |
+
.rsssl_notice_license p {
|
600 |
+
font-size: 13px !important;
|
601 |
+
}
|
602 |
+
.rsssl_notice_license.success {
|
603 |
+
background-color: #dff0d8;
|
604 |
+
border-color: #d0e9c6;
|
605 |
+
color: #3c763d;
|
606 |
+
}
|
607 |
+
.rsssl_notice_license.warning {
|
608 |
+
color: #000;
|
609 |
+
background-color: #FBC43D;
|
610 |
+
border-color: #FBC43D;
|
611 |
+
}
|
612 |
+
.rsssl_notice_license ul {
|
613 |
+
list-style-type: disc;
|
614 |
+
margin-left: 22px;
|
615 |
+
}
|
616 |
+
/*# sourceMappingURL=main.css.map */
|
css/main.css.map
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
{"version":3,"sources":["main.less"],"names":[],"mappings":"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","file":"main.css"}
|
css/main.less
ADDED
@@ -0,0 +1,697 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
Hide nags from other plugins
|
3 |
+
*/
|
4 |
+
.error, .notice, .update-nag, .notice-info {
|
5 |
+
&:not(.really-simple-plugins) {
|
6 |
+
display: none !important;
|
7 |
+
}
|
8 |
+
}
|
9 |
+
|
10 |
+
.rsssl-spacer {
|
11 |
+
width:10px;
|
12 |
+
}
|
13 |
+
|
14 |
+
/* comments on settings pages */
|
15 |
+
.rsssl-grid .rsssl-item .item-container .form-table tbody tr.rsssl-comment-text {
|
16 |
+
color:#888;
|
17 |
+
font-size: 13px;
|
18 |
+
font-weight: normal;
|
19 |
+
font-style:italic;
|
20 |
+
padding-bottom:0 !important;
|
21 |
+
margin-top:0 !important;
|
22 |
+
width: 250px;
|
23 |
+
td {padding-top:0!important;}
|
24 |
+
}
|
25 |
+
.rsssl-networksettings-overlay{
|
26 |
+
position: absolute;
|
27 |
+
top:0;
|
28 |
+
left: 0;
|
29 |
+
bottom: 0;
|
30 |
+
right: 0;
|
31 |
+
background: rgba(255, 255, 255, 0.8);
|
32 |
+
.rsssl-disabled-settings-overlay{
|
33 |
+
.rsssl-open {
|
34 |
+
float: left;
|
35 |
+
margin-right:12px;
|
36 |
+
}
|
37 |
+
position:absolute;
|
38 |
+
width: calc(100% - 65px);
|
39 |
+
bottom: 0;
|
40 |
+
background-color: #fff;
|
41 |
+
padding: 20px;
|
42 |
+
margin:12px;
|
43 |
+
box-shadow: 0 0 5px 5px rgba(223,222,222,0.4);
|
44 |
+
}
|
45 |
+
}
|
46 |
+
|
47 |
+
|
48 |
+
/* Hide review on own settings page */
|
49 |
+
#rsssl_do_activate_ssl {
|
50 |
+
margin-right:10px;
|
51 |
+
}
|
52 |
+
.rlrsssl-review {
|
53 |
+
display:none;
|
54 |
+
}
|
55 |
+
|
56 |
+
.rsssl-main {
|
57 |
+
flex: 1;
|
58 |
+
width: 80%;
|
59 |
+
float:left;
|
60 |
+
}
|
61 |
+
|
62 |
+
.rsssl-sidebar img {
|
63 |
+
max-width:100%;
|
64 |
+
/*height:inherit;*/
|
65 |
+
}
|
66 |
+
|
67 |
+
.really-simple-ssl-table {
|
68 |
+
display: flex;
|
69 |
+
flex-direction: column;
|
70 |
+
}
|
71 |
+
|
72 |
+
.rsssl-table-td-main-content {
|
73 |
+
width: 100%;
|
74 |
+
}
|
75 |
+
|
76 |
+
.really-simple-ssl-table tr:first-child {
|
77 |
+
border-top-left-radius: .55rem;
|
78 |
+
border-top-right-radius: .55rem;
|
79 |
+
}
|
80 |
+
|
81 |
+
.really-simple-ssl-table tr:last-child {
|
82 |
+
margin-bottom: 0;
|
83 |
+
border-bottom-left-radius: .55rem;
|
84 |
+
border-bottom-right-radius: .55rem;
|
85 |
+
}
|
86 |
+
|
87 |
+
.really-simple-ssl-table tr {
|
88 |
+
position: relative;
|
89 |
+
padding-left: 5px;
|
90 |
+
padding-top: 10px;
|
91 |
+
background-color: #fff;
|
92 |
+
}
|
93 |
+
|
94 |
+
.debug-log {
|
95 |
+
background-color: #fff;
|
96 |
+
padding:15px;
|
97 |
+
}
|
98 |
+
|
99 |
+
.rsssl-icons {
|
100 |
+
width:15px;
|
101 |
+
height:15px;
|
102 |
+
}
|
103 |
+
|
104 |
+
.rsssl-update-count {
|
105 |
+
margin-left: 4px !important;
|
106 |
+
display: inline-block;
|
107 |
+
vertical-align: top;
|
108 |
+
box-sizing: border-box;
|
109 |
+
margin: 1px 0 -1px 2px;
|
110 |
+
padding: 0 5px;
|
111 |
+
min-width: 18px;
|
112 |
+
height: 18px;
|
113 |
+
border-radius: 9px;
|
114 |
+
background-color: #ca4a1f;
|
115 |
+
color: #fff;
|
116 |
+
font-size: 11px;
|
117 |
+
line-height: 1.6;
|
118 |
+
text-align: center;
|
119 |
+
z-index: 26
|
120 |
+
}
|
121 |
+
|
122 |
+
/* rsssl-rsssl-tooltip for settings page */
|
123 |
+
/* Base styles for the element that has a rsssl-tooltip */
|
124 |
+
[data-rsssl-tooltip],
|
125 |
+
.rsssl-tooltip {
|
126 |
+
position: relative;
|
127 |
+
cursor: pointer;
|
128 |
+
}
|
129 |
+
|
130 |
+
/* Base styles for the entire tooltip */
|
131 |
+
[data-rsssl-tooltip]:before,
|
132 |
+
[data-rsssl-tooltip]:after,
|
133 |
+
.rsssl-tooltip:before,
|
134 |
+
.rsssl-tooltip:after {
|
135 |
+
position: absolute;
|
136 |
+
visibility: hidden;
|
137 |
+
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
|
138 |
+
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
|
139 |
+
opacity: 0;
|
140 |
+
-webkit-transition:
|
141 |
+
opacity 0.2s ease-in-out,
|
142 |
+
visibility 0.2s ease-in-out,
|
143 |
+
-webkit-transform 0.2s cubic-bezier(0.71, 1.7, 0.77, 1.24);
|
144 |
+
-moz-transition:
|
145 |
+
opacity 0.2s ease-in-out,
|
146 |
+
visibility 0.2s ease-in-out,
|
147 |
+
-moz-transform 0.2s cubic-bezier(0.71, 1.7, 0.77, 1.24);
|
148 |
+
transition:
|
149 |
+
opacity 0.2s ease-in-out,
|
150 |
+
visibility 0.2s ease-in-out,
|
151 |
+
transform 0.2s cubic-bezier(0.71, 1.7, 0.77, 1.24);
|
152 |
+
-webkit-transform: translate3d(0, 0, 0);
|
153 |
+
-moz-transform: translate3d(0, 0, 0);
|
154 |
+
transform: translate3d(0, 0, 0);
|
155 |
+
pointer-events: none;
|
156 |
+
}
|
157 |
+
|
158 |
+
/* Show the entire rsssl-tooltip on hover and focus */
|
159 |
+
[data-rsssl-tooltip]:hover:before,
|
160 |
+
[data-rsssl-tooltip]:hover:after,
|
161 |
+
[data-rsssl-tooltip]:focus:before,
|
162 |
+
[data-rsssl-tooltip]:focus:after,
|
163 |
+
.rsssl-tooltip:hover:before,
|
164 |
+
.rsssl-tooltip:hover:after,
|
165 |
+
.rsssl-tooltip:focus:before,
|
166 |
+
.rsssl-tooltip:focus:after {
|
167 |
+
visibility: visible;
|
168 |
+
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
|
169 |
+
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
|
170 |
+
opacity: 1;
|
171 |
+
}
|
172 |
+
|
173 |
+
/* Base styles for the rsssl-tooltip's directional arrow */
|
174 |
+
.rsssl-tooltip:before,
|
175 |
+
[data-rsssl-tooltip]:before {
|
176 |
+
z-index: 1001;
|
177 |
+
border: 6px solid transparent;
|
178 |
+
background: transparent;
|
179 |
+
content: "";
|
180 |
+
}
|
181 |
+
|
182 |
+
/* Base styles for the rsssl-tooltip's content area */
|
183 |
+
.rsssl-tooltip:after,
|
184 |
+
[data-rsssl-tooltip]:after {
|
185 |
+
z-index: 1000;
|
186 |
+
padding: 8px;
|
187 |
+
width: 220px;
|
188 |
+
background-color: #000;
|
189 |
+
background-color: hsla(0, 0%, 20%, 0.9);
|
190 |
+
color: #fff;
|
191 |
+
content: attr(data-rsssl-tooltip);
|
192 |
+
font-size: 14px;
|
193 |
+
line-height: 1.2;
|
194 |
+
}
|
195 |
+
|
196 |
+
/* Directions */
|
197 |
+
|
198 |
+
/* Top (default) */
|
199 |
+
.rsssl-tooltip-right {
|
200 |
+
font-weight:normal;
|
201 |
+
}
|
202 |
+
[data-rsssl-tooltip]:before,
|
203 |
+
[data-rsssl-tooltip]:after,
|
204 |
+
.rsssl-tooltip:before,
|
205 |
+
.rsssl-tooltip:after,
|
206 |
+
.rsssl-tooltip-top:before,
|
207 |
+
.rsssl-tooltip-top:after {
|
208 |
+
bottom: 100%;
|
209 |
+
left: 50%;
|
210 |
+
}
|
211 |
+
|
212 |
+
[data-rsssl-tooltip]:before,
|
213 |
+
.rsssl-tooltip:before,
|
214 |
+
.rsssl-tooltip-top:before {
|
215 |
+
margin-left: -6px;
|
216 |
+
margin-bottom: -12px;
|
217 |
+
border-top-color: #000;
|
218 |
+
border-top-color: hsla(0, 0%, 20%, 0.9);
|
219 |
+
}
|
220 |
+
|
221 |
+
/* Horizontally align top/bottom rsssl-tooltips */
|
222 |
+
[data-rsssl-tooltip]:after,
|
223 |
+
.rsssl-tooltip:after,
|
224 |
+
.rsssl-tooltip-top:after {
|
225 |
+
margin-left: -80px;
|
226 |
+
}
|
227 |
+
|
228 |
+
[data-rsssl-tooltip]:hover:before,
|
229 |
+
[data-rsssl-tooltip]:hover:after,
|
230 |
+
[data-rsssl-tooltip]:focus:before,
|
231 |
+
[data-rsssl-tooltip]:focus:after,
|
232 |
+
.rsssl-tooltip:hover:before,
|
233 |
+
.rsssl-tooltip:hover:after,
|
234 |
+
.rsssl-tooltip:focus:before,
|
235 |
+
.rsssl-tooltip:focus:after,
|
236 |
+
.rsssl-tooltip-top:hover:before,
|
237 |
+
.rsssl-tooltip-top:hover:after,
|
238 |
+
.rsssl-tooltip-top:focus:before,
|
239 |
+
.rsssl-tooltip-top:focus:after {
|
240 |
+
-webkit-transform: translateY(-12px);
|
241 |
+
-moz-transform: translateY(-12px);
|
242 |
+
transform: translateY(-12px);
|
243 |
+
}
|
244 |
+
|
245 |
+
/* Left */
|
246 |
+
.rsssl-tooltip-left:before,
|
247 |
+
.rsssl-tooltip-left:after {
|
248 |
+
right: 100%;
|
249 |
+
/*bottom: 50%;*/
|
250 |
+
left: auto;
|
251 |
+
}
|
252 |
+
|
253 |
+
.rsssl-tooltip-left:before {
|
254 |
+
margin-left: 0;
|
255 |
+
margin-right: -12px;
|
256 |
+
margin-bottom: 0;
|
257 |
+
border-top-color: transparent;
|
258 |
+
border-left-color: #000;
|
259 |
+
border-left-color: hsla(0, 0%, 20%, 0.9);
|
260 |
+
}
|
261 |
+
|
262 |
+
.rsssl-tooltip-left:hover:before,
|
263 |
+
.rsssl-tooltip-left:hover:after,
|
264 |
+
.rsssl-tooltip-left:focus:before,
|
265 |
+
.rsssl-tooltip-left:focus:after {
|
266 |
+
-webkit-transform: translateX(-12px);
|
267 |
+
-moz-transform: translateX(-12px);
|
268 |
+
transform: translateX(-12px);
|
269 |
+
}
|
270 |
+
|
271 |
+
/* Bottom */
|
272 |
+
.rsssl-tooltip-bottom:before,
|
273 |
+
.rsssl-tooltip-bottom:after {
|
274 |
+
top: 100%;
|
275 |
+
bottom: auto;
|
276 |
+
left: 50%;
|
277 |
+
}
|
278 |
+
|
279 |
+
.rsssl-tooltip-bottom:before {
|
280 |
+
margin-top: -12px;
|
281 |
+
margin-bottom: 0;
|
282 |
+
border-top-color: transparent;
|
283 |
+
border-bottom-color: #000;
|
284 |
+
border-bottom-color: hsla(0, 0%, 20%, 0.9);
|
285 |
+
}
|
286 |
+
|
287 |
+
.rsssl-tooltip-bottom:hover:before,
|
288 |
+
.rsssl-tooltip-bottom:hover:after,
|
289 |
+
.rsssl-tooltip-bottom:focus:before,
|
290 |
+
.rsssl-tooltip-bottom:focus:after {
|
291 |
+
-webkit-transform: translateY(12px);
|
292 |
+
-moz-transform: translateY(12px);
|
293 |
+
transform: translateY(12px);
|
294 |
+
}
|
295 |
+
|
296 |
+
/* Right */
|
297 |
+
.rsssl-tooltip-right:before,
|
298 |
+
.rsssl-tooltip-right:after {
|
299 |
+
bottom: 50%;
|
300 |
+
left: 100%;
|
301 |
+
}
|
302 |
+
|
303 |
+
.rsssl-tooltip-right:before {
|
304 |
+
margin-bottom: 0;
|
305 |
+
margin-left: -12px;
|
306 |
+
border-top-color: transparent;
|
307 |
+
border-right-color: #000;
|
308 |
+
border-right-color: hsla(0, 0%, 20%, 0.9);
|
309 |
+
}
|
310 |
+
|
311 |
+
.rsssl-tooltip-right:hover:before,
|
312 |
+
.rsssl-tooltip-right:hover:after,
|
313 |
+
.rsssl-tooltip-right:focus:before,
|
314 |
+
.rsssl-tooltip-right:focus:after {
|
315 |
+
-webkit-transform: translateX(12px);
|
316 |
+
-moz-transform: translateX(12px);
|
317 |
+
transform: translateX(12px);
|
318 |
+
}
|
319 |
+
|
320 |
+
/* Move directional arrows down a bit for left/right rsssl-tooltips */
|
321 |
+
.rsssl-tooltip-left:before,
|
322 |
+
.rsssl-tooltip-right:before {
|
323 |
+
top: 3px;
|
324 |
+
}
|
325 |
+
|
326 |
+
/* Vertically center rsssl-tooltip content for left/right rsssl-tooltips */
|
327 |
+
.rsssl-tooltip-left:after,
|
328 |
+
.rsssl-tooltip-right:after {
|
329 |
+
margin-left: 0;
|
330 |
+
margin-bottom: -25px;
|
331 |
+
}
|
332 |
+
|
333 |
+
/* Styling for the sidebar in the admin tab of the free plugin */
|
334 |
+
|
335 |
+
.rsssl-really-simple-plugins-logo {
|
336 |
+
background-color: #ececec;
|
337 |
+
margin-left: -15px;
|
338 |
+
margin-right: -15px;
|
339 |
+
}
|
340 |
+
|
341 |
+
.rsssl-sidebar {
|
342 |
+
width: 240px;
|
343 |
+
margin-top: 20px;
|
344 |
+
padding-left: 15px;
|
345 |
+
padding-right: 15px;
|
346 |
+
margin-right: 15px;
|
347 |
+
padding-bottom: 15px;
|
348 |
+
background-color: #ECECEC;
|
349 |
+
}
|
350 |
+
|
351 |
+
.rsssl-sidebar-single-content-container {
|
352 |
+
min-height: 125px;
|
353 |
+
padding-bottom: 35px;
|
354 |
+
margin-bottom: 10px;
|
355 |
+
background-color: #fff;
|
356 |
+
width: 100%;
|
357 |
+
border-radius: 3%;
|
358 |
+
}
|
359 |
+
|
360 |
+
.rsssl-sidebar-single-content-container-pro {
|
361 |
+
background-color: #fff;
|
362 |
+
min-height: 125px;
|
363 |
+
padding-bottom: 35px;
|
364 |
+
margin-bottom: 10px;
|
365 |
+
width: 100%;
|
366 |
+
border-radius: 3%;
|
367 |
+
}
|
368 |
+
|
369 |
+
.rsssl-sidebar-title h3 {
|
370 |
+
font-size: 0.9em;
|
371 |
+
}
|
372 |
+
|
373 |
+
.rsssl-sidebar-text-content-pro {
|
374 |
+
font-weight: 700;
|
375 |
+
font-size: 0.8em;
|
376 |
+
width: 90%;
|
377 |
+
/*min-height: 100px;*/
|
378 |
+
margin: auto;
|
379 |
+
}
|
380 |
+
|
381 |
+
.rsssl-sidebar-text-content {
|
382 |
+
width: 45%;
|
383 |
+
padding-top: 5px;
|
384 |
+
padding-right: 7px;
|
385 |
+
font-weight: 700;
|
386 |
+
font-size: 0.8em;
|
387 |
+
float: right;
|
388 |
+
margin: 10px auto;
|
389 |
+
}
|
390 |
+
|
391 |
+
.rsssl-pro-image {
|
392 |
+
height: 30px;
|
393 |
+
margin-top: 6px;
|
394 |
+
}
|
395 |
+
|
396 |
+
.rsssl-sidebar-image-pro {
|
397 |
+
width: 90%;
|
398 |
+
margin: 10px;
|
399 |
+
}
|
400 |
+
|
401 |
+
.rsssl-sidebar-image {
|
402 |
+
width: 100px;
|
403 |
+
float: left;
|
404 |
+
padding: 10px;
|
405 |
+
height: 100px;
|
406 |
+
}
|
407 |
+
|
408 |
+
@media screen and (max-width: 1024px) and (min-width: 541px) {
|
409 |
+
/* Let the main container be 100% width again */
|
410 |
+
.rsssl-main {
|
411 |
+
width: 100%;
|
412 |
+
}
|
413 |
+
|
414 |
+
.rsssl-sidebar-title {
|
415 |
+
/*margin: auto;*/
|
416 |
+
text-align: center;
|
417 |
+
}
|
418 |
+
|
419 |
+
.rsssl-container {
|
420 |
+
flex-direction: column;
|
421 |
+
}
|
422 |
+
.rsssl-sidebar {
|
423 |
+
width: 100%;
|
424 |
+
/*padding-left: 10%;*/
|
425 |
+
}
|
426 |
+
.rsssl-really-simple-plugins-logo {
|
427 |
+
width: 40%;
|
428 |
+
}
|
429 |
+
.rsssl-sidebar-single-content-container {
|
430 |
+
background-color: #fff;
|
431 |
+
width: 40%;
|
432 |
+
padding-left: 25px;
|
433 |
+
float: left;
|
434 |
+
margin-right: 25px;
|
435 |
+
}
|
436 |
+
|
437 |
+
.rsssl-sidebar-single-content-container-pro {
|
438 |
+
width: 40%;
|
439 |
+
padding-left: 25px;
|
440 |
+
margin: auto auto 25px;
|
441 |
+
}
|
442 |
+
|
443 |
+
.rsssl-sidebar-um-text-content {
|
444 |
+
width: 40%;
|
445 |
+
}
|
446 |
+
.rsssl-pro-image {
|
447 |
+
display: none;
|
448 |
+
}
|
449 |
+
}
|
450 |
+
|
451 |
+
@media screen and (max-width: 540px) {
|
452 |
+
.rsssl-main {
|
453 |
+
width: 100%;
|
454 |
+
}
|
455 |
+
.rsssl-container {
|
456 |
+
flex-direction: column;
|
457 |
+
}
|
458 |
+
.rsssl-sidebar {
|
459 |
+
display: grid;
|
460 |
+
text-align: -webkit-center;
|
461 |
+
width: 70%;
|
462 |
+
}
|
463 |
+
.rsssl-sidebar-um-text-content {
|
464 |
+
width: 45%;
|
465 |
+
}
|
466 |
+
.rsssl-sidebar-single-content-container-pro {
|
467 |
+
padding-bottom: 10px;
|
468 |
+
}
|
469 |
+
.rsssl-sidebar-single-content-container {
|
470 |
+
padding-bottom: 10px;
|
471 |
+
}
|
472 |
+
}
|
473 |
+
|
474 |
+
.rsssl-sidebar h4 {
|
475 |
+
font-size:14px;
|
476 |
+
font-style:italic;
|
477 |
+
}
|
478 |
+
|
479 |
+
.rsssl-wrapper {
|
480 |
+
padding: 30px;
|
481 |
+
}
|
482 |
+
|
483 |
+
.rsssl-sidebar-list {
|
484 |
+
font-size: 0.9em;
|
485 |
+
}
|
486 |
+
|
487 |
+
#rsssl-premium-button-pro {
|
488 |
+
display: inline-table;
|
489 |
+
width: 40%;
|
490 |
+
text-align: center;
|
491 |
+
float: right;
|
492 |
+
font-size: inherit;
|
493 |
+
height: 25px;
|
494 |
+
-webkit-border-radius: 12px;
|
495 |
+
-moz-border-radius: 12px;
|
496 |
+
border-radius: 12px;
|
497 |
+
border: none;
|
498 |
+
background-color: #000000;
|
499 |
+
color: white;
|
500 |
+
margin-right: 5px;
|
501 |
+
}
|
502 |
+
|
503 |
+
.rsssl-sidebar-content {
|
504 |
+
float: left;
|
505 |
+
padding-bottom: 10px;
|
506 |
+
}
|
507 |
+
|
508 |
+
hr {
|
509 |
+
display: block;
|
510 |
+
height: 1px;
|
511 |
+
border: 0;
|
512 |
+
border-top: 1px solid #ccc;
|
513 |
+
margin: 1em 0;
|
514 |
+
padding: 0;
|
515 |
+
}
|
516 |
+
|
517 |
+
.rsssl-container {
|
518 |
+
display: flex;
|
519 |
+
}
|
520 |
+
|
521 |
+
#rsssl-premium-button {
|
522 |
+
display: inline-table;
|
523 |
+
width: 40%;
|
524 |
+
text-align: center;
|
525 |
+
float: right;
|
526 |
+
font-size: inherit;
|
527 |
+
height: 25px;
|
528 |
+
border-radius: 12px;
|
529 |
+
border: none;
|
530 |
+
background-color: #000000;
|
531 |
+
color: white;
|
532 |
+
margin-right: 5px;
|
533 |
+
}
|
534 |
+
|
535 |
+
.rsssl-more-info-button {
|
536 |
+
border: none;
|
537 |
+
border-radius: 50px;
|
538 |
+
clear: both;
|
539 |
+
margin-top: 10px;
|
540 |
+
}
|
541 |
+
|
542 |
+
/*
|
543 |
+
cool checkbox sliders
|
544 |
+
*/
|
545 |
+
.rsssl-switch {
|
546 |
+
position: relative;
|
547 |
+
display: inline-block;
|
548 |
+
width: 40px;
|
549 |
+
height: 21px;
|
550 |
+
input {
|
551 |
+
display: none;
|
552 |
+
}
|
553 |
+
}
|
554 |
+
|
555 |
+
.rsssl-slider {
|
556 |
+
position: absolute;
|
557 |
+
cursor: pointer;
|
558 |
+
top: 0;
|
559 |
+
left: 0;
|
560 |
+
right: 0;
|
561 |
+
bottom: 0;
|
562 |
+
background-color: #ccc;
|
563 |
+
-webkit-transition: .4s;
|
564 |
+
transition: .4s;
|
565 |
+
}
|
566 |
+
.rsssl-slider:before {
|
567 |
+
position: absolute;
|
568 |
+
content: "";
|
569 |
+
height: 15px;
|
570 |
+
width: 15px;
|
571 |
+
left: 4px;
|
572 |
+
bottom: 3px;
|
573 |
+
background-color: white;
|
574 |
+
-webkit-transition: .4s;
|
575 |
+
transition: .4s;
|
576 |
+
}
|
577 |
+
.rsssl-slider.rsssl-round {
|
578 |
+
border-radius: 20px;
|
579 |
+
}
|
580 |
+
.rsssl-slider.rsssl-round:before {
|
581 |
+
border-radius: 50%;
|
582 |
+
}
|
583 |
+
input:checked + .rsssl-slider {
|
584 |
+
background-color: #2DAAE1;
|
585 |
+
}
|
586 |
+
input:checked + .rsssl-slider:before {
|
587 |
+
-webkit-transform: translateX(17px);
|
588 |
+
-ms-transform: translateX(17px);
|
589 |
+
transform: translateX(17px);
|
590 |
+
}
|
591 |
+
input:disabled + .rsssl-slider {
|
592 |
+
background-color: #b3e0f4;
|
593 |
+
}
|
594 |
+
input:focus + .rsssl-slider {
|
595 |
+
box-shadow: 0 0 1px #2DAAE1;
|
596 |
+
}
|
597 |
+
|
598 |
+
.debug-log {
|
599 |
+
width: 90%;
|
600 |
+
}
|
601 |
+
|
602 |
+
.rsssl-dashboard-plusone {
|
603 |
+
margin-left: 8px;
|
604 |
+
}
|
605 |
+
|
606 |
+
.rsssl-highlight {
|
607 |
+
background-color: #fff;
|
608 |
+
border-right: 4px solid #61ce70;
|
609 |
+
-o-animation: fadeIt 5s ease-in-out;
|
610 |
+
animation: fadeIt 5s ease-in-out;
|
611 |
+
}
|
612 |
+
|
613 |
+
@-o-keyframes fadeIt {
|
614 |
+
0% { background-color: #FFFFFF; }
|
615 |
+
30% { background-color: #d6efd6; }
|
616 |
+
100% {
|
617 |
+
border-left: 0;
|
618 |
+
background-color: inherit;
|
619 |
+
}
|
620 |
+
}
|
621 |
+
@keyframes fadeIt {
|
622 |
+
0% {
|
623 |
+
background-color: #FFFFFF;
|
624 |
+
border-left: 0;
|
625 |
+
}
|
626 |
+
30% { background-color: #d6efd6; }
|
627 |
+
100% { background-color: inherit; }
|
628 |
+
}
|
629 |
+
|
630 |
+
.form-table th {
|
631 |
+
padding-left: 10px;
|
632 |
+
}
|
633 |
+
|
634 |
+
.rsssl-dashboard-dismiss .close {
|
635 |
+
all: initial;
|
636 |
+
}
|
637 |
+
|
638 |
+
.rsssl-dashboard-dismiss span {
|
639 |
+
font-size: 1.5em;
|
640 |
+
color: black;
|
641 |
+
font-family: sans-serif;
|
642 |
+
}
|
643 |
+
|
644 |
+
.rsssl-dashboard-dismiss span:hover {
|
645 |
+
cursor: pointer;
|
646 |
+
color: grey;
|
647 |
+
}
|
648 |
+
|
649 |
+
/* License page */
|
650 |
+
.rsssl-grid .rsssl-item.rsssl-license-grid .item-container {
|
651 |
+
.form-table tbody tr {
|
652 |
+
max-width: 100%;
|
653 |
+
width: 100%;
|
654 |
+
}
|
655 |
+
|
656 |
+
.rsssl-grid-item-footer {
|
657 |
+
input + input {
|
658 |
+
margin-left:20px;
|
659 |
+
}
|
660 |
+
}
|
661 |
+
}
|
662 |
+
|
663 |
+
.rsssl_notice_license {
|
664 |
+
|
665 |
+
font-size: 13px !important;
|
666 |
+
border-radius: .25rem;
|
667 |
+
padding: 10px 15px;
|
668 |
+
margin: 10px 0;
|
669 |
+
background-color: #29b6f6;
|
670 |
+
border: 1px solid #29b6f6;
|
671 |
+
color: #fff;
|
672 |
+
|
673 |
+
h1 {
|
674 |
+
font-size: 16px;
|
675 |
+
}
|
676 |
+
|
677 |
+
p {
|
678 |
+
font-size: 13px !important;
|
679 |
+
}
|
680 |
+
|
681 |
+
&.success {
|
682 |
+
background-color: #dff0d8;
|
683 |
+
border-color: #d0e9c6;
|
684 |
+
color: #3c763d;
|
685 |
+
}
|
686 |
+
|
687 |
+
&.warning {
|
688 |
+
color: #000;
|
689 |
+
background-color: #FBC43D;;
|
690 |
+
border-color: #FBC43D;
|
691 |
+
}
|
692 |
+
|
693 |
+
ul {
|
694 |
+
list-style-type: disc;
|
695 |
+
margin-left: 22px;
|
696 |
+
}
|
697 |
+
}
|
css/main.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.rsssl-main{flex:1;width:80%;float:left}.rsssl-sidebar img{max-width:100%}.nav-tab-active{background:#fff}.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:#ececec;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:#fff;width:100%;border-radius:3%}.rsssl-sidebar-single-content-container-pro{background-color:#fff;min-height:125px;padding-bottom:35px;margin-bottom:10px;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{background-color:#fff;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;border:0;background-color:#000;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;border-radius:12px;border:0;background-color:#000;color:white;margin-right:5px}.rsssl-more-info-button{border:0;border-radius:50px;clear:both;margin-top:10px}.rsssl-button-deactivate-keep-ssl{margin-right:15px}.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}
|
1 |
+
.error:not(.really-simple-plugins),.notice:not(.really-simple-plugins),.update-nag:not(.really-simple-plugins),.notice-info:not(.really-simple-plugins){display:none !important}.rsssl-spacer{width:10px}.rsssl-grid .rsssl-item .item-container .form-table tbody tr.rsssl-comment-text{color:#888;font-size:13px;font-weight:normal;font-style:italic;padding-bottom:0 !important;margin-top:0 !important;width:250px}.rsssl-grid .rsssl-item .item-container .form-table tbody tr.rsssl-comment-text td{padding-top:0 !important}.rsssl-networksettings-overlay{position:absolute;top:0;left:0;bottom:0;right:0;background:rgba(255,255,255,0.8)}.rsssl-networksettings-overlay .rsssl-disabled-settings-overlay{position:absolute;width:calc(100% - 65px);bottom:0;background-color:#fff;padding:20px;margin:12px;box-shadow:0 0 5px 5px rgba(223,222,222,0.4)}.rsssl-networksettings-overlay .rsssl-disabled-settings-overlay .rsssl-open{float:left;margin-right:12px}#rsssl_do_activate_ssl{margin-right:10px}.rlrsssl-review{display:none}.rsssl-main{flex:1;width:80%;float:left}.rsssl-sidebar img{max-width:100%}.really-simple-ssl-table{display:flex;flex-direction:column}.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;padding-left:5px;padding-top:10px;background-color:#fff}.debug-log{background-color:#fff;padding:15px}.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:220px;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}.rsssl-tooltip-right{font-weight:normal}[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%;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:-25px}.rsssl-really-simple-plugins-logo{background-color:#ececec;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:#fff;width:100%;border-radius:3%}.rsssl-sidebar-single-content-container-pro{background-color:#fff;min-height:125px;padding-bottom:35px;margin-bottom:10px;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{background-color:#fff;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;border:0;background-color:#000;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;border-radius:12px;border:0;background-color:#000;color:white;margin-right:5px}.rsssl-more-info-button{border:0;border-radius:50px;clear:both;margin-top:10px}.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-dashboard-plusone{margin-left:8px}.rsssl-highlight{background-color:#fff;border-right:4px solid #61ce70;-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%{border-left:0;background-color:inherit}}@keyframes fadeIt{0{background-color:#fff;border-left:0}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:black;font-family:sans-serif}.rsssl-dashboard-dismiss span:hover{cursor:pointer;color:grey}.rsssl-grid .rsssl-item.rsssl-license-grid .item-container .form-table tbody tr{max-width:100%;width:100%}.rsssl-grid .rsssl-item.rsssl-license-grid .item-container .rsssl-grid-item-footer input+input{margin-left:20px}.rsssl_notice_license{font-size:13px !important;border-radius:.25rem;padding:10px 15px;margin:10px 0;background-color:#29b6f6;border:1px solid #29b6f6;color:#fff}.rsssl_notice_license h1{font-size:16px}.rsssl_notice_license p{font-size:13px !important}.rsssl_notice_license.success{background-color:#dff0d8;border-color:#d0e9c6;color:#3c763d}.rsssl_notice_license.warning{color:#000;background-color:#fbc43d;border-color:#fbc43d}.rsssl_notice_license ul{list-style-type:disc;margin-left:22px}
|
force-deactivate.txt
CHANGED
@@ -12,127 +12,111 @@
|
|
12 |
<body>
|
13 |
|
14 |
<?php
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
#find the base path
|
19 |
-
define( 'BASE_PATH', find_wordpress_base_path()."/" );
|
20 |
-
|
21 |
-
# Load WordPress Core
|
22 |
-
require_once( BASE_PATH.'wp-load.php' );
|
23 |
-
require_once(ABSPATH.'wp-admin/includes/plugin.php');
|
24 |
-
$core_plugin = 'really-simple-ssl/rlrsssl-really-simple-ssl.php';
|
25 |
-
|
26 |
-
if (!is_plugin_active($core_plugin) ) {
|
27 |
-
echo "<h1>Really Simple SSL is already deactivated!</h1>";
|
28 |
-
exit;
|
29 |
-
}
|
30 |
-
|
31 |
-
#Load plugin functionality
|
32 |
-
require_once( dirname( __FILE__ ) . '/class-front-end.php' );
|
33 |
-
require_once( dirname( __FILE__ ) . '/class-admin.php' );
|
34 |
-
|
35 |
-
$really_simple_ssl = new rsssl_admin();
|
36 |
-
if (is_multisite()) {
|
37 |
-
require_once( dirname( __FILE__ ) . '/class-multisite.php' );
|
38 |
-
$rsssl_multisite = new rsssl_multisite();
|
39 |
-
}
|
40 |
-
|
41 |
-
$step = 1;
|
42 |
-
echo "<h1>Force deactivation of Really Simple SSL</h1>";
|
43 |
-
echo $step.". Resetting options"."<br>";
|
44 |
-
$networkwide = is_multisite();
|
45 |
-
$really_simple_ssl->deactivate($networkwide);
|
46 |
-
$step++;
|
47 |
-
|
48 |
-
//add feedback on writable files.
|
49 |
-
if (count($really_simple_ssl->errors)>0) {
|
50 |
-
echo $step.". Errors occured while deactivating:<ul>";
|
51 |
-
$step++;
|
52 |
-
foreach($really_simple_ssl->errors as $errorname=>$error) {
|
53 |
-
echo "<li>".$errorname."</li>";
|
54 |
-
}
|
55 |
-
echo "</ul>";
|
56 |
-
echo "Errors while removing the Really Simple SSL lines from your wp-config.php and .htaccess files, which you can normally find in your webroot."."<br><br>";
|
57 |
-
}
|
58 |
-
|
59 |
-
echo $step.". Deactivating plugin"."<br>";
|
60 |
-
rl_deactivate_plugin($really_simple_ssl->plugin_dir."/".$really_simple_ssl->plugin_filename);
|
61 |
-
|
62 |
-
$step++;
|
63 |
-
echo $step.". Completed with <b>".count($really_simple_ssl->errors)."</b> error(s)"."<br>";
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
function rl_remove_plugin_from_array($plugin, $current) {
|
69 |
-
$key = array_search( $plugin, $current );
|
70 |
-
if ( false !== $key ) {
|
71 |
-
$do_blog = true;
|
72 |
-
unset( $current[ $key ] );
|
73 |
-
}
|
74 |
-
return $current;
|
75 |
-
}
|
76 |
-
|
77 |
-
function rl_deactivate_plugin( $plugin ) {
|
78 |
-
$plugin = plugin_basename( trim( $plugin ) );
|
79 |
-
|
80 |
-
if ( is_multisite() ) {
|
81 |
-
|
82 |
-
$network_current = get_site_option( 'active_sitewide_plugins', array() );
|
83 |
-
if ( is_plugin_active_for_network( $plugin ) ) { unset( $network_current[ $plugin ] );}
|
84 |
-
update_site_option( 'active_sitewide_plugins', $network_current );
|
85 |
|
86 |
-
|
87 |
-
|
88 |
-
foreach ( $sites as $site ) {
|
89 |
-
switch_to_blog( $site[ 'blog_id' ] );
|
90 |
|
91 |
-
|
92 |
-
|
93 |
-
update_option('active_plugins', $current);
|
94 |
|
95 |
-
|
96 |
-
|
|
|
|
|
97 |
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
update_option('active_plugins', $current);
|
102 |
}
|
103 |
|
104 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
105 |
|
|
|
|
|
|
|
106 |
|
|
|
|
|
|
|
107 |
|
108 |
|
|
|
|
|
|
|
|
|
|
|
|
|
109 |
|
|
|
|
|
110 |
|
|
|
|
|
111 |
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
116 |
}
|
117 |
|
118 |
/**
|
119 |
* Helper function to find Wordpress base path.
|
120 |
*/
|
121 |
function find_wordpress_base_path() {
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
}
|
134 |
-
} while( $dir = realpath("$dir/..") );
|
135 |
-
return null;
|
136 |
}
|
137 |
|
138 |
?>
|
12 |
<body>
|
13 |
|
14 |
<?php
|
15 |
+
# No need for the template engine
|
16 |
+
define( 'WP_USE_THEMES', false );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
|
18 |
+
#find the base path
|
19 |
+
define( 'BASE_PATH', find_wordpress_base_path() . "/" );
|
|
|
|
|
20 |
|
21 |
+
//make sure the files are loaded
|
22 |
+
if (!defined('RSSSL_DOING_SYSTEM_STATUS')) define( 'RSSSL_DOING_SYSTEM_STATUS' , true);
|
|
|
23 |
|
24 |
+
# Load WordPress Core
|
25 |
+
require_once( BASE_PATH . 'wp-load.php' );
|
26 |
+
require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
|
27 |
+
$core_plugin = 'really-simple-ssl/rlrsssl-really-simple-ssl.php';
|
28 |
|
29 |
+
if ( ! is_plugin_active( $core_plugin ) ) {
|
30 |
+
echo "<h1>Really Simple SSL is already deactivated!</h1>";
|
31 |
+
exit;
|
|
|
32 |
}
|
33 |
|
34 |
|
35 |
+
$step = 1;
|
36 |
+
echo "<h1>Force deactivation of Really Simple SSL</h1>";
|
37 |
+
echo $step . ". Resetting options" . "<br>";
|
38 |
+
$networkwide = is_multisite();
|
39 |
+
RSSSL()->really_simple_ssl->deactivate( $networkwide );
|
40 |
+
$step ++;
|
41 |
+
|
42 |
+
//add feedback on writable files.
|
43 |
+
if ( count( RSSSL()->really_simple_ssl->errors ) > 0 ) {
|
44 |
+
echo $step . ". Errors occured while deactivating:<ul>";
|
45 |
+
$step ++;
|
46 |
+
foreach ( RSSSL()->really_simple_ssl->errors as $errorname => $error ) {
|
47 |
+
echo "<li>" . $errorname . "</li>";
|
48 |
+
}
|
49 |
+
echo "</ul>";
|
50 |
+
echo "Errors while removing the Really Simple SSL lines from your wp-config.php and .htaccess files, which you can normally find in your webroot."
|
51 |
+
. "<br><br>";
|
52 |
+
}
|
53 |
|
54 |
+
echo $step . ". Deactivating plugin" . "<br>";
|
55 |
+
rl_deactivate_plugin( RSSSL()->really_simple_ssl->plugin_dir . "/"
|
56 |
+
. RSSSL()->really_simple_ssl->plugin_filename );
|
57 |
|
58 |
+
$step ++;
|
59 |
+
echo $step . ". Completed with <b>"
|
60 |
+
. count( RSSSL()->really_simple_ssl->errors ) . "</b> error(s)" . "<br>";
|
61 |
|
62 |
|
63 |
+
function rl_remove_plugin_from_array( $plugin, $current ) {
|
64 |
+
$key = array_search( $plugin, $current );
|
65 |
+
if ( false !== $key ) {
|
66 |
+
$do_blog = true;
|
67 |
+
unset( $current[ $key ] );
|
68 |
+
}
|
69 |
|
70 |
+
return $current;
|
71 |
+
}
|
72 |
|
73 |
+
function rl_deactivate_plugin( $plugin ) {
|
74 |
+
$plugin = plugin_basename( trim( $plugin ) );
|
75 |
|
76 |
+
if ( is_multisite() ) {
|
|
|
|
|
77 |
|
78 |
+
$network_current = get_site_option( 'active_sitewide_plugins', array() );
|
79 |
+
if ( is_plugin_active_for_network( $plugin ) ) {
|
80 |
+
unset( $network_current[ $plugin ] );
|
81 |
+
}
|
82 |
+
update_site_option( 'active_sitewide_plugins', $network_current );
|
83 |
+
|
84 |
+
//remove plugin one by one on each site
|
85 |
+
$args = array(
|
86 |
+
'public' => 1,
|
87 |
+
);
|
88 |
+
$sites = get_sites($args);
|
89 |
+
foreach ( $sites as $site ) {
|
90 |
+
switch_to_blog($site->blog_id);
|
91 |
+
$current = get_option( 'active_plugins', array() );
|
92 |
+
$current = rl_remove_plugin_from_array( $plugin, $current );
|
93 |
+
update_option( 'active_plugins', $current );
|
94 |
+
restore_current_blog(); //switches back to previous blog, not current, so we have to do it each loop
|
95 |
+
}
|
96 |
+
|
97 |
+
} else {
|
98 |
+
$current = get_option( 'active_plugins', array() );
|
99 |
+
$current = rl_remove_plugin_from_array( $plugin, $current );
|
100 |
+
update_option( 'active_plugins', $current );
|
101 |
+
}
|
102 |
+
update_option( 'active_plugins', $current );
|
103 |
}
|
104 |
|
105 |
/**
|
106 |
* Helper function to find Wordpress base path.
|
107 |
*/
|
108 |
function find_wordpress_base_path() {
|
109 |
+
$dir = dirname( __FILE__ );
|
110 |
+
do {
|
111 |
+
if ( file_exists( $dir . "/wp-load.php" ) ) {
|
112 |
+
return $dir;
|
113 |
+
}
|
114 |
+
if ( file_exists( $dir . "/wp" ) ) {
|
115 |
+
return $dir . "/wp";
|
116 |
+
}
|
117 |
+
} while ( $dir = realpath( "$dir/.." ) );
|
118 |
+
|
119 |
+
return null;
|
|
|
|
|
|
|
120 |
}
|
121 |
|
122 |
?>
|
grid/css/grid-rtl.css
ADDED
@@ -0,0 +1,361 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#wpcontent {
|
2 |
+
padding: 0;
|
3 |
+
}
|
4 |
+
#wpcontent .nav-tab-wrapper {
|
5 |
+
height: 60px;
|
6 |
+
background-color: #fff;
|
7 |
+
display: flex;
|
8 |
+
align-items: center;
|
9 |
+
}
|
10 |
+
#wpcontent .nav-tab {
|
11 |
+
background: inherit;
|
12 |
+
border: 0;
|
13 |
+
}
|
14 |
+
#wpcontent .rsssl-logo-container {
|
15 |
+
margin-left: 25px;
|
16 |
+
margin-bottom: 10px;
|
17 |
+
}
|
18 |
+
#wpcontent .header-links {
|
19 |
+
display: flex;
|
20 |
+
flex: 1;
|
21 |
+
justify-content: flex-end;
|
22 |
+
flex-direction: row;
|
23 |
+
align-items: center;
|
24 |
+
margin-right: 140px;
|
25 |
+
}
|
26 |
+
#wpcontent .header-links .documentation {
|
27 |
+
padding-right: 25px;
|
28 |
+
}
|
29 |
+
.rsssl-grid {
|
30 |
+
margin-left: 25px;
|
31 |
+
position: relative;
|
32 |
+
display: flex;
|
33 |
+
flex-direction: row;
|
34 |
+
flex-wrap: wrap;
|
35 |
+
/*
|
36 |
+
Footers
|
37 |
+
*/
|
38 |
+
/*
|
39 |
+
Dots
|
40 |
+
*/
|
41 |
+
}
|
42 |
+
.rsssl-grid .rsssl-item {
|
43 |
+
width: 800px;
|
44 |
+
height: 475px;
|
45 |
+
z-index: 1;
|
46 |
+
}
|
47 |
+
.rsssl-grid .rsssl-item.small {
|
48 |
+
width: 400px;
|
49 |
+
}
|
50 |
+
.rsssl-grid .rsssl-item.settings .item-container .rsssl-grid-item-footer {
|
51 |
+
justify-content: flex-start;
|
52 |
+
}
|
53 |
+
.rsssl-grid .rsssl-item .item-container {
|
54 |
+
background-color: #fff;
|
55 |
+
position: relative;
|
56 |
+
box-shadow: 0px 0px 5px 5px rgba(222, 222, 222, 0.2);
|
57 |
+
width: 780px;
|
58 |
+
height: 455px;
|
59 |
+
}
|
60 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header {
|
61 |
+
display: flex;
|
62 |
+
align-items: center;
|
63 |
+
justify-content: space-between;
|
64 |
+
margin-top: 10px;
|
65 |
+
height: 60px;
|
66 |
+
border-bottom: 1px solid #dedede;
|
67 |
+
}
|
68 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header h3 {
|
69 |
+
margin-left: 15px;
|
70 |
+
}
|
71 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header .rsssl-secondary-header-item {
|
72 |
+
display: flex;
|
73 |
+
color: #3c3c3c;
|
74 |
+
margin-right: 10px;
|
75 |
+
}
|
76 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header .rsssl-secondary-header-item .open-task-count {
|
77 |
+
padding-left: 3px;
|
78 |
+
}
|
79 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header .rsssl-secondary-header-item .rsssl-save-settings-feedback {
|
80 |
+
color: red;
|
81 |
+
}
|
82 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-table-td-main-content {
|
83 |
+
padding-left: 15px;
|
84 |
+
}
|
85 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content {
|
86 |
+
height: 310px;
|
87 |
+
margin: 10px 10px 15px 15px;
|
88 |
+
border-bottom: 1px solid #dedede;
|
89 |
+
overflow-x: hidden;
|
90 |
+
/*
|
91 |
+
Progress bar
|
92 |
+
*/
|
93 |
+
/*
|
94 |
+
Settings
|
95 |
+
*/
|
96 |
+
/*
|
97 |
+
Tips and Tricks
|
98 |
+
*/
|
99 |
+
/*
|
100 |
+
Default bullet style
|
101 |
+
*/
|
102 |
+
/*
|
103 |
+
Support forum block
|
104 |
+
*/
|
105 |
+
/*
|
106 |
+
Other plugins
|
107 |
+
*/
|
108 |
+
/*
|
109 |
+
Other plugins
|
110 |
+
*/
|
111 |
+
/*
|
112 |
+
Progress labels
|
113 |
+
*/
|
114 |
+
}
|
115 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .progress-bar-container {
|
116 |
+
margin: 15px 15px 15px 0;
|
117 |
+
}
|
118 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .progress {
|
119 |
+
overflow: hidden;
|
120 |
+
height: 20px;
|
121 |
+
border-radius: 5px;
|
122 |
+
background-color: #f7f7f7;
|
123 |
+
}
|
124 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .progress .bar {
|
125 |
+
height: 100%;
|
126 |
+
background-color: #61ce70;
|
127 |
+
}
|
128 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .progress-text {
|
129 |
+
display: flex;
|
130 |
+
align-items: center;
|
131 |
+
margin: 10px;
|
132 |
+
padding-top: 10px;
|
133 |
+
padding-bottom: 10px;
|
134 |
+
}
|
135 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .progress-text .rsssl-progress-percentage {
|
136 |
+
font-size: 32px;
|
137 |
+
font-weight: 900;
|
138 |
+
}
|
139 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .progress-text .rsssl-progress-text {
|
140 |
+
display: flex;
|
141 |
+
flex-direction: row;
|
142 |
+
margin-left: 10px;
|
143 |
+
}
|
144 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .progress-text .rsssl-progress-text a {
|
145 |
+
margin-left: 3px;
|
146 |
+
}
|
147 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .progress-text .rsssl-progress-text .rsssl-progress-count {
|
148 |
+
margin-left: 3px;
|
149 |
+
margin-right: 3px;
|
150 |
+
}
|
151 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-settings .form-table {
|
152 |
+
overflow: hidden;
|
153 |
+
}
|
154 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-settings .form-table .dashicons-editor-help {
|
155 |
+
font-size: 20px;
|
156 |
+
}
|
157 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-settings .form-table tbody {
|
158 |
+
display: flex;
|
159 |
+
flex-direction: column;
|
160 |
+
}
|
161 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-settings .form-table tbody tr {
|
162 |
+
padding-bottom: 10px;
|
163 |
+
width: 100%;
|
164 |
+
display: flex;
|
165 |
+
align-items: center;
|
166 |
+
flex-direction: row;
|
167 |
+
}
|
168 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-settings .form-table tbody tr th {
|
169 |
+
padding: 10px 0 0 0 !important;
|
170 |
+
vertical-align: middle !important;
|
171 |
+
display: flex;
|
172 |
+
width: 85%;
|
173 |
+
}
|
174 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-settings .form-table tbody tr th .rsssl-settings-text {
|
175 |
+
font-weight: normal;
|
176 |
+
}
|
177 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-settings .form-table tbody tr th .rsssl-tooltip-right {
|
178 |
+
padding-right: 15px;
|
179 |
+
}
|
180 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-settings .form-table tbody tr td {
|
181 |
+
text-align: right;
|
182 |
+
padding: 0;
|
183 |
+
margin: 0;
|
184 |
+
}
|
185 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-settings h2 {
|
186 |
+
display: none;
|
187 |
+
}
|
188 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks-element {
|
189 |
+
display: flex;
|
190 |
+
justify-content: space-between;
|
191 |
+
margin-right: 10px;
|
192 |
+
}
|
193 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks-element .rsssl-tips-tricks-content {
|
194 |
+
width: 80%;
|
195 |
+
color: #3c3c3c;
|
196 |
+
padding-bottom: 15px;
|
197 |
+
}
|
198 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks-read-more a {
|
199 |
+
text-decoration: none;
|
200 |
+
}
|
201 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .tips-tricks-bottom {
|
202 |
+
position: absolute;
|
203 |
+
bottom: 85px;
|
204 |
+
color: #3c3c3c;
|
205 |
+
}
|
206 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-bullet {
|
207 |
+
height: 15px;
|
208 |
+
width: 15px;
|
209 |
+
border-radius: 50%;
|
210 |
+
margin-right: 10px;
|
211 |
+
background-color: lightgrey;
|
212 |
+
text-decoration: none;
|
213 |
+
}
|
214 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container {
|
215 |
+
display: flex;
|
216 |
+
flex-wrap: wrap;
|
217 |
+
flex-direction: row;
|
218 |
+
}
|
219 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums {
|
220 |
+
display: flex;
|
221 |
+
width: 50%;
|
222 |
+
}
|
223 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums a {
|
224 |
+
text-decoration: none;
|
225 |
+
color: #3c3c3c;
|
226 |
+
display: flex;
|
227 |
+
align-items: center;
|
228 |
+
}
|
229 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums .rsssl-bullet {
|
230 |
+
margin: 7px;
|
231 |
+
background-color: lightgrey;
|
232 |
+
float: left;
|
233 |
+
}
|
234 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums .rsssl-bullet:hover {
|
235 |
+
background-color: #FBC43D;
|
236 |
+
}
|
237 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums .rsssl-forums-content {
|
238 |
+
float: left;
|
239 |
+
color: #3c3c3c;
|
240 |
+
}
|
241 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums .rsssl-forums-content:hover {
|
242 |
+
text-decoration: underline;
|
243 |
+
}
|
244 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-feedback {
|
245 |
+
color: red;
|
246 |
+
}
|
247 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell {
|
248 |
+
display: flex !important;
|
249 |
+
flex-direction: row;
|
250 |
+
padding: 6px;
|
251 |
+
align-items: center;
|
252 |
+
color: #3c3c3c;
|
253 |
+
}
|
254 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .wpsi-red {
|
255 |
+
background-color: red;
|
256 |
+
}
|
257 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .cmplz-blue {
|
258 |
+
background-color: #27ADEA;
|
259 |
+
}
|
260 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .zip-pink {
|
261 |
+
background-color: #E366A1;
|
262 |
+
}
|
263 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .plugin-status {
|
264 |
+
margin-left: auto;
|
265 |
+
}
|
266 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-status {
|
267 |
+
display: block;
|
268 |
+
min-width: 60px;
|
269 |
+
text-align: center;
|
270 |
+
border-radius: 15px;
|
271 |
+
padding: 3px;
|
272 |
+
font-size: 0.8em;
|
273 |
+
font-weight: 600;
|
274 |
+
}
|
275 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-premium {
|
276 |
+
background-color: #FBC43D;
|
277 |
+
}
|
278 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-success {
|
279 |
+
background-color: #61ce70;
|
280 |
+
color: white;
|
281 |
+
}
|
282 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-open {
|
283 |
+
background-color: #FBC43D;
|
284 |
+
}
|
285 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-warning {
|
286 |
+
background-color: red;
|
287 |
+
color: white;
|
288 |
+
}
|
289 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-footer {
|
290 |
+
display: flex;
|
291 |
+
align-items: center;
|
292 |
+
margin: 10px;
|
293 |
+
height: 50px;
|
294 |
+
bottom: 0;
|
295 |
+
width: 95%;
|
296 |
+
}
|
297 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-footer .button-primary {
|
298 |
+
justify-content: flex-start;
|
299 |
+
}
|
300 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-footer #rsssl-feedback {
|
301 |
+
font-weight: 600;
|
302 |
+
color: #61ce70;
|
303 |
+
padding-left: 10px;
|
304 |
+
}
|
305 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-deactivate-keep-ssl th,
|
306 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-deactivate-keep-ssl span {
|
307 |
+
display: none;
|
308 |
+
}
|
309 |
+
.rsssl-grid .rsssl-item.half-height .item-container {
|
310 |
+
height: 237.5px;
|
311 |
+
}
|
312 |
+
.rsssl-grid .rsssl-item.half-height .item-container .rsssl-grid-item-content {
|
313 |
+
height: 100px;
|
314 |
+
}
|
315 |
+
.rsssl-grid .rsssl-item.small .item-container {
|
316 |
+
width: 380px;
|
317 |
+
}
|
318 |
+
.rsssl-grid .rsssl-item.no-border .item-container {
|
319 |
+
border: none;
|
320 |
+
}
|
321 |
+
.rsssl-grid .rsssl-item.no-background .item-container {
|
322 |
+
background-color: #f2f2f2;
|
323 |
+
}
|
324 |
+
.rsssl-grid #rsssl-progress-footer {
|
325 |
+
width: 100%;
|
326 |
+
text-align: right;
|
327 |
+
margin-right: 10px;
|
328 |
+
}
|
329 |
+
.rsssl-grid #rsssl-progress-footer .footer-left {
|
330 |
+
margin-left: 0 !important;
|
331 |
+
float: left;
|
332 |
+
margin-top: -5px;
|
333 |
+
font-weight: 600;
|
334 |
+
}
|
335 |
+
.rsssl-grid #rsssl-progress-footer .footer-left .upsell {
|
336 |
+
min-width: 80px;
|
337 |
+
}
|
338 |
+
.rsssl-grid #rsssl-progress-footer .rsssl-footer-item {
|
339 |
+
margin-left: 20px;
|
340 |
+
}
|
341 |
+
.rsssl-grid .rsssl-system-status-footer-info {
|
342 |
+
font-size: 0.9em;
|
343 |
+
width: 100%;
|
344 |
+
text-align: right;
|
345 |
+
}
|
346 |
+
.rsssl-grid .rsssl-system-status-footer-info .system-status-info {
|
347 |
+
margin-left: 6px;
|
348 |
+
}
|
349 |
+
.rsssl-grid .dot {
|
350 |
+
height: 10px;
|
351 |
+
width: 10px;
|
352 |
+
border-radius: 50%;
|
353 |
+
display: inline-block;
|
354 |
+
}
|
355 |
+
.rsssl-grid .rsssl-dot-success {
|
356 |
+
background-color: #61ce70;
|
357 |
+
}
|
358 |
+
.rsssl-grid .rsssl-dot-error {
|
359 |
+
background-color: #d7263d;
|
360 |
+
}
|
361 |
+
/*# sourceMappingURL=grid-rtl.css.map */
|
grid/css/grid-rtl.css.map
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
{"version":3,"sources":["grid-rtl.less"],"names":[],"mappings":"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","file":"grid-rtl.css"}
|
grid/css/grid-rtl.less
ADDED
@@ -0,0 +1,441 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@gridblock_height: 475px;
|
2 |
+
@gridblock_width: 800px;
|
3 |
+
@gridblock_width_small:400px;
|
4 |
+
@grid_margin: 10px;
|
5 |
+
@grey_light:#cecece;
|
6 |
+
@box_shadow_color: rgba(222, 222, 222, 0.2);
|
7 |
+
@border_color: #dedede;
|
8 |
+
@color-success: #61ce70;
|
9 |
+
@color_warning: red;
|
10 |
+
@color_open: #FBC43D;
|
11 |
+
@light-text-color: #3c3c3c;
|
12 |
+
@light-grey: lightgrey;
|
13 |
+
|
14 |
+
// Override default WP settings style
|
15 |
+
#wpcontent {
|
16 |
+
padding: 0;
|
17 |
+
|
18 |
+
.nav-tab-wrapper {
|
19 |
+
height: 60px;
|
20 |
+
background-color: #fff;
|
21 |
+
display: flex;
|
22 |
+
align-items: center;
|
23 |
+
}.nav-tab {
|
24 |
+
background: inherit;
|
25 |
+
border: 0;
|
26 |
+
}
|
27 |
+
.rsssl-logo-container {
|
28 |
+
margin-left: 25px;
|
29 |
+
margin-bottom: 10px;
|
30 |
+
}
|
31 |
+
.header-links {
|
32 |
+
display: flex;
|
33 |
+
flex: 1;
|
34 |
+
justify-content: flex-end;
|
35 |
+
flex-direction: row;
|
36 |
+
align-items: center;
|
37 |
+
margin-right: 140px;
|
38 |
+
.documentation {
|
39 |
+
padding-right: 25px;
|
40 |
+
}
|
41 |
+
}
|
42 |
+
}
|
43 |
+
|
44 |
+
.rsssl-grid {
|
45 |
+
margin-left: 25px;
|
46 |
+
position: relative;
|
47 |
+
display: flex;
|
48 |
+
flex-direction: row;
|
49 |
+
flex-wrap: wrap;
|
50 |
+
|
51 |
+
.rsssl-item {
|
52 |
+
width: @gridblock_width;
|
53 |
+
&.small {
|
54 |
+
width: @gridblock_width_small;
|
55 |
+
}
|
56 |
+
&.settings {
|
57 |
+
.item-container {
|
58 |
+
.rsssl-grid-item-footer {
|
59 |
+
justify-content: flex-start;
|
60 |
+
}
|
61 |
+
}
|
62 |
+
}
|
63 |
+
//position: absolute;
|
64 |
+
height: @gridblock_height;
|
65 |
+
z-index: 1;
|
66 |
+
.item-container {
|
67 |
+
//border: 1px solid @border_color;
|
68 |
+
background-color: #fff;
|
69 |
+
position: relative;
|
70 |
+
box-shadow: 0px 0px 5px 5px @box_shadow_color;
|
71 |
+
//margin-left: @grid_margin;
|
72 |
+
width: @gridblock_width - 2* @grid_margin;
|
73 |
+
height: @gridblock_height - 2 * @grid_margin;
|
74 |
+
.rsssl-grid-item-header {
|
75 |
+
display: flex;
|
76 |
+
align-items: center;
|
77 |
+
justify-content: space-between;
|
78 |
+
margin-top: @grid_margin;
|
79 |
+
//margin-left: @grid_margin;
|
80 |
+
height: 60px;
|
81 |
+
border-bottom: 1px solid @border_color;
|
82 |
+
h3 {
|
83 |
+
margin-left: 15px;
|
84 |
+
}
|
85 |
+
.rsssl-secondary-header-item {
|
86 |
+
display: flex;
|
87 |
+
color: @light-text-color;
|
88 |
+
margin-right: 10px;
|
89 |
+
.open-task-count {
|
90 |
+
padding-left: 3px;
|
91 |
+
}
|
92 |
+
.rsssl-save-settings-feedback {
|
93 |
+
color: @color_warning;
|
94 |
+
}
|
95 |
+
}
|
96 |
+
}
|
97 |
+
.rsssl-table-td-main-content {
|
98 |
+
padding-left: 15px;
|
99 |
+
}
|
100 |
+
.rsssl-grid-item-content {
|
101 |
+
height: 310px;
|
102 |
+
margin: 10px 10px 15px 15px;
|
103 |
+
//margin: @grid_margin;
|
104 |
+
border-bottom: 1px solid @border_color;
|
105 |
+
//overflow-y: scroll;
|
106 |
+
overflow-x: hidden;
|
107 |
+
|
108 |
+
/*
|
109 |
+
Progress bar
|
110 |
+
*/
|
111 |
+
|
112 |
+
.progress-bar-container {
|
113 |
+
margin: 15px 15px 15px 0;
|
114 |
+
}
|
115 |
+
|
116 |
+
.progress {
|
117 |
+
overflow: hidden;
|
118 |
+
height: 20px;
|
119 |
+
border-radius: 5px;
|
120 |
+
background-color: #f7f7f7;
|
121 |
+
}
|
122 |
+
|
123 |
+
.progress .bar {
|
124 |
+
height: 100%;
|
125 |
+
background-color: @color-success;
|
126 |
+
|
127 |
+
}
|
128 |
+
|
129 |
+
.progress-text {
|
130 |
+
display: flex;
|
131 |
+
align-items: center;
|
132 |
+
margin: 10px;
|
133 |
+
padding-top: 10px;
|
134 |
+
padding-bottom: 10px;
|
135 |
+
.rsssl-progress-percentage {
|
136 |
+
font-size: 32px;
|
137 |
+
font-weight: 900;
|
138 |
+
}
|
139 |
+
.rsssl-progress-text {
|
140 |
+
display: flex;
|
141 |
+
flex-direction: row;
|
142 |
+
margin-left: @grid_margin;
|
143 |
+
a {
|
144 |
+
margin-left: 3px;
|
145 |
+
}
|
146 |
+
.rsssl-progress-count {
|
147 |
+
margin-left: 3px;
|
148 |
+
margin-right: 3px;
|
149 |
+
}
|
150 |
+
}
|
151 |
+
}
|
152 |
+
|
153 |
+
/*
|
154 |
+
Settings
|
155 |
+
*/
|
156 |
+
|
157 |
+
.rsssl-settings {
|
158 |
+
.form-table {
|
159 |
+
overflow: hidden;
|
160 |
+
.dashicons-editor-help {
|
161 |
+
font-size: 20px;
|
162 |
+
}
|
163 |
+
|
164 |
+
tbody {
|
165 |
+
display: flex;
|
166 |
+
flex-direction: column;
|
167 |
+
|
168 |
+
tr {
|
169 |
+
padding-bottom: @grid_margin;
|
170 |
+
width: 100%;
|
171 |
+
display: flex;
|
172 |
+
align-items: center;
|
173 |
+
flex-direction: row;
|
174 |
+
|
175 |
+
th {
|
176 |
+
// Important to override default WP style
|
177 |
+
padding: 10px 0 0 0 !important;
|
178 |
+
vertical-align: middle !important;
|
179 |
+
display: flex;
|
180 |
+
width: 85%;
|
181 |
+
.rsssl-settings-text {
|
182 |
+
font-weight: normal;
|
183 |
+
}
|
184 |
+
.rsssl-tooltip-right {
|
185 |
+
padding-right: 15px;
|
186 |
+
}
|
187 |
+
}
|
188 |
+
|
189 |
+
td {
|
190 |
+
text-align: right;
|
191 |
+
padding: 0;
|
192 |
+
margin: 0;
|
193 |
+
}
|
194 |
+
}
|
195 |
+
}
|
196 |
+
}
|
197 |
+
h2 {
|
198 |
+
display: none;
|
199 |
+
}
|
200 |
+
// Hide save button
|
201 |
+
.button-primary {
|
202 |
+
//display: none;
|
203 |
+
}
|
204 |
+
}
|
205 |
+
|
206 |
+
/*
|
207 |
+
Tips and Tricks
|
208 |
+
*/
|
209 |
+
.rsssl-tips-tricks-element {
|
210 |
+
display: flex;
|
211 |
+
justify-content: space-between;
|
212 |
+
margin-right: @grid_margin;
|
213 |
+
.rsssl-tips-tricks-content {
|
214 |
+
width: 80%;
|
215 |
+
color: @light-text-color;
|
216 |
+
padding-bottom: 15px;
|
217 |
+
}
|
218 |
+
}
|
219 |
+
.rsssl-tips-tricks-read-more a {
|
220 |
+
text-decoration: none;
|
221 |
+
}
|
222 |
+
.tips-tricks-bottom {
|
223 |
+
position: absolute;
|
224 |
+
bottom: 85px;
|
225 |
+
color: @light-text-color;
|
226 |
+
}
|
227 |
+
// End tips and tricks
|
228 |
+
|
229 |
+
/*
|
230 |
+
Default bullet style
|
231 |
+
*/
|
232 |
+
.rsssl-bullet {
|
233 |
+
height: 15px;
|
234 |
+
width: 15px;
|
235 |
+
border-radius: 50%;
|
236 |
+
margin-right: 10px;
|
237 |
+
background-color: lightgrey;
|
238 |
+
text-decoration: none;
|
239 |
+
}
|
240 |
+
|
241 |
+
/*
|
242 |
+
Support forum block
|
243 |
+
*/
|
244 |
+
|
245 |
+
#rsssl-support-forums-container {
|
246 |
+
display: flex;
|
247 |
+
flex-wrap: wrap;
|
248 |
+
flex-direction: row;
|
249 |
+
.rsssl-support-forums {
|
250 |
+
display: flex;
|
251 |
+
width: 50%;
|
252 |
+
a {
|
253 |
+
text-decoration: none;
|
254 |
+
color: @light-text-color;
|
255 |
+
display: flex;
|
256 |
+
align-items: center;
|
257 |
+
&:hover {
|
258 |
+
//color: @color_open;
|
259 |
+
}
|
260 |
+
}
|
261 |
+
|
262 |
+
.rsssl-bullet {
|
263 |
+
margin: 7px;
|
264 |
+
background-color: @light-grey;
|
265 |
+
float: left;
|
266 |
+
&:hover {
|
267 |
+
background-color: @color_open;
|
268 |
+
}
|
269 |
+
}
|
270 |
+
|
271 |
+
.rsssl-forums-content {
|
272 |
+
float: left;
|
273 |
+
color: @light-text-color;
|
274 |
+
&:hover {
|
275 |
+
text-decoration: underline;
|
276 |
+
}
|
277 |
+
}
|
278 |
+
}
|
279 |
+
}
|
280 |
+
|
281 |
+
#rsssl-feedback {
|
282 |
+
color: red;
|
283 |
+
}
|
284 |
+
|
285 |
+
/*
|
286 |
+
Other plugins
|
287 |
+
*/
|
288 |
+
|
289 |
+
.rsssl-upsell {
|
290 |
+
display: flex !important; //we need important here, because the grid switch overrides it on element level
|
291 |
+
flex-direction: row;
|
292 |
+
padding: 6px;
|
293 |
+
align-items: center;
|
294 |
+
color: @light-text-color;
|
295 |
+
|
296 |
+
.wpsi-red {
|
297 |
+
background-color: red;
|
298 |
+
}
|
299 |
+
|
300 |
+
.cmplz-blue {
|
301 |
+
background-color: #27ADEA;
|
302 |
+
}
|
303 |
+
|
304 |
+
.zip-pink {
|
305 |
+
background-color: #E366A1;
|
306 |
+
}
|
307 |
+
|
308 |
+
.plugin-status {
|
309 |
+
margin-left: auto;
|
310 |
+
}
|
311 |
+
}
|
312 |
+
|
313 |
+
/*
|
314 |
+
Other plugins
|
315 |
+
*/
|
316 |
+
|
317 |
+
/*
|
318 |
+
Progress labels
|
319 |
+
*/
|
320 |
+
.rsssl-progress-status {
|
321 |
+
display: block;
|
322 |
+
min-width: 60px;
|
323 |
+
text-align: center;
|
324 |
+
border-radius: 15px;
|
325 |
+
padding: 3px;
|
326 |
+
font-size: 0.8em;
|
327 |
+
font-weight: 600;
|
328 |
+
}
|
329 |
+
|
330 |
+
.rsssl-premium {
|
331 |
+
background-color: @color_open;
|
332 |
+
}
|
333 |
+
.rsssl-success {
|
334 |
+
background-color: @color-success;
|
335 |
+
color: white;
|
336 |
+
}
|
337 |
+
|
338 |
+
.rsssl-open {
|
339 |
+
background-color: @color_open;
|
340 |
+
}
|
341 |
+
|
342 |
+
.rsssl-warning {
|
343 |
+
background-color: @color_warning;
|
344 |
+
color: white;
|
345 |
+
}
|
346 |
+
|
347 |
+
}
|
348 |
+
.rsssl-grid-item-footer {
|
349 |
+
display: flex;
|
350 |
+
align-items: center;
|
351 |
+
//justify-content: flex-end;
|
352 |
+
//position: absolute;
|
353 |
+
margin: @grid_margin;
|
354 |
+
height: 50px;
|
355 |
+
bottom: 0;
|
356 |
+
width: 95%;
|
357 |
+
.button-primary {
|
358 |
+
justify-content: flex-start;
|
359 |
+
}
|
360 |
+
#rsssl-feedback {
|
361 |
+
font-weight: 600;
|
362 |
+
color: @color-success;
|
363 |
+
padding-left: 10px;
|
364 |
+
}
|
365 |
+
}
|
366 |
+
.rsssl-deactivate-keep-ssl {
|
367 |
+
th, span {
|
368 |
+
display: none;
|
369 |
+
}
|
370 |
+
}
|
371 |
+
|
372 |
+
}
|
373 |
+
&.half-height {
|
374 |
+
.item-container {
|
375 |
+
height: @gridblock_height / 2;
|
376 |
+
.rsssl-grid-item-content {
|
377 |
+
height: 100px;
|
378 |
+
}
|
379 |
+
}
|
380 |
+
}
|
381 |
+
&.small {
|
382 |
+
.item-container {
|
383 |
+
width: @gridblock_width_small - 2* @grid_margin;
|
384 |
+
}
|
385 |
+
}
|
386 |
+
&.no-border {
|
387 |
+
.item-container {
|
388 |
+
border: none;
|
389 |
+
}
|
390 |
+
}
|
391 |
+
&.no-background {
|
392 |
+
.item-container {
|
393 |
+
background-color: #f2f2f2;
|
394 |
+
//border: 1px solid @border_color;
|
395 |
+
}
|
396 |
+
}
|
397 |
+
}
|
398 |
+
/*
|
399 |
+
Footers
|
400 |
+
*/
|
401 |
+
#rsssl-progress-footer {
|
402 |
+
width: 100%;
|
403 |
+
text-align: right;
|
404 |
+
margin-right: @grid_margin;
|
405 |
+
.footer-left {
|
406 |
+
margin-left: 0 !important;
|
407 |
+
float: left;
|
408 |
+
margin-top: -5px;
|
409 |
+
font-weight: 600;
|
410 |
+
.upsell {
|
411 |
+
min-width: 80px;
|
412 |
+
}
|
413 |
+
}
|
414 |
+
.rsssl-footer-item {
|
415 |
+
margin-left: 20px;
|
416 |
+
}
|
417 |
+
}
|
418 |
+
.rsssl-system-status-footer-info {
|
419 |
+
font-size: 0.9em;
|
420 |
+
width: 100%;
|
421 |
+
text-align: right;
|
422 |
+
.system-status-info {
|
423 |
+
margin-left: 6px;
|
424 |
+
}
|
425 |
+
}
|
426 |
+
/*
|
427 |
+
Dots
|
428 |
+
*/
|
429 |
+
.dot {
|
430 |
+
height: 10px;
|
431 |
+
width: 10px;
|
432 |
+
border-radius: 50%;
|
433 |
+
display: inline-block;
|
434 |
+
}
|
435 |
+
.rsssl-dot-success {
|
436 |
+
background-color: #61ce70;
|
437 |
+
}
|
438 |
+
.rsssl-dot-error {
|
439 |
+
background-color: #d7263d;
|
440 |
+
}
|
441 |
+
}
|
grid/css/grid-rtl.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
#wpcontent{padding:0}#wpcontent .nav-tab-wrapper{height:60px;background-color:#fff;display:flex;align-items:center}#wpcontent .nav-tab{background:inherit;border:0}#wpcontent .rsssl-logo-container{margin-left:25px;margin-bottom:10px}#wpcontent .header-links{display:flex;flex:1;justify-content:flex-end;flex-direction:row;align-items:center;margin-right:140px}#wpcontent .header-links .documentation{padding-right:25px}.rsssl-grid{margin-left:25px;position:relative;display:flex;flex-direction:row;flex-wrap:wrap}.rsssl-grid .rsssl-item{width:800px;height:475px;z-index:1}.rsssl-grid .rsssl-item.small{width:400px}.rsssl-grid .rsssl-item.settings .item-container .rsssl-grid-item-footer{justify-content:flex-start}.rsssl-grid .rsssl-item .item-container{background-color:#fff;position:relative;box-shadow:0 0 5px 5px rgba(222,222,222,0.2);width:780px;height:455px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header{display:flex;align-items:center;justify-content:space-between;margin-top:10px;height:60px;border-bottom:1px solid #dedede}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header h3{margin-left:15px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header .rsssl-secondary-header-item{display:flex;color:#3c3c3c;margin-right:10px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header .rsssl-secondary-header-item .open-task-count{padding-left:3px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header .rsssl-secondary-header-item .rsssl-save-settings-feedback{color:red}.rsssl-grid .rsssl-item .item-container .rsssl-table-td-main-content{padding-left:15px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content{height:310px;margin:10px 10px 15px 15px;border-bottom:1px solid #dedede;overflow-x:hidden}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .progress-bar-container{margin:15px 15px 15px 0}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .progress{overflow:hidden;height:20px;border-radius:5px;background-color:#f7f7f7}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .progress .bar{height:100%;background-color:#61ce70}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .progress-text{display:flex;align-items:center;margin:10px;padding-top:10px;padding-bottom:10px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .progress-text .rsssl-progress-percentage{font-size:32px;font-weight:900}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .progress-text .rsssl-progress-text{display:flex;flex-direction:row;margin-left:10px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .progress-text .rsssl-progress-text a{margin-left:3px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .progress-text .rsssl-progress-text .rsssl-progress-count{margin-left:3px;margin-right:3px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-settings .form-table{overflow:hidden}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-settings .form-table .dashicons-editor-help{font-size:20px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-settings .form-table tbody{display:flex;flex-direction:column}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-settings .form-table tbody tr{padding-bottom:10px;width:100%;display:flex;align-items:center;flex-direction:row}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-settings .form-table tbody tr th{padding:10px 0 0 0 !important;vertical-align:middle !important;display:flex;width:85%}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-settings .form-table tbody tr th .rsssl-settings-text{font-weight:normal}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-settings .form-table tbody tr th .rsssl-tooltip-right{padding-right:15px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-settings .form-table tbody tr td{text-align:right;padding:0;margin:0}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-settings h2{display:none}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks-element{display:flex;justify-content:space-between;margin-right:10px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks-element .rsssl-tips-tricks-content{width:80%;color:#3c3c3c;padding-bottom:15px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks-read-more a{text-decoration:none}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .tips-tricks-bottom{position:absolute;bottom:85px;color:#3c3c3c}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-bullet{height:15px;width:15px;border-radius:50%;margin-right:10px;background-color:lightgrey;text-decoration:none}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container{display:flex;flex-wrap:wrap;flex-direction:row}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums{display:flex;width:50%}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums a{text-decoration:none;color:#3c3c3c;display:flex;align-items:center}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums .rsssl-bullet{margin:7px;background-color:lightgrey;float:left}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums .rsssl-bullet:hover{background-color:#fbc43d}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums .rsssl-forums-content{float:left;color:#3c3c3c}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums .rsssl-forums-content:hover{text-decoration:underline}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-feedback{color:red}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell{display:flex !important;flex-direction:row;padding:6px;align-items:center;color:#3c3c3c}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .wpsi-red{background-color:red}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .cmplz-blue{background-color:#27adea}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .zip-pink{background-color:#e366a1}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .plugin-status{margin-left:auto}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-status{display:block;min-width:60px;text-align:center;border-radius:15px;padding:3px;font-size:.8em;font-weight:600}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-premium{background-color:#fbc43d}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-success{background-color:#61ce70;color:white}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-open{background-color:#fbc43d}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-warning{background-color:red;color:white}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-footer{display:flex;align-items:center;margin:10px;height:50px;bottom:0;width:95%}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-footer .button-primary{justify-content:flex-start}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-footer #rsssl-feedback{font-weight:600;color:#61ce70;padding-left:10px}.rsssl-grid .rsssl-item .item-container .rsssl-deactivate-keep-ssl th,.rsssl-grid .rsssl-item .item-container .rsssl-deactivate-keep-ssl span{display:none}.rsssl-grid .rsssl-item.half-height .item-container{height:237.5px}.rsssl-grid .rsssl-item.half-height .item-container .rsssl-grid-item-content{height:100px}.rsssl-grid .rsssl-item.small .item-container{width:380px}.rsssl-grid .rsssl-item.no-border .item-container{border:0}.rsssl-grid .rsssl-item.no-background .item-container{background-color:#f2f2f2}.rsssl-grid #rsssl-progress-footer{width:100%;text-align:right;margin-right:10px}.rsssl-grid #rsssl-progress-footer .footer-left{margin-left:0 !important;float:left;margin-top:-5px;font-weight:600}.rsssl-grid #rsssl-progress-footer .footer-left .upsell{min-width:80px}.rsssl-grid #rsssl-progress-footer .rsssl-footer-item{margin-left:20px}.rsssl-grid .rsssl-system-status-footer-info{font-size:.9em;width:100%;text-align:right}.rsssl-grid .rsssl-system-status-footer-info .system-status-info{margin-left:6px}.rsssl-grid .dot{height:10px;width:10px;border-radius:50%;display:inline-block}.rsssl-grid .rsssl-dot-success{background-color:#61ce70}.rsssl-grid .rsssl-dot-error{background-color:#d7263d}
|
grid/css/grid.css
ADDED
@@ -0,0 +1,678 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.settings_page_rlrsssl_really_simple_ssl #wpcontent,
|
2 |
+
.settings_page_really-simple-ssl #wpcontent {
|
3 |
+
padding: 0;
|
4 |
+
}
|
5 |
+
.settings_page_rlrsssl_really_simple_ssl #wpcontent .rsssl-footer-item form,
|
6 |
+
.settings_page_really-simple-ssl #wpcontent .rsssl-footer-item form {
|
7 |
+
float: left;
|
8 |
+
}
|
9 |
+
.settings_page_rlrsssl_really_simple_ssl #wpcontent .nav-tab,
|
10 |
+
.settings_page_really-simple-ssl #wpcontent .nav-tab {
|
11 |
+
padding: 17px 20px 19px 20px;
|
12 |
+
margin-bottom: 0;
|
13 |
+
color: #444;
|
14 |
+
font-weight: normal;
|
15 |
+
font-size: 1.2em;
|
16 |
+
background: inherit;
|
17 |
+
border: 0;
|
18 |
+
}
|
19 |
+
.settings_page_rlrsssl_really_simple_ssl #wpcontent .nav-tab.nav-tab-active,
|
20 |
+
.settings_page_really-simple-ssl #wpcontent .nav-tab.nav-tab-active {
|
21 |
+
border-bottom: 2px solid #FBC43D !important;
|
22 |
+
background: #fff;
|
23 |
+
padding-bottom: 17px;
|
24 |
+
}
|
25 |
+
.settings_page_rlrsssl_really_simple_ssl #wpcontent .nav-tab-wrapper,
|
26 |
+
.settings_page_really-simple-ssl #wpcontent .nav-tab-wrapper {
|
27 |
+
height: 60px;
|
28 |
+
background-color: #fff;
|
29 |
+
display: flex;
|
30 |
+
align-items: center;
|
31 |
+
border: 0;
|
32 |
+
}
|
33 |
+
.settings_page_rlrsssl_really_simple_ssl #wpcontent .rsssl-logo-container,
|
34 |
+
.settings_page_really-simple-ssl #wpcontent .rsssl-logo-container {
|
35 |
+
margin-left: 25px;
|
36 |
+
}
|
37 |
+
.settings_page_rlrsssl_really_simple_ssl #wpcontent .rsssl-logo-container #rsssl-logo,
|
38 |
+
.settings_page_really-simple-ssl #wpcontent .rsssl-logo-container #rsssl-logo {
|
39 |
+
height: 40px;
|
40 |
+
width: 200px;
|
41 |
+
}
|
42 |
+
.settings_page_rlrsssl_really_simple_ssl #wpcontent .rsssl-logo-container #rsssl-logo img,
|
43 |
+
.settings_page_really-simple-ssl #wpcontent .rsssl-logo-container #rsssl-logo img {
|
44 |
+
width: 200px;
|
45 |
+
}
|
46 |
+
.settings_page_rlrsssl_really_simple_ssl #wpcontent .header-links,
|
47 |
+
.settings_page_really-simple-ssl #wpcontent .header-links {
|
48 |
+
display: flex;
|
49 |
+
flex: 1;
|
50 |
+
justify-content: flex-end;
|
51 |
+
flex-direction: row;
|
52 |
+
align-items: center;
|
53 |
+
margin-right: 20px;
|
54 |
+
}
|
55 |
+
.settings_page_rlrsssl_really_simple_ssl #wpcontent .header-links .documentation,
|
56 |
+
.settings_page_really-simple-ssl #wpcontent .header-links .documentation {
|
57 |
+
text-decoration: underline;
|
58 |
+
}
|
59 |
+
.settings_page_rlrsssl_really_simple_ssl #wpcontent .header-links .header-upsell .documentation,
|
60 |
+
.settings_page_really-simple-ssl #wpcontent .header-links .header-upsell .documentation {
|
61 |
+
margin-left: 25px;
|
62 |
+
}
|
63 |
+
.settings_page_rlrsssl_really_simple_ssl #wpcontent .header-links .header-upsell a,
|
64 |
+
.settings_page_really-simple-ssl #wpcontent .header-links .header-upsell a {
|
65 |
+
text-decoration: none;
|
66 |
+
}
|
67 |
+
.settings_page_rlrsssl_really_simple_ssl #wpcontent .header-links .header-upsell .header-upsell-pro,
|
68 |
+
.settings_page_really-simple-ssl #wpcontent .header-links .header-upsell .header-upsell-pro {
|
69 |
+
color: black;
|
70 |
+
border: 3px solid black;
|
71 |
+
margin: 10px;
|
72 |
+
width: 80px;
|
73 |
+
text-align: center;
|
74 |
+
padding: 5px;
|
75 |
+
border-radius: 20px;
|
76 |
+
font-weight: 600;
|
77 |
+
}
|
78 |
+
.network-admin .rsssl-logo-container {
|
79 |
+
height: 60px;
|
80 |
+
}
|
81 |
+
.rsssl-grid {
|
82 |
+
width: calc(100% - 20px);
|
83 |
+
margin: 10px;
|
84 |
+
position: relative;
|
85 |
+
display: flex;
|
86 |
+
flex-direction: row;
|
87 |
+
flex-wrap: wrap;
|
88 |
+
/*
|
89 |
+
Footers
|
90 |
+
*/
|
91 |
+
/*
|
92 |
+
Dots
|
93 |
+
*/
|
94 |
+
}
|
95 |
+
.rsssl-grid .button-rsssl-tertiary {
|
96 |
+
background-color: #D7263D;
|
97 |
+
color: white;
|
98 |
+
border: 0;
|
99 |
+
}
|
100 |
+
.rsssl-grid .rsssl-wide-button {
|
101 |
+
width: 220px;
|
102 |
+
}
|
103 |
+
.rsssl-grid .rsssl-progress .rsssl-task-list {
|
104 |
+
height: 257px;
|
105 |
+
overflow: hidden;
|
106 |
+
}
|
107 |
+
.rsssl-grid .rsssl-progress .rsssl-toggle-active {
|
108 |
+
text-decoration: underline;
|
109 |
+
}
|
110 |
+
.rsssl-grid .rsssl-progress #rsssl-all-tasks,
|
111 |
+
.rsssl-grid .rsssl-progress #rsssl-remaining-tasks {
|
112 |
+
display: none;
|
113 |
+
}
|
114 |
+
.rsssl-grid .rsssl-progress .rsssl-tasks-container {
|
115 |
+
border-bottom: 1px solid lightgrey;
|
116 |
+
color: lightgrey;
|
117 |
+
}
|
118 |
+
.rsssl-grid .rsssl-progress .rsssl-tasks-container.active {
|
119 |
+
text-decoration: none;
|
120 |
+
border-bottom: 0;
|
121 |
+
color: initial;
|
122 |
+
}
|
123 |
+
.rsssl-grid .rsssl-progress .rsssl-tasks-inactive {
|
124 |
+
text-decoration: underline;
|
125 |
+
color: lightgrey;
|
126 |
+
}
|
127 |
+
.rsssl-grid .rsssl-item {
|
128 |
+
width: 800px;
|
129 |
+
height: 485px;
|
130 |
+
z-index: 1;
|
131 |
+
}
|
132 |
+
.rsssl-grid .rsssl-item.small {
|
133 |
+
width: 400px;
|
134 |
+
}
|
135 |
+
.rsssl-grid .rsssl-item .rsssl-close-warning-x {
|
136 |
+
color: #ccc;
|
137 |
+
font-size: 0.9em;
|
138 |
+
margin-right: 25px;
|
139 |
+
}
|
140 |
+
.rsssl-grid .rsssl-item .item-container {
|
141 |
+
background-color: #fff;
|
142 |
+
position: relative;
|
143 |
+
box-shadow: 0px 0px 5px 5px rgba(222, 222, 222, 0.2);
|
144 |
+
width: 790px;
|
145 |
+
height: 475px;
|
146 |
+
}
|
147 |
+
.rsssl-grid .rsssl-item .item-container .form-table {
|
148 |
+
display: flex;
|
149 |
+
}
|
150 |
+
.rsssl-grid .rsssl-item .item-container .form-table tbody {
|
151 |
+
display: flex;
|
152 |
+
flex-direction: column;
|
153 |
+
flex-wrap: wrap;
|
154 |
+
max-height: 340px;
|
155 |
+
width: 100% !important;
|
156 |
+
}
|
157 |
+
.rsssl-grid .rsssl-item .item-container .form-table tbody tr {
|
158 |
+
padding: 0 0 0 0 !important;
|
159 |
+
display: flex;
|
160 |
+
align-items: center;
|
161 |
+
flex-direction: row;
|
162 |
+
width: 50%;
|
163 |
+
}
|
164 |
+
.rsssl-grid .rsssl-item .item-container .form-table tbody tr td {
|
165 |
+
padding: 0;
|
166 |
+
margin: 0;
|
167 |
+
}
|
168 |
+
.rsssl-grid .rsssl-item .item-container .form-table tbody tr th {
|
169 |
+
margin-left: 0;
|
170 |
+
width: 250px;
|
171 |
+
display: flex;
|
172 |
+
align-items: center;
|
173 |
+
font-size: 13px;
|
174 |
+
font-weight: normal;
|
175 |
+
}
|
176 |
+
.rsssl-grid .rsssl-item .item-container .form-table tbody tr th .dashicons-editor-help {
|
177 |
+
font-size: 26px;
|
178 |
+
}
|
179 |
+
.rsssl-grid .rsssl-item .item-container .form-table tbody tr th .rsssl-tooltip-right {
|
180 |
+
padding-right: 10px;
|
181 |
+
margin-top: -4px;
|
182 |
+
}
|
183 |
+
.rsssl-grid .rsssl-item .item-container .form-table tbody tr th,
|
184 |
+
.rsssl-grid .rsssl-item .item-container .form-table tbody tr td {
|
185 |
+
padding: 10px 0 !important;
|
186 |
+
font-size: 13px;
|
187 |
+
}
|
188 |
+
.rsssl-grid .rsssl-item .item-container .form-table tbody tr th p,
|
189 |
+
.rsssl-grid .rsssl-item .item-container .form-table tbody tr td p {
|
190 |
+
font-size: 13px;
|
191 |
+
}
|
192 |
+
.rsssl-grid .rsssl-item .item-container h2 {
|
193 |
+
display: none;
|
194 |
+
}
|
195 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-save-settings-feedback {
|
196 |
+
margin-right: 20px;
|
197 |
+
color: #d7263d;
|
198 |
+
}
|
199 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header {
|
200 |
+
display: flex;
|
201 |
+
align-items: center;
|
202 |
+
justify-content: space-between;
|
203 |
+
height: 60px;
|
204 |
+
border-bottom: 1px solid #dedede;
|
205 |
+
padding: 0 25px 0 25px;
|
206 |
+
}
|
207 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header .rsssl-instructions a {
|
208 |
+
color: #3c3c3c;
|
209 |
+
}
|
210 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header .rsssl-secondary-header-item {
|
211 |
+
display: flex;
|
212 |
+
color: #3c3c3c;
|
213 |
+
}
|
214 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header .rsssl-secondary-header-item .all-task-count,
|
215 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header .rsssl-secondary-header-item .open-task-count {
|
216 |
+
padding-left: 3px;
|
217 |
+
padding-top: 3px;
|
218 |
+
}
|
219 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header .rsssl-secondary-header-item .all-task-count {
|
220 |
+
margin-right: 5px;
|
221 |
+
}
|
222 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-table-td-main-content {
|
223 |
+
padding-left: 15px;
|
224 |
+
}
|
225 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content {
|
226 |
+
height: 360px;
|
227 |
+
margin: 10px 25px 10px 25px;
|
228 |
+
border-bottom: 1px solid #dedede;
|
229 |
+
/*
|
230 |
+
Progress block
|
231 |
+
*/
|
232 |
+
/*
|
233 |
+
Tips and Tricks
|
234 |
+
*/
|
235 |
+
/*
|
236 |
+
Default bullet style
|
237 |
+
*/
|
238 |
+
/*
|
239 |
+
Support forum block
|
240 |
+
*/
|
241 |
+
/*
|
242 |
+
Other plugins
|
243 |
+
*/
|
244 |
+
/*
|
245 |
+
Progress labels
|
246 |
+
*/
|
247 |
+
}
|
248 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block {
|
249 |
+
padding-top: 10px;
|
250 |
+
}
|
251 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress-bar-container {
|
252 |
+
margin: 0 0 25px 0;
|
253 |
+
}
|
254 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress {
|
255 |
+
overflow: hidden;
|
256 |
+
height: 20px;
|
257 |
+
border-radius: 5px;
|
258 |
+
background-color: #f7f7f7;
|
259 |
+
}
|
260 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress .bar {
|
261 |
+
height: 100%;
|
262 |
+
background-color: #61ce70;
|
263 |
+
}
|
264 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress-text {
|
265 |
+
display: flex;
|
266 |
+
align-items: center;
|
267 |
+
margin: 10px 0;
|
268 |
+
padding-top: 10px;
|
269 |
+
padding-bottom: 10px;
|
270 |
+
}
|
271 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress-text .rsssl-progress-percentage {
|
272 |
+
font-size: 32px;
|
273 |
+
font-weight: 700;
|
274 |
+
}
|
275 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress-text .rsssl-progress-text {
|
276 |
+
display: flex;
|
277 |
+
flex-direction: row;
|
278 |
+
margin-left: 10px;
|
279 |
+
}
|
280 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress-text .rsssl-progress-text a {
|
281 |
+
margin-left: 3px;
|
282 |
+
}
|
283 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress-text .rsssl-progress-text .rsssl-progress-count {
|
284 |
+
margin-left: 3px;
|
285 |
+
margin-right: 3px;
|
286 |
+
}
|
287 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .rsssl-progress-table td {
|
288 |
+
padding: 10px 10px 10px 0;
|
289 |
+
}
|
290 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .rsssl-progress-table td + td {
|
291 |
+
padding-left: 15px;
|
292 |
+
}
|
293 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks {
|
294 |
+
color: #3c3c3c;
|
295 |
+
padding-bottom: 15px;
|
296 |
+
}
|
297 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks .tips-tricks-content {
|
298 |
+
display: flex;
|
299 |
+
flex-direction: column;
|
300 |
+
margin-right: 10px;
|
301 |
+
height: 340px;
|
302 |
+
}
|
303 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks .tips-tricks-content .tips-tricks-top {
|
304 |
+
flex-grow: 1;
|
305 |
+
}
|
306 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks .tips-tricks-content .tips-tricks-top .rsssl-tips-tricks-element {
|
307 |
+
margin-top: 10px;
|
308 |
+
margin-bottom: 15px;
|
309 |
+
display: flex;
|
310 |
+
flex-direction: row;
|
311 |
+
justify-content: space-between;
|
312 |
+
}
|
313 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks .tips-tricks-content .tips-tricks-top .rsssl-tips-tricks-content {
|
314 |
+
padding-right: 20px;
|
315 |
+
}
|
316 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks .tips-tricks-content .tips-tricks-bottom {
|
317 |
+
color: #3c3c3c;
|
318 |
+
}
|
319 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks .rsssl-tips-tricks-read-more a {
|
320 |
+
text-decoration: none;
|
321 |
+
white-space: nowrap;
|
322 |
+
}
|
323 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-bullet {
|
324 |
+
height: 13px;
|
325 |
+
width: 13px;
|
326 |
+
border-radius: 50%;
|
327 |
+
margin-right: 10px;
|
328 |
+
background-color: lightgrey;
|
329 |
+
text-decoration: none;
|
330 |
+
}
|
331 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container {
|
332 |
+
display: flex;
|
333 |
+
flex-wrap: wrap;
|
334 |
+
flex-direction: row;
|
335 |
+
}
|
336 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums {
|
337 |
+
display: flex;
|
338 |
+
width: 50%;
|
339 |
+
}
|
340 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums a {
|
341 |
+
text-decoration: none;
|
342 |
+
color: #3c3c3c;
|
343 |
+
display: flex;
|
344 |
+
align-items: center;
|
345 |
+
}
|
346 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums .rsssl-bullet {
|
347 |
+
margin: 7px 7px 7px 0;
|
348 |
+
background-color: lightgrey;
|
349 |
+
float: left;
|
350 |
+
}
|
351 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums .rsssl-bullet:hover {
|
352 |
+
background-color: #FBC43D;
|
353 |
+
}
|
354 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums .rsssl-forums-content {
|
355 |
+
float: left;
|
356 |
+
color: #3c3c3c;
|
357 |
+
}
|
358 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums .rsssl-forums-content:hover {
|
359 |
+
text-decoration: underline;
|
360 |
+
}
|
361 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-feedback {
|
362 |
+
color: #d7263d;
|
363 |
+
}
|
364 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell {
|
365 |
+
display: flex !important;
|
366 |
+
flex-direction: row;
|
367 |
+
padding: 5px 0 5px 0;
|
368 |
+
align-items: center;
|
369 |
+
color: #3c3c3c;
|
370 |
+
}
|
371 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .plugin-text a {
|
372 |
+
text-decoration: none;
|
373 |
+
color: #3c3c3c;
|
374 |
+
}
|
375 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .plugin-text a:hover {
|
376 |
+
color: #FBC43D;
|
377 |
+
}
|
378 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .rsp-image {
|
379 |
+
margin-right: 5px;
|
380 |
+
}
|
381 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .wpsi-red {
|
382 |
+
background-color: #d7263d;
|
383 |
+
}
|
384 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .cmplz-blue {
|
385 |
+
background-color: #27ADEA;
|
386 |
+
}
|
387 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .zip-pink {
|
388 |
+
background-color: #E366A1;
|
389 |
+
}
|
390 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .plugin-status {
|
391 |
+
margin-left: auto;
|
392 |
+
}
|
393 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-status {
|
394 |
+
display: block;
|
395 |
+
min-width: 60px;
|
396 |
+
text-align: center;
|
397 |
+
border-radius: 15px;
|
398 |
+
padding: 4px 8px 4px 8px;
|
399 |
+
font-size: 0.8em;
|
400 |
+
font-weight: 600;
|
401 |
+
height: 17px;
|
402 |
+
line-height: 17px;
|
403 |
+
}
|
404 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-premium {
|
405 |
+
background-color: #29b6f6;
|
406 |
+
color: white;
|
407 |
+
}
|
408 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-success {
|
409 |
+
background-color: #61ce70;
|
410 |
+
color: white;
|
411 |
+
}
|
412 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-open {
|
413 |
+
background-color: #FBC43D;
|
414 |
+
}
|
415 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-warning {
|
416 |
+
background-color: #d7263d;
|
417 |
+
color: white;
|
418 |
+
}
|
419 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-footer {
|
420 |
+
display: flex;
|
421 |
+
align-items: center;
|
422 |
+
margin: 14px 25px 0 25px;
|
423 |
+
height: 40px;
|
424 |
+
bottom: 0;
|
425 |
+
width: 95%;
|
426 |
+
}
|
427 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-footer .rsssl-button-save {
|
428 |
+
margin-right: 25px;
|
429 |
+
}
|
430 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-footer #rsssl-feedback {
|
431 |
+
font-weight: 600;
|
432 |
+
color: #61ce70;
|
433 |
+
padding-left: 10px;
|
434 |
+
}
|
435 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-deactivate-keep-ssl th,
|
436 |
+
.rsssl-grid .rsssl-item .item-container .rsssl-deactivate-keep-ssl span {
|
437 |
+
display: none;
|
438 |
+
}
|
439 |
+
.rsssl-grid .rsssl-item.half-height {
|
440 |
+
height: 247.5px;
|
441 |
+
}
|
442 |
+
.rsssl-grid .rsssl-item.half-height .item-container {
|
443 |
+
height: 237.5px;
|
444 |
+
}
|
445 |
+
.rsssl-grid .rsssl-item.half-height .item-container .rsssl-grid-item-content {
|
446 |
+
height: 110px;
|
447 |
+
}
|
448 |
+
.rsssl-grid .rsssl-item.half-height .item-container .rsssl-grid-item-content .form-table tbody tr,
|
449 |
+
.rsssl-grid .rsssl-item.half-height .item-container .rsssl-grid-item-content .form-table tbody th {
|
450 |
+
width: 100%;
|
451 |
+
max-width: 100%;
|
452 |
+
}
|
453 |
+
.rsssl-grid .rsssl-item.small .item-container {
|
454 |
+
width: 390px;
|
455 |
+
}
|
456 |
+
.rsssl-grid .rsssl-item.small .item-container th {
|
457 |
+
width: 85% !important;
|
458 |
+
}
|
459 |
+
.rsssl-grid .rsssl-item.small .item-container .form-table tbody tr {
|
460 |
+
width: 100%;
|
461 |
+
}
|
462 |
+
.rsssl-grid .rsssl-item.no-border .item-container {
|
463 |
+
border: none;
|
464 |
+
}
|
465 |
+
.rsssl-grid .rsssl-item.no-background .item-container {
|
466 |
+
background-color: #f2f2f2;
|
467 |
+
}
|
468 |
+
.rsssl-grid #rsssl-progress-footer {
|
469 |
+
width: 100%;
|
470 |
+
text-align: right;
|
471 |
+
margin-right: 10px;
|
472 |
+
}
|
473 |
+
.rsssl-grid #rsssl-progress-footer .rsssl-footer-item {
|
474 |
+
padding-right: 5px;
|
475 |
+
}
|
476 |
+
.rsssl-grid #rsssl-progress-footer .rsssl-footer-item form {
|
477 |
+
float: left;
|
478 |
+
}
|
479 |
+
.rsssl-grid #rsssl-progress-footer .rsssl-footer-item + .rsssl-footer-item {
|
480 |
+
margin-right: 20px;
|
481 |
+
}
|
482 |
+
.rsssl-grid #rsssl-progress-footer .footer-left {
|
483 |
+
float: left;
|
484 |
+
}
|
485 |
+
.rsssl-grid #rsssl-progress-footer .footer-left .upsell {
|
486 |
+
min-width: 80px;
|
487 |
+
text-align: center;
|
488 |
+
}
|
489 |
+
.rsssl-grid #rsssl-progress-footer .footer-right {
|
490 |
+
float: right;
|
491 |
+
}
|
492 |
+
.rsssl-grid #rsssl-progress-footer .hidden {
|
493 |
+
display: none;
|
494 |
+
}
|
495 |
+
.rsssl-grid .rsssl-system-status-footer-info {
|
496 |
+
margin-right: 20px;
|
497 |
+
width: 100%;
|
498 |
+
text-align: right;
|
499 |
+
}
|
500 |
+
.rsssl-grid .rsssl-system-status-footer-info .system-status-info {
|
501 |
+
margin-left: 6px;
|
502 |
+
}
|
503 |
+
.rsssl-grid .dot {
|
504 |
+
height: 10px;
|
505 |
+
width: 10px;
|
506 |
+
border-radius: 50%;
|
507 |
+
display: inline-block;
|
508 |
+
}
|
509 |
+
.rsssl-grid .rsssl-dot-success {
|
510 |
+
background-color: #61ce70;
|
511 |
+
}
|
512 |
+
.rsssl-grid .rsssl-dot-error {
|
513 |
+
background-color: #d7263d;
|
514 |
+
}
|
515 |
+
.rsssl-grid {
|
516 |
+
position: relative;
|
517 |
+
}
|
518 |
+
.rsssl-grid .rsssl-item {
|
519 |
+
width: calc(100% - 20px);
|
520 |
+
padding: 10px;
|
521 |
+
height: 475px;
|
522 |
+
min-height: 500px;
|
523 |
+
z-index: 1;
|
524 |
+
}
|
525 |
+
@media only screen and (min-width: 400px) {
|
526 |
+
.rsssl-grid .rsssl-item {
|
527 |
+
width: calc(100% - 20px);
|
528 |
+
}
|
529 |
+
}
|
530 |
+
@media only screen and (min-width: 600px) {
|
531 |
+
.rsssl-grid .rsssl-item {
|
532 |
+
width: calc(100% - 20px);
|
533 |
+
}
|
534 |
+
}
|
535 |
+
@media only screen and (min-width: 768px) {
|
536 |
+
.rsssl-grid .rsssl-item {
|
537 |
+
width: calc(100% - 20px);
|
538 |
+
}
|
539 |
+
}
|
540 |
+
@media only screen and (min-width: 992px) {
|
541 |
+
.rsssl-grid .rsssl-item {
|
542 |
+
width: calc(100% - 20px);
|
543 |
+
}
|
544 |
+
}
|
545 |
+
@media only screen and (min-width: 1555px) {
|
546 |
+
.rsssl-grid .rsssl-item {
|
547 |
+
width: calc(50% - 20px);
|
548 |
+
}
|
549 |
+
}
|
550 |
+
.rsssl-grid .rsssl-item.small {
|
551 |
+
width: calc(100% - 20px);
|
552 |
+
}
|
553 |
+
@media only screen and (min-width: 400px) {
|
554 |
+
.rsssl-grid .rsssl-item.small {
|
555 |
+
width: calc(100% - 20px);
|
556 |
+
}
|
557 |
+
}
|
558 |
+
@media only screen and (min-width: 600px) {
|
559 |
+
.rsssl-grid .rsssl-item.small {
|
560 |
+
width: calc(100% - 20px);
|
561 |
+
}
|
562 |
+
}
|
563 |
+
@media only screen and (min-width: 768px) {
|
564 |
+
.rsssl-grid .rsssl-item.small {
|
565 |
+
width: calc(50% - 20px);
|
566 |
+
}
|
567 |
+
}
|
568 |
+
@media only screen and (min-width: 992px) {
|
569 |
+
.rsssl-grid .rsssl-item.small {
|
570 |
+
width: calc(50% - 20px);
|
571 |
+
}
|
572 |
+
}
|
573 |
+
@media only screen and (min-width: 1555px) {
|
574 |
+
.rsssl-grid .rsssl-item.small {
|
575 |
+
width: calc(25% - 20px);
|
576 |
+
}
|
577 |
+
}
|
578 |
+
.rsssl-grid .rsssl-item.small .item-container {
|
579 |
+
width: 100%;
|
580 |
+
min-width: 200px;
|
581 |
+
}
|
582 |
+
.rsssl-grid .rsssl-item.half-height {
|
583 |
+
min-height: 250px;
|
584 |
+
}
|
585 |
+
@media only screen and (min-width: 400px) {
|
586 |
+
.rsssl-grid .rsssl-item.half-height {
|
587 |
+
height: 237.5px;
|
588 |
+
min-height: 250px;
|
589 |
+
}
|
590 |
+
}
|
591 |
+
@media only screen and (min-width: 600px) {
|
592 |
+
.rsssl-grid .rsssl-item.half-height {
|
593 |
+
min-height: 250px;
|
594 |
+
height: 237.5px;
|
595 |
+
}
|
596 |
+
}
|
597 |
+
@media only screen and (min-width: 768px) {
|
598 |
+
.rsssl-grid .rsssl-item.half-height {
|
599 |
+
min-height: 250px;
|
600 |
+
height: 237.5px;
|
601 |
+
}
|
602 |
+
}
|
603 |
+
@media only screen and (min-width: 992px) {
|
604 |
+
.rsssl-grid .rsssl-item.half-height {
|
605 |
+
min-height: 250px;
|
606 |
+
height: 237.5px;
|
607 |
+
}
|
608 |
+
}
|
609 |
+
@media only screen and (min-width: 1555px) {
|
610 |
+
.rsssl-grid .rsssl-item.half-height {
|
611 |
+
min-height: 250px;
|
612 |
+
height: 237.5px;
|
613 |
+
}
|
614 |
+
}
|
615 |
+
.rsssl-grid .rsssl-item.half-height .item-container {
|
616 |
+
width: 100%;
|
617 |
+
min-width: 200px;
|
618 |
+
min-height: 250px;
|
619 |
+
}
|
620 |
+
.rsssl-grid .rsssl-item .settings.rsssl-item {
|
621 |
+
width: 100%;
|
622 |
+
padding: 0;
|
623 |
+
}
|
624 |
+
.rsssl-grid .rsssl-item.muuri-item-hidden {
|
625 |
+
z-index: 0;
|
626 |
+
}
|
627 |
+
.rsssl-grid .rsssl-item.muuri-item-releasing {
|
628 |
+
z-index: 2;
|
629 |
+
}
|
630 |
+
.rsssl-grid .rsssl-item.muuri-item-dragging {
|
631 |
+
z-index: 3;
|
632 |
+
}
|
633 |
+
.rsssl-grid .rsssl-item .rsssl-grid-header {
|
634 |
+
border-bottom: 1px solid lightgrey;
|
635 |
+
padding: 0;
|
636 |
+
height: 60px;
|
637 |
+
}
|
638 |
+
.rsssl-grid .rsssl-item .rsssl-grid-header .rsssl-grid-header-container {
|
639 |
+
margin: 0 20px;
|
640 |
+
height: 100%;
|
641 |
+
}
|
642 |
+
.rsssl-grid .rsssl-item .rsssl-grid-header .rsssl-grid-title {
|
643 |
+
cursor: pointer;
|
644 |
+
font-size: 20px;
|
645 |
+
padding: 20px 0;
|
646 |
+
font-weight: bold;
|
647 |
+
float: left;
|
648 |
+
}
|
649 |
+
.rsssl-grid .rsssl-item .rsssl-grid-header .rsssl-grid-controls {
|
650 |
+
float: right;
|
651 |
+
margin-top: 20px;
|
652 |
+
color: #cecece;
|
653 |
+
}
|
654 |
+
.rsssl-grid .rsssl-item .item-container {
|
655 |
+
background-color: #fff;
|
656 |
+
position: relative;
|
657 |
+
box-shadow: 0 0 5px 5px rgba(222, 222, 222, 0.2);
|
658 |
+
height: 100%;
|
659 |
+
width: 100%;
|
660 |
+
}
|
661 |
+
.rsssl-grid .rsssl-item .item-container .item-content {
|
662 |
+
clear: both;
|
663 |
+
margin: 15px;
|
664 |
+
height: calc(100% - 100px);
|
665 |
+
padding-top: 0px;
|
666 |
+
padding-bottom: 10px;
|
667 |
+
}
|
668 |
+
.rsssl-grid .rsssl-item.no-border .item-container {
|
669 |
+
border: none;
|
670 |
+
}
|
671 |
+
.rsssl-grid .rsssl-item.no-background .item-container {
|
672 |
+
background-color: #F1F1F1;
|
673 |
+
}
|
674 |
+
.rsssl-grid .rsssl-item.muuri-item-placeholder .item-container {
|
675 |
+
border-style: dashed;
|
676 |
+
padding: 0;
|
677 |
+
}
|
678 |
+
/*# sourceMappingURL=grid.css.map */
|
grid/css/grid.css.map
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
{"version":3,"sources":["grid.less"],"names":[],"mappings":"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","file":"grid.css"}
|
grid/css/grid.less
ADDED
@@ -0,0 +1,766 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@gridblock_height: 475px;
|
2 |
+
@gridblock_width: 800px;
|
3 |
+
@gridblock_width_small:400px;
|
4 |
+
@grid_margin: 10px;
|
5 |
+
@grey_light:#cecece;
|
6 |
+
@box_shadow_color: rgba(222, 222, 222, 0.2);
|
7 |
+
@border_color: #dedede;
|
8 |
+
@color-success: #61ce70;
|
9 |
+
@color_warning: #d7263d;
|
10 |
+
@color_open: #FBC43D;
|
11 |
+
@light-text-color: #3c3c3c;
|
12 |
+
@light-grey: lightgrey;
|
13 |
+
@button-border-color: #6477AA;
|
14 |
+
|
15 |
+
// break points
|
16 |
+
@break-xs: 400px;
|
17 |
+
@break-s: 600px;
|
18 |
+
@break-m: 768px;
|
19 |
+
@break-l: 992px;
|
20 |
+
@break-xl: 1555px;
|
21 |
+
|
22 |
+
// Override default WP settings style
|
23 |
+
.settings_page_rlrsssl_really_simple_ssl #wpcontent, .settings_page_really-simple-ssl #wpcontent{
|
24 |
+
padding: 0;
|
25 |
+
.rsssl-footer-item {
|
26 |
+
form {
|
27 |
+
float:left;
|
28 |
+
}
|
29 |
+
}
|
30 |
+
|
31 |
+
.nav-tab {
|
32 |
+
padding: 17px 20px 19px 20px;
|
33 |
+
margin-bottom:0;
|
34 |
+
color: #444;
|
35 |
+
font-weight: normal;
|
36 |
+
font-size: 1.2em;
|
37 |
+
background: inherit;
|
38 |
+
border: 0;
|
39 |
+
&.nav-tab-active {
|
40 |
+
border-bottom: 2px solid @color_open !important;
|
41 |
+
background: #fff;
|
42 |
+
padding-bottom:17px;
|
43 |
+
}
|
44 |
+
}
|
45 |
+
|
46 |
+
|
47 |
+
.nav-tab-wrapper {
|
48 |
+
height: 60px;
|
49 |
+
background-color: #fff;
|
50 |
+
display: flex;
|
51 |
+
align-items: center;
|
52 |
+
border: 0;
|
53 |
+
}
|
54 |
+
.rsssl-logo-container {
|
55 |
+
margin-left: 25px;
|
56 |
+
#rsssl-logo {
|
57 |
+
height: 40px;
|
58 |
+
width: 200px;
|
59 |
+
img {
|
60 |
+
width:200px;
|
61 |
+
}
|
62 |
+
}
|
63 |
+
}
|
64 |
+
.header-links {
|
65 |
+
display: flex;
|
66 |
+
flex: 1;
|
67 |
+
justify-content: flex-end;
|
68 |
+
flex-direction: row;
|
69 |
+
align-items: center;
|
70 |
+
margin-right: 20px;
|
71 |
+
.documentation {
|
72 |
+
text-decoration: underline;
|
73 |
+
}
|
74 |
+
.header-upsell {
|
75 |
+
.documentation {
|
76 |
+
margin-left:25px;
|
77 |
+
}
|
78 |
+
a {
|
79 |
+
text-decoration: none;
|
80 |
+
}
|
81 |
+
.header-upsell-pro {
|
82 |
+
color: black;
|
83 |
+
border: 3px solid black;
|
84 |
+
margin: 10px;
|
85 |
+
width: 80px;
|
86 |
+
text-align: center;
|
87 |
+
padding: 5px;
|
88 |
+
border-radius: 20px;
|
89 |
+
font-weight: 600;
|
90 |
+
}
|
91 |
+
}
|
92 |
+
}
|
93 |
+
}
|
94 |
+
|
95 |
+
.network-admin {
|
96 |
+
.rsssl-logo-container {
|
97 |
+
height:60px;
|
98 |
+
}
|
99 |
+
}
|
100 |
+
|
101 |
+
|
102 |
+
.rsssl-grid {
|
103 |
+
width: calc(100% - 20px);
|
104 |
+
margin: @grid_margin;
|
105 |
+
position: relative;
|
106 |
+
display: flex;
|
107 |
+
flex-direction: row;
|
108 |
+
flex-wrap: wrap;
|
109 |
+
|
110 |
+
.button-rsssl-tertiary {
|
111 |
+
background-color: #D7263D;
|
112 |
+
color: white;
|
113 |
+
border:0;
|
114 |
+
}
|
115 |
+
|
116 |
+
.rsssl-wide-button {
|
117 |
+
width: 220px;
|
118 |
+
}
|
119 |
+
|
120 |
+
.rsssl-progress {
|
121 |
+
|
122 |
+
.rsssl-task-list {
|
123 |
+
height: 257px;
|
124 |
+
overflow:hidden;
|
125 |
+
}
|
126 |
+
|
127 |
+
.rsssl-toggle-active {
|
128 |
+
text-decoration: underline;
|
129 |
+
}
|
130 |
+
|
131 |
+
#rsssl-all-tasks, #rsssl-remaining-tasks {
|
132 |
+
display: none;
|
133 |
+
|
134 |
+
}
|
135 |
+
.rsssl-tasks-container {
|
136 |
+
border-bottom:1px solid lightgrey;
|
137 |
+
color: lightgrey;
|
138 |
+
&.active{
|
139 |
+
text-decoration: none;
|
140 |
+
border-bottom:0;
|
141 |
+
color:initial;
|
142 |
+
|
143 |
+
}
|
144 |
+
}
|
145 |
+
|
146 |
+
.rsssl-tasks-inactive {
|
147 |
+
text-decoration: underline;
|
148 |
+
color:@light-grey;
|
149 |
+
}
|
150 |
+
|
151 |
+
}
|
152 |
+
|
153 |
+
.rsssl-item {
|
154 |
+
width: @gridblock_width ;
|
155 |
+
&.small {
|
156 |
+
width: @gridblock_width_small;
|
157 |
+
}
|
158 |
+
|
159 |
+
.rsssl-close-warning-x {
|
160 |
+
color: #ccc;
|
161 |
+
font-size: 0.9em;
|
162 |
+
margin-right: 25px;
|
163 |
+
}
|
164 |
+
|
165 |
+
height: @gridblock_height + @grid_margin;
|
166 |
+
z-index: 1;
|
167 |
+
.item-container {
|
168 |
+
.form-table {
|
169 |
+
display: flex;
|
170 |
+
tbody {
|
171 |
+
display: flex;
|
172 |
+
flex-direction: column;
|
173 |
+
flex-wrap: wrap;
|
174 |
+
max-height: 340px;
|
175 |
+
width: 100% !important;
|
176 |
+
tr {
|
177 |
+
padding: 0 0 0 0 !important;
|
178 |
+
display: flex;
|
179 |
+
align-items: center;
|
180 |
+
flex-direction: row;
|
181 |
+
width: 50%;
|
182 |
+
|
183 |
+
td {
|
184 |
+
padding: 0;
|
185 |
+
margin: 0;
|
186 |
+
}
|
187 |
+
th {
|
188 |
+
.dashicons-editor-help {
|
189 |
+
font-size: 26px;
|
190 |
+
}
|
191 |
+
margin-left: 0;
|
192 |
+
width: 250px;
|
193 |
+
display: flex;
|
194 |
+
align-items: center;
|
195 |
+
font-size: 13px;
|
196 |
+
font-weight: normal;
|
197 |
+
.rsssl-tooltip-right {
|
198 |
+
padding-right: 10px;
|
199 |
+
margin-top:-4px;
|
200 |
+
}
|
201 |
+
}
|
202 |
+
th, td {
|
203 |
+
// Important to override default WP style
|
204 |
+
padding: 10px 0 !important;
|
205 |
+
font-size:13px;
|
206 |
+
p {font-size:13px}
|
207 |
+
}
|
208 |
+
}
|
209 |
+
}
|
210 |
+
}
|
211 |
+
h2 {
|
212 |
+
display: none;
|
213 |
+
}
|
214 |
+
|
215 |
+
background-color: #fff;
|
216 |
+
position: relative;
|
217 |
+
box-shadow: 0px 0px 5px 5px @box_shadow_color;
|
218 |
+
width: @gridblock_width - @grid_margin;
|
219 |
+
height: @gridblock_height;
|
220 |
+
.rsssl-save-settings-feedback {
|
221 |
+
margin-right:20px;
|
222 |
+
color: @color_warning;
|
223 |
+
}
|
224 |
+
.rsssl-grid-item-header {
|
225 |
+
display: flex;
|
226 |
+
align-items: center;
|
227 |
+
justify-content: space-between;
|
228 |
+
height: 60px;
|
229 |
+
border-bottom: 1px solid @border_color;
|
230 |
+
padding: 0 25px 0 25px;
|
231 |
+
.rsssl-instructions a {
|
232 |
+
color: @light-text-color;
|
233 |
+
}
|
234 |
+
|
235 |
+
.rsssl-secondary-header-item {
|
236 |
+
display: flex;
|
237 |
+
color: @light-text-color;
|
238 |
+
.all-task-count, .open-task-count {
|
239 |
+
padding-left: 3px;
|
240 |
+
padding-top: 3px;
|
241 |
+
}
|
242 |
+
.all-task-count {
|
243 |
+
margin-right: 5px;
|
244 |
+
}
|
245 |
+
}
|
246 |
+
}
|
247 |
+
.rsssl-table-td-main-content {
|
248 |
+
padding-left: 15px;
|
249 |
+
}
|
250 |
+
|
251 |
+
.rsssl-grid-item-content {
|
252 |
+
height: 360px;
|
253 |
+
margin: 10px 25px 10px 25px;
|
254 |
+
border-bottom: 1px solid @border_color;
|
255 |
+
|
256 |
+
/*
|
257 |
+
Progress block
|
258 |
+
*/
|
259 |
+
|
260 |
+
.rsssl-progress-block {
|
261 |
+
padding-top: 10px;
|
262 |
+
|
263 |
+
.progress-bar-container {
|
264 |
+
margin: 0 0 25px 0;
|
265 |
+
}
|
266 |
+
|
267 |
+
.progress {
|
268 |
+
overflow: hidden;
|
269 |
+
height: 20px;
|
270 |
+
border-radius: 5px;
|
271 |
+
background-color: #f7f7f7;
|
272 |
+
}
|
273 |
+
|
274 |
+
.progress .bar {
|
275 |
+
height: 100%;
|
276 |
+
background-color: @color-success;
|
277 |
+
|
278 |
+
}
|
279 |
+
|
280 |
+
.progress-text {
|
281 |
+
display: flex;
|
282 |
+
align-items: center;
|
283 |
+
margin: 10px 0;
|
284 |
+
padding-top: 10px;
|
285 |
+
padding-bottom: 10px;
|
286 |
+
|
287 |
+
.rsssl-progress-percentage {
|
288 |
+
font-size: 32px;
|
289 |
+
font-weight: 700;
|
290 |
+
}
|
291 |
+
|
292 |
+
.rsssl-progress-text {
|
293 |
+
display: flex;
|
294 |
+
flex-direction: row;
|
295 |
+
margin-left: @grid_margin;
|
296 |
+
|
297 |
+
a {
|
298 |
+
margin-left: 3px;
|
299 |
+
}
|
300 |
+
|
301 |
+
.rsssl-progress-count {
|
302 |
+
margin-left: 3px;
|
303 |
+
margin-right: 3px;
|
304 |
+
}
|
305 |
+
}
|
306 |
+
}
|
307 |
+
|
308 |
+
.rsssl-progress-table {
|
309 |
+
td {
|
310 |
+
padding: 10px 10px 10px 0;
|
311 |
+
}
|
312 |
+
td +td {padding-left:15px;}
|
313 |
+
}
|
314 |
+
}
|
315 |
+
|
316 |
+
/*
|
317 |
+
Tips and Tricks
|
318 |
+
*/
|
319 |
+
.rsssl-tips-tricks {
|
320 |
+
color: @light-text-color;
|
321 |
+
padding-bottom: 15px;
|
322 |
+
.tips-tricks-content{
|
323 |
+
display: flex;
|
324 |
+
flex-direction: column;
|
325 |
+
margin-right:10px;
|
326 |
+
height: 340px;
|
327 |
+
.tips-tricks-top {
|
328 |
+
flex-grow:1;
|
329 |
+
|
330 |
+
.rsssl-tips-tricks-element {
|
331 |
+
margin-top: 10px;
|
332 |
+
margin-bottom: 15px;
|
333 |
+
display: flex;
|
334 |
+
flex-direction: row;
|
335 |
+
justify-content: space-between;
|
336 |
+
}
|
337 |
+
.rsssl-tips-tricks-content {
|
338 |
+
padding-right:20px;
|
339 |
+
}
|
340 |
+
}
|
341 |
+
.tips-tricks-bottom {
|
342 |
+
color: @light-text-color;
|
343 |
+
}
|
344 |
+
}
|
345 |
+
|
346 |
+
|
347 |
+
.rsssl-tips-tricks-read-more a {
|
348 |
+
text-decoration: none;
|
349 |
+
white-space: nowrap;
|
350 |
+
}
|
351 |
+
}
|
352 |
+
// End tips and tricks
|
353 |
+
|
354 |
+
/*
|
355 |
+
Default bullet style
|
356 |
+
*/
|
357 |
+
.rsssl-bullet {
|
358 |
+
height: 13px;
|
359 |
+
width: 13px;
|
360 |
+
border-radius: 50%;
|
361 |
+
margin-right: 10px;
|
362 |
+
background-color: lightgrey;
|
363 |
+
text-decoration: none;
|
364 |
+
}
|
365 |
+
|
366 |
+
/*
|
367 |
+
Support forum block
|
368 |
+
*/
|
369 |
+
|
370 |
+
#rsssl-support-forums-container {
|
371 |
+
display: flex;
|
372 |
+
flex-wrap: wrap;
|
373 |
+
flex-direction: row;
|
374 |
+
.rsssl-support-forums {
|
375 |
+
display: flex;
|
376 |
+
width: 50%;
|
377 |
+
a {
|
378 |
+
text-decoration: none;
|
379 |
+
color: @light-text-color;
|
380 |
+
display: flex;
|
381 |
+
align-items: center;
|
382 |
+
}
|
383 |
+
|
384 |
+
.rsssl-bullet {
|
385 |
+
margin: 7px 7px 7px 0;
|
386 |
+
background-color: @light-grey;
|
387 |
+
float: left;
|
388 |
+
&:hover {
|
389 |
+
background-color: @color_open;
|
390 |
+
}
|
391 |
+
}
|
392 |
+
|
393 |
+
.rsssl-forums-content {
|
394 |
+
float: left;
|
395 |
+
color: @light-text-color;
|
396 |
+
&:hover {
|
397 |
+
text-decoration: underline;
|
398 |
+
}
|
399 |
+
}
|
400 |
+
}
|
401 |
+
}
|
402 |
+
|
403 |
+
#rsssl-feedback {
|
404 |
+
color: @color_warning;
|
405 |
+
}
|
406 |
+
|
407 |
+
/*
|
408 |
+
Other plugins
|
409 |
+
*/
|
410 |
+
|
411 |
+
.rsssl-upsell {
|
412 |
+
display: flex !important; //we need important here, because the grid switch overrides it on element level
|
413 |
+
flex-direction: row;
|
414 |
+
padding: 5px 0 5px 0;
|
415 |
+
align-items: center;
|
416 |
+
color: @light-text-color;
|
417 |
+
|
418 |
+
.plugin-text {
|
419 |
+
a {
|
420 |
+
text-decoration: none;
|
421 |
+
color: @light-text-color;
|
422 |
+
&:hover {
|
423 |
+
color: @color_open;
|
424 |
+
}
|
425 |
+
}
|
426 |
+
}
|
427 |
+
|
428 |
+
.rsp-image {
|
429 |
+
margin-right: 5px;
|
430 |
+
}
|
431 |
+
|
432 |
+
.wpsi-red {
|
433 |
+
background-color: @color_warning;
|
434 |
+
}
|
435 |
+
|
436 |
+
.cmplz-blue {
|
437 |
+
background-color: #27ADEA;
|
438 |
+
}
|
439 |
+
|
440 |
+
.zip-pink {
|
441 |
+
background-color: #E366A1;
|
442 |
+
}
|
443 |
+
|
444 |
+
.plugin-status {
|
445 |
+
margin-left: auto;
|
446 |
+
}
|
447 |
+
}
|
448 |
+
|
449 |
+
/*
|
450 |
+
Progress labels
|
451 |
+
*/
|
452 |
+
.rsssl-progress-status {
|
453 |
+
display: block;
|
454 |
+
min-width: 60px;
|
455 |
+
text-align: center;
|
456 |
+
border-radius: 15px;
|
457 |
+
padding: 4px 8px 4px 8px;
|
458 |
+
font-size: 0.8em;
|
459 |
+
font-weight: 600;
|
460 |
+
height: 17px;
|
461 |
+
line-height:17px;
|
462 |
+
}
|
463 |
+
|
464 |
+
.rsssl-premium {
|
465 |
+
background-color: #29b6f6;
|
466 |
+
color: white;
|
467 |
+
}
|
468 |
+
.rsssl-success {
|
469 |
+
background-color: @color-success;
|
470 |
+
color: white;
|
471 |
+
}
|
472 |
+
|
473 |
+
.rsssl-open {
|
474 |
+
background-color: @color_open;
|
475 |
+
}
|
476 |
+
|
477 |
+
.rsssl-warning {
|
478 |
+
background-color: @color_warning;
|
479 |
+
color: white;
|
480 |
+
}
|
481 |
+
}
|
482 |
+
.rsssl-grid-item-footer {
|
483 |
+
display: flex;
|
484 |
+
align-items: center;
|
485 |
+
margin: 14px 25px 0 25px;
|
486 |
+
height: 40px;
|
487 |
+
bottom: 0;
|
488 |
+
width: 95%;
|
489 |
+
.rsssl-button-save {
|
490 |
+
margin-right:25px;
|
491 |
+
}
|
492 |
+
#rsssl-feedback {
|
493 |
+
font-weight: 600;
|
494 |
+
color: @color-success;
|
495 |
+
padding-left: 10px;
|
496 |
+
}
|
497 |
+
}
|
498 |
+
.rsssl-deactivate-keep-ssl {
|
499 |
+
th, span {
|
500 |
+
display: none;
|
501 |
+
}
|
502 |
+
}
|
503 |
+
}
|
504 |
+
&.half-height {
|
505 |
+
height: (@gridblock_height / 2) + @grid_margin;
|
506 |
+
|
507 |
+
.item-container {
|
508 |
+
height: @gridblock_height / 2;
|
509 |
+
.rsssl-grid-item-content {
|
510 |
+
height: 110px;
|
511 |
+
.form-table tbody {
|
512 |
+
tr, th {
|
513 |
+
width:100%;
|
514 |
+
max-width:100%;
|
515 |
+
}
|
516 |
+
}
|
517 |
+
}
|
518 |
+
}
|
519 |
+
}
|
520 |
+
|
521 |
+
&.small {
|
522 |
+
.item-container {
|
523 |
+
width: @gridblock_width_small - @grid_margin;
|
524 |
+
th {
|
525 |
+
width: 85% !important;
|
526 |
+
}
|
527 |
+
.form-table tbody tr {
|
528 |
+
width: 100%;
|
529 |
+
}
|
530 |
+
}
|
531 |
+
}
|
532 |
+
&.no-border {
|
533 |
+
.item-container {
|
534 |
+
border: none;
|
535 |
+
}
|
536 |
+
}
|
537 |
+
&.no-background {
|
538 |
+
.item-container {
|
539 |
+
background-color: #f2f2f2;
|
540 |
+
}
|
541 |
+
}
|
542 |
+
}
|
543 |
+
/*
|
544 |
+
Footers
|
545 |
+
*/
|
546 |
+
|
547 |
+
#rsssl-progress-footer {
|
548 |
+
width: 100%;
|
549 |
+
text-align: right;
|
550 |
+
margin-right: @grid_margin;
|
551 |
+
.rsssl-footer-item {
|
552 |
+
padding-right: 5px;
|
553 |
+
form {
|
554 |
+
float:left;
|
555 |
+
}
|
556 |
+
}
|
557 |
+
.rsssl-footer-item +.rsssl-footer-item {
|
558 |
+
margin-right:20px;
|
559 |
+
}
|
560 |
+
|
561 |
+
.footer-left {
|
562 |
+
float:left;
|
563 |
+
.upsell {
|
564 |
+
min-width: 80px;
|
565 |
+
text-align: center;
|
566 |
+
}
|
567 |
+
}
|
568 |
+
|
569 |
+
.footer-right {
|
570 |
+
float:right;
|
571 |
+
}
|
572 |
+
.hidden {
|
573 |
+
display: none;
|
574 |
+
}
|
575 |
+
}
|
576 |
+
|
577 |
+
.rsssl-system-status-footer-info {
|
578 |
+
margin-right: 20px;
|
579 |
+
width: 100%;
|
580 |
+
text-align: right;
|
581 |
+
.system-status-info {
|
582 |
+
margin-left: 6px;
|
583 |
+
}
|
584 |
+
}
|
585 |
+
/*
|
586 |
+
Dots
|
587 |
+
*/
|
588 |
+
|
589 |
+
.dot {
|
590 |
+
height: 10px;
|
591 |
+
width: 10px;
|
592 |
+
border-radius: 50%;
|
593 |
+
display: inline-block;
|
594 |
+
}
|
595 |
+
.rsssl-dot-success {
|
596 |
+
background-color: #61ce70;
|
597 |
+
}
|
598 |
+
.rsssl-dot-error {
|
599 |
+
background-color: #d7263d;
|
600 |
+
}
|
601 |
+
}
|
602 |
+
|
603 |
+
|
604 |
+
// Code below should be integrated in to the code above.
|
605 |
+
.rsssl-grid {
|
606 |
+
position: relative;
|
607 |
+
.rsssl-item {
|
608 |
+
width: calc(100% - 20px);
|
609 |
+
padding: 10px;
|
610 |
+
height: @gridblock_height;
|
611 |
+
min-height: 500px;
|
612 |
+
z-index: 1;
|
613 |
+
@media only screen and (min-width: @break-xs) {
|
614 |
+
width: calc(100% - 20px);
|
615 |
+
}
|
616 |
+
|
617 |
+
@media only screen and (min-width: @break-s) {
|
618 |
+
width: calc(100% - 20px);
|
619 |
+
}
|
620 |
+
|
621 |
+
@media only screen and (min-width: @break-m) {
|
622 |
+
width: calc(100% - 20px);
|
623 |
+
}
|
624 |
+
|
625 |
+
@media only screen and (min-width: @break-l) {
|
626 |
+
width: calc(100% - 20px);
|
627 |
+
}
|
628 |
+
|
629 |
+
@media only screen and (min-width: @break-xl) {
|
630 |
+
width: calc(50% - 20px);
|
631 |
+
}
|
632 |
+
|
633 |
+
|
634 |
+
&.small {
|
635 |
+
width: calc(100% - 20px);
|
636 |
+
|
637 |
+
@media only screen and (min-width: @break-xs) {
|
638 |
+
width: calc(100% - 20px);
|
639 |
+
}
|
640 |
+
|
641 |
+
@media only screen and (min-width: @break-s) {
|
642 |
+
width: calc(100% - 20px);
|
643 |
+
}
|
644 |
+
|
645 |
+
@media only screen and (min-width: @break-m) {
|
646 |
+
width: calc(50% - 20px);
|
647 |
+
}
|
648 |
+
|
649 |
+
@media only screen and (min-width: @break-l) {
|
650 |
+
width: calc(50% - 20px);
|
651 |
+
}
|
652 |
+
|
653 |
+
@media only screen and (min-width: @break-xl) {
|
654 |
+
width: calc(25% - 20px);
|
655 |
+
}
|
656 |
+
.item-container{
|
657 |
+
width: 100%;
|
658 |
+
min-width: 200px;
|
659 |
+
}
|
660 |
+
|
661 |
+
}
|
662 |
+
|
663 |
+
&.half-height {
|
664 |
+
min-height: 250px;
|
665 |
+
@media only screen and (min-width: @break-xs) {
|
666 |
+
height: @gridblock_height / 2;
|
667 |
+
min-height: 250px;
|
668 |
+
}
|
669 |
+
|
670 |
+
@media only screen and (min-width: @break-s) {
|
671 |
+
min-height: 250px;
|
672 |
+
height: @gridblock_height / 2;
|
673 |
+
}
|
674 |
+
|
675 |
+
@media only screen and (min-width: @break-m) {
|
676 |
+
min-height: 250px;
|
677 |
+
height: @gridblock_height / 2;
|
678 |
+
}
|
679 |
+
|
680 |
+
@media only screen and (min-width: @break-l) {
|
681 |
+
min-height: 250px;
|
682 |
+
height: @gridblock_height / 2;
|
683 |
+
}
|
684 |
+
|
685 |
+
@media only screen and (min-width: @break-xl) {
|
686 |
+
min-height: 250px;
|
687 |
+
height: @gridblock_height / 2;
|
688 |
+
}
|
689 |
+
|
690 |
+
.item-container {
|
691 |
+
width: 100%;
|
692 |
+
min-width: 200px;
|
693 |
+
min-height: 250px;
|
694 |
+
}
|
695 |
+
}
|
696 |
+
.settings.rsssl-item{
|
697 |
+
width: 100%;
|
698 |
+
padding: 0;
|
699 |
+
}
|
700 |
+
|
701 |
+
&.muuri-item-hidden {
|
702 |
+
z-index: 0;
|
703 |
+
}
|
704 |
+
&.muuri-item-releasing {
|
705 |
+
z-index: 2;
|
706 |
+
}
|
707 |
+
&.muuri-item-dragging {
|
708 |
+
z-index: 3;
|
709 |
+
}
|
710 |
+
.rsssl-grid-header {
|
711 |
+
border-bottom: 1px solid @light-grey;
|
712 |
+
padding: 0;
|
713 |
+
height: 60px;
|
714 |
+
.rsssl-grid-header-container {
|
715 |
+
margin: 0 20px;
|
716 |
+
height: 100%;
|
717 |
+
}
|
718 |
+
|
719 |
+
|
720 |
+
.rsssl-grid-title{
|
721 |
+
cursor: pointer;
|
722 |
+
font-size: 20px;
|
723 |
+
padding: 20px 0;
|
724 |
+
font-weight: bold;
|
725 |
+
float: left;
|
726 |
+
}
|
727 |
+
.rsssl-grid-controls {
|
728 |
+
float: right;
|
729 |
+
margin-top: 20px;
|
730 |
+
color: #cecece;
|
731 |
+
}
|
732 |
+
}
|
733 |
+
.item-container {
|
734 |
+
background-color: #fff;
|
735 |
+
position: relative;
|
736 |
+
box-shadow: 0 0 5px 5px rgba(222,222,222,0.2);
|
737 |
+
height: 100%;
|
738 |
+
width: 100%;
|
739 |
+
|
740 |
+
.item-content {
|
741 |
+
clear:both;
|
742 |
+
margin:15px;
|
743 |
+
height: calc(100% - 100px);
|
744 |
+
padding-top: 0px;
|
745 |
+
padding-bottom:10px;
|
746 |
+
}
|
747 |
+
|
748 |
+
}
|
749 |
+
|
750 |
+
&.no-border {
|
751 |
+
.item-container {
|
752 |
+
border: none;
|
753 |
+
}
|
754 |
+
}
|
755 |
+
&.no-background {
|
756 |
+
.item-container {
|
757 |
+
background-color: #F1F1F1;
|
758 |
+
}
|
759 |
+
}
|
760 |
+
|
761 |
+
&.muuri-item-placeholder .item-container {
|
762 |
+
border-style: dashed;
|
763 |
+
padding:0;
|
764 |
+
}
|
765 |
+
}
|
766 |
+
}
|
grid/css/grid.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.settings_page_rlrsssl_really_simple_ssl #wpcontent,.settings_page_really-simple-ssl #wpcontent{padding:0}.settings_page_rlrsssl_really_simple_ssl #wpcontent .rsssl-footer-item form,.settings_page_really-simple-ssl #wpcontent .rsssl-footer-item form{float:left}.settings_page_rlrsssl_really_simple_ssl #wpcontent .nav-tab,.settings_page_really-simple-ssl #wpcontent .nav-tab{padding:17px 20px 19px 20px;margin-bottom:0;color:#444;font-weight:normal;font-size:1.2em;background:inherit;border:0}.settings_page_rlrsssl_really_simple_ssl #wpcontent .nav-tab.nav-tab-active,.settings_page_really-simple-ssl #wpcontent .nav-tab.nav-tab-active{border-bottom:2px solid #fbc43d !important;background:#fff;padding-bottom:17px}.settings_page_rlrsssl_really_simple_ssl #wpcontent .nav-tab-wrapper,.settings_page_really-simple-ssl #wpcontent .nav-tab-wrapper{height:60px;background-color:#fff;display:flex;align-items:center;border:0}.settings_page_rlrsssl_really_simple_ssl #wpcontent .rsssl-logo-container,.settings_page_really-simple-ssl #wpcontent .rsssl-logo-container{margin-left:25px}.settings_page_rlrsssl_really_simple_ssl #wpcontent .rsssl-logo-container #rsssl-logo,.settings_page_really-simple-ssl #wpcontent .rsssl-logo-container #rsssl-logo{height:40px;width:200px}.settings_page_rlrsssl_really_simple_ssl #wpcontent .rsssl-logo-container #rsssl-logo img,.settings_page_really-simple-ssl #wpcontent .rsssl-logo-container #rsssl-logo img{width:200px}.settings_page_rlrsssl_really_simple_ssl #wpcontent .header-links,.settings_page_really-simple-ssl #wpcontent .header-links{display:flex;flex:1;justify-content:flex-end;flex-direction:row;align-items:center;margin-right:20px}.settings_page_rlrsssl_really_simple_ssl #wpcontent .header-links .documentation,.settings_page_really-simple-ssl #wpcontent .header-links .documentation{text-decoration:underline}.settings_page_rlrsssl_really_simple_ssl #wpcontent .header-links .header-upsell .documentation,.settings_page_really-simple-ssl #wpcontent .header-links .header-upsell .documentation{margin-left:25px}.settings_page_rlrsssl_really_simple_ssl #wpcontent .header-links .header-upsell a,.settings_page_really-simple-ssl #wpcontent .header-links .header-upsell a{text-decoration:none}.settings_page_rlrsssl_really_simple_ssl #wpcontent .header-links .header-upsell .header-upsell-pro,.settings_page_really-simple-ssl #wpcontent .header-links .header-upsell .header-upsell-pro{color:black;border:3px solid black;margin:10px;width:80px;text-align:center;padding:5px;border-radius:20px;font-weight:600}.network-admin .rsssl-logo-container{height:60px}.rsssl-grid{width:calc(100% - 20px);margin:10px;position:relative;display:flex;flex-direction:row;flex-wrap:wrap}.rsssl-grid .button-rsssl-tertiary{background-color:#d7263d;color:white;border:0}.rsssl-grid .rsssl-wide-button{width:220px}.rsssl-grid .rsssl-progress .rsssl-task-list{height:257px;overflow:hidden}.rsssl-grid .rsssl-progress .rsssl-toggle-active{text-decoration:underline}.rsssl-grid .rsssl-progress #rsssl-all-tasks,.rsssl-grid .rsssl-progress #rsssl-remaining-tasks{display:none}.rsssl-grid .rsssl-progress .rsssl-tasks-container{border-bottom:1px solid lightgrey;color:lightgrey}.rsssl-grid .rsssl-progress .rsssl-tasks-container.active{text-decoration:none;border-bottom:0;color:initial}.rsssl-grid .rsssl-progress .rsssl-tasks-inactive{text-decoration:underline;color:lightgrey}.rsssl-grid .rsssl-item{width:800px;height:485px;z-index:1}.rsssl-grid .rsssl-item.small{width:400px}.rsssl-grid .rsssl-item .rsssl-close-warning-x{color:#ccc;font-size:.9em;margin-right:25px}.rsssl-grid .rsssl-item .item-container{background-color:#fff;position:relative;box-shadow:0 0 5px 5px rgba(222,222,222,0.2);width:790px;height:475px}.rsssl-grid .rsssl-item .item-container .form-table{display:flex}.rsssl-grid .rsssl-item .item-container .form-table tbody{display:flex;flex-direction:column;flex-wrap:wrap;max-height:340px;width:100% !important}.rsssl-grid .rsssl-item .item-container .form-table tbody tr{padding:0 0 0 0 !important;display:flex;align-items:center;flex-direction:row;width:50%}.rsssl-grid .rsssl-item .item-container .form-table tbody tr td{padding:0;margin:0}.rsssl-grid .rsssl-item .item-container .form-table tbody tr th{margin-left:0;width:250px;display:flex;align-items:center;font-size:13px;font-weight:normal}.rsssl-grid .rsssl-item .item-container .form-table tbody tr th .dashicons-editor-help{font-size:26px}.rsssl-grid .rsssl-item .item-container .form-table tbody tr th .rsssl-tooltip-right{padding-right:10px;margin-top:-4px}.rsssl-grid .rsssl-item .item-container .form-table tbody tr th,.rsssl-grid .rsssl-item .item-container .form-table tbody tr td{padding:10px 0 !important;font-size:13px}.rsssl-grid .rsssl-item .item-container .form-table tbody tr th p,.rsssl-grid .rsssl-item .item-container .form-table tbody tr td p{font-size:13px}.rsssl-grid .rsssl-item .item-container h2{display:none}.rsssl-grid .rsssl-item .item-container .rsssl-save-settings-feedback{margin-right:20px;color:#d7263d}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header{display:flex;align-items:center;justify-content:space-between;height:60px;border-bottom:1px solid #dedede;padding:0 25px 0 25px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header .rsssl-instructions a{color:#3c3c3c}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header .rsssl-secondary-header-item{display:flex;color:#3c3c3c}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header .rsssl-secondary-header-item .all-task-count,.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header .rsssl-secondary-header-item .open-task-count{padding-left:3px;padding-top:3px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header .rsssl-secondary-header-item .all-task-count{margin-right:5px}.rsssl-grid .rsssl-item .item-container .rsssl-table-td-main-content{padding-left:15px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content{height:360px;margin:10px 25px 10px 25px;border-bottom:1px solid #dedede}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block{padding-top:10px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress-bar-container{margin:0 0 25px 0}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress{overflow:hidden;height:20px;border-radius:5px;background-color:#f7f7f7}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress .bar{height:100%;background-color:#61ce70}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress-text{display:flex;align-items:center;margin:10px 0;padding-top:10px;padding-bottom:10px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress-text .rsssl-progress-percentage{font-size:32px;font-weight:700}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress-text .rsssl-progress-text{display:flex;flex-direction:row;margin-left:10px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress-text .rsssl-progress-text a{margin-left:3px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress-text .rsssl-progress-text .rsssl-progress-count{margin-left:3px;margin-right:3px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .rsssl-progress-table td{padding:10px 10px 10px 0}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .rsssl-progress-table td+td{padding-left:15px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks{color:#3c3c3c;padding-bottom:15px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks .tips-tricks-content{display:flex;flex-direction:column;margin-right:10px;height:340px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks .tips-tricks-content .tips-tricks-top{flex-grow:1}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks .tips-tricks-content .tips-tricks-top .rsssl-tips-tricks-element{margin-top:10px;margin-bottom:15px;display:flex;flex-direction:row;justify-content:space-between}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks .tips-tricks-content .tips-tricks-top .rsssl-tips-tricks-content{padding-right:20px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks .tips-tricks-content .tips-tricks-bottom{color:#3c3c3c}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks .rsssl-tips-tricks-read-more a{text-decoration:none;white-space:nowrap}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-bullet{height:13px;width:13px;border-radius:50%;margin-right:10px;background-color:lightgrey;text-decoration:none}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container{display:flex;flex-wrap:wrap;flex-direction:row}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums{display:flex;width:50%}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums a{text-decoration:none;color:#3c3c3c;display:flex;align-items:center}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums .rsssl-bullet{margin:7px 7px 7px 0;background-color:lightgrey;float:left}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums .rsssl-bullet:hover{background-color:#fbc43d}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums .rsssl-forums-content{float:left;color:#3c3c3c}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums .rsssl-forums-content:hover{text-decoration:underline}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-feedback{color:#d7263d}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell{display:flex !important;flex-direction:row;padding:5px 0 5px 0;align-items:center;color:#3c3c3c}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .plugin-text a{text-decoration:none;color:#3c3c3c}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .plugin-text a:hover{color:#fbc43d}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .rsp-image{margin-right:5px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .wpsi-red{background-color:#d7263d}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .cmplz-blue{background-color:#27adea}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .zip-pink{background-color:#e366a1}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .plugin-status{margin-left:auto}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-status{display:block;min-width:60px;text-align:center;border-radius:15px;padding:4px 8px 4px 8px;font-size:.8em;font-weight:600;height:17px;line-height:17px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-premium{background-color:#29b6f6;color:white}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-success{background-color:#61ce70;color:white}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-open{background-color:#fbc43d}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-warning{background-color:#d7263d;color:white}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-footer{display:flex;align-items:center;margin:14px 25px 0 25px;height:40px;bottom:0;width:95%}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-footer .rsssl-button-save{margin-right:25px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-footer #rsssl-feedback{font-weight:600;color:#61ce70;padding-left:10px}.rsssl-grid .rsssl-item .item-container .rsssl-deactivate-keep-ssl th,.rsssl-grid .rsssl-item .item-container .rsssl-deactivate-keep-ssl span{display:none}.rsssl-grid .rsssl-item.half-height{height:247.5px}.rsssl-grid .rsssl-item.half-height .item-container{height:237.5px}.rsssl-grid .rsssl-item.half-height .item-container .rsssl-grid-item-content{height:110px}.rsssl-grid .rsssl-item.half-height .item-container .rsssl-grid-item-content .form-table tbody tr,.rsssl-grid .rsssl-item.half-height .item-container .rsssl-grid-item-content .form-table tbody th{width:100%;max-width:100%}.rsssl-grid .rsssl-item.small .item-container{width:390px}.rsssl-grid .rsssl-item.small .item-container th{width:85% !important}.rsssl-grid .rsssl-item.small .item-container .form-table tbody tr{width:100%}.rsssl-grid .rsssl-item.no-border .item-container{border:0}.rsssl-grid .rsssl-item.no-background .item-container{background-color:#f2f2f2}.rsssl-grid #rsssl-progress-footer{width:100%;text-align:right;margin-right:10px}.rsssl-grid #rsssl-progress-footer .rsssl-footer-item{padding-right:5px}.rsssl-grid #rsssl-progress-footer .rsssl-footer-item form{float:left}.rsssl-grid #rsssl-progress-footer .rsssl-footer-item+.rsssl-footer-item{margin-right:20px}.rsssl-grid #rsssl-progress-footer .footer-left{float:left}.rsssl-grid #rsssl-progress-footer .footer-left .upsell{min-width:80px;text-align:center}.rsssl-grid #rsssl-progress-footer .footer-right{float:right}.rsssl-grid #rsssl-progress-footer .hidden{display:none}.rsssl-grid .rsssl-system-status-footer-info{margin-right:20px;width:100%;text-align:right}.rsssl-grid .rsssl-system-status-footer-info .system-status-info{margin-left:6px}.rsssl-grid .dot{height:10px;width:10px;border-radius:50%;display:inline-block}.rsssl-grid .rsssl-dot-success{background-color:#61ce70}.rsssl-grid .rsssl-dot-error{background-color:#d7263d}.rsssl-grid{position:relative}.rsssl-grid .rsssl-item{width:calc(100% - 20px);padding:10px;height:475px;min-height:500px;z-index:1}@media only screen and (min-width:400px){.rsssl-grid .rsssl-item{width:calc(100% - 20px)}}@media only screen and (min-width:600px){.rsssl-grid .rsssl-item{width:calc(100% - 20px)}}@media only screen and (min-width:768px){.rsssl-grid .rsssl-item{width:calc(100% - 20px)}}@media only screen and (min-width:992px){.rsssl-grid .rsssl-item{width:calc(100% - 20px)}}@media only screen and (min-width:1555px){.rsssl-grid .rsssl-item{width:calc(50% - 20px)}}.rsssl-grid .rsssl-item.small{width:calc(100% - 20px)}@media only screen and (min-width:400px){.rsssl-grid .rsssl-item.small{width:calc(100% - 20px)}}@media only screen and (min-width:600px){.rsssl-grid .rsssl-item.small{width:calc(100% - 20px)}}@media only screen and (min-width:768px){.rsssl-grid .rsssl-item.small{width:calc(50% - 20px)}}@media only screen and (min-width:992px){.rsssl-grid .rsssl-item.small{width:calc(50% - 20px)}}@media only screen and (min-width:1555px){.rsssl-grid .rsssl-item.small{width:calc(25% - 20px)}}.rsssl-grid .rsssl-item.small .item-container{width:100%;min-width:200px}.rsssl-grid .rsssl-item.half-height{min-height:250px}@media only screen and (min-width:400px){.rsssl-grid .rsssl-item.half-height{height:237.5px;min-height:250px}}@media only screen and (min-width:600px){.rsssl-grid .rsssl-item.half-height{min-height:250px;height:237.5px}}@media only screen and (min-width:768px){.rsssl-grid .rsssl-item.half-height{min-height:250px;height:237.5px}}@media only screen and (min-width:992px){.rsssl-grid .rsssl-item.half-height{min-height:250px;height:237.5px}}@media only screen and (min-width:1555px){.rsssl-grid .rsssl-item.half-height{min-height:250px;height:237.5px}}.rsssl-grid .rsssl-item.half-height .item-container{width:100%;min-width:200px;min-height:250px}.rsssl-grid .rsssl-item .settings.rsssl-item{width:100%;padding:0}.rsssl-grid .rsssl-item.muuri-item-hidden{z-index:0}.rsssl-grid .rsssl-item.muuri-item-releasing{z-index:2}.rsssl-grid .rsssl-item.muuri-item-dragging{z-index:3}.rsssl-grid .rsssl-item .rsssl-grid-header{border-bottom:1px solid lightgrey;padding:0;height:60px}.rsssl-grid .rsssl-item .rsssl-grid-header .rsssl-grid-header-container{margin:0 20px;height:100%}.rsssl-grid .rsssl-item .rsssl-grid-header .rsssl-grid-title{cursor:pointer;font-size:20px;padding:20px 0;font-weight:bold;float:left}.rsssl-grid .rsssl-item .rsssl-grid-header .rsssl-grid-controls{float:right;margin-top:20px;color:#cecece}.rsssl-grid .rsssl-item .item-container{background-color:#fff;position:relative;box-shadow:0 0 5px 5px rgba(222,222,222,0.2);height:100%;width:100%}.rsssl-grid .rsssl-item .item-container .item-content{clear:both;margin:15px;height:calc(100% - 100px);padding-top:0;padding-bottom:10px}.rsssl-grid .rsssl-item.no-border .item-container{border:0}.rsssl-grid .rsssl-item.no-background .item-container{background-color:#f1f1f1}.rsssl-grid .rsssl-item.muuri-item-placeholder .item-container{border-style:dashed;padding:0}
|
grid/templates/grid-container.php
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
<div class="rsssl-grid">{content}</div>
|
grid/templates/grid-element.php
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="rsssl-item {class}">
|
2 |
+
<div class="item-container">
|
3 |
+
<div class="rsssl-grid-item-header">
|
4 |
+
<h3>{title}</h3>
|
5 |
+
{header}
|
6 |
+
</div>
|
7 |
+
<div class="rsssl-grid-item-content">
|
8 |
+
{content}
|
9 |
+
</div>
|
10 |
+
<div class="rsssl-grid-item-footer">
|
11 |
+
{footer}
|
12 |
+
</div>
|
13 |
+
</div>
|
14 |
+
</div>
|
grid/templates/header.php
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php defined('ABSPATH') or die("you do not have access to this page!"); ?>
|
2 |
+
|
3 |
+
<div class="rsssl-secondary-header-item">
|
4 |
+
<div class="rsssl-save-settings-feedback" style="display: none;">
|
5 |
+
<?php _e("Save settings" , "really-simple-ssl") ?>
|
6 |
+
</div>
|
7 |
+
<div class="rsssl-instructions">{instructions}</div>
|
8 |
+
</div>
|
grid/templates/ms-settings.php
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
<?php defined('ABSPATH') or die("you do not have access to this page!");
|
2 |
+
settings_fields('rsssl_network_options');
|
3 |
+
do_settings_sections("really-simple-ssl");
|
grid/templates/other-plugins.php
ADDED
@@ -0,0 +1,60 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php defined('ABSPATH') or die("you do not have access to this page!"); ?>
|
2 |
+
|
3 |
+
<?php
|
4 |
+
|
5 |
+
$plugins = array(
|
6 |
+
'WPSI' => array(
|
7 |
+
'constant_free' => 'wpsi_plugin',
|
8 |
+
'constant_premium' => 'wpsi_pro_plugin',
|
9 |
+
'website' => 'https://wpsearchinsights.com/pro',
|
10 |
+
'search' => 'WP+Search+Insights+really+simple+plugins+searches+complianz',
|
11 |
+
),
|
12 |
+
'COMPLIANZ' => array(
|
13 |
+
'constant_free' => 'cmplz_plugin',
|
14 |
+
'constant_premium' => 'cmplz_premium',
|
15 |
+
'website' => 'https://complianz.io/pricing',
|
16 |
+
'search' => 'complianz+really+simple+cookies+rogierlankhorst',
|
17 |
+
),
|
18 |
+
'ZIP' => array(
|
19 |
+
'constant_free' => 'ZRDN_PLUGIN_BASENAME',
|
20 |
+
'constant_premium' => 'ZRDN_PREMIUM',
|
21 |
+
'website' => 'https://ziprecipes.net/premium/',
|
22 |
+
'search' => 'zip+recipes+recipe+maker+really+simple+plugins+complianz',
|
23 |
+
),
|
24 |
+
);
|
25 |
+
?>
|
26 |
+
<div>
|
27 |
+
<div class="rsssl-upsell rsssl-wpsi">
|
28 |
+
<div class="plugin-color">
|
29 |
+
<div class="wpsi-red rsssl-bullet"></div>
|
30 |
+
</div>
|
31 |
+
<div class="plugin-text">
|
32 |
+
<a href="https://wordpress.org/plugins/wp-search-insights/" target="_blank"><?php _e("WP Search Insights - Track searches on your website")?></a>
|
33 |
+
</div>
|
34 |
+
<div class="plugin-status">
|
35 |
+
<?php echo RSSSL()->really_simple_ssl->get_status_link($plugins['WPSI'])?>
|
36 |
+
</div>
|
37 |
+
</div>
|
38 |
+
<div class="rsssl-upsell rsssl-cmplz">
|
39 |
+
<div class="plugin-color">
|
40 |
+
<div class="cmplz-blue rsssl-bullet"></div>
|
41 |
+
</div>
|
42 |
+
<div class="plugin-text">
|
43 |
+
<a href="https://wordpress.org/plugins/complianz-gdpr/" target="_blank"><?php _e("Complianz Privacy Suite - Consent Management as it should be ", "really-simple-ssl")?></a>
|
44 |
+
</div>
|
45 |
+
<div class="plugin-status">
|
46 |
+
<?php echo RSSSL()->really_simple_ssl->get_status_link($plugins['COMPLIANZ'])?>
|
47 |
+
</div>
|
48 |
+
</div>
|
49 |
+
<div class="rsssl-upsell rsssl-zip">
|
50 |
+
<div class="plugin-color">
|
51 |
+
<div class="zip-pink rsssl-bullet"></div>
|
52 |
+
</div>
|
53 |
+
<div class="plugin-text"><a href="https://wordpress.org/plugins/zip-recipes/" target="_blank">
|
54 |
+
<?php _e("Zip Recipes - Beautiful recipes optimized for Google ", "really-simple-ssl")?></a>
|
55 |
+
</div>
|
56 |
+
<div class="plugin-status">
|
57 |
+
<?php echo RSSSL()->really_simple_ssl->get_status_link($plugins['ZIP'])?>
|
58 |
+
</div>
|
59 |
+
</div>
|
60 |
+
</div>
|
grid/templates/progress-footer.php
ADDED
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php defined('ABSPATH') or die("you do not have access to this page!"); ?>
|
2 |
+
|
3 |
+
<?php
|
4 |
+
if (RSSSL()->really_simple_ssl->ssl_enabled) {
|
5 |
+
$ssl_enabled = "rsssl-dot-success";
|
6 |
+
$ssl_text = __("SSL Activated", "really-simple-ssl");
|
7 |
+
} else {
|
8 |
+
$ssl_enabled = "rsssl-dot-error";
|
9 |
+
$ssl_text = __("SSL Not activated", "really-simple-ssl");
|
10 |
+
}
|
11 |
+
|
12 |
+
if (RSSSL()->really_simple_ssl->has_301_redirect()) {
|
13 |
+
$redirect_301 = "rsssl-dot-success";
|
14 |
+
} else {
|
15 |
+
$redirect_301 = "rsssl-dot-error";
|
16 |
+
}
|
17 |
+
|
18 |
+
|
19 |
+
$button_text = __("Go PRO!", "really-simple-ssl");
|
20 |
+
$button_link = RSSSL()->really_simple_ssl->pro_url;
|
21 |
+
$go_pro = "<a href='$button_link' target='_blank' class='button button-default upsell'>$button_text</a>";
|
22 |
+
$activate_btn = "";
|
23 |
+
if (!RSSSL()->really_simple_ssl->ssl_enabled) {
|
24 |
+
if ( RSSSL()->really_simple_ssl->site_has_ssl || ( defined( 'RSSSL_FORCE_ACTIVATE' ) && RSSSL_FORCE_ACTIVATE ) ) {
|
25 |
+
$button_text = __( "Activate SSL", "really-simple-ssl" );
|
26 |
+
$activate_btn = '<form action="" method="post" ><input type="submit" class="button button-primary" value="' . $button_text . '" id="rsssl_do_activate_ssl" name="rsssl_do_activate_ssl"></form>';
|
27 |
+
}
|
28 |
+
}
|
29 |
+
|
30 |
+
$items = array(
|
31 |
+
1 => array(
|
32 |
+
'class' => 'footer-right',
|
33 |
+
'dot_class' => $ssl_enabled,
|
34 |
+
'text' => $ssl_text,
|
35 |
+
),
|
36 |
+
2 => array(
|
37 |
+
'class' => 'footer-right',
|
38 |
+
'dot_class' => $redirect_301,
|
39 |
+
'text' => __("301 Redirect", "really-simple-ssl"),
|
40 |
+
),
|
41 |
+
);
|
42 |
+
|
43 |
+
?>
|
44 |
+
<div id="rsssl-progress-footer">
|
45 |
+
<span class="rsssl-footer-item footer-left">
|
46 |
+
<?php echo apply_filters("rsssl_progress_footer_left", '').$activate_btn.apply_filters("rsssl_progress_footer_right", $go_pro )?>
|
47 |
+
</span>
|
48 |
+
<?php
|
49 |
+
foreach ($items as $item) { ?>
|
50 |
+
<span class="rsssl-footer-item <?php echo $item['class']?>">
|
51 |
+
<span class="rsssl-grid-footer dot <?php echo $item['dot_class']?>"></span>
|
52 |
+
<?php echo $item['text']?>
|
53 |
+
</span>
|
54 |
+
|
55 |
+
<?php } ?>
|
56 |
+
</div>
|
grid/templates/progress-header.php
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php defined('ABSPATH') or die("you do not have access to this page!"); ?>
|
2 |
+
|
3 |
+
<div class="rsssl-secondary-header-item">
|
4 |
+
<?php $all_task_count = RSSSL()->really_simple_ssl->get_all_task_count(); ?>
|
5 |
+
<div class="rsssl-tasks-container rsssl-all-tasks">
|
6 |
+
<input type="checkbox" class="rsssl-task-toggle" id="rsssl-all-tasks" name="rsssl_all_tasks" <?php if (get_option('rsssl_all_tasks') ) echo "checked"?>>
|
7 |
+
<label class="rsssl-tasks <?php if (get_option('rsssl_all_tasks') ) echo "active"?>" for="rsssl-all-tasks"><?php _e( "All tasks", "really-simple-ssl" ); ?><?php echo " " . "(" . $all_task_count . ")"; ?></label>
|
8 |
+
</div>
|
9 |
+
<div class="rsssl-spacer"></div>
|
10 |
+
<?php
|
11 |
+
$open_task_count = RSSSL()->really_simple_ssl->get_remaining_tasks_count();
|
12 |
+
if ($open_task_count ==! 0) {?>
|
13 |
+
<div class="rsssl-tasks-container rsssl-remaining-tasks">
|
14 |
+
<input type="checkbox" class="rsssl-task-toggle" id="rsssl-remaining-tasks" name="rsssl_remaining_tasks" <?php if (get_option('rsssl_remaining_tasks') ) echo "checked"?>>
|
15 |
+
<label for="rsssl-remaining-tasks" id="rsssl-remaining-tasks-label" class="<?php if (get_option('rsssl_remaining_tasks') ) echo "checked"?>"><?php _e( "Remaining tasks", "really-simple-ssl" ); ?><?php echo " " . "(" . $open_task_count . ")"; ?></label>
|
16 |
+
</div>
|
17 |
+
<?php
|
18 |
+
}
|
19 |
+
?>
|
20 |
+
</div>
|
grid/templates/progress.php
ADDED
@@ -0,0 +1,60 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php defined('ABSPATH') or die("you do not have access to this page!"); ?>
|
2 |
+
|
3 |
+
<?php
|
4 |
+
$percentage_completed = RSSSL()->really_simple_ssl->get_score_percentage();
|
5 |
+
$lowest_possible_task_count = RSSSL()->really_simple_ssl->get_lowest_possible_task_count();
|
6 |
+
?>
|
7 |
+
|
8 |
+
<div class="rsssl-progress-block">
|
9 |
+
<div class="rsssl-progress-bar-text">
|
10 |
+
<div class="progress-bar-container">
|
11 |
+
<div class="progress">
|
12 |
+
<div class="bar" style="width:<?php echo $percentage_completed?>%"></div>
|
13 |
+
</div>
|
14 |
+
</div>
|
15 |
+
|
16 |
+
<div class="progress-text">
|
17 |
+
<span class="rsssl-progress-percentage">
|
18 |
+
<?php echo $percentage_completed?>%
|
19 |
+
</span>
|
20 |
+
<span class="rsssl-progress-text">
|
21 |
+
<?php
|
22 |
+
$open_task_count = RSSSL()->really_simple_ssl->get_remaining_tasks_count();
|
23 |
+
$open_tasks_html = '<div class="rsssl-progress-count">'.$open_task_count.'</div>';
|
24 |
+
if (RSSSL()->really_simple_ssl->ssl_enabled) {
|
25 |
+
$doing_well = __( "SSL is activated on your site.", 'really-simple-ssl' ) . ' ' . sprintf( _n( "You still have %s task open.", "You still have %s tasks open.", $open_task_count, 'really-simple-ssl' ), $open_tasks_html );
|
26 |
+
|
27 |
+
if ( $open_task_count === 0 ) {
|
28 |
+
_e("SSL configuration finished!", "really-simple-ssl");
|
29 |
+
} elseif ( !defined('rsssl_pro_version') ){
|
30 |
+
if ( $open_task_count >= $lowest_possible_task_count) {
|
31 |
+
echo $doing_well;
|
32 |
+
} else {
|
33 |
+
printf(__("Basic SSL configuration finished! Improve your score with %sReally Simple SSL Pro%s.", "really-simple-ssl"), '<a target="_blank" href="' . RSSSL()->really_simple_ssl->pro_url . '">', '</a>');
|
34 |
+
}
|
35 |
+
} else {
|
36 |
+
echo $doing_well;
|
37 |
+
}
|
38 |
+
} else {
|
39 |
+
if ( !is_network_admin() ) _e("SSL is not yet enabled on this site." , "really-simple-ssl");
|
40 |
+
}
|
41 |
+
do_action('rsssl_progress_feedback');
|
42 |
+
?>
|
43 |
+
</span>
|
44 |
+
</div>
|
45 |
+
</div>
|
46 |
+
|
47 |
+
<div class="rsssl-scroll-container rsssl-task-list">
|
48 |
+
<table class="rsssl-progress-table">
|
49 |
+
<thead></thead>
|
50 |
+
<tbody>
|
51 |
+
<?php
|
52 |
+
$notices = RSSSL()->really_simple_ssl->get_notices_list(array( 'status' => 'all' ));
|
53 |
+
foreach ($notices as $id => $notice) {
|
54 |
+
RSSSL()->really_simple_ssl->notice_row($id, $notice);
|
55 |
+
}
|
56 |
+
?>
|
57 |
+
</tbody>
|
58 |
+
</table>
|
59 |
+
</div>
|
60 |
+
</div>
|
grid/templates/settings-footer.php
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
<?php defined('ABSPATH') or die("you do not have access to this page!"); ?>
|
2 |
+
|
3 |
+
<input class="button button-rsssl-secondary rsssl-button-save" name="Submit" type="submit" value="<?php echo __("Save", "really-simple-ssl"); ?>"/>
|
grid/templates/settings.php
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php defined('ABSPATH') or die("you do not have access to this page!"); ?>
|
2 |
+
<div class="rsssl-settings">
|
3 |
+
<?php
|
4 |
+
settings_fields('rlrsssl_options');
|
5 |
+
do_settings_sections('rlrsssl');
|
6 |
+
?>
|
7 |
+
</div>
|
grid/templates/support-footer.php
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php defined('ABSPATH') or die("you do not have access to this page!"); ?>
|
2 |
+
|
3 |
+
<a href="<?php echo trailingslashit(rsssl_url).'system-status.php' ?>" class="button button-rsssl-secondary rsssl-wide-button"><?php _e("Download system status", "really-simple-ssl")?></a>
|
4 |
+
<div id="rsssl-feedback"></div>
|
5 |
+
<div class="rsssl-system-status-footer-info">
|
6 |
+
<span class="system-status-info"><?php echo "<b>" . __("Server type:", "really-simple-ssl") . "</b> " . RSSSL()->rsssl_server->get_server(); ?></span>
|
7 |
+
<span class="system-status-info"><?php echo "<b>" . __("SSL type:", "really-simple-ssl") . "</b> " . $this->ssl_type; ?></span>
|
8 |
+
</div>
|
grid/templates/support.php
ADDED
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php defined('ABSPATH') or die("you do not have access to this page!"); ?>
|
2 |
+
|
3 |
+
<div id="rsssl-support-forums-container">
|
4 |
+
<div class="rsssl-support-forums">
|
5 |
+
<a href="https://really-simple-ssl.com/forums/forum/general-issues/" target="_blank">
|
6 |
+
<div class="rsssl-bullet"></div>
|
7 |
+
<div class="rsssl-forums-content"><?php _e("General Issues", "really-simple-ssl")?></div>
|
8 |
+
</a>
|
9 |
+
</div>
|
10 |
+
|
11 |
+
<div class="rsssl-support-forums">
|
12 |
+
<a href="https://really-simple-ssl.com/forums/forum/redirect-loops/" target="_blank">
|
13 |
+
<div class="rsssl-bullet"></div>
|
14 |
+
<div class="rsssl-forums-content"><?php _e("Redirect loops", "really-simple-ssl")?></div>
|
15 |
+
</a>
|
16 |
+
</div>
|
17 |
+
|
18 |
+
<div class="rsssl-support-forums">
|
19 |
+
<a href="https://really-simple-ssl.com/forums/forum/multisite/" target="_blank">
|
20 |
+
<div class="rsssl-bullet"></div>
|
21 |
+
<div class="rsssl-forums-content"><?php _e("Multisite", "really-simple-ssl")?></div>
|
22 |
+
</a>
|
23 |
+
</div>
|
24 |
+
|
25 |
+
<div class="rsssl-support-forums">
|
26 |
+
<a href="https://really-simple-ssl.com/forums/forum/really-simple-ssl-pro/" target="_blank">
|
27 |
+
<div class="rsssl-bullet"></div>
|
28 |
+
<div class="rsssl-forums-content"><?php _e("Really Simple SSL Pro", "really-simple-ssl")?></div>
|
29 |
+
</a>
|
30 |
+
</div>
|
31 |
+
|
32 |
+
<div class="rsssl-support-forums">
|
33 |
+
<a href="https://really-simple-ssl.com/forums/forum/mixed-content-site/" target="_blank">
|
34 |
+
<div class="rsssl-bullet"></div>
|
35 |
+
<div class="rsssl-forums-content"><?php _e("Mixed Content", "really-simple-ssl")?></div>
|
36 |
+
</a>
|
37 |
+
</div>
|
38 |
+
|
39 |
+
<div class="rsssl-support-forums">
|
40 |
+
<a href="https://really-simple-ssl.com/knowledge-base/how-to-fix-mixed-content-in-elementor-after-moving-to-ssl/" target="_blank">
|
41 |
+
<div class="rsssl-bullet"></div>
|
42 |
+
<div class="rsssl-forums-content"><?php _e("Elementor", "really-simple-ssl")?></div>
|
43 |
+
</a>
|
44 |
+
</div>
|
45 |
+
</div>
|
grid/templates/tips-tricks-footer.php
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
<?php defined('ABSPATH') or die("you do not have access to this page!"); ?>
|
2 |
+
|
3 |
+
<a href="https://really-simple-ssl.com/knowledge-base-overview/" target="_blank" class="button button-rsssl-secondary"><?php _e("Documentation", "really-simple-ssl"); ?></a>
|
grid/templates/tips-tricks.php
ADDED
@@ -0,0 +1,53 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php defined('ABSPATH') or die("you do not have access to this page!"); ?>
|
2 |
+
<div class="rsssl-tips-tricks">
|
3 |
+
<div class="tips-tricks-content">
|
4 |
+
<div class="tips-tricks-top">
|
5 |
+
<div class="rsssl-tips-tricks-element">
|
6 |
+
<div class="rsssl-tips-tricks-content">
|
7 |
+
<?php _e("Is your site still not secure? Do the extensive site scan", "really-simple-ssl")?>
|
8 |
+
</div>
|
9 |
+
<div class="rsssl-tips-tricks-read-more">
|
10 |
+
<a href="https://really-simple-ssl.com/why-is-my-site-still-not-secure/" target="_blank"><?php _e("Read more", "really-simple-ssl");?></a>
|
11 |
+
</div>
|
12 |
+
</div>
|
13 |
+
<div class="rsssl-tips-tricks-element">
|
14 |
+
<div class="rsssl-tips-tricks-content">
|
15 |
+
<?php _e("Improve security: Enable HTTP Strict Transport Security (HSTS)", "really-simple-ssl")?>
|
16 |
+
</div>
|
17 |
+
<div class="rsssl-tips-tricks-read-more">
|
18 |
+
<a href="https://really-simple-ssl.com/hsts-http-strict-transport-security-good/" target="_blank"><?php _e("Read more", "really-simple-ssl");?></a>
|
19 |
+
</div>
|
20 |
+
</div>
|
21 |
+
<div class="rsssl-tips-tricks-element">
|
22 |
+
<div class="rsssl-tips-tricks-content">
|
23 |
+
<?php _e("Improve security: Add security headers", "really-simple-ssl");?>
|
24 |
+
</div>
|
25 |
+
<div class="rsssl-tips-tricks-read-more">
|
26 |
+
<a href="https://really-simple-ssl.com/everything-you-need-to-know-about-security-headers/" target="_blank"><?php _e("Read more", "really-simple-ssl");?></a>
|
27 |
+
</div>
|
28 |
+
</div>
|
29 |
+
<div class="rsssl-tips-tricks-element">
|
30 |
+
<div class="rsssl-tips-tricks-content">
|
31 |
+
<?php _e("Improve security: Secure cookies", "really-simple-ssl");?>
|
32 |
+
</div>
|
33 |
+
<div class="rsssl-tips-tricks-read-more">
|
34 |
+
<a href="https://really-simple-ssl.com/secure-cookies-with-httponly-secure-and-use_only_cookies/" target="_blank"><?php _e("Read more", "really-simple-ssl");?></a>
|
35 |
+
</div>
|
36 |
+
</div>
|
37 |
+
<div class="rsssl-tips-tricks-element">
|
38 |
+
<div class="rsssl-tips-tricks-content">
|
39 |
+
<?php _e("Information about landing page redirects", "really-simple-ssl");?>
|
40 |
+
</div>
|
41 |
+
<div class="rsssl-tips-tricks-read-more">
|
42 |
+
<a href="https://really-simple-ssl.com/knowledge-base/avoid-landing-page-redirects/" target="_blank"><?php _e("Read more", "really-simple-ssl");?></a>
|
43 |
+
</div>
|
44 |
+
</div>
|
45 |
+
</div>
|
46 |
+
<div class="tips-tricks-bottom">
|
47 |
+
<?php printf(
|
48 |
+
__('Any questions? See the %sdocumentation%s or the %sWordPress Forum%s.', 'really-simple-ssl'),
|
49 |
+
'<a href="https://really-simple-ssl.com/knowledge-base/" target="_blank">','</a>', '<a href="https://wordpress.org/support/plugin/really-simple-ssl/" target="_blank">', '</a>' );
|
50 |
+
?>
|
51 |
+
</div>
|
52 |
+
</div>
|
53 |
+
</div>
|
includes/simple-scrollbar.css
ADDED
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.rsssl-ss-wrapper {
|
2 |
+
overflow: hidden;
|
3 |
+
width: 100%;
|
4 |
+
height: 100%;
|
5 |
+
position: relative;
|
6 |
+
z-index: 1;
|
7 |
+
float: left;
|
8 |
+
}
|
9 |
+
|
10 |
+
.rsssl-ss-content {
|
11 |
+
height: 100%;
|
12 |
+
width: calc(100% + 18px);
|
13 |
+
padding: 0 0 0 0;
|
14 |
+
position: relative;
|
15 |
+
overflow-x: auto;
|
16 |
+
overflow-y: scroll;
|
17 |
+
box-sizing: border-box;
|
18 |
+
}
|
19 |
+
|
20 |
+
.rsssl-ss-content.rtl {
|
21 |
+
width: calc(100% + 18px);
|
22 |
+
right: auto;
|
23 |
+
}
|
24 |
+
|
25 |
+
.ss-scroll {
|
26 |
+
position: relative;
|
27 |
+
background: rgba(0, 0, 0, 0.1);
|
28 |
+
width: 9px;
|
29 |
+
border-radius: 4px;
|
30 |
+
top: 0;
|
31 |
+
z-index: 2;
|
32 |
+
cursor: pointer;
|
33 |
+
opacity: 0;
|
34 |
+
transition: opacity 0.25s linear;
|
35 |
+
}
|
36 |
+
|
37 |
+
.ss-hidden {
|
38 |
+
display: none;
|
39 |
+
}
|
40 |
+
|
41 |
+
.ss-container:hover .ss-scroll,
|
42 |
+
.ss-container:active .ss-scroll {
|
43 |
+
opacity: 1;
|
44 |
+
}
|
45 |
+
|
46 |
+
.ss-grabbed {
|
47 |
+
-ms-user-select: none;
|
48 |
+
-moz-user-select: none;
|
49 |
+
-webkit-user-select: none;
|
50 |
+
user-select: none;
|
51 |
+
}
|
includes/simple-scrollbar.js
ADDED
@@ -0,0 +1,165 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
;(function(root, factory) {
|
2 |
+
if (typeof exports === 'object') {
|
3 |
+
module.exports = factory(window, document)
|
4 |
+
} else {
|
5 |
+
root.SimpleScrollbar = factory(window, document)
|
6 |
+
}
|
7 |
+
})(this, function(w, d) {
|
8 |
+
var raf = w.requestAnimationFrame || w.setImmediate || function(c) { return setTimeout(c, 0); };
|
9 |
+
|
10 |
+
function initEl(el) {
|
11 |
+
Object.defineProperty(el, 'data-simple-scrollbar', { value: new SimpleScrollbar(el), configurable: true });
|
12 |
+
}
|
13 |
+
|
14 |
+
function unbindEl(el) {
|
15 |
+
if (!Object.prototype.hasOwnProperty.call(el, 'data-simple-scrollbar')) return;
|
16 |
+
el['data-simple-scrollbar'].unBind();
|
17 |
+
//Remove the elements property
|
18 |
+
delete el['data-simple-scrollbar'];
|
19 |
+
}
|
20 |
+
|
21 |
+
// Mouse drag handler
|
22 |
+
function dragDealer(el, context) {
|
23 |
+
var lastPageY;
|
24 |
+
|
25 |
+
el.addEventListener('mousedown', function(e) {
|
26 |
+
lastPageY = e.pageY;
|
27 |
+
el.classList.add('ss-grabbed');
|
28 |
+
d.body.classList.add('ss-grabbed');
|
29 |
+
|
30 |
+
d.addEventListener('mousemove', drag);
|
31 |
+
d.addEventListener('mouseup', stop);
|
32 |
+
|
33 |
+
return false;
|
34 |
+
});
|
35 |
+
|
36 |
+
function drag(e) {
|
37 |
+
var delta = e.pageY - lastPageY;
|
38 |
+
lastPageY = e.pageY;
|
39 |
+
|
40 |
+
raf(function() {
|
41 |
+
context.el.scrollTop += delta / context.scrollRatio;
|
42 |
+
});
|
43 |
+
}
|
44 |
+
|
45 |
+
function stop() {
|
46 |
+
el.classList.remove('ss-grabbed');
|
47 |
+
d.body.classList.remove('ss-grabbed');
|
48 |
+
d.removeEventListener('mousemove', drag);
|
49 |
+
d.removeEventListener('mouseup', stop);
|
50 |
+
}
|
51 |
+
}
|
52 |
+
|
53 |
+
// Constructor
|
54 |
+
function ss(el) {
|
55 |
+
this.target = el;
|
56 |
+
this.content = el.firstElementChild;
|
57 |
+
|
58 |
+
this.direction = w.getComputedStyle(this.target).direction;
|
59 |
+
|
60 |
+
this.bar = '<div class="ss-scroll">';
|
61 |
+
//Create a reference to the function binding to remove the event listeners
|
62 |
+
this.mB = this.moveBar.bind(this);
|
63 |
+
|
64 |
+
this.wrapper = d.createElement('div');
|
65 |
+
this.wrapper.setAttribute('class', 'rsssl-ss-wrapper');
|
66 |
+
|
67 |
+
this.el = d.createElement('div');
|
68 |
+
this.el.setAttribute('class', 'rsssl-ss-content');
|
69 |
+
|
70 |
+
if (this.direction === 'rtl') {
|
71 |
+
this.el.classList.add('rtl');
|
72 |
+
}
|
73 |
+
|
74 |
+
this.wrapper.appendChild(this.el);
|
75 |
+
|
76 |
+
while (this.target.firstChild) {
|
77 |
+
this.el.appendChild(this.target.firstChild);
|
78 |
+
}
|
79 |
+
this.target.appendChild(this.wrapper);
|
80 |
+
|
81 |
+
this.target.insertAdjacentHTML('beforeend', this.bar);
|
82 |
+
this.bar = this.target.lastChild;
|
83 |
+
|
84 |
+
dragDealer(this.bar, this);
|
85 |
+
this.moveBar();
|
86 |
+
|
87 |
+
w.addEventListener('resize', this.mB);
|
88 |
+
this.el.addEventListener('scroll', this.mB);
|
89 |
+
this.el.addEventListener('mouseenter', this.mB);
|
90 |
+
|
91 |
+
this.target.classList.add('ss-container');
|
92 |
+
|
93 |
+
var css = w.getComputedStyle(el);
|
94 |
+
if (css['height'] === '0px' && css['max-height'] !== '0px') {
|
95 |
+
el.style.height = css['max-height'];
|
96 |
+
}
|
97 |
+
|
98 |
+
this.unBind = function() {
|
99 |
+
//Remove event listeners
|
100 |
+
w.removeEventListener('resize', this.mB);
|
101 |
+
this.el.removeEventListener('scroll', this.mB);
|
102 |
+
this.el.removeEventListener('mouseenter', this.mB);
|
103 |
+
|
104 |
+
this.target.classList.remove('ss-container');
|
105 |
+
|
106 |
+
//Unwrap the initial content and remove remaining wrappers
|
107 |
+
this.target.insertBefore(this.content, this.wrapper);
|
108 |
+
this.target.removeChild(this.wrapper);
|
109 |
+
|
110 |
+
//Remove the bar including its drag-dealer event listener
|
111 |
+
this.target.removeChild(this.bar);
|
112 |
+
this.bar = null; //make way for the garbage collector
|
113 |
+
}
|
114 |
+
}
|
115 |
+
|
116 |
+
ss.prototype = {
|
117 |
+
moveBar: function(e) {
|
118 |
+
var totalHeight = this.el.scrollHeight,
|
119 |
+
ownHeight = this.el.clientHeight,
|
120 |
+
_this = this;
|
121 |
+
|
122 |
+
this.scrollRatio = ownHeight / totalHeight;
|
123 |
+
|
124 |
+
var isRtl = _this.direction === 'rtl';
|
125 |
+
var right = isRtl ?
|
126 |
+
(_this.target.clientWidth - _this.bar.clientWidth + 18) :
|
127 |
+
(_this.target.clientWidth - _this.bar.clientWidth) * -1;
|
128 |
+
|
129 |
+
raf(function() {
|
130 |
+
// Hide scrollbar if no scrolling is possible
|
131 |
+
if(_this.scrollRatio >= 1) {
|
132 |
+
_this.bar.classList.add('ss-hidden')
|
133 |
+
} else {
|
134 |
+
_this.bar.classList.remove('ss-hidden')
|
135 |
+
_this.bar.style.cssText = 'height:' + Math.max(_this.scrollRatio * 100, 10) + '%; top:' + (_this.el.scrollTop / totalHeight ) * 100 + '%;right:' + right + 'px;';
|
136 |
+
}
|
137 |
+
});
|
138 |
+
}
|
139 |
+
}
|
140 |
+
|
141 |
+
function initAll() {
|
142 |
+
var nodes = d.querySelectorAll('.rsssl-scroll-container');
|
143 |
+
|
144 |
+
for (var i = 0; i < nodes.length; i++) {
|
145 |
+
initEl(nodes[i]);
|
146 |
+
}
|
147 |
+
}
|
148 |
+
|
149 |
+
function unbindAll() {
|
150 |
+
var nodes = d.querySelectorAll('.ss-container');
|
151 |
+
|
152 |
+
for (var i = 0; i < nodes.length; i++) {
|
153 |
+
unbindEl(nodes[i]);
|
154 |
+
}
|
155 |
+
}
|
156 |
+
|
157 |
+
d.addEventListener('DOMContentLoaded', initAll);
|
158 |
+
ss.initEl = initEl;
|
159 |
+
ss.initAll = initAll;
|
160 |
+
ss.unbindEl = unbindEl;
|
161 |
+
ss.unbindAll = unbindAll;
|
162 |
+
|
163 |
+
var SimpleScrollbar = ss;
|
164 |
+
return SimpleScrollbar;
|
165 |
+
});
|
includes/simple-scrollbar.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.rsssl-ss-wrapper{overflow:hidden;width:100%;height:100%;position:relative;z-index:1;float:left}.rsssl-ss-content{height:100%;width:calc(100%+18px);padding:0;position:relative;overflow-x:auto;overflow-y:scroll;box-sizing:border-box}.rsssl-ss-content.rtl{width:calc(100%+18px);right:auto}.ss-scroll{position:relative;background:rgba(0,0,0,0.1);width:9px;border-radius:4px;top:0;z-index:2;cursor:pointer;opacity:0;transition:opacity .25s linear}.ss-hidden{display:none}.ss-container:hover .ss-scroll,.ss-container:active .ss-scroll{opacity:1}.ss-grabbed{-ms-user-select:none;-moz-user-select:none;-webkit-user-select:none;user-select:none}
|
includes/simple-scrollbar.min.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
(function(a,b){if(typeof exports==="object"){module.exports=b(window,document)}else{a.SimpleScrollbar=b(window,document)}})(this,function(h,f){var e=h.requestAnimationFrame||h.setImmediate||function(d){return setTimeout(d,0)};function g(d){Object.defineProperty(d,"data-simple-scrollbar",{value:new j(d),configurable:true})}function i(d){if(!Object.prototype.hasOwnProperty.call(d,"data-simple-scrollbar")){return}d["data-simple-scrollbar"].unBind();delete d["data-simple-scrollbar"]}function b(o,m){var d;o.addEventListener("mousedown",function(p){d=p.pageY;o.classList.add("ss-grabbed");f.body.classList.add("ss-grabbed");f.addEventListener("mousemove",n);f.addEventListener("mouseup",l);return false});function n(p){var q=p.pageY-d;d=p.pageY;e(function(){m.el.scrollTop+=q/m.scrollRatio})}function l(){o.classList.remove("ss-grabbed");f.body.classList.remove("ss-grabbed");f.removeEventListener("mousemove",n);f.removeEventListener("mouseup",l)}}function k(l){this.target=l;this.content=l.firstElementChild;this.direction=h.getComputedStyle(this.target).direction;this.bar='<div class="ss-scroll">';this.mB=this.moveBar.bind(this);this.wrapper=f.createElement("div");this.wrapper.setAttribute("class","rsssl-ss-wrapper");this.el=f.createElement("div");this.el.setAttribute("class","rsssl-ss-content");if(this.direction==="rtl"){this.el.classList.add("rtl")}this.wrapper.appendChild(this.el);while(this.target.firstChild){this.el.appendChild(this.target.firstChild)}this.target.appendChild(this.wrapper);this.target.insertAdjacentHTML("beforeend",this.bar);this.bar=this.target.lastChild;b(this.bar,this);this.moveBar();h.addEventListener("resize",this.mB);this.el.addEventListener("scroll",this.mB);this.el.addEventListener("mouseenter",this.mB);this.target.classList.add("ss-container");var d=h.getComputedStyle(l);if(d.height==="0px"&&d["max-height"]!=="0px"){l.style.height=d["max-height"]}this.unBind=function(){h.removeEventListener("resize",this.mB);this.el.removeEventListener("scroll",this.mB);this.el.removeEventListener("mouseenter",this.mB);this.target.classList.remove("ss-container");this.target.insertBefore(this.content,this.wrapper);this.target.removeChild(this.wrapper);this.target.removeChild(this.bar);this.bar=null}}k.prototype={moveBar:function(o){var n=this.el.scrollHeight,d=this.el.clientHeight,p=this;this.scrollRatio=d/n;var l=p.direction==="rtl";var m=l?(p.target.clientWidth-p.bar.clientWidth+18):(p.target.clientWidth-p.bar.clientWidth)*-1;e(function(){if(p.scrollRatio>=1){p.bar.classList.add("ss-hidden")}else{p.bar.classList.remove("ss-hidden");p.bar.style.cssText="height:"+Math.max(p.scrollRatio*100,10)+"%; top:"+(p.el.scrollTop/n)*100+"%;right:"+m+"px;"}})}};function a(){var d=f.querySelectorAll("*[ss-container]");for(var l=0;l<d.length;l++){g(d[l])}}function c(){var d=f.querySelectorAll(".ss-container");for(var l=0;l<d.length;l++){i(d[l])}}f.addEventListener("DOMContentLoaded",a);k.initEl=g;k.initAll=a;k.unbindEl=i;k.unbindAll=c;var j=k;return j});
|
js/scripts.js
ADDED
@@ -0,0 +1,134 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
jQuery(document).ready(function ($) {
|
2 |
+
"use strict";
|
3 |
+
|
4 |
+
$(document).on('click','.rsssl-slider',function () {
|
5 |
+
rssslSaveChangesNotice($(this));
|
6 |
+
});
|
7 |
+
$(document).on('click','.rsssl-container .rsssl-grid-item-content input',function () {
|
8 |
+
rssslSaveChangesNotice($(this));
|
9 |
+
});
|
10 |
+
$(document).on('change','.rsssl-container .rsssl-grid-item-content input',function () {
|
11 |
+
rssslSaveChangesNotice($(this));
|
12 |
+
});
|
13 |
+
$(document).on('change','.rsssl-container select',function () {
|
14 |
+
rssslSaveChangesNotice($(this));
|
15 |
+
});
|
16 |
+
$('.rsssl-button-save').prop('disabled', true);
|
17 |
+
|
18 |
+
function rssslSaveChangesNotice(obj){
|
19 |
+
obj.closest('.rsssl-item').find('.rsssl-save-settings-feedback').fadeIn();
|
20 |
+
obj.closest('.rsssl-item').find('.rsssl-button-save').prop('disabled', false);
|
21 |
+
}
|
22 |
+
|
23 |
+
// Color bullet in support forum block
|
24 |
+
$(".rsssl-support-forums a").hover(function() {
|
25 |
+
$(this).find('.rsssl-bullet').css("background-color","#FBC43D");
|
26 |
+
}, function() {
|
27 |
+
$(this).find('.rsssl-bullet').css("background-color",""); //to remove property set it to ''
|
28 |
+
});
|
29 |
+
|
30 |
+
$(document).on('click', "#rsssl-remaining-tasks", function (e) {
|
31 |
+
if ($('#rsssl-all-tasks').is(":checked")) {
|
32 |
+
$('#rsssl-all-tasks').prop("checked", false);
|
33 |
+
}
|
34 |
+
update_task_toggle_option();
|
35 |
+
});
|
36 |
+
|
37 |
+
$(document).on('click', "#rsssl-all-tasks", function (e) {
|
38 |
+
if ($('#rsssl-remaining-tasks').is(":checked")) {
|
39 |
+
$('#rsssl-remaining-tasks').prop("checked", false);
|
40 |
+
}
|
41 |
+
update_task_toggle_option();
|
42 |
+
});
|
43 |
+
|
44 |
+
function update_task_toggle_option() {
|
45 |
+
var allTasks;
|
46 |
+
var remainingTasks;
|
47 |
+
rsssl_update_toggle_style();
|
48 |
+
|
49 |
+
if ($('#rsssl-all-tasks').is(":checked")) {
|
50 |
+
allTasks = 'checked';
|
51 |
+
remainingTasks = 'unchecked';
|
52 |
+
} else {
|
53 |
+
allTasks = 'unchecked';
|
54 |
+
remainingTasks = 'checked';
|
55 |
+
}
|
56 |
+
|
57 |
+
$.ajax({
|
58 |
+
type: "post",
|
59 |
+
data: {
|
60 |
+
'action': 'rsssl_update_task_toggle_option',
|
61 |
+
'token' : rsssl.token,
|
62 |
+
'alltasks' : allTasks,
|
63 |
+
'remainingtasks' : remainingTasks,
|
64 |
+
},
|
65 |
+
url: rsssl.ajaxurl,
|
66 |
+
success: function () {
|
67 |
+
location.reload();
|
68 |
+
}
|
69 |
+
});
|
70 |
+
}
|
71 |
+
|
72 |
+
rsssl_update_toggle_style();
|
73 |
+
function rsssl_update_toggle_style(){
|
74 |
+
var allTasks = $('#rsssl-all-tasks');
|
75 |
+
if (allTasks.is(":checked")) {
|
76 |
+
$(".rsssl-tasks-container.rsssl-all-tasks").addClass('active');
|
77 |
+
$(".rsssl-tasks-container.rsssl-remaining-tasks").removeClass('active');
|
78 |
+
} else {
|
79 |
+
$(".rsssl-tasks-container.rsssl-all-tasks").removeClass('active');
|
80 |
+
$(".rsssl-tasks-container.rsssl-remaining-tasks").addClass('active');
|
81 |
+
}
|
82 |
+
}
|
83 |
+
|
84 |
+
|
85 |
+
$(document).on("click", ".rsssl-close-warning, .rsssl-close-warning-x",function (event) {
|
86 |
+
var type = $(this).closest('.rsssl-dashboard-dismiss').data('dismiss_type');
|
87 |
+
var row = $(this).closest('tr');
|
88 |
+
|
89 |
+
$.ajax({
|
90 |
+
type: "post",
|
91 |
+
data: {
|
92 |
+
'type' : type,
|
93 |
+
'action': 'rsssl_dismiss_settings_notice',
|
94 |
+
token : rsssl.token,
|
95 |
+
},
|
96 |
+
url: rsssl.ajaxurl,
|
97 |
+
success: function (data) {
|
98 |
+
row.remove();
|
99 |
+
if (data.percentage !== '') {
|
100 |
+
$('.rsssl-progress-percentage').text(data.percentage + "%");
|
101 |
+
$(".progress-bar-container .progress .bar").css("width", data.percentage + '%');
|
102 |
+
}
|
103 |
+
|
104 |
+
if (data.tasks !== '') {
|
105 |
+
// Hide completely when there are no tasks left
|
106 |
+
if (data.tasks === 0) {
|
107 |
+
$('.open-task-text').text("");
|
108 |
+
$('.open-task-count').text("");
|
109 |
+
}
|
110 |
+
if (data.tasks === rsssl.lowest_possible_task_count) {
|
111 |
+
$(".rsssl-progress-text").html(rsssl.finished_text);
|
112 |
+
} else {
|
113 |
+
var text = '';
|
114 |
+
if (data.tasks === 1 ) {
|
115 |
+
text = rsssl.not_complete_text_singular.replace('%s', data.tasks);
|
116 |
+
} else {
|
117 |
+
text = rsssl.not_complete_text_plural.replace('%s', data.tasks);
|
118 |
+
}
|
119 |
+
$(".rsssl-progress-text").html(text);
|
120 |
+
}
|
121 |
+
|
122 |
+
if (data.tasks !== 0) {
|
123 |
+
var current_count = $('#rsssl-remaining-tasks-label').text();
|
124 |
+
var updated_count = current_count.replace(/(?<=\().+?(?=\))/, data.tasks) ;
|
125 |
+
// Replace the count if there are open tasks left
|
126 |
+
$('#rsssl-remaining-tasks-label').text(updated_count);
|
127 |
+
$(".rsssl-progress-count").text(data.tasks);
|
128 |
+
}
|
129 |
+
}
|
130 |
+
}
|
131 |
+
});
|
132 |
+
});
|
133 |
+
|
134 |
+
});
|
js/scripts.min.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
jQuery(document).ready(function(c){c(document).on("click",".rsssl-slider",function(){e(c(this))});c(document).on("click",".rsssl-container .item-content input",function(){e(c(this))});c(document).on("change",".rsssl-container .item-content input",function(){e(c(this))});c(document).on("change",".rsssl-container select",function(){e(c(this))});c(".rsssl-button-save").prop("disabled",true);function e(f){console.log(c(this));f.closest(".rsssl-item").find(".rsssl-save-settings-feedback").fadeIn();f.closest(".rsssl-item").find(".rsssl-button-save").prop("disabled",false)}function d(){c.ajax({type:"post",data:{action:"rsssl_get_updated_task_count",token:rsssl.token,},url:rsssl.ajaxurl,success:function(h){if(h!==""){if(h===0){c(".open-task-text").text("");c(".open-task-count").text("")}if(h===rsssl.lowest_possible_task_count){c(".rsssl-progress-text").html(rsssl.finished_text)}else{var i=rsssl.not_complete_text.replace("%s",h);c(".rsssl-progress-text").html(i)}if(h!==0){var g=c("#rsssl-remaining-tasks-label").text();var f=g.replace(/(?<=\().+?(?=\))/,h);c("#rsssl-remaining-tasks-label").text(f);c(".rsssl-progress-count").text(h)}}}})}c(".rsssl-support-forums a").hover(function(){c(this).find(".rsssl-bullet").css("background-color","#FBC43D")},function(){c(this).find(".rsssl-bullet").css("background-color","")});c(document).on("click","#rsssl-remaining-tasks",function(f){if(c("#rsssl-all-tasks").is(":checked")){c("#rsssl-all-tasks").prop("checked",false)}a()});c(document).on("click","#rsssl-all-tasks",function(f){if(c("#rsssl-remaining-tasks").is(":checked")){c("#rsssl-remaining-tasks").prop("checked",false)}a()});function a(){var f;var g;b();if(c("#rsssl-all-tasks").is(":checked")){f="checked";g="unchecked"}else{f="unchecked";g="checked"}c.ajax({type:"post",data:{action:"rsssl_update_task_toggle_option",token:rsssl.token,alltasks:f,remainingtasks:g,},url:rsssl.ajaxurl,success:function(){location.reload()}})}b();function b(){var f=c("#rsssl-all-tasks");if(f.is(":checked")){c(".rsssl-tasks-container.rsssl-all-tasks").addClass("active");c(".rsssl-tasks-container.rsssl-remaining-tasks").removeClass("active")}else{c(".rsssl-tasks-container.rsssl-all-tasks").removeClass("active");c(".rsssl-tasks-container.rsssl-remaining-tasks").addClass("active")}}c(document).on("click",".rsssl-close-warning, .rsssl-close-warning-x",function(g){var f=c(this).closest(".rsssl-dashboard-dismiss").data("dismiss_type");var h={action:"rsssl_dismiss_settings_notice",type:f,token:rsssl.token,};c.post(ajaxurl,h,function(i){});c(this).closest("tr").remove();c.ajax({type:"post",data:{action:"rsssl_get_updated_percentage",token:rsssl.token,},url:rsssl.ajaxurl,success:function(i){if(i!=""){c(".rsssl-progress-percentage").text(i+"%");d()}}})})});
|
languages/really-simple-ssl.pot
ADDED
@@ -0,0 +1,949 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#, fuzzy
|
2 |
+
msgid ""
|
3 |
+
msgstr ""
|
4 |
+
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
|
5 |
+
"Project-Id-Version: Really Simple SSL\n"
|
6 |
+
"POT-Creation-Date: 2020-11-11 15:57+0100\n"
|
7 |
+
"PO-Revision-Date: 2020-11-11 15:56+0100\n"
|
8 |
+
"Last-Translator: Rogier Lankhorst <rogierlankhorst@gmail.com>\n"
|
9 |
+
"Language-Team: Rogier Lankhorst <rogierlankhorst@gmail.com>\n"
|
10 |
+
"MIME-Version: 1.0\n"
|
11 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
12 |
+
"Content-Transfer-Encoding: 8bit\n"
|
13 |
+
"X-Generator: Poedit 2.2.1\n"
|
14 |
+
"X-Poedit-Basepath: ..\n"
|
15 |
+
"X-Poedit-Flags-xgettext: --add-comments=translators:\n"
|
16 |
+
"X-Poedit-WPHeader: rlrsssl-really-simple-ssl.php\n"
|
17 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
18 |
+
"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;"
|
19 |
+
"esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;"
|
20 |
+
"_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
|
21 |
+
"X-Poedit-SearchPath-0: .\n"
|
22 |
+
"X-Poedit-SearchPathExcluded-0: *.js\n"
|
23 |
+
|
24 |
+
#: class-admin.php:50 class-cache.php:10 class-certificate.php:14
|
25 |
+
#: class-front-end.php:19 class-help.php:9 class-mixed-content-fixer.php:13
|
26 |
+
#: class-multisite.php:27 class-server.php:10 class-site-health.php:12
|
27 |
+
#, php-format
|
28 |
+
msgid "%s is a singleton class and you cannot create a second instance."
|
29 |
+
msgstr ""
|
30 |
+
|
31 |
+
#: class-admin.php:117
|
32 |
+
#, php-format
|
33 |
+
msgid ""
|
34 |
+
"Really Simple SSL and Really Simple SSL add-ons do not process any personal "
|
35 |
+
"identifiable information, so the GDPR does not apply to these plugins or "
|
36 |
+
"usage of these plugins on your website. You can find our privacy policy <a "
|
37 |
+
"href=\"%s\" target=\"_blank\">here</a>."
|
38 |
+
msgstr ""
|
39 |
+
|
40 |
+
#: class-admin.php:486
|
41 |
+
msgid "Almost ready to migrate to SSL!"
|
42 |
+
msgstr ""
|
43 |
+
|
44 |
+
#: class-admin.php:493
|
45 |
+
msgid "Before you migrate, please check for: "
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: class-admin.php:496 class-multisite.php:533
|
49 |
+
msgid ""
|
50 |
+
"Http references in your .css and .js files: change any http:// into https://"
|
51 |
+
msgstr ""
|
52 |
+
|
53 |
+
#: class-admin.php:497
|
54 |
+
msgid ""
|
55 |
+
"Images, stylesheets or scripts from a domain without an SSL certificate: "
|
56 |
+
"remove them or move to your own server"
|
57 |
+
msgstr ""
|
58 |
+
|
59 |
+
#: class-admin.php:503
|
60 |
+
#, php-format
|
61 |
+
msgid ""
|
62 |
+
"We strongly recommend to create a %sbackup%s of your site before activating "
|
63 |
+
"SSL"
|
64 |
+
msgstr ""
|
65 |
+
|
66 |
+
#: class-admin.php:504
|
67 |
+
msgid "You may need to login in again."
|
68 |
+
msgstr ""
|
69 |
+
|
70 |
+
#: class-admin.php:509
|
71 |
+
msgid ""
|
72 |
+
"You can also let the automatic scan of the pro version handle this for you, "
|
73 |
+
"and get premium support, increased security with HSTS and more!"
|
74 |
+
msgstr ""
|
75 |
+
|
76 |
+
#: class-admin.php:513
|
77 |
+
msgid "Check out Really Simple SSL Pro"
|
78 |
+
msgstr ""
|
79 |
+
|
80 |
+
#: class-admin.php:676
|
81 |
+
msgid "Go ahead, activate SSL!"
|
82 |
+
msgstr ""
|
83 |
+
|
84 |
+
#: class-admin.php:679
|
85 |
+
msgid "Get ready with PRO!"
|
86 |
+
msgstr ""
|
87 |
+
|
88 |
+
#: class-admin.php:2213
|
89 |
+
msgid ""
|
90 |
+
"A definition of a siteurl or homeurl was detected in your wp-config.php, but "
|
91 |
+
"the file is not writable."
|
92 |
+
msgstr ""
|
93 |
+
|
94 |
+
#: class-admin.php:2215 class-admin.php:2242
|
95 |
+
msgid "Set your wp-config.php to writable and reload this page."
|
96 |
+
msgstr ""
|
97 |
+
|
98 |
+
#: class-admin.php:2218
|
99 |
+
msgid "Your wp-config.php has to be edited, but is not writable."
|
100 |
+
msgstr ""
|
101 |
+
|
102 |
+
#: class-admin.php:2219
|
103 |
+
msgid ""
|
104 |
+
"Because your site is behind a loadbalancer and is_ssl() returns false, you "
|
105 |
+
"should add the following line of code to your wp-config.php."
|
106 |
+
msgstr ""
|
107 |
+
|
108 |
+
#: class-admin.php:2235
|
109 |
+
msgid "Or set your wp-config.php to writable and reload this page."
|
110 |
+
msgstr ""
|
111 |
+
|
112 |
+
#: class-admin.php:2241
|
113 |
+
msgid ""
|
114 |
+
"Because your server does not pass a variable with which WordPress can detect "
|
115 |
+
"SSL, WordPress may create redirect loops on SSL."
|
116 |
+
msgstr ""
|
117 |
+
|
118 |
+
#: class-admin.php:2248
|
119 |
+
msgid "System detection encountered issues"
|
120 |
+
msgstr ""
|
121 |
+
|
122 |
+
#: class-admin.php:2335
|
123 |
+
#, php-format
|
124 |
+
msgid ""
|
125 |
+
"Hi, Really Simple SSL has kept your site secure for some time now, awesome! "
|
126 |
+
"If you have a moment, please consider leaving a review on WordPress.org to "
|
127 |
+
"spread the word. We greatly appreciate it! If you have any questions or "
|
128 |
+
"feedback, leave us a %smessage%s."
|
129 |
+
msgstr ""
|
130 |
+
|
131 |
+
#: class-admin.php:2337
|
132 |
+
#, php-format
|
133 |
+
msgid ""
|
134 |
+
"Hi, Really Simple SSL has kept your site secure for a month now, awesome! If "
|
135 |
+
"you have a moment, please consider leaving a review on WordPress.org to "
|
136 |
+
"spread the word. We greatly appreciate it! If you have any questions or "
|
137 |
+
"feedback, leave us a %smessage%s."
|
138 |
+
msgstr ""
|
139 |
+
|
140 |
+
#: class-admin.php:2343
|
141 |
+
msgid "Leave a review"
|
142 |
+
msgstr ""
|
143 |
+
|
144 |
+
#: class-admin.php:2344
|
145 |
+
msgid "Maybe later"
|
146 |
+
msgstr ""
|
147 |
+
|
148 |
+
#: class-admin.php:2345
|
149 |
+
msgid "Don't show again"
|
150 |
+
msgstr ""
|
151 |
+
|
152 |
+
#: class-admin.php:2514
|
153 |
+
msgid "SSL settings"
|
154 |
+
msgstr ""
|
155 |
+
|
156 |
+
#: class-admin.php:2515 class-site-health.php:125
|
157 |
+
msgid "SSL"
|
158 |
+
msgstr ""
|
159 |
+
|
160 |
+
#: class-admin.php:2537 class-admin.php:3266 class-admin.php:3646
|
161 |
+
#: class-admin.php:4071 class-multisite.php:225 class-multisite.php:336
|
162 |
+
#: class-multisite.php:386
|
163 |
+
msgid "Settings"
|
164 |
+
msgstr ""
|
165 |
+
|
166 |
+
#: class-admin.php:2567 class-admin.php:2612 class-multisite.php:431
|
167 |
+
#: grid/templates/tips-tricks-footer.php:3
|
168 |
+
msgid "Documentation"
|
169 |
+
msgstr ""
|
170 |
+
|
171 |
+
#: class-admin.php:2568
|
172 |
+
msgid ""
|
173 |
+
"On <a href='https://really-simple-ssl.com'>really-simple-ssl.com</a> you can "
|
174 |
+
"find a lot of articles and documentation about installing this plugin, and "
|
175 |
+
"installing SSL in general."
|
176 |
+
msgstr ""
|
177 |
+
|
178 |
+
#: class-admin.php:2594
|
179 |
+
msgid "General"
|
180 |
+
msgstr ""
|
181 |
+
|
182 |
+
#: class-admin.php:2616 class-multisite.php:436
|
183 |
+
msgid "PRO"
|
184 |
+
msgstr ""
|
185 |
+
|
186 |
+
#: class-admin.php:2619 class-admin.php:4075 class-multisite.php:229
|
187 |
+
msgid "Support"
|
188 |
+
msgstr ""
|
189 |
+
|
190 |
+
#: class-admin.php:2662
|
191 |
+
msgid "No recommended redirect rules detected."
|
192 |
+
msgstr ""
|
193 |
+
|
194 |
+
#: class-admin.php:2680
|
195 |
+
msgid "Major security issue!"
|
196 |
+
msgstr ""
|
197 |
+
|
198 |
+
#: class-admin.php:2681
|
199 |
+
msgid ""
|
200 |
+
"The 'force-deactivate.php' file has to be renamed to .txt. Otherwise your "
|
201 |
+
"ssl can be deactivated by anyone on the internet."
|
202 |
+
msgstr ""
|
203 |
+
|
204 |
+
#: class-admin.php:2682
|
205 |
+
msgid "Check again"
|
206 |
+
msgstr ""
|
207 |
+
|
208 |
+
#: class-admin.php:2696
|
209 |
+
msgid "Check your site to see if you still have mixed content"
|
210 |
+
msgstr ""
|
211 |
+
|
212 |
+
#: class-admin.php:2710
|
213 |
+
msgid ""
|
214 |
+
"Don't forget to change your settings in Google Analytics and Search Console."
|
215 |
+
msgstr ""
|
216 |
+
|
217 |
+
#: class-admin.php:2724
|
218 |
+
msgid "https://really-simple-ssl.com/really-simple-ssl-4-a-new-dashboard"
|
219 |
+
msgstr ""
|
220 |
+
|
221 |
+
#: class-admin.php:2725
|
222 |
+
msgid "Really Simple SSL 4.0. Learn more about our newest major release."
|
223 |
+
msgstr ""
|
224 |
+
|
225 |
+
#: class-admin.php:2738
|
226 |
+
msgid "SSL is enabled on your site."
|
227 |
+
msgstr ""
|
228 |
+
|
229 |
+
#: class-admin.php:2742 class-multisite.php:131
|
230 |
+
msgid "SSL is not enabled yet"
|
231 |
+
msgstr ""
|
232 |
+
|
233 |
+
#: class-admin.php:2753
|
234 |
+
msgid "Cannot activate SSL due to system configuration."
|
235 |
+
msgstr ""
|
236 |
+
|
237 |
+
#: class-admin.php:2757
|
238 |
+
msgid "No SSL detected"
|
239 |
+
msgstr ""
|
240 |
+
|
241 |
+
#: class-admin.php:2758
|
242 |
+
#, php-format
|
243 |
+
msgid ""
|
244 |
+
"No SSL detected. See our guide on how to %sget a free SSL certificate%s. If "
|
245 |
+
"you do have an SSL certificate, try to reload this page over https by "
|
246 |
+
"clicking this link: %sReload over https.%s"
|
247 |
+
msgstr ""
|
248 |
+
|
249 |
+
#: class-admin.php:2763
|
250 |
+
msgid "An SSL certificate was detected on your site."
|
251 |
+
msgstr ""
|
252 |
+
|
253 |
+
#: class-admin.php:2775
|
254 |
+
msgid "Mixed content fixer was successfully detected on the front-end"
|
255 |
+
msgstr ""
|
256 |
+
|
257 |
+
#: class-admin.php:2780
|
258 |
+
msgid "Really Simple SSL has received no response from the webpage."
|
259 |
+
msgstr ""
|
260 |
+
|
261 |
+
#: class-admin.php:2787
|
262 |
+
msgid ""
|
263 |
+
"The mixed content fixer is active, but was not detected on the frontpage."
|
264 |
+
msgstr ""
|
265 |
+
|
266 |
+
#: class-admin.php:2792
|
267 |
+
msgid "Error occurred when retrieving the webpage."
|
268 |
+
msgstr ""
|
269 |
+
|
270 |
+
#: class-admin.php:2797
|
271 |
+
msgid ""
|
272 |
+
"Mixed content fixer not enabled. Enable the option to fix mixed content on "
|
273 |
+
"your site."
|
274 |
+
msgstr ""
|
275 |
+
|
276 |
+
#: class-admin.php:2803
|
277 |
+
#, php-format
|
278 |
+
msgid ""
|
279 |
+
"The mixed content fixer could not be detected due to a cURL error: %s. cURL "
|
280 |
+
"errors are often caused by an outdated version of PHP or cURL and don't "
|
281 |
+
"affect the front-end of your site. Contact your hosting provider for a fix."
|
282 |
+
msgstr ""
|
283 |
+
|
284 |
+
#: class-admin.php:2816
|
285 |
+
msgid "301 redirect to https set: WordPress redirect."
|
286 |
+
msgstr ""
|
287 |
+
|
288 |
+
#: class-admin.php:2820
|
289 |
+
msgid ""
|
290 |
+
"No 301 redirect is set. Enable the WordPress 301 redirect in the settings to "
|
291 |
+
"get a 301 permanent redirect."
|
292 |
+
msgstr ""
|
293 |
+
|
294 |
+
#: class-admin.php:2832
|
295 |
+
msgid "301 redirect to https set: .htaccess redirect."
|
296 |
+
msgstr ""
|
297 |
+
|
298 |
+
#: class-admin.php:2837
|
299 |
+
msgid ""
|
300 |
+
"WordPress 301 redirect enabled. We recommend to enable a 301 .htaccess "
|
301 |
+
"redirect."
|
302 |
+
msgstr ""
|
303 |
+
|
304 |
+
#: class-admin.php:2844
|
305 |
+
msgid ""
|
306 |
+
"Enable a .htaccess redirect or WordPress redirect in the settings to create "
|
307 |
+
"a 301 redirect."
|
308 |
+
msgstr ""
|
309 |
+
|
310 |
+
#: class-admin.php:2850
|
311 |
+
#, php-format
|
312 |
+
msgid ""
|
313 |
+
"The %s file is not writable. You can either use the WordPress redirect, add "
|
314 |
+
"the rules manually, or set the file to writable."
|
315 |
+
msgstr ""
|
316 |
+
|
317 |
+
#: class-admin.php:2855
|
318 |
+
msgid ""
|
319 |
+
"The .htaccess redirect rules selected by this plugin failed in the test. Set "
|
320 |
+
"manually or dismiss to leave on WordPress redirect."
|
321 |
+
msgstr ""
|
322 |
+
|
323 |
+
#: class-admin.php:2869
|
324 |
+
msgid ""
|
325 |
+
"Your site uses Elementor. This can require some additional steps before "
|
326 |
+
"getting the secure lock."
|
327 |
+
msgstr ""
|
328 |
+
|
329 |
+
#: class-admin.php:2883
|
330 |
+
msgid ""
|
331 |
+
"Your site uses Divi. This can require some additional steps before getting "
|
332 |
+
"the secure lock."
|
333 |
+
msgstr ""
|
334 |
+
|
335 |
+
#: class-admin.php:2896
|
336 |
+
msgid "HTTP Strict Transport Security was enabled."
|
337 |
+
msgstr ""
|
338 |
+
|
339 |
+
#: class-admin.php:2900
|
340 |
+
#, php-format
|
341 |
+
msgid "%sHTTP Strict Transport Security%s is not enabled %s(Read more)%s"
|
342 |
+
msgstr ""
|
343 |
+
|
344 |
+
#: class-admin.php:2911
|
345 |
+
msgid "Secure cookies set"
|
346 |
+
msgstr ""
|
347 |
+
|
348 |
+
#: class-admin.php:2915
|
349 |
+
#, php-format
|
350 |
+
msgid "Secure cookie settings not enabled (%sRead more%s) "
|
351 |
+
msgstr ""
|
352 |
+
|
353 |
+
#: class-admin.php:2926
|
354 |
+
msgid ""
|
355 |
+
"Your .htaccess file is not writable. This prevents Really Simple SSL from "
|
356 |
+
"writing redirects or security headers to your .htaccess file."
|
357 |
+
msgstr ""
|
358 |
+
|
359 |
+
#: class-admin.php:3019
|
360 |
+
#, php-format
|
361 |
+
msgid "%sMore info%s or %sdismiss%s"
|
362 |
+
msgstr ""
|
363 |
+
|
364 |
+
#: class-admin.php:3022
|
365 |
+
#, php-format
|
366 |
+
msgid "%sEnable%s or %sdismiss%s"
|
367 |
+
msgstr ""
|
368 |
+
|
369 |
+
#: class-admin.php:3257 class-multisite.php:377
|
370 |
+
msgid "Your progress"
|
371 |
+
msgstr ""
|
372 |
+
|
373 |
+
#: class-admin.php:3275
|
374 |
+
msgid "Tips & Tricks"
|
375 |
+
msgstr ""
|
376 |
+
|
377 |
+
#: class-admin.php:3284 class-multisite.php:395
|
378 |
+
msgid "Support forum"
|
379 |
+
msgstr ""
|
380 |
+
|
381 |
+
#: class-admin.php:3293 class-multisite.php:404
|
382 |
+
msgid "Our plugins"
|
383 |
+
msgstr ""
|
384 |
+
|
385 |
+
#: class-admin.php:3405
|
386 |
+
msgid "Install"
|
387 |
+
msgstr ""
|
388 |
+
|
389 |
+
#: class-admin.php:3408
|
390 |
+
msgid "Installed"
|
391 |
+
msgstr ""
|
392 |
+
|
393 |
+
#: class-admin.php:3411
|
394 |
+
msgid "Upgrade to pro"
|
395 |
+
msgstr ""
|
396 |
+
|
397 |
+
#: class-admin.php:3519
|
398 |
+
msgid "Completed"
|
399 |
+
msgstr ""
|
400 |
+
|
401 |
+
#: class-admin.php:3521
|
402 |
+
msgid "Warning"
|
403 |
+
msgstr ""
|
404 |
+
|
405 |
+
#: class-admin.php:3523
|
406 |
+
msgid "Open"
|
407 |
+
msgstr ""
|
408 |
+
|
409 |
+
#: class-admin.php:3525
|
410 |
+
msgid "Premium"
|
411 |
+
msgstr ""
|
412 |
+
|
413 |
+
#: class-admin.php:3573
|
414 |
+
msgid "More info"
|
415 |
+
msgstr ""
|
416 |
+
|
417 |
+
#: class-admin.php:3612 grid/templates/progress.php:32
|
418 |
+
#, php-format
|
419 |
+
msgid ""
|
420 |
+
"Basic SSL configuration finished! Improve your score with %sReally Simple "
|
421 |
+
"SSL Pro%s."
|
422 |
+
msgstr ""
|
423 |
+
|
424 |
+
#: class-admin.php:3618
|
425 |
+
msgid "Copied!"
|
426 |
+
msgstr ""
|
427 |
+
|
428 |
+
#: class-admin.php:3620
|
429 |
+
#, php-format
|
430 |
+
msgid "You're doing well. You still have %s tasks open"
|
431 |
+
msgstr ""
|
432 |
+
|
433 |
+
#: class-admin.php:3648
|
434 |
+
msgid ""
|
435 |
+
"In most cases you need to leave this enabled, to prevent mixed content "
|
436 |
+
"issues on your site."
|
437 |
+
msgstr ""
|
438 |
+
|
439 |
+
#: class-admin.php:3649
|
440 |
+
msgid "Mixed content fixer"
|
441 |
+
msgstr ""
|
442 |
+
|
443 |
+
#: class-admin.php:3653
|
444 |
+
msgid ""
|
445 |
+
"Redirects all requests over HTTP to HTTPS using a PHP 301 redirect. Enable "
|
446 |
+
"if the .htaccess redirect cannot be used, for example on NGINX servers."
|
447 |
+
msgstr ""
|
448 |
+
|
449 |
+
#: class-admin.php:3654
|
450 |
+
msgid "Enable WordPress 301 redirect"
|
451 |
+
msgstr ""
|
452 |
+
|
453 |
+
#: class-admin.php:3658
|
454 |
+
msgid ""
|
455 |
+
"A .htaccess redirect is faster and works better with caching. Really Simple "
|
456 |
+
"SSL detects the redirect code that is most likely to work (99% of websites), "
|
457 |
+
"but this is not 100%. Make sure you know how to regain access to your site "
|
458 |
+
"if anything goes wrong!"
|
459 |
+
msgstr ""
|
460 |
+
|
461 |
+
#: class-admin.php:3659 class-site-health.php:88
|
462 |
+
msgid "Enable 301 .htaccess redirect"
|
463 |
+
msgstr ""
|
464 |
+
|
465 |
+
#: class-admin.php:3666
|
466 |
+
msgid ""
|
467 |
+
"If you want to customize the Really Simple SSL .htaccess, you need to "
|
468 |
+
"prevent Really Simple SSL from rewriting it. Enabling this option will do "
|
469 |
+
"that."
|
470 |
+
msgstr ""
|
471 |
+
|
472 |
+
#: class-admin.php:3667
|
473 |
+
msgid "Stop editing the .htaccess file"
|
474 |
+
msgstr ""
|
475 |
+
|
476 |
+
#: class-admin.php:3670
|
477 |
+
msgid ""
|
478 |
+
"If this option is set to true, the mixed content fixer will fire on the init "
|
479 |
+
"hook instead of the template_redirect hook. Only use this option when you "
|
480 |
+
"experience problems with the mixed content fixer.\""
|
481 |
+
msgstr ""
|
482 |
+
|
483 |
+
#: class-admin.php:3671
|
484 |
+
msgid "Use alternative method to fix mixed content"
|
485 |
+
msgstr ""
|
486 |
+
|
487 |
+
#: class-admin.php:3672
|
488 |
+
msgid ""
|
489 |
+
"Enable this option to permanently dismiss all +1 notices in the 'Your "
|
490 |
+
"progress' tab"
|
491 |
+
msgstr ""
|
492 |
+
|
493 |
+
#: class-admin.php:3673
|
494 |
+
msgid "Dismiss all Really Simple SSL notices"
|
495 |
+
msgstr ""
|
496 |
+
|
497 |
+
#: class-admin.php:3780 class-admin.php:3808 class-admin.php:4044
|
498 |
+
msgid "This option is enabled on the network menu."
|
499 |
+
msgstr ""
|
500 |
+
|
501 |
+
#: class-admin.php:3811
|
502 |
+
msgid ""
|
503 |
+
"If the setting 'stop editing the .htaccess file' is enabled, you can't "
|
504 |
+
"change this setting."
|
505 |
+
msgstr ""
|
506 |
+
|
507 |
+
#: class-admin.php:3843
|
508 |
+
msgid ".htaccess is currently not writable."
|
509 |
+
msgstr ""
|
510 |
+
|
511 |
+
#: class-admin.php:3988
|
512 |
+
msgid "Are you sure?"
|
513 |
+
msgstr ""
|
514 |
+
|
515 |
+
#: class-admin.php:4001
|
516 |
+
msgid "To deactivate the plugin correctly, please select if you want to:"
|
517 |
+
msgstr ""
|
518 |
+
|
519 |
+
#: class-admin.php:4003
|
520 |
+
msgid "Deactivate, but stay on SSL."
|
521 |
+
msgstr ""
|
522 |
+
|
523 |
+
#: class-admin.php:4004
|
524 |
+
msgid ""
|
525 |
+
"Deactivate, and revert to http. This will remove all changes by the plugin."
|
526 |
+
msgstr ""
|
527 |
+
|
528 |
+
#: class-admin.php:4006
|
529 |
+
msgid "Deactivating the plugin while keeping SSL will do the following:"
|
530 |
+
msgstr ""
|
531 |
+
|
532 |
+
#: class-admin.php:4008
|
533 |
+
msgid "The mixed content fixer will stop working"
|
534 |
+
msgstr ""
|
535 |
+
|
536 |
+
#: class-admin.php:4009
|
537 |
+
msgid "The WordPress 301 redirect will stop working"
|
538 |
+
msgstr ""
|
539 |
+
|
540 |
+
#: class-admin.php:4010
|
541 |
+
msgid "Your site address will remain https://"
|
542 |
+
msgstr ""
|
543 |
+
|
544 |
+
#: class-admin.php:4011
|
545 |
+
msgid "The .htaccess redirect will remain active"
|
546 |
+
msgstr ""
|
547 |
+
|
548 |
+
#: class-admin.php:4021
|
549 |
+
msgid "Cancel"
|
550 |
+
msgstr ""
|
551 |
+
|
552 |
+
#: class-admin.php:4022
|
553 |
+
msgid "Deactivate, keep https"
|
554 |
+
msgstr ""
|
555 |
+
|
556 |
+
#: class-admin.php:4023
|
557 |
+
msgid "Deactivate, revert to http"
|
558 |
+
msgstr ""
|
559 |
+
|
560 |
+
#: class-admin.php:4077 class-multisite.php:231
|
561 |
+
msgid "Premium Support"
|
562 |
+
msgstr ""
|
563 |
+
|
564 |
+
#: class-admin.php:4083 class-multisite.php:237
|
565 |
+
msgid "Upgrade to premium"
|
566 |
+
msgstr ""
|
567 |
+
|
568 |
+
#: class-multisite.php:90
|
569 |
+
msgid "No choice has been made regarding networkwide or per site activation"
|
570 |
+
msgstr ""
|
571 |
+
|
572 |
+
#: class-multisite.php:92
|
573 |
+
msgid "SSL is activated network wide"
|
574 |
+
msgstr ""
|
575 |
+
|
576 |
+
#: class-multisite.php:94
|
577 |
+
msgid "SSL is activated per site"
|
578 |
+
msgstr ""
|
579 |
+
|
580 |
+
#: class-multisite.php:123
|
581 |
+
msgid "SSL is enabled networkwide."
|
582 |
+
msgstr ""
|
583 |
+
|
584 |
+
#: class-multisite.php:127
|
585 |
+
msgid "SSL is enabled per site."
|
586 |
+
msgstr ""
|
587 |
+
|
588 |
+
#: class-multisite.php:145
|
589 |
+
msgid ""
|
590 |
+
"You run a Multisite installation with subfolders, which prevents this plugin "
|
591 |
+
"from fixing your missing server variable in the wp-config.php."
|
592 |
+
msgstr ""
|
593 |
+
|
594 |
+
#: class-multisite.php:146
|
595 |
+
msgid ""
|
596 |
+
"Because the $_SERVER[\"HTTPS\"] variable is not set, your website may "
|
597 |
+
"experience redirect loops."
|
598 |
+
msgstr ""
|
599 |
+
|
600 |
+
#: class-multisite.php:147
|
601 |
+
msgid "Activate networkwide to fix this."
|
602 |
+
msgstr ""
|
603 |
+
|
604 |
+
#: class-multisite.php:158
|
605 |
+
msgid ""
|
606 |
+
"You run a Multisite installation with subdomains, but your site doesn't have "
|
607 |
+
"a wildcard certificate."
|
608 |
+
msgstr ""
|
609 |
+
|
610 |
+
#: class-multisite.php:159
|
611 |
+
msgid ""
|
612 |
+
"This leads to issues when activating SSL networkwide since subdomains will "
|
613 |
+
"be forced over SSL as well while they don't have a valid certificate."
|
614 |
+
msgstr ""
|
615 |
+
|
616 |
+
#: class-multisite.php:160
|
617 |
+
msgid "Activate SSL per site or install a wildcard certificate to fix this."
|
618 |
+
msgstr ""
|
619 |
+
|
620 |
+
#: class-multisite.php:338
|
621 |
+
msgid "Enable SSL"
|
622 |
+
msgstr ""
|
623 |
+
|
624 |
+
#: class-multisite.php:352
|
625 |
+
msgid "Select to enable SSL networkwide or per site."
|
626 |
+
msgstr ""
|
627 |
+
|
628 |
+
#: class-multisite.php:356
|
629 |
+
msgid "No selection was made"
|
630 |
+
msgstr ""
|
631 |
+
|
632 |
+
#: class-multisite.php:358
|
633 |
+
msgid "networkwide"
|
634 |
+
msgstr ""
|
635 |
+
|
636 |
+
#: class-multisite.php:359
|
637 |
+
msgid "per site"
|
638 |
+
msgstr ""
|
639 |
+
|
640 |
+
#: class-multisite.php:420
|
641 |
+
msgid "Options saved."
|
642 |
+
msgstr ""
|
643 |
+
|
644 |
+
#: class-multisite.php:530
|
645 |
+
msgid "Setup"
|
646 |
+
msgstr ""
|
647 |
+
|
648 |
+
#: class-multisite.php:531
|
649 |
+
msgid ""
|
650 |
+
"Some things can't be done automatically. Before you migrate, please check "
|
651 |
+
"for: "
|
652 |
+
msgstr ""
|
653 |
+
|
654 |
+
#: class-multisite.php:534
|
655 |
+
msgid ""
|
656 |
+
"Images, stylesheets or scripts from a domain without an SSL certificate: "
|
657 |
+
"remove them or move to your own server."
|
658 |
+
msgstr ""
|
659 |
+
|
660 |
+
#: class-multisite.php:536 class-multisite.php:564
|
661 |
+
msgid ""
|
662 |
+
"You can also let the automatic scan of the pro version handle this for you, "
|
663 |
+
"and get premium support and increased security with HSTS included."
|
664 |
+
msgstr ""
|
665 |
+
|
666 |
+
#: class-multisite.php:538 class-multisite.php:566
|
667 |
+
msgid "Check out Really Simple SSL Premium"
|
668 |
+
msgstr ""
|
669 |
+
|
670 |
+
#: class-multisite.php:543
|
671 |
+
msgid "Activate SSL networkwide"
|
672 |
+
msgstr ""
|
673 |
+
|
674 |
+
#: class-multisite.php:546
|
675 |
+
msgid "Activate SSL per site"
|
676 |
+
msgstr ""
|
677 |
+
|
678 |
+
#: class-multisite.php:549
|
679 |
+
msgid ""
|
680 |
+
"Networkwide activation does not check if a site has an SSL certificate. It "
|
681 |
+
"just migrates all sites to SSL."
|
682 |
+
msgstr ""
|
683 |
+
|
684 |
+
#: class-multisite.php:989
|
685 |
+
#, php-format
|
686 |
+
msgid "Conversion of websites %s percent complete."
|
687 |
+
msgstr ""
|
688 |
+
|
689 |
+
#: class-multisite.php:990
|
690 |
+
msgid ""
|
691 |
+
"Site conversion in progress. Please refresh this page to check if the "
|
692 |
+
"process has finished. It will proceed in the background."
|
693 |
+
msgstr ""
|
694 |
+
|
695 |
+
#: class-multisite.php:991
|
696 |
+
#, php-format
|
697 |
+
msgid ""
|
698 |
+
"If the conversion does not proceed after a few minutes, click %shere%s to "
|
699 |
+
"force the conversion process."
|
700 |
+
msgstr ""
|
701 |
+
|
702 |
+
#: class-multisite.php:993
|
703 |
+
msgid "Conversion of websites completed."
|
704 |
+
msgstr ""
|
705 |
+
|
706 |
+
#: class-site-health.php:27
|
707 |
+
msgid "Really Simple SSL HSTS test"
|
708 |
+
msgstr ""
|
709 |
+
|
710 |
+
#: class-site-health.php:46
|
711 |
+
msgid "SSL is not enabled."
|
712 |
+
msgstr ""
|
713 |
+
|
714 |
+
#: class-site-health.php:49
|
715 |
+
msgid ""
|
716 |
+
"Really Simple SSL detected an SSL certificate, but has not been configured "
|
717 |
+
"to enforce SSL."
|
718 |
+
msgstr ""
|
719 |
+
|
720 |
+
#: class-site-health.php:55 grid/templates/progress-footer.php:27
|
721 |
+
msgid "Activate SSL"
|
722 |
+
msgstr ""
|
723 |
+
|
724 |
+
#: class-site-health.php:59
|
725 |
+
msgid "No SSL detected."
|
726 |
+
msgstr ""
|
727 |
+
|
728 |
+
#: class-site-health.php:62
|
729 |
+
msgid ""
|
730 |
+
"Really Simple SSL is installed, but no valid SSL certificate is detected."
|
731 |
+
msgstr ""
|
732 |
+
|
733 |
+
#: class-site-health.php:68
|
734 |
+
msgid "No 301 redirect to SSL not enabled."
|
735 |
+
msgstr ""
|
736 |
+
|
737 |
+
#: class-site-health.php:71
|
738 |
+
msgid "To ensure all traffic passes through SSL, please enable a 301 redirect."
|
739 |
+
msgstr ""
|
740 |
+
|
741 |
+
#: class-site-health.php:76
|
742 |
+
msgid "Enable 301 redirect"
|
743 |
+
msgstr ""
|
744 |
+
|
745 |
+
#: class-site-health.php:80
|
746 |
+
msgid "301 .htaccess redirect is not enabled."
|
747 |
+
msgstr ""
|
748 |
+
|
749 |
+
#: class-site-health.php:83
|
750 |
+
msgid ""
|
751 |
+
"The 301 .htaccess redirect is the fastest and most reliable redirect option."
|
752 |
+
msgstr ""
|
753 |
+
|
754 |
+
#: class-site-health.php:92
|
755 |
+
msgid "301 SSL redirect enabled"
|
756 |
+
msgstr ""
|
757 |
+
|
758 |
+
#: class-site-health.php:96
|
759 |
+
msgid "You have set a 301 redirect to SSL. This is important for SEO purposes"
|
760 |
+
msgstr ""
|
761 |
+
|
762 |
+
#: class-site-health.php:108
|
763 |
+
msgid "Missing security headers"
|
764 |
+
msgstr ""
|
765 |
+
|
766 |
+
#: class-site-health.php:111
|
767 |
+
msgid "Your .htaccess file does not contain all recommended security headers."
|
768 |
+
msgstr ""
|
769 |
+
|
770 |
+
#: class-site-health.php:116
|
771 |
+
msgid "Lear more about security headers"
|
772 |
+
msgstr ""
|
773 |
+
|
774 |
+
#: grid/templates/header.php:5
|
775 |
+
msgid "Save settings"
|
776 |
+
msgstr ""
|
777 |
+
|
778 |
+
#: grid/templates/other-plugins.php:32
|
779 |
+
msgid "WP Search Insights - Track searches on your website"
|
780 |
+
msgstr ""
|
781 |
+
|
782 |
+
#: grid/templates/other-plugins.php:43
|
783 |
+
msgid "Complianz Privacy Suite - Consent Management as it should be "
|
784 |
+
msgstr ""
|
785 |
+
|
786 |
+
#: grid/templates/other-plugins.php:54
|
787 |
+
msgid "Zip Recipes - Beautiful recipes optimized for Google "
|
788 |
+
msgstr ""
|
789 |
+
|
790 |
+
#: grid/templates/progress-footer.php:6
|
791 |
+
msgid "SSL Activated"
|
792 |
+
msgstr ""
|
793 |
+
|
794 |
+
#: grid/templates/progress-footer.php:9
|
795 |
+
msgid "SSL Not activated"
|
796 |
+
msgstr ""
|
797 |
+
|
798 |
+
#: grid/templates/progress-footer.php:20
|
799 |
+
msgid "Go PRO!"
|
800 |
+
msgstr ""
|
801 |
+
|
802 |
+
#: grid/templates/progress-footer.php:46
|
803 |
+
msgid "301 Redirect"
|
804 |
+
msgstr ""
|
805 |
+
|
806 |
+
#: grid/templates/progress-header.php:7
|
807 |
+
msgid "All tasks"
|
808 |
+
msgstr ""
|
809 |
+
|
810 |
+
#: grid/templates/progress-header.php:15
|
811 |
+
msgid "Remaining tasks"
|
812 |
+
msgstr ""
|
813 |
+
|
814 |
+
#: grid/templates/progress.php:24
|
815 |
+
#, php-format
|
816 |
+
msgid "You're doing well. You still have %s task open."
|
817 |
+
msgid_plural "You're doing well. You still have %s tasks open."
|
818 |
+
msgstr[0] ""
|
819 |
+
msgstr[1] ""
|
820 |
+
|
821 |
+
#: grid/templates/progress.php:27
|
822 |
+
msgid "SSL configuration finished!"
|
823 |
+
msgstr ""
|
824 |
+
|
825 |
+
#: grid/templates/progress.php:38
|
826 |
+
msgid "SSL is not yet enabled on this site."
|
827 |
+
msgstr ""
|
828 |
+
|
829 |
+
#: grid/templates/settings-footer.php:3
|
830 |
+
msgid "Save"
|
831 |
+
msgstr ""
|
832 |
+
|
833 |
+
#: grid/templates/support-footer.php:3
|
834 |
+
msgid "Download system status"
|
835 |
+
msgstr ""
|
836 |
+
|
837 |
+
#: grid/templates/support-footer.php:6
|
838 |
+
msgid "Server type:"
|
839 |
+
msgstr ""
|
840 |
+
|
841 |
+
#: grid/templates/support-footer.php:7
|
842 |
+
msgid "SSL type:"
|
843 |
+
msgstr ""
|
844 |
+
|
845 |
+
#: grid/templates/support.php:7
|
846 |
+
msgid "General Issues"
|
847 |
+
msgstr ""
|
848 |
+
|
849 |
+
#: grid/templates/support.php:14
|
850 |
+
msgid "Redirect loops"
|
851 |
+
msgstr ""
|
852 |
+
|
853 |
+
#: grid/templates/support.php:21
|
854 |
+
msgid "Multisite"
|
855 |
+
msgstr ""
|
856 |
+
|
857 |
+
#: grid/templates/support.php:28
|
858 |
+
msgid "Really Simple SSL Pro"
|
859 |
+
msgstr ""
|
860 |
+
|
861 |
+
#: grid/templates/support.php:35
|
862 |
+
msgid "Mixed Content"
|
863 |
+
msgstr ""
|
864 |
+
|
865 |
+
#: grid/templates/support.php:42
|
866 |
+
msgid "Elementor"
|
867 |
+
msgstr ""
|
868 |
+
|
869 |
+
#: grid/templates/tips-tricks.php:7
|
870 |
+
msgid "Improve security: Enable HTTP Strict Transport Security (HSTS)"
|
871 |
+
msgstr ""
|
872 |
+
|
873 |
+
#: grid/templates/tips-tricks.php:10 grid/templates/tips-tricks.php:18
|
874 |
+
#: grid/templates/tips-tricks.php:26 grid/templates/tips-tricks.php:34
|
875 |
+
#: grid/templates/tips-tricks.php:42
|
876 |
+
msgid "Read more"
|
877 |
+
msgstr ""
|
878 |
+
|
879 |
+
#: grid/templates/tips-tricks.php:15
|
880 |
+
msgid "Is your site still not secure? Do the extensive site scan"
|
881 |
+
msgstr ""
|
882 |
+
|
883 |
+
#: grid/templates/tips-tricks.php:23
|
884 |
+
msgid "Improve security: Add security headers"
|
885 |
+
msgstr ""
|
886 |
+
|
887 |
+
#: grid/templates/tips-tricks.php:31
|
888 |
+
msgid "Improve security: secure cookies"
|
889 |
+
msgstr ""
|
890 |
+
|
891 |
+
#: grid/templates/tips-tricks.php:39
|
892 |
+
msgid "Information about landing page redirects"
|
893 |
+
msgstr ""
|
894 |
+
|
895 |
+
#: grid/templates/tips-tricks.php:48
|
896 |
+
#, php-format
|
897 |
+
msgid "Any questions? see the %sdocumentation%s or the %sWordPress Forum%s."
|
898 |
+
msgstr ""
|
899 |
+
|
900 |
+
#: multisite-cron.php:11
|
901 |
+
msgid "Once every minute"
|
902 |
+
msgstr ""
|
903 |
+
|
904 |
+
#: rlrsssl-really-simple-ssl.php:35
|
905 |
+
msgid ""
|
906 |
+
"Really Simple SSL cannot be activated. The plugin requires PHP 5.6 or higher"
|
907 |
+
msgstr ""
|
908 |
+
|
909 |
+
#: rlrsssl-really-simple-ssl.php:41
|
910 |
+
msgid ""
|
911 |
+
"Really Simple SSL cannot be activated. The plugin requires WordPress 4.8 or "
|
912 |
+
"higher"
|
913 |
+
msgstr ""
|
914 |
+
|
915 |
+
#: rlrsssl-really-simple-ssl.php:160
|
916 |
+
msgid "Plugin dependency error"
|
917 |
+
msgstr ""
|
918 |
+
|
919 |
+
#: rlrsssl-really-simple-ssl.php:161
|
920 |
+
msgid ""
|
921 |
+
"You have a premium add with a version that is not compatible with the >4.0 "
|
922 |
+
"release of Really Simple SSL."
|
923 |
+
msgstr ""
|
924 |
+
|
925 |
+
#: rlrsssl-really-simple-ssl.php:162
|
926 |
+
msgid ""
|
927 |
+
"Please upgrade to the latest version to be able use the full functionality "
|
928 |
+
"of the plugin."
|
929 |
+
msgstr ""
|
930 |
+
|
931 |
+
#. Plugin Name of the plugin/theme
|
932 |
+
msgid "Really Simple SSL"
|
933 |
+
msgstr ""
|
934 |
+
|
935 |
+
#. Plugin URI of the plugin/theme
|
936 |
+
msgid "https://really-simple-ssl.com"
|
937 |
+
msgstr ""
|
938 |
+
|
939 |
+
#. Description of the plugin/theme
|
940 |
+
msgid "Lightweight plugin without any setup to make your site SSL proof"
|
941 |
+
msgstr ""
|
942 |
+
|
943 |
+
#. Author of the plugin/theme
|
944 |
+
msgid "Really Simple Plugins"
|
945 |
+
msgstr ""
|
946 |
+
|
947 |
+
#. Author URI of the plugin/theme
|
948 |
+
msgid "https://really-simple-plugins.com"
|
949 |
+
msgstr ""
|
readme.txt
CHANGED
@@ -1,12 +1,12 @@
|
|
1 |
=== Really Simple SSL ===
|
2 |
-
Contributors: RogierLankhorst, markwolters
|
3 |
Donate link: https://www.paypal.me/reallysimplessl
|
4 |
Tags: SSL, https, force SSL, mixed content, insecure content, secure website, website security, TLS, security, secure socket layers, HSTS
|
5 |
Requires at least: 4.6
|
6 |
License: GPL2
|
7 |
-
Tested up to: 5.
|
8 |
Requires PHP: 5.4
|
9 |
-
Stable tag:
|
10 |
|
11 |
No setup required! You only need an SSL certificate, and this plugin will do the rest.
|
12 |
|
@@ -82,10 +82,15 @@ If you are experiencing redirect loops on your site, try these [instructions](ht
|
|
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.3.4 =
|
86 |
* Fix: prefix review notice dismiss to prevent conflicts with other plugins
|
87 |
-
* Updated multisite SSL activation hook for new blogs to wp_insert_site
|
88 |
-
* Moved notices CSS inline
|
89 |
|
90 |
= 3.3.3 =
|
91 |
* Dismiss review notice now uses get variable to dismiss it
|
1 |
=== Really Simple SSL ===
|
2 |
+
Contributors: RogierLankhorst, markwolters, hesseldejong
|
3 |
Donate link: https://www.paypal.me/reallysimplessl
|
4 |
Tags: SSL, https, force SSL, mixed content, insecure content, secure website, website security, TLS, security, secure socket layers, HSTS
|
5 |
Requires at least: 4.6
|
6 |
License: GPL2
|
7 |
+
Tested up to: 5.6
|
8 |
Requires PHP: 5.4
|
9 |
+
Stable tag: 4.0.0
|
10 |
|
11 |
No setup required! You only need an SSL certificate, and this plugin will do the rest.
|
12 |
|
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 |
+
= 4.0.0 =
|
86 |
+
* New user interface
|
87 |
+
* Fix: transient stored with 'WEEK_IN_SECONDS' as string instead of constant
|
88 |
+
* Improvement: notices dashboard, with dismissable notices
|
89 |
+
* Improvement: improved naming of settings, and instructions
|
90 |
+
* Improvement: articles in tips & tricks section
|
91 |
+
|
92 |
= 3.3.4 =
|
93 |
* Fix: prefix review notice dismiss to prevent conflicts with other plugins
|
|
|
|
|
94 |
|
95 |
= 3.3.3 =
|
96 |
* Dismiss review notice now uses get variable to dismiss it
|
rlrsssl-really-simple-ssl.php
CHANGED
@@ -1,16 +1,14 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* Plugin Name: Really Simple SSL
|
4 |
-
* Plugin URI: https://
|
5 |
* Description: Lightweight plugin without any setup to make your site SSL proof
|
6 |
-
* Version:
|
7 |
-
* Text Domain: really-simple-ssl
|
8 |
-
* Domain Path: /languages
|
9 |
* Author: Really Simple Plugins
|
10 |
* Author URI: https://really-simple-plugins.com
|
11 |
* License: GPL2
|
12 |
*/
|
13 |
-
/* Copyright
|
14 |
This program is free software; you can redistribute it and/or modify
|
15 |
it under the terms of the GNU General Public License, version 2, as
|
16 |
published by the Free Software Foundation.
|
@@ -24,6 +22,26 @@
|
|
24 |
*/
|
25 |
defined('ABSPATH') or die("you do not have access to this page!");
|
26 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
class REALLY_SIMPLE_SSL
|
28 |
{
|
29 |
private static $instance;
|
@@ -49,15 +67,9 @@ class REALLY_SIMPLE_SSL
|
|
49 |
self::$instance->rsssl_front_end = new rsssl_front_end();
|
50 |
self::$instance->rsssl_mixed_content_fixer = new rsssl_mixed_content_fixer();
|
51 |
|
52 |
-
|
53 |
-
// Backwards compatibility for add-ons
|
54 |
-
global $rsssl_front_end, $rsssl_mixed_content_fixer;
|
55 |
-
$rsssl_front_end = self::$instance->rsssl_front_end;
|
56 |
-
$rsssl_mixed_content_fixer = self::$instance->rsssl_mixed_content_fixer;
|
57 |
-
|
58 |
$wpcli = defined( 'WP_CLI' ) && WP_CLI;
|
59 |
|
60 |
-
if (is_admin() || is_multisite() || $wpcli) {
|
61 |
if (is_multisite()) {
|
62 |
self::$instance->rsssl_multisite = new rsssl_multisite();
|
63 |
}
|
@@ -68,18 +80,10 @@ class REALLY_SIMPLE_SSL
|
|
68 |
self::$instance->rsssl_certificate = new rsssl_certificate();
|
69 |
self::$instance->rsssl_site_health = new rsssl_site_health();
|
70 |
|
71 |
-
// Backwards compatibility for add-ons
|
72 |
-
global $rsssl_cache, $rsssl_server, $really_simple_ssl, $rsssl_help;
|
73 |
-
$rsssl_cache = self::$instance->rsssl_cache;
|
74 |
-
$rsssl_server = self::$instance->rsssl_server;
|
75 |
-
$really_simple_ssl = self::$instance->really_simple_ssl;
|
76 |
-
$rsssl_help = self::$instance->rsssl_help;
|
77 |
-
|
78 |
if ( $wpcli ) {
|
79 |
self::$instance->rsssl_wp_cli = new rsssl_wp_cli();
|
80 |
}
|
81 |
}
|
82 |
-
|
83 |
self::$instance->hooks();
|
84 |
}
|
85 |
return self::$instance;
|
@@ -89,10 +93,12 @@ class REALLY_SIMPLE_SSL
|
|
89 |
{
|
90 |
define('rsssl_url', plugin_dir_url(__FILE__));
|
91 |
define('rsssl_path', trailingslashit(plugin_dir_path(__FILE__)));
|
|
|
92 |
define('rsssl_plugin', plugin_basename(__FILE__));
|
93 |
require_once(ABSPATH . 'wp-admin/includes/plugin.php');
|
|
|
94 |
$plugin_data = get_plugin_data(__FILE__);
|
95 |
-
define('rsssl_version', $plugin_data['Version']);
|
96 |
}
|
97 |
|
98 |
private function includes()
|
@@ -101,20 +107,19 @@ class REALLY_SIMPLE_SSL
|
|
101 |
require_once(rsssl_path . 'class-mixed-content-fixer.php');
|
102 |
|
103 |
$wpcli = defined( 'WP_CLI' ) && WP_CLI;
|
104 |
-
|
105 |
if ( $wpcli ) {
|
106 |
require_once(rsssl_path . 'class-rsssl-wp-cli.php');
|
107 |
}
|
108 |
|
109 |
-
if (is_admin() || is_multisite() || $wpcli) {
|
110 |
if (is_multisite()) {
|
111 |
require_once(rsssl_path . 'class-multisite.php');
|
112 |
require_once(rsssl_path . 'multisite-cron.php');
|
113 |
}
|
114 |
-
|
115 |
require_once(rsssl_path . 'class-cache.php');
|
116 |
require_once(rsssl_path . 'class-server.php');
|
117 |
-
|
118 |
require_once(rsssl_path . 'class-certificate.php');
|
119 |
require_once(rsssl_path . 'class-site-health.php');
|
120 |
}
|
@@ -122,12 +127,61 @@ class REALLY_SIMPLE_SSL
|
|
122 |
|
123 |
private function hooks()
|
124 |
{
|
125 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
126 |
add_action('wp_loaded', array(self::$instance->rsssl_front_end, 'force_ssl'), 20);
|
127 |
if (is_admin() || is_multisite()) {
|
128 |
add_action('plugins_loaded', array(self::$instance->really_simple_ssl, 'init'), 10);
|
129 |
}
|
130 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
131 |
}
|
132 |
|
133 |
function RSSSL()
|
1 |
<?php
|
2 |
/**
|
3 |
* Plugin Name: Really Simple SSL
|
4 |
+
* Plugin URI: https://really-simple-ssl.com
|
5 |
* Description: Lightweight plugin without any setup to make your site SSL proof
|
6 |
+
* Version: 4.0.0
|
|
|
|
|
7 |
* Author: Really Simple Plugins
|
8 |
* Author URI: https://really-simple-plugins.com
|
9 |
* License: GPL2
|
10 |
*/
|
11 |
+
/* Copyright 2020 Really Simple Plugins BV (email : support@really-simple-ssl.com)
|
12 |
This program is free software; you can redistribute it and/or modify
|
13 |
it under the terms of the GNU General Public License, version 2, as
|
14 |
published by the Free Software Foundation.
|
22 |
*/
|
23 |
defined('ABSPATH') or die("you do not have access to this page!");
|
24 |
|
25 |
+
if (!function_exists('rsssl_activation_check')) {
|
26 |
+
/**
|
27 |
+
* Checks if the plugin can safely be activated, at least php 5.6 and wp 4.8
|
28 |
+
*/
|
29 |
+
function rsssl_activation_check()
|
30 |
+
{
|
31 |
+
if (version_compare(PHP_VERSION, '5.6', '<')) {
|
32 |
+
deactivate_plugins(plugin_basename(__FILE__));
|
33 |
+
wp_die(__('Really Simple SSL cannot be activated. The plugin requires PHP 5.6 or higher', 'really-simple-ssl'));
|
34 |
+
}
|
35 |
+
|
36 |
+
global $wp_version;
|
37 |
+
if (version_compare($wp_version, '4.8', '<')) {
|
38 |
+
deactivate_plugins(plugin_basename(__FILE__));
|
39 |
+
wp_die(__('Really Simple SSL cannot be activated. The plugin requires WordPress 4.8 or higher', 'really-simple-ssl'));
|
40 |
+
}
|
41 |
+
}
|
42 |
+
register_activation_hook( __FILE__, 'rsssl_activation_check' );
|
43 |
+
}
|
44 |
+
|
45 |
class REALLY_SIMPLE_SSL
|
46 |
{
|
47 |
private static $instance;
|
67 |
self::$instance->rsssl_front_end = new rsssl_front_end();
|
68 |
self::$instance->rsssl_mixed_content_fixer = new rsssl_mixed_content_fixer();
|
69 |
|
|
|
|
|
|
|
|
|
|
|
|
|
70 |
$wpcli = defined( 'WP_CLI' ) && WP_CLI;
|
71 |
|
72 |
+
if (is_admin() || is_multisite() || $wpcli || defined('RSSSL_DOING_SYSTEM_STATUS')) {
|
73 |
if (is_multisite()) {
|
74 |
self::$instance->rsssl_multisite = new rsssl_multisite();
|
75 |
}
|
80 |
self::$instance->rsssl_certificate = new rsssl_certificate();
|
81 |
self::$instance->rsssl_site_health = new rsssl_site_health();
|
82 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
83 |
if ( $wpcli ) {
|
84 |
self::$instance->rsssl_wp_cli = new rsssl_wp_cli();
|
85 |
}
|
86 |
}
|
|
|
87 |
self::$instance->hooks();
|
88 |
}
|
89 |
return self::$instance;
|
93 |
{
|
94 |
define('rsssl_url', plugin_dir_url(__FILE__));
|
95 |
define('rsssl_path', trailingslashit(plugin_dir_path(__FILE__)));
|
96 |
+
define('rsssl_template_path', trailingslashit(plugin_dir_path(__FILE__)).'grid/templates/');
|
97 |
define('rsssl_plugin', plugin_basename(__FILE__));
|
98 |
require_once(ABSPATH . 'wp-admin/includes/plugin.php');
|
99 |
+
$debug = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? time() : '';
|
100 |
$plugin_data = get_plugin_data(__FILE__);
|
101 |
+
define('rsssl_version', $plugin_data['Version'] . $debug);
|
102 |
}
|
103 |
|
104 |
private function includes()
|
107 |
require_once(rsssl_path . 'class-mixed-content-fixer.php');
|
108 |
|
109 |
$wpcli = defined( 'WP_CLI' ) && WP_CLI;
|
|
|
110 |
if ( $wpcli ) {
|
111 |
require_once(rsssl_path . 'class-rsssl-wp-cli.php');
|
112 |
}
|
113 |
|
114 |
+
if (is_admin() || is_multisite() || $wpcli || defined('RSSSL_DOING_SYSTEM_STATUS')) {
|
115 |
if (is_multisite()) {
|
116 |
require_once(rsssl_path . 'class-multisite.php');
|
117 |
require_once(rsssl_path . 'multisite-cron.php');
|
118 |
}
|
119 |
+
require_once(rsssl_path . 'class-admin.php');
|
120 |
require_once(rsssl_path . 'class-cache.php');
|
121 |
require_once(rsssl_path . 'class-server.php');
|
122 |
+
require_once(rsssl_path . 'class-help.php');
|
123 |
require_once(rsssl_path . 'class-certificate.php');
|
124 |
require_once(rsssl_path . 'class-site-health.php');
|
125 |
}
|
127 |
|
128 |
private function hooks()
|
129 |
{
|
130 |
+
/**
|
131 |
+
* Fire custom hook
|
132 |
+
*/
|
133 |
+
if ( is_admin() ) {
|
134 |
+
add_action('admin_notices', array( $this, 'admin_notices'));
|
135 |
+
do_action('rsssl_admin_init' );
|
136 |
+
}
|
137 |
+
|
138 |
add_action('wp_loaded', array(self::$instance->rsssl_front_end, 'force_ssl'), 20);
|
139 |
if (is_admin() || is_multisite()) {
|
140 |
add_action('plugins_loaded', array(self::$instance->really_simple_ssl, 'init'), 10);
|
141 |
}
|
142 |
}
|
143 |
+
|
144 |
+
/**
|
145 |
+
* Notice about possible compatibility issues with add ons
|
146 |
+
*/
|
147 |
+
public static function admin_notices() {
|
148 |
+
//prevent showing the review on edit screen, as gutenberg removes the class which makes it editable.
|
149 |
+
$screen = get_current_screen();
|
150 |
+
if ( $screen->base === 'post' ) return;
|
151 |
+
|
152 |
+
if ( self::has_old_addon('really-simple-ssl-pro/really-simple-ssl-pro.php') ||
|
153 |
+
self::has_old_addon('really-simple-ssl-pro-multisite/really-simple-ssl-pro-multisite.php' ) ||
|
154 |
+
self::has_old_addon('really-simple-ssl-social/really-simple-social.php' )
|
155 |
+
) {
|
156 |
+
?>
|
157 |
+
<div id="message" class="error notice really-simple-plugins">
|
158 |
+
<h1><?php echo __("Plugin dependency error","really-simple-ssl-pro");?></h1>
|
159 |
+
<p><?php echo __("You have a premium add with a version that is not compatible with the >4.0 release of Really Simple SSL.","really-simple-ssl");?></p>
|
160 |
+
<p><?php echo __("Please upgrade to the latest version to be able use the full functionality of the plugin.","really-simple-ssl");?></p>
|
161 |
+
</div>
|
162 |
+
<?php
|
163 |
+
}
|
164 |
+
}
|
165 |
+
|
166 |
+
/**
|
167 |
+
* Check if we have a pre 4.0 add on active which should be upgraded
|
168 |
+
* @param $file
|
169 |
+
*
|
170 |
+
* @return bool
|
171 |
+
*/
|
172 |
+
public static function has_old_addon($file) {
|
173 |
+
require_once(ABSPATH.'wp-admin/includes/plugin.php');
|
174 |
+
$data = false;
|
175 |
+
if (is_plugin_active($file)) $data = get_plugin_data( trailingslashit(WP_PLUGIN_DIR) . $file, false, false );
|
176 |
+
if ($data && version_compare($data['Version'], '4.0.0', '<')) {
|
177 |
+
return true;
|
178 |
+
}
|
179 |
+
|
180 |
+
if ($data && $data['Name']==='Really Simple SSL social' && version_compare($data['Version'], '4.0.8', '<')) {
|
181 |
+
return true;
|
182 |
+
}
|
183 |
+
return false;
|
184 |
+
}
|
185 |
}
|
186 |
|
187 |
function RSSSL()
|
system-status.php
ADDED
@@ -0,0 +1,157 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
# No need for the template engine
|
3 |
+
define( 'WP_USE_THEMES', false );
|
4 |
+
//we set wp admin to true, so the backend features get loaded.
|
5 |
+
if (!defined('RSSSL_DOING_SYSTEM_STATUS')) define( 'RSSSL_DOING_SYSTEM_STATUS' , true);
|
6 |
+
|
7 |
+
#find the base path
|
8 |
+
define( 'BASE_PATH', find_wordpress_base_path()."/" );
|
9 |
+
|
10 |
+
# Load WordPress Core
|
11 |
+
require_once( BASE_PATH . 'wp-load.php' );
|
12 |
+
require_once( BASE_PATH . 'wp-includes/class-phpass.php' );
|
13 |
+
require_once( BASE_PATH . 'wp-admin/includes/image.php' );
|
14 |
+
require_once( BASE_PATH . 'wp-admin/includes/plugin.php');
|
15 |
+
|
16 |
+
//by deleting these we make sure these functions run again
|
17 |
+
delete_transient('rsssl_testpage');
|
18 |
+
delete_transient('rsssl_domain_list');
|
19 |
+
|
20 |
+
if ( current_user_can( 'manage_options' ) ) {
|
21 |
+
|
22 |
+
ob_start();
|
23 |
+
if ( defined( 'RSSSL_SAFE_MODE' ) && RSSSL_SAFE_MODE ) {
|
24 |
+
echo "SAFE MODE\n";
|
25 |
+
}
|
26 |
+
|
27 |
+
echo "General\n";
|
28 |
+
echo "Domain: " . site_url() . "\n";
|
29 |
+
echo "Plugin version: " . rsssl_version . "\n";
|
30 |
+
|
31 |
+
if ( RSSSL()->rsssl_certificate->is_valid() ) {
|
32 |
+
echo "SSL certificate is valid\n";
|
33 |
+
} else {
|
34 |
+
if ( RSSSL()->rsssl_certificate->detection_failed() ) {
|
35 |
+
echo "Not able to detect certificate\n";
|
36 |
+
} else {
|
37 |
+
echo "Invalid SSL certificate\n";
|
38 |
+
}
|
39 |
+
}
|
40 |
+
|
41 |
+
echo ( RSSSL()->really_simple_ssl->ssl_enabled ) ? "SSL is enabled\n\n"
|
42 |
+
: "SSL is not yet enabled\n\n";
|
43 |
+
|
44 |
+
echo "Options\n";
|
45 |
+
if ( RSSSL()->really_simple_ssl->autoreplace_insecure_links ) {
|
46 |
+
echo "* Mixed content fixer\n";
|
47 |
+
}
|
48 |
+
if ( RSSSL()->really_simple_ssl->wp_redirect ) {
|
49 |
+
echo "* WordPress redirect\n";
|
50 |
+
}
|
51 |
+
if ( RSSSL()->really_simple_ssl->htaccess_redirect ) {
|
52 |
+
echo "* htaccess redirect\n";
|
53 |
+
}
|
54 |
+
if ( RSSSL()->really_simple_ssl->do_not_edit_htaccess ) {
|
55 |
+
echo "* Stop editing the .htaccess file\n";
|
56 |
+
}
|
57 |
+
if ( RSSSL()->really_simple_ssl->switch_mixed_content_fixer_hook ) {
|
58 |
+
echo "* Use alternative method to fix mixed content\n";
|
59 |
+
}
|
60 |
+
if ( RSSSL()->really_simple_ssl->dismiss_all_notices ) {
|
61 |
+
echo "* Dismiss all Really Simple SSL notices\n";
|
62 |
+
}
|
63 |
+
echo "\n";
|
64 |
+
|
65 |
+
echo "Server information\n";
|
66 |
+
echo "Server: " . RSSSL()->rsssl_server->get_server() . "\n";
|
67 |
+
echo "SSL Type: " . RSSSL()->really_simple_ssl->ssl_type . "\n";
|
68 |
+
|
69 |
+
if ( is_multisite() ) {
|
70 |
+
echo "MULTISITE\n";
|
71 |
+
echo ( ! RSSSL()->rsssl_multisite->ssl_enabled_networkwide )
|
72 |
+
? "SSL is being activated per site\n"
|
73 |
+
: "SSL is activated network wide\n";
|
74 |
+
}
|
75 |
+
|
76 |
+
do_action( "rsssl_system_status" );
|
77 |
+
|
78 |
+
echo RSSSL()->really_simple_ssl->debug_log;
|
79 |
+
|
80 |
+
echo "\n\nConstants\n";
|
81 |
+
|
82 |
+
if ( defined( 'RSSSL_FORCE_ACTIVATE' ) ) {
|
83 |
+
echo "RSSSL_FORCE_ACTIVATE defined\n";
|
84 |
+
}
|
85 |
+
if ( defined( 'RSSSL_NO_FLUSH' ) ) {
|
86 |
+
echo "RSSSL_NO_FLUSH defined";
|
87 |
+
}
|
88 |
+
if ( defined( 'RSSSL_DISMISS_ACTIVATE_SSL_NOTICE' ) ) {
|
89 |
+
echo "RSSSL_DISMISS_ACTIVATE_SSL_NOTICE defined\n";
|
90 |
+
}
|
91 |
+
if ( defined( 'RLRSSSL_DO_NOT_EDIT_HTACCESS' ) ) {
|
92 |
+
echo "RLRSSSL_DO_NOT_EDIT_HTACCESS defined\n";
|
93 |
+
}
|
94 |
+
if ( defined( 'RSSSL_SAFE_MODE' ) ) {
|
95 |
+
echo "RSSSL_SAFE_MODE defined\n";
|
96 |
+
}
|
97 |
+
if ( defined( "RSSSL_SERVER_OVERRIDE" ) ) {
|
98 |
+
echo "RSSSL_SERVER_OVERRIDE defined\n";
|
99 |
+
}
|
100 |
+
|
101 |
+
if ( ! defined( 'RSSSL_FORCE_ACTIVATE' )
|
102 |
+
&& ! defined( 'RSSSL_NO_FLUSH' )
|
103 |
+
&& ! defined( 'RSSSL_DISMISS_ACTIVATE_SSL_NOTICE' )
|
104 |
+
&& ! defined( 'RLRSSSL_DO_NOT_EDIT_HTACCESS' )
|
105 |
+
&& ! defined( 'RSSSL_SAFE_MODE' )
|
106 |
+
&& ! defined( "RSSSL_SERVER_OVERRIDE" )
|
107 |
+
) {
|
108 |
+
echo "No constants defined\n";
|
109 |
+
}
|
110 |
+
|
111 |
+
$content = ob_get_clean();
|
112 |
+
|
113 |
+
|
114 |
+
if ( function_exists( 'mb_strlen' ) ) {
|
115 |
+
$fsize = mb_strlen( $content, '8bit' );
|
116 |
+
} else {
|
117 |
+
$fsize = strlen( $content );
|
118 |
+
}
|
119 |
+
$file_name = 'really-simple-ssl-system-status.txt';
|
120 |
+
header( "Content-type: application/octet-stream" );
|
121 |
+
|
122 |
+
//direct downloaden
|
123 |
+
header( "Content-Disposition: attachment; filename=\"" . $file_name
|
124 |
+
. "\"" );
|
125 |
+
|
126 |
+
//open in browser
|
127 |
+
//header("Content-Disposition: inline; filename=\"".$file_name."\"");
|
128 |
+
header( "Content-length: $fsize" );
|
129 |
+
header( "Cache-Control: private",
|
130 |
+
false ); // required for certain browsers
|
131 |
+
|
132 |
+
header( "Pragma: public" ); // required
|
133 |
+
header( "Expires: 0" );
|
134 |
+
header( "Cache-Control: must-revalidate, post-check=0, pre-check=0" );
|
135 |
+
header( "Content-Transfer-Encoding: binary" );
|
136 |
+
|
137 |
+
echo $content;
|
138 |
+
|
139 |
+
} else {
|
140 |
+
//should not be here, so redirect to home
|
141 |
+
wp_redirect( home_url() );
|
142 |
+
exit;
|
143 |
+
}
|
144 |
+
|
145 |
+
function find_wordpress_base_path() {
|
146 |
+
$dir = dirname(__FILE__);
|
147 |
+
do {
|
148 |
+
if( file_exists($dir."/wp-config.php") ) {
|
149 |
+
if (file_exists($dir."/current")){
|
150 |
+
return $dir.'/current';
|
151 |
+
} else {
|
152 |
+
return $dir;
|
153 |
+
}
|
154 |
+
}
|
155 |
+
} while( $dir = realpath("$dir/..") );
|
156 |
+
return null;
|
157 |
+
}
|