BulletProof Security - Version 5.6

Version Description

Download this release

Release Info

Developer AITpro
Plugin Icon 128x128 BulletProof Security
Version 5.6
Comparing to
See all releases

Code changes from version 5.5 to 5.6

.htaccess CHANGED
@@ -1,5 +1,5 @@
1
  # BEGIN BPS FILE WHITELIST: BPS Frontend Loading Website Plugin scripts/files
2
- RewriteRule ^.*bps-maintenance.php - [S=6]
3
  RewriteRule ^400.php - [S=5]
4
  RewriteRule ^403.php - [S=4]
5
  RewriteRule ^405.php - [S=3]
1
  # BEGIN BPS FILE WHITELIST: BPS Frontend Loading Website Plugin scripts/files
2
+ RewriteRule ^.*bps-maintenance(.*).php - [S=6]
3
  RewriteRule ^400.php - [S=5]
4
  RewriteRule ^403.php - [S=4]
5
  RewriteRule ^405.php - [S=3]
403.php CHANGED
@@ -105,7 +105,7 @@ $gmt_offset = get_option( 'gmt_offset' ) * 3600;
105
  $event = 'PSBR-HPRA';
106
  $solution = 'https://forum.ait-pro.com/forums/topic/security-log-event-codes/';
107
  }
108
- elseif ( preg_match('/(.*)\/wp-admin\/(.*)\.[a-zA-Z0-9]/', $_SERVER['REQUEST_URI'], $matches ) || preg_match('/(.*)\/wp-admin\/(.*)\.[a-zA-Z0-9]/', $_SERVER['HTTP_REFERER'], $matches ) ) {
109
  $event = 'WPADMIN-SBR';
110
  $solution = 'https://forum.ait-pro.com/forums/topic/security-log-event-codes/';
111
 
@@ -139,7 +139,7 @@ if ( !preg_match('/BPSUserAgentPlaceHolder/', $_SERVER['HTTP_USER_AGENT']) ) {
139
  $event = 'PSBR-HPRA';
140
  $solution = 'https://forum.ait-pro.com/forums/topic/security-log-event-codes/';
141
  }
142
- elseif ( preg_match('/(.*)\/wp-admin\/(.*)\.[a-zA-Z0-9]/', $_SERVER['REQUEST_URI'], $matches ) || preg_match('/(.*)\/wp-admin\/(.*)\.[a-zA-Z0-9]/', $_SERVER['HTTP_REFERER'], $matches ) ) {
143
  $event = 'WPADMIN-SBR';
144
  $solution = 'https://forum.ait-pro.com/forums/topic/security-log-event-codes/';
145
 
105
  $event = 'PSBR-HPRA';
106
  $solution = 'https://forum.ait-pro.com/forums/topic/security-log-event-codes/';
107
  }
108
+ elseif ( preg_match('/(.*)\/wp-admin\/(.*)\.[a-zA-Z0-9]/', $_SERVER['REQUEST_URI'], $matches ) || preg_match('/(.*)\/wp-admin\/(.*)\.[a-zA-Z0-9]/', $bpsPro_http_referer, $matches ) ) {
109
  $event = 'WPADMIN-SBR';
110
  $solution = 'https://forum.ait-pro.com/forums/topic/security-log-event-codes/';
111
 
139
  $event = 'PSBR-HPRA';
140
  $solution = 'https://forum.ait-pro.com/forums/topic/security-log-event-codes/';
141
  }
142
+ elseif ( preg_match('/(.*)\/wp-admin\/(.*)\.[a-zA-Z0-9]/', $_SERVER['REQUEST_URI'], $matches ) || preg_match('/(.*)\/wp-admin\/(.*)\.[a-zA-Z0-9]/', $bpsPro_http_referer, $matches ) ) {
143
  $event = 'WPADMIN-SBR';
144
  $solution = 'https://forum.ait-pro.com/forums/topic/security-log-event-codes/';
145
 
405.php CHANGED
@@ -104,7 +104,7 @@ $gmt_offset = get_option( 'gmt_offset' ) * 3600;
104
  $event = 'PSBR-HPRA-HEAD';
105
  $solution = 'https://forum.ait-pro.com/forums/topic/security-log-event-codes/';
106
  }
107
- elseif ( preg_match('/(.*)\/wp-admin\/(.*)\.[a-zA-Z0-9]/', $_SERVER['REQUEST_URI'], $matches ) || preg_match('/(.*)\/wp-admin\/(.*)\.[a-zA-Z0-9]/', $_SERVER['HTTP_REFERER'], $matches ) ) {
108
  $event = 'WPADMIN-SBR-HEAD';
109
  $solution = 'https://forum.ait-pro.com/forums/topic/security-log-event-codes/';
110
 
@@ -136,7 +136,7 @@ $log_contents = "\r\n" . '[405 HEAD Request: ' . $timestamp . ']' . "\r\n" . 'BP
136
  $event = 'PSBR-HPRA-HEAD';
137
  $solution = 'https://forum.ait-pro.com/forums/topic/security-log-event-codes/';
138
  }
139
- elseif ( preg_match('/(.*)\/wp-admin\/(.*)\.[a-zA-Z0-9]/', $_SERVER['REQUEST_URI'], $matches ) || preg_match('/(.*)\/wp-admin\/(.*)\.[a-zA-Z0-9]/', $_SERVER['HTTP_REFERER'], $matches ) ) {
140
  $event = 'WPADMIN-SBR-HEAD';
141
  $solution = 'https://forum.ait-pro.com/forums/topic/security-log-event-codes/';
142
 
104
  $event = 'PSBR-HPRA-HEAD';
105
  $solution = 'https://forum.ait-pro.com/forums/topic/security-log-event-codes/';
106
  }
107
+ elseif ( preg_match('/(.*)\/wp-admin\/(.*)\.[a-zA-Z0-9]/', $_SERVER['REQUEST_URI'], $matches ) || preg_match('/(.*)\/wp-admin\/(.*)\.[a-zA-Z0-9]/', $bpsPro_http_referer, $matches ) ) {
108
  $event = 'WPADMIN-SBR-HEAD';
109
  $solution = 'https://forum.ait-pro.com/forums/topic/security-log-event-codes/';
110
 
136
  $event = 'PSBR-HPRA-HEAD';
137
  $solution = 'https://forum.ait-pro.com/forums/topic/security-log-event-codes/';
138
  }
139
+ elseif ( preg_match('/(.*)\/wp-admin\/(.*)\.[a-zA-Z0-9]/', $_SERVER['REQUEST_URI'], $matches ) || preg_match('/(.*)\/wp-admin\/(.*)\.[a-zA-Z0-9]/', $bpsPro_http_referer, $matches ) ) {
140
  $event = 'WPADMIN-SBR-HEAD';
141
  $solution = 'https://forum.ait-pro.com/forums/topic/security-log-event-codes/';
142
 
admin/core/core.php CHANGED
@@ -2242,6 +2242,7 @@ $text = '<h3><span class="blue-bold">'.__('Want even more security protection fo
2242
 
2243
  <div class="pro-links">
2244
  <?php
 
2245
  echo sprintf( __( '<a href="%2$s" target="_blank" title="Link Opens in New Browser Window">Whats New in BPS Pro %1$s</a>' ), '16.1', 'https://www.ait-pro.com/aitpro-blog/5737/bulletproof-security-pro/whats-new-in-bulletproof-security-pro-16-1/' ).'<br>';
2246
  echo sprintf( __( '<a href="%2$s" target="_blank" title="Link Opens in New Browser Window">Whats New in BPS Pro %1$s</a>' ), '16', 'https://www.ait-pro.com/aitpro-blog/5733/bulletproof-security-pro/whats-new-in-bulletproof-security-pro-16/' ).'<br>';
2247
  echo sprintf( __( '<a href="%2$s" target="_blank" title="Link Opens in New Browser Window">Whats New in BPS Pro %1$s</a>' ), '15.9', 'https://www.ait-pro.com/aitpro-blog/5729/bulletproof-security-pro/whats-new-in-bulletproof-security-pro-15-9/' ).'<br>';
2242
 
2243
  <div class="pro-links">
2244
  <?php
2245
+ echo sprintf( __( '<a href="%2$s" target="_blank" title="Link Opens in New Browser Window">Whats New in BPS Pro %1$s</a>' ), '16.2', 'https://www.ait-pro.com/aitpro-blog/5741/bulletproof-security-pro/whats-new-in-bulletproof-security-pro-16-2/' ).'<br>';
2246
  echo sprintf( __( '<a href="%2$s" target="_blank" title="Link Opens in New Browser Window">Whats New in BPS Pro %1$s</a>' ), '16.1', 'https://www.ait-pro.com/aitpro-blog/5737/bulletproof-security-pro/whats-new-in-bulletproof-security-pro-16-1/' ).'<br>';
2247
  echo sprintf( __( '<a href="%2$s" target="_blank" title="Link Opens in New Browser Window">Whats New in BPS Pro %1$s</a>' ), '16', 'https://www.ait-pro.com/aitpro-blog/5733/bulletproof-security-pro/whats-new-in-bulletproof-security-pro-16/' ).'<br>';
2248
  echo sprintf( __( '<a href="%2$s" target="_blank" title="Link Opens in New Browser Window">Whats New in BPS Pro %1$s</a>' ), '15.9', 'https://www.ait-pro.com/aitpro-blog/5729/bulletproof-security-pro/whats-new-in-bulletproof-security-pro-15-9/' ).'<br>';
admin/db-backup-security/db-backup-help-text.php CHANGED
@@ -9,7 +9,7 @@ if ( !current_user_can('manage_options') ) {
9
  $bps_modal_content1 = '<strong><font color="blue">'.__('Backup Job settings and other information about backups are logged in the DB backup Log. The sql dump backup file in the DB Backup zip file/archive also contains information about the Backup Job. You can Export your Backup Jobs by doing a backup of only the xx_bpspro_db_backup DB Table, which you can then Import to another website by using phpMyAdmin. Important Note: Your DB Table Prefix name in your sql dump backup file MUST match the DB Table Prefix name for the site you are importing it too. You can manually edit the sql dump file on your computer to change the DB Table Prefix name before importing it to a new site with phpMyAdmin.', 'bulletproof-security').'</font></strong><br><br><strong>'.__('DB Backup Job Completion Time Estimates: ', 'bulletproof-security').'</strong>'.__('DB Size before zip: 10MB: 3 Seconds - 100MB: 30 Seconds', 'bulletproof-security').'<br><br><strong>'.__('How To Create a Backup Job, Run a Backup Job, Download a Backup File and Delete a Backup File', 'bulletproof-security').'</strong><br><strong>'.__('NOTE: ', 'bulletproof-security').'</strong>'.__('Before creating a Scheduled Backup Job please read the - ', 'bulletproof-security').'<strong>'.__('Scheduled Backup Jobs General Information and Notes', 'bulletproof-security').'</strong>'.__(' help section.', 'bulletproof-security').'<br><br>'.__('1. Click the Create Backup Jobs accordion tab.', 'bulletproof-security').'<br>'.__('2. Enter a Description|Backup Job Name and select the Form option choices that you want.', 'bulletproof-security').'<br>'.__('3. Click the Create Backup Job|Save Settings button to save your Form option choices and create your Backup Job.', 'bulletproof-security').'<br>'.__('4. Click the Backup Jobs - Manual|Scheduled accordion tab, click on the Run checkbox for the Backup Job that you want to run and click the Run Job|Delete Job button.', 'bulletproof-security').'<br>'.__('5. Your Backup files are displayed under the Backup Files - Download|Delete accordion tab.', 'bulletproof-security').'<br>'.__('6. You can Download Backup files to your computer by clicking the Download link for that Backup file.', 'bulletproof-security').'<br>'.__('7. You can delete Backup files by clicking the checkbox for the Backup file that you want to delete and then click the Delete Files button.', 'bulletproof-security').'<br><br><strong>'.__('Backup Jobs - Manual|Scheduled Accordion Tab', 'bulletproof-security').'</strong><br>'.__('- Displays the Description|Job Name, Delete and Run Checkboxes, Job Type, Frequency, Last Backup, Next Backup, Email Backup and Job Created table columns.', 'bulletproof-security').'<br>'.__('- Job Type displays either Manual or Scheduled.', 'bulletproof-security').'<br>'.__('- Frequency displays either Manual, Hourly, Daily, Weekly or Monthly.', 'bulletproof-security').'<br>'.__('- Last Backup displays either Backup Job Created or a timestamp when the last backup job was run.', 'bulletproof-security').'<br>'.__('- Next Backup displays either Manual, Hourly or a combination of user-friendly next job run times: 5PM, Sunday 5PM, 30th 5PM.', 'bulletproof-security').'<br>'.__('- Email Backup displays either Manual, Yes, Yes & Delete, No or Send Email Only.', 'bulletproof-security').'<br>'.__('- Job Created displays the timestamp for when the Backup Job was created.', 'bulletproof-security').'<br><br><strong>'.__('Backup Files - Download|Delete Accordion Tab', 'bulletproof-security').'</strong><br>'.__('- Displays the Backup Filename, Delete Checkbox, Download Links, Backup Folder, Size and Date|Time table columns.', 'bulletproof-security').'<br>'.__('- Backup Filename displays the name of the backup zip file.', 'bulletproof-security').'<br>'.__('- Backup Folder displays the backup folder path.', 'bulletproof-security').'<br>'.__('- Size displays the size of the backup zip file.', 'bulletproof-security').'<br>'.__('- Date|Time displays the date and time that the backup zip file was created.', 'bulletproof-security').'<br><br><strong>'.__('Create Backup Jobs Accordion Tab', 'bulletproof-security').'</strong><br>'.__('- Displays a dynamic DB Table Name checkbox form used to select the database tables that you want to backup.', 'bulletproof-security').'<br>'.__('- Description|Backup Job Name textbox to enter a description for your Backup Job.', 'bulletproof-security').'<br>'.__('- DB Backup Folder Location textbox with a default Obfuscated & Secure BPS Backup Folder location.', 'bulletproof-security').'<br>'.__('- DB Backup File Download Link|URL textbox with a default download URL path.', 'bulletproof-security').'<br>'.__('- Backup Job Type: Manual or Scheduled select dropdown option to choose either a Manual or Scheduled Backup job type.', 'bulletproof-security').'<br>'.__('- Frequency of Scheduled Backup Job (recurring) select dropdown option to choose either N/A, Hourly, Daily, Weekly or Monthly backup job frequency.', 'bulletproof-security').'<br>'.__('- Hour When Scheduled Backup is Run (recurring) select dropdown option to choose a start time for a scheduled backup job: N/A and 12AM through 11PM.', 'bulletproof-security').'<br>'.__('- Day of Week When Scheduled Backup is Run (recurring) select dropdown option to choose a weekday day when a scheduled backup job is run: N/A and Sunday through Monday.', 'bulletproof-security').'<br>'.__('- Day of Month When Scheduled Backup is Run (recurring) select dropdown option to choose a day of the month for a start time when a backup job is run: N/A and 1st through 30th.', 'bulletproof-security').'<br>'.__('- Send Scheduled Backup Zip File Via Email or Just Email Only select dropdown option to choose either to email a zip backup file, do not email backup zip file, email and delete zip backup file or just send an email that backup job has completed/been run. ', 'bulletproof-security').'<strong>'.__('Note: This option is ONLY for Scheduled backup jobs and is NOT for Manual backup jobs.', 'bulletproof-security').'</strong><br>'.__('- Automatically Delete Old Backup Files select dropdown option to choose Never delete old backup files, delete backup files older than 1 day, 5 days, 10 days, 15 days, 30 days, 60 days, 90 days or 180 days. This is an independent option meaning that it can be set/changed/saved independently and is not specific to any created Backup Jobs.', 'bulletproof-security').'<br>'.__('- Turn On|Off All Scheduled Backups (override) select dropdown option to choose either turn on all scheduled backups or turn off all scheduled backups. This an override option that prevent any/all scheduled backup jobs from being run. This is an independent option meaning that it can be set/changed/saved independently and is not specific to any created Backup Jobs.', 'bulletproof-security').'<br><br><strong>'.__('Rename|Create|Reset Tool', 'bulletproof-security').'</strong><br>'.__('If you would like to change/rename the default BPS DB Backup folder name either use the automatically randomly generated new DB Backup folder name or you can edit the new DB Backup folder name in the Rename|Create|Reset DB Backup Folder Name: text box and click the Rename|Create|Reset button. Only use these valid characters: Letters A to Z uppercase or lowercase, Numbers 0-9 and/or a dash "-" or an underscore "_". If you have DB Backup files they will not be affected/changed. The DB Backup File Download Link|URL path will also be changed and have the new DB Backup folder name in the URL path.', 'bulletproof-security').'<br><br>'.__('The Rename|Create|Reset Tool can also be used for troubleshooting problems with the automatic BPS DB Backup folder creation. If the BPS DB Backup folder was not automatically created already then use this tool to try and create a new DB Backup folder. You will see an error message displayed with things to check that could be preventing the DB Backup folder from being successfully created.', 'bulletproof-security').'<br><br><strong>'.__('Scheduled Backup Jobs General Information and Notes', 'bulletproof-security').'</strong><br>'.__('- The Send Scheduled Backup Zip File Via Email or Just Email Only option is ONLY for Scheduled backup jobs and is NOT for Manual backup jobs.', 'bulletproof-security').'<br><br>'.__('- Scheduled Backup Cron Jobs are synchronized to run exactly on the hour: 5:00pm, 6:00pm, 7:00pm. The Backup Cron job actual run times may fluctuate slightly. That is just the normal nature of WordPress Crons. The DB Backup Cron is designed to resynchronize itself to the top of the hour on the hour.', 'bulletproof-security').'<br><br>'.__('- Today is 12AM to 11:59PM. If you want a Daily scheduled backup job to start running for the first time at 12AM tomorrow (which seems like today, but is actually tomorrow) then choose the Day of the Week that is tomorrow. 12AM tomorrow is the start time and the Daily scheduled backup job will continue to be run at 12AM every day after the start time that you choose.', 'bulletproof-security').'<br><br>'.__('- The Create Backup Jobs Form allows for the widest possible combinations of start times for scheduled backup jobs. The start time choices are: Frequency, Hour, Day of Week and Day of Month and have many different possible logical combinations that can be chosen. See this help section before creating any scheduled backup jobs - ', 'bulletproof-security').'<strong>'.__('Best Logical Choices For Start Times When Scheduling Backup Jobs With the Create Backup Jobs Form', 'bulletproof-security').'</strong><br><br>'.__('- You can schedule multiple backup jobs for the same frequency. Example: You can create/schedule a backup job to run Weekly at 8PM on Sunday and can create/schedule a backup job to run Weekly at 10PM on Wednesday. Scheduled backup jobs run based on the time the scheduled backup job is scheduled to run - there are no limitations with scheduling multiple backup jobs.', 'bulletproof-security').'<br><br><strong>'.__('Best Logical Choices For Start Times When Scheduling Backup Jobs With the Create Backup Jobs Form', 'bulletproof-security').'</strong><br>'.__('These are some common logical option choices for Creating/Scheduling Backup Jobs. There are other possible combinations of option settings/start times, but these are intended to be simple examples of common logical option setting choices.', 'bulletproof-security').'<br><br><strong>'.__('Hourly Backup Job', 'bulletproof-security').'</strong><br>'.__('- If you choose Hourly for the Frequency and you do not pick a start Time/Hour when the Backup Job is next run. The next Backup Job will be run at the top of the next hour. Example: If the time now is 4:30PM then the next backup job will be run at 5PM, then 6PM, then 7PM, etc.', 'bulletproof-security').'<br>'.__('- If you choose Hourly for the Frequency and pick a start Time/Hour when the Backup Job is next run. The next Backup Job will be run at the start Time/Hour that you chose. Example: If the time now is 4:30PM and you chose 8PM for the start Time/Hour then the next backup job will be run at 8PM, then 9PM, then 10PM, etc.', 'bulletproof-security').'<br><br><strong>'.__('Daily Backup Job', 'bulletproof-security').'</strong><br>'.__('- If today is Tuesday and you want to schedule a Backup Job to run at 12AM daily/every night. You would choose Daily for the Frequency, start Time/Hour of 12AM (12AM is tomorrow) and Wednesday for the day of the week for the start time when the Backup Job is next run. The next Backup Job will be run at 12AM Wednesday tonight/tomorrow and at 12AM every night/morning.', 'bulletproof-security').'<br><br><strong>'.__('Weekly Backup Job', 'bulletproof-security').'</strong><br>'.__('- If you want to schedule a Backup Job to run Weekly at 12AM every Sunday. You would choose Weekly for the Frequency, start Time/Hour of 12AM and Sunday for the day of the week for the start time when the Backup Job is next run. The next Backup Job will be run at 12AM next Sunday and every Sunday at 12AM.', 'bulletproof-security').'<br><br><strong>'.__('Monthly Backup Job', 'bulletproof-security').'</strong><br>'.__('- If you want to schedule a Backup Job to run Monthly on the 30th of each month at 11PM. You would choose Monthly for the Frequency, start Time/Hour of 11PM and 30th for the day of the month for the start time when the Backup Job is next run. The next Backup Job will be run on the 30th of this month at 11PM and each month on the 30th at 11PM.', 'bulletproof-security').'<br><br><strong>'.__('404 errors when trying to download zip files or if you have changed the DB Backup Folder Location', 'bulletproof-security').'</strong><br>'.__('On some web hosts (Go Daddy) if you have a WordPress subfolder website installation: Example: Main domain is example.com and Subfolder WordPress site is example.com/wordpress-subfolder-website/ then the download link will not work correctly and you will see 404 errors when trying to download zip backup files. Your options are to not change the default backup folder path for your subfolder site and download zip backup files via FTP or you can use/add the backup folder path for your main site instead of the default backup folder path for your subfolder site. You would also change the DB Backup File Download Link|URL to your main site\'s backup folder Link/URL path. What this means is that DB Backups for both your main site and your subfolder site will be saved/stored under your main site\'s backup folder.', 'bulletproof-security').'<br><br>'.__('If you are seeing 404 errors after changing the DB Backup File Download Link|URL and/or the DB Backup Folder Location then make sure that you have entered the correct folder path and also the correct link/URL paths for where your DB backup files are being saved/stored. The DB Backup File Download Link|URL path MUST end with/have a trailing slash. Example: http://www.example.com/wp-content/bps-backup/backups_xxxxxxxxxx/', 'bulletproof-security');
10
 
11
  /** DB Backup Log **/
12
- $bps_modal_content2 = '<strong>'.__('DB Backup Log General Information', 'bulletproof-security').'</strong><br>'.__('Your DB Backup Log file is a plain text static file and not a dynamic file or dynamic display to keep your website resource usage at a bare minimum and keep your website performance at a maximum. Log entries are logged in descending order by Date and Time. You can copy, edit and delete this plain text file.', 'bulletproof-security').'<br><br><strong>'.__('Note: ', 'bulletproof-security').'</strong>'.__('DB Backup Log Email Alert and Log file option settings are on the Email|Log Settings page.', 'bulletproof-security').'<strong><br><br>'.__('What is Logged in The DB Backup Log?', 'bulletproof-security').'</strong><br>'.__('Depending on your DB Backup settings, log entries will be logged anytime you run a Manual Backup Job or whenever a Scheduled Cron Backup Job is run. Logs Backup Job Settings, Completion Time, Memory Usage, Zip Backup File Name, Timestamp and other DB Backup information. If you have chosen the option to automatically delete old zip backup files then the zip backup file name and timestamp will be logged when old zip backup files are automatically deleted. When you create a new Backup Job your Backup Job Settings are logged/saved in the DB Backup Log.', 'bulletproof-security').'<strong><br><br>'.__('DB Backup Log File Size', 'bulletproof-security').'</strong><br>'.__('Displays the size of your DB Backup Log file. 500KB is the optimum recommended log file size setting that you should choose for your log file to be automatically zipped, emailed and replaced with a new blank DB Backup Log file.', 'bulletproof-security').'<br><br><strong>'.__('DB Backup Log Last Modified Time', 'bulletproof-security').'</strong><br>'.__('Displays the last time a DB Backup Log entry was logged.', 'bulletproof-security').'<br><br><strong>'.__('Delete Log Button', 'bulletproof-security').'</strong><br>'.__('Clicking the Delete Log button will delete the entire contents of your DB Backup Log File.', 'bulletproof-security');
13
 
14
  /** DB Table Prefix Changer **/
15
  $bps_modal_content3 = '<strong>'.__('Safety Precautions & Procedures', 'bulletproof-security').'</strong><br>'.__('Changing the DB Table Prefix name is a very simple thing to automate. This tool has been extensively tested and is safe and reliable, but anytime you are modifying your database you should ALWAYS perform a database backup as a safety precaution.', 'bulletproof-security').'<br><br><strong>'.__('Compatibility', 'bulletproof-security').'</strong><br>'.__('Works on all WordPress, BuddyPress and bbPress site types: Single standard WordPress installations and Network/Multisite installations.', 'bulletproof-security').'<br><br><strong><font color="blue">'.__('Note: The DB Table Names & Character Length Table needs to be a clickable Form button and is not displayed permanently open because that would cause the entire DB Backup & Security page (all Tab pages) to perform poorly/sluggishly on large websites.', 'bulletproof-security').'</font></strong><br><br><strong>'.__('Other Prefix Changes Explained', 'bulletproof-security').'</strong><br>'.__('In your WordPress xxxxxx_options DB Table there is one value that will be changed in the option_name Column: xxxxxx_user_roles. Note: Network|Multisite sites will have additional xxxxxx_[Site ID]_user_roles Columns for each subsite options DB Table. In your WordPress xxxxxx_usermeta DB Table there are several values that will be changed in the meta_key Column. These are user/user ID specific values based on individual user\'s Metadata stored in the xxxxxx_usermeta DB Table. Metadata is user specific saved settings, such as individual user\'s capabilities, permissions, saved screen options settings, etc.', 'bulletproof-security').'<br><br><strong>'.__('Correct Usage & Technical Info.', 'bulletproof-security').'</strong><br>'.__('If you want to create your own DB Table Prefix name or add additional characters to the randomly generated DB Table Prefix name then ONLY use lowercase letters, numbers and underscores in your DB Table Prefix name. The standard MySQL DB Table naming convention is xxxxxx_ where the x\'s should be ONLY lowercase letters and/or numbers and the DB Table Prefix name should end with an underscore.', 'bulletproof-security').'<br><br>'.__('The maximum length limitation of a DB Table name, including the table prefix is 64 characters. See the DB Table Names & Character Length Table for character lengths of your database table names.', 'bulletproof-security').'<br><br>'.__('If a plugin or theme is using "wp_" in its DB Table naming conventions, example: wp_wp_some_plugin_table_name, then the DB Table Prefix Changer tool will NOT change anything besides the first wp_ in the DB Table name - The DB Table Prefix Change will ONLY change the actual start/prefix of a DB Table name.', 'bulletproof-security').'<br><br>'.__('To change your DB Table Prefix name back to the WordPress default DB Table Prefix name, enter wp_ for the DB Table Prefix name.', 'bulletproof-security').'<br><br><strong>'.__('Network|Multisite Additional Info.', 'bulletproof-security').'</strong><br>'.__('If you have a Network|Multisite site then you will see an additional button: Update Site User Roles button. Click the Change DB Table Prefix button first before clicking the Update Site User Roles button. You must click both buttons to complete all DB Table Prefix Name changes on a Network|Multisite site type. If you forget to click the Update Site User Roles button then users will see this error message when trying to login: You do not have sufficient permissions to access this page. Click the Update Site User Roles button to fix that problem.', 'bulletproof-security').'<br><br><strong>'.__('Security measure vs Anti-nuisance measure', 'bulletproof-security').'</strong><br>'.__('By changing your Database Table Prefix name you will probably stop a lot of random Bot probes from doing any further reconnaissance against your website and causing unnecessary slowness from those random Bot probes. Changing the DB Table Prefix name is not really a security measure since if a hacker wants to find/get your DB Table Prefix name he/she will be able to find/get that information. The Anti-nuisance benefits alone are worth changing your DB Table Prefix name. BPS has many layers of security protection that protect your Database against SQL Injection attacks.', 'bulletproof-security');
9
  $bps_modal_content1 = '<strong><font color="blue">'.__('Backup Job settings and other information about backups are logged in the DB backup Log. The sql dump backup file in the DB Backup zip file/archive also contains information about the Backup Job. You can Export your Backup Jobs by doing a backup of only the xx_bpspro_db_backup DB Table, which you can then Import to another website by using phpMyAdmin. Important Note: Your DB Table Prefix name in your sql dump backup file MUST match the DB Table Prefix name for the site you are importing it too. You can manually edit the sql dump file on your computer to change the DB Table Prefix name before importing it to a new site with phpMyAdmin.', 'bulletproof-security').'</font></strong><br><br><strong>'.__('DB Backup Job Completion Time Estimates: ', 'bulletproof-security').'</strong>'.__('DB Size before zip: 10MB: 3 Seconds - 100MB: 30 Seconds', 'bulletproof-security').'<br><br><strong>'.__('How To Create a Backup Job, Run a Backup Job, Download a Backup File and Delete a Backup File', 'bulletproof-security').'</strong><br><strong>'.__('NOTE: ', 'bulletproof-security').'</strong>'.__('Before creating a Scheduled Backup Job please read the - ', 'bulletproof-security').'<strong>'.__('Scheduled Backup Jobs General Information and Notes', 'bulletproof-security').'</strong>'.__(' help section.', 'bulletproof-security').'<br><br>'.__('1. Click the Create Backup Jobs accordion tab.', 'bulletproof-security').'<br>'.__('2. Enter a Description|Backup Job Name and select the Form option choices that you want.', 'bulletproof-security').'<br>'.__('3. Click the Create Backup Job|Save Settings button to save your Form option choices and create your Backup Job.', 'bulletproof-security').'<br>'.__('4. Click the Backup Jobs - Manual|Scheduled accordion tab, click on the Run checkbox for the Backup Job that you want to run and click the Run Job|Delete Job button.', 'bulletproof-security').'<br>'.__('5. Your Backup files are displayed under the Backup Files - Download|Delete accordion tab.', 'bulletproof-security').'<br>'.__('6. You can Download Backup files to your computer by clicking the Download link for that Backup file.', 'bulletproof-security').'<br>'.__('7. You can delete Backup files by clicking the checkbox for the Backup file that you want to delete and then click the Delete Files button.', 'bulletproof-security').'<br><br><strong>'.__('Backup Jobs - Manual|Scheduled Accordion Tab', 'bulletproof-security').'</strong><br>'.__('- Displays the Description|Job Name, Delete and Run Checkboxes, Job Type, Frequency, Last Backup, Next Backup, Email Backup and Job Created table columns.', 'bulletproof-security').'<br>'.__('- Job Type displays either Manual or Scheduled.', 'bulletproof-security').'<br>'.__('- Frequency displays either Manual, Hourly, Daily, Weekly or Monthly.', 'bulletproof-security').'<br>'.__('- Last Backup displays either Backup Job Created or a timestamp when the last backup job was run.', 'bulletproof-security').'<br>'.__('- Next Backup displays either Manual, Hourly or a combination of user-friendly next job run times: 5PM, Sunday 5PM, 30th 5PM.', 'bulletproof-security').'<br>'.__('- Email Backup displays either Manual, Yes, Yes & Delete, No or Send Email Only.', 'bulletproof-security').'<br>'.__('- Job Created displays the timestamp for when the Backup Job was created.', 'bulletproof-security').'<br><br><strong>'.__('Backup Files - Download|Delete Accordion Tab', 'bulletproof-security').'</strong><br>'.__('- Displays the Backup Filename, Delete Checkbox, Download Links, Backup Folder, Size and Date|Time table columns.', 'bulletproof-security').'<br>'.__('- Backup Filename displays the name of the backup zip file.', 'bulletproof-security').'<br>'.__('- Backup Folder displays the backup folder path.', 'bulletproof-security').'<br>'.__('- Size displays the size of the backup zip file.', 'bulletproof-security').'<br>'.__('- Date|Time displays the date and time that the backup zip file was created.', 'bulletproof-security').'<br><br><strong>'.__('Create Backup Jobs Accordion Tab', 'bulletproof-security').'</strong><br>'.__('- Displays a dynamic DB Table Name checkbox form used to select the database tables that you want to backup.', 'bulletproof-security').'<br>'.__('- Description|Backup Job Name textbox to enter a description for your Backup Job.', 'bulletproof-security').'<br>'.__('- DB Backup Folder Location textbox with a default Obfuscated & Secure BPS Backup Folder location.', 'bulletproof-security').'<br>'.__('- DB Backup File Download Link|URL textbox with a default download URL path.', 'bulletproof-security').'<br>'.__('- Backup Job Type: Manual or Scheduled select dropdown option to choose either a Manual or Scheduled Backup job type.', 'bulletproof-security').'<br>'.__('- Frequency of Scheduled Backup Job (recurring) select dropdown option to choose either N/A, Hourly, Daily, Weekly or Monthly backup job frequency.', 'bulletproof-security').'<br>'.__('- Hour When Scheduled Backup is Run (recurring) select dropdown option to choose a start time for a scheduled backup job: N/A and 12AM through 11PM.', 'bulletproof-security').'<br>'.__('- Day of Week When Scheduled Backup is Run (recurring) select dropdown option to choose a weekday day when a scheduled backup job is run: N/A and Sunday through Monday.', 'bulletproof-security').'<br>'.__('- Day of Month When Scheduled Backup is Run (recurring) select dropdown option to choose a day of the month for a start time when a backup job is run: N/A and 1st through 30th.', 'bulletproof-security').'<br>'.__('- Send Scheduled Backup Zip File Via Email or Just Email Only select dropdown option to choose either to email a zip backup file, do not email backup zip file, email and delete zip backup file or just send an email that backup job has completed/been run. ', 'bulletproof-security').'<strong>'.__('Note: This option is ONLY for Scheduled backup jobs and is NOT for Manual backup jobs.', 'bulletproof-security').'</strong><br>'.__('- Automatically Delete Old Backup Files select dropdown option to choose Never delete old backup files, delete backup files older than 1 day, 5 days, 10 days, 15 days, 30 days, 60 days, 90 days or 180 days. This is an independent option meaning that it can be set/changed/saved independently and is not specific to any created Backup Jobs.', 'bulletproof-security').'<br>'.__('- Turn On|Off All Scheduled Backups (override) select dropdown option to choose either turn on all scheduled backups or turn off all scheduled backups. This an override option that prevent any/all scheduled backup jobs from being run. This is an independent option meaning that it can be set/changed/saved independently and is not specific to any created Backup Jobs.', 'bulletproof-security').'<br><br><strong>'.__('Rename|Create|Reset Tool', 'bulletproof-security').'</strong><br>'.__('If you would like to change/rename the default BPS DB Backup folder name either use the automatically randomly generated new DB Backup folder name or you can edit the new DB Backup folder name in the Rename|Create|Reset DB Backup Folder Name: text box and click the Rename|Create|Reset button. Only use these valid characters: Letters A to Z uppercase or lowercase, Numbers 0-9 and/or a dash "-" or an underscore "_". If you have DB Backup files they will not be affected/changed. The DB Backup File Download Link|URL path will also be changed and have the new DB Backup folder name in the URL path.', 'bulletproof-security').'<br><br>'.__('The Rename|Create|Reset Tool can also be used for troubleshooting problems with the automatic BPS DB Backup folder creation. If the BPS DB Backup folder was not automatically created already then use this tool to try and create a new DB Backup folder. You will see an error message displayed with things to check that could be preventing the DB Backup folder from being successfully created.', 'bulletproof-security').'<br><br><strong>'.__('Scheduled Backup Jobs General Information and Notes', 'bulletproof-security').'</strong><br>'.__('- The Send Scheduled Backup Zip File Via Email or Just Email Only option is ONLY for Scheduled backup jobs and is NOT for Manual backup jobs.', 'bulletproof-security').'<br><br>'.__('- Scheduled Backup Cron Jobs are synchronized to run exactly on the hour: 5:00pm, 6:00pm, 7:00pm. The Backup Cron job actual run times may fluctuate slightly. That is just the normal nature of WordPress Crons. The DB Backup Cron is designed to resynchronize itself to the top of the hour on the hour.', 'bulletproof-security').'<br><br>'.__('- Today is 12AM to 11:59PM. If you want a Daily scheduled backup job to start running for the first time at 12AM tomorrow (which seems like today, but is actually tomorrow) then choose the Day of the Week that is tomorrow. 12AM tomorrow is the start time and the Daily scheduled backup job will continue to be run at 12AM every day after the start time that you choose.', 'bulletproof-security').'<br><br>'.__('- The Create Backup Jobs Form allows for the widest possible combinations of start times for scheduled backup jobs. The start time choices are: Frequency, Hour, Day of Week and Day of Month and have many different possible logical combinations that can be chosen. See this help section before creating any scheduled backup jobs - ', 'bulletproof-security').'<strong>'.__('Best Logical Choices For Start Times When Scheduling Backup Jobs With the Create Backup Jobs Form', 'bulletproof-security').'</strong><br><br>'.__('- You can schedule multiple backup jobs for the same frequency. Example: You can create/schedule a backup job to run Weekly at 8PM on Sunday and can create/schedule a backup job to run Weekly at 10PM on Wednesday. Scheduled backup jobs run based on the time the scheduled backup job is scheduled to run - there are no limitations with scheduling multiple backup jobs.', 'bulletproof-security').'<br><br><strong>'.__('Best Logical Choices For Start Times When Scheduling Backup Jobs With the Create Backup Jobs Form', 'bulletproof-security').'</strong><br>'.__('These are some common logical option choices for Creating/Scheduling Backup Jobs. There are other possible combinations of option settings/start times, but these are intended to be simple examples of common logical option setting choices.', 'bulletproof-security').'<br><br><strong>'.__('Hourly Backup Job', 'bulletproof-security').'</strong><br>'.__('- If you choose Hourly for the Frequency and you do not pick a start Time/Hour when the Backup Job is next run. The next Backup Job will be run at the top of the next hour. Example: If the time now is 4:30PM then the next backup job will be run at 5PM, then 6PM, then 7PM, etc.', 'bulletproof-security').'<br>'.__('- If you choose Hourly for the Frequency and pick a start Time/Hour when the Backup Job is next run. The next Backup Job will be run at the start Time/Hour that you chose. Example: If the time now is 4:30PM and you chose 8PM for the start Time/Hour then the next backup job will be run at 8PM, then 9PM, then 10PM, etc.', 'bulletproof-security').'<br><br><strong>'.__('Daily Backup Job', 'bulletproof-security').'</strong><br>'.__('- If today is Tuesday and you want to schedule a Backup Job to run at 12AM daily/every night. You would choose Daily for the Frequency, start Time/Hour of 12AM (12AM is tomorrow) and Wednesday for the day of the week for the start time when the Backup Job is next run. The next Backup Job will be run at 12AM Wednesday tonight/tomorrow and at 12AM every night/morning.', 'bulletproof-security').'<br><br><strong>'.__('Weekly Backup Job', 'bulletproof-security').'</strong><br>'.__('- If you want to schedule a Backup Job to run Weekly at 12AM every Sunday. You would choose Weekly for the Frequency, start Time/Hour of 12AM and Sunday for the day of the week for the start time when the Backup Job is next run. The next Backup Job will be run at 12AM next Sunday and every Sunday at 12AM.', 'bulletproof-security').'<br><br><strong>'.__('Monthly Backup Job', 'bulletproof-security').'</strong><br>'.__('- If you want to schedule a Backup Job to run Monthly on the 30th of each month at 11PM. You would choose Monthly for the Frequency, start Time/Hour of 11PM and 30th for the day of the month for the start time when the Backup Job is next run. The next Backup Job will be run on the 30th of this month at 11PM and each month on the 30th at 11PM.', 'bulletproof-security').'<br><br><strong>'.__('404 errors when trying to download zip files or if you have changed the DB Backup Folder Location', 'bulletproof-security').'</strong><br>'.__('On some web hosts (Go Daddy) if you have a WordPress subfolder website installation: Example: Main domain is example.com and Subfolder WordPress site is example.com/wordpress-subfolder-website/ then the download link will not work correctly and you will see 404 errors when trying to download zip backup files. Your options are to not change the default backup folder path for your subfolder site and download zip backup files via FTP or you can use/add the backup folder path for your main site instead of the default backup folder path for your subfolder site. You would also change the DB Backup File Download Link|URL to your main site\'s backup folder Link/URL path. What this means is that DB Backups for both your main site and your subfolder site will be saved/stored under your main site\'s backup folder.', 'bulletproof-security').'<br><br>'.__('If you are seeing 404 errors after changing the DB Backup File Download Link|URL and/or the DB Backup Folder Location then make sure that you have entered the correct folder path and also the correct link/URL paths for where your DB backup files are being saved/stored. The DB Backup File Download Link|URL path MUST end with/have a trailing slash. Example: http://www.example.com/wp-content/bps-backup/backups_xxxxxxxxxx/', 'bulletproof-security');
10
 
11
  /** DB Backup Log **/
12
+ $bps_modal_content2 = '<strong>'.__('DB Backup Log General Information', 'bulletproof-security').'</strong><br>'.__('Your DB Backup Log file is a plain text static file and not a dynamic file or dynamic display to keep your website resource usage at a bare minimum and keep your website performance at a maximum. Log entries are logged in descending order by Date and Time. You can copy, edit and delete this plain text file.', 'bulletproof-security').'<br><br><strong>'.__('Note: ', 'bulletproof-security').'</strong>'.__('DB Backup Log Email Alert and Log file option settings are on the Alerts|Logs|Email Options page.', 'bulletproof-security').'<strong><br><br>'.__('What is Logged in The DB Backup Log?', 'bulletproof-security').'</strong><br>'.__('Depending on your DB Backup settings, log entries will be logged anytime you run a Manual Backup Job or whenever a Scheduled Cron Backup Job is run. Logs Backup Job Settings, Completion Time, Memory Usage, Zip Backup File Name, Timestamp and other DB Backup information. If you have chosen the option to automatically delete old zip backup files then the zip backup file name and timestamp will be logged when old zip backup files are automatically deleted. When you create a new Backup Job your Backup Job Settings are logged/saved in the DB Backup Log.', 'bulletproof-security').'<strong><br><br>'.__('DB Backup Log File Size', 'bulletproof-security').'</strong><br>'.__('Displays the size of your DB Backup Log file. 500KB is the optimum recommended log file size setting that you should choose for your log file to be automatically zipped, emailed and replaced with a new blank DB Backup Log file.', 'bulletproof-security').'<br><br><strong>'.__('DB Backup Log Last Modified Time', 'bulletproof-security').'</strong><br>'.__('Displays the last time a DB Backup Log entry was logged.', 'bulletproof-security').'<br><br><strong>'.__('Delete Log Button', 'bulletproof-security').'</strong><br>'.__('Clicking the Delete Log button will delete the entire contents of your DB Backup Log File.', 'bulletproof-security');
13
 
14
  /** DB Table Prefix Changer **/
15
  $bps_modal_content3 = '<strong>'.__('Safety Precautions & Procedures', 'bulletproof-security').'</strong><br>'.__('Changing the DB Table Prefix name is a very simple thing to automate. This tool has been extensively tested and is safe and reliable, but anytime you are modifying your database you should ALWAYS perform a database backup as a safety precaution.', 'bulletproof-security').'<br><br><strong>'.__('Compatibility', 'bulletproof-security').'</strong><br>'.__('Works on all WordPress, BuddyPress and bbPress site types: Single standard WordPress installations and Network/Multisite installations.', 'bulletproof-security').'<br><br><strong><font color="blue">'.__('Note: The DB Table Names & Character Length Table needs to be a clickable Form button and is not displayed permanently open because that would cause the entire DB Backup & Security page (all Tab pages) to perform poorly/sluggishly on large websites.', 'bulletproof-security').'</font></strong><br><br><strong>'.__('Other Prefix Changes Explained', 'bulletproof-security').'</strong><br>'.__('In your WordPress xxxxxx_options DB Table there is one value that will be changed in the option_name Column: xxxxxx_user_roles. Note: Network|Multisite sites will have additional xxxxxx_[Site ID]_user_roles Columns for each subsite options DB Table. In your WordPress xxxxxx_usermeta DB Table there are several values that will be changed in the meta_key Column. These are user/user ID specific values based on individual user\'s Metadata stored in the xxxxxx_usermeta DB Table. Metadata is user specific saved settings, such as individual user\'s capabilities, permissions, saved screen options settings, etc.', 'bulletproof-security').'<br><br><strong>'.__('Correct Usage & Technical Info.', 'bulletproof-security').'</strong><br>'.__('If you want to create your own DB Table Prefix name or add additional characters to the randomly generated DB Table Prefix name then ONLY use lowercase letters, numbers and underscores in your DB Table Prefix name. The standard MySQL DB Table naming convention is xxxxxx_ where the x\'s should be ONLY lowercase letters and/or numbers and the DB Table Prefix name should end with an underscore.', 'bulletproof-security').'<br><br>'.__('The maximum length limitation of a DB Table name, including the table prefix is 64 characters. See the DB Table Names & Character Length Table for character lengths of your database table names.', 'bulletproof-security').'<br><br>'.__('If a plugin or theme is using "wp_" in its DB Table naming conventions, example: wp_wp_some_plugin_table_name, then the DB Table Prefix Changer tool will NOT change anything besides the first wp_ in the DB Table name - The DB Table Prefix Change will ONLY change the actual start/prefix of a DB Table name.', 'bulletproof-security').'<br><br>'.__('To change your DB Table Prefix name back to the WordPress default DB Table Prefix name, enter wp_ for the DB Table Prefix name.', 'bulletproof-security').'<br><br><strong>'.__('Network|Multisite Additional Info.', 'bulletproof-security').'</strong><br>'.__('If you have a Network|Multisite site then you will see an additional button: Update Site User Roles button. Click the Change DB Table Prefix button first before clicking the Update Site User Roles button. You must click both buttons to complete all DB Table Prefix Name changes on a Network|Multisite site type. If you forget to click the Update Site User Roles button then users will see this error message when trying to login: You do not have sufficient permissions to access this page. Click the Update Site User Roles button to fix that problem.', 'bulletproof-security').'<br><br><strong>'.__('Security measure vs Anti-nuisance measure', 'bulletproof-security').'</strong><br>'.__('By changing your Database Table Prefix name you will probably stop a lot of random Bot probes from doing any further reconnaissance against your website and causing unnecessary slowness from those random Bot probes. Changing the DB Table Prefix name is not really a security measure since if a hacker wants to find/get your DB Table Prefix name he/she will be able to find/get that information. The Anti-nuisance benefits alone are worth changing your DB Table Prefix name. BPS has many layers of security protection that protect your Database against SQL Injection attacks.', 'bulletproof-security');
admin/db-backup-security/db-backup-security.php CHANGED
@@ -1035,8 +1035,7 @@ if ( isset( $_POST['Submit-DBB-Reset'] ) && current_user_can('manage_options') )
1035
  echo '<input type="text" name="DBBFolder" class="dbb-text-500" value="'; echo esc_html(trim(stripslashes($DBBFolder))); echo '" /><br>';
1036
 
1037
  echo '<label for="bps-dbb">'.__('DB Backup File Download Link|URL:', 'bulletproof-security').'</label><br>';
1038
- echo '<label for="bps-dbb"><font color="#2271b1"><strong>'.__('Note: If you see 404 errors when trying to download zip files or if you have', 'bulletproof-security').'</strong></font></label><br>';
1039
- echo '<label for="bps-dbb"><font color="#2271b1"><strong>'.__('changed the DB Backup Folder Location above, click the Question Mark help button.', 'bulletproof-security').'</strong></font></label><br>';
1040
  echo '<input type="text" name="DBBDownloadLink" class="dbb-text-500" value="'; echo esc_url(trim($DBBDownloadLink)); echo '" /><br>';
1041
 
1042
  echo '<label for="bps-dbb">'.__('Backup Job Type: Manual or Scheduled', 'bulletproof-security').'</label><br>';
1035
  echo '<input type="text" name="DBBFolder" class="dbb-text-500" value="'; echo esc_html(trim(stripslashes($DBBFolder))); echo '" /><br>';
1036
 
1037
  echo '<label for="bps-dbb">'.__('DB Backup File Download Link|URL:', 'bulletproof-security').'</label><br>';
1038
+ echo '<label for="bps-dbb"><font color="#2271b1"><strong>'.__('Note: If you see 404 errors when trying to download zip files or if you have changed the DB Backup Folder Location above, click the Question Mark help button.', 'bulletproof-security').'</strong></font></label><br>';
 
1039
  echo '<input type="text" name="DBBDownloadLink" class="dbb-text-500" value="'; echo esc_url(trim($DBBDownloadLink)); echo '" /><br>';
1040
 
1041
  echo '<label for="bps-dbb">'.__('Backup Job Type: Manual or Scheduled', 'bulletproof-security').'</label><br>';
admin/htaccess/secure.htaccess CHANGED
@@ -1,4 +1,4 @@
1
- # BULLETPROOF 5.5 SECURE .HTACCESS
2
 
3
  # PHP/PHP.INI HANDLER/CACHE CODE
4
  # Use BPS Custom Code to add php/php.ini Handler and Cache htaccess code and to save it permanently.
1
+ # BULLETPROOF 5.6 SECURE .HTACCESS
2
 
3
  # PHP/PHP.INI HANDLER/CACHE CODE
4
  # Use BPS Custom Code to add php/php.ini Handler and Cache htaccess code and to save it permanently.
admin/htaccess/wpadmin-secure.htaccess CHANGED
@@ -1,4 +1,4 @@
1
- # BULLETPROOF 5.5 WP-ADMIN SECURE .HTACCESS
2
 
3
  # DO NOT ADD URL REWRITING IN THIS FILE OR WORDPRESS WILL BREAK
4
  # RewriteRule ^(.*)$ - [F] works in /wp-admin without breaking WordPress
1
+ # BULLETPROOF 5.6 WP-ADMIN SECURE .HTACCESS
2
 
3
  # DO NOT ADD URL REWRITING IN THIS FILE OR WORDPRESS WILL BREAK
4
  # RewriteRule ^(.*)$ - [F] works in /wp-admin without breaking WordPress
admin/includes/admin.php CHANGED
@@ -405,13 +405,13 @@ global $blog_id;
405
  // Do not display the Maintenance Mode menu for GDMW hosted sites
406
  $BPS_wpadmin_Options = get_option('bulletproof_security_options_htaccess_res');
407
  $GDMW_options = get_option('bulletproof_security_options_GDMW');
408
- if ( $BPS_wpadmin_Options['bps_wpadmin_restriction'] != 'disabled' || $GDMW_options['bps_gdmw_hosting'] != 'yes' ) {
409
  add_submenu_page('bulletproof-security/admin/login/login.php', __('Maintenance Mode', 'bulletproof-security'), __('Maintenance Mode', 'bulletproof-security'), 'manage_options', 'bulletproof-security/admin/maintenance/maintenance.php' );
410
  }
411
 
412
  // 3.2: Setup Wizard Option: Multisite Hide|Display System Info Page for Subsites
413
  $Mu_Sysinfo_page_options = get_option('bulletproof_security_options_mu_sysinfo');
414
- if ( $Mu_Sysinfo_page_options['bps_sysinfo_hide_display'] != 'hide' ) {
415
  add_submenu_page('bulletproof-security/admin/login/login.php', __('System Info', 'bulletproof-security'), __('System Info', 'bulletproof-security'), 'manage_options', 'bulletproof-security/admin/system-info/system-info.php' );
416
  }
417
 
405
  // Do not display the Maintenance Mode menu for GDMW hosted sites
406
  $BPS_wpadmin_Options = get_option('bulletproof_security_options_htaccess_res');
407
  $GDMW_options = get_option('bulletproof_security_options_GDMW');
408
+ if ( isset($BPS_wpadmin_Options['bps_wpadmin_restriction']) && $BPS_wpadmin_Options['bps_wpadmin_restriction'] != 'disabled' || isset($GDMW_options['bps_gdmw_hosting']) && $GDMW_options['bps_gdmw_hosting'] != 'yes' ) {
409
  add_submenu_page('bulletproof-security/admin/login/login.php', __('Maintenance Mode', 'bulletproof-security'), __('Maintenance Mode', 'bulletproof-security'), 'manage_options', 'bulletproof-security/admin/maintenance/maintenance.php' );
410
  }
411
 
412
  // 3.2: Setup Wizard Option: Multisite Hide|Display System Info Page for Subsites
413
  $Mu_Sysinfo_page_options = get_option('bulletproof_security_options_mu_sysinfo');
414
+ if ( isset($Mu_Sysinfo_page_options['bps_sysinfo_hide_display']) && $Mu_Sysinfo_page_options['bps_sysinfo_hide_display'] != 'hide' ) {
415
  add_submenu_page('bulletproof-security/admin/login/login.php', __('System Info', 'bulletproof-security'), __('System Info', 'bulletproof-security'), 'manage_options', 'bulletproof-security/admin/system-info/system-info.php' );
416
  }
417
 
admin/login/lsm-help-text.php CHANGED
@@ -7,7 +7,7 @@ if ( ! current_user_can('manage_options') ) {
7
  }
8
 
9
  /** Login Security & Monitoring **/
10
- $bps_modal_content1 = '<strong>'.__('Click both Save Options buttons to save the best pre-selected Login Security settings or choose your own Login Security option settings.', 'bulletproof-security').'</strong><br><br><strong>'.__('What to do if your User Account is locked and you are unable to login to your website', 'bulletproof-security').'</strong><br>'.__('Use FTP or your web host control panel file manager and rename the /bulletproof-security plugin folder name to /_bulletproof-security. Log into your website. Rename the /_bulletproof-security plugin folder name back to /bulletproof-security. Go to the BPS Login Security page and unlock your User Account.', 'bulletproof-security').'<br><br><strong>'.__('Note: ', 'bulletproof-security').'</strong>'.__('Login Security Email Alert and Log file option settings are on the Email|Log Settings page.', 'bulletproof-security').'<br><br><strong>'.__('Max Login Attempts: ', 'bulletproof-security').'</strong><br>'.__('Type in the maximum number of failed login attempts allowed before a User Account is automatically Locked out. After making any setting changes click the Save Options button to save your new option settings.', 'bulletproof-security').'<br><br><strong>'.__('NOTE: ', 'bulletproof-security').'</strong>'.__('The Max Login Attempts setting range is from 1 - 10. Minimum is 1 failed login attempt - Maximum is 10 failed login attempts. Setting this to 1 failed login attempt is NOT recommended. The default is 3 failed login attempts before locking the User Account.', 'bulletproof-security').'<br><br><strong>'.__('Automatic Lockout Time: ', 'bulletproof-security').'</strong><br>'.__('Type in the number of minutes that you would like the User Account to be locked out for when the maximum number of failed login attempts have been made. After making any setting changes click the Save Options button to save your new option settings.', 'bulletproof-security').'<br><br><strong>'.__('Manual Lockout Time: ', 'bulletproof-security').'</strong><br>'.__('Type in the number of minutes that you would like the User Account to be locked out for when you manually lock a User Account using Lock checkbox options in the Dynamic Login Security form. After making any setting changes click the Save Options button to save your new option settings.', 'bulletproof-security').'<br><br><strong>'.__('Max DB Rows To Show: ', 'bulletproof-security').'</strong><br>'.__('Type in the maximum number of database rows that you would like to display in the Dynamic Login Security form. Leaving this text box blank means display all database rows. After making any setting changes click the Save Options button to save your new option settings.', 'bulletproof-security').'<br><br><strong>'.__('Enable Login Security for WooCommerce (BPS Pro Only):', 'bulletproof-security').'</strong><br>'.__('Check this checkbox if you have the WooCommerce plugin installed if you would like to use BPS Login Security on the WooCommerce custom login page. BPS Login Security will still continue to work normally on the standard WordPress Login page when you check this checkbox. This checkbox option setting is not for turning Login Security On or Off if you are using WooCommerce. Use the Login Security Turn On|Turn Off option to turn Login Security On or Off.', 'bulletproof-security').'<br><br><strong>'.__('Turn On|Turn Off: ', 'bulletproof-security').'</strong><br>'.__('Turn On Login Security or Turn Off Login Security or Turn Off Login Security and Use the Password Reset Option ONLY. The Turn Off Login Security|Use Password Reset Option ONLY setting means that all Login Security features are turned Off except for the Password Reset Option, which can be used independently by itself. After making any setting changes click the Save Options button to save your new option settings.', 'bulletproof-security').'<br><br><strong>'.__('Logging Options: ', 'bulletproof-security').'</strong><br>'.__('You can choose to Log All User Account Logins or Log Only User Account Lockouts. After making any setting changes click the Save Options button to save your new option settings. ', 'bulletproof-security').'<strong>'.__('Important Note: ', 'bulletproof-security').'</strong>'.__('If you switch the Logging Options: Log All Account Logins to Log Only Account Lockouts then be sure to delete any locked user accounts that you want to allow to be able to login or those Users will not be able to login until you delete those locked User Accounts.', 'bulletproof-security').'<br><br><strong>'.__('Error Messages: ', 'bulletproof-security').'</strong><br><br><strong>'.__('Standard WP Login Errors: ', 'bulletproof-security').'</strong>'.__('will display the normal WP login errors. Example1: ERROR: The password you entered for the username X is incorrect. BPS Example2: ERROR: This user account has been locked until May 14, 2013 9:31 am due to too many failed login attempts. You can login again after the Lockout Time above has expired.', 'bulletproof-security').'<br><br><strong>'.__('User|Pass Invalid Entry Error: ', 'bulletproof-security').'</strong>'.__('will display a generic Invalid Entry error message instead of displaying normal WP login errors for incorrect username or incorrect password, but if a user account is locked out then the BPS timestamp and Lockout Time error message will be displayed. Example: ERROR: Invalid Entry for either incorrect username or incorrect password. BPS Example2: ERROR: This user account has been locked until May 14, 2013 9:31 am due to too many failed login attempts. You can login again after the Lockout Time above has expired.', 'bulletproof-security').'<br><br><strong>'.__('User|Pass|Lock Invalid Entry Error: ', 'bulletproof-security').'</strong>'.__('will display a generic Invalid Entry error message instead of displaying normal WP login errors for incorrect username, incorrect password and when the user account is locked out - the BPS Lockout Time error message will NOT be displayed. ', 'bulletproof-security').'<br><strong>'.__('CAUTION: ', 'bulletproof-security').'</strong>'.__('If the user account is locked out then no indication will be given that the user account is locked out and only a generic ERROR: Invalid Entry message will be displayed.', 'bulletproof-security').'<br><br><strong>'.__('Attempts Remaining: ', 'bulletproof-security').'</strong><br>'.__('You can choose to display a "Login Attempts Remaining X" message when an incorrect password is entered. X is the number of login attempts left/remaining before the User Account is locked. After making any setting changes click the Save Options button to save your new option settings.', 'bulletproof-security').'<br><br><strong>'.__('Password Reset: ', 'bulletproof-security').'</strong><br>'.__('The Enable Password Reset option will allow the normal WP Lost Password link to be displayed and allow locked out users to reset their passwords. The Disable Password Reset Frontend Only option disables the WP Login reset password feature and displays this error message - Password reset is not allowed for this user. This error message is displayed for valid or invalid user accounts or email addresses. In other words, there is no indication of whether or not a valid username or email address is being entered. This of course disables a lot of cool WordPress login features, but if you want complete Login Stealth Mode then this is the option for you. Disable Password Reset Frontend & Backend disables password reset on the frontend and backend (WP Dashboard) of your website.', 'bulletproof-security').'<br><br><strong>'.__('Sort DB Rows: ', 'bulletproof-security').'</strong><br>'.__('The Ascending Show Oldest Login First option displays logins from the oldest logins to your site to the newest logins to your site. The Descending Show Newest Login First option displays logins from the newest logins to your site to the oldest logins to your site. Example usage: Enter 50 for the Max DB Rows To Show option, which will show a maximum of 50 database rows/logins to your site and set Sort DB Rows option to Descending Show Newest Login First. You will see the last 50 most current/newest logins to your site in descending order.', 'bulletproof-security').'<br><br><strong>'.__('Search feature: ', 'bulletproof-security').'</strong><br>'.__('The search feature allows you to search all of the Login Security database rows. To search for all Locked User accounts enter Locked, to search for a username enter that username, to search for an IP address enter that IP address, etc.', 'bulletproof-security').'<br><br><strong>'.__('Export|Download Login Security Table Tool:', 'bulletproof-security').'</strong><br>'.__('The Export|Download Login Security Table tool exports (copies) the Login Security Table into the lsm-master.zip file, which you can then download to your computer by clicking the Download Zip Export button displayed in the Login Security Table Export success message. The lsm-master.zip file contains the lsm-master.csv file. The CSV (Comma Separated Values) file format can be opened with Microsoft Excel or other applications that can open/use CSV files. If you want to dump/export the Login Security Table in SQL format then use BPS DB Backup and dump/export the BPS Login Security Database Table: xx_bpspro_login_security', 'bulletproof-security').'<br><br><strong>'.__('The Dynamic Login Security Form: ', 'bulletproof-security').'</strong><br>'.__('You have 3 options: Lock, Unlock or Delete database rows. The Login Security database table is hooked into the WordPress Users database table, but they are 2 completely separate database tables. If you lock a User Account then BPS Pro will enforce that lock on that User Account and the User will not be able to log in. If you unlock a User Account then the User will be able to login. Deleting database rows in the Login Security database table does NOT delete the User Account from the WordPress Users database table. When you delete a User Account it is pretty much the same thing as unlocking a User Account. To delete actual User Accounts you would go to the WordPress Users page and delete that User Account.', 'bulletproof-security').'<br><br><strong>'.__('BPS Video Tutorial links can be found in the Help & FAQ pages.', 'bulletproof-security').'</strong>';
11
 
12
  if ( is_multisite() && $blog_id != 1 ) {
13
  $networkMUJTCText = '';
7
  }
8
 
9
  /** Login Security & Monitoring **/
10
+ $bps_modal_content1 = '<strong>'.__('Click both Save Options buttons to save the best pre-selected Login Security settings or choose your own Login Security option settings.', 'bulletproof-security').'</strong><br><br><strong>'.__('What to do if your User Account is locked and you are unable to login to your website', 'bulletproof-security').'</strong><br>'.__('Use FTP or your web host control panel file manager and rename the /bulletproof-security plugin folder name to /_bulletproof-security. Log into your website. Rename the /_bulletproof-security plugin folder name back to /bulletproof-security. Go to the BPS Login Security page and unlock your User Account.', 'bulletproof-security').'<br><br><strong>'.__('Note: ', 'bulletproof-security').'</strong>'.__('Login Security Email Alert and Log file option settings are on the Alerts|Logs|Email Options page.', 'bulletproof-security').'<br><br><strong>'.__('Max Login Attempts: ', 'bulletproof-security').'</strong><br>'.__('Type in the maximum number of failed login attempts allowed before a User Account is automatically Locked out. After making any setting changes click the Save Options button to save your new option settings.', 'bulletproof-security').'<br><br><strong>'.__('NOTE: ', 'bulletproof-security').'</strong>'.__('The Max Login Attempts setting range is from 1 - 10. Minimum is 1 failed login attempt - Maximum is 10 failed login attempts. Setting this to 1 failed login attempt is NOT recommended. The default is 3 failed login attempts before locking the User Account.', 'bulletproof-security').'<br><br><strong>'.__('Automatic Lockout Time: ', 'bulletproof-security').'</strong><br>'.__('Type in the number of minutes that you would like the User Account to be locked out for when the maximum number of failed login attempts have been made. After making any setting changes click the Save Options button to save your new option settings.', 'bulletproof-security').'<br><br><strong>'.__('Manual Lockout Time: ', 'bulletproof-security').'</strong><br>'.__('Type in the number of minutes that you would like the User Account to be locked out for when you manually lock a User Account using Lock checkbox options in the Dynamic Login Security form. After making any setting changes click the Save Options button to save your new option settings.', 'bulletproof-security').'<br><br><strong>'.__('Max DB Rows To Show: ', 'bulletproof-security').'</strong><br>'.__('Type in the maximum number of database rows that you would like to display in the Dynamic Login Security form. Leaving this text box blank means display all database rows. After making any setting changes click the Save Options button to save your new option settings.', 'bulletproof-security').'<br><br><strong>'.__('Enable Login Security for WooCommerce (BPS Pro Only):', 'bulletproof-security').'</strong><br>'.__('Check this checkbox if you have the WooCommerce plugin installed if you would like to use BPS Login Security on the WooCommerce custom login page. BPS Login Security will still continue to work normally on the standard WordPress Login page when you check this checkbox. This checkbox option setting is not for turning Login Security On or Off if you are using WooCommerce. Use the Login Security Turn On|Turn Off option to turn Login Security On or Off.', 'bulletproof-security').'<br><br><strong>'.__('Turn On|Turn Off: ', 'bulletproof-security').'</strong><br>'.__('Turn On Login Security or Turn Off Login Security or Turn Off Login Security and Use the Password Reset Option ONLY. The Turn Off Login Security|Use Password Reset Option ONLY setting means that all Login Security features are turned Off except for the Password Reset Option, which can be used independently by itself. After making any setting changes click the Save Options button to save your new option settings.', 'bulletproof-security').'<br><br><strong>'.__('Logging Options: ', 'bulletproof-security').'</strong><br>'.__('You can choose to Log All User Account Logins or Log Only User Account Lockouts. After making any setting changes click the Save Options button to save your new option settings. ', 'bulletproof-security').'<strong>'.__('Important Note: ', 'bulletproof-security').'</strong>'.__('If you switch the Logging Options: Log All Account Logins to Log Only Account Lockouts then be sure to delete any locked user accounts that you want to allow to be able to login or those Users will not be able to login until you delete those locked User Accounts.', 'bulletproof-security').'<br><br><strong>'.__('Error Messages: ', 'bulletproof-security').'</strong><br><br><strong>'.__('Standard WP Login Errors: ', 'bulletproof-security').'</strong>'.__('will display the normal WP login errors. Example1: ERROR: The password you entered for the username X is incorrect. BPS Example2: ERROR: This user account has been locked until May 14, 2013 9:31 am due to too many failed login attempts. You can login again after the Lockout Time above has expired.', 'bulletproof-security').'<br><br><strong>'.__('User|Pass Invalid Entry Error: ', 'bulletproof-security').'</strong>'.__('will display a generic Invalid Entry error message instead of displaying normal WP login errors for incorrect username or incorrect password, but if a user account is locked out then the BPS timestamp and Lockout Time error message will be displayed. Example: ERROR: Invalid Entry for either incorrect username or incorrect password. BPS Example2: ERROR: This user account has been locked until May 14, 2013 9:31 am due to too many failed login attempts. You can login again after the Lockout Time above has expired.', 'bulletproof-security').'<br><br><strong>'.__('User|Pass|Lock Invalid Entry Error: ', 'bulletproof-security').'</strong>'.__('will display a generic Invalid Entry error message instead of displaying normal WP login errors for incorrect username, incorrect password and when the user account is locked out - the BPS Lockout Time error message will NOT be displayed. ', 'bulletproof-security').'<br><strong>'.__('CAUTION: ', 'bulletproof-security').'</strong>'.__('If the user account is locked out then no indication will be given that the user account is locked out and only a generic ERROR: Invalid Entry message will be displayed.', 'bulletproof-security').'<br><br><strong>'.__('Attempts Remaining: ', 'bulletproof-security').'</strong><br>'.__('You can choose to display a "Login Attempts Remaining X" message when an incorrect password is entered. X is the number of login attempts left/remaining before the User Account is locked. After making any setting changes click the Save Options button to save your new option settings.', 'bulletproof-security').'<br><br><strong>'.__('Password Reset: ', 'bulletproof-security').'</strong><br>'.__('The Enable Password Reset option will allow the normal WP Lost Password link to be displayed and allow locked out users to reset their passwords. The Disable Password Reset Frontend Only option disables the WP Login reset password feature and displays this error message - Password reset is not allowed for this user. This error message is displayed for valid or invalid user accounts or email addresses. In other words, there is no indication of whether or not a valid username or email address is being entered. This of course disables a lot of cool WordPress login features, but if you want complete Login Stealth Mode then this is the option for you. Disable Password Reset Frontend & Backend disables password reset on the frontend and backend (WP Dashboard) of your website.', 'bulletproof-security').'<br><br><strong>'.__('Sort DB Rows: ', 'bulletproof-security').'</strong><br>'.__('The Ascending Show Oldest Login First option displays logins from the oldest logins to your site to the newest logins to your site. The Descending Show Newest Login First option displays logins from the newest logins to your site to the oldest logins to your site. Example usage: Enter 50 for the Max DB Rows To Show option, which will show a maximum of 50 database rows/logins to your site and set Sort DB Rows option to Descending Show Newest Login First. You will see the last 50 most current/newest logins to your site in descending order.', 'bulletproof-security').'<br><br><strong>'.__('Search feature: ', 'bulletproof-security').'</strong><br>'.__('The search feature allows you to search all of the Login Security database rows. To search for all Locked User accounts enter Locked, to search for a username enter that username, to search for an IP address enter that IP address, etc.', 'bulletproof-security').'<br><br><strong>'.__('Export|Download Login Security Table Tool:', 'bulletproof-security').'</strong><br>'.__('The Export|Download Login Security Table tool exports (copies) the Login Security Table into the lsm-master.zip file, which you can then download to your computer by clicking the Download Zip Export button displayed in the Login Security Table Export success message. The lsm-master.zip file contains the lsm-master.csv file. The CSV (Comma Separated Values) file format can be opened with Microsoft Excel or other applications that can open/use CSV files. If you want to dump/export the Login Security Table in SQL format then use BPS DB Backup and dump/export the BPS Login Security Database Table: xx_bpspro_login_security', 'bulletproof-security').'<br><br><strong>'.__('The Dynamic Login Security Form: ', 'bulletproof-security').'</strong><br>'.__('You have 3 options: Lock, Unlock or Delete database rows. The Login Security database table is hooked into the WordPress Users database table, but they are 2 completely separate database tables. If you lock a User Account then BPS Pro will enforce that lock on that User Account and the User will not be able to log in. If you unlock a User Account then the User will be able to login. Deleting database rows in the Login Security database table does NOT delete the User Account from the WordPress Users database table. When you delete a User Account it is pretty much the same thing as unlocking a User Account. To delete actual User Accounts you would go to the WordPress Users page and delete that User Account.', 'bulletproof-security').'<br><br><strong>'.__('BPS Video Tutorial links can be found in the Help & FAQ pages.', 'bulletproof-security').'</strong>';
11
 
12
  if ( is_multisite() && $blog_id != 1 ) {
13
  $networkMUJTCText = '';
admin/maintenance/maintenance.php CHANGED
@@ -181,7 +181,7 @@ $bps_bottomDiv = '</p></div>';
181
  <?php
182
  $BPS_wpadmin_Options = get_option('bulletproof_security_options_htaccess_res');
183
 
184
- if ( $BPS_wpadmin_Options['bps_wpadmin_restriction'] == 'disabled' ) {
185
  $text = '<h3><strong><span style="font-size:1em;"><font color="blue">'.__('Notice: ', 'bulletproof-security').'</font></span><span style="font-size:.75em;">'.__('You have disabled wp-admin BulletProof Mode on the Security Modes page.', 'bulletproof-security').'<br>'.__('If you have Go Daddy "Managed WordPress Hosting" click this link: ', 'bulletproof-security').'<a href="https://forum.ait-pro.com/forums/topic/gdmw/" target="_blank" title="Link opens in a new Browser window">'.__('Go Daddy Managed WordPress Hosting', 'bulletproof-security').'</a>.</span></strong></h3>';
186
  echo $text;
187
  }
@@ -487,32 +487,33 @@ $woodGrain = $background_image_url . 'wood-grain-center.png';
487
  // Get Real IP address & 3 Octets - USE EXTREME CAUTION!!!
488
  // Will display an IPv6 IP address as Current IP Address so not going to do anything additional with that for now
489
  function bps_get_proxy_real_ip_address_maint() {
490
- if ( is_admin() && wp_script_is( 'bps-accordion', $list = 'queue' ) && current_user_can('manage_options') ) {
491
-
492
- $pattern = "/\d{1,3}\.\d{1,3}\.\d{1,3}\./";
493
-
494
- if ( isset( $_SERVER['HTTP_CLIENT_IP'] ) ) {
495
- $ip = esc_html( $_SERVER['HTTP_CLIENT_IP'] );
496
- $octets_ip = preg_match( $pattern, $_SERVER['HTTP_CLIENT_IP'], $matches );
497
- echo '<font color="#2271b1" style="font-size:14px;"><strong>'.__('Your Current IP Address: ', 'bulletproof-security').$ip.'<br>'.__('Recommended IP Address: ', 'bulletproof-security');
498
- print_r($matches[0]);
499
- echo '</strong></font><br>';
500
-
501
- } elseif ( isset( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) {
502
- $ip = esc_html( $_SERVER['HTTP_X_FORWARDED_FOR'] );
503
- $octets_ip = preg_match( $pattern, $_SERVER['HTTP_X_FORWARDED_FOR'], $matches );
504
- echo '<font color="#2271b1" style="font-size:14px;"><strong>'.__('Your Current IP Address: ', 'bulletproof-security').$ip.'<br>'.__('Recommended IP Address: ', 'bulletproof-security');
505
- print_r($matches[0]);
506
- echo '</strong></font><br>';
507
-
508
- } elseif ( isset( $_SERVER['REMOTE_ADDR'] ) ) {
509
- $ip = esc_html( $_SERVER['REMOTE_ADDR'] );
510
- $octets_ip = preg_match( $pattern, $_SERVER['REMOTE_ADDR'], $matches );
511
- echo '<font color="#2271b1" style="font-size:14px;"><strong>'.__('Your Current IP Address: ', 'bulletproof-security').$ip.'<br>'.__('Recommended IP Address: ', 'bulletproof-security');
512
- print_r($matches[0]);
513
- echo '</strong></font><br>';
 
 
514
  }
515
- }
516
  }
517
  ?>
518
 
@@ -747,15 +748,16 @@ if ( isset( $_POST['maintenance-mode-preview-submit'] ) && current_user_can('man
747
  <form name="MaintenanceModePreview" method="post" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/maintenance/maintenance.php' ); ?>" target="" onSubmit="window.open('<?php echo plugins_url('/bulletproof-security/admin/htaccess/bps-maintenance-'.$subsite_remove_slashes.'.php'); ?>','popup','width=+window.innerWidth,height=+ window.innerHeight,scrollbars=yes,menubar=yes,resizable=yes,status=yes,toolbar=yes')">
748
  <?php wp_nonce_field('bulletproof_security_maintenance_preview'); ?>
749
 
750
- <div style="float:left;margin:5px 10px 0px -16px;">
751
  <input type="submit" name="maintenance-mode-preview-submit" class="button bps-button" style="width:72px;height:auto;white-space:normal" value="<?php esc_attr_e('Preview', 'bulletproof-security') ?>" />
752
- </div>
753
  </form>
754
 
755
  <?php } else { ?>
756
 
757
  <form name="MaintenanceModePreview" method="post" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/maintenance/maintenance.php' ); ?>" target="" onSubmit="window.open('<?php echo plugins_url('/bulletproof-security/admin/htaccess/bps-maintenance.php'); ?>','popup','width=+window.innerWidth,height=+ window.innerHeight,scrollbars=yes,menubar=yes,resizable=yes,status=yes,toolbar=yes')">
758
  <?php wp_nonce_field('bulletproof_security_maintenance_preview'); ?>
 
759
  <p class="submit" style="float:left;margin:5px 10px 0px -16px;">
760
  <input type="submit" name="maintenance-mode-preview-submit" class="button bps-button" style="width:72px;height:auto;white-space:normal" value="<?php esc_attr_e('Preview', 'bulletproof-security') ?>" />
761
  </p>
@@ -784,19 +786,20 @@ if ( isset( $_POST['maintenance-mode-preview-submit'] ) && current_user_can('man
784
  function bpsPro_mmode_single_gwiod_turn_on() {
785
  global $bps_topDiv, $bps_bottomDiv;
786
 
787
- $MMoptions = get_option('bulletproof_security_options_maint_mode');
788
- $permsIndex = substr(sprintf('%o', fileperms($root_index_file)), -4);
789
- $sapi_type = php_sapi_name();
790
- $root_index_file = ABSPATH . 'index.php';
791
- $root_index_file_backup = WP_CONTENT_DIR . '/bps-backup/master-backups/backup_index.php';
792
- $MMindexMaster = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/maintenance-mode-index.php';
793
- $bps_maintenance_file = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/bps-maintenance.php';
794
- $bps_maintenance_values = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/bps-maintenance-values.php';
795
- $root_folder_maintenance = ABSPATH . 'bps-maintenance.php';
796
- $root_folder_maintenance_values = ABSPATH . 'bps-maintenance-values.php';
797
- $pattern = '/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sIP\s*(.*)\s*#\sEND\sBPS\sMAINTENANCE\sMODE\sIP/';
798
- $format_error_1 = '/,(\s){2,20}/'; // 2 to 20 extra whitespaces
799
- $format_error_2 = '/,[^\s]/'; // no whitespaces between commas
 
800
 
801
  if ( $MMoptions['bps_maint_ip_allowed'] == '' ) {
802
  echo $bps_topDiv;
@@ -831,46 +834,46 @@ $format_error_2 = '/,[^\s]/'; // no whitespaces between commas
831
 
832
  $stringReplace = file_get_contents($MMindexMaster);
833
 
834
- if ( preg_match($pattern, $stringReplace, $matches ) ) {
835
-
836
- $stringReplace = preg_replace('/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sIP\s*(.*)\s*#\sEND\sBPS\sMAINTENANCE\sMODE\sIP/', "# BEGIN BPS MAINTENANCE MODE IP\n".'$bps_maintenance_ip'." = array('".str_replace(', ', "', '", $MMoptions['bps_maint_ip_allowed'])."');\n# END BPS MAINTENANCE MODE IP", $stringReplace);
837
-
838
- if ( file_put_contents($MMindexMaster, $stringReplace) ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
839
 
840
- if ( $permsIndex == '0400') {
841
- $lock = '0400';
842
- }
843
-
844
- if ( substr($sapi_type, 0, 6) != 'apache' && $permsIndex != '0666' || $permsIndex != '0777') { // Windows IIS, XAMPP, etc
845
- chmod($root_index_file, 0644);
846
- }
847
-
848
- $index_contents = file_get_contents($root_index_file);
849
-
850
- // First click Turn On: backup the WP root index.php file. Second... click Turn On: do not backup the index.php file to master-backups again
851
- if ( !strpos($index_contents, "BPS MAINTENANCE MODE IP") ) {
852
- copy( $root_index_file, $root_index_file_backup );
853
- }
854
 
855
- // first, second, third clicks...
856
- copy($bps_maintenance_values, $root_folder_maintenance_values);
857
-
858
- // first click only, but someone may want to modify the Master mmode template file so copy it again
859
- copy($bps_maintenance_file, $root_folder_maintenance);
860
-
861
- // first, second, third clicks...
862
- copy($MMindexMaster, $root_index_file);
863
-
864
- echo $bps_topDiv;
865
- $text = '<font color="green"><strong>'.__('FrontEnd Maintenance Mode has been Turned On.', 'bulletproof-security').'</strong></font>';
866
- echo $text;
867
- echo $bps_bottomDiv;
868
-
869
- if ( $lock == '0400') {
870
- chmod($root_index_file, 0400);
871
  }
872
  }
873
- }
874
  } // end if ( $MMoptions['bps_maint_ip_allowed'] != '' && $MMoptions['bps_maint_frontend'] == '1' ) {
875
 
876
  // Backend Maintenance Mode
@@ -878,7 +881,7 @@ $format_error_2 = '/,[^\s]/'; // no whitespaces between commas
878
  // .53.6: htaccess Files Disabled
879
  $HFiles_options = get_option('bulletproof_security_options_htaccess_files');
880
 
881
- if ( $HFiles_options['bps_htaccess_files'] == 'disabled' ) {
882
  echo $bps_topDiv;
883
  $text = '<font color="blue"><strong>'.__('htaccess Files Disabled: BackEnd Maintenance Mode is disabled.', 'bulletproof-security').'</strong></font>'.__('Click this link for help information: ', 'bulletproof-security').'<a href="https://forum.ait-pro.com/forums/topic/htaccess-files-disabled-setup-wizard-enable-disable-htaccess-files/" target="_blank" title="htaccess Files Disabled Forum Topic">'.__('htaccess Files Disabled Forum Topic', 'bulletproof-security').'</a><br>';
884
  echo $text;
@@ -886,79 +889,79 @@ $format_error_2 = '/,[^\s]/'; // no whitespaces between commas
886
 
887
  } else {
888
 
889
- if ( $MMoptions['bps_maint_backend'] != '1' ) {
890
- bpsPro_mmode_single_gwiod_turn_off_backend();
891
- }
892
-
893
- $MMAllowFromTXT = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/maintenance-mode.txt';
894
- $wpadminHtaccess = ABSPATH . 'wp-admin/.htaccess';
895
- $permsHtaccess = substr(sprintf('%o', fileperms($wpadminHtaccess)), -4);
896
- $sapi_type = php_sapi_name();
897
- # BPS .52.5: new pattern|new IfModule conditions
898
- $pattern2 = '/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sIP\s*Order(.*)\s*(Allow(.*)\s*){1,}#\sEND\sBPS\sMAINTENANCE\sMODE\sIP/';
899
- $pattern3 = '/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sIP(.*\s*){8}(Allow(.*)\s*){1,}<\/IfModule>\s*<\/IfModule>\s*#\sEND\sBPS\sMAINTENANCE\sMODE\sIP/';
900
- $Apache_Mod_options = get_option('bulletproof_security_options_apache_modules');
901
-
902
- if ( $MMoptions['bps_maint_ip_allowed'] != '' && $MMoptions['bps_maint_backend'] == '1' ) {
903
-
904
- if ( $permsHtaccess == '0404') {
905
- $lock = '0404';
906
- }
907
-
908
- if ( substr($sapi_type, 0, 6) != 'apache' || $permsHtaccess != '0666' || $permsHtaccess != '0777') { // Windows IIS, XAMPP, etc
909
- chmod($wpadminHtaccess, 0644);
910
- }
911
-
912
- $wpadmin_allow_from = array_filter( explode(', ', trim( $MMoptions['bps_maint_ip_allowed'], ", \t\n\r") ) );
913
- $allow_whiteList = array();
914
-
915
- foreach ( $wpadmin_allow_from as $allow_Key => $allow_Value ) {
916
- $allow_whiteList[] = 'Allow from '.$allow_Value."\n";
917
- file_put_contents($MMAllowFromTXT, $allow_whiteList);
918
  }
919
-
920
- $AllowFromRules = file_get_contents($MMAllowFromTXT);
921
- $stringReplace = file_get_contents($wpadminHtaccess);
922
-
923
- if ( $Apache_Mod_options['bps_apache_mod_ifmodule'] == 'Yes' ) {
924
-
925
- if ( ! preg_match( $pattern3, $stringReplace, $matches ) ) {
926
-
927
- $stringReplace = "\n# BEGIN BPS MAINTENANCE MODE IP\n<IfModule mod_authz_core.c>\nRequire ip ".str_replace( array( ',', ", ", ", "), "", $MMoptions['bps_maint_ip_allowed'])."\n</IfModule>\n\n<IfModule !mod_authz_core.c>\n<IfModule mod_access_compat.c>\nOrder Allow,Deny\n" . $AllowFromRules . "</IfModule>\n</IfModule>\n# END BPS MAINTENANCE MODE IP";
928
-
929
- file_put_contents($wpadminHtaccess, $stringReplace, FILE_APPEND | LOCK_EX);
930
-
931
- } else {
932
-
933
- $stringReplace = preg_replace( $pattern3, "# BEGIN BPS MAINTENANCE MODE IP\n<IfModule mod_authz_core.c>\nRequire ip ".str_replace( array( ',', ", ", ", "), "", $MMoptions['bps_maint_ip_allowed'])."\n</IfModule>\n\n<IfModule !mod_authz_core.c>\n<IfModule mod_access_compat.c>\nOrder Allow,Deny\n" . $AllowFromRules . "</IfModule>\n</IfModule>\n# END BPS MAINTENANCE MODE IP", $stringReplace);
934
-
935
- file_put_contents($wpadminHtaccess, $stringReplace);
936
- }
937
-
938
- } else { // IfModule No and any other coditions
939
-
940
- if ( ! preg_match( $pattern2, $stringReplace, $matches ) ) {
941
-
942
- $stringReplace = "\n# BEGIN BPS MAINTENANCE MODE IP\nOrder Allow,Deny\n" . $AllowFromRules . "# END BPS MAINTENANCE MODE IP";
943
- file_put_contents($wpadminHtaccess, $stringReplace, FILE_APPEND | LOCK_EX);
944
-
945
- } else {
946
-
947
- $stringReplace = preg_replace('/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sIP\s*Order(.*)\s*(Allow(.*)\s*){1,}#\sEND\sBPS\sMAINTENANCE\sMODE\sIP/', "# BEGIN BPS MAINTENANCE MODE IP\nOrder Allow,Deny\n" . $AllowFromRules . "# END BPS MAINTENANCE MODE IP", $stringReplace);
948
-
949
- file_put_contents($wpadminHtaccess, $stringReplace);
950
- }
951
- }
952
 
953
- if ( $lock == '0404') {
954
- chmod($wpadminHtaccess, 0404);
955
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
956
 
957
- echo $bps_topDiv;
958
- $text = '<font color="green"><strong>'.__('BackEnd Maintenance Mode has been Turned On.', 'bulletproof-security').'</strong></font>';
959
- echo $text;
960
- echo $bps_bottomDiv;
961
- }
 
 
 
 
962
  }
963
  }
964
 
@@ -967,20 +970,21 @@ $format_error_2 = '/,[^\s]/'; // no whitespaces between commas
967
  function bpsPro_mmode_network_turn_on() {
968
  global $current_blog, $blog_id, $bps_topDiv, $bps_bottomDiv;
969
 
970
- $MMoptions = get_option('bulletproof_security_options_maint_mode');
971
- $permsIndex = substr(sprintf('%o', fileperms($root_index_file)), -4);
972
- $sapi_type = php_sapi_name();
973
- $root_index_file = ABSPATH . 'index.php';
974
- $root_index_file_backup = WP_CONTENT_DIR . '/bps-backup/master-backups/backup_index.php';
975
- $MMindexMaster = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/maintenance-mode-index-MU.php';
976
-
977
- // Primary Site
978
- $bps_maintenance_file = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/bps-maintenance.php';
979
- $bps_maintenance_values = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/bps-maintenance-values.php';
980
- $root_folder_maintenance = ABSPATH . 'bps-maintenance.php';
981
- $root_folder_maintenance_values = ABSPATH . 'bps-maintenance-values.php';
982
-
983
- // Subsites
 
984
  if ( is_multisite() && is_subdomain_install() ) {
985
 
986
  $subsite_remove_slashes = str_replace( '.', "-", $current_blog->domain );
@@ -992,19 +996,19 @@ $root_folder_maintenance_values = ABSPATH . 'bps-maintenance-values.php';
992
  $subsite_replace_chars = str_replace( array( '/', '-' ), "_", $current_blog->path );
993
  }
994
 
995
- $subsite_maintenance_file = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/bps-maintenance-'.$subsite_remove_slashes.'.php';
996
- $subsite_maintenance_values = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/bps-maintenance-values-'.$subsite_remove_slashes.'.php';
997
- $subsite_root_folder_maintenance = ABSPATH . 'bps-maintenance-'.$subsite_remove_slashes.'.php';
998
- $subsite_root_folder_maintenance_values = ABSPATH . 'bps-maintenance-values-'.$subsite_remove_slashes.'.php';
999
-
1000
- // Regex
1001
- $subsite_case_pattern = '/#\sBEGIN\s'.$subsite_replace_chars.'\sCASE\s*((.*)\s*){13}break;\s*#\sEND\s'.$subsite_replace_chars.'\sCASE/';
1002
- $subsite_case_ip_pattern = '/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\s'.$subsite_replace_chars.'\sIP\s*(.*)\s*#\sEND\sBPS\sMAINTENANCE\sMODE\s'.$subsite_replace_chars.'\sIP/';
1003
- $primary_site_ip_pattern = '/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sPRIMARY\sIP\s*(.*)\s*#\sEND\sBPS\sMAINTENANCE\sMODE\sPRIMARY\sIP/';
1004
-
1005
- // Error Checks
1006
- $format_error_1 = '/,(\s){2,20}/'; // 2 to 20 extra whitespaces
1007
- $format_error_2 = '/,[^\s]/'; // no whitespaces between commas
1008
 
1009
  if ( $MMoptions['bps_maint_ip_allowed'] == '' ) {
1010
  echo $bps_topDiv;
@@ -1034,159 +1038,159 @@ $format_error_2 = '/,[^\s]/'; // no whitespaces between commas
1034
  if ( $MMoptions['bps_maint_ip_allowed'] != '' && $MMoptions['bps_maint_frontend'] == '1' ) {
1035
 
1036
  // backup the original WP root index.php file ONLY once the first time mmode is turned On and never again.
1037
- if ( !file_exists($root_index_file_backup) ) {
1038
  copy( $root_index_file, $root_index_file_backup );
1039
  }
1040
 
1041
- // Primary Network Site
1042
- if ( is_multisite() && $blog_id == 1 ) {
1043
-
1044
- $stringReplace = file_get_contents($MMindexMaster);
1045
-
1046
- if ( preg_match( '/#\sBEGIN\sPRIMARY\sSITE\sSTATUS\s*(.*)\s*#\sEND\sPRIMARY\sSITE\sSTATUS/', $stringReplace, $matches ) ) {
1047
- $stringReplace = preg_replace( '/#\sBEGIN\sPRIMARY\sSITE\sSTATUS\s*(.*)\s*#\sEND\sPRIMARY\sSITE\sSTATUS/', "# BEGIN PRIMARY SITE STATUS\n\$primary_site_status = 'On';\n# END PRIMARY SITE STATUS", $stringReplace);
1048
- }
1049
 
1050
- if ( is_subdomain_install() && preg_match( '/switch\s\(\s\$_SERVER\[\'REQUEST_URI\'\]\s\)\s\{/', $stringReplace, $matches ) ) {
1051
- $stringReplace = preg_replace( '/switch\s\(\s\$_SERVER\[\'REQUEST_URI\'\]\s\)\s\{/', 'switch ( $subdomain ) {', $stringReplace);
1052
- }
1053
-
1054
- if ( preg_match( $primary_site_ip_pattern, $stringReplace, $matches ) ) {
1055
-
1056
- $stringReplace = preg_replace('/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sPRIMARY\sIP\s*(.*)\s*#\sEND\sBPS\sMAINTENANCE\sMODE\sPRIMARY\sIP/', "# BEGIN BPS MAINTENANCE MODE PRIMARY IP\n ".'$bps_maintenance_ip'." = array('".str_replace(', ', "', '", $MMoptions['bps_maint_ip_allowed'])."');\n # END BPS MAINTENANCE MODE PRIMARY IP", $stringReplace);
1057
-
1058
- if ( file_put_contents($MMindexMaster, $stringReplace) ) {
1059
-
1060
- if ( $permsIndex == '0400') {
1061
- $lock = '0400';
1062
- }
1063
-
1064
- if ( substr($sapi_type, 0, 6) != 'apache' && $permsIndex != '0666' || $permsIndex != '0777') { // Windows IIS, XAMPP, etc
1065
- chmod($root_index_file, 0644);
1066
- }
1067
-
1068
- copy($bps_maintenance_values, $root_folder_maintenance_values);
1069
- copy($bps_maintenance_file, $root_folder_maintenance);
1070
- copy($MMindexMaster, $root_index_file);
1071
 
1072
- echo $bps_topDiv;
1073
- $text = '<font color="green"><strong>'.__('FrontEnd Maintenance Mode has been Turned On.', 'bulletproof-security').'</strong></font>';
1074
- echo $text;
1075
- echo $bps_bottomDiv;
1076
-
1077
- // Network GWIOD Site type - process this function after the new index file has been created with file_put_contents
1078
- if ( network_site_url() != get_site_option('siteurl') ) {
1079
- bpsPro_mmode_network_gwiod_site_root_index_file_on();
1080
- }
1081
-
1082
- if ( $lock == '0400') {
1083
- chmod($root_index_file, 0400);
1084
  }
1085
- }
1086
- }
1087
-
1088
- /** Network/Multisite Subsites **/
1089
- // Up to this point / after Save Options for subsites:
1090
- // subsite values and maintenance files have been created & the subsite include: bps-maintenance-values-{subsite-uri}.php
1091
- // has been created in the subsite maintenance file: bps-maintenance-{subsite-uri}.php
1092
- // the same index master file is used for all sites, each subsite will string replace its ip address array and copy the index file to the root folder again
1093
 
1094
- } else {
1095
-
1096
- $stringReplace = file_get_contents($MMindexMaster);
1097
- $subsite_subdomain_var_value = array_shift( explode( "." , str_replace( 'www.', "", $current_blog->domain ) ) );
1098
-
1099
- if ( is_multisite() && ! is_subdomain_install() ) {
 
 
 
 
 
 
 
1100
 
1101
- // Subdirectory site type: Create or update the subsite Status variable with value On in maintenance-mode-index-MU.php
1102
- if ( ! preg_match( '/\$'.$subsite_replace_chars.'_status = \'(.*)\';/', $stringReplace, $matches ) ) {
1103
-
1104
- $stringReplace = preg_replace('/#\sEND\sSUBSITE\sSTATUS/', "\$$subsite_replace_chars".'_status'." = 'On';\n# END SUBSITE STATUS", $stringReplace);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1105
 
1106
- } else {
 
 
 
 
1107
 
1108
- $stringReplace = preg_replace( '/\$'.$subsite_remove_slashes.'_status = \'(.*)\';/', "\$$subsite_remove_slashes".'_status'." = 'On';", $stringReplace);
1109
- }
1110
-
1111
- // Create the subsite URI in maintenance-mode-index-MU.php if it does not already exist
1112
- if ( ! preg_match( '/\$'.$subsite_remove_slashes.' = \'\/'.$subsite_remove_slashes.'\/\';/', $stringReplace, $matches ) ) {
1113
-
1114
- $stringReplace = preg_replace('/#\sEND\sSUBSITE\sURI/', "\$$subsite_replace_chars = '$current_blog->path';\n# END SUBSITE URI", $stringReplace);
1115
- }
1116
 
1117
- // Create a new subsite Switch case in maintenance-mode-index-MU.php if it does not already exist
1118
- if ( ! preg_match($subsite_case_pattern, $stringReplace, $matches ) ) {
1119
 
1120
- $stringReplace = preg_replace('/default:(\s*(.*)){5}\s*#\sEND\sBPS\sSWITCH\s*\}/', "# BEGIN $subsite_replace_chars CASE\n case \$$subsite_replace_chars:\n # BEGIN BPS MAINTENANCE MODE $subsite_replace_chars IP\n \$bps_maintenance_ip = array('127.0.0.1');\n # END BPS MAINTENANCE MODE $subsite_replace_chars IP\n if ( \$all_sites == '1' || \$all_subsites == '1' ) {\n require( dirname( __FILE__ ) . '/bps-maintenance.php' );\n } else {\n if ( in_array( \$_SERVER['REMOTE_ADDR'], \$bps_maintenance_ip ) || in_array( \$matches_three[0], \$bps_maintenance_ip ) || in_array( \$matches_two[0], \$bps_maintenance_ip ) || in_array( \$matches_one[0], \$bps_maintenance_ip ) || \$$subsite_replace_chars".'_status'." == 'Off' ) {\n require( dirname( __FILE__ ) . '/wp-blog-header.php' );\n } else {\n require( dirname( __FILE__ ) . '/bps-maintenance-$subsite_remove_slashes.php' );\n }\n }\n break;\n # END $subsite_replace_chars CASE\n default:\n if ( \$all_sites == '1' || \$all_subsites == '1' ) {\n require( dirname( __FILE__ ) . '/bps-maintenance.php' );\n } else {\n require( dirname( __FILE__ ) . '/wp-blog-header.php' );\n }\n # END BPS SWITCH\n }", $stringReplace );
1121
- }
1122
-
1123
- } else {
1124
 
1125
- // Subdomain site type: Create or update the subsite Status variable with value On in maintenance-mode-index-MU.php
1126
- if ( ! preg_match( '/\$'.$subsite_replace_chars.'_status = \'(.*)\';/', $stringReplace, $matches ) ) {
1127
 
1128
- $stringReplace = preg_replace('/#\sEND\sSUBSITE\sSTATUS/', "\$$subsite_replace_chars".'_status'." = 'On';\n# END SUBSITE STATUS", $stringReplace);
 
 
 
 
1129
 
1130
- } else {
 
1131
 
1132
- $stringReplace = preg_replace( '/\$'.$subsite_replace_chars.'_status = \'(.*)\';/', "\$$subsite_replace_chars".'_status'." = 'On';", $stringReplace);
1133
- }
1134
-
1135
- // Create the subsite root domain in maintenance-mode-index-MU.php if it does not already exist
1136
- if ( ! preg_match( '/\$'.$subsite_replace_chars.' = \''.$subsite_subdomain_var_value.'\';/', $stringReplace, $matches ) ) {
1137
-
1138
- $stringReplace = preg_replace('/#\sEND\sSUBSITE\sURI/', "\$$subsite_replace_chars = '$subsite_subdomain_var_value';\n# END SUBSITE URI", $stringReplace);
1139
- }
1140
-
1141
- // Create the HTTP_HOST based switch condition instead of REQUEST_URI
1142
- if ( preg_match( '/switch\s\(\s\$_SERVER\[\'REQUEST_URI\'\]\s\)\s\{/', $stringReplace, $matches ) ) {
1143
- $stringReplace = preg_replace( '/switch\s\(\s\$_SERVER\[\'REQUEST_URI\'\]\s\)\s\{/', 'switch ( $subdomain ) {', $stringReplace);
1144
- }
1145
-
1146
- // Create a new subsite Switch case in maintenance-mode-index-MU.php if it does not already exist
1147
- if ( ! preg_match( $subsite_case_pattern, $stringReplace, $matches ) ) {
1148
-
1149
- $stringReplace = preg_replace('/default:(\s*(.*)){5}\s*#\sEND\sBPS\sSWITCH\s*\}/', "# BEGIN $subsite_replace_chars CASE\n case \$$subsite_replace_chars:\n # BEGIN BPS MAINTENANCE MODE $subsite_replace_chars IP\n \$bps_maintenance_ip = array('127.0.0.1');\n # END BPS MAINTENANCE MODE $subsite_replace_chars IP\n if ( \$all_sites == '1' || \$all_subsites == '1' ) {\n require( dirname( __FILE__ ) . '/bps-maintenance.php' );\n } else {\n if ( in_array( \$_SERVER['REMOTE_ADDR'], \$bps_maintenance_ip ) || in_array( \$matches_three[0], \$bps_maintenance_ip ) || in_array( \$matches_two[0], \$bps_maintenance_ip ) || in_array( \$matches_one[0], \$bps_maintenance_ip ) || \$$subsite_replace_chars".'_status'." == 'Off' ) {\n require( dirname( __FILE__ ) . '/wp-blog-header.php' );\n } else {\n require( dirname( __FILE__ ) . '/bps-maintenance-$subsite_remove_slashes.php' );\n }\n }\n break;\n # END $subsite_replace_chars CASE\n default:\n if ( \$all_sites == '1' || \$all_subsites == '1' ) {\n require( dirname( __FILE__ ) . '/bps-maintenance.php' );\n } else {\n require( dirname( __FILE__ ) . '/wp-blog-header.php' );\n }\n # END BPS SWITCH\n }", $stringReplace );
1150
- }
1151
- }
1152
-
1153
- // Create the subsite IP addresses array in maintenance-mode-index-MU.php
1154
- if ( preg_match( $subsite_case_ip_pattern, $stringReplace, $matches ) ) {
1155
-
1156
- $stringReplace = preg_replace( $subsite_case_ip_pattern, "# BEGIN BPS MAINTENANCE MODE $subsite_replace_chars IP\n ".'$bps_maintenance_ip'." = array('".str_replace(', ', "', '", $MMoptions['bps_maint_ip_allowed'])."');\n # END BPS MAINTENANCE MODE $subsite_replace_chars IP", $stringReplace);
1157
 
1158
- if ( file_put_contents($MMindexMaster, $stringReplace) ) {
 
 
 
1159
 
1160
- if ( $permsIndex == '0400') {
1161
- $lock = '0400';
1162
- }
1163
 
1164
- if ( substr($sapi_type, 0, 6) != 'apache' && $permsIndex != '0666' || $permsIndex != '0777') { // Windows IIS, XAMPP, etc
1165
- chmod($root_index_file, 0644);
1166
- }
1167
-
1168
- copy($subsite_maintenance_values, $subsite_root_folder_maintenance_values);
1169
- copy($bps_maintenance_values, $root_folder_maintenance_values);
1170
- copy($subsite_maintenance_file, $subsite_root_folder_maintenance);
1171
- copy($bps_maintenance_file, $root_folder_maintenance);
1172
- copy($MMindexMaster, $root_index_file);
1173
 
1174
- echo $bps_topDiv;
1175
- $text = '<font color="green"><strong>'.__('FrontEnd Maintenance Mode has been Turned On.', 'bulletproof-security').'</strong></font>';
1176
- echo $text;
1177
- echo $bps_bottomDiv;
1178
 
1179
- // Network GWIOD Site type - process this function after the new index file has been created with file_put_contents
1180
- if ( network_site_url() != get_site_option('siteurl') ) {
1181
- bpsPro_mmode_network_gwiod_site_root_index_file_on();
1182
- }
1183
 
1184
- if ( $lock == '0400') {
1185
- chmod($root_index_file, 0400);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1186
  }
1187
- }
1188
- }
1189
- }
1190
  } // end if ( $MMoptions['bps_maint_ip_allowed'] != '' && $MMoptions['bps_maint_frontend'] == '1' ) {
1191
 
1192
  // Backend Maintenance Mode - Primary Site ONLY - subsites do not have this option available
@@ -1194,7 +1198,7 @@ $format_error_2 = '/,[^\s]/'; // no whitespaces between commas
1194
  // .53.6: htaccess Files Disabled
1195
  $HFiles_options = get_option('bulletproof_security_options_htaccess_files');
1196
 
1197
- if ( $HFiles_options['bps_htaccess_files'] == 'disabled' ) {
1198
  echo $bps_topDiv;
1199
  $text = '<font color="blue"><strong>'.__('htaccess Files Disabled: BackEnd Maintenance Mode is disabled.', 'bulletproof-security').'</strong></font>'.__('Click this link for help information: ', 'bulletproof-security').'<a href="https://forum.ait-pro.com/forums/topic/htaccess-files-disabled-setup-wizard-enable-disable-htaccess-files/" target="_blank" title="htaccess Files Disabled Forum Topic">'.__('htaccess Files Disabled Forum Topic', 'bulletproof-security').'</a><br>';
1200
  echo $text;
@@ -1202,82 +1206,82 @@ $format_error_2 = '/,[^\s]/'; // no whitespaces between commas
1202
 
1203
  } else {
1204
 
1205
- if ( is_multisite() && $blog_id == 1 ) {
1206
-
1207
- if ( $MMoptions['bps_maint_backend'] != '1' ) {
1208
- bpsPro_mmode_single_gwiod_turn_off_backend();
1209
- }
1210
-
1211
- $MMAllowFromTXT = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/maintenance-mode.txt';
1212
- $wpadminHtaccess = ABSPATH . 'wp-admin/.htaccess';
1213
- $permsHtaccess = substr(sprintf('%o', fileperms($wpadminHtaccess)), -4);
1214
- $sapi_type = php_sapi_name();
1215
- # BPS .52.5: new pattern|new IfModule conditions
1216
- $pattern2 = '/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sIP\s*Order(.*)\s*(Allow(.*)\s*){1,}#\sEND\sBPS\sMAINTENANCE\sMODE\sIP/';
1217
- $pattern3 = '/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sIP(.*\s*){8}(Allow(.*)\s*){1,}<\/IfModule>\s*<\/IfModule>\s*#\sEND\sBPS\sMAINTENANCE\sMODE\sIP/';
1218
- $Apache_Mod_options = get_option('bulletproof_security_options_apache_modules');
1219
 
1220
- if ( $MMoptions['bps_maint_ip_allowed'] != '' && $MMoptions['bps_maint_backend'] == '1' ) {
1221
-
1222
- if ( $permsHtaccess == '0404') {
1223
- $lock = '0404';
1224
- }
1225
-
1226
- if ( substr($sapi_type, 0, 6) != 'apache' || $permsHtaccess != '0666' || $permsHtaccess != '0777') { // Windows IIS, XAMPP, etc
1227
- chmod($wpadminHtaccess, 0644);
1228
- }
1229
-
1230
- $wpadmin_allow_from = array_filter( explode(', ', trim( $MMoptions['bps_maint_ip_allowed'], ", \t\n\r") ) );
1231
- $allow_whiteList = array();
 
 
1232
 
1233
- foreach ( $wpadmin_allow_from as $allow_Key => $allow_Value ) {
1234
- $allow_whiteList[] = 'Allow from '.$allow_Value."\n";
1235
- file_put_contents($MMAllowFromTXT, $allow_whiteList);
1236
- }
1237
-
1238
- $AllowFromRules = file_get_contents($MMAllowFromTXT);
1239
- $stringReplace = file_get_contents($wpadminHtaccess);
1240
-
1241
- if ( $Apache_Mod_options['bps_apache_mod_ifmodule'] == 'Yes' ) {
1242
-
1243
- if ( ! preg_match( $pattern3, $stringReplace, $matches ) ) {
1244
-
1245
- $stringReplace = "\n# BEGIN BPS MAINTENANCE MODE IP\n<IfModule mod_authz_core.c>\nRequire ip ".str_replace( array( ',', ", ", ", "), "", $MMoptions['bps_maint_ip_allowed'])."\n</IfModule>\n\n<IfModule !mod_authz_core.c>\n<IfModule mod_access_compat.c>\nOrder Allow,Deny\n" . $AllowFromRules . "</IfModule>\n</IfModule>\n# END BPS MAINTENANCE MODE IP";
1246
-
1247
- file_put_contents($wpadminHtaccess, $stringReplace, FILE_APPEND | LOCK_EX);
1248
-
1249
- } else {
1250
-
1251
- $stringReplace = preg_replace( $pattern3, "# BEGIN BPS MAINTENANCE MODE IP\n<IfModule mod_authz_core.c>\nRequire ip ".str_replace( array( ',', ", ", ", "), "", $MMoptions['bps_maint_ip_allowed'])."\n</IfModule>\n\n<IfModule !mod_authz_core.c>\n<IfModule mod_access_compat.c>\nOrder Allow,Deny\n" . $AllowFromRules . "</IfModule>\n</IfModule>\n# END BPS MAINTENANCE MODE IP", $stringReplace);
1252
 
1253
- file_put_contents($wpadminHtaccess, $stringReplace);
1254
- }
1255
-
1256
- } else { // IfModule No and any other coditions
1257
-
1258
- if ( ! preg_match( $pattern2, $stringReplace, $matches ) ) {
1259
 
1260
- $stringReplace = "\n# BEGIN BPS MAINTENANCE MODE IP\nOrder Allow,Deny\n".$AllowFromRules."# END BPS MAINTENANCE MODE IP";
1261
- file_put_contents($wpadminHtaccess, $stringReplace, FILE_APPEND | LOCK_EX);
1262
 
1263
- } else {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1264
 
1265
- $stringReplace = preg_replace('/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sIP\s*Order(.*)\s*(Allow(.*)\s*){1,}#\sEND\sBPS\sMAINTENANCE\sMODE\sIP/', "# BEGIN BPS MAINTENANCE MODE IP\nOrder Allow,Deny\n".$AllowFromRules."# END BPS MAINTENANCE MODE IP", $stringReplace);
1266
-
1267
- file_put_contents($wpadminHtaccess, $stringReplace);
1268
- }
 
1269
  }
1270
-
1271
- if ( $lock == '0404') {
1272
- chmod($wpadminHtaccess, 0404);
1273
- }
1274
-
1275
- echo $bps_topDiv;
1276
- $text = '<font color="green"><strong>'.__('BackEnd Maintenance Mode has been Turned On.', 'bulletproof-security').'</strong></font>';
1277
- echo $text;
1278
- echo $bps_bottomDiv;
1279
- }
1280
- }
1281
  }
1282
  }
1283
 
@@ -1348,12 +1352,13 @@ if ( isset( $_POST['Submit-maintenance-mode-on'] ) && current_user_can('manage_o
1348
  function bpsPro_mmode_gwiod_site_root_index_file_on() {
1349
  global $bps_topDiv, $bps_bottomDiv;
1350
 
1351
- $MMoptions = get_option('bulletproof_security_options_maint_mode');
1352
- $publicly_displayed_url = get_option('home');
1353
- $actual_wp_install_url = get_option('siteurl');
1354
- $gwiod_MMindexMaster = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/maintenance-mode-index-GWIOD.php';
1355
- $gwiod_pattern = '/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sGWIOD\s*require(.*)\s*\}(.*)\s*require(.*)\s*\}\s*#\sEND\sBPS\sMAINTENANCE\sMODE\sGWIOD/';
1356
- $gwiod_pattern_ip = '/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sIP\s*(.*)\s*#\sEND\sBPS\sMAINTENANCE\sMODE\sIP/';
 
1357
 
1358
  if ( $publicly_displayed_url != $actual_wp_install_url ) {
1359
 
@@ -1371,19 +1376,19 @@ $gwiod_pattern_ip = '/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sIP\s*(.*)\s*#\sEND\sBPS\
1371
  echo $bps_bottomDiv;
1372
  return;
1373
 
1374
- } else {
1375
-
1376
- $gwiod_stringReplace = file_get_contents($gwiod_MMindexMaster);
1377
 
1378
- if ( preg_match($gwiod_pattern_ip, $gwiod_stringReplace, $matches ) ) {
1379
-
1380
- $gwiod_stringReplace = preg_replace('/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sIP\s*(.*)\s*#\sEND\sBPS\sMAINTENANCE\sMODE\sIP/', "# BEGIN BPS MAINTENANCE MODE IP\n".'$bps_maintenance_ip'." = array('".str_replace(', ', "', '", $MMoptions['bps_maint_ip_allowed'])."');\n# END BPS MAINTENANCE MODE IP", $gwiod_stringReplace);
1381
- }
1382
 
1383
- if ( preg_match($gwiod_pattern, $gwiod_stringReplace, $matches ) ) {
 
 
 
1384
 
1385
- $gwiod_stringReplace = preg_replace('/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sGWIOD\s*require(.*)\s*\}(.*)\s*require(.*)\s*\}\s*#\sEND\sBPS\sMAINTENANCE\sMODE\sGWIOD/', "# BEGIN BPS MAINTENANCE MODE GWIOD\nrequire( dirname( __FILE__ ) . '".$gwiod_url."/wp-blog-header.php' );\n} else {\nrequire( dirname( __FILE__ ) . '".$gwiod_url."/bps-maintenance.php' );\n}\n# END BPS MAINTENANCE MODE GWIOD", $gwiod_stringReplace);
1386
- }
 
 
1387
 
1388
  if ( file_put_contents($gwiod_MMindexMaster, $gwiod_stringReplace) ) {
1389
 
@@ -1416,58 +1421,61 @@ $gwiod_pattern_ip = '/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sIP\s*(.*)\s*#\sEND\sBPS\
1416
  function bpsPro_mmode_network_gwiod_site_root_index_file_on() {
1417
  global $current_blog, $blog_id, $bps_topDiv, $bps_bottomDiv;
1418
 
1419
- $MMoptions = get_option('bulletproof_security_options_maint_mode');
1420
- $MMindexMaster = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/maintenance-mode-index-MU.php';
1421
- $publicly_displayed_url = network_site_url();
1422
- $actual_wp_install_url = get_site_option('siteurl');
1423
 
1424
  if ( $publicly_displayed_url != $actual_wp_install_url ) {
1425
 
1426
- $gwiod_url = str_replace( $publicly_displayed_url, "", $actual_wp_install_url );
1427
  $gwiod_url_path = str_replace( '\\', '/', ABSPATH );
1428
  $gwiod_root_index_file = dirname( $gwiod_url_path ) . '/index.php';
1429
  $gwiod_root_index_file_backup = WP_CONTENT_DIR . '/bps-backup/master-backups/backup_gwiod_index.php';
1430
  $gwiod_permsIndex = substr(sprintf('%o', fileperms($gwiod_root_index_file)), -4);
1431
  $sapi_type = php_sapi_name();
1432
-
1433
- if ( ! file_exists( $gwiod_root_index_file ) ) {
1434
- echo $bps_topDiv;
1435
- $text = '<font color="#fb0101"><strong>'.__('Error: Unable to get/find the site root index.php file for this Network GWIOD - Giving WordPress Its Own Directory - website.', 'bulletproof-security').'</font><br>'.__('Network GWIOD Site Root index.php File Path Checked: ', 'bulletproof-security').$gwiod_root_index_file.'<br>'.__('Please copy this error message and send it in an email to info@ait-pro.com for assistance.', 'bulletproof-security').'</strong>';
1436
- echo $text;
1437
- echo $bps_bottomDiv;
1438
- return;
1439
-
1440
- } else {
1441
 
1442
- if ( $gwiod_permsIndex == '0400') {
1443
- $lock = '0400';
1444
- }
 
 
 
1445
 
1446
- if ( substr($sapi_type, 0, 6) != 'apache' && $gwiod_permsIndex != '0666' || $gwiod_permsIndex != '0777') { // Windows IIS, XAMPP, etc
1447
- chmod($gwiod_root_index_file, 0644);
1448
- }
1449
 
1450
- if ( !file_exists($gwiod_root_index_file_backup) ) {
1451
-
1452
- copy( $gwiod_root_index_file, $gwiod_root_index_file_backup );
1453
- }
1454
-
1455
- if ( copy( $MMindexMaster, $gwiod_root_index_file ) ) {
1456
-
1457
- $gwiod_stringReplace = file_get_contents($gwiod_root_index_file);
1458
- }
1459
-
1460
- if ( !strpos($gwiod_stringReplace, "/$gwiod_urlbps-maintenance" ) ) {
1461
-
1462
- $gwiod_stringReplace = preg_replace('/\/bps-maintenance/', "/$gwiod_url".'bps-maintenance', $gwiod_stringReplace);
1463
- }
1464
-
1465
- if ( !strpos($gwiod_stringReplace, "/$gwiod_urlwp-blog-header" ) ) {
1466
 
1467
- $gwiod_stringReplace = preg_replace('/\/wp-blog-header/', "/$gwiod_url".'wp-blog-header', $gwiod_stringReplace);
1468
- }
 
1469
 
1470
- if ( file_put_contents($gwiod_root_index_file, $gwiod_stringReplace) ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1471
 
1472
  if ( $lock == '0400') {
1473
  chmod($gwiod_root_index_file, 0400);
@@ -1484,13 +1492,14 @@ $actual_wp_install_url = get_site_option('siteurl');
1484
  function bpsPro_mmode_single_gwiod_turn_off_frontend() {
1485
  global $bps_topDiv, $bps_bottomDiv;
1486
 
1487
- $MMoptions = get_option('bulletproof_security_options_maint_mode');
1488
- $permsIndex = substr(sprintf('%o', fileperms($root_index_file)), -4);
1489
- $sapi_type = php_sapi_name();
1490
- $root_index_file = ABSPATH . 'index.php';
1491
- $root_index_file_backup = WP_CONTENT_DIR . '/bps-backup/master-backups/backup_index.php';
1492
- $root_folder_maintenance = ABSPATH . 'bps-maintenance.php';
1493
- $root_folder_maintenance_values = ABSPATH . 'bps-maintenance-values.php';
 
1494
 
1495
  if ( file_exists($root_index_file_backup) ) {
1496
 
@@ -1557,125 +1566,128 @@ $root_folder_maintenance_values = ABSPATH . 'bps-maintenance-values.php';
1557
  function bpsPro_mmode_network_turn_off_frontend() {
1558
  global $current_blog, $blog_id, $bps_topDiv, $bps_bottomDiv;
1559
 
1560
- $MMoptions = get_option('bulletproof_security_options_maint_mode');
1561
- $permsIndex = substr(sprintf('%o', fileperms($root_index_file)), -4);
1562
- $sapi_type = php_sapi_name();
1563
- $root_index_file = ABSPATH . 'index.php';
1564
- $root_index_file_backup = WP_CONTENT_DIR . '/bps-backup/master-backups/backup_index.php';
1565
- $bps_maintenance_values = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/bps-maintenance-values.php';
1566
- $root_folder_maintenance_values = ABSPATH . 'bps-maintenance-values.php';
1567
- $root_folder_maintenance = ABSPATH . 'bps-maintenance.php';
1568
- $MMindexMaster = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/maintenance-mode-index-MU.php';
 
1569
 
1570
- if ( $permsIndex == '0400') {
1571
- $lock = '0400';
1572
- }
1573
-
1574
- if ( substr($sapi_type, 0, 6) != 'apache' && $permsIndex != '0666' || $permsIndex != '0777') { // Windows IIS, XAMPP, etc
1575
- chmod($root_index_file, 0644);
1576
- }
1577
 
1578
- // Primary Network Site
1579
- if ( is_multisite() && $blog_id == 1 ) {
1580
-
1581
- $stringReplace = file_get_contents($MMindexMaster);
1582
 
1583
- if ( preg_match( '/#\sBEGIN\sPRIMARY\sSITE\sSTATUS\s*(.*)\s*#\sEND\sPRIMARY\sSITE\sSTATUS/', $stringReplace, $matches ) ) {
1584
-
1585
- $stringReplace = preg_replace( '/#\sBEGIN\sPRIMARY\sSITE\sSTATUS\s*(.*)\s*#\sEND\sPRIMARY\sSITE\sSTATUS/', "# BEGIN PRIMARY SITE STATUS\n\$primary_site_status = 'Off';\n# END PRIMARY SITE STATUS", $stringReplace);
1586
- }
1587
-
1588
- if ( file_put_contents($MMindexMaster, $stringReplace) ) {
1589
- copy( $MMindexMaster, $root_index_file );
1590
- copy( $bps_maintenance_values, $root_folder_maintenance_values );
1591
- }
1592
-
1593
- // Network Subsites
1594
- } else {
1595
-
1596
- if ( is_multisite() && is_subdomain_install() ) {
1597
 
1598
- $subsite_remove_slashes = str_replace( '.', "-", $current_blog->domain );
1599
- $subsite_replace_chars = str_replace( array( '.', '-' ), "_", $current_blog->domain );
1600
-
1601
- } else {
1602
 
1603
- $subsite_remove_slashes = str_replace( '/', "", $current_blog->path );
1604
- $subsite_replace_chars = str_replace( array( '/', '-' ), "_", $current_blog->path );
1605
- }
1606
-
1607
- $subsite_root_folder_maintenance = ABSPATH . 'bps-maintenance-'.$subsite_remove_slashes.'.php';
1608
- $subsite_root_folder_maintenance_values = ABSPATH . 'bps-maintenance-values-'.$subsite_remove_slashes.'.php';
1609
-
1610
- $stringReplace = file_get_contents($MMindexMaster);
1611
 
1612
- if ( is_multisite() && ! is_subdomain_install() ) {
 
 
 
1613
 
1614
- if ( preg_match( '/\$'.$subsite_replace_chars.'_status = \'(.*)\';/', $stringReplace, $matches ) ) {
1615
-
1616
- $stringReplace = preg_replace( '/\$'.$subsite_replace_chars.'_status = \'(.*)\';/', "\$$subsite_replace_chars".'_status'." = 'Off';", $stringReplace);
1617
- }
1618
-
1619
- } else {
1620
-
1621
- if ( preg_match( '/\$'.$subsite_replace_chars.'_status = \'(.*)\';/', $stringReplace, $matches ) ) {
1622
-
1623
- $stringReplace = preg_replace( '/\$'.$subsite_replace_chars.'_status = \'(.*)\';/', "\$$subsite_replace_chars".'_status'." = 'Off';", $stringReplace);
1624
- }
1625
- }
1626
-
1627
- if ( file_put_contents($MMindexMaster, $stringReplace) ) {
1628
- copy( $MMindexMaster, $root_index_file );
1629
- }
1630
-
1631
- $delete_files = array($subsite_root_folder_maintenance, $subsite_root_folder_maintenance_values);
1632
 
1633
- foreach ( $delete_files as $file ) {
1634
- if ( file_exists($file) ) {
1635
- unlink($file);
1636
- }
1637
- }
1638
  }
1639
 
1640
- if ( $lock == '0400') {
1641
- chmod($root_index_file, 0400);
 
 
 
 
 
 
 
 
1642
  }
1643
 
1644
- echo $bps_topDiv;
1645
- $text = '<font color="green"><strong>'.__('FrontEnd Maintenance Mode has been Turned Off.', 'bulletproof-security').'</strong></font>';
1646
- echo $text;
1647
- echo $bps_bottomDiv;
 
 
 
 
 
 
 
 
 
 
 
 
 
1648
 
1649
  // Network GWIOD: network_site_url: http://example.local/ vs get_site_option siteurl: http://example.local/gwiod/
1650
  $publicly_displayed_url = network_site_url();
1651
  $actual_wp_install_url = get_site_option('siteurl');
1652
  $gwiod_root_index_file_backup = WP_CONTENT_DIR . '/bps-backup/master-backups/backup_gwiod_index.php';
1653
- $gwiod_url = str_replace( $publicly_displayed_url, "", $actual_wp_install_url );
1654
  $gwiod_url_path = str_replace( '\\', '/', ABSPATH );
1655
  $gwiod_root_index_file = dirname( $gwiod_url_path ) . '/index.php';
1656
  $gwiod_permsIndex = substr(sprintf('%o', fileperms($gwiod_root_index_file)), -4);
 
 
 
 
 
 
1657
 
1658
- if ( $gwiod_permsIndex == '0400') {
1659
- $lock = '0400';
1660
- }
1661
-
1662
- if ( substr($sapi_type, 0, 6) != 'apache' && $gwiod_permsIndex != '0666' || $gwiod_permsIndex != '0777') { // Windows IIS, XAMPP, etc
1663
- chmod($gwiod_root_index_file, 0644);
1664
- }
1665
 
1666
  if ( copy( $MMindexMaster, $gwiod_root_index_file ) ) {
1667
 
1668
  $gwiod_stringReplace = file_get_contents($gwiod_root_index_file);
1669
  }
1670
 
1671
- if ( !strpos($gwiod_stringReplace, "/$gwiod_urlbps-maintenance" ) ) {
1672
 
1673
- $gwiod_stringReplace = preg_replace('/\/bps-maintenance/', "/$gwiod_url".'bps-maintenance', $gwiod_stringReplace);
1674
  }
1675
 
1676
- if ( !strpos($gwiod_stringReplace, "/$gwiod_urlwp-blog-header" ) ) {
1677
 
1678
- $gwiod_stringReplace = preg_replace('/\/wp-blog-header/', "/$gwiod_url".'wp-blog-header', $gwiod_stringReplace);
1679
  }
1680
 
1681
  if ( file_put_contents($gwiod_root_index_file, $gwiod_stringReplace) ) {
@@ -1691,19 +1703,20 @@ $MMindexMaster = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/maintenan
1691
  function bpsPro_mmode_single_gwiod_turn_off_backend() {
1692
  global $bps_topDiv, $bps_bottomDiv;
1693
 
1694
- $MMoptions = get_option('bulletproof_security_options_maint_mode');
1695
- $Apache_Mod_options = get_option('bulletproof_security_options_apache_modules');
1696
- $sapi_type = php_sapi_name();
1697
- # BPS .52.5: new pattern|new IfModule conditions
1698
- $pattern2 = '/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sIP\s*Order(.*)\s*(Allow(.*)\s*){1,}#\sEND\sBPS\sMAINTENANCE\sMODE\sIP/';
1699
- $pattern3 = '/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sIP(.*\s*){8}(Allow(.*)\s*){1,}<\/IfModule>\s*<\/IfModule>\s*#\sEND\sBPS\sMAINTENANCE\sMODE\sIP/';
1700
- $wpadminHtaccess = ABSPATH . 'wp-admin/.htaccess';
1701
- $permsHtaccess = substr(sprintf('%o', fileperms($wpadminHtaccess)), -4);
 
1702
 
1703
  // .53.6: htaccess Files Disabled
1704
  $HFiles_options = get_option('bulletproof_security_options_htaccess_files');
1705
 
1706
- if ( $HFiles_options['bps_htaccess_files'] == 'disabled' ) {
1707
  echo $bps_topDiv;
1708
  $text = '<font color="blue"><strong>'.__('htaccess Files Disabled: BackEnd Maintenance Mode is disabled.', 'bulletproof-security').'</strong></font>'.__('Click this link for help information: ', 'bulletproof-security').'<a href="https://forum.ait-pro.com/forums/topic/htaccess-files-disabled-setup-wizard-enable-disable-htaccess-files/" target="_blank" title="htaccess Files Disabled Forum Topic">'.__('htaccess Files Disabled Forum Topic', 'bulletproof-security').'</a><br>';
1709
  echo $text;
@@ -1711,45 +1724,45 @@ $permsHtaccess = substr(sprintf('%o', fileperms($wpadminHtaccess)), -4);
1711
 
1712
  } else {
1713
 
1714
- if ( file_exists($wpadminHtaccess) ) {
1715
-
1716
- if ( $permsHtaccess == '0404') {
1717
- $lock = '0404';
1718
- }
1719
-
1720
- if ( substr($sapi_type, 0, 6) != 'apache' || $permsHtaccess != '0666' || $permsHtaccess != '0777') { // Windows IIS, XAMPP, etc
1721
- chmod($wpadminHtaccess, 0644);
1722
- }
1723
-
1724
- $stringReplace = file_get_contents($wpadminHtaccess);
1725
-
1726
- if ( $Apache_Mod_options['bps_apache_mod_ifmodule'] == 'Yes' ) {
1727
 
1728
- if ( preg_match( $pattern3, $stringReplace, $matches ) ) {
1729
-
1730
- $stringReplace = preg_replace( $pattern3, "", $stringReplace);
1731
- }
1732
-
1733
- } else {
1734
-
1735
- if ( preg_match( $pattern2, $stringReplace, $matches ) ) {
1736
-
1737
- $stringReplace = preg_replace( $pattern2, "", $stringReplace);
1738
  }
1739
- }
1740
 
1741
- if ( file_put_contents($wpadminHtaccess, $stringReplace) ) {
1742
-
1743
- if ( $lock == '0404') {
1744
- chmod($wpadminHtaccess, 0404);
 
 
 
 
 
 
 
 
 
 
 
1745
  }
1746
 
1747
- echo $bps_topDiv;
1748
- $text = '<font color="green"><strong>'.__('BackEnd Maintenance Mode has been Turned Off.', 'bulletproof-security').'</strong></font>';
1749
- echo $text;
1750
- echo $bps_bottomDiv;
1751
- }
1752
- }
 
 
 
 
 
 
1753
  }
1754
  }
1755
 
@@ -1759,19 +1772,20 @@ $permsHtaccess = substr(sprintf('%o', fileperms($wpadminHtaccess)), -4);
1759
  function bpsPro_mmode_single_gwiod_turn_off() {
1760
  global $bps_topDiv, $bps_bottomDiv;
1761
 
1762
- $MMoptions = get_option('bulletproof_security_options_maint_mode');
1763
- $permsIndex = substr(sprintf('%o', fileperms($root_index_file)), -4);
1764
- $sapi_type = php_sapi_name();
1765
- $root_index_file = ABSPATH . 'index.php';
1766
- $root_index_file_backup = WP_CONTENT_DIR . '/bps-backup/master-backups/backup_index.php';
1767
- $root_folder_maintenance = ABSPATH . 'bps-maintenance.php';
1768
- $root_folder_maintenance_values = ABSPATH . 'bps-maintenance-values.php';
1769
- $pattern = '/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sIP\s*(.*)\s*#\sEND\sBPS\sMAINTENANCE\sMODE\sIP/';
1770
- # BPS .52.5: new pattern|new IfModule conditions
1771
- $pattern2 = '/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sIP\s*Order(.*)\s*(Allow(.*)\s*){1,}#\sEND\sBPS\sMAINTENANCE\sMODE\sIP/';
1772
- $pattern3 = '/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sIP(.*\s*){8}(Allow(.*)\s*){1,}<\/IfModule>\s*<\/IfModule>\s*#\sEND\sBPS\sMAINTENANCE\sMODE\sIP/';
1773
- $wpadminHtaccess = ABSPATH . 'wp-admin/.htaccess';
1774
- $permsHtaccess = substr(sprintf('%o', fileperms($wpadminHtaccess)), -4);
 
1775
 
1776
  if ( file_exists($root_index_file_backup) ) {
1777
 
@@ -1833,7 +1847,7 @@ $permsHtaccess = substr(sprintf('%o', fileperms($wpadminHtaccess)), -4);
1833
  // .53.6: htaccess Files Disabled
1834
  $HFiles_options = get_option('bulletproof_security_options_htaccess_files');
1835
 
1836
- if ( $HFiles_options['bps_htaccess_files'] == 'disabled' ) {
1837
  echo $bps_topDiv;
1838
  $text = '<font color="blue"><strong>'.__('htaccess Files Disabled: BackEnd Maintenance Mode is disabled.', 'bulletproof-security').'</strong></font>'.__('Click this link for help information: ', 'bulletproof-security').'<a href="https://forum.ait-pro.com/forums/topic/htaccess-files-disabled-setup-wizard-enable-disable-htaccess-files/" target="_blank" title="htaccess Files Disabled Forum Topic">'.__('htaccess Files Disabled Forum Topic', 'bulletproof-security').'</a><br>';
1839
  echo $text;
@@ -1841,41 +1855,41 @@ $permsHtaccess = substr(sprintf('%o', fileperms($wpadminHtaccess)), -4);
1841
 
1842
  } else {
1843
 
1844
- // wp-admin .htaccess
1845
- if ( file_exists($wpadminHtaccess) ) {
1846
-
1847
- if ( $permsHtaccess == '0404') {
1848
- $lock = '0404';
1849
- }
 
 
 
 
1850
 
1851
- if ( substr($sapi_type, 0, 6) != 'apache' || $permsHtaccess != '0666' || $permsHtaccess != '0777') { // Windows IIS, XAMPP, etc
1852
- chmod($wpadminHtaccess, 0644);
1853
- }
 
 
 
1854
 
1855
- $stringReplace = file_get_contents($wpadminHtaccess);
1856
-
1857
- if ( preg_match( $pattern2, $stringReplace, $matches ) ) {
1858
-
1859
- $stringReplace = preg_replace( $pattern2, "", $stringReplace );
1860
- }
1861
-
1862
- if ( preg_match( $pattern3, $stringReplace, $matches ) ) {
 
 
1863
 
1864
- $stringReplace = preg_replace( $pattern3, "", $stringReplace );
 
 
 
 
1865
  }
1866
-
1867
- if ( file_put_contents($wpadminHtaccess, $stringReplace) ) {
1868
-
1869
- if ( $lock == '0404') {
1870
- chmod($wpadminHtaccess, 0404);
1871
- }
1872
-
1873
- echo $bps_topDiv;
1874
- $text = '<font color="green"><strong>'.__('BackEnd Maintenance Mode has been Turned Off.', 'bulletproof-security').'</strong></font>';
1875
- echo $text;
1876
- echo $bps_bottomDiv;
1877
- }
1878
- }
1879
  }
1880
  }
1881
 
@@ -1886,111 +1900,114 @@ $permsHtaccess = substr(sprintf('%o', fileperms($wpadminHtaccess)), -4);
1886
  function bpsPro_mmode_network_turn_off() {
1887
  global $current_blog, $blog_id, $bps_topDiv, $bps_bottomDiv;
1888
 
1889
- $MMoptions = get_option('bulletproof_security_options_maint_mode');
1890
- $permsIndex = substr(sprintf('%o', fileperms($root_index_file)), -4);
1891
- $sapi_type = php_sapi_name();
1892
- $root_index_file = ABSPATH . 'index.php';
1893
- $root_index_file_backup = WP_CONTENT_DIR . '/bps-backup/master-backups/backup_index.php';
1894
- $root_folder_maintenance = ABSPATH . 'bps-maintenance.php';
1895
- $root_folder_maintenance_values = ABSPATH . 'bps-maintenance-values.php';
1896
- $bps_maintenance_values = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/bps-maintenance-values.php';
1897
- $pattern = '/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sIP\s*(.*)\s*#\sEND\sBPS\sMAINTENANCE\sMODE\sIP/';
1898
- # BPS .52.5: new pattern|new IfModule conditions
1899
- $pattern2 = '/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sIP\s*Order(.*)\s*(Allow(.*)\s*){1,}#\sEND\sBPS\sMAINTENANCE\sMODE\sIP/';
1900
- $pattern3 = '/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sIP(.*\s*){8}(Allow(.*)\s*){1,}<\/IfModule>\s*<\/IfModule>\s*#\sEND\sBPS\sMAINTENANCE\sMODE\sIP/';
1901
- $wpadminHtaccess = ABSPATH . 'wp-admin/.htaccess';
1902
- $permsHtaccess = substr(sprintf('%o', fileperms($wpadminHtaccess)), -4);
1903
- $MMindexMaster = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/maintenance-mode-index-MU.php';
 
1904
 
1905
- if ( $permsIndex == '0400') {
1906
- $lock = '0400';
1907
- }
1908
-
1909
- if ( substr($sapi_type, 0, 6) != 'apache' && $permsIndex != '0666' || $permsIndex != '0777') { // Windows IIS, XAMPP, etc
1910
- chmod($root_index_file, 0644);
1911
- }
1912
 
1913
- // Primary Network Site
1914
- if ( is_multisite() && $blog_id == 1 ) {
1915
-
1916
- $stringReplace = file_get_contents($MMindexMaster);
1917
 
1918
- if ( preg_match( '/#\sBEGIN\sPRIMARY\sSITE\sSTATUS\s*(.*)\s*#\sEND\sPRIMARY\sSITE\sSTATUS/', $stringReplace, $matches ) ) {
1919
-
1920
- $stringReplace = preg_replace( '/#\sBEGIN\sPRIMARY\sSITE\sSTATUS\s*(.*)\s*#\sEND\sPRIMARY\sSITE\sSTATUS/', "# BEGIN PRIMARY SITE STATUS\n\$primary_site_status = 'Off';\n# END PRIMARY SITE STATUS", $stringReplace);
1921
- }
1922
-
1923
- if ( file_put_contents($MMindexMaster, $stringReplace) ) {
1924
- copy( $MMindexMaster, $root_index_file );
1925
- copy( $bps_maintenance_values, $root_folder_maintenance_values );
1926
- }
1927
-
1928
- // Network Subsites
1929
- } else {
1930
-
1931
- if ( is_multisite() && is_subdomain_install() ) {
1932
-
1933
- $subsite_remove_slashes = str_replace( '.', "-", $current_blog->domain );
1934
- $subsite_replace_chars = str_replace( array( '.', '-' ), "_", $current_blog->domain );
1935
 
1936
- } else {
 
 
 
 
 
 
1937
 
1938
- $subsite_remove_slashes = str_replace( '/', "", $current_blog->path );
1939
- $subsite_replace_chars = str_replace( array( '/', '-' ), "_", $current_blog->path );
1940
- }
1941
-
1942
- $subsite_root_folder_maintenance = ABSPATH . 'bps-maintenance-'.$subsite_remove_slashes.'.php';
1943
- $subsite_root_folder_maintenance_values = ABSPATH . 'bps-maintenance-values-'.$subsite_remove_slashes.'.php';
1944
-
1945
- $stringReplace = file_get_contents($MMindexMaster);
1946
- //$subsite_subdomain_variable = str_replace( '.', "_", $current_blog->domain );
1947
 
1948
- if ( is_multisite() && ! is_subdomain_install() ) {
 
1949
 
1950
- if ( preg_match( '/\$'.$subsite_replace_chars.'_status = \'(.*)\';/', $stringReplace, $matches ) ) {
1951
-
1952
- $stringReplace = preg_replace( '/\$'.$subsite_replace_chars.'_status = \'(.*)\';/', "\$$subsite_replace_chars".'_status'." = 'Off';", $stringReplace);
1953
- }
1954
-
1955
- } else {
1956
-
1957
- if ( preg_match( '/\$'.$subsite_replace_chars.'_status = \'(.*)\';/', $stringReplace, $matches ) ) {
1958
-
1959
- $stringReplace = preg_replace( '/\$'.$subsite_replace_chars.'_status = \'(.*)\';/', "\$$subsite_replace_chars".'_status'." = 'Off';", $stringReplace);
1960
- }
1961
- }
1962
-
1963
- if ( file_put_contents($MMindexMaster, $stringReplace) ) {
1964
- copy( $MMindexMaster, $root_index_file );
1965
- }
1966
-
1967
- $delete_files = array( $subsite_root_folder_maintenance, $subsite_root_folder_maintenance_values );
1968
 
1969
- foreach ( $delete_files as $file ) {
1970
- if ( file_exists($file) ) {
1971
- unlink($file);
1972
- }
1973
- }
 
 
 
 
 
 
 
 
 
 
1974
  }
1975
 
1976
- if ( $lock == '0400') {
1977
- chmod($root_index_file, 0400);
 
 
 
 
 
 
 
 
1978
  }
1979
 
1980
- echo $bps_topDiv;
1981
- $text = '<font color="green"><strong>'.__('FrontEnd Maintenance Mode has been Turned Off.', 'bulletproof-security').'</strong></font>';
1982
- echo $text;
1983
- echo $bps_bottomDiv;
 
 
 
 
1984
 
1985
- // Network/GWIOD
1986
- $publicly_displayed_url = network_site_url();
1987
- $actual_wp_install_url = get_site_option('siteurl');
1988
- $gwiod_root_index_file_backup = WP_CONTENT_DIR . '/bps-backup/master-backups/backup_gwiod_index.php';
1989
- $gwiod_url = str_replace( $publicly_displayed_url, "", $actual_wp_install_url );
1990
- $gwiod_url_path = str_replace( '\\', '/', ABSPATH );
1991
- $gwiod_root_index_file = dirname( $gwiod_url_path ) . '/index.php';
1992
- $gwiod_permsIndex = substr(sprintf('%o', fileperms($gwiod_root_index_file)), -4);
1993
 
 
 
 
 
 
 
 
 
 
 
 
1994
  if ( $gwiod_permsIndex == '0400') {
1995
  $lock = '0400';
1996
  }
@@ -2004,14 +2021,14 @@ $MMindexMaster = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/maintenan
2004
  $gwiod_stringReplace = file_get_contents($gwiod_root_index_file);
2005
  }
2006
 
2007
- if ( !strpos($gwiod_stringReplace, "/$gwiod_urlbps-maintenance" ) ) {
2008
 
2009
- $gwiod_stringReplace = preg_replace('/\/bps-maintenance/', "/$gwiod_url".'bps-maintenance', $gwiod_stringReplace);
2010
  }
2011
 
2012
- if ( !strpos($gwiod_stringReplace, "/$gwiod_urlwp-blog-header" ) ) {
2013
 
2014
- $gwiod_stringReplace = preg_replace('/\/wp-blog-header/', "/$gwiod_url".'wp-blog-header', $gwiod_stringReplace);
2015
  }
2016
 
2017
  if ( file_put_contents($gwiod_root_index_file, $gwiod_stringReplace) ) {
@@ -2024,7 +2041,7 @@ $MMindexMaster = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/maintenan
2024
  // .53.6: htaccess Files Disabled
2025
  $HFiles_options = get_option('bulletproof_security_options_htaccess_files');
2026
 
2027
- if ( $HFiles_options['bps_htaccess_files'] == 'disabled' ) {
2028
  echo $bps_topDiv;
2029
  $text = '<font color="blue"><strong>'.__('htaccess Files Disabled: BackEnd Maintenance Mode is disabled.', 'bulletproof-security').'</strong></font>'.__('Click this link for help information: ', 'bulletproof-security').'<a href="https://forum.ait-pro.com/forums/topic/htaccess-files-disabled-setup-wizard-enable-disable-htaccess-files/" target="_blank" title="htaccess Files Disabled Forum Topic">'.__('htaccess Files Disabled Forum Topic', 'bulletproof-security').'</a><br>';
2030
  echo $text;
@@ -2032,41 +2049,41 @@ $MMindexMaster = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/maintenan
2032
 
2033
  } else {
2034
 
2035
- // wp-admin .htaccess
2036
- if ( is_multisite() && $blog_id == 1 && file_exists($wpadminHtaccess) ) {
2037
-
2038
- if ( $permsHtaccess == '0404') {
2039
- $lock = '0404';
2040
- }
 
 
 
 
2041
 
2042
- if ( substr($sapi_type, 0, 6) != 'apache' || $permsHtaccess != '0666' || $permsHtaccess != '0777') { // Windows IIS, XAMPP, etc
2043
- chmod($wpadminHtaccess, 0644);
2044
- }
 
 
 
2045
 
2046
- $stringReplace = file_get_contents($wpadminHtaccess);
2047
-
2048
- if ( preg_match( $pattern2, $stringReplace, $matches ) ) {
2049
-
2050
- $stringReplace = preg_replace( $pattern2, "", $stringReplace);
2051
- }
2052
-
2053
- if ( preg_match( $pattern3, $stringReplace, $matches ) ) {
 
 
2054
 
2055
- $stringReplace = preg_replace( $pattern3, "", $stringReplace );
2056
- }
2057
-
2058
- if ( file_put_contents($wpadminHtaccess, $stringReplace) ) {
2059
-
2060
- if ( $lock == '0404') {
2061
- chmod($wpadminHtaccess, 0404);
2062
  }
2063
-
2064
- echo $bps_topDiv;
2065
- $text = '<font color="green"><strong>'.__('BackEnd Maintenance Mode has been Turned Off.', 'bulletproof-security').'</strong></font>';
2066
- echo $text;
2067
- echo $bps_bottomDiv;
2068
- }
2069
- }
2070
  }
2071
  }
2072
 
181
  <?php
182
  $BPS_wpadmin_Options = get_option('bulletproof_security_options_htaccess_res');
183
 
184
+ if ( isset($BPS_wpadmin_Options['bps_wpadmin_restriction']) && $BPS_wpadmin_Options['bps_wpadmin_restriction'] == 'disabled' ) {
185
  $text = '<h3><strong><span style="font-size:1em;"><font color="blue">'.__('Notice: ', 'bulletproof-security').'</font></span><span style="font-size:.75em;">'.__('You have disabled wp-admin BulletProof Mode on the Security Modes page.', 'bulletproof-security').'<br>'.__('If you have Go Daddy "Managed WordPress Hosting" click this link: ', 'bulletproof-security').'<a href="https://forum.ait-pro.com/forums/topic/gdmw/" target="_blank" title="Link opens in a new Browser window">'.__('Go Daddy Managed WordPress Hosting', 'bulletproof-security').'</a>.</span></strong></h3>';
186
  echo $text;
187
  }
487
  // Get Real IP address & 3 Octets - USE EXTREME CAUTION!!!
488
  // Will display an IPv6 IP address as Current IP Address so not going to do anything additional with that for now
489
  function bps_get_proxy_real_ip_address_maint() {
490
+
491
+ if ( is_admin() && current_user_can('manage_options') ) {
492
+
493
+ $pattern = "/\d{1,3}\.\d{1,3}\.\d{1,3}\./";
494
+
495
+ if ( isset( $_SERVER['HTTP_CLIENT_IP'] ) ) {
496
+ $ip = esc_html( $_SERVER['HTTP_CLIENT_IP'] );
497
+ $octets_ip = preg_match( $pattern, $_SERVER['HTTP_CLIENT_IP'], $matches );
498
+ echo '<font color="#2271b1" style="font-size:14px;"><strong>'.__('Your Current IP Address: ', 'bulletproof-security').$ip.'<br>'.__('Recommended IP Address: ', 'bulletproof-security');
499
+ print_r($matches[0]);
500
+ echo '</strong></font><br>';
501
+
502
+ } elseif ( isset( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) {
503
+ $ip = esc_html( $_SERVER['HTTP_X_FORWARDED_FOR'] );
504
+ $octets_ip = preg_match( $pattern, $_SERVER['HTTP_X_FORWARDED_FOR'], $matches );
505
+ echo '<font color="#2271b1" style="font-size:14px;"><strong>'.__('Your Current IP Address: ', 'bulletproof-security').$ip.'<br>'.__('Recommended IP Address: ', 'bulletproof-security');
506
+ print_r($matches[0]);
507
+ echo '</strong></font><br>';
508
+
509
+ } elseif ( isset( $_SERVER['REMOTE_ADDR'] ) ) {
510
+ $ip = esc_html( $_SERVER['REMOTE_ADDR'] );
511
+ $octets_ip = preg_match( $pattern, $_SERVER['REMOTE_ADDR'], $matches );
512
+ echo '<font color="#2271b1" style="font-size:14px;"><strong>'.__('Your Current IP Address: ', 'bulletproof-security').$ip.'<br>'.__('Recommended IP Address: ', 'bulletproof-security');
513
+ print_r($matches[0]);
514
+ echo '</strong></font><br>';
515
+ }
516
  }
 
517
  }
518
  ?>
519
 
748
  <form name="MaintenanceModePreview" method="post" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/maintenance/maintenance.php' ); ?>" target="" onSubmit="window.open('<?php echo plugins_url('/bulletproof-security/admin/htaccess/bps-maintenance-'.$subsite_remove_slashes.'.php'); ?>','popup','width=+window.innerWidth,height=+ window.innerHeight,scrollbars=yes,menubar=yes,resizable=yes,status=yes,toolbar=yes')">
749
  <?php wp_nonce_field('bulletproof_security_maintenance_preview'); ?>
750
 
751
+ <p class="submit" style="float:left;margin:5px 10px 0px -16px;">
752
  <input type="submit" name="maintenance-mode-preview-submit" class="button bps-button" style="width:72px;height:auto;white-space:normal" value="<?php esc_attr_e('Preview', 'bulletproof-security') ?>" />
753
+ </p>
754
  </form>
755
 
756
  <?php } else { ?>
757
 
758
  <form name="MaintenanceModePreview" method="post" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/maintenance/maintenance.php' ); ?>" target="" onSubmit="window.open('<?php echo plugins_url('/bulletproof-security/admin/htaccess/bps-maintenance.php'); ?>','popup','width=+window.innerWidth,height=+ window.innerHeight,scrollbars=yes,menubar=yes,resizable=yes,status=yes,toolbar=yes')">
759
  <?php wp_nonce_field('bulletproof_security_maintenance_preview'); ?>
760
+
761
  <p class="submit" style="float:left;margin:5px 10px 0px -16px;">
762
  <input type="submit" name="maintenance-mode-preview-submit" class="button bps-button" style="width:72px;height:auto;white-space:normal" value="<?php esc_attr_e('Preview', 'bulletproof-security') ?>" />
763
  </p>
786
  function bpsPro_mmode_single_gwiod_turn_on() {
787
  global $bps_topDiv, $bps_bottomDiv;
788
 
789
+ $MMoptions = get_option('bulletproof_security_options_maint_mode');
790
+ $root_index_file = ABSPATH . 'index.php';
791
+ $permsIndex = substr(sprintf('%o', fileperms($root_index_file)), -4);
792
+ $sapi_type = php_sapi_name();
793
+ $root_index_file_backup = WP_CONTENT_DIR . '/bps-backup/master-backups/backup_index.php';
794
+ $MMindexMaster = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/maintenance-mode-index.php';
795
+ $bps_maintenance_file = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/bps-maintenance.php';
796
+ $bps_maintenance_values = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/bps-maintenance-values.php';
797
+ $root_folder_maintenance = ABSPATH . 'bps-maintenance.php';
798
+ $root_folder_maintenance_values = ABSPATH . 'bps-maintenance-values.php';
799
+ $pattern = '/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sIP\s*(.*)\s*#\sEND\sBPS\sMAINTENANCE\sMODE\sIP/';
800
+ $format_error_1 = '/,(\s){2,20}/'; // 2 to 20 extra whitespaces
801
+ $format_error_2 = '/,[^\s]/'; // no whitespaces between commas
802
+ $lock = '';
803
 
804
  if ( $MMoptions['bps_maint_ip_allowed'] == '' ) {
805
  echo $bps_topDiv;
834
 
835
  $stringReplace = file_get_contents($MMindexMaster);
836
 
837
+ if ( preg_match($pattern, $stringReplace, $matches ) ) {
838
+
839
+ $stringReplace = preg_replace('/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sIP\s*(.*)\s*#\sEND\sBPS\sMAINTENANCE\sMODE\sIP/', "# BEGIN BPS MAINTENANCE MODE IP\n".'$bps_maintenance_ip'." = array('".str_replace(', ', "', '", $MMoptions['bps_maint_ip_allowed'])."');\n# END BPS MAINTENANCE MODE IP", $stringReplace);
840
+
841
+ if ( file_put_contents($MMindexMaster, $stringReplace) ) {
842
+
843
+ if ( $permsIndex == '0400') {
844
+ $lock = '0400';
845
+ }
846
+
847
+ if ( substr($sapi_type, 0, 6) != 'apache' && $permsIndex != '0666' || $permsIndex != '0777') { // Windows IIS, XAMPP, etc
848
+ chmod($root_index_file, 0644);
849
+ }
850
+
851
+ $index_contents = file_get_contents($root_index_file);
852
+
853
+ // First click Turn On: backup the WP root index.php file. Second... click Turn On: do not backup the index.php file to master-backups again
854
+ if ( ! strpos($index_contents, "BPS MAINTENANCE MODE IP") ) {
855
+ copy( $root_index_file, $root_index_file_backup );
856
+ }
857
+
858
+ // first, second, third clicks...
859
+ copy($bps_maintenance_values, $root_folder_maintenance_values);
860
 
861
+ // first click only, but someone may want to modify the Master mmode template file so copy it again
862
+ copy($bps_maintenance_file, $root_folder_maintenance);
863
+
864
+ // first, second, third clicks...
865
+ copy($MMindexMaster, $root_index_file);
 
 
 
 
 
 
 
 
 
866
 
867
+ echo $bps_topDiv;
868
+ $text = '<font color="green"><strong>'.__('FrontEnd Maintenance Mode has been Turned On.', 'bulletproof-security').'</strong></font>';
869
+ echo $text;
870
+ echo $bps_bottomDiv;
871
+
872
+ if ( $lock == '0400') {
873
+ chmod($root_index_file, 0400);
874
+ }
 
 
 
 
 
 
 
 
875
  }
876
  }
 
877
  } // end if ( $MMoptions['bps_maint_ip_allowed'] != '' && $MMoptions['bps_maint_frontend'] == '1' ) {
878
 
879
  // Backend Maintenance Mode
881
  // .53.6: htaccess Files Disabled
882
  $HFiles_options = get_option('bulletproof_security_options_htaccess_files');
883
 
884
+ if ( isset($HFiles_options['bps_htaccess_files']) && $HFiles_options['bps_htaccess_files'] == 'disabled' ) {
885
  echo $bps_topDiv;
886
  $text = '<font color="blue"><strong>'.__('htaccess Files Disabled: BackEnd Maintenance Mode is disabled.', 'bulletproof-security').'</strong></font>'.__('Click this link for help information: ', 'bulletproof-security').'<a href="https://forum.ait-pro.com/forums/topic/htaccess-files-disabled-setup-wizard-enable-disable-htaccess-files/" target="_blank" title="htaccess Files Disabled Forum Topic">'.__('htaccess Files Disabled Forum Topic', 'bulletproof-security').'</a><br>';
887
  echo $text;
889
 
890
  } else {
891
 
892
+ if ( isset($MMoptions['bps_maint_backend']) && $MMoptions['bps_maint_backend'] != '1' ) {
893
+ bpsPro_mmode_single_gwiod_turn_off_backend();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
894
  }
895
+
896
+ $MMAllowFromTXT = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/maintenance-mode.txt';
897
+ $wpadminHtaccess = ABSPATH . 'wp-admin/.htaccess';
898
+ $permsHtaccess = substr(sprintf('%o', fileperms($wpadminHtaccess)), -4);
899
+ $sapi_type = php_sapi_name();
900
+ # BPS .52.5: new pattern|new IfModule conditions
901
+ $pattern2 = '/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sIP\s*Order(.*)\s*(Allow(.*)\s*){1,}#\sEND\sBPS\sMAINTENANCE\sMODE\sIP/';
902
+ $pattern3 = '/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sIP(.*\s*){8}(Allow(.*)\s*){1,}<\/IfModule>\s*<\/IfModule>\s*#\sEND\sBPS\sMAINTENANCE\sMODE\sIP/';
903
+ $Apache_Mod_options = get_option('bulletproof_security_options_apache_modules');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
904
 
905
+ if ( isset($MMoptions['bps_maint_ip_allowed']) && $MMoptions['bps_maint_ip_allowed'] != '' && isset($MMoptions['bps_maint_backend']) && $MMoptions['bps_maint_backend'] == '1' ) {
906
+
907
+ if ( $permsHtaccess == '0404') {
908
+ $lock = '0404';
909
+ }
910
+
911
+ if ( substr($sapi_type, 0, 6) != 'apache' || $permsHtaccess != '0666' || $permsHtaccess != '0777') { // Windows IIS, XAMPP, etc
912
+ chmod($wpadminHtaccess, 0644);
913
+ }
914
+
915
+ $wpadmin_allow_from = array_filter( explode(', ', trim( $MMoptions['bps_maint_ip_allowed'], ", \t\n\r") ) );
916
+ $allow_whiteList = array();
917
+
918
+ foreach ( $wpadmin_allow_from as $allow_Key => $allow_Value ) {
919
+ $allow_whiteList[] = 'Allow from '.$allow_Value."\n";
920
+ file_put_contents($MMAllowFromTXT, $allow_whiteList);
921
+ }
922
+
923
+ $AllowFromRules = file_get_contents($MMAllowFromTXT);
924
+ $stringReplace = file_get_contents($wpadminHtaccess);
925
+
926
+ if ( $Apache_Mod_options['bps_apache_mod_ifmodule'] == 'Yes' ) {
927
+
928
+ if ( ! preg_match( $pattern3, $stringReplace, $matches ) ) {
929
+
930
+ $stringReplace = "\n# BEGIN BPS MAINTENANCE MODE IP\n<IfModule mod_authz_core.c>\nRequire ip ".str_replace( array( ',', ", ", ", "), "", $MMoptions['bps_maint_ip_allowed'])."\n</IfModule>\n\n<IfModule !mod_authz_core.c>\n<IfModule mod_access_compat.c>\nOrder Allow,Deny\n" . $AllowFromRules . "</IfModule>\n</IfModule>\n# END BPS MAINTENANCE MODE IP";
931
+
932
+ file_put_contents($wpadminHtaccess, $stringReplace, FILE_APPEND | LOCK_EX);
933
+
934
+ } else {
935
+
936
+ $stringReplace = preg_replace( $pattern3, "# BEGIN BPS MAINTENANCE MODE IP\n<IfModule mod_authz_core.c>\nRequire ip ".str_replace( array( ',', ", ", ", "), "", $MMoptions['bps_maint_ip_allowed'])."\n</IfModule>\n\n<IfModule !mod_authz_core.c>\n<IfModule mod_access_compat.c>\nOrder Allow,Deny\n" . $AllowFromRules . "</IfModule>\n</IfModule>\n# END BPS MAINTENANCE MODE IP", $stringReplace);
937
+
938
+ file_put_contents($wpadminHtaccess, $stringReplace);
939
+ }
940
+
941
+ } else { // IfModule No and any other coditions
942
+
943
+ if ( ! preg_match( $pattern2, $stringReplace, $matches ) ) {
944
+
945
+ $stringReplace = "\n# BEGIN BPS MAINTENANCE MODE IP\nOrder Allow,Deny\n" . $AllowFromRules . "# END BPS MAINTENANCE MODE IP";
946
+ file_put_contents($wpadminHtaccess, $stringReplace, FILE_APPEND | LOCK_EX);
947
+
948
+ } else {
949
+
950
+ $stringReplace = preg_replace('/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sIP\s*Order(.*)\s*(Allow(.*)\s*){1,}#\sEND\sBPS\sMAINTENANCE\sMODE\sIP/', "# BEGIN BPS MAINTENANCE MODE IP\nOrder Allow,Deny\n" . $AllowFromRules . "# END BPS MAINTENANCE MODE IP", $stringReplace);
951
+
952
+ file_put_contents($wpadminHtaccess, $stringReplace);
953
+ }
954
+ }
955
 
956
+ if ( $lock == '0404') {
957
+ chmod($wpadminHtaccess, 0404);
958
+ }
959
+
960
+ echo $bps_topDiv;
961
+ $text = '<font color="green"><strong>'.__('BackEnd Maintenance Mode has been Turned On.', 'bulletproof-security').'</strong></font>';
962
+ echo $text;
963
+ echo $bps_bottomDiv;
964
+ }
965
  }
966
  }
967
 
970
  function bpsPro_mmode_network_turn_on() {
971
  global $current_blog, $blog_id, $bps_topDiv, $bps_bottomDiv;
972
 
973
+ $MMoptions = get_option('bulletproof_security_options_maint_mode');
974
+ $root_index_file = ABSPATH . 'index.php';
975
+ $permsIndex = substr(sprintf('%o', fileperms($root_index_file)), -4);
976
+ $sapi_type = php_sapi_name();
977
+ $root_index_file_backup = WP_CONTENT_DIR . '/bps-backup/master-backups/backup_index.php';
978
+ $MMindexMaster = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/maintenance-mode-index-MU.php';
979
+ $lock = '';
980
+
981
+ // Primary Site
982
+ $bps_maintenance_file = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/bps-maintenance.php';
983
+ $bps_maintenance_values = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/bps-maintenance-values.php';
984
+ $root_folder_maintenance = ABSPATH . 'bps-maintenance.php';
985
+ $root_folder_maintenance_values = ABSPATH . 'bps-maintenance-values.php';
986
+
987
+ // Subsites
988
  if ( is_multisite() && is_subdomain_install() ) {
989
 
990
  $subsite_remove_slashes = str_replace( '.', "-", $current_blog->domain );
996
  $subsite_replace_chars = str_replace( array( '/', '-' ), "_", $current_blog->path );
997
  }
998
 
999
+ $subsite_maintenance_file = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/bps-maintenance-'.$subsite_remove_slashes.'.php';
1000
+ $subsite_maintenance_values = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/bps-maintenance-values-'.$subsite_remove_slashes.'.php';
1001
+ $subsite_root_folder_maintenance = ABSPATH . 'bps-maintenance-'.$subsite_remove_slashes.'.php';
1002
+ $subsite_root_folder_maintenance_values = ABSPATH . 'bps-maintenance-values-'.$subsite_remove_slashes.'.php';
1003
+
1004
+ // Regex
1005
+ $subsite_case_pattern = '/#\sBEGIN\s'.$subsite_replace_chars.'\sCASE\s*((.*)\s*){13}break;\s*#\sEND\s'.$subsite_replace_chars.'\sCASE/';
1006
+ $subsite_case_ip_pattern = '/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\s'.$subsite_replace_chars.'\sIP\s*(.*)\s*#\sEND\sBPS\sMAINTENANCE\sMODE\s'.$subsite_replace_chars.'\sIP/';
1007
+ $primary_site_ip_pattern = '/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sPRIMARY\sIP\s*(.*)\s*#\sEND\sBPS\sMAINTENANCE\sMODE\sPRIMARY\sIP/';
1008
+
1009
+ // Error Checks
1010
+ $format_error_1 = '/,(\s){2,20}/'; // 2 to 20 extra whitespaces
1011
+ $format_error_2 = '/,[^\s]/'; // no whitespaces between commas
1012
 
1013
  if ( $MMoptions['bps_maint_ip_allowed'] == '' ) {
1014
  echo $bps_topDiv;
1038
  if ( $MMoptions['bps_maint_ip_allowed'] != '' && $MMoptions['bps_maint_frontend'] == '1' ) {
1039
 
1040
  // backup the original WP root index.php file ONLY once the first time mmode is turned On and never again.
1041
+ if ( ! file_exists($root_index_file_backup) ) {
1042
  copy( $root_index_file, $root_index_file_backup );
1043
  }
1044
 
1045
+ // Primary Network Site
1046
+ if ( is_multisite() && $blog_id == 1 ) {
 
 
 
 
 
 
1047
 
1048
+ $stringReplace = file_get_contents($MMindexMaster);
1049
+
1050
+ if ( preg_match( '/#\sBEGIN\sPRIMARY\sSITE\sSTATUS\s*(.*)\s*#\sEND\sPRIMARY\sSITE\sSTATUS/', $stringReplace, $matches ) ) {
1051
+ $stringReplace = preg_replace( '/#\sBEGIN\sPRIMARY\sSITE\sSTATUS\s*(.*)\s*#\sEND\sPRIMARY\sSITE\sSTATUS/', "# BEGIN PRIMARY SITE STATUS\n\$primary_site_status = 'On';\n# END PRIMARY SITE STATUS", $stringReplace);
1052
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1053
 
1054
+ if ( is_subdomain_install() && preg_match( '/switch\s\(\s\$_SERVER\[\'REQUEST_URI\'\]\s\)\s\{/', $stringReplace, $matches ) ) {
1055
+ $stringReplace = preg_replace( '/switch\s\(\s\$_SERVER\[\'REQUEST_URI\'\]\s\)\s\{/', 'switch ( $subdomain ) {', $stringReplace);
 
 
 
 
 
 
 
 
 
 
1056
  }
 
 
 
 
 
 
 
 
1057
 
1058
+ if ( preg_match( $primary_site_ip_pattern, $stringReplace, $matches ) ) {
1059
+
1060
+ $stringReplace = preg_replace('/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sPRIMARY\sIP\s*(.*)\s*#\sEND\sBPS\sMAINTENANCE\sMODE\sPRIMARY\sIP/', "# BEGIN BPS MAINTENANCE MODE PRIMARY IP\n ".'$bps_maintenance_ip'." = array('".str_replace(', ', "', '", $MMoptions['bps_maint_ip_allowed'])."');\n # END BPS MAINTENANCE MODE PRIMARY IP", $stringReplace);
1061
+
1062
+ if ( file_put_contents($MMindexMaster, $stringReplace) ) {
1063
+
1064
+ if ( $permsIndex == '0400') {
1065
+ $lock = '0400';
1066
+ }
1067
+
1068
+ if ( substr($sapi_type, 0, 6) != 'apache' && $permsIndex != '0666' || $permsIndex != '0777') { // Windows IIS, XAMPP, etc
1069
+ chmod($root_index_file, 0644);
1070
+ }
1071
 
1072
+ copy($bps_maintenance_values, $root_folder_maintenance_values);
1073
+ copy($bps_maintenance_file, $root_folder_maintenance);
1074
+ copy($MMindexMaster, $root_index_file);
1075
+
1076
+ echo $bps_topDiv;
1077
+ $text = '<font color="green"><strong>'.__('FrontEnd Maintenance Mode has been Turned On.', 'bulletproof-security').'</strong></font>';
1078
+ echo $text;
1079
+ echo $bps_bottomDiv;
1080
+
1081
+ // Network GWIOD Site type - process this function after the new index file has been created with file_put_contents
1082
+ if ( network_site_url() != get_site_option('siteurl') ) {
1083
+ bpsPro_mmode_network_gwiod_site_root_index_file_on();
1084
+ }
1085
+
1086
+ if ( $lock == '0400') {
1087
+ chmod($root_index_file, 0400);
1088
+ }
1089
+ }
1090
+ }
1091
 
1092
+ /** Network/Multisite Subsites **/
1093
+ // Up to this point / after Save Options for subsites:
1094
+ // subsite values and maintenance files have been created & the subsite include: bps-maintenance-values-{subsite-uri}.php
1095
+ // has been created in the subsite maintenance file: bps-maintenance-{subsite-uri}.php
1096
+ // the same index master file is used for all sites, each subsite will string replace its ip address array and copy the index file to the root folder again
1097
 
1098
+ } else {
1099
+
1100
+ $stringReplace = file_get_contents($MMindexMaster);
1101
+ @$subsite_subdomain_var_value = array_shift( explode( "." , str_replace( 'www.', "", $current_blog->domain ) ) );
 
 
 
 
1102
 
1103
+ if ( is_multisite() && ! is_subdomain_install() ) {
 
1104
 
1105
+ // Subdirectory site type: Create or update the subsite Status variable with value On in maintenance-mode-index-MU.php
1106
+ if ( ! preg_match( '/\$'.$subsite_replace_chars.'_status = \'(.*)\';/', $stringReplace, $matches ) ) {
1107
+
1108
+ $stringReplace = preg_replace('/#\sEND\sSUBSITE\sSTATUS/', "\$$subsite_replace_chars".'_status'." = 'On';\n# END SUBSITE STATUS", $stringReplace);
1109
 
1110
+ } else {
 
1111
 
1112
+ $stringReplace = preg_replace( '/\$'.$subsite_remove_slashes.'_status = \'(.*)\';/', "\$$subsite_remove_slashes".'_status'." = 'On';", $stringReplace);
1113
+ }
1114
+
1115
+ // Create the subsite URI in maintenance-mode-index-MU.php if it does not already exist
1116
+ if ( ! preg_match( '/\$'.$subsite_remove_slashes.' = \'\/'.$subsite_remove_slashes.'\/\';/', $stringReplace, $matches ) ) {
1117
 
1118
+ $stringReplace = preg_replace('/#\sEND\sSUBSITE\sURI/', "\$$subsite_replace_chars = '$current_blog->path';\n# END SUBSITE URI", $stringReplace);
1119
+ }
1120
 
1121
+ // Create a new subsite Switch case in maintenance-mode-index-MU.php if it does not already exist
1122
+ if ( ! preg_match($subsite_case_pattern, $stringReplace, $matches ) ) {
1123
+
1124
+ $stringReplace = preg_replace('/default:(\s*(.*)){5}\s*#\sEND\sBPS\sSWITCH\s*\}/', "# BEGIN $subsite_replace_chars CASE\n case \$$subsite_replace_chars:\n # BEGIN BPS MAINTENANCE MODE $subsite_replace_chars IP\n \$bps_maintenance_ip = array('127.0.0.1');\n # END BPS MAINTENANCE MODE $subsite_replace_chars IP\n if ( \$all_sites == '1' || \$all_subsites == '1' ) {\n require( dirname( __FILE__ ) . '/bps-maintenance.php' );\n } else {\n if ( in_array( \$_SERVER['REMOTE_ADDR'], \$bps_maintenance_ip ) || in_array( \$matches_three[0], \$bps_maintenance_ip ) || in_array( \$matches_two[0], \$bps_maintenance_ip ) || in_array( \$matches_one[0], \$bps_maintenance_ip ) || \$$subsite_replace_chars".'_status'." == 'Off' ) {\n require( dirname( __FILE__ ) . '/wp-blog-header.php' );\n } else {\n require( dirname( __FILE__ ) . '/bps-maintenance-$subsite_remove_slashes.php' );\n }\n }\n break;\n # END $subsite_replace_chars CASE\n default:\n if ( \$all_sites == '1' || \$all_subsites == '1' ) {\n require( dirname( __FILE__ ) . '/bps-maintenance.php' );\n } else {\n require( dirname( __FILE__ ) . '/wp-blog-header.php' );\n }\n # END BPS SWITCH\n }", $stringReplace );
1125
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1126
 
1127
+ } else {
1128
+
1129
+ // Subdomain site type: Create or update the subsite Status variable with value On in maintenance-mode-index-MU.php
1130
+ if ( ! preg_match( '/\$'.$subsite_replace_chars.'_status = \'(.*)\';/', $stringReplace, $matches ) ) {
1131
 
1132
+ $stringReplace = preg_replace('/#\sEND\sSUBSITE\sSTATUS/', "\$$subsite_replace_chars".'_status'." = 'On';\n# END SUBSITE STATUS", $stringReplace);
 
 
1133
 
1134
+ } else {
1135
+
1136
+ $stringReplace = preg_replace( '/\$'.$subsite_replace_chars.'_status = \'(.*)\';/', "\$$subsite_replace_chars".'_status'." = 'On';", $stringReplace);
1137
+ }
 
 
 
 
 
1138
 
1139
+ // Create the subsite root domain in maintenance-mode-index-MU.php if it does not already exist
1140
+ if ( ! preg_match( '/\$'.$subsite_replace_chars.' = \''.$subsite_subdomain_var_value.'\';/', $stringReplace, $matches ) ) {
 
 
1141
 
1142
+ $stringReplace = preg_replace('/#\sEND\sSUBSITE\sURI/', "\$$subsite_replace_chars = '$subsite_subdomain_var_value';\n# END SUBSITE URI", $stringReplace);
1143
+ }
 
 
1144
 
1145
+ // Create the HTTP_HOST based switch condition instead of REQUEST_URI
1146
+ if ( preg_match( '/switch\s\(\s\$_SERVER\[\'REQUEST_URI\'\]\s\)\s\{/', $stringReplace, $matches ) ) {
1147
+ $stringReplace = preg_replace( '/switch\s\(\s\$_SERVER\[\'REQUEST_URI\'\]\s\)\s\{/', 'switch ( $subdomain ) {', $stringReplace);
1148
+ }
1149
+
1150
+ // Create a new subsite Switch case in maintenance-mode-index-MU.php if it does not already exist
1151
+ if ( ! preg_match( $subsite_case_pattern, $stringReplace, $matches ) ) {
1152
+
1153
+ $stringReplace = preg_replace('/default:(\s*(.*)){5}\s*#\sEND\sBPS\sSWITCH\s*\}/', "# BEGIN $subsite_replace_chars CASE\n case \$$subsite_replace_chars:\n # BEGIN BPS MAINTENANCE MODE $subsite_replace_chars IP\n \$bps_maintenance_ip = array('127.0.0.1');\n # END BPS MAINTENANCE MODE $subsite_replace_chars IP\n if ( \$all_sites == '1' || \$all_subsites == '1' ) {\n require( dirname( __FILE__ ) . '/bps-maintenance.php' );\n } else {\n if ( in_array( \$_SERVER['REMOTE_ADDR'], \$bps_maintenance_ip ) || in_array( \$matches_three[0], \$bps_maintenance_ip ) || in_array( \$matches_two[0], \$bps_maintenance_ip ) || in_array( \$matches_one[0], \$bps_maintenance_ip ) || \$$subsite_replace_chars".'_status'." == 'Off' ) {\n require( dirname( __FILE__ ) . '/wp-blog-header.php' );\n } else {\n require( dirname( __FILE__ ) . '/bps-maintenance-$subsite_remove_slashes.php' );\n }\n }\n break;\n # END $subsite_replace_chars CASE\n default:\n if ( \$all_sites == '1' || \$all_subsites == '1' ) {\n require( dirname( __FILE__ ) . '/bps-maintenance.php' );\n } else {\n require( dirname( __FILE__ ) . '/wp-blog-header.php' );\n }\n # END BPS SWITCH\n }", $stringReplace );
1154
+ }
1155
+ }
1156
+
1157
+ // Create the subsite IP addresses array in maintenance-mode-index-MU.php
1158
+ if ( preg_match( $subsite_case_ip_pattern, $stringReplace, $matches ) ) {
1159
+
1160
+ $stringReplace = preg_replace( $subsite_case_ip_pattern, "# BEGIN BPS MAINTENANCE MODE $subsite_replace_chars IP\n ".'$bps_maintenance_ip'." = array('".str_replace(', ', "', '", $MMoptions['bps_maint_ip_allowed'])."');\n # END BPS MAINTENANCE MODE $subsite_replace_chars IP", $stringReplace);
1161
+
1162
+ if ( file_put_contents($MMindexMaster, $stringReplace) ) {
1163
+
1164
+ if ( $permsIndex == '0400') {
1165
+ $lock = '0400';
1166
+ }
1167
+
1168
+ if ( substr($sapi_type, 0, 6) != 'apache' && $permsIndex != '0666' || $permsIndex != '0777') { // Windows IIS, XAMPP, etc
1169
+ chmod($root_index_file, 0644);
1170
+ }
1171
+
1172
+ copy($subsite_maintenance_values, $subsite_root_folder_maintenance_values);
1173
+ copy($bps_maintenance_values, $root_folder_maintenance_values);
1174
+ copy($subsite_maintenance_file, $subsite_root_folder_maintenance);
1175
+ copy($bps_maintenance_file, $root_folder_maintenance);
1176
+ copy($MMindexMaster, $root_index_file);
1177
+
1178
+ echo $bps_topDiv;
1179
+ $text = '<font color="green"><strong>'.__('FrontEnd Maintenance Mode has been Turned On.', 'bulletproof-security').'</strong></font>';
1180
+ echo $text;
1181
+ echo $bps_bottomDiv;
1182
+
1183
+ // Network GWIOD Site type - process this function after the new index file has been created with file_put_contents
1184
+ if ( network_site_url() != get_site_option('siteurl') ) {
1185
+ bpsPro_mmode_network_gwiod_site_root_index_file_on();
1186
+ }
1187
+
1188
+ if ( $lock == '0400') {
1189
+ chmod($root_index_file, 0400);
1190
+ }
1191
+ }
1192
  }
1193
+ }
 
 
1194
  } // end if ( $MMoptions['bps_maint_ip_allowed'] != '' && $MMoptions['bps_maint_frontend'] == '1' ) {
1195
 
1196
  // Backend Maintenance Mode - Primary Site ONLY - subsites do not have this option available
1198
  // .53.6: htaccess Files Disabled
1199
  $HFiles_options = get_option('bulletproof_security_options_htaccess_files');
1200
 
1201
+ if ( isset($HFiles_options['bps_htaccess_files']) && $HFiles_options['bps_htaccess_files'] == 'disabled' ) {
1202
  echo $bps_topDiv;
1203
  $text = '<font color="blue"><strong>'.__('htaccess Files Disabled: BackEnd Maintenance Mode is disabled.', 'bulletproof-security').'</strong></font>'.__('Click this link for help information: ', 'bulletproof-security').'<a href="https://forum.ait-pro.com/forums/topic/htaccess-files-disabled-setup-wizard-enable-disable-htaccess-files/" target="_blank" title="htaccess Files Disabled Forum Topic">'.__('htaccess Files Disabled Forum Topic', 'bulletproof-security').'</a><br>';
1204
  echo $text;
1206
 
1207
  } else {
1208
 
1209
+ if ( is_multisite() && $blog_id == 1 ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
1210
 
1211
+ if ( isset($MMoptions['bps_maint_backend']) && $MMoptions['bps_maint_backend'] != '1' ) {
1212
+ bpsPro_mmode_single_gwiod_turn_off_backend();
1213
+ }
1214
+
1215
+ $MMAllowFromTXT = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/maintenance-mode.txt';
1216
+ $wpadminHtaccess = ABSPATH . 'wp-admin/.htaccess';
1217
+ $permsHtaccess = substr(sprintf('%o', fileperms($wpadminHtaccess)), -4);
1218
+ $sapi_type = php_sapi_name();
1219
+ # BPS .52.5: new pattern|new IfModule conditions
1220
+ $pattern2 = '/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sIP\s*Order(.*)\s*(Allow(.*)\s*){1,}#\sEND\sBPS\sMAINTENANCE\sMODE\sIP/';
1221
+ $pattern3 = '/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sIP(.*\s*){8}(Allow(.*)\s*){1,}<\/IfModule>\s*<\/IfModule>\s*#\sEND\sBPS\sMAINTENANCE\sMODE\sIP/';
1222
+ $Apache_Mod_options = get_option('bulletproof_security_options_apache_modules');
1223
+
1224
+ if ( $MMoptions['bps_maint_ip_allowed'] != '' && $MMoptions['bps_maint_backend'] == '1' ) {
1225
 
1226
+ if ( $permsHtaccess == '0404') {
1227
+ $lock = '0404';
1228
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1229
 
1230
+ if ( substr($sapi_type, 0, 6) != 'apache' || $permsHtaccess != '0666' || $permsHtaccess != '0777') { // Windows IIS, XAMPP, etc
1231
+ chmod($wpadminHtaccess, 0644);
1232
+ }
 
 
 
1233
 
1234
+ $wpadmin_allow_from = array_filter( explode(', ', trim( $MMoptions['bps_maint_ip_allowed'], ", \t\n\r") ) );
1235
+ $allow_whiteList = array();
1236
 
1237
+ foreach ( $wpadmin_allow_from as $allow_Key => $allow_Value ) {
1238
+ $allow_whiteList[] = 'Allow from '.$allow_Value."\n";
1239
+ file_put_contents($MMAllowFromTXT, $allow_whiteList);
1240
+ }
1241
+
1242
+ $AllowFromRules = file_get_contents($MMAllowFromTXT);
1243
+ $stringReplace = file_get_contents($wpadminHtaccess);
1244
+
1245
+ if ( $Apache_Mod_options['bps_apache_mod_ifmodule'] == 'Yes' ) {
1246
+
1247
+ if ( ! preg_match( $pattern3, $stringReplace, $matches ) ) {
1248
+
1249
+ $stringReplace = "\n# BEGIN BPS MAINTENANCE MODE IP\n<IfModule mod_authz_core.c>\nRequire ip ".str_replace( array( ',', ", ", ", "), "", $MMoptions['bps_maint_ip_allowed'])."\n</IfModule>\n\n<IfModule !mod_authz_core.c>\n<IfModule mod_access_compat.c>\nOrder Allow,Deny\n" . $AllowFromRules . "</IfModule>\n</IfModule>\n# END BPS MAINTENANCE MODE IP";
1250
+
1251
+ file_put_contents($wpadminHtaccess, $stringReplace, FILE_APPEND | LOCK_EX);
1252
+
1253
+ } else {
1254
+
1255
+ $stringReplace = preg_replace( $pattern3, "# BEGIN BPS MAINTENANCE MODE IP\n<IfModule mod_authz_core.c>\nRequire ip ".str_replace( array( ',', ", ", ", "), "", $MMoptions['bps_maint_ip_allowed'])."\n</IfModule>\n\n<IfModule !mod_authz_core.c>\n<IfModule mod_access_compat.c>\nOrder Allow,Deny\n" . $AllowFromRules . "</IfModule>\n</IfModule>\n# END BPS MAINTENANCE MODE IP", $stringReplace);
1256
+
1257
+ file_put_contents($wpadminHtaccess, $stringReplace);
1258
+ }
1259
+
1260
+ } else { // IfModule No and any other coditions
1261
+
1262
+ if ( ! preg_match( $pattern2, $stringReplace, $matches ) ) {
1263
+
1264
+ $stringReplace = "\n# BEGIN BPS MAINTENANCE MODE IP\nOrder Allow,Deny\n".$AllowFromRules."# END BPS MAINTENANCE MODE IP";
1265
+ file_put_contents($wpadminHtaccess, $stringReplace, FILE_APPEND | LOCK_EX);
1266
+
1267
+ } else {
1268
+
1269
+ $stringReplace = preg_replace('/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sIP\s*Order(.*)\s*(Allow(.*)\s*){1,}#\sEND\sBPS\sMAINTENANCE\sMODE\sIP/', "# BEGIN BPS MAINTENANCE MODE IP\nOrder Allow,Deny\n".$AllowFromRules."# END BPS MAINTENANCE MODE IP", $stringReplace);
1270
+
1271
+ file_put_contents($wpadminHtaccess, $stringReplace);
1272
+ }
1273
+ }
1274
+
1275
+ if ( $lock == '0404') {
1276
+ chmod($wpadminHtaccess, 0404);
1277
+ }
1278
 
1279
+ echo $bps_topDiv;
1280
+ $text = '<font color="green"><strong>'.__('BackEnd Maintenance Mode has been Turned On.', 'bulletproof-security').'</strong></font>';
1281
+ echo $text;
1282
+ echo $bps_bottomDiv;
1283
+ }
1284
  }
 
 
 
 
 
 
 
 
 
 
 
1285
  }
1286
  }
1287
 
1352
  function bpsPro_mmode_gwiod_site_root_index_file_on() {
1353
  global $bps_topDiv, $bps_bottomDiv;
1354
 
1355
+ $MMoptions = get_option('bulletproof_security_options_maint_mode');
1356
+ $publicly_displayed_url = get_option('home');
1357
+ $actual_wp_install_url = get_option('siteurl');
1358
+ $gwiod_MMindexMaster = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/maintenance-mode-index-GWIOD.php';
1359
+ $gwiod_pattern = '/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sGWIOD\s*require(.*)\s*\}(.*)\s*require(.*)\s*\}\s*#\sEND\sBPS\sMAINTENANCE\sMODE\sGWIOD/';
1360
+ $gwiod_pattern_ip = '/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sIP\s*(.*)\s*#\sEND\sBPS\sMAINTENANCE\sMODE\sIP/';
1361
+ $lock = '';
1362
 
1363
  if ( $publicly_displayed_url != $actual_wp_install_url ) {
1364
 
1376
  echo $bps_bottomDiv;
1377
  return;
1378
 
1379
+ } else {
 
 
1380
 
1381
+ $gwiod_stringReplace = file_get_contents($gwiod_MMindexMaster);
 
 
 
1382
 
1383
+ if ( preg_match($gwiod_pattern_ip, $gwiod_stringReplace, $matches ) ) {
1384
+
1385
+ $gwiod_stringReplace = preg_replace('/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sIP\s*(.*)\s*#\sEND\sBPS\sMAINTENANCE\sMODE\sIP/', "# BEGIN BPS MAINTENANCE MODE IP\n".'$bps_maintenance_ip'." = array('".str_replace(', ', "', '", $MMoptions['bps_maint_ip_allowed'])."');\n# END BPS MAINTENANCE MODE IP", $gwiod_stringReplace);
1386
+ }
1387
 
1388
+ if ( preg_match($gwiod_pattern, $gwiod_stringReplace, $matches ) ) {
1389
+
1390
+ $gwiod_stringReplace = preg_replace('/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sGWIOD\s*require(.*)\s*\}(.*)\s*require(.*)\s*\}\s*#\sEND\sBPS\sMAINTENANCE\sMODE\sGWIOD/', "# BEGIN BPS MAINTENANCE MODE GWIOD\nrequire( dirname( __FILE__ ) . '".$gwiod_url."/wp-blog-header.php' );\n} else {\nrequire( dirname( __FILE__ ) . '".$gwiod_url."/bps-maintenance.php' );\n}\n# END BPS MAINTENANCE MODE GWIOD", $gwiod_stringReplace);
1391
+ }
1392
 
1393
  if ( file_put_contents($gwiod_MMindexMaster, $gwiod_stringReplace) ) {
1394
 
1421
  function bpsPro_mmode_network_gwiod_site_root_index_file_on() {
1422
  global $current_blog, $blog_id, $bps_topDiv, $bps_bottomDiv;
1423
 
1424
+ $MMoptions = get_option('bulletproof_security_options_maint_mode');
1425
+ $MMindexMaster = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/maintenance-mode-index-MU.php';
1426
+ $publicly_displayed_url = network_site_url();
1427
+ $actual_wp_install_url = get_site_option('siteurl');
1428
 
1429
  if ( $publicly_displayed_url != $actual_wp_install_url ) {
1430
 
1431
+ $gwiod_url = str_replace( array( $publicly_displayed_url, '/' ), "", $actual_wp_install_url );
1432
  $gwiod_url_path = str_replace( '\\', '/', ABSPATH );
1433
  $gwiod_root_index_file = dirname( $gwiod_url_path ) . '/index.php';
1434
  $gwiod_root_index_file_backup = WP_CONTENT_DIR . '/bps-backup/master-backups/backup_gwiod_index.php';
1435
  $gwiod_permsIndex = substr(sprintf('%o', fileperms($gwiod_root_index_file)), -4);
1436
  $sapi_type = php_sapi_name();
1437
+ $pattern_gwiod1 = '/\/' . $gwiod_url . '\/bps-maintenance/';
1438
+ $pattern_gwiod2 = '/\/' . $gwiod_url . '\/wp-blog-header/';
1439
+ $lock = '';
 
 
 
 
 
 
1440
 
1441
+ if ( ! file_exists( $gwiod_root_index_file ) ) {
1442
+ echo $bps_topDiv;
1443
+ $text = '<font color="#fb0101"><strong>'.__('Error: Unable to get/find the site root index.php file for this Network GWIOD - Giving WordPress Its Own Directory - website.', 'bulletproof-security').'</font><br>'.__('Network GWIOD Site Root index.php File Path Checked: ', 'bulletproof-security').$gwiod_root_index_file.'<br>'.__('Please copy this error message and send it in an email to info@ait-pro.com for assistance.', 'bulletproof-security').'</strong>';
1444
+ echo $text;
1445
+ echo $bps_bottomDiv;
1446
+ return;
1447
 
1448
+ } else {
 
 
1449
 
1450
+ if ( $gwiod_permsIndex == '0400') {
1451
+ $lock = '0400';
1452
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
1453
 
1454
+ if ( substr($sapi_type, 0, 6) != 'apache' && $gwiod_permsIndex != '0666' || $gwiod_permsIndex != '0777') { // Windows IIS, XAMPP, etc
1455
+ chmod($gwiod_root_index_file, 0644);
1456
+ }
1457
 
1458
+ if ( ! file_exists($gwiod_root_index_file_backup) ) {
1459
+
1460
+ copy( $gwiod_root_index_file, $gwiod_root_index_file_backup );
1461
+ }
1462
+
1463
+ if ( copy( $MMindexMaster, $gwiod_root_index_file ) ) {
1464
+
1465
+ $gwiod_stringReplace = file_get_contents($gwiod_root_index_file);
1466
+ }
1467
+
1468
+ if ( ! preg_match( $pattern_gwiod1, $gwiod_stringReplace ) ) {
1469
+
1470
+ $gwiod_stringReplace = preg_replace('/\/bps-maintenance/', "/$gwiod_url" . '/bps-maintenance', $gwiod_stringReplace);
1471
+ }
1472
+
1473
+ if ( ! preg_match( $pattern_gwiod2, $gwiod_stringReplace ) ) {
1474
+
1475
+ $gwiod_stringReplace = preg_replace('/\/wp-blog-header/', "/$gwiod_url" . '/wp-blog-header', $gwiod_stringReplace);
1476
+ }
1477
+
1478
+ if ( file_put_contents($gwiod_root_index_file, $gwiod_stringReplace) ) {
1479
 
1480
  if ( $lock == '0400') {
1481
  chmod($gwiod_root_index_file, 0400);
1492
  function bpsPro_mmode_single_gwiod_turn_off_frontend() {
1493
  global $bps_topDiv, $bps_bottomDiv;
1494
 
1495
+ $MMoptions = get_option('bulletproof_security_options_maint_mode');
1496
+ $root_index_file = ABSPATH . 'index.php';
1497
+ $permsIndex = substr(sprintf('%o', fileperms($root_index_file)), -4);
1498
+ $sapi_type = php_sapi_name();
1499
+ $root_index_file_backup = WP_CONTENT_DIR . '/bps-backup/master-backups/backup_index.php';
1500
+ $root_folder_maintenance = ABSPATH . 'bps-maintenance.php';
1501
+ $root_folder_maintenance_values = ABSPATH . 'bps-maintenance-values.php';
1502
+ $lock = '';
1503
 
1504
  if ( file_exists($root_index_file_backup) ) {
1505
 
1566
  function bpsPro_mmode_network_turn_off_frontend() {
1567
  global $current_blog, $blog_id, $bps_topDiv, $bps_bottomDiv;
1568
 
1569
+ $MMoptions = get_option('bulletproof_security_options_maint_mode');
1570
+ $root_index_file = ABSPATH . 'index.php';
1571
+ $permsIndex = substr(sprintf('%o', fileperms($root_index_file)), -4);
1572
+ $sapi_type = php_sapi_name();
1573
+ $root_index_file_backup = WP_CONTENT_DIR . '/bps-backup/master-backups/backup_index.php';
1574
+ $bps_maintenance_values = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/bps-maintenance-values.php';
1575
+ $root_folder_maintenance_values = ABSPATH . 'bps-maintenance-values.php';
1576
+ $root_folder_maintenance = ABSPATH . 'bps-maintenance.php';
1577
+ $MMindexMaster = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/maintenance-mode-index-MU.php';
1578
+ $lock = '';
1579
 
1580
+ if ( $permsIndex == '0400') {
1581
+ $lock = '0400';
1582
+ }
1583
+
1584
+ if ( substr($sapi_type, 0, 6) != 'apache' && $permsIndex != '0666' || $permsIndex != '0777') { // Windows IIS, XAMPP, etc
1585
+ chmod($root_index_file, 0644);
1586
+ }
1587
 
1588
+ // Primary Network Site
1589
+ if ( is_multisite() && $blog_id == 1 ) {
1590
+
1591
+ $stringReplace = file_get_contents($MMindexMaster);
1592
 
1593
+ if ( preg_match( '/#\sBEGIN\sPRIMARY\sSITE\sSTATUS\s*(.*)\s*#\sEND\sPRIMARY\sSITE\sSTATUS/', $stringReplace, $matches ) ) {
1594
+
1595
+ $stringReplace = preg_replace( '/#\sBEGIN\sPRIMARY\sSITE\sSTATUS\s*(.*)\s*#\sEND\sPRIMARY\sSITE\sSTATUS/', "# BEGIN PRIMARY SITE STATUS\n\$primary_site_status = 'Off';\n# END PRIMARY SITE STATUS", $stringReplace);
1596
+ }
 
 
 
 
 
 
 
 
 
 
1597
 
1598
+ if ( file_put_contents($MMindexMaster, $stringReplace) ) {
1599
+ copy( $MMindexMaster, $root_index_file );
1600
+ copy( $bps_maintenance_values, $root_folder_maintenance_values );
1601
+ }
1602
 
1603
+ // Network Subsites
1604
+ } else {
1605
+
1606
+ if ( is_multisite() && is_subdomain_install() ) {
 
 
 
 
1607
 
1608
+ $subsite_remove_slashes = str_replace( '.', "-", $current_blog->domain );
1609
+ $subsite_replace_chars = str_replace( array( '.', '-' ), "_", $current_blog->domain );
1610
+
1611
+ } else {
1612
 
1613
+ $subsite_remove_slashes = str_replace( '/', "", $current_blog->path );
1614
+ $subsite_replace_chars = str_replace( array( '/', '-' ), "_", $current_blog->path );
1615
+ }
1616
+
1617
+ $subsite_root_folder_maintenance = ABSPATH . 'bps-maintenance-'.$subsite_remove_slashes.'.php';
1618
+ $subsite_root_folder_maintenance_values = ABSPATH . 'bps-maintenance-values-'.$subsite_remove_slashes.'.php';
1619
+
1620
+ $stringReplace = file_get_contents($MMindexMaster);
 
 
 
 
 
 
 
 
 
 
1621
 
1622
+ if ( is_multisite() && ! is_subdomain_install() ) {
1623
+
1624
+ if ( preg_match( '/\$'.$subsite_replace_chars.'_status = \'(.*)\';/', $stringReplace, $matches ) ) {
1625
+
1626
+ $stringReplace = preg_replace( '/\$'.$subsite_replace_chars.'_status = \'(.*)\';/', "\$$subsite_replace_chars".'_status'." = 'Off';", $stringReplace);
1627
  }
1628
 
1629
+ } else {
1630
+
1631
+ if ( preg_match( '/\$'.$subsite_replace_chars.'_status = \'(.*)\';/', $stringReplace, $matches ) ) {
1632
+
1633
+ $stringReplace = preg_replace( '/\$'.$subsite_replace_chars.'_status = \'(.*)\';/', "\$$subsite_replace_chars".'_status'." = 'Off';", $stringReplace);
1634
+ }
1635
+ }
1636
+
1637
+ if ( file_put_contents($MMindexMaster, $stringReplace) ) {
1638
+ copy( $MMindexMaster, $root_index_file );
1639
  }
1640
 
1641
+ $delete_files = array($subsite_root_folder_maintenance, $subsite_root_folder_maintenance_values);
1642
+
1643
+ foreach ( $delete_files as $file ) {
1644
+ if ( file_exists($file) ) {
1645
+ unlink($file);
1646
+ }
1647
+ }
1648
+ }
1649
+
1650
+ if ( $lock == '0400') {
1651
+ chmod($root_index_file, 0400);
1652
+ }
1653
+
1654
+ echo $bps_topDiv;
1655
+ $text = '<font color="green"><strong>'.__('FrontEnd Maintenance Mode has been Turned Off.', 'bulletproof-security').'</strong></font>';
1656
+ echo $text;
1657
+ echo $bps_bottomDiv;
1658
 
1659
  // Network GWIOD: network_site_url: http://example.local/ vs get_site_option siteurl: http://example.local/gwiod/
1660
  $publicly_displayed_url = network_site_url();
1661
  $actual_wp_install_url = get_site_option('siteurl');
1662
  $gwiod_root_index_file_backup = WP_CONTENT_DIR . '/bps-backup/master-backups/backup_gwiod_index.php';
1663
+ $gwiod_url = str_replace( array( $publicly_displayed_url, '/' ), "", $actual_wp_install_url );
1664
  $gwiod_url_path = str_replace( '\\', '/', ABSPATH );
1665
  $gwiod_root_index_file = dirname( $gwiod_url_path ) . '/index.php';
1666
  $gwiod_permsIndex = substr(sprintf('%o', fileperms($gwiod_root_index_file)), -4);
1667
+ $pattern_gwiod1 = '/\/' . $gwiod_url . '\/bps-maintenance/';
1668
+ $pattern_gwiod2 = '/\/' . $gwiod_url . '\/wp-blog-header/';
1669
+
1670
+ if ( $gwiod_permsIndex == '0400') {
1671
+ $lock = '0400';
1672
+ }
1673
 
1674
+ if ( substr($sapi_type, 0, 6) != 'apache' && $gwiod_permsIndex != '0666' || $gwiod_permsIndex != '0777') { // Windows IIS, XAMPP, etc
1675
+ chmod($gwiod_root_index_file, 0644);
1676
+ }
 
 
 
 
1677
 
1678
  if ( copy( $MMindexMaster, $gwiod_root_index_file ) ) {
1679
 
1680
  $gwiod_stringReplace = file_get_contents($gwiod_root_index_file);
1681
  }
1682
 
1683
+ if ( ! preg_match( $pattern_gwiod1, $gwiod_stringReplace ) ) {
1684
 
1685
+ $gwiod_stringReplace = preg_replace('/\/bps-maintenance/', "/$gwiod_url" . '/bps-maintenance', $gwiod_stringReplace);
1686
  }
1687
 
1688
+ if ( ! preg_match( $pattern_gwiod2, $gwiod_stringReplace ) ) {
1689
 
1690
+ $gwiod_stringReplace = preg_replace('/\/wp-blog-header/', "/$gwiod_url" . '/wp-blog-header', $gwiod_stringReplace);
1691
  }
1692
 
1693
  if ( file_put_contents($gwiod_root_index_file, $gwiod_stringReplace) ) {
1703
  function bpsPro_mmode_single_gwiod_turn_off_backend() {
1704
  global $bps_topDiv, $bps_bottomDiv;
1705
 
1706
+ $MMoptions = get_option('bulletproof_security_options_maint_mode');
1707
+ $Apache_Mod_options = get_option('bulletproof_security_options_apache_modules');
1708
+ $sapi_type = php_sapi_name();
1709
+ # BPS .52.5: new pattern|new IfModule conditions
1710
+ $pattern2 = '/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sIP\s*Order(.*)\s*(Allow(.*)\s*){1,}#\sEND\sBPS\sMAINTENANCE\sMODE\sIP/';
1711
+ $pattern3 = '/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sIP(.*\s*){8}(Allow(.*)\s*){1,}<\/IfModule>\s*<\/IfModule>\s*#\sEND\sBPS\sMAINTENANCE\sMODE\sIP/';
1712
+ $wpadminHtaccess = ABSPATH . 'wp-admin/.htaccess';
1713
+ $permsHtaccess = substr(sprintf('%o', fileperms($wpadminHtaccess)), -4);
1714
+ $lock = '';
1715
 
1716
  // .53.6: htaccess Files Disabled
1717
  $HFiles_options = get_option('bulletproof_security_options_htaccess_files');
1718
 
1719
+ if ( isset($HFiles_options['bps_htaccess_files']) && $HFiles_options['bps_htaccess_files'] == 'disabled' ) {
1720
  echo $bps_topDiv;
1721
  $text = '<font color="blue"><strong>'.__('htaccess Files Disabled: BackEnd Maintenance Mode is disabled.', 'bulletproof-security').'</strong></font>'.__('Click this link for help information: ', 'bulletproof-security').'<a href="https://forum.ait-pro.com/forums/topic/htaccess-files-disabled-setup-wizard-enable-disable-htaccess-files/" target="_blank" title="htaccess Files Disabled Forum Topic">'.__('htaccess Files Disabled Forum Topic', 'bulletproof-security').'</a><br>';
1722
  echo $text;
1724
 
1725
  } else {
1726
 
1727
+ if ( file_exists($wpadminHtaccess) ) {
 
 
 
 
 
 
 
 
 
 
 
 
1728
 
1729
+ if ( $permsHtaccess == '0404') {
1730
+ $lock = '0404';
1731
+ }
1732
+
1733
+ if ( substr($sapi_type, 0, 6) != 'apache' || $permsHtaccess != '0666' || $permsHtaccess != '0777') { // Windows IIS, XAMPP, etc
1734
+ chmod($wpadminHtaccess, 0644);
 
 
 
 
1735
  }
 
1736
 
1737
+ $stringReplace = file_get_contents($wpadminHtaccess);
1738
+
1739
+ if ( $Apache_Mod_options['bps_apache_mod_ifmodule'] == 'Yes' ) {
1740
+
1741
+ if ( preg_match( $pattern3, $stringReplace, $matches ) ) {
1742
+
1743
+ $stringReplace = preg_replace( $pattern3, "", $stringReplace);
1744
+ }
1745
+
1746
+ } else {
1747
+
1748
+ if ( preg_match( $pattern2, $stringReplace, $matches ) ) {
1749
+
1750
+ $stringReplace = preg_replace( $pattern2, "", $stringReplace);
1751
+ }
1752
  }
1753
 
1754
+ if ( file_put_contents($wpadminHtaccess, $stringReplace) ) {
1755
+
1756
+ if ( $lock == '0404') {
1757
+ chmod($wpadminHtaccess, 0404);
1758
+ }
1759
+
1760
+ echo $bps_topDiv;
1761
+ $text = '<font color="green"><strong>'.__('BackEnd Maintenance Mode has been Turned Off.', 'bulletproof-security').'</strong></font>';
1762
+ echo $text;
1763
+ echo $bps_bottomDiv;
1764
+ }
1765
+ }
1766
  }
1767
  }
1768
 
1772
  function bpsPro_mmode_single_gwiod_turn_off() {
1773
  global $bps_topDiv, $bps_bottomDiv;
1774
 
1775
+ $MMoptions = get_option('bulletproof_security_options_maint_mode');
1776
+ $root_index_file = ABSPATH . 'index.php';
1777
+ $permsIndex = substr(sprintf('%o', fileperms($root_index_file)), -4);
1778
+ $sapi_type = php_sapi_name();
1779
+ $root_index_file_backup = WP_CONTENT_DIR . '/bps-backup/master-backups/backup_index.php';
1780
+ $root_folder_maintenance = ABSPATH . 'bps-maintenance.php';
1781
+ $root_folder_maintenance_values = ABSPATH . 'bps-maintenance-values.php';
1782
+ $pattern = '/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sIP\s*(.*)\s*#\sEND\sBPS\sMAINTENANCE\sMODE\sIP/';
1783
+ # BPS .52.5: new pattern|new IfModule conditions
1784
+ $pattern2 = '/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sIP\s*Order(.*)\s*(Allow(.*)\s*){1,}#\sEND\sBPS\sMAINTENANCE\sMODE\sIP/';
1785
+ $pattern3 = '/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sIP(.*\s*){8}(Allow(.*)\s*){1,}<\/IfModule>\s*<\/IfModule>\s*#\sEND\sBPS\sMAINTENANCE\sMODE\sIP/';
1786
+ $wpadminHtaccess = ABSPATH . 'wp-admin/.htaccess';
1787
+ $permsHtaccess = substr(sprintf('%o', fileperms($wpadminHtaccess)), -4);
1788
+ $lock = '';
1789
 
1790
  if ( file_exists($root_index_file_backup) ) {
1791
 
1847
  // .53.6: htaccess Files Disabled
1848
  $HFiles_options = get_option('bulletproof_security_options_htaccess_files');
1849
 
1850
+ if ( isset($HFiles_options['bps_htaccess_files']) && $HFiles_options['bps_htaccess_files'] == 'disabled' ) {
1851
  echo $bps_topDiv;
1852
  $text = '<font color="blue"><strong>'.__('htaccess Files Disabled: BackEnd Maintenance Mode is disabled.', 'bulletproof-security').'</strong></font>'.__('Click this link for help information: ', 'bulletproof-security').'<a href="https://forum.ait-pro.com/forums/topic/htaccess-files-disabled-setup-wizard-enable-disable-htaccess-files/" target="_blank" title="htaccess Files Disabled Forum Topic">'.__('htaccess Files Disabled Forum Topic', 'bulletproof-security').'</a><br>';
1853
  echo $text;
1855
 
1856
  } else {
1857
 
1858
+ // wp-admin .htaccess
1859
+ if ( file_exists($wpadminHtaccess) ) {
1860
+
1861
+ if ( $permsHtaccess == '0404') {
1862
+ $lock = '0404';
1863
+ }
1864
+
1865
+ if ( substr($sapi_type, 0, 6) != 'apache' || $permsHtaccess != '0666' || $permsHtaccess != '0777') { // Windows IIS, XAMPP, etc
1866
+ chmod($wpadminHtaccess, 0644);
1867
+ }
1868
 
1869
+ $stringReplace = file_get_contents($wpadminHtaccess);
1870
+
1871
+ if ( preg_match( $pattern2, $stringReplace, $matches ) ) {
1872
+
1873
+ $stringReplace = preg_replace( $pattern2, "", $stringReplace );
1874
+ }
1875
 
1876
+ if ( preg_match( $pattern3, $stringReplace, $matches ) ) {
1877
+
1878
+ $stringReplace = preg_replace( $pattern3, "", $stringReplace );
1879
+ }
1880
+
1881
+ if ( file_put_contents($wpadminHtaccess, $stringReplace) ) {
1882
+
1883
+ if ( $lock == '0404') {
1884
+ chmod($wpadminHtaccess, 0404);
1885
+ }
1886
 
1887
+ echo $bps_topDiv;
1888
+ $text = '<font color="green"><strong>'.__('BackEnd Maintenance Mode has been Turned Off.', 'bulletproof-security').'</strong></font>';
1889
+ echo $text;
1890
+ echo $bps_bottomDiv;
1891
+ }
1892
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
1893
  }
1894
  }
1895
 
1900
  function bpsPro_mmode_network_turn_off() {
1901
  global $current_blog, $blog_id, $bps_topDiv, $bps_bottomDiv;
1902
 
1903
+ $MMoptions = get_option('bulletproof_security_options_maint_mode');
1904
+ $root_index_file = ABSPATH . 'index.php';
1905
+ $permsIndex = substr(sprintf('%o', fileperms($root_index_file)), -4);
1906
+ $sapi_type = php_sapi_name();
1907
+ $root_index_file_backup = WP_CONTENT_DIR . '/bps-backup/master-backups/backup_index.php';
1908
+ $root_folder_maintenance = ABSPATH . 'bps-maintenance.php';
1909
+ $root_folder_maintenance_values = ABSPATH . 'bps-maintenance-values.php';
1910
+ $bps_maintenance_values = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/bps-maintenance-values.php';
1911
+ $pattern = '/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sIP\s*(.*)\s*#\sEND\sBPS\sMAINTENANCE\sMODE\sIP/';
1912
+ # BPS .52.5: new pattern|new IfModule conditions
1913
+ $pattern2 = '/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sIP\s*Order(.*)\s*(Allow(.*)\s*){1,}#\sEND\sBPS\sMAINTENANCE\sMODE\sIP/';
1914
+ $pattern3 = '/#\sBEGIN\sBPS\sMAINTENANCE\sMODE\sIP(.*\s*){8}(Allow(.*)\s*){1,}<\/IfModule>\s*<\/IfModule>\s*#\sEND\sBPS\sMAINTENANCE\sMODE\sIP/';
1915
+ $wpadminHtaccess = ABSPATH . 'wp-admin/.htaccess';
1916
+ $permsHtaccess = substr(sprintf('%o', fileperms($wpadminHtaccess)), -4);
1917
+ $MMindexMaster = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/maintenance-mode-index-MU.php';
1918
+ $lock = '';
1919
 
1920
+ if ( $permsIndex == '0400') {
1921
+ $lock = '0400';
1922
+ }
1923
+
1924
+ if ( substr($sapi_type, 0, 6) != 'apache' && $permsIndex != '0666' || $permsIndex != '0777') { // Windows IIS, XAMPP, etc
1925
+ chmod($root_index_file, 0644);
1926
+ }
1927
 
1928
+ // Primary Network Site
1929
+ if ( is_multisite() && $blog_id == 1 ) {
1930
+
1931
+ $stringReplace = file_get_contents($MMindexMaster);
1932
 
1933
+ if ( preg_match( '/#\sBEGIN\sPRIMARY\sSITE\sSTATUS\s*(.*)\s*#\sEND\sPRIMARY\sSITE\sSTATUS/', $stringReplace, $matches ) ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1934
 
1935
+ $stringReplace = preg_replace( '/#\sBEGIN\sPRIMARY\sSITE\sSTATUS\s*(.*)\s*#\sEND\sPRIMARY\sSITE\sSTATUS/', "# BEGIN PRIMARY SITE STATUS\n\$primary_site_status = 'Off';\n# END PRIMARY SITE STATUS", $stringReplace);
1936
+ }
1937
+
1938
+ if ( file_put_contents($MMindexMaster, $stringReplace) ) {
1939
+ copy( $MMindexMaster, $root_index_file );
1940
+ copy( $bps_maintenance_values, $root_folder_maintenance_values );
1941
+ }
1942
 
1943
+ // Network Subsites
1944
+ } else {
1945
+
1946
+ if ( is_multisite() && is_subdomain_install() ) {
 
 
 
 
 
1947
 
1948
+ $subsite_remove_slashes = str_replace( '.', "-", $current_blog->domain );
1949
+ $subsite_replace_chars = str_replace( array( '.', '-' ), "_", $current_blog->domain );
1950
 
1951
+ } else {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1952
 
1953
+ $subsite_remove_slashes = str_replace( '/', "", $current_blog->path );
1954
+ $subsite_replace_chars = str_replace( array( '/', '-' ), "_", $current_blog->path );
1955
+ }
1956
+
1957
+ $subsite_root_folder_maintenance = ABSPATH . 'bps-maintenance-'.$subsite_remove_slashes.'.php';
1958
+ $subsite_root_folder_maintenance_values = ABSPATH . 'bps-maintenance-values-'.$subsite_remove_slashes.'.php';
1959
+
1960
+ $stringReplace = file_get_contents($MMindexMaster);
1961
+ //$subsite_subdomain_variable = str_replace( '.', "_", $current_blog->domain );
1962
+
1963
+ if ( is_multisite() && ! is_subdomain_install() ) {
1964
+
1965
+ if ( preg_match( '/\$'.$subsite_replace_chars.'_status = \'(.*)\';/', $stringReplace, $matches ) ) {
1966
+
1967
+ $stringReplace = preg_replace( '/\$'.$subsite_replace_chars.'_status = \'(.*)\';/', "\$$subsite_replace_chars".'_status'." = 'Off';", $stringReplace);
1968
  }
1969
 
1970
+ } else {
1971
+
1972
+ if ( preg_match( '/\$'.$subsite_replace_chars.'_status = \'(.*)\';/', $stringReplace, $matches ) ) {
1973
+
1974
+ $stringReplace = preg_replace( '/\$'.$subsite_replace_chars.'_status = \'(.*)\';/', "\$$subsite_replace_chars".'_status'." = 'Off';", $stringReplace);
1975
+ }
1976
+ }
1977
+
1978
+ if ( file_put_contents($MMindexMaster, $stringReplace) ) {
1979
+ copy( $MMindexMaster, $root_index_file );
1980
  }
1981
 
1982
+ $delete_files = array( $subsite_root_folder_maintenance, $subsite_root_folder_maintenance_values );
1983
+
1984
+ foreach ( $delete_files as $file ) {
1985
+ if ( file_exists($file) ) {
1986
+ unlink($file);
1987
+ }
1988
+ }
1989
+ }
1990
 
1991
+ if ( $lock == '0400') {
1992
+ chmod($root_index_file, 0400);
1993
+ }
1994
+
1995
+ echo $bps_topDiv;
1996
+ $text = '<font color="green"><strong>'.__('FrontEnd Maintenance Mode has been Turned Off.', 'bulletproof-security').'</strong></font>';
1997
+ echo $text;
1998
+ echo $bps_bottomDiv;
1999
 
2000
+ // Network/GWIOD
2001
+ $publicly_displayed_url = network_site_url();
2002
+ $actual_wp_install_url = get_site_option('siteurl');
2003
+ $gwiod_root_index_file_backup = WP_CONTENT_DIR . '/bps-backup/master-backups/backup_gwiod_index.php';
2004
+ $gwiod_url = str_replace( array( $publicly_displayed_url, '/' ), "", $actual_wp_install_url );
2005
+ $gwiod_url_path = str_replace( '\\', '/', ABSPATH );
2006
+ $gwiod_root_index_file = dirname( $gwiod_url_path ) . '/index.php';
2007
+ $gwiod_permsIndex = substr(sprintf('%o', fileperms($gwiod_root_index_file)), -4);
2008
+ $pattern_gwiod1 = '/\/' . $gwiod_url . '\/bps-maintenance/';
2009
+ $pattern_gwiod2 = '/\/' . $gwiod_url . '\/wp-blog-header/';
2010
+
2011
  if ( $gwiod_permsIndex == '0400') {
2012
  $lock = '0400';
2013
  }
2021
  $gwiod_stringReplace = file_get_contents($gwiod_root_index_file);
2022
  }
2023
 
2024
+ if ( ! preg_match( $pattern_gwiod1, $gwiod_stringReplace ) ) {
2025
 
2026
+ $gwiod_stringReplace = preg_replace('/\/bps-maintenance/', "/$gwiod_url" . '/bps-maintenance', $gwiod_stringReplace);
2027
  }
2028
 
2029
+ if ( ! preg_match( $pattern_gwiod2, $gwiod_stringReplace ) ) {
2030
 
2031
+ $gwiod_stringReplace = preg_replace('/\/wp-blog-header/', "/$gwiod_url" . '/wp-blog-header', $gwiod_stringReplace);
2032
  }
2033
 
2034
  if ( file_put_contents($gwiod_root_index_file, $gwiod_stringReplace) ) {
2041
  // .53.6: htaccess Files Disabled
2042
  $HFiles_options = get_option('bulletproof_security_options_htaccess_files');
2043
 
2044
+ if ( isset($HFiles_options['bps_htaccess_files']) && $HFiles_options['bps_htaccess_files'] == 'disabled' ) {
2045
  echo $bps_topDiv;
2046
  $text = '<font color="blue"><strong>'.__('htaccess Files Disabled: BackEnd Maintenance Mode is disabled.', 'bulletproof-security').'</strong></font>'.__('Click this link for help information: ', 'bulletproof-security').'<a href="https://forum.ait-pro.com/forums/topic/htaccess-files-disabled-setup-wizard-enable-disable-htaccess-files/" target="_blank" title="htaccess Files Disabled Forum Topic">'.__('htaccess Files Disabled Forum Topic', 'bulletproof-security').'</a><br>';
2047
  echo $text;
2049
 
2050
  } else {
2051
 
2052
+ // wp-admin .htaccess
2053
+ if ( is_multisite() && $blog_id == 1 && file_exists($wpadminHtaccess) ) {
2054
+
2055
+ if ( $permsHtaccess == '0404') {
2056
+ $lock = '0404';
2057
+ }
2058
+
2059
+ if ( substr($sapi_type, 0, 6) != 'apache' || $permsHtaccess != '0666' || $permsHtaccess != '0777') { // Windows IIS, XAMPP, etc
2060
+ chmod($wpadminHtaccess, 0644);
2061
+ }
2062
 
2063
+ $stringReplace = file_get_contents($wpadminHtaccess);
2064
+
2065
+ if ( preg_match( $pattern2, $stringReplace, $matches ) ) {
2066
+
2067
+ $stringReplace = preg_replace( $pattern2, "", $stringReplace);
2068
+ }
2069
 
2070
+ if ( preg_match( $pattern3, $stringReplace, $matches ) ) {
2071
+
2072
+ $stringReplace = preg_replace( $pattern3, "", $stringReplace );
2073
+ }
2074
+
2075
+ if ( file_put_contents($wpadminHtaccess, $stringReplace) ) {
2076
+
2077
+ if ( $lock == '0404') {
2078
+ chmod($wpadminHtaccess, 0404);
2079
+ }
2080
 
2081
+ echo $bps_topDiv;
2082
+ $text = '<font color="green"><strong>'.__('BackEnd Maintenance Mode has been Turned Off.', 'bulletproof-security').'</strong></font>';
2083
+ echo $text;
2084
+ echo $bps_bottomDiv;
 
 
 
2085
  }
2086
+ }
 
 
 
 
 
 
2087
  }
2088
  }
2089
 
admin/security-log/security-log.php CHANGED
@@ -231,7 +231,7 @@ if ( isset( $_POST['Submit-Error-Log-On'] ) && current_user_can('manage_options'
231
  <strong><a href="https://forum.ait-pro.com/forums/topic/read-me-first-free/#bps-free-general-troubleshooting" title="BPS Troubleshooting Steps" target="_blank"><?php _e('BPS Troubleshooting Steps', 'bulletproof-security'); ?></a></strong><br />
232
  <strong><a href="https://forum.ait-pro.com/forums/topic/post-request-protection-post-attack-protection-post-request-blocker/" title="POST Request Attack Protection Bonus Custom Code" target="_blank"><?php _e('POST Request Attack Protection', 'bulletproof-security'); ?></a></strong><br /><br />
233
 
234
- <?php $text = '<strong>'.__('Security Log General Information', 'bulletproof-security').'</strong><br>'.__('To view your Security Log click the View Log button. Your Security Log file is a plain text static file and not a dynamic file or dynamic display to keep your website resource usage at a bare minimum and keep your website performance at a maximum. Log entries are logged in descending order by Date and Time. You can copy, edit and delete this plain text file.', 'bulletproof-security').'<br><br><strong>'.__('Note: ', 'bulletproof-security').'</strong>'.__('Security Log Email Alert and Log file option settings are on the Email|Log Settings page.', 'bulletproof-security').'<strong><br><br>'.__('NOTE: ', 'bulletproof-security').'</strong>'.__('If a particular User Agent|Bot is generating excessive log entries you can add it to Add User Agents|Bots to Ignore|Not Log tool and that User Agent|Bot will no longer be logged. See the Ignoring|Not Logging User Agents|Bots help section.', 'bulletproof-security').'<strong><br><br>'.__('NOTE: ', 'bulletproof-security').'</strong>'.__('BPS logs all 403 errors, but a 403 error may not necessarily be caused by BPS. Use the troubleshooting steps in the BPS Troubleshooting Steps link at the top of this Question Mark help window to confirm or eliminate that the 403 error is being caused by BPS.', 'bulletproof-security').'<br><br>'.__('The Security Log logs 400, 403, 405 and 410 HTTP Response Status Codes by default. You can also log 404 HTTP Response Status Codes by opening this BPS 404 Template file - /bulletproof-security/404.php and copying the logging code into your Theme\'s 404 Template file. When you open the BPS Pro 404.php file you will see simple instructions on how to add the 404 logging code to your Theme\'s 404 Template file. The Security Log also logs other events. See the ', 'bulletproof-security').'<strong>'.__('Total # of Security Log Entries by Type', 'bulletproof-security').'</strong>'.__(' help section below for a complete list of BPS Security Log Entry Types.', 'bulletproof-security').'<br><br><strong>'.__('Total # of Security Log Entries by Type', 'bulletproof-security').'</strong><br>'.__('Displays the total number of each type of Security Log Entry in your Security Log file. The Total # of Security Log Entries by Type is also added to each Security Log file when it is zipped and emailed to you and also added directly in the automated Security Log email. Complete list of BPS Security Log Entry Types: 400 POST Bad Request, 400 GET Bad Request, 403 GET Request, 403 POST Request, 404 GET Not Found Request, 404 POST Not Found Request, 405 HEAD Request, 410 Gone POST Request, 410 Gone GET Request, Idle Session Logout, Maintenance Mode - Visitor Logged. BPS has a total of 11 Security Log Entry Types. BPS Pro has a total of 27 Security Log Entry Types.', 'bulletproof-security').'<br><br><strong>'.__('HTTP Response Status Codes', 'bulletproof-security').'</strong><br>'.__('400 Bad Request - The request could not be understood by the server due to malformed syntax.', 'bulletproof-security').'<br><br>'.__('403 Forbidden - The Server understood the request, but is refusing to fulfill it.', 'bulletproof-security').'<br><br>'.__('404 Not Found - The Server has not found anything matching the Request-URI|URL. No indication is given of whether the condition is temporary or permanent.', 'bulletproof-security').'<br><br>'.__('405 Method Not Allowed - The method specified in the Request-Line is not allowed for the resource identified by the Request-URI. The response MUST include an Allow header containing a list of valid methods for the requested resource. BPS blocks HEAD Requests using a 405 ErrorDocument Redirect. The BPS 405 Template has an Allow header field for the GET, POST and PUT HTTP Methods.', 'bulletproof-security').'<br><br>'.__('410 Gone - The requested resource is no longer available at the Server/site and no forwarding address is known. This condition is expected to be considered permanent.', 'bulletproof-security').'<br><br><strong>'.__('Security Log File Size', 'bulletproof-security').'</strong><br>'.__('Displays the size of your Security Log file. 500KB is the optimum recommended log file size setting that you should choose for your log file to be automatically zipped, emailed and replaced with a new blank Security Log file.', 'bulletproof-security').'<br><br><strong>'.__('Security Log Status:', 'bulletproof-security').'</strong><br>'.__('Displays either Logging is Turned On or Logging is Turned Off.', 'bulletproof-security').'<br><br><strong>'.__('Security Log Last Modified Time:', 'bulletproof-security').'</strong><br>'.__('Displays the last time a Security Log entry was logged.', 'bulletproof-security').'<br><br><strong>'.__('Turn Off Logging', 'bulletproof-security').'</strong><br>'.__('Turns Off HTTP 400, 403, 404, 405 & 410 Security Logging.', 'bulletproof-security').'<br><br><strong>'.__('Turn On Logging', 'bulletproof-security').'</strong><br>'.__('Turns On HTTP 400, 403, 404, 405 & 410 Security Logging.', 'bulletproof-security').'<br><br><strong>'.__('Delete Log Button', 'bulletproof-security').'</strong><br>'.__('Clicking the Delete Log button will delete the entire contents of your Security Log File.', 'bulletproof-security').'<br><br><strong>'.__('POST Request Body Data', 'bulletproof-security').'</strong><br>'.__('The POST Request Body Data option settings only affect the REQUEST BODY Security Log field in your Security Log entries when a POST Request is blocked and logged by BPS. To capture/log all POST Request Attacks against your website you will need to add the POST Request Attack Protection Bonus Custom Code. A link to that Bonus Custom Code is at the top of this Question Mark help window. If you do not want to add the Bonus Custom Code then some, but not all POST Request Attacks will be captured/logged in the Security Log.', 'bulletproof-security').'<br><br>'.__('The default POST Request Body Data option setting is "Do Not Log POST Request Body Data (0KB)", which means do not capture/log the POST Request data that was sent in the attack. You will see this text in the REQUEST BODY Security Log entry field: "REQUEST BODY: BPS Security Log option set to: Do Not Log POST Request Body Data" instead of the actual POST Request Body data used in the attack on your website. The reason the default setting is set to: "Do Not Log POST Request Body Data (0KB)" is because some web hosts falsely interpret the BPS Security Log text file as malicious since hacker code used to attack your website can be captured/logged in the Security Log text file if you are using the "Log Minimum..." or "Log Maximum..." POST Request Body Data option settings.', 'bulletproof-security').'<br><br>'.__('The "Log Minimum POST Request Body Data (5KB)" option setting will capture/log the first 500 characters or 5KB of hacker code used to attack your website in a POST Request attack and log that hacker code in the REQUEST BODY Security Log entry field. The "Log Maximum POST Request Body Data (250KB)" option setting will capture/log the first 250000 characters or roughly 250KB of hacker code used to attack your website in a POST Request attack and log that hacker code in the REQUEST BODY Security Log entry field. Hacker scripts typically range in size from 20KB to 100KB on average.', 'bulletproof-security').'<br><br><strong>'.__('Important Notes: ', 'bulletproof-security').'</strong>'.__('If you are using email security protection on your computer then your automatically zipped and emailed BPS Security Log files may be seen as containing a virus (hacker script/code) and they could be automatically deleted by your email protection application on your computer. Your computer security protection software may also see the Security Log file as malicious and block it. If your web host falsely sees the BPS Security Log file as a malicious hacker file then you will need to change your POST Request Body Data option setting and use the "Do Not Log POST Request Body Data (0KB)" option setting instead.', 'bulletproof-security').'<br><br><strong>'.__('Ignoring|Not Logging User Agents|Bots - Allowing|Logging User Agents|Bots', 'bulletproof-security').'</strong><br>'.__('Adding or Removing User Agents|Bots adds or removes User Agents|Bots to your Database and also writes new code to the 403.php Security Logging template. The 403.php Security Logging file is where the check occurs whether or not to log or not log a User Agent|Bot. It would be foolish and costly to website performance to have your WordPress database handle the task/function/burden of checking which User Agents|Bots to log or not log. WordPress database queries are the most resource draining function of a WordPress website. The more database queries that are happening at the same time on your website the slower your website will perform and load. For this reason the Security Logging check is done from code in the 403.php Security Logging file.', 'bulletproof-security').'<br><br>'.__('If a particular User Agent|Bot is being logged excessively in your Security Log file you can Ignore|Not Log that particular User Agent|Bot based on the HTTP_USER_AGENT string in your Security Log. Example User Agent strings: Mozilla/5.0 (compatible; 008/0.85; http://www.80legs.com/webcrawler.html) Gecko/2008032620 and facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php). You could enter 008 or 80legs or webcrawler to Ignore|Not Log the 80legs User Agent|Bot. You could enter facebookexternalhit or facebook or externalhit_uatext to Ignore|Not Log the facebook User Agent|Bot.', 'bulletproof-security').'<br><br><strong>'.__('Add User Agents|Bots to Ignore|Not Log', 'bulletproof-security').'</strong><br>'.__('Add the User Agent|Bot names you would like to Ignore|Not Log in your Security Log. These code characters are not allowed to be used: ', 'bulletproof-security').'/ | < > \' "<br><br><strong>'.__('Removing User Agents|Bots to Allow|Log', 'bulletproof-security').'</strong><br>'.__('To search for ALL User Agents|Bots to remove/delete from your database leave the text box blank and click the Remove|Allow button. You will see a Dynamically generated Radio Button Form that will display the User Agents|Bots in the BPS User Agent|Bot database Table, Remove or Do Not Remove Radio buttons and the Timestamp when the User Agent|Bot was added to your DB. Select the Remove Radio buttons for the User Agents|Bots you want to remove/delete from your database and click the Remove button. Removing/deleting User Agents|Bots from your database means that you want to have these User Agents|Bots logged again in your Security Log.', 'bulletproof-security').'<br><br><strong>'.__('View Log', 'bulletproof-security').'</strong><br>'.__('In previous versions of BPS the Security Log was displayed open by default. The Security Log is now closed by default due to problems with ModSecurity CRS seeing the Security Log entries as malicious and blocking access to the Security Log page. If you are unable to open/view your Security Log file you can view your Security Log file by using FTP or your web host control panel file manager and opening the Security Log file located here ', 'bulletproof-security').'/'.$bps_wpcontent_dir.'/bps-backup/logs/http_error_log.txt. '.__('The new View Log feature also resolves another problem, which is if the Security Log file automation is not working due to WP Cron jobs being disabled on a website then the Security Log file will not be automatically zipped, emailed to you and replaced with a new blank log file at regular cron intervals by the Security Log file Cron job automation. If your Security Log file is extremely large and you are unable to open/view it then you can manually download a copy of the Security Log file using FTP or your web host control panel file manager and then delete it using the Delete Log button.', 'bulletproof-security'); echo $text; ?></p>
235
  </div>
236
 
237
  <?php
231
  <strong><a href="https://forum.ait-pro.com/forums/topic/read-me-first-free/#bps-free-general-troubleshooting" title="BPS Troubleshooting Steps" target="_blank"><?php _e('BPS Troubleshooting Steps', 'bulletproof-security'); ?></a></strong><br />
232
  <strong><a href="https://forum.ait-pro.com/forums/topic/post-request-protection-post-attack-protection-post-request-blocker/" title="POST Request Attack Protection Bonus Custom Code" target="_blank"><?php _e('POST Request Attack Protection', 'bulletproof-security'); ?></a></strong><br /><br />
233
 
234
+ <?php $text = '<strong>'.__('Security Log General Information', 'bulletproof-security').'</strong><br>'.__('To view your Security Log click the View Log button. Your Security Log file is a plain text static file and not a dynamic file or dynamic display to keep your website resource usage at a bare minimum and keep your website performance at a maximum. Log entries are logged in descending order by Date and Time. You can copy, edit and delete this plain text file.', 'bulletproof-security').'<br><br><strong>'.__('Note: ', 'bulletproof-security').'</strong>'.__('Security Log Email Alert and Log file option settings are on the Alerts|Logs|Email Options page.', 'bulletproof-security').'<strong><br><br>'.__('NOTE: ', 'bulletproof-security').'</strong>'.__('If a particular User Agent|Bot is generating excessive log entries you can add it to Add User Agents|Bots to Ignore|Not Log tool and that User Agent|Bot will no longer be logged. See the Ignoring|Not Logging User Agents|Bots help section.', 'bulletproof-security').'<strong><br><br>'.__('NOTE: ', 'bulletproof-security').'</strong>'.__('BPS logs all 403 errors, but a 403 error may not necessarily be caused by BPS. Use the troubleshooting steps in the BPS Troubleshooting Steps link at the top of this Question Mark help window to confirm or eliminate that the 403 error is being caused by BPS.', 'bulletproof-security').'<br><br>'.__('The Security Log logs 400, 403, 405 and 410 HTTP Response Status Codes by default. You can also log 404 HTTP Response Status Codes by opening this BPS 404 Template file - /bulletproof-security/404.php and copying the logging code into your Theme\'s 404 Template file. When you open the BPS Pro 404.php file you will see simple instructions on how to add the 404 logging code to your Theme\'s 404 Template file. The Security Log also logs other events. See the ', 'bulletproof-security').'<strong>'.__('Total # of Security Log Entries by Type', 'bulletproof-security').'</strong>'.__(' help section below for a complete list of BPS Security Log Entry Types.', 'bulletproof-security').'<br><br><strong>'.__('Total # of Security Log Entries by Type', 'bulletproof-security').'</strong><br>'.__('Displays the total number of each type of Security Log Entry in your Security Log file. The Total # of Security Log Entries by Type is also added to each Security Log file when it is zipped and emailed to you and also added directly in the automated Security Log email. Complete list of BPS Security Log Entry Types: 400 POST Bad Request, 400 GET Bad Request, 403 GET Request, 403 POST Request, 404 GET Not Found Request, 404 POST Not Found Request, 405 HEAD Request, 410 Gone POST Request, 410 Gone GET Request, Idle Session Logout, Maintenance Mode - Visitor Logged. BPS has a total of 11 Security Log Entry Types. BPS Pro has a total of 27 Security Log Entry Types.', 'bulletproof-security').'<br><br><strong>'.__('HTTP Response Status Codes', 'bulletproof-security').'</strong><br>'.__('400 Bad Request - The request could not be understood by the server due to malformed syntax.', 'bulletproof-security').'<br><br>'.__('403 Forbidden - The Server understood the request, but is refusing to fulfill it.', 'bulletproof-security').'<br><br>'.__('404 Not Found - The Server has not found anything matching the Request-URI|URL. No indication is given of whether the condition is temporary or permanent.', 'bulletproof-security').'<br><br>'.__('405 Method Not Allowed - The method specified in the Request-Line is not allowed for the resource identified by the Request-URI. The response MUST include an Allow header containing a list of valid methods for the requested resource. BPS blocks HEAD Requests using a 405 ErrorDocument Redirect. The BPS 405 Template has an Allow header field for the GET, POST and PUT HTTP Methods.', 'bulletproof-security').'<br><br>'.__('410 Gone - The requested resource is no longer available at the Server/site and no forwarding address is known. This condition is expected to be considered permanent.', 'bulletproof-security').'<br><br><strong>'.__('Security Log File Size', 'bulletproof-security').'</strong><br>'.__('Displays the size of your Security Log file. 500KB is the optimum recommended log file size setting that you should choose for your log file to be automatically zipped, emailed and replaced with a new blank Security Log file.', 'bulletproof-security').'<br><br><strong>'.__('Security Log Status:', 'bulletproof-security').'</strong><br>'.__('Displays either Logging is Turned On or Logging is Turned Off.', 'bulletproof-security').'<br><br><strong>'.__('Security Log Last Modified Time:', 'bulletproof-security').'</strong><br>'.__('Displays the last time a Security Log entry was logged.', 'bulletproof-security').'<br><br><strong>'.__('Turn Off Logging', 'bulletproof-security').'</strong><br>'.__('Turns Off HTTP 400, 403, 404, 405 & 410 Security Logging.', 'bulletproof-security').'<br><br><strong>'.__('Turn On Logging', 'bulletproof-security').'</strong><br>'.__('Turns On HTTP 400, 403, 404, 405 & 410 Security Logging.', 'bulletproof-security').'<br><br><strong>'.__('Delete Log Button', 'bulletproof-security').'</strong><br>'.__('Clicking the Delete Log button will delete the entire contents of your Security Log File.', 'bulletproof-security').'<br><br><strong>'.__('POST Request Body Data', 'bulletproof-security').'</strong><br>'.__('The POST Request Body Data option settings only affect the REQUEST BODY Security Log field in your Security Log entries when a POST Request is blocked and logged by BPS. To capture/log all POST Request Attacks against your website you will need to add the POST Request Attack Protection Bonus Custom Code. A link to that Bonus Custom Code is at the top of this Question Mark help window. If you do not want to add the Bonus Custom Code then some, but not all POST Request Attacks will be captured/logged in the Security Log.', 'bulletproof-security').'<br><br>'.__('The default POST Request Body Data option setting is "Do Not Log POST Request Body Data (0KB)", which means do not capture/log the POST Request data that was sent in the attack. You will see this text in the REQUEST BODY Security Log entry field: "REQUEST BODY: BPS Security Log option set to: Do Not Log POST Request Body Data" instead of the actual POST Request Body data used in the attack on your website. The reason the default setting is set to: "Do Not Log POST Request Body Data (0KB)" is because some web hosts falsely interpret the BPS Security Log text file as malicious since hacker code used to attack your website can be captured/logged in the Security Log text file if you are using the "Log Minimum..." or "Log Maximum..." POST Request Body Data option settings.', 'bulletproof-security').'<br><br>'.__('The "Log Minimum POST Request Body Data (5KB)" option setting will capture/log the first 500 characters or 5KB of hacker code used to attack your website in a POST Request attack and log that hacker code in the REQUEST BODY Security Log entry field. The "Log Maximum POST Request Body Data (250KB)" option setting will capture/log the first 250000 characters or roughly 250KB of hacker code used to attack your website in a POST Request attack and log that hacker code in the REQUEST BODY Security Log entry field. Hacker scripts typically range in size from 20KB to 100KB on average.', 'bulletproof-security').'<br><br><strong>'.__('Important Notes: ', 'bulletproof-security').'</strong>'.__('If you are using email security protection on your computer then your automatically zipped and emailed BPS Security Log files may be seen as containing a virus (hacker script/code) and they could be automatically deleted by your email protection application on your computer. Your computer security protection software may also see the Security Log file as malicious and block it. If your web host falsely sees the BPS Security Log file as a malicious hacker file then you will need to change your POST Request Body Data option setting and use the "Do Not Log POST Request Body Data (0KB)" option setting instead.', 'bulletproof-security').'<br><br><strong>'.__('Ignoring|Not Logging User Agents|Bots - Allowing|Logging User Agents|Bots', 'bulletproof-security').'</strong><br>'.__('Adding or Removing User Agents|Bots adds or removes User Agents|Bots to your Database and also writes new code to the 403.php Security Logging template. The 403.php Security Logging file is where the check occurs whether or not to log or not log a User Agent|Bot. It would be foolish and costly to website performance to have your WordPress database handle the task/function/burden of checking which User Agents|Bots to log or not log. WordPress database queries are the most resource draining function of a WordPress website. The more database queries that are happening at the same time on your website the slower your website will perform and load. For this reason the Security Logging check is done from code in the 403.php Security Logging file.', 'bulletproof-security').'<br><br>'.__('If a particular User Agent|Bot is being logged excessively in your Security Log file you can Ignore|Not Log that particular User Agent|Bot based on the HTTP_USER_AGENT string in your Security Log. Example User Agent strings: Mozilla/5.0 (compatible; 008/0.85; http://www.80legs.com/webcrawler.html) Gecko/2008032620 and facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php). You could enter 008 or 80legs or webcrawler to Ignore|Not Log the 80legs User Agent|Bot. You could enter facebookexternalhit or facebook or externalhit_uatext to Ignore|Not Log the facebook User Agent|Bot.', 'bulletproof-security').'<br><br><strong>'.__('Add User Agents|Bots to Ignore|Not Log', 'bulletproof-security').'</strong><br>'.__('Add the User Agent|Bot names you would like to Ignore|Not Log in your Security Log. These code characters are not allowed to be used: ', 'bulletproof-security').'/ | < > \' "<br><br><strong>'.__('Removing User Agents|Bots to Allow|Log', 'bulletproof-security').'</strong><br>'.__('To search for ALL User Agents|Bots to remove/delete from your database leave the text box blank and click the Remove|Allow button. You will see a Dynamically generated Radio Button Form that will display the User Agents|Bots in the BPS User Agent|Bot database Table, Remove or Do Not Remove Radio buttons and the Timestamp when the User Agent|Bot was added to your DB. Select the Remove Radio buttons for the User Agents|Bots you want to remove/delete from your database and click the Remove button. Removing/deleting User Agents|Bots from your database means that you want to have these User Agents|Bots logged again in your Security Log.', 'bulletproof-security').'<br><br><strong>'.__('View Log', 'bulletproof-security').'</strong><br>'.__('In previous versions of BPS the Security Log was displayed open by default. The Security Log is now closed by default due to problems with ModSecurity CRS seeing the Security Log entries as malicious and blocking access to the Security Log page. If you are unable to open/view your Security Log file you can view your Security Log file by using FTP or your web host control panel file manager and opening the Security Log file located here ', 'bulletproof-security').'/'.$bps_wpcontent_dir.'/bps-backup/logs/http_error_log.txt. '.__('The new View Log feature also resolves another problem, which is if the Security Log file automation is not working due to WP Cron jobs being disabled on a website then the Security Log file will not be automatically zipped, emailed to you and replaced with a new blank log file at regular cron intervals by the Security Log file Cron job automation. If your Security Log file is extremely large and you are unable to open/view it then you can manually download a copy of the Security Log file using FTP or your web host control panel file manager and then delete it using the Delete Log button.', 'bulletproof-security'); echo $text; ?></p>
235
  </div>
236
 
237
  <?php
admin/system-info/system-info.php CHANGED
@@ -435,24 +435,41 @@ function bpsPro_count_network_activated_plugins($count) {
435
 
436
  $opcache_restrict_api = trim(ini_get('opcache.restrict_api'));
437
 
438
- if ( function_exists('opcache_get_status') && ! empty($opcache_restrict_api) && mb_stripos(__FILE__, $opcache_restrict_api) !== 0 ) {
439
- $opcache_get_status = opcache_get_status();
440
- echo '<strong><span class="sysinfo-label-text">'.__('OPcache', 'bulletproof-security').':</span></strong> ';
441
- if ( $opcache_get_status['opcache_enabled'] == '1' ) {
442
- if ( function_exists('opcache_get_configuration') ) {
443
- $opcache_get_config = opcache_get_configuration();
444
- echo $opcache_get_config['version']['opcache_product_name'].' '.$opcache_get_config['version']['version'].' '.__('is Enabled', 'bulletproof-security');
445
- }
446
  } else {
447
- echo __('OPcache is Not Enabled', 'bulletproof-security');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
448
  }
449
- echo '<br>';
450
  } else {
451
  echo '<strong><span class="sysinfo-label-text">'.__('OPcache', 'bulletproof-security').':</span></strong> ';
452
- echo __('OPcache is Not Enabled', 'bulletproof-security');
453
- echo '<br>';
454
- }
455
 
 
456
  echo '<strong><span class="sysinfo-label-text">'.__('ionCube Loader', 'bulletproof-security').':</span></strong> ';
457
  if ( extension_loaded('IonCube Loader') && function_exists('ioncube_loader_iversion') ) {
458
  echo __('ionCube Loader Extension is Loaded ', 'bulletproof-security').__('Version: ', 'bulletproof-security') . ioncube_loader_iversion();
@@ -560,7 +577,44 @@ function bpsPro_count_network_activated_plugins($count) {
560
  }
561
  }
562
 
563
- $text = '<strong><span class="sysinfo-label-text">'.__('Database Server Version: ', 'bulletproof-security').'</span></strong>'.$sqlversion.'<br><strong><span class="sysinfo-label-text">'.__('Database Client Version: ', 'bulletproof-security').'</span></strong>'.bps_mysqli_get_client_info().'<br><strong><span class="sysinfo-label-text">'.__('Database Hostname: ', 'bulletproof-security').'</span></strong>'.DB_HOST.'<br><strong><span class="sysinfo-label-text">'.__('Database Name: ', 'bulletproof-security').'</span></strong>'.DB_NAME.'<br><strong><span class="sysinfo-label-text">'.__('DB Table Prefix: ', 'bulletproof-security').'</span></strong>'.$wpdb->base_prefix.'<br><strong><span class="sysinfo-label-text">'.__('DB Charset: ', 'bulletproof-security').'</span></strong>'.$wpdb->charset.'<br><strong><span class="sysinfo-label-text">'.__('DB Collation: ', 'bulletproof-security').'</span></strong>'.$wpdb->collate.'<br><strong><span class="sysinfo-label-text">'.__('SQL Mode: ', 'bulletproof-security').'</span></strong>'.$sql_mode.'<br>';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
564
 
565
  echo $text;
566
  echo bps_wpdb_errors_off();
@@ -569,7 +623,7 @@ function bpsPro_count_network_activated_plugins($count) {
569
  $text = '<strong><span class="sysinfo-label-text">'.__('MySQL Extension: ', 'bulletproof-security').'</span></strong>'.__('Installed|Enabled', 'bulletproof-security').'<br>';
570
  echo $text;
571
  } else {
572
- $text = '<strong><span class="sysinfo-label-text">'.__('MySQL Extension: ', 'bulletproof-security').'</span></strong>'.__('NOT Installed|Enabled', 'bulletproof-security').'<br>';
573
  echo $text;
574
  }
575
 
@@ -577,7 +631,7 @@ function bpsPro_count_network_activated_plugins($count) {
577
  $text = '<strong><span class="sysinfo-label-text">'.__('MySQLi Extension: ', 'bulletproof-security').'</span></strong>'.__('Installed|Enabled', 'bulletproof-security').'<br>';
578
  echo $text;
579
  } else {
580
- $text = '<strong><span class="sysinfo-label-text">'.__('MySQLi Extension: ', 'bulletproof-security').'</span></strong>'.__('NOT Installed|Enabled', 'bulletproof-security').'<br>';
581
  echo $text;
582
  }
583
 
@@ -947,7 +1001,9 @@ function bpsPro_count_network_activated_plugins($count) {
947
  $bps_db_backup_folder = ! isset($DBBoptions['bps_db_backup_folder']) ? '' : $DBBoptions['bps_db_backup_folder'];
948
  $db_backup = str_replace( array( '\\', '//'), "/", $bps_db_backup_folder );
949
  $wpcontent_single_slash = str_replace( array( '\\', '//'), "/", WP_CONTENT_DIR );
950
-
 
 
951
  if ( substr($sapi_type, 0, 6) != 'apache' ) {
952
 
953
  echo '<div style=\'padding:0px 0px 5px 5px;color:#000;\'><strong>'; _e('CGI File and Folder Permissions|Recommendations', 'bulletproof-security'); echo '</strong></div>';
@@ -962,8 +1018,34 @@ function bpsPro_count_network_activated_plugins($count) {
962
  echo '</table>';
963
 
964
  bps_check_perms("../", "705");
 
 
965
  bps_check_perms("../.htaccess", "404");
 
 
 
 
 
 
 
 
 
 
 
 
966
  bps_check_perms("../wp-config.php", "604");
 
 
 
 
 
 
 
 
 
 
 
 
967
  bps_check_perms("../wp-admin", "705");
968
  bps_check_perms("../wp-includes", "705");
969
  bps_check_perms("../$bps_wpcontent_dir", "705");
@@ -1002,8 +1084,34 @@ function bpsPro_count_network_activated_plugins($count) {
1002
  echo '</table>';
1003
 
1004
  bps_check_perms("../", "755");
 
 
1005
  bps_check_perms("../.htaccess", "644");
 
 
 
 
 
 
 
 
 
 
 
 
1006
  bps_check_perms("../wp-config.php", "644");
 
 
 
 
 
 
 
 
 
 
 
 
1007
  bps_check_perms("../wp-admin", "755");
1008
  bps_check_perms("../wp-includes", "755");
1009
  bps_check_perms("../$bps_wpcontent_dir", "755");
435
 
436
  $opcache_restrict_api = trim(ini_get('opcache.restrict_api'));
437
 
438
+ if ( $opcache_restrict_api == false || $opcache_restrict_api != false && $opcache_restrict_api == '' ) {
439
+
440
+ $disable_functions = explode( ',', ini_get('disable_functions') );
441
+
442
+ if ( in_array( 'opcache_get_status', $disable_functions ) || in_array( 'opcache_get_configuration', $disable_functions ) ) {
443
+ echo '<strong><span class="sysinfo-label-text">'.__('OPcache', 'bulletproof-security').':</span></strong> ';
444
+ echo __('opcache_get_status and/or opcache_get_configuration functions are disabled.', 'bulletproof-security');
445
+
446
  } else {
447
+
448
+ if ( function_exists('opcache_get_status') ) {
449
+ $opcache_get_status = opcache_get_status();
450
+ echo '<strong><span class="sysinfo-label-text">'.__('OPcache', 'bulletproof-security').':</span></strong> ';
451
+
452
+ if ( $opcache_get_status['opcache_enabled'] == '1' ) {
453
+ if ( function_exists('opcache_get_configuration') ) {
454
+ $opcache_get_config = opcache_get_configuration();
455
+ echo $opcache_get_config['version']['opcache_product_name'].' '.$opcache_get_config['version']['version'].' '.__('is Enabled', 'bulletproof-security');
456
+ }
457
+ } else {
458
+ echo __('OPcache is Not Enabled', 'bulletproof-security');
459
+ }
460
+
461
+ } else {
462
+ echo '<strong><span class="sysinfo-label-text">'.__('OPcache', 'bulletproof-security').':</span></strong> ';
463
+ echo __('OPcache is Not Enabled', 'bulletproof-security');
464
+ }
465
  }
466
+
467
  } else {
468
  echo '<strong><span class="sysinfo-label-text">'.__('OPcache', 'bulletproof-security').':</span></strong> ';
469
+ echo __('opcache.restrict_api directive is in use.', 'bulletproof-security');
470
+ }
 
471
 
472
+ echo '<br>';
473
  echo '<strong><span class="sysinfo-label-text">'.__('ionCube Loader', 'bulletproof-security').':</span></strong> ';
474
  if ( extension_loaded('IonCube Loader') && function_exists('ioncube_loader_iversion') ) {
475
  echo __('ionCube Loader Extension is Loaded ', 'bulletproof-security').__('Version: ', 'bulletproof-security') . ioncube_loader_iversion();
577
  }
578
  }
579
 
580
+ $hostname_search = 'hostname';
581
+ $port_search = 'port';
582
+ $connect_timeout_search = 'connect_timeout';
583
+ $storage_engine_search = 'storage_engine';
584
+
585
+ $result = $wpdb->get_results( $wpdb->prepare( "SHOW GLOBAL VARIABLES WHERE (Variable_name = %s) OR (Variable_name = %s) OR (Variable_name = %s) OR (Variable_name = %s)", $hostname_search, $port_search, $connect_timeout_search, $storage_engine_search ) );
586
+
587
+ foreach ( $result as $data ) {
588
+
589
+ if ( $data->Variable_name == 'hostname' ) {
590
+ $DB_Hostname = $data->Value;
591
+ }
592
+ if ( $data->Variable_name == 'port' ) {
593
+ $DB_Port = $data->Value;
594
+ }
595
+ if ( $data->Variable_name == 'connect_timeout' ) {
596
+ $DB_Connect_timeout = $data->Value;
597
+ }
598
+ if ( $data->Variable_name == 'storage_engine' ) {
599
+ $DB_Storage_engine = $data->Value;
600
+ }
601
+ }
602
+
603
+ $DB_Hostname_ip = gethostbyname($DB_Hostname);
604
+
605
+ $text = '<strong><span class="sysinfo-label-text">'.__('DB Version: ', 'bulletproof-security').'</span></strong>'.$sqlversion.
606
+ '<br><strong><span class="sysinfo-label-text">'.__('DB Client Version: ', 'bulletproof-security').'</span></strong>'.bps_mysqli_get_client_info().
607
+ '<br><strong><span class="sysinfo-label-text">'.__('DB Hostname (Local): ', 'bulletproof-security').'</span></strong>'.DB_HOST.
608
+ '<br><strong><span class="sysinfo-label-text">'.__('DB Hostname (Server): ', 'bulletproof-security').'</span></strong>'.$DB_Hostname.
609
+ '<br><strong><span class="sysinfo-label-text">'.__('DB Hostname IP (Server): ', 'bulletproof-security').'</span></strong>'.$DB_Hostname_ip.
610
+ '<br><strong><span class="sysinfo-label-text">'.__('DB Storage Engine: ', 'bulletproof-security').'</span></strong>'.$DB_Storage_engine.
611
+ '<br><strong><span class="sysinfo-label-text">'.__('DB Connect Timeout: ', 'bulletproof-security').'</span></strong>'.$DB_Connect_timeout.__(' seconds', 'bulletproof-security').
612
+ '<br><strong><span class="sysinfo-label-text">'.__('DB Port: ', 'bulletproof-security').'</span></strong>'.$DB_Port.
613
+ '<br><strong><span class="sysinfo-label-text">'.__('DB Name: ', 'bulletproof-security').'</span></strong>'.DB_NAME.
614
+ '<br><strong><span class="sysinfo-label-text">'.__('DB Table Prefix: ', 'bulletproof-security').'</span></strong>'.$wpdb->base_prefix.
615
+ '<br><strong><span class="sysinfo-label-text">'.__('DB Charset: ', 'bulletproof-security').'</span></strong>'.$wpdb->charset.
616
+ '<br><strong><span class="sysinfo-label-text">'.__('DB Collation: ', 'bulletproof-security').'</span></strong>'.$wpdb->collate.
617
+ '<br><strong><span class="sysinfo-label-text">'.__('SQL Mode: ', 'bulletproof-security').'</span></strong>'.$sql_mode.'<br>';
618
 
619
  echo $text;
620
  echo bps_wpdb_errors_off();
623
  $text = '<strong><span class="sysinfo-label-text">'.__('MySQL Extension: ', 'bulletproof-security').'</span></strong>'.__('Installed|Enabled', 'bulletproof-security').'<br>';
624
  echo $text;
625
  } else {
626
+ $text = '<strong><span class="sysinfo-label-text">'.__('MySQL Extension: ', 'bulletproof-security').'</span></strong>'.__('Not Installed|Enabled', 'bulletproof-security').'<br>';
627
  echo $text;
628
  }
629
 
631
  $text = '<strong><span class="sysinfo-label-text">'.__('MySQLi Extension: ', 'bulletproof-security').'</span></strong>'.__('Installed|Enabled', 'bulletproof-security').'<br>';
632
  echo $text;
633
  } else {
634
+ $text = '<strong><span class="sysinfo-label-text">'.__('MySQLi Extension: ', 'bulletproof-security').'</span></strong>'.__('Not Installed|Enabled', 'bulletproof-security').'<br>';
635
  echo $text;
636
  }
637
 
1001
  $bps_db_backup_folder = ! isset($DBBoptions['bps_db_backup_folder']) ? '' : $DBBoptions['bps_db_backup_folder'];
1002
  $db_backup = str_replace( array( '\\', '//'), "/", $bps_db_backup_folder );
1003
  $wpcontent_single_slash = str_replace( array( '\\', '//'), "/", WP_CONTENT_DIR );
1004
+ $bps_root_htaccess_file = ABSPATH . '.htaccess';
1005
+ $bps_wpconfig_file = ABSPATH . 'wp-config.php';
1006
+
1007
  if ( substr($sapi_type, 0, 6) != 'apache' ) {
1008
 
1009
  echo '<div style=\'padding:0px 0px 5px 5px;color:#000;\'><strong>'; _e('CGI File and Folder Permissions|Recommendations', 'bulletproof-security'); echo '</strong></div>';
1018
  echo '</table>';
1019
 
1020
  bps_check_perms("../", "705");
1021
+
1022
+ if ( file_exists($bps_root_htaccess_file) ) {
1023
  bps_check_perms("../.htaccess", "404");
1024
+ } else {
1025
+ echo '<table style="width:100%;background-color:#fff;">';
1026
+ echo '<tr>';
1027
+ echo '<td style="color:#000;background-color:#fff;padding:2px;width:40%;">' . '../.htaccess' . '</td>';
1028
+ echo '<td style="color:#000;background-color:#fff;padding:2px;width:15%;">' . '---' . '</td>';
1029
+ echo '<td style="color:#000;background-color:#fff;padding:2px;width:15%;">' . '---' . '</td>';
1030
+ echo '<td style="color:#000;background-color:#fff;padding:2px;width:15%;">' . '---' . '</td>';
1031
+ echo '<td style="color:#000;background-color:#fff;padding:2px;width:15%;">' . '---' . '</td>';
1032
+ echo '</tr>';
1033
+ echo '</table>';
1034
+ }
1035
+ if ( file_exists($bps_wpconfig_file) ) {
1036
  bps_check_perms("../wp-config.php", "604");
1037
+ } else {
1038
+ echo '<table style="width:100%;background-color:#fff;">';
1039
+ echo '<tr>';
1040
+ echo '<td style="color:#000;background-color:#fff;padding:2px;width:40%;">' . '../wp-config.php' . '</td>';
1041
+ echo '<td style="color:#000;background-color:#fff;padding:2px;width:15%;">' . '---' . '</td>';
1042
+ echo '<td style="color:#000;background-color:#fff;padding:2px;width:15%;">' . '---' . '</td>';
1043
+ echo '<td style="color:#000;background-color:#fff;padding:2px;width:15%;">' . '---' . '</td>';
1044
+ echo '<td style="color:#000;background-color:#fff;padding:2px;width:15%;">' . '---' . '</td>';
1045
+ echo '</tr>';
1046
+ echo '</table>';
1047
+ }
1048
+
1049
  bps_check_perms("../wp-admin", "705");
1050
  bps_check_perms("../wp-includes", "705");
1051
  bps_check_perms("../$bps_wpcontent_dir", "705");
1084
  echo '</table>';
1085
 
1086
  bps_check_perms("../", "755");
1087
+
1088
+ if ( file_exists($bps_root_htaccess_file) ) {
1089
  bps_check_perms("../.htaccess", "644");
1090
+ } else {
1091
+ echo '<table style="width:100%;background-color:#fff;">';
1092
+ echo '<tr>';
1093
+ echo '<td style="color:#000;background-color:#fff;padding:2px;width:40%;">' . '../.htaccess' . '</td>';
1094
+ echo '<td style="color:#000;background-color:#fff;padding:2px;width:15%;">' . '---' . '</td>';
1095
+ echo '<td style="color:#000;background-color:#fff;padding:2px;width:15%;">' . '---' . '</td>';
1096
+ echo '<td style="color:#000;background-color:#fff;padding:2px;width:15%;">' . '---' . '</td>';
1097
+ echo '<td style="color:#000;background-color:#fff;padding:2px;width:15%;">' . '---' . '</td>';
1098
+ echo '</tr>';
1099
+ echo '</table>';
1100
+ }
1101
+ if ( file_exists($bps_wpconfig_file) ) {
1102
  bps_check_perms("../wp-config.php", "644");
1103
+ } else {
1104
+ echo '<table style="width:100%;background-color:#fff;">';
1105
+ echo '<tr>';
1106
+ echo '<td style="color:#000;background-color:#fff;padding:2px;width:40%;">' . '../wp-config.php' . '</td>';
1107
+ echo '<td style="color:#000;background-color:#fff;padding:2px;width:15%;">' . '---' . '</td>';
1108
+ echo '<td style="color:#000;background-color:#fff;padding:2px;width:15%;">' . '---' . '</td>';
1109
+ echo '<td style="color:#000;background-color:#fff;padding:2px;width:15%;">' . '---' . '</td>';
1110
+ echo '<td style="color:#000;background-color:#fff;padding:2px;width:15%;">' . '---' . '</td>';
1111
+ echo '</tr>';
1112
+ echo '</table>';
1113
+ }
1114
+
1115
  bps_check_perms("../wp-admin", "755");
1116
  bps_check_perms("../wp-includes", "755");
1117
  bps_check_perms("../$bps_wpcontent_dir", "755");
admin/theme-skin/theme-skin.php CHANGED
@@ -33,7 +33,7 @@ if ( isset( $ScrollTop_options['bps_scrolltop'] ) && $ScrollTop_options['bps_scr
33
  }
34
  ?>
35
 
36
- <h2 class="bps-tab-title"><?php _e('UI|UX Settings', 'bulletproof-security'); ?></h2>
37
  <div id="message" class="updated" style="border:1px solid #999;background-color:#000;">
38
 
39
  <?php
@@ -62,7 +62,7 @@ $bps_bottomDiv = '</p></div>';
62
  <div id="bps-tabs" class="bps-menu">
63
  <div id="bpsHead"><img src="<?php echo plugins_url('/bulletproof-security/admin/images/bps-plugin-logo.jpg'); ?>" /></div>
64
  <ul>
65
- <li><a href="#bps-tabs-1"><?php _e('UI|UX Settings', 'bulletproof-security'); ?></a></li>
66
  <li><a href="#bps-tabs-2"><?php _e('Help &amp; FAQ', 'bulletproof-security'); ?></a></li>
67
  </ul>
68
 
@@ -76,10 +76,10 @@ $bps_bottomDiv = '</p></div>';
76
  <tr>
77
  <td class="bps-table_cell_help">
78
 
79
- <h3 style="margin:0px 0px 10px 0px;"><?php _e('UI|UX Settings', 'bulletproof-security'); ?> <button id="bps-open-modal1" class="button bps-modal-button">
80
  <img src="<?php echo plugins_url('/bulletproof-security/admin/images/question-mark-large.jpg'); ?>" style="margin:0px 0px 0px -10px" /></button></h3>
81
 
82
- <div id="bps-modal-content1" class="bps-dialog-hide" title="<?php _e('UI|UX Settings', 'bulletproof-security'); ?>">
83
  <p><?php $text = '<strong>'.__('This Question Mark Help window is draggable (top) and resizable (bottom right corner)', 'bulletproof-security').'</strong><br><br>';
84
 
85
  echo $text;
33
  }
34
  ?>
35
 
36
+ <h2 class="bps-tab-title"><?php _e('UI|UX Options', 'bulletproof-security'); ?></h2>
37
  <div id="message" class="updated" style="border:1px solid #999;background-color:#000;">
38
 
39
  <?php
62
  <div id="bps-tabs" class="bps-menu">
63
  <div id="bpsHead"><img src="<?php echo plugins_url('/bulletproof-security/admin/images/bps-plugin-logo.jpg'); ?>" /></div>
64
  <ul>
65
+ <li><a href="#bps-tabs-1"><?php _e('UI|UX Options', 'bulletproof-security'); ?></a></li>
66
  <li><a href="#bps-tabs-2"><?php _e('Help &amp; FAQ', 'bulletproof-security'); ?></a></li>
67
  </ul>
68
 
76
  <tr>
77
  <td class="bps-table_cell_help">
78
 
79
+ <h3 style="margin:0px 0px 10px 0px;"><?php _e('UI|UX Options', 'bulletproof-security'); ?> <button id="bps-open-modal1" class="button bps-modal-button">
80
  <img src="<?php echo plugins_url('/bulletproof-security/admin/images/question-mark-large.jpg'); ?>" style="margin:0px 0px 0px -10px" /></button></h3>
81
 
82
+ <div id="bps-modal-content1" class="bps-dialog-hide" title="<?php _e('UI|UX Options', 'bulletproof-security'); ?>">
83
  <p><?php $text = '<strong>'.__('This Question Mark Help window is draggable (top) and resizable (bottom right corner)', 'bulletproof-security').'</strong><br><br>';
84
 
85
  echo $text;
admin/wizard/wizard-functions.php CHANGED
@@ -1030,8 +1030,7 @@ function bpsPro_presave_uiux_settings() {
1030
 
1031
  // Theme Skin
1032
  $UITSoptions = get_option('bulletproof_security_options_theme_skin');
1033
- $uits = ! isset($UITSoptions['bps_ui_theme_skin']) ? 'blue' : $UITSoptions['bps_ui_theme_skin'];
1034
- $uits_options = array('bps_ui_theme_skin' => $uits);
1035
 
1036
  foreach( $uits_options as $key => $value ) {
1037
  update_option('bulletproof_security_options_theme_skin', $uits_options);
@@ -1126,6 +1125,10 @@ function bpsPro_presave_setupwizard_option_settings() {
1126
  update_option('bulletproof_security_options_GDMW', $SWGDMW_options);
1127
  }
1128
 
 
 
 
 
1129
  // Enable|Disable htaccess files
1130
  $HFiles_options = get_option('bulletproof_security_options_htaccess_files');
1131
  $swhf = ! isset($HFiles_options['bps_htaccess_files']) ? 'enabled' : $HFiles_options['bps_htaccess_files'];
1030
 
1031
  // Theme Skin
1032
  $UITSoptions = get_option('bulletproof_security_options_theme_skin');
1033
+ $uits_options = array('bps_ui_theme_skin' => 'blue');
 
1034
 
1035
  foreach( $uits_options as $key => $value ) {
1036
  update_option('bulletproof_security_options_theme_skin', $uits_options);
1125
  update_option('bulletproof_security_options_GDMW', $SWGDMW_options);
1126
  }
1127
 
1128
+ if ( is_multisite() ) {
1129
+ bpsPro_network_subsites_gdmw_settings();
1130
+ }
1131
+
1132
  // Enable|Disable htaccess files
1133
  $HFiles_options = get_option('bulletproof_security_options_htaccess_files');
1134
  $swhf = ! isset($HFiles_options['bps_htaccess_files']) ? 'enabled' : $HFiles_options['bps_htaccess_files'];
admin/wizard/wizard.php CHANGED
@@ -1204,7 +1204,7 @@ bpsSetupWizardPrechecks();
1204
  <strong><a href="https://forum.ait-pro.com/forums/topic/bps-gdpr-compliance/" title="GDPR Compliance" target="_blank"><?php _e('GDPR Compliance Forum Topic', 'bulletproof-security'); ?></a></strong><br /><br />
1205
 
1206
  <?php
1207
- $text = '<strong>'.__('AutoFix (AutoWhitelist|AutoSetup|AutoCleanup)', 'bulletproof-security').'</strong><br>'.__('Setup Wizard AutoFix is turned On by default. When AutoFix is turned On the Setup Wizard will automatically create htaccess whitelist rules in BPS Custom Code and your Live htaccess files for other plugins and themes that you have installed that require htaccess code whitelist rules. Setup Wizard AutoFix will also automatically setup or cleanup htaccess code in BPS Custom Code for these caching plugins: WP Super Cache, W3 Total Cache, Comet Cache Plugin (free & Pro), WP Fastest Cache Plugin (free & Premium), LiteSpeed Cache and WP Rocket. If a problem occurs with AutoFix you can turn On the AutoFix Debugger on the BPS UI|UX Settings page > BPS UI|UX|AutoFix Debug option to check the plugin or theme name and the BPS Custom Code text box where the problem is occurring. You can also turn Off AutoFix and AutoFix will not try to detect or create Custom Code whitelist rules or setup or cleanup caching plugins htaccess code. If a problem does occur with AutoFix turn On the BPS UI|UX|AutoFix Debug option, copy the AutoFix Debug information that is displayed to you and then click the AutoFix Forum Topic link at the top of this Question Mark help window and post a forum Reply with your AutoFix Debug information so that we can figure out what the problem is.', 'bulletproof-security').'<br><br><strong>'.__('GDPR Compliance (IP Address Logging On|Off)', 'bulletproof-security').'</strong><br>'.__('The GDPR Compliance option setting is set to Off by default. Choosing the GDPR Compliance On option setting will disable IP address logging in all BPS features that log IP addresses. This plain text will be logged instead of IP addresses: GDPR Compliance On. List of BPS features that log IP addresses: Security Log, Login Security and Maintenance Mode. Note: For simplicity and ease of use this GDPR Compliance Setup Wizard Options setting is the only option setting that needs to be set instead of creating individual option settings in all BPS features that perform IP address logging. For more information about GDPR Compliance click the GDPR Compliance Forum Topic link at the top of this Question Mark help window.', 'bulletproof-security').'<br><br><strong>'.__('Go Daddy Managed WordPress Hosting (GDMW):', 'bulletproof-security').'</strong><br>'.__('This option is ONLY for a special type of Go Daddy Hosting account called "Managed WordPress Hosting" and is NOT for regular/standard Go Daddy Hosting account types. Leave the default setting set to No, unless you have a Go Daddy Managed WordPress Hosting account. See the Forum Help Links section above for more information.', 'bulletproof-security').'<br><br><strong>'.__('Enable|Disable htaccess Files:', 'bulletproof-security').'</strong><br>'.__('Before changing this option setting, click the ', 'bulletproof-security').'<strong><font color="blue">'.__('Enable|Disable htaccess Files', 'bulletproof-security').'</font></strong>'.__(' Forum Help Link at the top of this Question Mark help window to find out exactly what this option setting does and when it should or should not be used. htaccess Files Disabled: Will disable all BPS htaccess features and files. htaccess Files Enabled: Will enable all BPS htaccess freatures and files.', 'bulletproof-security').'<br><br><strong>'.__('Enable|Disable wp-admin BulletProof Mode', 'bulletproof-security').'</strong><br>'.__('The default setting is already set to: wp-admin BulletProof Mode Enabled. If you would like to disable wp-admin BulletProof Mode select wp-admin BulletProof Mode Disabled.', 'bulletproof-security').'<br><br><strong>'.__('Zip File Download Fix (Incapsula, Proxy, Other Cause):', 'bulletproof-security').'</strong><br>'.__('This option should only be set to On if you are seeing a 403 error and/or unable to download these Zip files: Custom Code Export Zip file, Login Security Table Export Zip file or the Setup Wizard Root htaccess file backup Zip file. The Setup Wizard Root htaccess file backup Zip file link is only displayed if BPS detects that your Root htaccess file is not a BPS Root htaccess file. If you are still unable to download zip files after setting this option to On then you will need to whitelist your Proxy IP address in the Plugin Firewall Whitelist by Hostname (domain name) and IP Address tool under the Plugin Firewall Additional Whitelist Tools accordion tab. If that does not work then you will need to deactivate the Plugin Firewall temporarily, download the zip file and then activate the Plugin Firewall again.', 'bulletproof-security').'<br><br><strong>'.__('Multisite Hide|Display System Info Page for Subsites:', 'bulletproof-security').'</strong><br>'.__('This option is for Network|Multisite sites only. Choosing Hide System Info Page will hide the System Info menu link under the BPS navigational menus. Choosing Display System Info page will display the System Info menu link under the BPS navigational mensus.', 'bulletproof-security').'<br><br><strong>'.__('Network|Multisite Sitewide Login Security Settings', 'bulletproof-security').'</strong><br>'.__('This option is for Network|Multisite sites only. This is an independent option Form that creates and saves Login Security DB option settings for all Network sites when you click the Save Network LSM Options Sitewide button. If Login Security option settings have already been setup and saved for any Network site then those Login Security option settings will NOT be changed. If Login Security options settings have NOT already been setup and saved for any Network site then those Login Security option settings will be created and saved with these default settings: Max Login Attempts: 3, Automatic Lockout Time: 60, Manual Lockout Time: 60, Max DB Rows To Show: blank show all rows, Turn On|Turn Off: Turn On Login Security, Logging Options: Log Only Account Lockouts, Error Messages: Standard WP Login Errors, Attempts Remaining: Show Login Attempts Remaining, Password Reset: Enable Password Reset, Sort DB Rows: Ascending - Show Oldest Login First.', 'bulletproof-security').'<br><br><strong>'.__('Network|Multisite Sitewide JTC-Lite Settings', 'bulletproof-security').'</strong><br>'.__('This option is for Network|Multisite sites only. This is an independent option Form that creates and saves JTC-Lite DB option settings for all Network sites when you click the Save Network JTC Options Sitewide button. If JTC option settings have already been setup and saved for any Network site then those JTC option settings will not be changed. If JTC options settings have not already been setup and saved for any Network site then those JTC option settings will be created and saved with these default settings: JTC CAPTCHA: jtc, JTC ToolTip: Type/Enter: jtc, JTC Title|Text: Hover or click the text box below, Enable|Disable JTC Anti-Spam For These Forms: Login Form checkbox is checked and will display the JTC CAPTCHA text box on the Login Form.', 'bulletproof-security').'<br><br><strong>'.__('Network|Multisite Sitewide Force Strong Passwords Settings', 'bulletproof-security').'</strong><br>'.__('This option is for Network|Multisite sites ONLY. This is an independent option Form that creates and saves FSP DB option settings for all Network sites when you click the Save Network FSP Options Sitewide button. If FSP option settings have already been setup and saved for any Network site then those FSP option settings will NOT be changed. If FSP options settings have NOT already been setup and saved for any Network site then those FSP option settings will be created and saved with these default settings: FSP: Off, Password Character Length: 12, Password Criteria Requirements checkboxes: all checked and Displayed Message/Error Message: default FSP message.', 'bulletproof-security');
1208
  echo $text;
1209
  ?>
1210
 
@@ -1305,8 +1305,8 @@ bpsSetupWizardPrechecks();
1305
 
1306
  <strong><label for="mu-sysinfo"><?php _e('Multisite Hide|Display System Info Page for Subsites:', 'bulletproof-security'); ?></label></strong><br />
1307
  <select name="bulletproof_security_options_mu_sysinfo_select" class="form-300" style="margin-top:5px;">
1308
- <option value="display" <?php selected('display', $bps_sysinfo_hide_display); ?>><?php _e('Display System Info Page', 'bulletproof-security'); ?></option>
1309
  <option value="hide" <?php selected('hide', $bps_sysinfo_hide_display); ?>><?php _e('Hide System Info Page', 'bulletproof-security'); ?></option>
 
1310
  </select><br />
1311
  <input type="submit" name="Submit-MU-Sysinfo-Display" class="button bps-button" style="margin:10px 0px 20px 0px;width:232px;height:auto;white-space:normal" value="<?php esc_attr_e('Save Multisite Hide|Display Option', 'bulletproof-security') ?>" />
1312
  </form>
@@ -1338,6 +1338,15 @@ bpsSetupWizardPrechecks();
1338
  <?php bpsPro_network_subsites_fsp_settings(); ?>
1339
  </form>
1340
 
 
 
 
 
 
 
 
 
 
1341
  <?php
1342
  // Zip File Download Fix
1343
  if ( isset( $_POST['Submit-Zip-Download-Fix'] ) && current_user_can('manage_options') ) {
@@ -1681,6 +1690,68 @@ function bpsPro_network_subsites_fsp_settings() {
1681
  }
1682
  }
1683
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1684
  ?>
1685
 
1686
  </td>
@@ -1717,7 +1788,7 @@ function bpsPro_network_subsites_fsp_settings() {
1717
  <!--<strong><a href="https://forum.ait-pro.com/forums/topic/gdmw/" title="GDMW Hosting" target="_blank">
1718
  <?php _e('GDMW Hosting', 'bulletproof-security'); ?></a></strong><br />-->
1719
 
1720
- <?php $text = '<strong>'.__('Setup Wizard Export', 'bulletproof-security').'</strong><br>'.__('The Setup Wizard Export feature exports all BPS plugin option settings except for website specific settings that need to be setup by running the Setup Wizard after you have imported the BPS plugin option settings into a new website. The name of the exported zip file is: bps-settings-export.zip', 'bulletproof-security').'<br><br><strong>'.__('Setup Wizard Import', 'bulletproof-security').'</strong><br>'.__('To import BPS plugin option settings click the Choose File button, navigate to where you downloaded/saved the bps-settings-export.zip file on your computer, select the zip file and click the Open button. Then click the Import button. IMPORTANT: Run the Setup Wizard after the import completes. After running the Setup Wizard go to the BPS Security > htaccess Core > Custom Code tab page and check all of your custom htaccess code for any website specific custom htaccess code. Example: If you find any custom htaccess code that has a website URL for your other website that you exported BPS plugin settings from, then either edit that custom htaccess code or remove it from BPS Custom Code.', 'bulletproof-security').'<br><br><strong>'.__('Network|Multisite Help Info', 'bulletproof-security').'</strong><br>'.__('Setup Wizard Export|Import works for Network|Multisite site types, but only the Primary site\'s BPS plugin option settings are exported and imported. BPS plugin option settings are not exported or imported for Subsites. Note: These Setup Wizard Options > Network|Multisite Sitewide Login Security Settings, Network|Multisite Sitewide JTC Anti-Spam|Anti-Hacker Settings and Network|Multisite Sitewide Force Strong Passwords Settings can be run after importing BPS plugin option settings to apply BPS LSM, JTC and FSP plugin option settings from the Primary site to all Subsites.', 'bulletproof-security'); echo $text; ?></p>
1721
  </div>
1722
 
1723
  <div id="CC-Import" style="margin:20px 0px 20px 0px">
@@ -1887,7 +1958,7 @@ function bpsPro_SW_DB_Update() {
1887
 
1888
  require_once WP_PLUGIN_DIR . '/bulletproof-security/admin/wizard/setup-wizard-export.php';
1889
 
1890
- // Update the Admin email address option settings in Email|Log Settings and MMode to the current site's Admin email address
1891
  $admin_email = get_option('admin_email');
1892
  $BPS_Email_Options = get_option('bulletproof_security_options_email');
1893
 
@@ -2049,7 +2120,7 @@ global $bps_topDiv, $bps_bottomDiv;
2049
 
2050
  // Update BPS Pro plugin option settings from the extracted setup-wizard-export.php file.
2051
  if ( bpsPro_SW_DB_Update() == true ) {
2052
- $text = '<strong><font color="green">'.__('BPS plugin settings imported successfully.', 'bulletproof-security').'</font><br><br><font color="blue">'.__('IMPORTANT: Run the BPS Setup Wizard now.', 'bulletproof-security').'</font><br><br>'.__('After running the Setup Wizard go to the BPS Security > htaccess Core > Custom Code tab page and check all of your custom htaccess code for any website specific custom htaccess code. Example: If you find any custom htaccess code that has a website URL for your other website that you exported BPS plugin settings from, then either edit that custom htaccess code or remove it from BPS Custom Code.', 'bulletproof-security').'</strong>';
2053
  echo $text;
2054
  }
2055
 
@@ -2081,7 +2152,7 @@ global $bps_topDiv, $bps_bottomDiv;
2081
  // Update BPS Pro plugin option settings from the extracted setup-wizard-export.php file.
2082
  if ( bpsPro_SW_DB_Update() == true ) {
2083
 
2084
- $text = '<strong><font color="green">'.__('BPS plugin settings imported successfully.', 'bulletproof-security').'</font><br><br><font color="blue">'.__('IMPORTANT: Run the BPS Setup Wizard now.', 'bulletproof-security').'</font><br><br>'.__('After running the Setup Wizard go to the BPS Security > htaccess Core > Custom Code tab page and check all of your custom htaccess code for any website specific custom htaccess code. Example: If you find any custom htaccess code that has a website URL for your other website that you exported BPS plugin settings from, then either edit that custom htaccess code or remove it from BPS Custom Code.', 'bulletproof-security').'</strong>';
2085
  echo $text;
2086
  }
2087
 
1204
  <strong><a href="https://forum.ait-pro.com/forums/topic/bps-gdpr-compliance/" title="GDPR Compliance" target="_blank"><?php _e('GDPR Compliance Forum Topic', 'bulletproof-security'); ?></a></strong><br /><br />
1205
 
1206
  <?php
1207
+ $text = '<strong>'.__('AutoFix (AutoWhitelist|AutoSetup|AutoCleanup)', 'bulletproof-security').'</strong><br>'.__('Setup Wizard AutoFix is turned On by default. When AutoFix is turned On the Setup Wizard will automatically create htaccess whitelist rules in BPS Custom Code and your Live htaccess files for other plugins and themes that you have installed that require htaccess code whitelist rules. Setup Wizard AutoFix will also automatically setup or cleanup htaccess code in BPS Custom Code for these caching plugins: WP Super Cache, W3 Total Cache, Comet Cache Plugin (free & Pro), WP Fastest Cache Plugin (free & Premium), LiteSpeed Cache and WP Rocket. If a problem occurs with AutoFix you can turn On the AutoFix Debugger on the BPS UI|UX Options page > BPS UI|UX|AutoFix Debug option to check the plugin or theme name and the BPS Custom Code text box where the problem is occurring. You can also turn Off AutoFix and AutoFix will not try to detect or create Custom Code whitelist rules or setup or cleanup caching plugins htaccess code. If a problem does occur with AutoFix turn On the BPS UI|UX|AutoFix Debug option, copy the AutoFix Debug information that is displayed to you and then click the AutoFix Forum Topic link at the top of this Question Mark help window and post a forum Reply with your AutoFix Debug information so that we can figure out what the problem is.', 'bulletproof-security').'<br><br><strong>'.__('GDPR Compliance (IP Address Logging On|Off)', 'bulletproof-security').'</strong><br>'.__('The GDPR Compliance option setting is set to Off by default. Choosing the GDPR Compliance On option setting will disable IP address logging in all BPS features that log IP addresses. This plain text will be logged instead of IP addresses: GDPR Compliance On. List of BPS features that log IP addresses: Security Log, Login Security and Maintenance Mode. Note: For simplicity and ease of use this GDPR Compliance Setup Wizard Options setting is the only option setting that needs to be set instead of creating individual option settings in all BPS features that perform IP address logging. For more information about GDPR Compliance click the GDPR Compliance Forum Topic link at the top of this Question Mark help window.', 'bulletproof-security').'<br><br><strong>'.__('Go Daddy Managed WordPress Hosting (GDMW):', 'bulletproof-security').'</strong><br>'.__('This option is ONLY for a special type of Go Daddy Hosting account called "Managed WordPress Hosting" and is NOT for regular/standard Go Daddy Hosting account types. Leave the default setting set to No, unless you have a Go Daddy Managed WordPress Hosting account. See the Forum Help Links section above for more information.', 'bulletproof-security').'<br><br><strong>'.__('Enable|Disable htaccess Files:', 'bulletproof-security').'</strong><br>'.__('Before changing this option setting, click the ', 'bulletproof-security').'<strong><font color="blue">'.__('Enable|Disable htaccess Files', 'bulletproof-security').'</font></strong>'.__(' Forum Help Link at the top of this Question Mark help window to find out exactly what this option setting does and when it should or should not be used. htaccess Files Disabled: Will disable all BPS htaccess features and files. htaccess Files Enabled: Will enable all BPS htaccess freatures and files.', 'bulletproof-security').'<br><br><strong>'.__('Enable|Disable wp-admin BulletProof Mode', 'bulletproof-security').'</strong><br>'.__('The default setting is already set to: wp-admin BulletProof Mode Enabled. If you would like to disable wp-admin BulletProof Mode select wp-admin BulletProof Mode Disabled.', 'bulletproof-security').'<br><br><strong>'.__('Zip File Download Fix (Incapsula, Proxy, Other Cause):', 'bulletproof-security').'</strong><br>'.__('This option should only be set to On if you are seeing a 403 error and/or unable to download these Zip files: Custom Code Export Zip file, Login Security Table Export Zip file or the Setup Wizard Root htaccess file backup Zip file. The Setup Wizard Root htaccess file backup Zip file link is only displayed if BPS detects that your Root htaccess file is not a BPS Root htaccess file. If you are still unable to download zip files after setting this option to On then you will need to whitelist your Proxy IP address in the Plugin Firewall Whitelist by Hostname (domain name) and IP Address tool under the Plugin Firewall Additional Whitelist Tools accordion tab. If that does not work then you will need to deactivate the Plugin Firewall temporarily, download the zip file and then activate the Plugin Firewall again.', 'bulletproof-security').'<br><br><strong>'.__('Multisite Hide|Display System Info Page for Subsites:', 'bulletproof-security').'</strong><br>'.__('This option is for Network|Multisite sites only. Choosing Hide System Info Page will hide the System Info menu link under the BPS navigational menus. Choosing Display System Info page will display the System Info menu link under the BPS navigational mensus.', 'bulletproof-security').'<br><br><strong>'.__('Network|Multisite Sitewide Login Security Settings', 'bulletproof-security').'</strong><br>'.__('This option is for Network|Multisite sites only. This is an independent option Form that creates and saves Login Security DB option settings for all Network sites when you click the Save Network LSM Options Sitewide button. If Login Security option settings have already been setup and saved for any Network site then those Login Security option settings will NOT be changed. If Login Security options settings have NOT already been setup and saved for any Network site then those Login Security option settings will be created and saved with these default settings: Max Login Attempts: 3, Automatic Lockout Time: 60, Manual Lockout Time: 60, Max DB Rows To Show: blank show all rows, Turn On|Turn Off: Turn On Login Security, Logging Options: Log Only Account Lockouts, Error Messages: Standard WP Login Errors, Attempts Remaining: Show Login Attempts Remaining, Password Reset: Enable Password Reset, Sort DB Rows: Ascending - Show Oldest Login First.', 'bulletproof-security').'<br><br><strong>'.__('Network|Multisite Sitewide JTC-Lite Settings', 'bulletproof-security').'</strong><br>'.__('This option is for Network|Multisite sites only. This is an independent option Form that creates and saves JTC-Lite DB option settings for all Network sites when you click the Save Network JTC Options Sitewide button. If JTC option settings have already been setup and saved for any Network site then those JTC option settings will not be changed. If JTC options settings have not already been setup and saved for any Network site then those JTC option settings will be created and saved with these default settings: JTC CAPTCHA: jtc, JTC ToolTip: Type/Enter: jtc, JTC Title|Text: Hover or click the text box below, Enable|Disable JTC Anti-Spam For These Forms: Login Form checkbox is checked and will display the JTC CAPTCHA text box on the Login Form.', 'bulletproof-security').'<br><br><strong>'.__('Network|Multisite Sitewide Force Strong Passwords Settings', 'bulletproof-security').'</strong><br>'.__('This option is for Network|Multisite sites ONLY. This is an independent option Form that creates and saves FSP DB option settings for all Network sites when you click the Save Network FSP Options Sitewide button. If FSP option settings have already been setup and saved for any Network site then those FSP option settings will NOT be changed. If FSP options settings have NOT already been setup and saved for any Network site then those FSP option settings will be created and saved with these default settings: FSP: Off, Password Character Length: 12, Password Criteria Requirements checkboxes: all checked and Displayed Message/Error Message: default FSP message.', 'bulletproof-security').'<br><br><strong>'.__('Network|Multisite Sitewide GDMW Settings', 'bulletproof-security').'</strong><br>'.__('This option is for Network|Multisite sites ONLY. This is an independent option Form that creates and saves the GDMW option setting for all Network sites when you click the Save MU GDMW Options Sitewide button. If the GDMW option setting has already been setup and saved for any Network site then that GDMW option setting will not be changed. If the GDMW option setting has not already been setup and saved for any Network site then that GDMW option setting will be created and saved with the default setting: No, which means you do not have a GDMW hosted site. Running the Pre-Installation Wizard and Setup Wizard also updates the GDMW option setting on your Primary site and all Subsites.', 'bulletproof-security');
1208
  echo $text;
1209
  ?>
1210
 
1305
 
1306
  <strong><label for="mu-sysinfo"><?php _e('Multisite Hide|Display System Info Page for Subsites:', 'bulletproof-security'); ?></label></strong><br />
1307
  <select name="bulletproof_security_options_mu_sysinfo_select" class="form-300" style="margin-top:5px;">
 
1308
  <option value="hide" <?php selected('hide', $bps_sysinfo_hide_display); ?>><?php _e('Hide System Info Page', 'bulletproof-security'); ?></option>
1309
+ <option value="display" <?php selected('display', $bps_sysinfo_hide_display); ?>><?php _e('Display System Info Page', 'bulletproof-security'); ?></option>
1310
  </select><br />
1311
  <input type="submit" name="Submit-MU-Sysinfo-Display" class="button bps-button" style="margin:10px 0px 20px 0px;width:232px;height:auto;white-space:normal" value="<?php esc_attr_e('Save Multisite Hide|Display Option', 'bulletproof-security') ?>" />
1312
  </form>
1338
  <?php bpsPro_network_subsites_fsp_settings(); ?>
1339
  </form>
1340
 
1341
+ <form name="bpsNetGDMW" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/wizard/wizard.php#bps-tabs-2' ); ?>" method="post">
1342
+ <?php wp_nonce_field('bps_setup_wizard'); ?>
1343
+ <div>
1344
+ <strong><label for="NetLSM"><?php _e('Network|Multisite Sitewide GDMW Settings', 'bulletproof-security'); ?></label></strong><br />
1345
+ <input type="submit" name="Submit-Net-GDMW" class="button bps-button" style="margin:10px 0px 20px 0px;width:232px;height:auto;white-space:normal" value="<?php esc_attr_e('Save MU GDMW Options Sitewide', 'bulletproof-security') ?>" />
1346
+ </div>
1347
+ <?php bpsPro_network_subsites_gdmw_settings(); ?>
1348
+ </form>
1349
+
1350
  <?php
1351
  // Zip File Download Fix
1352
  if ( isset( $_POST['Submit-Zip-Download-Fix'] ) && current_user_can('manage_options') ) {
1690
  }
1691
  }
1692
  }
1693
+
1694
+ // Network|Multisite: update/save GDMW DB option settings for all sites
1695
+ // This function is processed in the Setup Wizard by this function: bpsPro_presave_setupwizard_option_settings()
1696
+ function bpsPro_network_subsites_gdmw_settings() {
1697
+
1698
+ if ( isset( $_POST['Submit-Net-GDMW'] ) && current_user_can('manage_options') || isset( $_POST['Submit-Setup-Wizard'] ) && current_user_can('manage_options') ) {
1699
+ check_admin_referer( 'bps_setup_wizard' );
1700
+
1701
+ if ( is_multisite() ) {
1702
+
1703
+ if ( wp_is_large_network() ) {
1704
+ echo $bps_topDiv;
1705
+ $text = '<font color="#fb0101"><strong>'.__('Error: Your Network site exceeds the default WP criteria for a large network site. Either you have more than 10,000 users or more than 10,000 sites. Please send an email to info@ait-pro.com for help. Use this email Subject line: Setup Wizard Options Large Network Site Help.', 'bulletproof-security').'</strong></font>';
1706
+ echo $text;
1707
+ echo $bps_bottomDiv;
1708
+
1709
+ return;
1710
+ }
1711
+
1712
+ $successMessage = __(' GDMW DB Options created or updated Successfully!', 'bulletproof-security');
1713
+ $successTextBegin = '<font color="green"><strong>';
1714
+ $successTextEnd = '</strong></font><br>';
1715
+
1716
+ $BPS_GDMW_Options = get_option('bulletproof_security_options_GDMW');
1717
+ $network_ids = wp_get_sites();
1718
+
1719
+ foreach ( $network_ids as $key => $value ) {
1720
+
1721
+ $net_id = $value['blog_id'];
1722
+
1723
+ $bps_Net_gdmw = 'bulletproof_security_options_GDMW';
1724
+
1725
+ $BPS_Net_GDMW_Options = array( 'bps_gdmw_hosting' => 'no' );
1726
+
1727
+ if ( ! get_blog_option( $net_id, $bps_Net_gdmw ) ) {
1728
+
1729
+ foreach( $BPS_Net_GDMW_Options as $key => $value ) {
1730
+ update_blog_option( $net_id, 'bulletproof_security_options_GDMW', $BPS_Net_GDMW_Options );
1731
+ }
1732
+
1733
+ if ( isset( $_POST['Submit-Net-GDMW'] ) ) {
1734
+ echo $successTextBegin.'Site: '.$net_id.$successMessage.$successTextEnd;
1735
+ }
1736
+
1737
+ } else {
1738
+
1739
+ $BPS_GDMW_Options_Net = get_blog_option( $net_id, 'bulletproof_security_options_GDMW' );
1740
+
1741
+ $BPS_Net_Options_gdmw = array( 'bps_gdmw_hosting' => $BPS_GDMW_Options_Net['bps_gdmw_hosting'] );
1742
+
1743
+ foreach( $BPS_Net_Options_gdmw as $key => $value ) {
1744
+ update_blog_option( $net_id, 'bulletproof_security_options_GDMW', $BPS_Net_Options_gdmw );
1745
+ }
1746
+
1747
+ if ( isset( $_POST['Submit-Net-GDMW'] ) ) {
1748
+ echo $successTextBegin.'Site: '.$net_id.$successMessage.$successTextEnd;
1749
+ }
1750
+ }
1751
+ }
1752
+ }
1753
+ }
1754
+ }
1755
  ?>
1756
 
1757
  </td>
1788
  <!--<strong><a href="https://forum.ait-pro.com/forums/topic/gdmw/" title="GDMW Hosting" target="_blank">
1789
  <?php _e('GDMW Hosting', 'bulletproof-security'); ?></a></strong><br />-->
1790
 
1791
+ <?php $text = '<strong>'.__('Setup Wizard Export', 'bulletproof-security').'</strong><br>'.__('The Setup Wizard Export feature exports all BPS plugin option settings except for website specific settings that need to be setup by running the Setup Wizard after you have imported the BPS plugin option settings into a new website. The name of the exported zip file is: bps-settings-export.zip', 'bulletproof-security').'<br><br><strong>'.__('Setup Wizard Import', 'bulletproof-security').'</strong><br>'.__('To import BPS plugin option settings click the Choose File button, navigate to where you downloaded/saved the bps-settings-export.zip file on your computer, select the zip file and click the Open button. Then click the Import button. IMPORTANT: Run the Setup Wizard after the import completes. After running the Setup Wizard go to the BPS Security > htaccess File Options > Custom Code tab page and check all of your custom htaccess code for any website specific custom htaccess code. Example: If you find any custom htaccess code that has a website URL for your other website that you exported BPS plugin settings from, then either edit that custom htaccess code or remove it from BPS Custom Code.', 'bulletproof-security').'<br><br><strong>'.__('Network|Multisite Help Info', 'bulletproof-security').'</strong><br>'.__('Setup Wizard Export|Import works for Network|Multisite site types, but only the Primary site\'s BPS plugin option settings are exported and imported. BPS plugin option settings are not exported or imported for Subsites. Note: These Setup Wizard Options > Network|Multisite Sitewide Login Security Settings, Network|Multisite Sitewide JTC Anti-Spam|Anti-Hacker Settings and Network|Multisite Sitewide Force Strong Passwords Settings can be run after importing BPS plugin option settings to apply BPS LSM, JTC and FSP plugin option settings from the Primary site to all Subsites.', 'bulletproof-security'); echo $text; ?></p>
1792
  </div>
1793
 
1794
  <div id="CC-Import" style="margin:20px 0px 20px 0px">
1958
 
1959
  require_once WP_PLUGIN_DIR . '/bulletproof-security/admin/wizard/setup-wizard-export.php';
1960
 
1961
+ // Update the Admin email address option settings in Alerts|Logs|Email Options and MMode to the current site's Admin email address
1962
  $admin_email = get_option('admin_email');
1963
  $BPS_Email_Options = get_option('bulletproof_security_options_email');
1964
 
2120
 
2121
  // Update BPS Pro plugin option settings from the extracted setup-wizard-export.php file.
2122
  if ( bpsPro_SW_DB_Update() == true ) {
2123
+ $text = '<strong><font color="green">'.__('BPS plugin settings imported successfully.', 'bulletproof-security').'</font><br><br><font color="blue">'.__('IMPORTANT: Run the BPS Setup Wizard now.', 'bulletproof-security').'</font><br><br>'.__('After running the Setup Wizard go to the BPS Security > htaccess File Options > Custom Code tab page and check all of your custom htaccess code for any website specific custom htaccess code. Example: If you find any custom htaccess code that has a website URL for your other website that you exported BPS plugin settings from, then either edit that custom htaccess code or remove it from BPS Custom Code.', 'bulletproof-security').'</strong>';
2124
  echo $text;
2125
  }
2126
 
2152
  // Update BPS Pro plugin option settings from the extracted setup-wizard-export.php file.
2153
  if ( bpsPro_SW_DB_Update() == true ) {
2154
 
2155
+ $text = '<strong><font color="green">'.__('BPS plugin settings imported successfully.', 'bulletproof-security').'</font><br><br><font color="blue">'.__('IMPORTANT: Run the BPS Setup Wizard now.', 'bulletproof-security').'</font><br><br>'.__('After running the Setup Wizard go to the BPS Security > htaccess File Options > Custom Code tab page and check all of your custom htaccess code for any website specific custom htaccess code. Example: If you find any custom htaccess code that has a website URL for your other website that you exported BPS plugin settings from, then either edit that custom htaccess code or remove it from BPS Custom Code.', 'bulletproof-security').'</strong>';
2156
  echo $text;
2157
  }
2158
 
bulletproof-security.php CHANGED
@@ -5,7 +5,7 @@ Plugin URI: https://forum.ait-pro.com/read-me-first/
5
  Text Domain: bulletproof-security
6
  Domain Path: /languages/
7
  Description: <strong>Feature Highlights:</strong> Setup Wizard &bull; MScan Malware Scanner &bull; .htaccess Website Security Protection (Firewalls) &bull; Security Logging|HTTP Error Logging &bull; DB Backup &bull; DB Table Prefix Changer &bull; Login Security & Monitoring &bull; JTC-Lite Login Form Bot Lockout Protection &bull; Idle Session Logout (ISL) &bull; Auth Cookie Expiration (ACE) &bull; System Info: Extensive System, Server and Security Status Information &bull; FrontEnd|BackEnd Maintenance Mode &bull; WP Automatic Update Options (BPS MU Tools must-use plugin) &bull; Force Strong Passwords &bull; Email Alerts When New Plugins And Themes Are Available.
8
- Version: 5.5
9
  Author: AITpro Website Security
10
  Author URI: https://forum.ait-pro.com/read-me-first/
11
  */
@@ -33,9 +33,9 @@ Author URI: https://forum.ait-pro.com/read-me-first/
33
  // and cannot access the global variables within functions in BPS. Luckily this does not break BPS or WordPress in any way and PHP.net states this is technically not an error.
34
  global $bps_last_version, $bps_version, $aitpro_bullet, $bps_topDiv, $bps_bottomDiv, $bpsPro_remote_addr, $bpsPro_http_client_ip, $bpsPro_http_forwarded, $bpsPro_http_x_forwarded_for, $bpsPro_http_x_cluster_client_ip, $bps_wpcontent_dir, $bps_plugin_dir, $plugin_hashes, $theme_hashes;
35
 
36
- define( 'BULLETPROOF_VERSION', '5.5' );
37
- $bps_last_version = '5.4';
38
- $bps_version = '5.5';
39
  $aitpro_bullet = '<img src="'.plugins_url('/bulletproof-security/admin/images/aitpro-bullet.png').'" style="padding:0px 3px 0px 3px;" />';
40
  // Top div & bottom div
41
  $bps_topDiv = '<div id="message" class="updated" style="background-color:#dfecf2;border:1px solid #999;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><p>';
5
  Text Domain: bulletproof-security
6
  Domain Path: /languages/
7
  Description: <strong>Feature Highlights:</strong> Setup Wizard &bull; MScan Malware Scanner &bull; .htaccess Website Security Protection (Firewalls) &bull; Security Logging|HTTP Error Logging &bull; DB Backup &bull; DB Table Prefix Changer &bull; Login Security & Monitoring &bull; JTC-Lite Login Form Bot Lockout Protection &bull; Idle Session Logout (ISL) &bull; Auth Cookie Expiration (ACE) &bull; System Info: Extensive System, Server and Security Status Information &bull; FrontEnd|BackEnd Maintenance Mode &bull; WP Automatic Update Options (BPS MU Tools must-use plugin) &bull; Force Strong Passwords &bull; Email Alerts When New Plugins And Themes Are Available.
8
+ Version: 5.6
9
  Author: AITpro Website Security
10
  Author URI: https://forum.ait-pro.com/read-me-first/
11
  */
33
  // and cannot access the global variables within functions in BPS. Luckily this does not break BPS or WordPress in any way and PHP.net states this is technically not an error.
34
  global $bps_last_version, $bps_version, $aitpro_bullet, $bps_topDiv, $bps_bottomDiv, $bpsPro_remote_addr, $bpsPro_http_client_ip, $bpsPro_http_forwarded, $bpsPro_http_x_forwarded_for, $bpsPro_http_x_cluster_client_ip, $bps_wpcontent_dir, $bps_plugin_dir, $plugin_hashes, $theme_hashes;
35
 
36
+ define( 'BULLETPROOF_VERSION', '5.6' );
37
+ $bps_last_version = '5.5';
38
+ $bps_version = '5.6';
39
  $aitpro_bullet = '<img src="'.plugins_url('/bulletproof-security/admin/images/aitpro-bullet.png').'" style="padding:0px 3px 0px 3px;" />';
40
  // Top div & bottom div
41
  $bps_topDiv = '<div id="message" class="updated" style="background-color:#dfecf2;border:1px solid #999;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><p>';
includes/functions.php CHANGED
@@ -394,7 +394,7 @@ switch ( $bps_version ) {
394
  $bps_base = str_replace( admin_url(), '', esc_html($_SERVER['REQUEST_URI']) ) . '&';
395
  }
396
 
397
- $text = '<div class="update-nag" style="background-color:#dfecf2;border:1px solid #999;font-size:1em;font-weight:600;padding:2px 5px;margin-top:2px;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><font color="#fb0101">'.__('BPS Alert! Your site may not be protected by BulletProof Security', 'bulletproof-security').'</font><br>'.__('The BPS version: BULLETPROOF x.x SECURE .HTACCESS line of code was not found at the top of your Root htaccess file.', 'bulletproof-security').'<br>'.__('The BPS version line of code MUST be at the very top of your Root htaccess file.', 'bulletproof-security').'<br><a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/wizard/wizard.php' ).'">'.esc_attr__('Click Here', 'bulletproof-security').'</a>'.__(' to go to the BPS Setup Wizard page and click the Setup Wizard button to setup the BPS plugin again.', 'bulletproof-security').'<br>'.__('Important Note: If you manually added other htaccess code above the BPS version line of code in your root htaccess file, you can copy that code to BPS Root Custom Code so that your code is saved in the correct place in the BPS root htaccess file. ', 'bulletproof-security').'<br><a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/core/core.php#bps-tabs-7' ).'">'.esc_attr__('Click Here', 'bulletproof-security').'</a>'.__(' to go to the BPS Custom Code page, add your Root custom htaccess code in an appropriate Root Custom Code text box and click the Save Root Custom Code button before running the Setup Wizard again.', 'bulletproof-security').'<br>'.__('To Dismiss this Notice click the Dismiss Notice button below. To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the Email|Log Settings page.', 'bulletproof-security').'<br><div style="float:left;margin:3px 0px 3px 0px;padding:2px 6px 2px 6px;background-color:#e8e8e8;border:1px solid gray;"><a href="'.$bps_base.'bps_root_version_check_nag_ignore=0'.'" style="text-decoration:none;font-weight:bold;">'.__('Dismiss Notice', 'bulletproof-security').'</a></div></div>';
398
  echo $text;
399
  }
400
  }
394
  $bps_base = str_replace( admin_url(), '', esc_html($_SERVER['REQUEST_URI']) ) . '&';
395
  }
396
 
397
+ $text = '<div class="update-nag" style="background-color:#dfecf2;border:1px solid #999;font-size:1em;font-weight:600;padding:2px 5px;margin-top:2px;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><font color="#fb0101">'.__('BPS Alert! Your site may not be protected by BulletProof Security', 'bulletproof-security').'</font><br>'.__('The BPS version: BULLETPROOF x.x SECURE .HTACCESS line of code was not found at the top of your Root htaccess file.', 'bulletproof-security').'<br>'.__('The BPS version line of code MUST be at the very top of your Root htaccess file.', 'bulletproof-security').'<br><a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/wizard/wizard.php' ).'">'.esc_attr__('Click Here', 'bulletproof-security').'</a>'.__(' to go to the BPS Setup Wizard page and click the Setup Wizard button to setup the BPS plugin again.', 'bulletproof-security').'<br>'.__('Important Note: If you manually added other htaccess code above the BPS version line of code in your root htaccess file, you can copy that code to BPS Root Custom Code so that your code is saved in the correct place in the BPS root htaccess file. ', 'bulletproof-security').'<br><a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/core/core.php#bps-tabs-7' ).'">'.esc_attr__('Click Here', 'bulletproof-security').'</a>'.__(' to go to the BPS Custom Code page, add your Root custom htaccess code in an appropriate Root Custom Code text box and click the Save Root Custom Code button before running the Setup Wizard again.', 'bulletproof-security').'<br>'.__('To Dismiss this Notice click the Dismiss Notice button below. To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the Alerts|Logs|Email Options page.', 'bulletproof-security').'<br><div style="float:left;margin:3px 0px 3px 0px;padding:2px 6px 2px 6px;background-color:#e8e8e8;border:1px solid gray;"><a href="'.$bps_base.'bps_root_version_check_nag_ignore=0'.'" style="text-decoration:none;font-weight:bold;">'.__('Dismiss Notice', 'bulletproof-security').'</a></div></div>';
398
  echo $text;
399
  }
400
  }
includes/general-functions.php CHANGED
@@ -178,7 +178,7 @@ function bpsGetDomainRoot() {
178
  function bps_check_perms($path, $perm) {
179
  clearstatcache();
180
  $current_perms = substr(sprintf('%o', fileperms($path)), -4);
181
- $stat = stat($path);
182
 
183
  echo '<table style="width:100%;background-color:#fff;">';
184
  echo '<tr>';
@@ -186,7 +186,7 @@ $stat = stat($path);
186
  echo '<td style="color:#000;background-color:#fff;padding:2px;width:15%;">' . $perm . '</td>';
187
  echo '<td style="color:#000;background-color:#fff;padding:2px;width:15%;">' . $current_perms . '</td>';
188
  echo '<td style="color:#000;background-color:#fff;padding:2px;width:15%;">' . $stat['uid'] . '</td>';
189
- echo '<td style="color:#000;background-color:#fff;padding:2px;width:15%;">' . fileowner( $path ) . '</td>';
190
  echo '</tr>';
191
  echo '</table>';
192
  }
@@ -919,6 +919,7 @@ function bpsPro_presave_mscan_options() {
919
  $wp_install_folder = str_replace( array( get_home_path(), '/', ), "", $wp_abspath_forward_slashes );
920
  $wp_includes_forward_slashes = $wp_abspath_forward_slashes . WPINC;
921
  $wp_includes_folder = str_replace( $wp_abspath_forward_slashes, "", $wp_includes_forward_slashes );
 
922
 
923
  $source = $wp_abspath_forward_slashes;
924
  $dir_array = array();
@@ -954,7 +955,7 @@ function bpsPro_presave_mscan_options() {
954
  try {
955
  if ( $files->isDir() && ! $files->isDot() ) {
956
 
957
- if ( $wp_install_folder != $files->getFilename() && $bps_wpcontent_dir != $files->getFilename() && $wp_includes_folder != $files->getFilename() && 'wp-admin' != $files->getFilename()) {
958
 
959
  if ( ! empty( $files ) ) {
960
  $home_dir_array[] = $files->getFilename();
178
  function bps_check_perms($path, $perm) {
179
  clearstatcache();
180
  $current_perms = substr(sprintf('%o', fileperms($path)), -4);
181
+ $stat = @stat($path);
182
 
183
  echo '<table style="width:100%;background-color:#fff;">';
184
  echo '<tr>';
186
  echo '<td style="color:#000;background-color:#fff;padding:2px;width:15%;">' . $perm . '</td>';
187
  echo '<td style="color:#000;background-color:#fff;padding:2px;width:15%;">' . $current_perms . '</td>';
188
  echo '<td style="color:#000;background-color:#fff;padding:2px;width:15%;">' . $stat['uid'] . '</td>';
189
+ echo '<td style="color:#000;background-color:#fff;padding:2px;width:15%;">' . @fileowner( $path ) . '</td>';
190
  echo '</tr>';
191
  echo '</table>';
192
  }
919
  $wp_install_folder = str_replace( array( get_home_path(), '/', ), "", $wp_abspath_forward_slashes );
920
  $wp_includes_forward_slashes = $wp_abspath_forward_slashes . WPINC;
921
  $wp_includes_folder = str_replace( $wp_abspath_forward_slashes, "", $wp_includes_forward_slashes );
922
+ $wp_content_folder = str_replace( ABSPATH, '', WP_CONTENT_DIR );
923
 
924
  $source = $wp_abspath_forward_slashes;
925
  $dir_array = array();
955
  try {
956
  if ( $files->isDir() && ! $files->isDot() ) {
957
 
958
+ if ( $wp_install_folder != $files->getFilename() && $wp_content_folder != $files->getFilename() && $wp_includes_folder != $files->getFilename() && 'wp-admin' != $files->getFilename()) {
959
 
960
  if ( ! empty( $files ) ) {
961
  $home_dir_array[] = $files->getFilename();
includes/hud-autofix-setup.php CHANGED
@@ -72,7 +72,7 @@ function bpsPro_EPC_plugin_check() {
72
  $bps_base = str_replace( admin_url(), '', esc_html($_SERVER['REQUEST_URI']) ) . '&';
73
  }
74
 
75
- $text = '<div class="update-nag" style="background-color:#dfecf2;border:1px solid #999;font-size:1em;font-weight:600;padding:2px 5px;margin-top:2px;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><font color="blue">'.__('BPS Notice: The Endurance Page Cache (EPC) must-use plugin is installed', 'bulletproof-security').'</font><br>'.__('The EPC must-use plugin has been automatically installed by your Web Host and requires these additional BPS setup steps to make sure everything is setup correctly:', 'bulletproof-security').'<br>'.__('Go to the ', 'bulletproof-security').'<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/core/core.php#bps-tabs-6' ).'" title="htaccess File Editor">'.__('BPS htaccess File Editor page', 'bulletproof-security').'</a>,'.__(' click the Unlock htaccess File button, go to the WordPress Settings > General page, scroll down to Endurance Cache settings,', 'bulletproof-security').'<br>'.__('click the Save Changes button, click this link: ', 'bulletproof-security').'<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/wizard/wizard.php' ).'" title="Setup Wizard">'.__('BPS Setup Wizard', 'bulletproof-security').'</a>'.__(' and click the Setup Wizard button.', 'bulletproof-security').'<br>'.__('To Dismiss this Notice click the Dismiss Notice button below. To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the Email|Log Settings page.', 'bulletproof-security').'<br><div style="float:left;margin:3px 0px 3px 0px;padding:2px 6px 2px 6px;background-color:#e8e8e8;border:1px solid gray;"><a href="'.$bps_base.'bpsPro_EPC_plugin_nag_ignore=0'.'" style="text-decoration:none;font-weight:600;">'.__('Dismiss Notice', 'bulletproof-security').'</a></div></div>';
76
  echo $text;
77
  }
78
  }
72
  $bps_base = str_replace( admin_url(), '', esc_html($_SERVER['REQUEST_URI']) ) . '&';
73
  }
74
 
75
+ $text = '<div class="update-nag" style="background-color:#dfecf2;border:1px solid #999;font-size:1em;font-weight:600;padding:2px 5px;margin-top:2px;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><font color="blue">'.__('BPS Notice: The Endurance Page Cache (EPC) must-use plugin is installed', 'bulletproof-security').'</font><br>'.__('The EPC must-use plugin has been automatically installed by your Web Host and requires these additional BPS setup steps to make sure everything is setup correctly:', 'bulletproof-security').'<br>'.__('Go to the ', 'bulletproof-security').'<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/core/core.php#bps-tabs-6' ).'" title="htaccess File Editor">'.__('BPS htaccess File Editor page', 'bulletproof-security').'</a>,'.__(' click the Unlock htaccess File button, go to the WordPress Settings > General page, scroll down to Endurance Cache settings,', 'bulletproof-security').'<br>'.__('click the Save Changes button, click this link: ', 'bulletproof-security').'<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/wizard/wizard.php' ).'" title="Setup Wizard">'.__('BPS Setup Wizard', 'bulletproof-security').'</a>'.__(' and click the Setup Wizard button.', 'bulletproof-security').'<br>'.__('To Dismiss this Notice click the Dismiss Notice button below. To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the Alerts|Logs|Email Options page.', 'bulletproof-security').'<br><div style="float:left;margin:3px 0px 3px 0px;padding:2px 6px 2px 6px;background-color:#e8e8e8;border:1px solid gray;"><a href="'.$bps_base.'bpsPro_EPC_plugin_nag_ignore=0'.'" style="text-decoration:none;font-weight:600;">'.__('Dismiss Notice', 'bulletproof-security').'</a></div></div>';
76
  echo $text;
77
  }
78
  }
includes/hud-autofix-whitelist.php CHANGED
@@ -858,7 +858,7 @@ function bpsPro_HUD_autofix_whitelist_check() {
858
 
859
  ## Display Setup Wizard AutoFix WP Dashboard message
860
  if ( $autofix_message == 1 ) {
861
- $text_wp = '<div class="update-nag" style="background-color:#dfecf2;border:1px solid #999;font-size:1em;font-weight:600;padding:2px 5px;margin-top:2px;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><font color="blue">'.__('BPS Setup Wizard AutoFix (AutoWhitelist|AutoSetup|AutoCleanup) Notice', 'bulletproof-security').'</font><br>'.__('One or more of your plugins or your theme requires a BPS Custom Code whitelist rule to be automatically created by the Setup Wizard.', 'bulletproof-security').'<br>'.__('Click this ', 'bulletproof-security').'<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/wizard/wizard.php' ).'" title="Setup Wizard AutoFix">'.__('Setup Wizard link', 'bulletproof-security').'</a>'.__(' and click the Setup Wizard button to automatically create BPS Custom Code whitelist rules.', 'bulletproof-security').'<br>'.__('This BPS AutoFix check can be turned Off on the ', 'bulletproof-security').'<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/wizard/wizard.php#bps-tabs-2' ).'" title="Setup Wizard Options">'.__('Setup Wizard Options', 'bulletproof-security').'</a>'.__(' page if you do not want BPS to check for any plugin or theme whitelist rules.', 'bulletproof-security').'<br>'.__('If this Notice does not go away after running the Setup Wizard, use the ', 'bulletproof-security').'<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/theme-skin/theme-skin.php' ).'" title="BPS UI|UX|AutoFix Debug tool">'.__('BPS UI|UX|AutoFix Debug tool', 'bulletproof-security').'</a>.'.__(' Click the UI|UX Settings page Question Mark help button for more information.', 'bulletproof-security').'</div>';
862
  echo $text_wp;
863
  }
864
 
858
 
859
  ## Display Setup Wizard AutoFix WP Dashboard message
860
  if ( $autofix_message == 1 ) {
861
+ $text_wp = '<div class="update-nag" style="background-color:#dfecf2;border:1px solid #999;font-size:1em;font-weight:600;padding:2px 5px;margin-top:2px;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><font color="blue">'.__('BPS Setup Wizard AutoFix (AutoWhitelist|AutoSetup|AutoCleanup) Notice', 'bulletproof-security').'</font><br>'.__('One or more of your plugins or your theme requires a BPS Custom Code whitelist rule to be automatically created by the Setup Wizard.', 'bulletproof-security').'<br>'.__('Click this ', 'bulletproof-security').'<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/wizard/wizard.php' ).'" title="Setup Wizard AutoFix">'.__('Setup Wizard link', 'bulletproof-security').'</a>'.__(' and click the Setup Wizard button to automatically create BPS Custom Code whitelist rules.', 'bulletproof-security').'<br>'.__('This BPS AutoFix check can be turned Off on the ', 'bulletproof-security').'<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/wizard/wizard.php#bps-tabs-2' ).'" title="Setup Wizard Options">'.__('Setup Wizard Options', 'bulletproof-security').'</a>'.__(' page if you do not want BPS to check for any plugin or theme whitelist rules.', 'bulletproof-security').'<br>'.__('If this Notice does not go away after running the Setup Wizard, use the ', 'bulletproof-security').'<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/theme-skin/theme-skin.php' ).'" title="BPS UI|UX|AutoFix Debug tool">'.__('BPS UI|UX|AutoFix Debug tool', 'bulletproof-security').'</a>.'.__(' Click the UI|UX Options page Question Mark help button for more information.', 'bulletproof-security').'</div>';
862
  echo $text_wp;
863
  }
864
 
includes/hud-dismiss-functions.php CHANGED
@@ -73,7 +73,7 @@ function bps_check_safemode() {
73
  }
74
 
75
  if ( ! get_user_meta($user_id, 'bps_ignore_safemode_notice') ) {
76
- $text = '<div class="update-nag" style="background-color:#dfecf2;border:1px solid #999;font-size:1em;font-weight:600;padding:2px 5px;margin-top:2px;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><font color="#fb0101">'.__('WARNING! BPS has detected that Safe Mode is set to On in your php.ini file.', 'bulletproof-security').'</font><br>'.__('If you see errors that BPS was unable to automatically create the backup folders this is probably the reason why.', 'bulletproof-security').'<br>'.__('To Dismiss this Notice click the Dismiss Notice button below. To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the Email|Log Settings page.', 'bulletproof-security').'<br><div style="float:left;margin:3px 0px 3px 0px;padding:2px 6px 2px 6px;background-color:#e8e8e8;border:1px solid gray;"><a href="'.$bps_base.'bps_safemode_nag_ignore=0'.'" style="text-decoration:none;font-weight:600;">'.__('Dismiss Notice', 'bulletproof-security').'</a></div></div>';
77
  echo $text;
78
  }
79
  }
@@ -107,7 +107,7 @@ function bps_check_permalinks_error() {
107
  }
108
 
109
  if ( ! get_user_meta($user_id, 'bps_ignore_Permalinks_notice') ) {
110
- $text = '<div class="update-nag" style="background-color:#dfecf2;border:1px solid #999;font-size:1em;font-weight:600;padding:2px 5px;margin-top:2px;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><font color="blue">'.__('HUD Check: Custom Permalinks are NOT being used.', 'bulletproof-security').'</font><br>'.__('It is recommended that you use Custom Permalinks: ', 'bulletproof-security').'<a href="https://www.ait-pro.com/aitpro-blog/2304/wordpress-tips-tricks-fixes/permalinks-wordpress-custom-permalinks-wordpress-best-wordpress-permalinks-structure/" target="_blank" title="Link opens in a new Browser window">'.__('How to setup Custom Permalinks', 'bulletproof-security').'</a><br>'.__('To Dismiss this Notice click the Dismiss Notice button below. To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the Email|Log Settings page.', 'bulletproof-security').'<br><div style="float:left;margin:3px 0px 3px 0px;padding:2px 6px 2px 6px;background-color:#e8e8e8;border:1px solid gray;"><a href="'.$bps_base.'bps_Permalinks_nag_ignore=0'.'" style="text-decoration:none;font-weight:600;">'.__('Dismiss Notice', 'bulletproof-security').'</a></div></div>';
111
  echo $text;
112
  }
113
  }
@@ -140,7 +140,7 @@ $user_id = $current_user->ID;
140
  $bps_base = str_replace( admin_url(), '', esc_html($_SERVER['REQUEST_URI']) ) . '&';
141
  }
142
 
143
- $text = '<div class="update-nag" style="background-color:#dfecf2;border:1px solid #999;font-size:1em;font-weight:600;padding:2px 5px;margin-top:2px;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><font color="#fb0101">'.__('WARNING! BPS has detected that your Server is a Windows IIS Server that does not support htaccess rewriting.', 'bulletproof-security').'</font><br>'.__('Do NOT activate BulletProof Modes unless you know what you are doing.', 'bulletproof-security').'<br>'.__('Your Server Type is: ', 'bulletproof-security').esc_html( $_SERVER['SERVER_SOFTWARE'] ).'<br><a href="http://codex.wordpress.org/Using_Permalinks" target="_blank" title="This link will open in a new browser window.">'.__('WordPress Codex - Using Permalinks - see IIS section', 'bulletproof-security').'</a><br>'.__('To Dismiss this Notice click the Dismiss Notice button below. To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the Email|Log Settings page.', 'bulletproof-security').'<br><div style="float:left;margin:3px 0px 3px 0px;padding:2px 6px 2px 6px;background-color:#e8e8e8;border:1px solid gray;"><a href="'.$bps_base.'bps_iis_nag_ignore=0'.'" style="text-decoration:none;font-weight:600;">'.__('Dismiss Notice', 'bulletproof-security').'</a></div></div>';
144
  echo $text;
145
  }
146
  }
@@ -202,7 +202,7 @@ $user_id = $current_user->ID;
202
 
203
  if ( get_user_meta($user_id, 'bps_bonus_code_dismiss_all_notice') && ! get_user_meta($user_id, 'bps_post_request_attack_notice') ) {
204
 
205
- $text = '<div class="update-nag" style="background-color:#dfecf2;border:1px solid #999;font-size:1em;font-weight:600;padding:2px 5px;margin-top:2px;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><font color="blue">'.__('Bonus Custom Code:', 'bulletproof-security').'</font><br>'.__('Click the links below to get Bonus Custom Code or click the Dismiss Notice links or click this ', 'bulletproof-security').'<span style=""><a href="'.$bps_base.'bps_bonus_code_dismiss_all_nag_ignore=0&bps_post_request_attack_nag_ignore=0'.'" style="">'.__('Dismiss All Notices', 'bulletproof-security').'</a></span>'.__(' link. To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the Email|Log Settings page.', 'bulletproof-security').'<br>';
206
 
207
 
208
  $text .= '<div id="BC5" style="margin-top:2px;">'.__('Get ', 'bulletproof-security').'<a href="https://forum.ait-pro.com/forums/topic/post-request-protection-post-attack-protection-post-request-blocker/" title="Protects against POST Request Attacks" target="_blank">'.__('POST Request Attack Protection Code', 'bulletproof-security').'</a>'.__(' or ', 'bulletproof-security').'<span style=""><a href="'.$bps_base.'bps_post_request_attack_nag_ignore=0'.'" style="">'.__('Dismiss Notice', 'bulletproof-security').'</a></span></div>';
@@ -214,7 +214,7 @@ $user_id = $current_user->ID;
214
 
215
  if ( ! get_user_meta($user_id, 'bps_brute_force_login_protection_notice') || ! get_user_meta($user_id, 'bps_speed_boost_cache_notice') || ! get_user_meta($user_id, 'bps_author_enumeration_notice') || ! get_user_meta($user_id, 'bps_xmlrpc_ddos_notice') || ! get_user_meta($user_id, 'bps_post_request_attack_notice') || ! get_user_meta($user_id, 'bps_sniff_driveby_notice') || ! get_user_meta($user_id, 'bps_iframe_clickjack_notice') ) {
216
 
217
- $text = '<div class="update-nag" style="background-color:#dfecf2;border:1px solid #999;font-size:1em;font-weight:600;padding:2px 5px;margin-top:2px;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><font color="blue">'.__('Bonus Custom Code:', 'bulletproof-security').'</font><br>'.__('Click the links below to get Bonus Custom Code or click the Dismiss Notice links or click this ', 'bulletproof-security').'<span style=""><a href="'.$bps_base.'bps_bonus_code_dismiss_all_nag_ignore=0&bps_post_request_attack_nag_ignore=0'.'" style="">'.__('Dismiss All Notices', 'bulletproof-security').'</a></span>'.__(' link. To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the Email|Log Settings page.', 'bulletproof-security').'<br>';
218
 
219
  }
220
 
@@ -353,12 +353,12 @@ $pre_background_image_url = site_url( '/wp-content/plugins/bulletproof-security/
353
 
354
  if ( stripos( $file_contents, "Wordfence WAF" ) ) {
355
 
356
- $text = '<div class="update-nag" style="background-color:#dfecf2;border:1px solid #999;font-size:1em;font-weight:600;padding:2px 5px;margin-top:2px;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><font color="blue">'.__('HUD Check: Wordfence PHP/php.ini handler htaccess code detected', 'bulletproof-security').'</font><br>'.__('Wordfence PHP/php.ini handler htaccess code was found in your root .htaccess file, but was NOT found in BPS Custom Code.', 'bulletproof-security').'<br><a href="https://forum.ait-pro.com/forums/topic/wordfence-firewall-wp-contentwflogsconfig-php-file-quarantined/#wordfence-php-handler" target="_blank" title="Wordfence PHP Handler Fix">'.__('Click Here', 'bulletproof-security').'</a>'.__(' for the steps to fix this Wordfence problem before running the Setup Wizard.', 'bulletproof-security').'<br><font color="#fb0101">'.__('CAUTION: ', 'bulletproof-security').'</font>'.__('Using the Wordfence WAF Firewall may cause serious/critical problems for your website and BPS.', 'bulletproof-security').'<br>'.__('To Dismiss this Notice click the Dismiss Notice button below. To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the Email|Log Settings page.', 'bulletproof-security').'<br><div style="float:left;margin:3px 0px 3px 0px;padding:2px 6px 2px 6px;background-color:#e8e8e8;border:1px solid gray;"><a href="'.$bps_base.'bps_PhpiniHandler_nag_ignore=0'.'" style="text-decoration:none;font-weight:600;">'.__('Dismiss Notice', 'bulletproof-security').'</a></div></div>';
357
  echo $text;
358
 
359
  } else {
360
 
361
- $text = '<div class="update-nag" style="background-color:#dfecf2;border:1px solid #999;font-size:1em;font-weight:600;padding:2px 5px;margin-top:2px;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><font color="blue">'.__('HUD Check: PHP/php.ini handler htaccess code check', 'bulletproof-security').'</font><br>'.__('PHP/php.ini handler htaccess code was found in your root .htaccess file, but was NOT found in BPS Custom Code.', 'bulletproof-security').'<br>'.__('To automatically fix this click here: ', 'bulletproof-security').'<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/wizard/wizard.php' ).'">'.esc_attr__('Setup Wizard Pre-Installation Checks', 'bulletproof-security').'</a><br>'.__('The Setup Wizard Pre-Installation Checks feature will automatically fix this just by visiting the Setup Wizard page.', 'bulletproof-security').'<br>'.__('To Dismiss this Notice click the Dismiss Notice button below. To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the Email|Log Settings page.', 'bulletproof-security').'<br><div style="float:left;margin:3px 0px 3px 0px;padding:2px 6px 2px 6px;background-color:#e8e8e8;border:1px solid gray;"><a href="'.$bps_base.'bps_PhpiniHandler_nag_ignore=0'.'" style="text-decoration:none;font-weight:600;">'.__('Dismiss Notice', 'bulletproof-security').'</a></div></div>';
362
  echo $text;
363
  echo '<pre id="shown" style="overflow:auto;white-space:pre-wrap;height:65px;width:66%;margin:5px 0px 0px 2px;padding:5px;background:#fff url('.$pre_background_image_url.') top left repeat;border:1px solid #999;color:#000;display:block;font-family:"Courier New", Courier, monospace;font-size:11px;line-height:14px;">';
364
  echo '# PHP/php.ini handler htaccess code<br>';
@@ -397,12 +397,12 @@ $pre_background_image_url = site_url( '/wp-content/plugins/bulletproof-security/
397
 
398
  if ( stripos( $file_contents, "Wordfence WAF" ) ) {
399
 
400
- $text = '<div class="update-nag" style="background-color:#dfecf2;border:1px solid #999;font-size:1em;font-weight:600;padding:2px 5px;margin-top:2px;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><font color="blue">'.__('HUD Check: Wordfence PHP/php.ini handler htaccess code detected', 'bulletproof-security').'</font><br>'.__('Wordfence PHP/php.ini handler htaccess code was found in your root .htaccess file, but was NOT found in BPS Custom Code.', 'bulletproof-security').'<br><a href="https://forum.ait-pro.com/forums/topic/wordfence-firewall-wp-contentwflogsconfig-php-file-quarantined/#wordfence-php-handler" target="_blank" title="Wordfence PHP Handler Fix">'.__('Click Here', 'bulletproof-security').'</a>'.__(' for the steps to fix this Wordfence problem.', 'bulletproof-security').'<br><font color="#fb0101">'.__('CAUTION: ', 'bulletproof-security').'</font>'.__('Using the Wordfence WAF Firewall may cause serious/critical problems for your website and BPS.', 'bulletproof-security').'<br>'.__('To Dismiss this Notice click the Dismiss Notice button below. To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the Email|Log Settings page.', 'bulletproof-security').'<br><div style="float:left;margin:3px 0px 3px 0px;padding:2px 6px 2px 6px;background-color:#e8e8e8;border:1px solid gray;"><a href="'.$bps_base.'bps_PhpiniHandler_nag_ignore=0'.'" style="text-decoration:none;font-weight:600;">'.__('Dismiss Notice', 'bulletproof-security').'</a></div></div>';
401
  echo $text;
402
 
403
  } else {
404
 
405
- $text = '<div class="update-nag" style="background-color:#dfecf2;border:1px solid #999;font-size:1em;font-weight:600;padding:2px 5px;margin-top:2px;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><font color="blue">'.__('HUD Check: PHP/php.ini handler htaccess code check', 'bulletproof-security').'</font><br>'.__('PHP/php.ini handler htaccess code was found in your root .htaccess file, but was NOT found in BPS Custom Code.', 'bulletproof-security').'<br>'.__('To automatically fix this click here: ', 'bulletproof-security').'<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/wizard/wizard.php' ).'">'.esc_attr__('Setup Wizard Pre-Installation Checks', 'bulletproof-security').'</a><br>'.__('The Setup Wizard Pre-Installation Checks feature will automatically fix this just by visiting the Setup Wizard page.', 'bulletproof-security').'<br>'.__('To Dismiss this Notice click the Dismiss Notice button below. To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the Email|Log Settings page.', 'bulletproof-security').'<br><div style="float:left;margin:3px 0px 3px 0px;padding:2px 6px 2px 6px;background-color:#e8e8e8;border:1px solid gray;"><a href="'.$bps_base.'bps_PhpiniHandler_nag_ignore=0'.'" style="text-decoration:none;font-weight:600;">'.__('Dismiss Notice', 'bulletproof-security').'</a></div></div>';
406
  echo $text;
407
  echo '<pre id="shown" style="overflow:auto;white-space:pre-wrap;height:65px;width:66%;margin:5px 0px 0px 2px;padding:5px;background:#fff url('.$pre_background_image_url.') top left repeat;border:1px solid #999;color:#000;display:block;font-family:"Courier New", Courier, monospace;font-size:11px;line-height:14px;">';
408
  echo '# PHP/php.ini handler htaccess code<br>';
@@ -452,7 +452,7 @@ $firewall2_active = in_array( $firewall2, apply_filters('active_plugins', get_op
452
  $bps_base = str_replace( admin_url(), '', esc_html($_SERVER['REQUEST_URI']) ) . '&';
453
  }
454
 
455
- $text = '<div class="update-nag" style="background-color:#dfecf2;border:1px solid #999;font-size:1em;font-weight:600;padding:2px 5px;margin-top:2px;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><font color="#fb0101">'.__('The WordPress Firewall 2 plugin is installed and activated', 'bulletproof-security').'</font><br>'.__('It is recommended that you delete the WordPress Firewall 2 plugin.', 'bulletproof-security').'<br><a href="https://forum.ait-pro.com/forums/topic/wordpress-firewall-2-plugin-unable-to-save-custom-code/" target="_blank" title="Link opens in a new Browser window">'.__('Click Here', 'bulletproof-security').'</a>'.__(' for more information.', 'bulletproof-security').'<br>'.__('To Dismiss this Notice click the Dismiss Notice button below. To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the Email|Log Settings page.', 'bulletproof-security').'<br><div style="float:left;margin:3px 0px 3px 0px;padding:2px 6px 2px 6px;background-color:#e8e8e8;border:1px solid gray;"><a href="'.$bps_base.'bps_wpfirewall2_nag_ignore=0'.'" style="text-decoration:none;font-weight:600;">'.__('Dismiss Notice', 'bulletproof-security').'</a></div></div>';
456
  echo $text;
457
  }
458
  }
@@ -542,7 +542,7 @@ function bpsPro_hud_speed_boost_cache_code() {
542
 
543
  if ( preg_match( $pattern1, htmlspecialchars_decode( $bps_customcode_one, ENT_QUOTES ), $matches1 ) && preg_match( $pattern2, htmlspecialchars_decode( $bps_customcode_one, ENT_QUOTES ), $matches2 ) ) {
544
 
545
- $text = '<div class="update-nag" style="background-color:#dfecf2;border:1px solid #999;font-size:1em;font-weight:600;padding:2px 5px;margin-top:2px;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><font color="blue">'.__('New Improved BPS Speed Boost Cache Code', 'bulletproof-security').'</font><br>'.__('Older BPS Speed Boost Cache Code was found saved in this BPS Custom Code text box: CUSTOM CODE TOP PHP/PHP.INI HANDLER/CACHE CODE', 'bulletproof-security').'.<br>'.__('Newer improved BPS Speed Boost Cache Code has been created, which should improve website load speed performance even more.', 'bulletproof-security').'<br><a href="https://forum.ait-pro.com/forums/topic/htaccess-caching-code-speed-boost-cache-code/" target="_blank" title="BPS Speed Boost Cache Code">'.__('Get The New Improved BPS Speed Boost Cache Code', 'bulletproof-security').'</a>'.__('. To dismiss this Notice click the Dismiss Notice button below.', 'bulletproof-security').'<br>'.__('To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the Email|Log Settings page.', 'bulletproof-security').'<br><div style="float:left;margin:3px 0px 3px 0px;padding:2px 6px 2px 6px;background-color:#e8e8e8;border:1px solid gray;"><a href="'.$bps_base.'bpsPro_hud_speed_boost_nag_ignore=0'.'" style="text-decoration:none;font-weight:600;">'.__('Dismiss Notice', 'bulletproof-security').'</a></div></div>';
546
  echo $text;
547
  }
548
 
@@ -805,7 +805,7 @@ function bpsPro_hud_new_feature_notice() {
805
  $bps_base = str_replace( admin_url(), '', esc_html($_SERVER['REQUEST_URI']) ) . '&';
806
  }
807
 
808
- $text = '<div class="update-nag" style="background-color:#dfecf2;border:1px solid #999;font-size:1em;font-weight:600;padding:2px 5px;margin-top:2px;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><font color="blue">'.__('MScan 2.0 Rebuild Notice', 'bulletproof-security').'</font><br>'.__('MScan has been completely rebuilt. MScan 2.0 is faster, very accurate and user friendly. ', 'bulletproof-security').'<br><a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/mscan/mscan.php' ).'">'.__('Check out MScan 2.0', 'bulletproof-security').'</a>.'.__(' Recommendation: Click the Reset MScan button before running a new scan.', 'bulletproof-security').'<br>'.__('To Dismiss this Notice click the Dismiss Notice button below. To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the BPS Custom Code page.', 'bulletproof-security').'<br><div style="float:left;margin:3px 0px 3px 0px;padding:2px 6px 2px 6px;background-color:#e8e8e8;border:1px solid gray;"><a href="'.$bps_base.'bpsPro_new_feature_nag_ignore=0'.'" style="text-decoration:none;font-weight:bold;">'.__('Dismiss Notice', 'bulletproof-security').'</a></div></div>';
809
  echo $text;
810
  }
811
  }
73
  }
74
 
75
  if ( ! get_user_meta($user_id, 'bps_ignore_safemode_notice') ) {
76
+ $text = '<div class="update-nag" style="background-color:#dfecf2;border:1px solid #999;font-size:1em;font-weight:600;padding:2px 5px;margin-top:2px;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><font color="#fb0101">'.__('WARNING! BPS has detected that Safe Mode is set to On in your php.ini file.', 'bulletproof-security').'</font><br>'.__('If you see errors that BPS was unable to automatically create the backup folders this is probably the reason why.', 'bulletproof-security').'<br>'.__('To Dismiss this Notice click the Dismiss Notice button below. To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the Alerts|Logs|Email Options page.', 'bulletproof-security').'<br><div style="float:left;margin:3px 0px 3px 0px;padding:2px 6px 2px 6px;background-color:#e8e8e8;border:1px solid gray;"><a href="'.$bps_base.'bps_safemode_nag_ignore=0'.'" style="text-decoration:none;font-weight:600;">'.__('Dismiss Notice', 'bulletproof-security').'</a></div></div>';
77
  echo $text;
78
  }
79
  }
107
  }
108
 
109
  if ( ! get_user_meta($user_id, 'bps_ignore_Permalinks_notice') ) {
110
+ $text = '<div class="update-nag" style="background-color:#dfecf2;border:1px solid #999;font-size:1em;font-weight:600;padding:2px 5px;margin-top:2px;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><font color="blue">'.__('HUD Check: Custom Permalinks are NOT being used.', 'bulletproof-security').'</font><br>'.__('It is recommended that you use Custom Permalinks: ', 'bulletproof-security').'<a href="https://www.ait-pro.com/aitpro-blog/2304/wordpress-tips-tricks-fixes/permalinks-wordpress-custom-permalinks-wordpress-best-wordpress-permalinks-structure/" target="_blank" title="Link opens in a new Browser window">'.__('How to setup Custom Permalinks', 'bulletproof-security').'</a><br>'.__('To Dismiss this Notice click the Dismiss Notice button below. To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the Alerts|Logs|Email Options page.', 'bulletproof-security').'<br><div style="float:left;margin:3px 0px 3px 0px;padding:2px 6px 2px 6px;background-color:#e8e8e8;border:1px solid gray;"><a href="'.$bps_base.'bps_Permalinks_nag_ignore=0'.'" style="text-decoration:none;font-weight:600;">'.__('Dismiss Notice', 'bulletproof-security').'</a></div></div>';
111
  echo $text;
112
  }
113
  }
140
  $bps_base = str_replace( admin_url(), '', esc_html($_SERVER['REQUEST_URI']) ) . '&';
141
  }
142
 
143
+ $text = '<div class="update-nag" style="background-color:#dfecf2;border:1px solid #999;font-size:1em;font-weight:600;padding:2px 5px;margin-top:2px;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><font color="#fb0101">'.__('WARNING! BPS has detected that your Server is a Windows IIS Server that does not support htaccess rewriting.', 'bulletproof-security').'</font><br>'.__('Do NOT activate BulletProof Modes unless you know what you are doing.', 'bulletproof-security').'<br>'.__('Your Server Type is: ', 'bulletproof-security').esc_html( $_SERVER['SERVER_SOFTWARE'] ).'<br><a href="http://codex.wordpress.org/Using_Permalinks" target="_blank" title="This link will open in a new browser window.">'.__('WordPress Codex - Using Permalinks - see IIS section', 'bulletproof-security').'</a><br>'.__('To Dismiss this Notice click the Dismiss Notice button below. To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the Alerts|Logs|Email Options page.', 'bulletproof-security').'<br><div style="float:left;margin:3px 0px 3px 0px;padding:2px 6px 2px 6px;background-color:#e8e8e8;border:1px solid gray;"><a href="'.$bps_base.'bps_iis_nag_ignore=0'.'" style="text-decoration:none;font-weight:600;">'.__('Dismiss Notice', 'bulletproof-security').'</a></div></div>';
144
  echo $text;
145
  }
146
  }
202
 
203
  if ( get_user_meta($user_id, 'bps_bonus_code_dismiss_all_notice') && ! get_user_meta($user_id, 'bps_post_request_attack_notice') ) {
204
 
205
+ $text = '<div class="update-nag" style="background-color:#dfecf2;border:1px solid #999;font-size:1em;font-weight:600;padding:2px 5px;margin-top:2px;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><font color="blue">'.__('Bonus Custom Code:', 'bulletproof-security').'</font><br>'.__('Click the links below to get Bonus Custom Code or click the Dismiss Notice links or click this ', 'bulletproof-security').'<span style=""><a href="'.$bps_base.'bps_bonus_code_dismiss_all_nag_ignore=0&bps_post_request_attack_nag_ignore=0'.'" style="">'.__('Dismiss All Notices', 'bulletproof-security').'</a></span>'.__(' link. To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the Alerts|Logs|Email Options page.', 'bulletproof-security').'<br>';
206
 
207
 
208
  $text .= '<div id="BC5" style="margin-top:2px;">'.__('Get ', 'bulletproof-security').'<a href="https://forum.ait-pro.com/forums/topic/post-request-protection-post-attack-protection-post-request-blocker/" title="Protects against POST Request Attacks" target="_blank">'.__('POST Request Attack Protection Code', 'bulletproof-security').'</a>'.__(' or ', 'bulletproof-security').'<span style=""><a href="'.$bps_base.'bps_post_request_attack_nag_ignore=0'.'" style="">'.__('Dismiss Notice', 'bulletproof-security').'</a></span></div>';
214
 
215
  if ( ! get_user_meta($user_id, 'bps_brute_force_login_protection_notice') || ! get_user_meta($user_id, 'bps_speed_boost_cache_notice') || ! get_user_meta($user_id, 'bps_author_enumeration_notice') || ! get_user_meta($user_id, 'bps_xmlrpc_ddos_notice') || ! get_user_meta($user_id, 'bps_post_request_attack_notice') || ! get_user_meta($user_id, 'bps_sniff_driveby_notice') || ! get_user_meta($user_id, 'bps_iframe_clickjack_notice') ) {
216
 
217
+ $text = '<div class="update-nag" style="background-color:#dfecf2;border:1px solid #999;font-size:1em;font-weight:600;padding:2px 5px;margin-top:2px;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><font color="blue">'.__('Bonus Custom Code:', 'bulletproof-security').'</font><br>'.__('Click the links below to get Bonus Custom Code or click the Dismiss Notice links or click this ', 'bulletproof-security').'<span style=""><a href="'.$bps_base.'bps_bonus_code_dismiss_all_nag_ignore=0&bps_post_request_attack_nag_ignore=0'.'" style="">'.__('Dismiss All Notices', 'bulletproof-security').'</a></span>'.__(' link. To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the Alerts|Logs|Email Options page.', 'bulletproof-security').'<br>';
218
 
219
  }
220
 
353
 
354
  if ( stripos( $file_contents, "Wordfence WAF" ) ) {
355
 
356
+ $text = '<div class="update-nag" style="background-color:#dfecf2;border:1px solid #999;font-size:1em;font-weight:600;padding:2px 5px;margin-top:2px;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><font color="blue">'.__('HUD Check: Wordfence PHP/php.ini handler htaccess code detected', 'bulletproof-security').'</font><br>'.__('Wordfence PHP/php.ini handler htaccess code was found in your root .htaccess file, but was NOT found in BPS Custom Code.', 'bulletproof-security').'<br><a href="https://forum.ait-pro.com/forums/topic/wordfence-firewall-wp-contentwflogsconfig-php-file-quarantined/#wordfence-php-handler" target="_blank" title="Wordfence PHP Handler Fix">'.__('Click Here', 'bulletproof-security').'</a>'.__(' for the steps to fix this Wordfence problem before running the Setup Wizard.', 'bulletproof-security').'<br><font color="#fb0101">'.__('CAUTION: ', 'bulletproof-security').'</font>'.__('Using the Wordfence WAF Firewall may cause serious/critical problems for your website and BPS.', 'bulletproof-security').'<br>'.__('To Dismiss this Notice click the Dismiss Notice button below. To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the Alerts|Logs|Email Options page.', 'bulletproof-security').'<br><div style="float:left;margin:3px 0px 3px 0px;padding:2px 6px 2px 6px;background-color:#e8e8e8;border:1px solid gray;"><a href="'.$bps_base.'bps_PhpiniHandler_nag_ignore=0'.'" style="text-decoration:none;font-weight:600;">'.__('Dismiss Notice', 'bulletproof-security').'</a></div></div>';
357
  echo $text;
358
 
359
  } else {
360
 
361
+ $text = '<div class="update-nag" style="background-color:#dfecf2;border:1px solid #999;font-size:1em;font-weight:600;padding:2px 5px;margin-top:2px;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><font color="blue">'.__('HUD Check: PHP/php.ini handler htaccess code check', 'bulletproof-security').'</font><br>'.__('PHP/php.ini handler htaccess code was found in your root .htaccess file, but was NOT found in BPS Custom Code.', 'bulletproof-security').'<br>'.__('To automatically fix this click here: ', 'bulletproof-security').'<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/wizard/wizard.php' ).'">'.esc_attr__('Setup Wizard Pre-Installation Checks', 'bulletproof-security').'</a><br>'.__('The Setup Wizard Pre-Installation Checks feature will automatically fix this just by visiting the Setup Wizard page.', 'bulletproof-security').'<br>'.__('To Dismiss this Notice click the Dismiss Notice button below. To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the Alerts|Logs|Email Options page.', 'bulletproof-security').'<br><div style="float:left;margin:3px 0px 3px 0px;padding:2px 6px 2px 6px;background-color:#e8e8e8;border:1px solid gray;"><a href="'.$bps_base.'bps_PhpiniHandler_nag_ignore=0'.'" style="text-decoration:none;font-weight:600;">'.__('Dismiss Notice', 'bulletproof-security').'</a></div></div>';
362
  echo $text;
363
  echo '<pre id="shown" style="overflow:auto;white-space:pre-wrap;height:65px;width:66%;margin:5px 0px 0px 2px;padding:5px;background:#fff url('.$pre_background_image_url.') top left repeat;border:1px solid #999;color:#000;display:block;font-family:"Courier New", Courier, monospace;font-size:11px;line-height:14px;">';
364
  echo '# PHP/php.ini handler htaccess code<br>';
397
 
398
  if ( stripos( $file_contents, "Wordfence WAF" ) ) {
399
 
400
+ $text = '<div class="update-nag" style="background-color:#dfecf2;border:1px solid #999;font-size:1em;font-weight:600;padding:2px 5px;margin-top:2px;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><font color="blue">'.__('HUD Check: Wordfence PHP/php.ini handler htaccess code detected', 'bulletproof-security').'</font><br>'.__('Wordfence PHP/php.ini handler htaccess code was found in your root .htaccess file, but was NOT found in BPS Custom Code.', 'bulletproof-security').'<br><a href="https://forum.ait-pro.com/forums/topic/wordfence-firewall-wp-contentwflogsconfig-php-file-quarantined/#wordfence-php-handler" target="_blank" title="Wordfence PHP Handler Fix">'.__('Click Here', 'bulletproof-security').'</a>'.__(' for the steps to fix this Wordfence problem.', 'bulletproof-security').'<br><font color="#fb0101">'.__('CAUTION: ', 'bulletproof-security').'</font>'.__('Using the Wordfence WAF Firewall may cause serious/critical problems for your website and BPS.', 'bulletproof-security').'<br>'.__('To Dismiss this Notice click the Dismiss Notice button below. To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the Alerts|Logs|Email Options page.', 'bulletproof-security').'<br><div style="float:left;margin:3px 0px 3px 0px;padding:2px 6px 2px 6px;background-color:#e8e8e8;border:1px solid gray;"><a href="'.$bps_base.'bps_PhpiniHandler_nag_ignore=0'.'" style="text-decoration:none;font-weight:600;">'.__('Dismiss Notice', 'bulletproof-security').'</a></div></div>';
401
  echo $text;
402
 
403
  } else {
404
 
405
+ $text = '<div class="update-nag" style="background-color:#dfecf2;border:1px solid #999;font-size:1em;font-weight:600;padding:2px 5px;margin-top:2px;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><font color="blue">'.__('HUD Check: PHP/php.ini handler htaccess code check', 'bulletproof-security').'</font><br>'.__('PHP/php.ini handler htaccess code was found in your root .htaccess file, but was NOT found in BPS Custom Code.', 'bulletproof-security').'<br>'.__('To automatically fix this click here: ', 'bulletproof-security').'<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/wizard/wizard.php' ).'">'.esc_attr__('Setup Wizard Pre-Installation Checks', 'bulletproof-security').'</a><br>'.__('The Setup Wizard Pre-Installation Checks feature will automatically fix this just by visiting the Setup Wizard page.', 'bulletproof-security').'<br>'.__('To Dismiss this Notice click the Dismiss Notice button below. To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the Alerts|Logs|Email Options page.', 'bulletproof-security').'<br><div style="float:left;margin:3px 0px 3px 0px;padding:2px 6px 2px 6px;background-color:#e8e8e8;border:1px solid gray;"><a href="'.$bps_base.'bps_PhpiniHandler_nag_ignore=0'.'" style="text-decoration:none;font-weight:600;">'.__('Dismiss Notice', 'bulletproof-security').'</a></div></div>';
406
  echo $text;
407
  echo '<pre id="shown" style="overflow:auto;white-space:pre-wrap;height:65px;width:66%;margin:5px 0px 0px 2px;padding:5px;background:#fff url('.$pre_background_image_url.') top left repeat;border:1px solid #999;color:#000;display:block;font-family:"Courier New", Courier, monospace;font-size:11px;line-height:14px;">';
408
  echo '# PHP/php.ini handler htaccess code<br>';
452
  $bps_base = str_replace( admin_url(), '', esc_html($_SERVER['REQUEST_URI']) ) . '&';
453
  }
454
 
455
+ $text = '<div class="update-nag" style="background-color:#dfecf2;border:1px solid #999;font-size:1em;font-weight:600;padding:2px 5px;margin-top:2px;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><font color="#fb0101">'.__('The WordPress Firewall 2 plugin is installed and activated', 'bulletproof-security').'</font><br>'.__('It is recommended that you delete the WordPress Firewall 2 plugin.', 'bulletproof-security').'<br><a href="https://forum.ait-pro.com/forums/topic/wordpress-firewall-2-plugin-unable-to-save-custom-code/" target="_blank" title="Link opens in a new Browser window">'.__('Click Here', 'bulletproof-security').'</a>'.__(' for more information.', 'bulletproof-security').'<br>'.__('To Dismiss this Notice click the Dismiss Notice button below. To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the Alerts|Logs|Email Options page.', 'bulletproof-security').'<br><div style="float:left;margin:3px 0px 3px 0px;padding:2px 6px 2px 6px;background-color:#e8e8e8;border:1px solid gray;"><a href="'.$bps_base.'bps_wpfirewall2_nag_ignore=0'.'" style="text-decoration:none;font-weight:600;">'.__('Dismiss Notice', 'bulletproof-security').'</a></div></div>';
456
  echo $text;
457
  }
458
  }
542
 
543
  if ( preg_match( $pattern1, htmlspecialchars_decode( $bps_customcode_one, ENT_QUOTES ), $matches1 ) && preg_match( $pattern2, htmlspecialchars_decode( $bps_customcode_one, ENT_QUOTES ), $matches2 ) ) {
544
 
545
+ $text = '<div class="update-nag" style="background-color:#dfecf2;border:1px solid #999;font-size:1em;font-weight:600;padding:2px 5px;margin-top:2px;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><font color="blue">'.__('New Improved BPS Speed Boost Cache Code', 'bulletproof-security').'</font><br>'.__('Older BPS Speed Boost Cache Code was found saved in this BPS Custom Code text box: CUSTOM CODE TOP PHP/PHP.INI HANDLER/CACHE CODE', 'bulletproof-security').'.<br>'.__('Newer improved BPS Speed Boost Cache Code has been created, which should improve website load speed performance even more.', 'bulletproof-security').'<br><a href="https://forum.ait-pro.com/forums/topic/htaccess-caching-code-speed-boost-cache-code/" target="_blank" title="BPS Speed Boost Cache Code">'.__('Get The New Improved BPS Speed Boost Cache Code', 'bulletproof-security').'</a>'.__('. To dismiss this Notice click the Dismiss Notice button below.', 'bulletproof-security').'<br>'.__('To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the Alerts|Logs|Email Options page.', 'bulletproof-security').'<br><div style="float:left;margin:3px 0px 3px 0px;padding:2px 6px 2px 6px;background-color:#e8e8e8;border:1px solid gray;"><a href="'.$bps_base.'bpsPro_hud_speed_boost_nag_ignore=0'.'" style="text-decoration:none;font-weight:600;">'.__('Dismiss Notice', 'bulletproof-security').'</a></div></div>';
546
  echo $text;
547
  }
548
 
805
  $bps_base = str_replace( admin_url(), '', esc_html($_SERVER['REQUEST_URI']) ) . '&';
806
  }
807
 
808
+ $text = '<div class="update-nag" style="background-color:#dfecf2;border:1px solid #999;font-size:1em;font-weight:600;padding:2px 5px;margin-top:2px;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><font color="blue">'.__('MScan Rebuild Notice', 'bulletproof-security').'</font><br>'.__('MScan has been completely rebuilt. MScan is faster, very accurate and user friendly. ', 'bulletproof-security').'<br><a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/mscan/mscan.php' ).'">'.__('Check out MScan', 'bulletproof-security').'</a>.'.__(' Recommendation: Click the Reset MScan button before running a new scan.', 'bulletproof-security').'<br>'.__('To Dismiss this Notice click the Dismiss Notice button below. To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the BPS Custom Code page.', 'bulletproof-security').'<br><div style="float:left;margin:3px 0px 3px 0px;padding:2px 6px 2px 6px;background-color:#e8e8e8;border:1px solid gray;"><a href="'.$bps_base.'bpsPro_new_feature_nag_ignore=0'.'" style="text-decoration:none;font-weight:bold;">'.__('Dismiss Notice', 'bulletproof-security').'</a></div></div>';
809
  echo $text;
810
  }
811
  }
includes/mscan-ajax-functions.php CHANGED
@@ -701,7 +701,7 @@ global $wp_version, $wpdb, $plugin_hashes, $theme_hashes;
701
  return true;
702
  }
703
 
704
- // MScan 2.0: File & Database Scanner
705
  // Faster, more accurate and most importantly no longer buggy.
706
  // Notes:
707
  // MScan Status 2 is set at the end of the scan time estimate function and means that other functions (zip download, file hash and file scanning) are still being processed.
@@ -1652,9 +1652,9 @@ global $wp_version, $wpdb, $plugin_hashes, $theme_hashes;
1652
 
1653
  } else {
1654
 
1655
- // Figure this error out L8R: PHP Warning: Undefined property: stdClass::$option_name in mscan-ajax-functions.php on line 1489
1656
- // Probably happening since I have nested foreach loops. May need to create arrays instead.
1657
- if ( ! preg_match( '/_transient_feed_(.*)/', $results->option_name ) && ! preg_match( '/bulletproof_security_options_mscan_(.*)/', $results->option_name ) ) {
1658
 
1659
  $getKey = $wpdb->get_results( "SHOW KEYS FROM $Table->Name WHERE Key_name = 'PRIMARY'" );
1660
 
701
  return true;
702
  }
703
 
704
+ // MScan: File & Database Scanner
705
  // Faster, more accurate and most importantly no longer buggy.
706
  // Notes:
707
  // MScan Status 2 is set at the end of the scan time estimate function and means that other functions (zip download, file hash and file scanning) are still being processed.
1652
 
1653
  } else {
1654
 
1655
+ // PHP Warning: Undefined property: stdClass::$option_name in mscan-ajax-functions.php on line xxx
1656
+ // This is a known issue with WP and transients - nothing to fix here. So just use error suppression, which may not work.
1657
+ if ( @!preg_match( '/_transient_feed_(.*)/', $results->option_name ) && @!preg_match( '/bulletproof_security_options_mscan_(.*)/', $results->option_name ) ) {
1658
 
1659
  $getKey = $wpdb->get_results( "SHOW KEYS FROM $Table->Name WHERE Key_name = 'PRIMARY'" );
1660
 
includes/mscan-plugin-hash-maker.php CHANGED
@@ -132,7 +132,7 @@ global $wp_version;
132
  }
133
  }
134
 
135
- $bps_mscan_plugin_hash_version_check = isset($mscan_plugin_hash['bps_mscan_plugin_hash_version_check']) ? $mscan_plugin_hash['bps_mscan_plugin_hash_version_check']["$plugin_name"] : '';
136
 
137
  // If the BPS DB option plugin version matches then don't download another zip file and just log a log entry.
138
  // Note: Any plugins not in the WP Plugin Repository will be listed in the array for later use.
@@ -634,28 +634,31 @@ global $wp_version;
634
 
635
  $plugin_hash_removal_array = array();
636
 
637
- foreach ( $mscan_plugin_hash['bps_mscan_plugin_hash_paths'] as $key => $value ) {
638
-
639
- // Plugin Deleted/Removed:
640
- // Remove deleted plugins from the First Run DB option array
641
- if ( ! in_array( $key, $installed_plugins_array_merged ) ) {
642
- unset($value);
643
- }
644
-
645
- // Plugin Updated:
646
- // Remove plugin hashes (values) from the First Run DB option array ONLY if the key exists and the value is not empty in the new plugin hash array.
647
- // The DB arrays will be merged at a later point. So this removes/unsets any matching keys in the first run array if the new hash array key matches
648
- // AND the value is not empty.
649
- // Important Note: The new hash array will ONLY contain the key and hashes for any new plugins and nothing else - no other default keys.
650
- if ( in_array( $key, $mscan_plugin_hash_new_array_keys ) ) {
651
- unset($value);
652
- }
653
-
654
- if ( ! empty($value) ) {
655
- $plugin_hash_removal_array[$key] = $value;
 
 
 
656
  }
657
  }
658
-
659
  $mscan_plugin_hash_options = array(
660
  'bps_mscan_plugin_hash_version_check' => $mscan_plugin_hash['bps_mscan_plugin_hash_version_check'],
661
  'bps_mscan_plugin_hash_paths' => $plugin_hash_removal_array,
132
  }
133
  }
134
 
135
+ @$bps_mscan_plugin_hash_version_check = isset($mscan_plugin_hash['bps_mscan_plugin_hash_version_check']) ? $mscan_plugin_hash['bps_mscan_plugin_hash_version_check']["$plugin_name"] : '';
136
 
137
  // If the BPS DB option plugin version matches then don't download another zip file and just log a log entry.
138
  // Note: Any plugins not in the WP Plugin Repository will be listed in the array for later use.
634
 
635
  $plugin_hash_removal_array = array();
636
 
637
+ if ( ! empty( $mscan_plugin_hash['bps_mscan_plugin_hash_paths'] ) ) {
638
+
639
+ foreach ( $mscan_plugin_hash['bps_mscan_plugin_hash_paths'] as $key => $value ) {
640
+
641
+ // Plugin Deleted/Removed:
642
+ // Remove deleted plugins from the First Run DB option array
643
+ if ( ! in_array( $key, $installed_plugins_array_merged ) ) {
644
+ unset($value);
645
+ }
646
+
647
+ // Plugin Updated:
648
+ // Remove plugin hashes (values) from the First Run DB option array ONLY if the key exists and the value is not empty in the new plugin hash array.
649
+ // The DB arrays will be merged at a later point. So this removes/unsets any matching keys in the first run array if the new hash array key matches
650
+ // AND the value is not empty.
651
+ // Important Note: The new hash array will ONLY contain the key and hashes for any new plugins and nothing else - no other default keys.
652
+ if ( in_array( $key, $mscan_plugin_hash_new_array_keys ) ) {
653
+ unset($value);
654
+ }
655
+
656
+ if ( ! empty($value) ) {
657
+ $plugin_hash_removal_array[$key] = $value;
658
+ }
659
  }
660
  }
661
+
662
  $mscan_plugin_hash_options = array(
663
  'bps_mscan_plugin_hash_version_check' => $mscan_plugin_hash['bps_mscan_plugin_hash_version_check'],
664
  'bps_mscan_plugin_hash_paths' => $plugin_hash_removal_array,
includes/mscan-theme-hash-maker.php CHANGED
@@ -88,7 +88,7 @@ global $wp_version;
88
  }
89
  }
90
 
91
- $bps_mscan_theme_hash_version_check = isset($mscan_theme_hash['bps_mscan_theme_hash_version_check']) ? $mscan_theme_hash['bps_mscan_theme_hash_version_check']["$theme_name"] : '';
92
 
93
  // If the BPS DB option theme version matches then don't download another zip file and just log a log entry.
94
  // Note: Any themes not in the WP Theme Repository will be listed in the array for later use.
@@ -536,25 +536,28 @@ global $wp_version;
536
 
537
  $theme_hash_removal_array = array();
538
 
539
- foreach ( $mscan_theme_hash['bps_mscan_theme_hash_paths'] as $key => $value ) {
540
 
541
- // Theme Deleted/Removed:
542
- // Remove deleted themes from the First Run DB option array
543
- if ( ! in_array( $key, $all_themes_array ) ) {
544
- unset($value);
545
- }
546
-
547
- // Theme Updated:
548
- // Remove theme hashes (values) from the First Run DB option array ONLY if the key exists and the value is not empty in the new theme hash array.
549
- // The DB arrays will be merged at a later point. So this removes/unsets any matching keys in the first run array if the new hash array key matches
550
- // AND the value is not empty.
551
- // Important Note: The new hash array will ONLY contain the key and hashes for any new themes and nothing else - no other default keys.
552
- if ( in_array( $key, $mscan_theme_hash_new_array_keys ) ) {
553
- unset($value);
554
- }
555
-
556
- if ( ! empty($value) ) {
557
- $theme_hash_removal_array[$key] = $value;
 
 
 
558
  }
559
  }
560
 
88
  }
89
  }
90
 
91
+ @$bps_mscan_theme_hash_version_check = isset($mscan_theme_hash['bps_mscan_theme_hash_version_check']) ? $mscan_theme_hash['bps_mscan_theme_hash_version_check']["$theme_name"] : '';
92
 
93
  // If the BPS DB option theme version matches then don't download another zip file and just log a log entry.
94
  // Note: Any themes not in the WP Theme Repository will be listed in the array for later use.
536
 
537
  $theme_hash_removal_array = array();
538
 
539
+ if ( ! empty( $mscan_theme_hash['bps_mscan_theme_hash_paths'] ) ) {
540
 
541
+ foreach ( $mscan_theme_hash['bps_mscan_theme_hash_paths'] as $key => $value ) {
542
+
543
+ // Theme Deleted/Removed:
544
+ // Remove deleted themes from the First Run DB option array
545
+ if ( ! in_array( $key, $all_themes_array ) ) {
546
+ unset($value);
547
+ }
548
+
549
+ // Theme Updated:
550
+ // Remove theme hashes (values) from the First Run DB option array ONLY if the key exists and the value is not empty in the new theme hash array.
551
+ // The DB arrays will be merged at a later point. So this removes/unsets any matching keys in the first run array if the new hash array key matches
552
+ // AND the value is not empty.
553
+ // Important Note: The new hash array will ONLY contain the key and hashes for any new themes and nothing else - no other default keys.
554
+ if ( in_array( $key, $mscan_theme_hash_new_array_keys ) ) {
555
+ unset($value);
556
+ }
557
+
558
+ if ( ! empty($value) ) {
559
+ $theme_hash_removal_array[$key] = $value;
560
+ }
561
  }
562
  }
563
 
languages/bulletproof-security.pot CHANGED
@@ -3,7 +3,7 @@ msgid ""
3
  msgstr ""
4
  "Project-Id-Version: bulletproof-security\n"
5
  "Report-Msgid-Bugs-To: \n"
6
- "POT-Creation-Date: 2021-11-29 09:56-0800\n"
7
  "PO-Revision-Date: 2015-06-20 19:13-0800\n"
8
  "Last-Translator: Ed Alexander <edward@ait-pro.com>\n"
9
  "Language-Team: AITpro <info@ait-pro.com>\n"
@@ -570,7 +570,7 @@ msgstr ""
570
 
571
  #: admin/core/core-export-import.php:115 admin/login/lsm-export.php:49
572
  #: admin/wizard/wizard-backup.php:246 admin/wizard/wizard-backup.php:287
573
- #: admin/wizard/wizard.php:1872
574
  msgid ""
575
  "If you see a 403 error and/or are unable to download the zip file then click "
576
  "here: "
@@ -579,7 +579,7 @@ msgstr ""
579
  #: admin/core/core-export-import.php:115 admin/login/lsm-export.php:49
580
  #: admin/wizard/wizard-backup.php:246 admin/wizard/wizard-backup.php:287
581
  #: admin/wizard/wizard.php:1084 admin/wizard/wizard.php:1181
582
- #: admin/wizard/wizard.php:1184 admin/wizard/wizard.php:1872
583
  #: includes/hud-autofix-whitelist.php:861
584
  msgid "Setup Wizard Options"
585
  msgstr ""
@@ -591,15 +591,15 @@ msgid ""
591
  msgstr ""
592
 
593
  #: admin/core/core-export-import.php:115 admin/login/lsm-export.php:49
594
- #: admin/wizard/wizard.php:1872
595
  msgid "Download Zip Export"
596
  msgstr ""
597
 
598
- #: admin/core/core-export-import.php:144 admin/wizard/wizard.php:2036
599
  msgid "Zip File Upload Successful."
600
  msgstr ""
601
 
602
- #: admin/core/core-export-import.php:155 admin/wizard/wizard.php:2047
603
  msgid "Zip File Exraction Successful. Method: ZipArchive class."
604
  msgstr ""
605
 
@@ -629,19 +629,19 @@ msgstr ""
629
  msgid "3. Click the wp-admin Folder BulletProof Mode Activate button."
630
  msgstr ""
631
 
632
- #: admin/core/core-export-import.php:169 admin/wizard/wizard.php:2058
633
  msgid "ERROR: Zip File Extraction Failed. Method: ZipArchive class."
634
  msgstr ""
635
 
636
- #: admin/core/core-export-import.php:189 admin/wizard/wizard.php:2078
637
  msgid "Zip File Extraction Successful. Method: PclZip."
638
  msgstr ""
639
 
640
- #: admin/core/core-export-import.php:203 admin/wizard/wizard.php:2090
641
  msgid "ERROR: Zip File Extraction Failed. Method: PclZip."
642
  msgstr ""
643
 
644
- #: admin/core/core-export-import.php:211 admin/wizard/wizard.php:2098
645
  msgid "ERROR: Zip File Upload Failed."
646
  msgstr ""
647
 
@@ -684,10 +684,10 @@ msgstr ""
684
  #: admin/core/core-htaccess-code.php:579 admin/core/core-htaccess-code.php:663
685
  #: admin/core/core.php:904 admin/core/core.php:994 admin/core/core.php:1108
686
  #: admin/core/core.php:1198 admin/core/core.php:1297
687
- #: admin/maintenance/maintenance.php:883 admin/maintenance/maintenance.php:1199
688
- #: admin/maintenance/maintenance.php:1708
689
- #: admin/maintenance/maintenance.php:1838
690
- #: admin/maintenance/maintenance.php:2029 admin/wizard/wizard-functions.php:44
691
  msgid "Click this link for help information: "
692
  msgstr ""
693
 
@@ -699,10 +699,10 @@ msgstr ""
699
  #: admin/core/core-htaccess-code.php:579 admin/core/core-htaccess-code.php:663
700
  #: admin/core/core.php:904 admin/core/core.php:994 admin/core/core.php:1108
701
  #: admin/core/core.php:1198 admin/core/core.php:1297
702
- #: admin/maintenance/maintenance.php:883 admin/maintenance/maintenance.php:1199
703
- #: admin/maintenance/maintenance.php:1708
704
- #: admin/maintenance/maintenance.php:1838
705
- #: admin/maintenance/maintenance.php:2029 admin/wizard/wizard-functions.php:44
706
  #: admin/wizard/wizard.php:1096
707
  msgid "htaccess Files Disabled Forum Topic"
708
  msgstr ""
@@ -1825,8 +1825,8 @@ msgstr ""
1825
  #: admin/core/core.php:461 admin/core/core.php:596 admin/core/core.php:689
1826
  #: admin/core/core.php:782 admin/core/core.php:836 admin/core/core.php:1890
1827
  #: admin/core/core.php:2116 admin/db-backup-security/db-backup-security.php:296
1828
- #: admin/db-backup-security/db-backup-security.php:1244
1829
- #: admin/db-backup-security/db-backup-security.php:1411
1830
  #: admin/email-log-settings/email-log-settings.php:262
1831
  #: admin/login/login.php:211 admin/login/login.php:833
1832
  #: admin/login/login.php:1171 admin/login/login.php:1712
@@ -1835,7 +1835,7 @@ msgstr ""
1835
  #: admin/mscan/mscan.php:2920 admin/security-log/security-log.php:224
1836
  #: admin/system-info/system-info.php:81 admin/theme-skin/theme-skin.php:87
1837
  #: admin/wizard/wizard.php:1125 admin/wizard/wizard.php:1194
1838
- #: admin/wizard/wizard.php:1710 bulletproof-security.php:182
1839
  msgid "BPS Pro Features"
1840
  msgstr ""
1841
 
@@ -1843,7 +1843,7 @@ msgstr ""
1843
  #: admin/core/core.php:1927 admin/core/core.php:1975 admin/login/login.php:158
1844
  #: admin/login/login.php:219 admin/login/login.php:936
1845
  #: admin/login/login.php:1192 admin/system-info/system-info.php:95
1846
- #: admin/system-info/system-info.php:1067
1847
  msgid "Permission Denied"
1848
  msgstr ""
1849
 
@@ -1855,8 +1855,8 @@ msgstr ""
1855
  #: admin/core/core.php:593 admin/core/core.php:686 admin/core/core.php:779
1856
  #: admin/core/core.php:833 admin/core/core.php:1887
1857
  #: admin/db-backup-security/db-backup-security.php:293
1858
- #: admin/db-backup-security/db-backup-security.php:1241
1859
- #: admin/db-backup-security/db-backup-security.php:1408
1860
  #: admin/email-log-settings/email-log-settings.php:259
1861
  #: admin/login/login.php:208 admin/login/login.php:830
1862
  #: admin/login/login.php:1168 admin/login/login.php:1709
@@ -1865,7 +1865,7 @@ msgstr ""
1865
  #: admin/mscan/mscan.php:2917 admin/security-log/security-log.php:221
1866
  #: admin/system-info/system-info.php:78 admin/theme-skin/theme-skin.php:83
1867
  #: admin/wizard/wizard.php:1122 admin/wizard/wizard.php:1191
1868
- #: admin/wizard/wizard.php:1707
1869
  msgid ""
1870
  "This Question Mark Help window is draggable (top) and resizable (bottom "
1871
  "right corner)"
@@ -1875,8 +1875,8 @@ msgstr ""
1875
  #: admin/core/core.php:596 admin/core/core.php:689 admin/core/core.php:782
1876
  #: admin/core/core.php:836 admin/core/core.php:1890 admin/core/core.php:2116
1877
  #: admin/core/core.php:2199 admin/db-backup-security/db-backup-security.php:296
1878
- #: admin/db-backup-security/db-backup-security.php:1244
1879
- #: admin/db-backup-security/db-backup-security.php:1411
1880
  #: admin/email-log-settings/email-log-settings.php:262
1881
  #: admin/login/login.php:211 admin/login/login.php:833
1882
  #: admin/login/login.php:1171 admin/login/login.php:1712
@@ -1885,7 +1885,7 @@ msgstr ""
1885
  #: admin/mscan/mscan.php:2920 admin/security-log/security-log.php:224
1886
  #: admin/system-info/system-info.php:81 admin/theme-skin/theme-skin.php:87
1887
  #: admin/wizard/wizard.php:1125 admin/wizard/wizard.php:1194
1888
- #: admin/wizard/wizard.php:1710
1889
  msgid ""
1890
  "Want even more security protection for the ridiculously cheap one-time price "
1891
  "of $69.95"
@@ -1895,8 +1895,8 @@ msgstr ""
1895
  #: admin/core/core.php:596 admin/core/core.php:689 admin/core/core.php:782
1896
  #: admin/core/core.php:836 admin/core/core.php:1890 admin/core/core.php:2116
1897
  #: admin/core/core.php:2201 admin/db-backup-security/db-backup-security.php:296
1898
- #: admin/db-backup-security/db-backup-security.php:1244
1899
- #: admin/db-backup-security/db-backup-security.php:1411
1900
  #: admin/email-log-settings/email-log-settings.php:262
1901
  #: admin/login/login.php:211 admin/login/login.php:833
1902
  #: admin/login/login.php:1171 admin/login/login.php:1712
@@ -1905,7 +1905,7 @@ msgstr ""
1905
  #: admin/mscan/mscan.php:2920 admin/security-log/security-log.php:224
1906
  #: admin/system-info/system-info.php:81 admin/theme-skin/theme-skin.php:87
1907
  #: admin/wizard/wizard.php:1125 admin/wizard/wizard.php:1194
1908
- #: admin/wizard/wizard.php:1710
1909
  msgid ""
1910
  "BPS Pro comes with free unlimited installations, upgrades & support for "
1911
  "life. No yearly subscriptions or additional costs."
@@ -1915,8 +1915,8 @@ msgstr ""
1915
  #: admin/core/core.php:596 admin/core/core.php:689 admin/core/core.php:782
1916
  #: admin/core/core.php:836 admin/core/core.php:1890 admin/core/core.php:2116
1917
  #: admin/db-backup-security/db-backup-security.php:296
1918
- #: admin/db-backup-security/db-backup-security.php:1244
1919
- #: admin/db-backup-security/db-backup-security.php:1411
1920
  #: admin/email-log-settings/email-log-settings.php:262
1921
  #: admin/login/login.php:211 admin/login/login.php:833
1922
  #: admin/login/login.php:1171 admin/login/login.php:1712
@@ -1925,7 +1925,7 @@ msgstr ""
1925
  #: admin/mscan/mscan.php:2920 admin/security-log/security-log.php:224
1926
  #: admin/system-info/system-info.php:81 admin/theme-skin/theme-skin.php:87
1927
  #: admin/wizard/wizard.php:1125 admin/wizard/wizard.php:1194
1928
- #: admin/wizard/wizard.php:1710
1929
  msgid ""
1930
  "BBS Pro has an amazing track record. BPS Pro is installed on 60,000+ "
1931
  "websites. Not a single one of those websites has been hacked in 10+ years."
@@ -1935,8 +1935,8 @@ msgstr ""
1935
  #: admin/core/core.php:596 admin/core/core.php:689 admin/core/core.php:782
1936
  #: admin/core/core.php:836 admin/core/core.php:1890 admin/core/core.php:2116
1937
  #: admin/db-backup-security/db-backup-security.php:296
1938
- #: admin/db-backup-security/db-backup-security.php:1244
1939
- #: admin/db-backup-security/db-backup-security.php:1411
1940
  #: admin/email-log-settings/email-log-settings.php:262
1941
  #: admin/login/login.php:211 admin/login/login.php:833
1942
  #: admin/login/login.php:1171 admin/login/login.php:1712
@@ -1945,7 +1945,7 @@ msgstr ""
1945
  #: admin/mscan/mscan.php:2920 admin/security-log/security-log.php:224
1946
  #: admin/system-info/system-info.php:81 admin/theme-skin/theme-skin.php:87
1947
  #: admin/wizard/wizard.php:1125 admin/wizard/wizard.php:1194
1948
- #: admin/wizard/wizard.php:1710
1949
  msgid "Get BPS Pro"
1950
  msgstr ""
1951
 
@@ -2109,11 +2109,11 @@ msgid ""
2109
  "other buttons."
2110
  msgstr ""
2111
 
2112
- #: admin/core/core.php:569 admin/maintenance/maintenance.php:691
2113
  #: admin/security-log/security-log.php:444
2114
  #: admin/security-log/security-log.php:459
2115
  #: admin/security-log/security-log.php:677
2116
- #: admin/system-info/system-info.php:1123
2117
  msgid "Click OK to proceed or click Cancel."
2118
  msgstr ""
2119
 
@@ -2391,12 +2391,12 @@ msgstr ""
2391
  msgid "Click OK to Turn AutoLock On or click Cancel."
2392
  msgstr ""
2393
 
2394
- #: admin/core/core.php:1415 admin/system-info/system-info.php:784
2395
- #: admin/system-info/system-info.php:800 admin/system-info/system-info.php:808
2396
- #: admin/system-info/system-info.php:816 admin/system-info/system-info.php:824
2397
- #: admin/system-info/system-info.php:832 admin/system-info/system-info.php:840
2398
- #: admin/system-info/system-info.php:848 admin/system-info/system-info.php:856
2399
- #: admin/system-info/system-info.php:875 includes/functions.php:586
2400
  #: includes/functions.php:777 includes/functions.php:945
2401
  #: includes/functions.php:988 includes/functions.php:1036
2402
  #: includes/functions.php:1080
@@ -2415,12 +2415,12 @@ msgstr ""
2415
  msgid "Click OK to Turn AutoLock Off or click Cancel."
2416
  msgstr ""
2417
 
2418
- #: admin/core/core.php:1427 admin/system-info/system-info.php:559
2419
- #: admin/system-info/system-info.php:803 admin/system-info/system-info.php:811
2420
- #: admin/system-info/system-info.php:819 admin/system-info/system-info.php:827
2421
- #: admin/system-info/system-info.php:835 admin/system-info/system-info.php:843
2422
- #: admin/system-info/system-info.php:851 admin/system-info/system-info.php:859
2423
- #: admin/system-info/system-info.php:867 admin/system-info/system-info.php:878
2424
  #: includes/functions.php:950 includes/functions.php:993
2425
  #: includes/functions.php:1042 includes/functions.php:1086
2426
  #: includes/general-functions.php:285 includes/general-functions.php:300
@@ -2584,7 +2584,7 @@ msgid ""
2584
  msgstr ""
2585
 
2586
  #: admin/core/core.php:2107
2587
- #: admin/db-backup-security/db-backup-security.php:1743
2588
  #: admin/mscan/mscan.php:3530 admin/theme-skin/theme-skin.php:236
2589
  msgid "Whats New in "
2590
  msgstr ""
@@ -2632,9 +2632,9 @@ msgid "BPS Security Forum: "
2632
  msgstr ""
2633
 
2634
  #: admin/core/core.php:2158 admin/email-log-settings/email-log-settings.php:431
2635
- #: admin/login/login.php:1828 admin/maintenance/maintenance.php:2153
2636
  #: admin/security-log/security-log.php:809
2637
- #: admin/system-info/system-info.php:1147
2638
  msgid "Contributors Page"
2639
  msgstr ""
2640
 
@@ -2643,9 +2643,9 @@ msgid "WP Permalinks - Custom Permalink Structure Help Info"
2643
  msgstr ""
2644
 
2645
  #: admin/core/core.php:2160 admin/email-log-settings/email-log-settings.php:430
2646
- #: admin/login/login.php:1827 admin/maintenance/maintenance.php:2154
2647
  #: admin/security-log/security-log.php:808
2648
- #: admin/system-info/system-info.php:1146
2649
  msgid "Security Log Event Codes"
2650
  msgstr ""
2651
 
@@ -2654,11 +2654,11 @@ msgid "Adding a Custom 403 Forbidden Page For Your Website"
2654
  msgstr ""
2655
 
2656
  #: admin/core/core.php:2162
2657
- #: admin/db-backup-security/db-backup-security.php:1747
2658
  #: admin/email-log-settings/email-log-settings.php:432
2659
- #: admin/login/login.php:1829 admin/maintenance/maintenance.php:2155
2660
  #: admin/mscan/mscan.php:3533 admin/security-log/security-log.php:810
2661
- #: admin/system-info/system-info.php:1148 admin/theme-skin/theme-skin.php:239
2662
  msgid "Forum: Search, Troubleshooting Steps & Post Questions For Assistance"
2663
  msgstr ""
2664
 
@@ -2913,38 +2913,38 @@ msgid "BPS Pro Version Release Dates"
2913
  msgstr ""
2914
 
2915
  #: admin/core/core.php:2245 admin/core/core.php:2246 admin/core/core.php:2247
2916
- #: admin/core/core.php:2253 admin/core/core.php:2254 admin/core/core.php:2255
2917
  #: admin/core/core.php:2256 admin/core/core.php:2257 admin/core/core.php:2258
2918
  #: admin/core/core.php:2259 admin/core/core.php:2260 admin/core/core.php:2261
2919
- #: admin/core/core.php:2262 admin/core/core.php:2268 admin/core/core.php:2269
2920
  #: admin/core/core.php:2270 admin/core/core.php:2271 admin/core/core.php:2272
2921
- #: admin/core/core.php:2273 admin/core/core.php:2279 admin/core/core.php:2280
2922
- #: admin/core/core.php:2281 admin/core/core.php:2282 admin/core/core.php:2287
2923
- #: admin/core/core.php:2288 admin/core/core.php:2289 admin/core/core.php:2290
2924
- #: admin/core/core.php:2291 admin/core/core.php:2296 admin/core/core.php:2297
2925
  #: admin/core/core.php:2298 admin/core/core.php:2299 admin/core/core.php:2300
2926
  #: admin/core/core.php:2301 admin/core/core.php:2302 admin/core/core.php:2303
2927
- #: admin/core/core.php:2304 admin/core/core.php:2309 admin/core/core.php:2310
2928
  #: admin/core/core.php:2311 admin/core/core.php:2312 admin/core/core.php:2313
2929
  #: admin/core/core.php:2314 admin/core/core.php:2315 admin/core/core.php:2316
2930
  #: admin/core/core.php:2317 admin/core/core.php:2318 admin/core/core.php:2319
2931
- #: admin/core/core.php:2320 admin/core/core.php:2321 admin/core/core.php:2327
2932
- #: admin/core/core.php:2328 admin/core/core.php:2329 admin/core/core.php:2330
2933
  #: admin/core/core.php:2331 admin/core/core.php:2332 admin/core/core.php:2333
2934
  #: admin/core/core.php:2334 admin/core/core.php:2335 admin/core/core.php:2336
2935
  #: admin/core/core.php:2337 admin/core/core.php:2338 admin/core/core.php:2339
2936
- #: admin/core/core.php:2340 admin/core/core.php:2346 admin/core/core.php:2347
2937
  #: admin/core/core.php:2348 admin/core/core.php:2349 admin/core/core.php:2350
2938
  #: admin/core/core.php:2351 admin/core/core.php:2352 admin/core/core.php:2353
2939
  #: admin/core/core.php:2354 admin/core/core.php:2355 admin/core/core.php:2356
2940
- #: admin/core/core.php:2357 admin/core/core.php:2358 admin/core/core.php:2364
2941
- #: admin/core/core.php:2365 admin/core/core.php:2366 admin/core/core.php:2367
2942
  #: admin/core/core.php:2368 admin/core/core.php:2369 admin/core/core.php:2370
2943
  #: admin/core/core.php:2371 admin/core/core.php:2372 admin/core/core.php:2373
2944
- #: admin/core/core.php:2379 admin/core/core.php:2380 admin/core/core.php:2381
2945
  #: admin/core/core.php:2382 admin/core/core.php:2383 admin/core/core.php:2384
2946
  #: admin/core/core.php:2385 admin/core/core.php:2386 admin/core/core.php:2387
2947
- #: admin/core/core.php:2388
2948
  #, php-format
2949
  msgid ""
2950
  "<a href=\"%2$s\" target=\"_blank\" title=\"Link Opens in New Browser Window"
@@ -3428,8 +3428,8 @@ msgstr ""
3428
 
3429
  #: admin/db-backup-security/db-backup-help-text.php:12
3430
  msgid ""
3431
- "DB Backup Log Email Alert and Log file option settings are on the Email|Log "
3432
- "Settings page."
3433
  msgstr ""
3434
 
3435
  #: admin/db-backup-security/db-backup-help-text.php:12
@@ -3606,14 +3606,14 @@ msgid "DB Backup"
3606
  msgstr ""
3607
 
3608
  #: admin/db-backup-security/db-backup-security.php:273
3609
- #: admin/db-backup-security/db-backup-security.php:1234
3610
- #: admin/db-backup-security/db-backup-security.php:1237
3611
  msgid "DB Backup Log"
3612
  msgstr ""
3613
 
3614
  #: admin/db-backup-security/db-backup-security.php:274
3615
- #: admin/db-backup-security/db-backup-security.php:1401
3616
- #: admin/db-backup-security/db-backup-security.php:1404
3617
  msgid "DB Table Prefix Changer"
3618
  msgstr ""
3619
 
@@ -3781,7 +3781,7 @@ msgid "All"
3781
  msgstr ""
3782
 
3783
  #: admin/db-backup-security/db-backup-security.php:983
3784
- #: admin/db-backup-security/db-backup-security.php:1615
3785
  msgid "DB Table Name"
3786
  msgstr ""
3787
 
@@ -3803,410 +3803,406 @@ msgstr ""
3803
 
3804
  #: admin/db-backup-security/db-backup-security.php:1038
3805
  msgid ""
3806
- "Note: If you see 404 errors when trying to download zip files or if you have"
3807
- msgstr ""
3808
-
3809
- #: admin/db-backup-security/db-backup-security.php:1039
3810
- msgid ""
3811
  "changed the DB Backup Folder Location above, click the Question Mark help "
3812
  "button."
3813
  msgstr ""
3814
 
3815
- #: admin/db-backup-security/db-backup-security.php:1042
3816
  msgid "Backup Job Type: Manual or Scheduled"
3817
  msgstr ""
3818
 
3819
- #: admin/db-backup-security/db-backup-security.php:1044
3820
  msgid "Manual DB Backup Job"
3821
  msgstr ""
3822
 
3823
- #: admin/db-backup-security/db-backup-security.php:1045
3824
  msgid "Scheduled DB Backup Job"
3825
  msgstr ""
3826
 
3827
- #: admin/db-backup-security/db-backup-security.php:1048
3828
  msgid "Frequency of Scheduled Backup Job (recurring)"
3829
  msgstr ""
3830
 
3831
- #: admin/db-backup-security/db-backup-security.php:1050
3832
- #: admin/db-backup-security/db-backup-security.php:1059
3833
- #: admin/db-backup-security/db-backup-security.php:1088
3834
- #: admin/db-backup-security/db-backup-security.php:1100
3835
  msgid "N/A"
3836
  msgstr ""
3837
 
3838
- #: admin/db-backup-security/db-backup-security.php:1051
3839
  msgid "Hourly Scheduled DB Backup Job"
3840
  msgstr ""
3841
 
3842
- #: admin/db-backup-security/db-backup-security.php:1052
3843
  msgid "Daily Scheduled DB Backup Job"
3844
  msgstr ""
3845
 
3846
- #: admin/db-backup-security/db-backup-security.php:1053
3847
  msgid "Weekly Scheduled DB Backup Job"
3848
  msgstr ""
3849
 
3850
- #: admin/db-backup-security/db-backup-security.php:1054
3851
  msgid "Monthly Scheduled DB Backup Job"
3852
  msgstr ""
3853
 
3854
- #: admin/db-backup-security/db-backup-security.php:1057
3855
  msgid "Hour When Scheduled Backup is Run (recurring)"
3856
  msgstr ""
3857
 
3858
- #: admin/db-backup-security/db-backup-security.php:1060
3859
  msgid "12AM"
3860
  msgstr ""
3861
 
3862
- #: admin/db-backup-security/db-backup-security.php:1061
3863
  msgid "1AM"
3864
  msgstr ""
3865
 
3866
- #: admin/db-backup-security/db-backup-security.php:1062
3867
  msgid "2AM"
3868
  msgstr ""
3869
 
3870
- #: admin/db-backup-security/db-backup-security.php:1063
3871
  msgid "3AM"
3872
  msgstr ""
3873
 
3874
- #: admin/db-backup-security/db-backup-security.php:1064
3875
  msgid "4AM"
3876
  msgstr ""
3877
 
3878
- #: admin/db-backup-security/db-backup-security.php:1065
3879
  msgid "5AM"
3880
  msgstr ""
3881
 
3882
- #: admin/db-backup-security/db-backup-security.php:1066
3883
  msgid "6AM"
3884
  msgstr ""
3885
 
3886
- #: admin/db-backup-security/db-backup-security.php:1067
3887
  msgid "7AM"
3888
  msgstr ""
3889
 
3890
- #: admin/db-backup-security/db-backup-security.php:1068
3891
  msgid "8AM"
3892
  msgstr ""
3893
 
3894
- #: admin/db-backup-security/db-backup-security.php:1069
3895
  msgid "9AM"
3896
  msgstr ""
3897
 
3898
- #: admin/db-backup-security/db-backup-security.php:1070
3899
  msgid "10AM"
3900
  msgstr ""
3901
 
3902
- #: admin/db-backup-security/db-backup-security.php:1071
3903
  msgid "11AM"
3904
  msgstr ""
3905
 
3906
- #: admin/db-backup-security/db-backup-security.php:1072
3907
  msgid "12PM"
3908
  msgstr ""
3909
 
3910
- #: admin/db-backup-security/db-backup-security.php:1073
3911
  msgid "1PM"
3912
  msgstr ""
3913
 
3914
- #: admin/db-backup-security/db-backup-security.php:1074
3915
  msgid "2PM"
3916
  msgstr ""
3917
 
3918
- #: admin/db-backup-security/db-backup-security.php:1075
3919
  msgid "3PM"
3920
  msgstr ""
3921
 
3922
- #: admin/db-backup-security/db-backup-security.php:1076
3923
  msgid "4PM"
3924
  msgstr ""
3925
 
3926
- #: admin/db-backup-security/db-backup-security.php:1077
3927
  msgid "5PM"
3928
  msgstr ""
3929
 
3930
- #: admin/db-backup-security/db-backup-security.php:1078
3931
  msgid "6PM"
3932
  msgstr ""
3933
 
3934
- #: admin/db-backup-security/db-backup-security.php:1079
3935
  msgid "7PM"
3936
  msgstr ""
3937
 
3938
- #: admin/db-backup-security/db-backup-security.php:1080
3939
  msgid "8PM"
3940
  msgstr ""
3941
 
3942
- #: admin/db-backup-security/db-backup-security.php:1081
3943
  msgid "9PM"
3944
  msgstr ""
3945
 
3946
- #: admin/db-backup-security/db-backup-security.php:1082
3947
  msgid "10PM"
3948
  msgstr ""
3949
 
3950
- #: admin/db-backup-security/db-backup-security.php:1083
3951
  msgid "11PM"
3952
  msgstr ""
3953
 
3954
- #: admin/db-backup-security/db-backup-security.php:1086
3955
  msgid "Day of Week When Scheduled Backup is Run (recurring)"
3956
  msgstr ""
3957
 
3958
- #: admin/db-backup-security/db-backup-security.php:1089
3959
  msgid "Sunday"
3960
  msgstr ""
3961
 
3962
- #: admin/db-backup-security/db-backup-security.php:1090
3963
  msgid "Monday"
3964
  msgstr ""
3965
 
3966
- #: admin/db-backup-security/db-backup-security.php:1091
3967
  msgid "Tuesday"
3968
  msgstr ""
3969
 
3970
- #: admin/db-backup-security/db-backup-security.php:1092
3971
  msgid "Wednesday"
3972
  msgstr ""
3973
 
3974
- #: admin/db-backup-security/db-backup-security.php:1093
3975
  msgid "Thursday"
3976
  msgstr ""
3977
 
3978
- #: admin/db-backup-security/db-backup-security.php:1094
3979
  msgid "Friday"
3980
  msgstr ""
3981
 
3982
- #: admin/db-backup-security/db-backup-security.php:1095
3983
  msgid "Saturday"
3984
  msgstr ""
3985
 
3986
- #: admin/db-backup-security/db-backup-security.php:1098
3987
  msgid "Day of Month When Scheduled Backup is Run (recurring)"
3988
  msgstr ""
3989
 
3990
- #: admin/db-backup-security/db-backup-security.php:1101
3991
  msgid "1st"
3992
  msgstr ""
3993
 
3994
- #: admin/db-backup-security/db-backup-security.php:1102
3995
  msgid "2nd"
3996
  msgstr ""
3997
 
3998
- #: admin/db-backup-security/db-backup-security.php:1103
3999
  msgid "3rd"
4000
  msgstr ""
4001
 
4002
- #: admin/db-backup-security/db-backup-security.php:1104
4003
  msgid "4th"
4004
  msgstr ""
4005
 
4006
- #: admin/db-backup-security/db-backup-security.php:1105
4007
  msgid "5th"
4008
  msgstr ""
4009
 
4010
- #: admin/db-backup-security/db-backup-security.php:1106
4011
  msgid "6th"
4012
  msgstr ""
4013
 
4014
- #: admin/db-backup-security/db-backup-security.php:1107
4015
  msgid "7th"
4016
  msgstr ""
4017
 
4018
- #: admin/db-backup-security/db-backup-security.php:1108
4019
  msgid "8th"
4020
  msgstr ""
4021
 
4022
- #: admin/db-backup-security/db-backup-security.php:1109
4023
  msgid "9th"
4024
  msgstr ""
4025
 
4026
- #: admin/db-backup-security/db-backup-security.php:1110
4027
  msgid "10th"
4028
  msgstr ""
4029
 
4030
- #: admin/db-backup-security/db-backup-security.php:1111
4031
  msgid "11th"
4032
  msgstr ""
4033
 
4034
- #: admin/db-backup-security/db-backup-security.php:1112
4035
  msgid "12th"
4036
  msgstr ""
4037
 
4038
- #: admin/db-backup-security/db-backup-security.php:1113
4039
  msgid "13th"
4040
  msgstr ""
4041
 
4042
- #: admin/db-backup-security/db-backup-security.php:1114
4043
  msgid "14th"
4044
  msgstr ""
4045
 
4046
- #: admin/db-backup-security/db-backup-security.php:1115
4047
  msgid "15th"
4048
  msgstr ""
4049
 
4050
- #: admin/db-backup-security/db-backup-security.php:1116
4051
  msgid "16th"
4052
  msgstr ""
4053
 
4054
- #: admin/db-backup-security/db-backup-security.php:1117
4055
  msgid "17th"
4056
  msgstr ""
4057
 
4058
- #: admin/db-backup-security/db-backup-security.php:1118
4059
  msgid "18th"
4060
  msgstr ""
4061
 
4062
- #: admin/db-backup-security/db-backup-security.php:1119
4063
  msgid "19th"
4064
  msgstr ""
4065
 
4066
- #: admin/db-backup-security/db-backup-security.php:1120
4067
  msgid "20th"
4068
  msgstr ""
4069
 
4070
- #: admin/db-backup-security/db-backup-security.php:1121
4071
  msgid "21st"
4072
  msgstr ""
4073
 
4074
- #: admin/db-backup-security/db-backup-security.php:1122
4075
  msgid "22nd"
4076
  msgstr ""
4077
 
4078
- #: admin/db-backup-security/db-backup-security.php:1123
4079
  msgid "23rd"
4080
  msgstr ""
4081
 
4082
- #: admin/db-backup-security/db-backup-security.php:1124
4083
  msgid "24th"
4084
  msgstr ""
4085
 
4086
- #: admin/db-backup-security/db-backup-security.php:1125
4087
  msgid "25th"
4088
  msgstr ""
4089
 
4090
- #: admin/db-backup-security/db-backup-security.php:1126
4091
  msgid "26th"
4092
  msgstr ""
4093
 
4094
- #: admin/db-backup-security/db-backup-security.php:1127
4095
  msgid "27th"
4096
  msgstr ""
4097
 
4098
- #: admin/db-backup-security/db-backup-security.php:1128
4099
  msgid "28th"
4100
  msgstr ""
4101
 
4102
- #: admin/db-backup-security/db-backup-security.php:1129
4103
  msgid "29th"
4104
  msgstr ""
4105
 
4106
- #: admin/db-backup-security/db-backup-security.php:1130
4107
  msgid "30th"
4108
  msgstr ""
4109
 
4110
- #: admin/db-backup-security/db-backup-security.php:1133
4111
  msgid "Send Scheduled Backup Zip File Via Email or Just Email Only:"
4112
  msgstr ""
4113
 
4114
- #: admin/db-backup-security/db-backup-security.php:1134
4115
  msgid ""
4116
  "Note: Check with your email provider for the maximum<br>file attachment size "
4117
  "limit that is allowed by your Mail Server"
4118
  msgstr ""
4119
 
4120
- #: admin/db-backup-security/db-backup-security.php:1136
4121
  msgid "Do Not Email Zip Backup File"
4122
  msgstr ""
4123
 
4124
- #: admin/db-backup-security/db-backup-security.php:1137
4125
  msgid "Email & Delete Zip Backup File"
4126
  msgstr ""
4127
 
4128
- #: admin/db-backup-security/db-backup-security.php:1138
4129
  msgid "Email Zip Backup File"
4130
  msgstr ""
4131
 
4132
- #: admin/db-backup-security/db-backup-security.php:1139
4133
  msgid "Send Email Only & Not Zip Backup File"
4134
  msgstr ""
4135
 
4136
- #: admin/db-backup-security/db-backup-security.php:1142
4137
  msgid "Automatically Delete Old Backup Files:"
4138
  msgstr ""
4139
 
4140
- #: admin/db-backup-security/db-backup-security.php:1143
4141
- #: admin/db-backup-security/db-backup-security.php:1157
4142
  msgid "Independent Option:"
4143
  msgstr ""
4144
 
4145
- #: admin/db-backup-security/db-backup-security.php:1145
4146
  msgid "Never Delete Old Backup Files"
4147
  msgstr ""
4148
 
4149
- #: admin/db-backup-security/db-backup-security.php:1146
4150
  msgid "Delete Backup Files Older Than 1 Day"
4151
  msgstr ""
4152
 
4153
- #: admin/db-backup-security/db-backup-security.php:1147
4154
  msgid "Delete Backup Files Older Than 5 Days"
4155
  msgstr ""
4156
 
4157
- #: admin/db-backup-security/db-backup-security.php:1148
4158
  msgid "Delete Backup Files Older Than 10 Days"
4159
  msgstr ""
4160
 
4161
- #: admin/db-backup-security/db-backup-security.php:1149
4162
  msgid "Delete Backup Files Older Than 15 Days"
4163
  msgstr ""
4164
 
4165
- #: admin/db-backup-security/db-backup-security.php:1150
4166
  msgid "Delete Backup Files Older Than 30 Days"
4167
  msgstr ""
4168
 
4169
- #: admin/db-backup-security/db-backup-security.php:1151
4170
  msgid "Delete Backup Files Older Than 60 Days"
4171
  msgstr ""
4172
 
4173
- #: admin/db-backup-security/db-backup-security.php:1152
4174
  msgid "Delete Backup Files Older Than 90 Days"
4175
  msgstr ""
4176
 
4177
- #: admin/db-backup-security/db-backup-security.php:1153
4178
  msgid "Delete Backup Files Older Than 180 Days"
4179
  msgstr ""
4180
 
4181
- #: admin/db-backup-security/db-backup-security.php:1156
4182
  msgid "Turn On|Off All Scheduled Backups (Override):"
4183
  msgstr ""
4184
 
4185
- #: admin/db-backup-security/db-backup-security.php:1159
4186
  msgid "All Scheduled Backups On"
4187
  msgstr ""
4188
 
4189
- #: admin/db-backup-security/db-backup-security.php:1160
4190
  msgid "All Scheduled Backups Off"
4191
  msgstr ""
4192
 
4193
- #: admin/db-backup-security/db-backup-security.php:1163
4194
  msgid "Click OK to Create this Backup Job or click Cancel"
4195
  msgstr ""
4196
 
4197
- #: admin/db-backup-security/db-backup-security.php:1181
4198
  msgid "Rename|Create|Reset DB Backup Folder Name:"
4199
  msgstr ""
4200
 
4201
- #: admin/db-backup-security/db-backup-security.php:1182
4202
  msgid "Randomly Generated New DB Backup Folder Name."
4203
  msgstr ""
4204
 
4205
- #: admin/db-backup-security/db-backup-security.php:1183
4206
  msgid "Valid Folder Naming Characters: a-z A-Z 0-9 - _"
4207
  msgstr ""
4208
 
4209
- #: admin/db-backup-security/db-backup-security.php:1186
4210
  msgid ""
4211
  "The Rename|Create|Reset Tool renames the DB Backup folder if it already "
4212
  "exists or creates a new DB Backup folder if it does not already exist.\\n"
@@ -4218,109 +4214,109 @@ msgid ""
4218
  "OK to proceed or click Cancel"
4219
  msgstr ""
4220
 
4221
- #: admin/db-backup-security/db-backup-security.php:1262
4222
- #: admin/db-backup-security/db-backup-security.php:1265
4223
  msgid "DB Backup Log File Size: "
4224
  msgstr ""
4225
 
4226
- #: admin/db-backup-security/db-backup-security.php:1265
4227
  msgid "The Email Logging options will only send log files up to 2MB in size."
4228
  msgstr ""
4229
 
4230
- #: admin/db-backup-security/db-backup-security.php:1265
4231
  msgid ""
4232
  "Copy and paste the DB Backup Log file contents into a Notepad text file on "
4233
  "your computer and save it."
4234
  msgstr ""
4235
 
4236
- #: admin/db-backup-security/db-backup-security.php:1265
4237
  #: admin/mscan/mscan.php:2027
4238
  msgid ""
4239
  "Then click the Delete Log button to delete the contents of this Log file."
4240
  msgstr ""
4241
 
4242
- #: admin/db-backup-security/db-backup-security.php:1280
4243
  msgid "DB Backup Log Last Modified Time: "
4244
  msgstr ""
4245
 
4246
- #: admin/db-backup-security/db-backup-security.php:1294
4247
  msgid ""
4248
  "Success! Your DB Backup Log file has been deleted and replaced with a new "
4249
  "blank DB Backup Log file."
4250
  msgstr ""
4251
 
4252
- #: admin/db-backup-security/db-backup-security.php:1302
4253
  msgid "Clicking OK will delete the contents of your DB Backup Log file."
4254
  msgstr ""
4255
 
4256
- #: admin/db-backup-security/db-backup-security.php:1302
4257
  #: admin/mscan/mscan.php:2085 admin/security-log/security-log.php:488
4258
  msgid "Click OK to Delete the Log file contents or click Cancel."
4259
  msgstr ""
4260
 
4261
- #: admin/db-backup-security/db-backup-security.php:1321
4262
  msgid ""
4263
  "The DB Backup Log File Was Not Found! Check that the file really exists here "
4264
  "- /"
4265
  msgstr ""
4266
 
4267
- #: admin/db-backup-security/db-backup-security.php:1321
4268
  msgid "/bps-backup/logs/db_backup_log.txt and is named correctly."
4269
  msgstr ""
4270
 
4271
- #: admin/db-backup-security/db-backup-security.php:1340
4272
  msgid ""
4273
  "File Open and Write test successful! Your DB Backup Log file is writable."
4274
  msgstr ""
4275
 
4276
- #: admin/db-backup-security/db-backup-security.php:1352
4277
  msgid "Success! Your DB Backup Log file has been updated."
4278
  msgstr ""
4279
 
4280
- #: admin/db-backup-security/db-backup-security.php:1423
4281
  msgid "Your current WordPress Database Table Prefix is: "
4282
  msgstr ""
4283
 
4284
- #: admin/db-backup-security/db-backup-security.php:1423
4285
  msgid "NOTES: "
4286
  msgstr ""
4287
 
4288
- #: admin/db-backup-security/db-backup-security.php:1423
4289
  msgid ""
4290
  "1. It is recommended that you backup your database before using this tool."
4291
  msgstr ""
4292
 
4293
- #: admin/db-backup-security/db-backup-security.php:1423
4294
  msgid ""
4295
  "2. If you want to create your own DB Table Prefix name or add additional "
4296
  "characters to the randomly generated DB Table Prefix name below then ONLY "
4297
  "use lowercase letters, numbers and underscores in your DB Table Prefix name."
4298
  msgstr ""
4299
 
4300
- #: admin/db-backup-security/db-backup-security.php:1423
4301
  msgid ""
4302
  "3. The maximum length limitation of a DB Table name, including the table "
4303
  "prefix is 64 characters. See the DB Table Names & Character Length Table to "
4304
  "the right."
4305
  msgstr ""
4306
 
4307
- #: admin/db-backup-security/db-backup-security.php:1423
4308
  msgid ""
4309
  "4. To change your DB Table Prefix name back to the WordPress default DB "
4310
  "Table Prefix name, enter wp_ for the DB Table Prefix name."
4311
  msgstr ""
4312
 
4313
- #: admin/db-backup-security/db-backup-security.php:1435
4314
  msgid ""
4315
  "ERROR: The DB Table Prefix name can only contain numbers, lowercase letters, "
4316
  "and underscores."
4317
  msgstr ""
4318
 
4319
- #: admin/db-backup-security/db-backup-security.php:1449
4320
  msgid "A wp-config.php file was NOT found in your website root folder."
4321
  msgstr ""
4322
 
4323
- #: admin/db-backup-security/db-backup-security.php:1449
4324
  msgid ""
4325
  "Your DB Table Prefix was not changed. If you have moved your wp-config.php "
4326
  "file to a another Server folder then you can use this tool to change your DB "
@@ -4328,13 +4324,13 @@ msgid ""
4328
  "file back to the default location: your WordPress website root folder."
4329
  msgstr ""
4330
 
4331
- #: admin/db-backup-security/db-backup-security.php:1470
4332
  msgid ""
4333
  "Error: The wp-config.php file is not writable. Unable to write to the wp-"
4334
  "config.php file."
4335
  msgstr ""
4336
 
4337
- #: admin/db-backup-security/db-backup-security.php:1470
4338
  msgid ""
4339
  "Your DB Table Prefix was not changed. You will need to make the wp-config."
4340
  "php file writable first by changing either the file permissions or Ownership "
@@ -4342,24 +4338,24 @@ msgid ""
4342
  "DB Table Prefix Changer tool to change your DB Table Prefix."
4343
  msgstr ""
4344
 
4345
- #: admin/db-backup-security/db-backup-security.php:1515
4346
  msgid ""
4347
  "DB Table Prefix Name change completed. Click the Load|Refresh Table button "
4348
  "to load/refresh the DB Table Names & Character Length Table if you would "
4349
  "like to check the new DB Table Prefix Name Changes."
4350
  msgstr ""
4351
 
4352
- #: admin/db-backup-security/db-backup-security.php:1522
4353
  msgid ""
4354
  "Click the Update Site User Roles button to complete the DB Table Prefix Name "
4355
  "change."
4356
  msgstr ""
4357
 
4358
- #: admin/db-backup-security/db-backup-security.php:1540
4359
  msgid "Randomly Generated DB Table Prefix"
4360
  msgstr ""
4361
 
4362
- #: admin/db-backup-security/db-backup-security.php:1577
4363
  msgid ""
4364
  "DB Table Prefix Name change completed. Click the Load|Refresh Table button "
4365
  "to load/refresh the DB Table Names & Character Length Table if you would "
@@ -4368,44 +4364,44 @@ msgid ""
4368
  "new DB Table names."
4369
  msgstr ""
4370
 
4371
- #: admin/db-backup-security/db-backup-security.php:1589
4372
  msgid ""
4373
  "This button must be clicked AFTER clicking the Change DB Table Prefix button "
4374
  "above."
4375
  msgstr ""
4376
 
4377
- #: admin/db-backup-security/db-backup-security.php:1616
4378
  msgid "Length"
4379
  msgstr ""
4380
 
4381
- #: admin/db-backup-security/db-backup-security.php:1640
4382
  msgid "DB Table Name|Column"
4383
  msgstr ""
4384
 
4385
- #: admin/db-backup-security/db-backup-security.php:1641
4386
  msgid "Other Prefix Changes"
4387
  msgstr ""
4388
 
4389
- #: admin/db-backup-security/db-backup-security.php:1698
4390
  msgid "DB Table Names & Character Length Table"
4391
  msgstr ""
4392
 
4393
- #: admin/db-backup-security/db-backup-security.php:1699
4394
  msgid ""
4395
  "Displays your Current DB Table Names & Length Including The DB Table Prefix"
4396
  msgstr ""
4397
 
4398
- #: admin/db-backup-security/db-backup-security.php:1744
4399
  #: admin/mscan/mscan.php:3531 admin/theme-skin/theme-skin.php:237
4400
  msgid "BPS Pro Features & Version Release Dates"
4401
  msgstr ""
4402
 
4403
- #: admin/db-backup-security/db-backup-security.php:1745
4404
  #: admin/mscan/mscan.php:3532 admin/theme-skin/theme-skin.php:238
4405
  msgid "Video Tutorials"
4406
  msgstr ""
4407
 
4408
- #: admin/db-backup-security/db-backup-security.php:1746
4409
  msgid "DB Backup & Security Guide & Troubleshooting"
4410
  msgstr ""
4411
 
@@ -4854,7 +4850,7 @@ msgstr ""
4854
  msgid "Send Email Alerts for Active Theme Only"
4855
  msgstr ""
4856
 
4857
- #: admin/htaccess/bps-mu-tools.php:490
4858
  msgid "WordPress Automatic Update Help Forum Topic"
4859
  msgstr ""
4860
 
@@ -4891,6 +4887,8 @@ msgid "System Info"
4891
  msgstr ""
4892
 
4893
  #: admin/includes/admin.php:418 admin/includes/admin.php:440
 
 
4894
  msgid "UI|UX Options"
4895
  msgstr ""
4896
 
@@ -5735,8 +5733,8 @@ msgstr ""
5735
 
5736
  #: admin/login/lsm-help-text.php:10
5737
  msgid ""
5738
- "Login Security Email Alert and Log file option settings are on the Email|Log "
5739
- "Settings page."
5740
  msgstr ""
5741
 
5742
  #: admin/login/lsm-help-text.php:10
@@ -5889,7 +5887,7 @@ msgid ""
5889
  "be displayed. "
5890
  msgstr ""
5891
 
5892
- #: admin/login/lsm-help-text.php:10 admin/maintenance/maintenance.php:581
5893
  #: includes/hud-dismiss-functions.php:356
5894
  #: includes/hud-dismiss-functions.php:400
5895
  msgid "CAUTION: "
@@ -6603,7 +6601,7 @@ msgid ""
6603
  "Forms/pages or use the existing default FSP message."
6604
  msgstr ""
6605
 
6606
- #: admin/maintenance/maintenance.php:213 admin/maintenance/maintenance.php:2152
6607
  msgid "Maintenance Mode Guide"
6608
  msgstr ""
6609
 
@@ -6623,7 +6621,7 @@ msgid ""
6623
  "the top of this Question Mark help window."
6624
  msgstr ""
6625
 
6626
- #: admin/maintenance/maintenance.php:215 admin/maintenance/maintenance.php:545
6627
  msgid ""
6628
  "Maintenance Mode Text, CSS Style Code, Images, Videos Displayed To Website "
6629
  "Visitors:"
@@ -6654,7 +6652,7 @@ msgid ""
6654
  "off Maintenance Mode when the Countdown Timer reaches 0/has completed."
6655
  msgstr ""
6656
 
6657
- #: admin/maintenance/maintenance.php:215 admin/maintenance/maintenance.php:560
6658
  msgid "Countdown Timer Text Color:"
6659
  msgstr ""
6660
 
@@ -6662,7 +6660,7 @@ msgstr ""
6662
  msgid "Select the text color for the Countdown Timer."
6663
  msgstr ""
6664
 
6665
- #: admin/maintenance/maintenance.php:215 admin/maintenance/maintenance.php:568
6666
  msgid "Maintenance Mode Time (in Minutes):"
6667
  msgstr ""
6668
 
@@ -6716,7 +6714,7 @@ msgid ""
6716
  "your WordPress Dashboard."
6717
  msgstr ""
6718
 
6719
- #: admin/maintenance/maintenance.php:215 admin/maintenance/maintenance.php:592
6720
  msgid "Maintenance Mode IP Address Whitelist Text Box:"
6721
  msgstr ""
6722
 
@@ -6738,7 +6736,7 @@ msgid ""
6738
  "octets or your current IP address to whitelist your IP address."
6739
  msgstr ""
6740
 
6741
- #: admin/maintenance/maintenance.php:215 admin/maintenance/maintenance.php:599
6742
  msgid "Background Images:"
6743
  msgstr ""
6744
 
@@ -6749,7 +6747,7 @@ msgid ""
6749
  "your design/color scheme preference."
6750
  msgstr ""
6751
 
6752
- #: admin/maintenance/maintenance.php:215 admin/maintenance/maintenance.php:624
6753
  msgid "Center Images:"
6754
  msgstr ""
6755
 
@@ -6760,7 +6758,7 @@ msgid ""
6760
  "your design/color scheme preference."
6761
  msgstr ""
6762
 
6763
- #: admin/maintenance/maintenance.php:215 admin/maintenance/maintenance.php:644
6764
  msgid "Background Colors (If not using a Background Image):"
6765
  msgstr ""
6766
 
@@ -6778,7 +6776,7 @@ msgstr ""
6778
  msgid "Check this checkbox to display the website visitor's IP addresses."
6779
  msgstr ""
6780
 
6781
- #: admin/maintenance/maintenance.php:215 admin/maintenance/maintenance.php:654
6782
  msgid "Display Admin|Login Link"
6783
  msgstr ""
6784
 
@@ -6960,8 +6958,8 @@ msgid ""
6960
  "Error: You did not enter anything in the Maintenance Mode Time Text Box."
6961
  msgstr ""
6962
 
6963
- #: admin/maintenance/maintenance.php:272 admin/maintenance/maintenance.php:803
6964
- #: admin/maintenance/maintenance.php:1011
6965
  msgid ""
6966
  "Error: You did not enter an IP Address in the Maintenance Mode IP Address "
6967
  "Whitelist Text Box."
@@ -6999,74 +6997,74 @@ msgid ""
6999
  "security/admin/htaccess/ master folder. If this is not the problem "
7000
  msgstr ""
7001
 
7002
- #: admin/maintenance/maintenance.php:497 admin/maintenance/maintenance.php:504
7003
- #: admin/maintenance/maintenance.php:511
7004
  msgid "Your Current IP Address: "
7005
  msgstr ""
7006
 
7007
- #: admin/maintenance/maintenance.php:497 admin/maintenance/maintenance.php:504
7008
- #: admin/maintenance/maintenance.php:511
7009
  msgid "Recommended IP Address: "
7010
  msgstr ""
7011
 
7012
- #: admin/maintenance/maintenance.php:542
7013
  msgid "MMode Editor"
7014
  msgstr ""
7015
 
7016
- #: admin/maintenance/maintenance.php:546
7017
  msgid ""
7018
  "Click the Maintenance Mode Guide link in the Question Mark help button above "
7019
  "for CSS Code, Image & Video Embed examples."
7020
  msgstr ""
7021
 
7022
- #: admin/maintenance/maintenance.php:555
7023
  msgid "MMode Option Settings"
7024
  msgstr ""
7025
 
7026
- #: admin/maintenance/maintenance.php:558
7027
  msgid "Enable Countdown Timer"
7028
  msgstr ""
7029
 
7030
- #: admin/maintenance/maintenance.php:562
7031
  msgid "LCD|Lime Green"
7032
  msgstr ""
7033
 
7034
- #: admin/maintenance/maintenance.php:563 admin/maintenance/maintenance.php:647
7035
  msgid "White"
7036
  msgstr ""
7037
 
7038
- #: admin/maintenance/maintenance.php:564
7039
  msgid "Silver"
7040
  msgstr ""
7041
 
7042
- #: admin/maintenance/maintenance.php:565 admin/maintenance/maintenance.php:649
7043
  msgid "Gray"
7044
  msgstr ""
7045
 
7046
- #: admin/maintenance/maintenance.php:569 admin/maintenance/maintenance.php:573
7047
  msgid "Example: 10 = 10 minutes, 180 = 3 hours, 1440 = 24 hours."
7048
  msgstr ""
7049
 
7050
- #: admin/maintenance/maintenance.php:572
7051
  msgid "Header Retry-After (Enter the same time as above):"
7052
  msgstr ""
7053
 
7054
- #: admin/maintenance/maintenance.php:576
7055
  msgid "Enable FrontEnd Maintenance Mode"
7056
  msgstr ""
7057
 
7058
- #: admin/maintenance/maintenance.php:581
7059
  msgid ""
7060
  "You MUST enter Your Current IP Address or the Recommended IP Address if you "
7061
  "Enable BackEnd Maintenance Mode or you will be locked out of your WordPress "
7062
  "Dashboard."
7063
  msgstr ""
7064
 
7065
- #: admin/maintenance/maintenance.php:583
7066
  msgid "Enable BackEnd Maintenance Mode "
7067
  msgstr ""
7068
 
7069
- #: admin/maintenance/maintenance.php:587
7070
  msgid ""
7071
  "Enter The IP address or addresses that can view your website normally (not "
7072
  "in Maintenance Mode).<br><br>Enter multiple IP addresses separated by a "
@@ -7075,217 +7073,217 @@ msgid ""
7075
  "ffff:6463:584d, 0:0:0:0:0:ffff:c842:372c"
7076
  msgstr ""
7077
 
7078
- #: admin/maintenance/maintenance.php:601
7079
  msgid "No Background Image"
7080
  msgstr ""
7081
 
7082
- #: admin/maintenance/maintenance.php:602
7083
  msgid "Black Honeycomb Large"
7084
  msgstr ""
7085
 
7086
- #: admin/maintenance/maintenance.php:603
7087
  msgid "Black Honeycomb Large Grey Line"
7088
  msgstr ""
7089
 
7090
- #: admin/maintenance/maintenance.php:604
7091
  msgid "Black Mesh Small"
7092
  msgstr ""
7093
 
7094
- #: admin/maintenance/maintenance.php:605
7095
  msgid "Black Mesh Small Grey Line"
7096
  msgstr ""
7097
 
7098
- #: admin/maintenance/maintenance.php:606
7099
  msgid "Blue Honeycomb Large"
7100
  msgstr ""
7101
 
7102
- #: admin/maintenance/maintenance.php:607
7103
  msgid "Blue Mesh Small"
7104
  msgstr ""
7105
 
7106
- #: admin/maintenance/maintenance.php:608
7107
  msgid "Brown Honeycomb Large"
7108
  msgstr ""
7109
 
7110
- #: admin/maintenance/maintenance.php:609
7111
  msgid "Brown Mesh Small"
7112
  msgstr ""
7113
 
7114
- #: admin/maintenance/maintenance.php:610
7115
  msgid "Green Honeycomb Large"
7116
  msgstr ""
7117
 
7118
- #: admin/maintenance/maintenance.php:611
7119
  msgid "Green Mesh Small"
7120
  msgstr ""
7121
 
7122
- #: admin/maintenance/maintenance.php:612
7123
  msgid "Gray Honeycomb Large"
7124
  msgstr ""
7125
 
7126
- #: admin/maintenance/maintenance.php:613
7127
  msgid "Gray Mesh Small"
7128
  msgstr ""
7129
 
7130
- #: admin/maintenance/maintenance.php:614
7131
  msgid "Orange Honeycomb Large"
7132
  msgstr ""
7133
 
7134
- #: admin/maintenance/maintenance.php:615
7135
  msgid "Orange Mesh Small"
7136
  msgstr ""
7137
 
7138
- #: admin/maintenance/maintenance.php:616
7139
  msgid "Purple Honeycomb Large"
7140
  msgstr ""
7141
 
7142
- #: admin/maintenance/maintenance.php:617
7143
  msgid "Purple Mesh Small"
7144
  msgstr ""
7145
 
7146
- #: admin/maintenance/maintenance.php:618
7147
  msgid "Red|Burgundy Honeycomb Large"
7148
  msgstr ""
7149
 
7150
- #: admin/maintenance/maintenance.php:619
7151
  msgid "Red|Burgundy Mesh Small"
7152
  msgstr ""
7153
 
7154
- #: admin/maintenance/maintenance.php:620
7155
  msgid "Yellow Honeycomb Large"
7156
  msgstr ""
7157
 
7158
- #: admin/maintenance/maintenance.php:621
7159
  msgid "Yellow Mesh Small"
7160
  msgstr ""
7161
 
7162
- #: admin/maintenance/maintenance.php:626
7163
  msgid "No Center Image"
7164
  msgstr ""
7165
 
7166
- #: admin/maintenance/maintenance.php:627
7167
  msgid "Basic Black"
7168
  msgstr ""
7169
 
7170
- #: admin/maintenance/maintenance.php:628
7171
  msgid "Black Veins"
7172
  msgstr ""
7173
 
7174
- #: admin/maintenance/maintenance.php:629
7175
  msgid "Blue Glass"
7176
  msgstr ""
7177
 
7178
- #: admin/maintenance/maintenance.php:630
7179
  msgid "Brushed Metal Stamped"
7180
  msgstr ""
7181
 
7182
- #: admin/maintenance/maintenance.php:631
7183
  msgid "Chrome"
7184
  msgstr ""
7185
 
7186
- #: admin/maintenance/maintenance.php:632
7187
  msgid "Chrome Slick"
7188
  msgstr ""
7189
 
7190
- #: admin/maintenance/maintenance.php:633
7191
  msgid "Fire"
7192
  msgstr ""
7193
 
7194
- #: admin/maintenance/maintenance.php:634
7195
  msgid "Gun Metal"
7196
  msgstr ""
7197
 
7198
- #: admin/maintenance/maintenance.php:635
7199
  msgid "Mercury"
7200
  msgstr ""
7201
 
7202
- #: admin/maintenance/maintenance.php:636
7203
  msgid "Smoke"
7204
  msgstr ""
7205
 
7206
- #: admin/maintenance/maintenance.php:637
7207
  msgid "Striped Cone"
7208
  msgstr ""
7209
 
7210
- #: admin/maintenance/maintenance.php:638
7211
  msgid "Swamp Bevel"
7212
  msgstr ""
7213
 
7214
- #: admin/maintenance/maintenance.php:639
7215
  msgid "Toy"
7216
  msgstr ""
7217
 
7218
- #: admin/maintenance/maintenance.php:640
7219
  msgid "Water Reflection"
7220
  msgstr ""
7221
 
7222
- #: admin/maintenance/maintenance.php:641
7223
  msgid "Wood Grain"
7224
  msgstr ""
7225
 
7226
- #: admin/maintenance/maintenance.php:646
7227
  msgid "No Background Color"
7228
  msgstr ""
7229
 
7230
- #: admin/maintenance/maintenance.php:648
7231
  msgid "Black"
7232
  msgstr ""
7233
 
7234
- #: admin/maintenance/maintenance.php:652
7235
  msgid "Display Visitor IP Address"
7236
  msgstr ""
7237
 
7238
- #: admin/maintenance/maintenance.php:656
7239
  msgid "Display Dashboard Reminder Message"
7240
  msgstr ""
7241
 
7242
- #: admin/maintenance/maintenance.php:658
7243
  msgid "Enable Visitor Logging"
7244
  msgstr ""
7245
 
7246
- #: admin/maintenance/maintenance.php:660
7247
  msgid "Send Email when Countdown Timer has completed"
7248
  msgstr ""
7249
 
7250
- #: admin/maintenance/maintenance.php:662
7251
  msgid "Send Countdown Timer Email To:"
7252
  msgstr ""
7253
 
7254
- #: admin/maintenance/maintenance.php:664
7255
  msgid "Send Countdown Timer Email From:"
7256
  msgstr ""
7257
 
7258
- #: admin/maintenance/maintenance.php:666
7259
  msgid "Send Countdown Timer Email Cc:"
7260
  msgstr ""
7261
 
7262
- #: admin/maintenance/maintenance.php:668
7263
  msgid "Send Countdown Timer Email Bcc:"
7264
  msgstr ""
7265
 
7266
- #: admin/maintenance/maintenance.php:673
7267
  msgid "MMode Network|Multisite Options"
7268
  msgstr ""
7269
 
7270
- #: admin/maintenance/maintenance.php:676
7271
  msgid "Network|Multisite Primary Site Options ONLY"
7272
  msgstr ""
7273
 
7274
- #: admin/maintenance/maintenance.php:680
7275
  msgid ""
7276
  "Click the Maintenance Mode Question Mark help button for the steps to use "
7277
  "these special options:"
7278
  msgstr ""
7279
 
7280
- #: admin/maintenance/maintenance.php:681
7281
  msgid "Put The Primary Site And All Subsites In Maintenance Mode"
7282
  msgstr ""
7283
 
7284
- #: admin/maintenance/maintenance.php:683
7285
  msgid "Put All Subsites In Maintenance Mode, But Not The Primary Site"
7286
  msgstr ""
7287
 
7288
- #: admin/maintenance/maintenance.php:691
7289
  msgid ""
7290
  "Clicking OK Saves your Options/Settings to your Database and also creates "
7291
  "your Maintenance Mode page. Click the Preview button to preview your "
@@ -7293,91 +7291,91 @@ msgid ""
7293
  "Turn On button to enable Maintenance Mode on your website."
7294
  msgstr ""
7295
 
7296
- #: admin/maintenance/maintenance.php:814 admin/maintenance/maintenance.php:1022
7297
  msgid ""
7298
  "IP Address Format Error: You have entered multiple IP Addresses using an "
7299
  "incorrect Format."
7300
  msgstr ""
7301
 
7302
- #: admin/maintenance/maintenance.php:814 admin/maintenance/maintenance.php:1022
7303
  msgid ""
7304
  "The correct IP Address Format is: IP Address comma single space. Example: "
7305
  "100.99.88.77, 200.66.55.44, 44.33.22.1 or 100.99.88., 200.66.55., 44.33.22. "
7306
  "if you are using the recommended 3 octet IP addresses."
7307
  msgstr ""
7308
 
7309
- #: admin/maintenance/maintenance.php:814 admin/maintenance/maintenance.php:1022
7310
  msgid ""
7311
  "Correct the IP Address Format and click the Save Options button again. If "
7312
  "you have an IPv6 IP address use the same general format as an IPv4 IP "
7313
  "address - comma single space."
7314
  msgstr ""
7315
 
7316
- #: admin/maintenance/maintenance.php:865 admin/maintenance/maintenance.php:1073
7317
- #: admin/maintenance/maintenance.php:1175
7318
  msgid "FrontEnd Maintenance Mode has been Turned On."
7319
  msgstr ""
7320
 
7321
- #: admin/maintenance/maintenance.php:883 admin/maintenance/maintenance.php:1199
7322
- #: admin/maintenance/maintenance.php:1708
7323
- #: admin/maintenance/maintenance.php:1838
7324
- #: admin/maintenance/maintenance.php:2029
7325
  msgid "htaccess Files Disabled: BackEnd Maintenance Mode is disabled."
7326
  msgstr ""
7327
 
7328
- #: admin/maintenance/maintenance.php:958 admin/maintenance/maintenance.php:1276
7329
  msgid "BackEnd Maintenance Mode has been Turned On."
7330
  msgstr ""
7331
 
7332
- #: admin/maintenance/maintenance.php:1292
7333
- #: admin/maintenance/maintenance.php:2081
7334
  msgid ""
7335
  "Error: You have not saved your option settings yet. Click the Save Options "
7336
  "button."
7337
  msgstr ""
7338
 
7339
- #: admin/maintenance/maintenance.php:1369
7340
  msgid ""
7341
  "Error: Unable to get/find the site root index.php file for this GWIOD - "
7342
  "Giving WordPress Its Own Directory - website."
7343
  msgstr ""
7344
 
7345
- #: admin/maintenance/maintenance.php:1369
7346
  msgid "GWIOD Site Root index.php File Path Checked: "
7347
  msgstr ""
7348
 
7349
- #: admin/maintenance/maintenance.php:1369
7350
  msgid ""
7351
  "BPS Maintenance Mode will not work correctly with your WordPress GWIOD "
7352
  "setup. Try another WordPress Maintenance Mode plugin."
7353
  msgstr ""
7354
 
7355
- #: admin/maintenance/maintenance.php:1435
7356
  msgid ""
7357
  "Error: Unable to get/find the site root index.php file for this Network "
7358
  "GWIOD - Giving WordPress Its Own Directory - website."
7359
  msgstr ""
7360
 
7361
- #: admin/maintenance/maintenance.php:1435
7362
  msgid "Network GWIOD Site Root index.php File Path Checked: "
7363
  msgstr ""
7364
 
7365
- #: admin/maintenance/maintenance.php:1435
7366
  msgid ""
7367
  "Please copy this error message and send it in an email to info@ait-pro.com "
7368
  "for assistance."
7369
  msgstr ""
7370
 
7371
- #: admin/maintenance/maintenance.php:1520
7372
- #: admin/maintenance/maintenance.php:1645
7373
- #: admin/maintenance/maintenance.php:1801
7374
- #: admin/maintenance/maintenance.php:1981
7375
  msgid "FrontEnd Maintenance Mode has been Turned Off."
7376
  msgstr ""
7377
 
7378
- #: admin/maintenance/maintenance.php:1748
7379
- #: admin/maintenance/maintenance.php:1874
7380
- #: admin/maintenance/maintenance.php:2065
7381
  msgid "BackEnd Maintenance Mode has been Turned Off."
7382
  msgstr ""
7383
 
@@ -8333,8 +8331,8 @@ msgid "Delete<br>File"
8333
  msgstr ""
8334
 
8335
  #: admin/mscan/mscan.php:1565 admin/mscan/mscan.php:2580
8336
- #: admin/mscan/mscan.php:3406 admin/system-info/system-info.php:956
8337
- #: admin/system-info/system-info.php:996
8338
  msgid "File Path"
8339
  msgstr ""
8340
 
@@ -8938,8 +8936,8 @@ msgstr ""
8938
 
8939
  #: admin/security-log/security-log.php:234
8940
  msgid ""
8941
- "Security Log Email Alert and Log file option settings are on the Email|Log "
8942
- "Settings page."
8943
  msgstr ""
8944
 
8945
  #: admin/security-log/security-log.php:234
@@ -9767,560 +9765,598 @@ msgstr ""
9767
  msgid "A Zend Extension is Not Loaded"
9768
  msgstr ""
9769
 
9770
- #: admin/system-info/system-info.php:440 admin/system-info/system-info.php:451
 
9771
  msgid "OPcache"
9772
  msgstr ""
9773
 
9774
  #: admin/system-info/system-info.php:444
 
 
 
 
 
9775
  msgid "is Enabled"
9776
  msgstr ""
9777
 
9778
- #: admin/system-info/system-info.php:447 admin/system-info/system-info.php:452
9779
  msgid "OPcache is Not Enabled"
9780
  msgstr ""
9781
 
9782
- #: admin/system-info/system-info.php:456
 
 
 
 
9783
  msgid "ionCube Loader"
9784
  msgstr ""
9785
 
9786
- #: admin/system-info/system-info.php:458
9787
  msgid "ionCube Loader Extension is Loaded "
9788
  msgstr ""
9789
 
9790
- #: admin/system-info/system-info.php:458 admin/system-info/system-info.php:653
9791
- #: admin/system-info/system-info.php:665
9792
  msgid "Version: "
9793
  msgstr ""
9794
 
9795
- #: admin/system-info/system-info.php:460
9796
  msgid "ionCube Loader Extension is Not Loaded"
9797
  msgstr ""
9798
 
9799
- #: admin/system-info/system-info.php:463
9800
  msgid "Suhosin"
9801
  msgstr ""
9802
 
9803
- #: admin/system-info/system-info.php:467
9804
  msgid "The Suhosin-Patch is installed"
9805
  msgstr ""
9806
 
9807
- #: admin/system-info/system-info.php:470
9808
  msgid "Suhosin-Extension is Loaded"
9809
  msgstr ""
9810
 
9811
- #: admin/system-info/system-info.php:472
9812
  msgid "Suhosin is Not Installed|Loaded"
9813
  msgstr ""
9814
 
9815
- #: admin/system-info/system-info.php:475
9816
  msgid "APC"
9817
  msgstr ""
9818
 
9819
- #: admin/system-info/system-info.php:477
9820
  msgid "APC Extension is Loaded and Enabled"
9821
  msgstr ""
9822
 
9823
- #: admin/system-info/system-info.php:480
9824
  msgid "APC Extension is Loaded but Not Enabled"
9825
  msgstr ""
9826
 
9827
- #: admin/system-info/system-info.php:482
9828
  msgid "APC Extension is Not Loaded"
9829
  msgstr ""
9830
 
9831
- #: admin/system-info/system-info.php:485
9832
  msgid "eAccelerator"
9833
  msgstr ""
9834
 
9835
- #: admin/system-info/system-info.php:487
9836
  msgid "eAccelerator Extension is Loaded and Enabled"
9837
  msgstr ""
9838
 
9839
- #: admin/system-info/system-info.php:490
9840
  msgid "eAccelerator Extension is Loaded but Not Enabled"
9841
  msgstr ""
9842
 
9843
- #: admin/system-info/system-info.php:492
9844
  msgid "eAccelerator Extension is Not Loaded"
9845
  msgstr ""
9846
 
9847
- #: admin/system-info/system-info.php:495
9848
  msgid "XCache"
9849
  msgstr ""
9850
 
9851
- #: admin/system-info/system-info.php:497
9852
  msgid "XCache Extension is Loaded and Enabled"
9853
  msgstr ""
9854
 
9855
- #: admin/system-info/system-info.php:500
9856
  msgid "XCache Extension is Loaded but Not Enabled"
9857
  msgstr ""
9858
 
9859
- #: admin/system-info/system-info.php:502
9860
  msgid "XCache Extension is Not Loaded"
9861
  msgstr ""
9862
 
9863
- #: admin/system-info/system-info.php:505
9864
  msgid "Varnish"
9865
  msgstr ""
9866
 
9867
- #: admin/system-info/system-info.php:507
9868
  msgid "Varnish Extension is Loaded"
9869
  msgstr ""
9870
 
9871
- #: admin/system-info/system-info.php:509
9872
  msgid "Varnish Extension is Not Loaded"
9873
  msgstr ""
9874
 
9875
- #: admin/system-info/system-info.php:512
9876
  msgid "Memcache"
9877
  msgstr ""
9878
 
9879
- #: admin/system-info/system-info.php:514
9880
  msgid "Memcache Extension is Loaded"
9881
  msgstr ""
9882
 
9883
- #: admin/system-info/system-info.php:516
9884
  msgid "Memcache Extension is Not Loaded"
9885
  msgstr ""
9886
 
9887
- #: admin/system-info/system-info.php:519
9888
  msgid "Memcached"
9889
  msgstr ""
9890
 
9891
- #: admin/system-info/system-info.php:521
9892
  msgid "Memcached Extension is Loaded"
9893
  msgstr ""
9894
 
9895
- #: admin/system-info/system-info.php:523
9896
  msgid "Memcached Extension is Not Loaded"
9897
  msgstr ""
9898
 
9899
- #: admin/system-info/system-info.php:536
9900
  msgid "DB Info is not displayed on Network/Multisite subsites"
9901
  msgstr ""
9902
 
9903
- #: admin/system-info/system-info.php:557 includes/general-functions.php:283
9904
  msgid "Not Set"
9905
  msgstr ""
9906
 
9907
- #: admin/system-info/system-info.php:563
9908
- msgid "Database Server Version: "
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9909
  msgstr ""
9910
 
9911
- #: admin/system-info/system-info.php:563
9912
- msgid "Database Client Version: "
9913
  msgstr ""
9914
 
9915
- #: admin/system-info/system-info.php:563
9916
- msgid "Database Hostname: "
9917
  msgstr ""
9918
 
9919
- #: admin/system-info/system-info.php:563
9920
- msgid "Database Name: "
9921
  msgstr ""
9922
 
9923
- #: admin/system-info/system-info.php:563
9924
  msgid "DB Table Prefix: "
9925
  msgstr ""
9926
 
9927
- #: admin/system-info/system-info.php:563
9928
  msgid "DB Charset: "
9929
  msgstr ""
9930
 
9931
- #: admin/system-info/system-info.php:563
9932
  msgid "DB Collation: "
9933
  msgstr ""
9934
 
9935
- #: admin/system-info/system-info.php:563
9936
  msgid "SQL Mode: "
9937
  msgstr ""
9938
 
9939
- #: admin/system-info/system-info.php:569 admin/system-info/system-info.php:572
9940
  msgid "MySQL Extension: "
9941
  msgstr ""
9942
 
9943
- #: admin/system-info/system-info.php:569 admin/system-info/system-info.php:577
9944
  msgid "Installed|Enabled"
9945
  msgstr ""
9946
 
9947
- #: admin/system-info/system-info.php:572 admin/system-info/system-info.php:580
9948
- msgid "NOT Installed|Enabled"
9949
  msgstr ""
9950
 
9951
- #: admin/system-info/system-info.php:577 admin/system-info/system-info.php:580
9952
  msgid "MySQLi Extension: "
9953
  msgstr ""
9954
 
9955
- #: admin/system-info/system-info.php:587
9956
  msgid "WordPress Installation Folder"
9957
  msgstr ""
9958
 
9959
- #: admin/system-info/system-info.php:590
9960
  msgid "WordPress Installation Type"
9961
  msgstr ""
9962
 
9963
- #: admin/system-info/system-info.php:592
9964
  msgid "Standard|GWIOD Site Type"
9965
  msgstr ""
9966
 
9967
- #: admin/system-info/system-info.php:594
9968
  msgid "Network|Multisite"
9969
  msgstr ""
9970
 
9971
- #: admin/system-info/system-info.php:596
9972
  msgid "BuddyPress"
9973
  msgstr ""
9974
 
9975
- #: admin/system-info/system-info.php:598
9976
  msgid "bbPress"
9977
  msgstr ""
9978
 
9979
- #: admin/system-info/system-info.php:600
9980
  msgid "Plugins Folder"
9981
  msgstr ""
9982
 
9983
- #: admin/system-info/system-info.php:604
9984
  msgid "Uploads Folder"
9985
  msgstr ""
9986
 
9987
- #: admin/system-info/system-info.php:610
9988
  msgid "UPLOADS Constant"
9989
  msgstr ""
9990
 
9991
- #: admin/system-info/system-info.php:614
9992
  msgid "WP Permalink Structure"
9993
  msgstr ""
9994
 
9995
- #: admin/system-info/system-info.php:619 admin/system-info/system-info.php:621
9996
  msgid "DISABLE_WP_CRON constant"
9997
  msgstr ""
9998
 
9999
- #: admin/system-info/system-info.php:619
10000
  msgid "Standard WP Crons are disabled on your website."
10001
  msgstr ""
10002
 
10003
- #: admin/system-info/system-info.php:621
10004
  msgid "Standard WP Crons are not disabled on your website."
10005
  msgstr ""
10006
 
10007
- #: admin/system-info/system-info.php:624
10008
  msgid "Total Plugins Installed"
10009
  msgstr ""
10010
 
10011
- #: admin/system-info/system-info.php:626
10012
  msgid "Total Must-Use Plugins Installed"
10013
  msgstr ""
10014
 
10015
- #: admin/system-info/system-info.php:628
10016
  msgid "Total Plugins Activated"
10017
  msgstr ""
10018
 
10019
- #: admin/system-info/system-info.php:631
10020
  msgid "Total Plugins Network Activated"
10021
  msgstr ""
10022
 
10023
- #: admin/system-info/system-info.php:637 admin/system-info/system-info.php:639
10024
  msgid "Get Plugins|Themes List"
10025
  msgstr ""
10026
 
10027
- #: admin/system-info/system-info.php:640
10028
  msgid "This window is draggable (top) and resizable (bottom right corner)"
10029
  msgstr ""
10030
 
10031
- #: admin/system-info/system-info.php:645
10032
  msgid "Browser Compression Supported"
10033
  msgstr ""
10034
 
10035
- #: admin/system-info/system-info.php:648
10036
  msgid "GD Library"
10037
  msgstr ""
10038
 
10039
- #: admin/system-info/system-info.php:653
10040
  msgid "GD Extension is Loaded - "
10041
  msgstr ""
10042
 
10043
- #: admin/system-info/system-info.php:656
10044
  msgid "GD Extension is Not Loaded"
10045
  msgstr ""
10046
 
10047
- #: admin/system-info/system-info.php:659
10048
  msgid "ImageMagick"
10049
  msgstr ""
10050
 
10051
- #: admin/system-info/system-info.php:665
10052
  msgid "ImageMagick Extension is Loaded - "
10053
  msgstr ""
10054
 
10055
- #: admin/system-info/system-info.php:668
10056
  msgid "ImageMagick Extension is Not Loaded"
10057
  msgstr ""
10058
 
10059
- #: admin/system-info/system-info.php:683
10060
  msgid "PHP Server|PHP.ini Info"
10061
  msgstr ""
10062
 
10063
- #: admin/system-info/system-info.php:685
10064
  msgid ""
10065
  "File|Folder Permissions (CGI or DSO)|Script Owner User ID (UID)|File Owner "
10066
  "User ID"
10067
  msgstr ""
10068
 
10069
- #: admin/system-info/system-info.php:693
10070
  msgid "PHP Version"
10071
  msgstr ""
10072
 
10073
- #: admin/system-info/system-info.php:694
10074
  msgid "PHP Memory Usage"
10075
  msgstr ""
10076
 
10077
- #: admin/system-info/system-info.php:694
10078
  msgid " MB"
10079
  msgstr ""
10080
 
10081
- #: admin/system-info/system-info.php:695
10082
  msgid "WordPress Admin Memory Limit"
10083
  msgstr ""
10084
 
10085
- #: admin/system-info/system-info.php:698
10086
  msgid "WordPress Base Memory Limit"
10087
  msgstr ""
10088
 
10089
- #: admin/system-info/system-info.php:710 admin/system-info/system-info.php:716
10090
- #: admin/system-info/system-info.php:720 admin/system-info/system-info.php:724
10091
  msgid "PHP Actual Configuration Memory Limit: "
10092
  msgstr ""
10093
 
10094
- #: admin/system-info/system-info.php:710
10095
  msgid "The Memory Limit value is not available from your Server."
10096
  msgstr ""
10097
 
10098
- #: admin/system-info/system-info.php:721 admin/system-info/system-info.php:725
10099
  msgid ""
10100
  " Recommendation: Increase Memory Limit to at least 128M, 256M is even better."
10101
  msgstr ""
10102
 
10103
- #: admin/system-info/system-info.php:734 admin/system-info/system-info.php:736
10104
  msgid "PHP Configuration File (php.ini)"
10105
  msgstr ""
10106
 
10107
- #: admin/system-info/system-info.php:736
10108
  msgid "None/Not in use"
10109
  msgstr ""
10110
 
10111
- #: admin/system-info/system-info.php:749
10112
  msgid "WP Temp Dir: "
10113
  msgstr ""
10114
 
10115
- #: admin/system-info/system-info.php:752
10116
  msgid "The WP_TEMP_DIR constant is being used in wp-config.php file"
10117
  msgstr ""
10118
 
10119
- #: admin/system-info/system-info.php:758 admin/system-info/system-info.php:760
10120
  msgid "PHP Temp Dir: "
10121
  msgstr ""
10122
 
10123
- #: admin/system-info/system-info.php:760 admin/system-info/system-info.php:771
10124
- #: admin/system-info/system-info.php:779
10125
  msgid "Not set/defined or directory is not writable"
10126
  msgstr ""
10127
 
10128
- #: admin/system-info/system-info.php:769 admin/system-info/system-info.php:771
10129
  msgid "PHP Upload Temp Dir: "
10130
  msgstr ""
10131
 
10132
- #: admin/system-info/system-info.php:777 admin/system-info/system-info.php:779
10133
  msgid "Session Save Path: "
10134
  msgstr ""
10135
 
10136
- #: admin/system-info/system-info.php:784
10137
  msgid "Cycles: "
10138
  msgstr ""
10139
 
10140
- #: admin/system-info/system-info.php:788
10141
  msgid "Garbage Collector: "
10142
  msgstr ""
10143
 
10144
- #: admin/system-info/system-info.php:791
10145
  msgid "PHP Max Upload Size"
10146
  msgstr ""
10147
 
10148
- #: admin/system-info/system-info.php:794
10149
  msgid "PHP Max Post Size"
10150
  msgstr ""
10151
 
10152
- #: admin/system-info/system-info.php:797
10153
  msgid "PHP Safe Mode"
10154
  msgstr ""
10155
 
10156
- #: admin/system-info/system-info.php:806
10157
  msgid "PHP Allow URL fopen"
10158
  msgstr ""
10159
 
10160
- #: admin/system-info/system-info.php:814
10161
  msgid "PHP Allow URL Include"
10162
  msgstr ""
10163
 
10164
- #: admin/system-info/system-info.php:822
10165
  msgid "PHP Display Errors"
10166
  msgstr ""
10167
 
10168
- #: admin/system-info/system-info.php:830
10169
  msgid "PHP Display Startup Errors"
10170
  msgstr ""
10171
 
10172
- #: admin/system-info/system-info.php:838
10173
  msgid "PHP Expose PHP"
10174
  msgstr ""
10175
 
10176
- #: admin/system-info/system-info.php:846
10177
  msgid "PHP Register Globals"
10178
  msgstr ""
10179
 
10180
- #: admin/system-info/system-info.php:854
10181
  msgid "PHP MySQL Allow Persistent Connections"
10182
  msgstr ""
10183
 
10184
- #: admin/system-info/system-info.php:862
10185
  msgid "PHP Output Buffering"
10186
  msgstr ""
10187
 
10188
- #: admin/system-info/system-info.php:870
10189
  msgid "PHP Max Script Execution Time"
10190
  msgstr ""
10191
 
10192
- #: admin/system-info/system-info.php:873
10193
  msgid "PHP Magic Quotes GPC"
10194
  msgstr ""
10195
 
10196
- #: admin/system-info/system-info.php:881
10197
  msgid "PHP open_basedir"
10198
  msgstr ""
10199
 
10200
- #: admin/system-info/system-info.php:886
10201
  msgid "Off/Not in use"
10202
  msgstr ""
10203
 
10204
- #: admin/system-info/system-info.php:888
10205
  msgid "PHP XML Support"
10206
  msgstr ""
10207
 
10208
- #: admin/system-info/system-info.php:890 admin/system-info/system-info.php:898
10209
- #: admin/system-info/system-info.php:906
10210
  msgid "Yes"
10211
  msgstr ""
10212
 
10213
- #: admin/system-info/system-info.php:893 admin/system-info/system-info.php:901
10214
- #: admin/system-info/system-info.php:909
10215
  msgid "No"
10216
  msgstr ""
10217
 
10218
- #: admin/system-info/system-info.php:896
10219
  msgid "PHP IPTC Support"
10220
  msgstr ""
10221
 
10222
- #: admin/system-info/system-info.php:904
10223
  msgid "PHP Exif Support"
10224
  msgstr ""
10225
 
10226
- #: admin/system-info/system-info.php:917
10227
  msgid "PHP Disable Functions"
10228
  msgstr ""
10229
 
10230
- #: admin/system-info/system-info.php:921
10231
  msgid "No PHP functions are disabled."
10232
  msgstr ""
10233
 
10234
- #: admin/system-info/system-info.php:926
10235
  msgid "PHP Suhosin Function Blacklist"
10236
  msgstr ""
10237
 
10238
- #: admin/system-info/system-info.php:930
10239
  msgid "No PHP functions are blacklisted."
10240
  msgstr ""
10241
 
10242
- #: admin/system-info/system-info.php:953
10243
  msgid "CGI File and Folder Permissions|Recommendations"
10244
  msgstr ""
10245
 
10246
- #: admin/system-info/system-info.php:956 admin/system-info/system-info.php:996
 
10247
  msgid "Folder Path"
10248
  msgstr ""
10249
 
10250
- #: admin/system-info/system-info.php:957 admin/system-info/system-info.php:997
 
10251
  msgid "Recommended"
10252
  msgstr ""
10253
 
10254
- #: admin/system-info/system-info.php:957 admin/system-info/system-info.php:958
10255
- #: admin/system-info/system-info.php:997 admin/system-info/system-info.php:998
 
 
10256
  msgid "Permissions"
10257
  msgstr ""
10258
 
10259
- #: admin/system-info/system-info.php:958 admin/system-info/system-info.php:998
 
10260
  msgid "Current"
10261
  msgstr ""
10262
 
10263
- #: admin/system-info/system-info.php:959 admin/system-info/system-info.php:999
 
10264
  msgid "Script Owner"
10265
  msgstr ""
10266
 
10267
- #: admin/system-info/system-info.php:959 admin/system-info/system-info.php:999
 
10268
  msgid " User ID (UID)"
10269
  msgstr ""
10270
 
10271
- #: admin/system-info/system-info.php:960 admin/system-info/system-info.php:1000
 
10272
  msgid "File Owner"
10273
  msgstr ""
10274
 
10275
- #: admin/system-info/system-info.php:960 admin/system-info/system-info.php:1000
 
10276
  msgid " User ID"
10277
  msgstr ""
10278
 
10279
- #: admin/system-info/system-info.php:993
10280
  msgid "DSO File and Folder Permissions|Recommendations"
10281
  msgstr ""
10282
 
10283
- #: admin/system-info/system-info.php:1038
10284
  msgid "System Info Processing Completion Time: "
10285
  msgstr ""
10286
 
10287
- #: admin/system-info/system-info.php:1078
10288
  msgid ""
10289
  "Check your website Headers or another website's Headers by making a GET "
10290
  "Request"
10291
  msgstr ""
10292
 
10293
- #: admin/system-info/system-info.php:1095
10294
  msgid "GET Request Headers: "
10295
  msgstr ""
10296
 
10297
- #: admin/system-info/system-info.php:1110
10298
  msgid ""
10299
  "Error: The WordPress wp_remote_get function is not available or is blocked "
10300
  "on your website/server."
10301
  msgstr ""
10302
 
10303
- #: admin/system-info/system-info.php:1120
10304
  msgid "Enter a Website URL - Example: "
10305
  msgstr ""
10306
 
10307
- #: admin/system-info/system-info.php:1123
10308
  msgid ""
10309
  "This Headers check makes a GET Request using the WordPress wp_remote_get "
10310
  "function."
10311
  msgstr ""
10312
 
10313
- #: admin/system-info/system-info.php:1123
10314
  msgid ""
10315
  "You can use the Check Headers HEAD Request tool to check headers using HEAD "
10316
  "instead of GET."
10317
  msgstr ""
10318
 
10319
- #: admin/theme-skin/theme-skin.php:36 admin/theme-skin/theme-skin.php:65
10320
- #: admin/theme-skin/theme-skin.php:79 admin/theme-skin/theme-skin.php:82
10321
- msgid "UI|UX Settings"
10322
- msgstr ""
10323
-
10324
  #: admin/theme-skin/theme-skin.php:90
10325
  msgid "Inpage Status Display"
10326
  msgstr ""
@@ -11395,7 +11431,7 @@ msgstr ""
11395
  #: admin/wizard/wizard-functions.php:827 admin/wizard/wizard.php:648
11396
  #: admin/wizard/wizard.php:686 admin/wizard/wizard.php:744
11397
  #: admin/wizard/wizard.php:792 admin/wizard/wizard.php:844
11398
- #: admin/wizard/wizard.php:942 includes/general-functions.php:1091
11399
  msgid " DB Option created or updated Successfully!"
11400
  msgstr ""
11401
 
@@ -11747,8 +11783,8 @@ msgstr ""
11747
  msgid "Setup Wizard Completion Time: "
11748
  msgstr ""
11749
 
11750
- #: admin/wizard/wizard.php:1085 admin/wizard/wizard.php:1701
11751
- #: admin/wizard/wizard.php:1704
11752
  msgid "Setup Wizard Export|Import"
11753
  msgstr ""
11754
 
@@ -11860,7 +11896,7 @@ msgid ""
11860
  "Code for these caching plugins: WP Super Cache, W3 Total Cache, Comet Cache "
11861
  "Plugin (free & Pro), WP Fastest Cache Plugin (free & Premium), LiteSpeed "
11862
  "Cache and WP Rocket. If a problem occurs with AutoFix you can turn On the "
11863
- "AutoFix Debugger on the BPS UI|UX Settings page > BPS UI|UX|AutoFix Debug "
11864
  "option to check the plugin or theme name and the BPS Custom Code text box "
11865
  "where the problem is occurring. You can also turn Off AutoFix and AutoFix "
11866
  "will not try to detect or create Custom Code whitelist rules or setup or "
@@ -12020,6 +12056,24 @@ msgid ""
12020
  "all checked and Displayed Message/Error Message: default FSP message."
12021
  msgstr ""
12022
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12023
  #: admin/wizard/wizard.php:1221
12024
  msgid "AutoFix (AutoWhitelist|AutoSetup|AutoCleanup):"
12025
  msgstr ""
@@ -12087,18 +12141,18 @@ msgid "Zip File Download Fix On"
12087
  msgstr ""
12088
 
12089
  #: admin/wizard/wizard.php:1308
12090
- msgid "Display System Info Page"
12091
  msgstr ""
12092
 
12093
  #: admin/wizard/wizard.php:1309
12094
- msgid "Hide System Info Page"
12095
  msgstr ""
12096
 
12097
  #: admin/wizard/wizard.php:1326
12098
  msgid "Network|Multisite Sitewide JTC Anti-Spam|Anti-Hacker Settings"
12099
  msgstr ""
12100
 
12101
- #: admin/wizard/wizard.php:1367
12102
  msgid ""
12103
  "The Zip File Download Fix option is set to On. This option should only be "
12104
  "set to On if you are unable to download these Zip files: Custom Code Export "
@@ -12106,15 +12160,15 @@ msgid ""
12106
  "htaccess file backup Zip file."
12107
  msgstr ""
12108
 
12109
- #: admin/wizard/wizard.php:1380
12110
  msgid "The Zip File Download Fix option is set to Off."
12111
  msgstr ""
12112
 
12113
- #: admin/wizard/wizard.php:1404
12114
  msgid "Multisite Hide|Display System Info Page for Subsites option saved."
12115
  msgstr ""
12116
 
12117
- #: admin/wizard/wizard.php:1419
12118
  msgid ""
12119
  "Error: Your Network site exceeds the default WP criteria for a large network "
12120
  "site. Either you have more than 10,000 users or more than 10,000 sites. "
@@ -12122,11 +12176,12 @@ msgid ""
12122
  "org for assistance."
12123
  msgstr ""
12124
 
12125
- #: admin/wizard/wizard.php:1426
12126
  msgid " LSM DB Options created or updated Successfully!"
12127
  msgstr ""
12128
 
12129
- #: admin/wizard/wizard.php:1499 admin/wizard/wizard.php:1622
 
12130
  msgid ""
12131
  "Error: Your Network site exceeds the default WP criteria for a large network "
12132
  "site. Either you have more than 10,000 users or more than 10,000 sites. "
@@ -12134,23 +12189,27 @@ msgid ""
12134
  "line: Setup Wizard Options Large Network Site Help."
12135
  msgstr ""
12136
 
12137
- #: admin/wizard/wizard.php:1506
12138
  msgid " JTC DB Options created or updated Successfully!"
12139
  msgstr ""
12140
 
12141
- #: admin/wizard/wizard.php:1629
12142
  msgid " FSP DB Options created or updated Successfully!"
12143
  msgstr ""
12144
 
12145
- #: admin/wizard/wizard.php:1718
 
 
 
 
12146
  msgid "GDMW Hosting"
12147
  msgstr ""
12148
 
12149
- #: admin/wizard/wizard.php:1720
12150
  msgid "Setup Wizard Export"
12151
  msgstr ""
12152
 
12153
- #: admin/wizard/wizard.php:1720
12154
  msgid ""
12155
  "The Setup Wizard Export feature exports all BPS plugin option settings "
12156
  "except for website specific settings that need to be setup by running the "
@@ -12158,29 +12217,29 @@ msgid ""
12158
  "new website. The name of the exported zip file is: bps-settings-export.zip"
12159
  msgstr ""
12160
 
12161
- #: admin/wizard/wizard.php:1720
12162
  msgid "Setup Wizard Import"
12163
  msgstr ""
12164
 
12165
- #: admin/wizard/wizard.php:1720
12166
  msgid ""
12167
  "To import BPS plugin option settings click the Choose File button, navigate "
12168
  "to where you downloaded/saved the bps-settings-export.zip file on your "
12169
  "computer, select the zip file and click the Open button. Then click the "
12170
  "Import button. IMPORTANT: Run the Setup Wizard after the import completes. "
12171
- "After running the Setup Wizard go to the BPS Security > htaccess Core > "
12172
- "Custom Code tab page and check all of your custom htaccess code for any "
12173
- "website specific custom htaccess code. Example: If you find any custom "
12174
- "htaccess code that has a website URL for your other website that you "
12175
  "exported BPS plugin settings from, then either edit that custom htaccess "
12176
  "code or remove it from BPS Custom Code."
12177
  msgstr ""
12178
 
12179
- #: admin/wizard/wizard.php:1720
12180
  msgid "Network|Multisite Help Info"
12181
  msgstr ""
12182
 
12183
- #: admin/wizard/wizard.php:1720
12184
  msgid ""
12185
  "Setup Wizard Export|Import works for Network|Multisite site types, but only "
12186
  "the Primary site's BPS plugin option settings are exported and imported. BPS "
@@ -12192,17 +12251,17 @@ msgid ""
12192
  "option settings from the Primary site to all Subsites."
12193
  msgstr ""
12194
 
12195
- #: admin/wizard/wizard.php:1727
12196
  msgid ""
12197
  "Clicking OK will Import BPS plugin settings from the bps-settings-export.zip "
12198
  "file on your computer."
12199
  msgstr ""
12200
 
12201
- #: admin/wizard/wizard.php:1727
12202
  msgid "Click OK to Import BPS plugin settings or click Cancel."
12203
  msgstr ""
12204
 
12205
- #: admin/wizard/wizard.php:1736
12206
  msgid ""
12207
  "Clicking OK will Export your BPS plugin settings into the bps-settings-"
12208
  "export.zip file, which you can then download to your computer by clicking "
@@ -12210,49 +12269,49 @@ msgid ""
12210
  "message."
12211
  msgstr ""
12212
 
12213
- #: admin/wizard/wizard.php:1736
12214
  msgid "Click OK to Export BPS plugin settings or click Cancel."
12215
  msgstr ""
12216
 
12217
- #: admin/wizard/wizard.php:1872
12218
  msgid ""
12219
  "BPS plugin option settings exported successfully. Click the Download Zip "
12220
  "Export button to download the Setup Wizard Export zip file: bps-settings-"
12221
  "export.zip."
12222
  msgstr ""
12223
 
12224
- #: admin/wizard/wizard.php:1872
12225
  msgid ""
12226
  " and select the Zip File Download Fix On setting for the Zile File Download "
12227
  "Fix option. You should now be able to download the bps-settings-export.zip "
12228
  "file."
12229
  msgstr ""
12230
 
12231
- #: admin/wizard/wizard.php:2052 admin/wizard/wizard.php:2084
12232
  msgid "BPS plugin settings imported successfully."
12233
  msgstr ""
12234
 
12235
- #: admin/wizard/wizard.php:2052 admin/wizard/wizard.php:2084
12236
  msgid "IMPORTANT: Run the BPS Setup Wizard now."
12237
  msgstr ""
12238
 
12239
- #: admin/wizard/wizard.php:2052 admin/wizard/wizard.php:2084
12240
  msgid ""
12241
- "After running the Setup Wizard go to the BPS Security > htaccess Core > "
12242
- "Custom Code tab page and check all of your custom htaccess code for any "
12243
- "website specific custom htaccess code. Example: If you find any custom "
12244
- "htaccess code that has a website URL for your other website that you "
12245
  "exported BPS plugin settings from, then either edit that custom htaccess "
12246
  "code or remove it from BPS Custom Code."
12247
  msgstr ""
12248
 
12249
- #: admin/wizard/wizard.php:2098
12250
  msgid ""
12251
  "Either the bps-settings-export.zip file has not been selected yet for Import "
12252
  "or the file "
12253
  msgstr ""
12254
 
12255
- #: admin/wizard/wizard.php:2098
12256
  msgid ""
12257
  " is not a valid Setup Wizard Export file or file name. The BPS Setup Wizard "
12258
  "Import feature only allows the bps-settings-export.zip file to be Uploaded/"
@@ -12360,8 +12419,8 @@ msgstr ""
12360
  #: includes/hud-dismiss-functions.php:455
12361
  msgid ""
12362
  "To Dismiss this Notice click the Dismiss Notice button below. To Reset "
12363
- "Dismiss Notices click the Reset|Recheck Dismiss Notices button on the Email|"
12364
- "Log Settings page."
12365
  msgstr ""
12366
 
12367
  #: includes/functions.php:397 includes/hud-autofix-setup.php:75
@@ -12819,7 +12878,7 @@ msgid ""
12819
  "file."
12820
  msgstr ""
12821
 
12822
- #: includes/general-functions.php:1092
12823
  msgid " Hosting Account Root Folder Option setup or updated Successfully!"
12824
  msgstr ""
12825
 
@@ -13805,8 +13864,7 @@ msgstr ""
13805
 
13806
  #: includes/hud-autofix-whitelist.php:861
13807
  msgid ""
13808
- " Click the UI|UX Settings page Question Mark help button for more "
13809
- "information."
13810
  msgstr ""
13811
 
13812
  #: includes/hud-autofix-whitelist.php:870
@@ -13937,7 +13995,7 @@ msgstr ""
13937
  #: includes/hud-dismiss-functions.php:217
13938
  msgid ""
13939
  " link. To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices "
13940
- "button on the Email|Log Settings page."
13941
  msgstr ""
13942
 
13943
  #: includes/hud-dismiss-functions.php:208
@@ -14109,7 +14167,7 @@ msgstr ""
14109
  #: includes/hud-dismiss-functions.php:545
14110
  msgid ""
14111
  "To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on "
14112
- "the Email|Log Settings page."
14113
  msgstr ""
14114
 
14115
  #: includes/hud-dismiss-functions.php:552
@@ -14272,17 +14330,17 @@ msgid ""
14272
  msgstr ""
14273
 
14274
  #: includes/hud-dismiss-functions.php:808
14275
- msgid "MScan 2.0 Rebuild Notice"
14276
  msgstr ""
14277
 
14278
  #: includes/hud-dismiss-functions.php:808
14279
  msgid ""
14280
- "MScan has been completely rebuilt. MScan 2.0 is faster, very accurate and "
14281
- "user friendly. "
14282
  msgstr ""
14283
 
14284
  #: includes/hud-dismiss-functions.php:808
14285
- msgid "Check out MScan 2.0"
14286
  msgstr ""
14287
 
14288
  #: includes/hud-dismiss-functions.php:808
3
  msgstr ""
4
  "Project-Id-Version: bulletproof-security\n"
5
  "Report-Msgid-Bugs-To: \n"
6
+ "POT-Creation-Date: 2022-01-03 11:30-0800\n"
7
  "PO-Revision-Date: 2015-06-20 19:13-0800\n"
8
  "Last-Translator: Ed Alexander <edward@ait-pro.com>\n"
9
  "Language-Team: AITpro <info@ait-pro.com>\n"
570
 
571
  #: admin/core/core-export-import.php:115 admin/login/lsm-export.php:49
572
  #: admin/wizard/wizard-backup.php:246 admin/wizard/wizard-backup.php:287
573
+ #: admin/wizard/wizard.php:1943
574
  msgid ""
575
  "If you see a 403 error and/or are unable to download the zip file then click "
576
  "here: "
579
  #: admin/core/core-export-import.php:115 admin/login/lsm-export.php:49
580
  #: admin/wizard/wizard-backup.php:246 admin/wizard/wizard-backup.php:287
581
  #: admin/wizard/wizard.php:1084 admin/wizard/wizard.php:1181
582
+ #: admin/wizard/wizard.php:1184 admin/wizard/wizard.php:1943
583
  #: includes/hud-autofix-whitelist.php:861
584
  msgid "Setup Wizard Options"
585
  msgstr ""
591
  msgstr ""
592
 
593
  #: admin/core/core-export-import.php:115 admin/login/lsm-export.php:49
594
+ #: admin/wizard/wizard.php:1943
595
  msgid "Download Zip Export"
596
  msgstr ""
597
 
598
+ #: admin/core/core-export-import.php:144 admin/wizard/wizard.php:2107
599
  msgid "Zip File Upload Successful."
600
  msgstr ""
601
 
602
+ #: admin/core/core-export-import.php:155 admin/wizard/wizard.php:2118
603
  msgid "Zip File Exraction Successful. Method: ZipArchive class."
604
  msgstr ""
605
 
629
  msgid "3. Click the wp-admin Folder BulletProof Mode Activate button."
630
  msgstr ""
631
 
632
+ #: admin/core/core-export-import.php:169 admin/wizard/wizard.php:2129
633
  msgid "ERROR: Zip File Extraction Failed. Method: ZipArchive class."
634
  msgstr ""
635
 
636
+ #: admin/core/core-export-import.php:189 admin/wizard/wizard.php:2149
637
  msgid "Zip File Extraction Successful. Method: PclZip."
638
  msgstr ""
639
 
640
+ #: admin/core/core-export-import.php:203 admin/wizard/wizard.php:2161
641
  msgid "ERROR: Zip File Extraction Failed. Method: PclZip."
642
  msgstr ""
643
 
644
+ #: admin/core/core-export-import.php:211 admin/wizard/wizard.php:2169
645
  msgid "ERROR: Zip File Upload Failed."
646
  msgstr ""
647
 
684
  #: admin/core/core-htaccess-code.php:579 admin/core/core-htaccess-code.php:663
685
  #: admin/core/core.php:904 admin/core/core.php:994 admin/core/core.php:1108
686
  #: admin/core/core.php:1198 admin/core/core.php:1297
687
+ #: admin/maintenance/maintenance.php:886 admin/maintenance/maintenance.php:1203
688
+ #: admin/maintenance/maintenance.php:1721
689
+ #: admin/maintenance/maintenance.php:1852
690
+ #: admin/maintenance/maintenance.php:2046 admin/wizard/wizard-functions.php:44
691
  msgid "Click this link for help information: "
692
  msgstr ""
693
 
699
  #: admin/core/core-htaccess-code.php:579 admin/core/core-htaccess-code.php:663
700
  #: admin/core/core.php:904 admin/core/core.php:994 admin/core/core.php:1108
701
  #: admin/core/core.php:1198 admin/core/core.php:1297
702
+ #: admin/maintenance/maintenance.php:886 admin/maintenance/maintenance.php:1203
703
+ #: admin/maintenance/maintenance.php:1721
704
+ #: admin/maintenance/maintenance.php:1852
705
+ #: admin/maintenance/maintenance.php:2046 admin/wizard/wizard-functions.php:44
706
  #: admin/wizard/wizard.php:1096
707
  msgid "htaccess Files Disabled Forum Topic"
708
  msgstr ""
1825
  #: admin/core/core.php:461 admin/core/core.php:596 admin/core/core.php:689
1826
  #: admin/core/core.php:782 admin/core/core.php:836 admin/core/core.php:1890
1827
  #: admin/core/core.php:2116 admin/db-backup-security/db-backup-security.php:296
1828
+ #: admin/db-backup-security/db-backup-security.php:1243
1829
+ #: admin/db-backup-security/db-backup-security.php:1410
1830
  #: admin/email-log-settings/email-log-settings.php:262
1831
  #: admin/login/login.php:211 admin/login/login.php:833
1832
  #: admin/login/login.php:1171 admin/login/login.php:1712
1835
  #: admin/mscan/mscan.php:2920 admin/security-log/security-log.php:224
1836
  #: admin/system-info/system-info.php:81 admin/theme-skin/theme-skin.php:87
1837
  #: admin/wizard/wizard.php:1125 admin/wizard/wizard.php:1194
1838
+ #: admin/wizard/wizard.php:1781 bulletproof-security.php:182
1839
  msgid "BPS Pro Features"
1840
  msgstr ""
1841
 
1843
  #: admin/core/core.php:1927 admin/core/core.php:1975 admin/login/login.php:158
1844
  #: admin/login/login.php:219 admin/login/login.php:936
1845
  #: admin/login/login.php:1192 admin/system-info/system-info.php:95
1846
+ #: admin/system-info/system-info.php:1175
1847
  msgid "Permission Denied"
1848
  msgstr ""
1849
 
1855
  #: admin/core/core.php:593 admin/core/core.php:686 admin/core/core.php:779
1856
  #: admin/core/core.php:833 admin/core/core.php:1887
1857
  #: admin/db-backup-security/db-backup-security.php:293
1858
+ #: admin/db-backup-security/db-backup-security.php:1240
1859
+ #: admin/db-backup-security/db-backup-security.php:1407
1860
  #: admin/email-log-settings/email-log-settings.php:259
1861
  #: admin/login/login.php:208 admin/login/login.php:830
1862
  #: admin/login/login.php:1168 admin/login/login.php:1709
1865
  #: admin/mscan/mscan.php:2917 admin/security-log/security-log.php:221
1866
  #: admin/system-info/system-info.php:78 admin/theme-skin/theme-skin.php:83
1867
  #: admin/wizard/wizard.php:1122 admin/wizard/wizard.php:1191
1868
+ #: admin/wizard/wizard.php:1778
1869
  msgid ""
1870
  "This Question Mark Help window is draggable (top) and resizable (bottom "
1871
  "right corner)"
1875
  #: admin/core/core.php:596 admin/core/core.php:689 admin/core/core.php:782
1876
  #: admin/core/core.php:836 admin/core/core.php:1890 admin/core/core.php:2116
1877
  #: admin/core/core.php:2199 admin/db-backup-security/db-backup-security.php:296
1878
+ #: admin/db-backup-security/db-backup-security.php:1243
1879
+ #: admin/db-backup-security/db-backup-security.php:1410
1880
  #: admin/email-log-settings/email-log-settings.php:262
1881
  #: admin/login/login.php:211 admin/login/login.php:833
1882
  #: admin/login/login.php:1171 admin/login/login.php:1712
1885
  #: admin/mscan/mscan.php:2920 admin/security-log/security-log.php:224
1886
  #: admin/system-info/system-info.php:81 admin/theme-skin/theme-skin.php:87
1887
  #: admin/wizard/wizard.php:1125 admin/wizard/wizard.php:1194
1888
+ #: admin/wizard/wizard.php:1781
1889
  msgid ""
1890
  "Want even more security protection for the ridiculously cheap one-time price "
1891
  "of $69.95"
1895
  #: admin/core/core.php:596 admin/core/core.php:689 admin/core/core.php:782
1896
  #: admin/core/core.php:836 admin/core/core.php:1890 admin/core/core.php:2116
1897
  #: admin/core/core.php:2201 admin/db-backup-security/db-backup-security.php:296
1898
+ #: admin/db-backup-security/db-backup-security.php:1243
1899
+ #: admin/db-backup-security/db-backup-security.php:1410
1900
  #: admin/email-log-settings/email-log-settings.php:262
1901
  #: admin/login/login.php:211 admin/login/login.php:833
1902
  #: admin/login/login.php:1171 admin/login/login.php:1712
1905
  #: admin/mscan/mscan.php:2920 admin/security-log/security-log.php:224
1906
  #: admin/system-info/system-info.php:81 admin/theme-skin/theme-skin.php:87
1907
  #: admin/wizard/wizard.php:1125 admin/wizard/wizard.php:1194
1908
+ #: admin/wizard/wizard.php:1781
1909
  msgid ""
1910
  "BPS Pro comes with free unlimited installations, upgrades & support for "
1911
  "life. No yearly subscriptions or additional costs."
1915
  #: admin/core/core.php:596 admin/core/core.php:689 admin/core/core.php:782
1916
  #: admin/core/core.php:836 admin/core/core.php:1890 admin/core/core.php:2116
1917
  #: admin/db-backup-security/db-backup-security.php:296
1918
+ #: admin/db-backup-security/db-backup-security.php:1243
1919
+ #: admin/db-backup-security/db-backup-security.php:1410
1920
  #: admin/email-log-settings/email-log-settings.php:262
1921
  #: admin/login/login.php:211 admin/login/login.php:833
1922
  #: admin/login/login.php:1171 admin/login/login.php:1712
1925
  #: admin/mscan/mscan.php:2920 admin/security-log/security-log.php:224
1926
  #: admin/system-info/system-info.php:81 admin/theme-skin/theme-skin.php:87
1927
  #: admin/wizard/wizard.php:1125 admin/wizard/wizard.php:1194
1928
+ #: admin/wizard/wizard.php:1781
1929
  msgid ""
1930
  "BBS Pro has an amazing track record. BPS Pro is installed on 60,000+ "
1931
  "websites. Not a single one of those websites has been hacked in 10+ years."
1935
  #: admin/core/core.php:596 admin/core/core.php:689 admin/core/core.php:782
1936
  #: admin/core/core.php:836 admin/core/core.php:1890 admin/core/core.php:2116
1937
  #: admin/db-backup-security/db-backup-security.php:296
1938
+ #: admin/db-backup-security/db-backup-security.php:1243
1939
+ #: admin/db-backup-security/db-backup-security.php:1410
1940
  #: admin/email-log-settings/email-log-settings.php:262
1941
  #: admin/login/login.php:211 admin/login/login.php:833
1942
  #: admin/login/login.php:1171 admin/login/login.php:1712
1945
  #: admin/mscan/mscan.php:2920 admin/security-log/security-log.php:224
1946
  #: admin/system-info/system-info.php:81 admin/theme-skin/theme-skin.php:87
1947
  #: admin/wizard/wizard.php:1125 admin/wizard/wizard.php:1194
1948
+ #: admin/wizard/wizard.php:1781
1949
  msgid "Get BPS Pro"
1950
  msgstr ""
1951
 
2109
  "other buttons."
2110
  msgstr ""
2111
 
2112
+ #: admin/core/core.php:569 admin/maintenance/maintenance.php:692
2113
  #: admin/security-log/security-log.php:444
2114
  #: admin/security-log/security-log.php:459
2115
  #: admin/security-log/security-log.php:677
2116
+ #: admin/system-info/system-info.php:1231
2117
  msgid "Click OK to proceed or click Cancel."
2118
  msgstr ""
2119
 
2391
  msgid "Click OK to Turn AutoLock On or click Cancel."
2392
  msgstr ""
2393
 
2394
+ #: admin/core/core.php:1415 admin/system-info/system-info.php:838
2395
+ #: admin/system-info/system-info.php:854 admin/system-info/system-info.php:862
2396
+ #: admin/system-info/system-info.php:870 admin/system-info/system-info.php:878
2397
+ #: admin/system-info/system-info.php:886 admin/system-info/system-info.php:894
2398
+ #: admin/system-info/system-info.php:902 admin/system-info/system-info.php:910
2399
+ #: admin/system-info/system-info.php:929 includes/functions.php:586
2400
  #: includes/functions.php:777 includes/functions.php:945
2401
  #: includes/functions.php:988 includes/functions.php:1036
2402
  #: includes/functions.php:1080
2415
  msgid "Click OK to Turn AutoLock Off or click Cancel."
2416
  msgstr ""
2417
 
2418
+ #: admin/core/core.php:1427 admin/system-info/system-info.php:576
2419
+ #: admin/system-info/system-info.php:857 admin/system-info/system-info.php:865
2420
+ #: admin/system-info/system-info.php:873 admin/system-info/system-info.php:881
2421
+ #: admin/system-info/system-info.php:889 admin/system-info/system-info.php:897
2422
+ #: admin/system-info/system-info.php:905 admin/system-info/system-info.php:913
2423
+ #: admin/system-info/system-info.php:921 admin/system-info/system-info.php:932
2424
  #: includes/functions.php:950 includes/functions.php:993
2425
  #: includes/functions.php:1042 includes/functions.php:1086
2426
  #: includes/general-functions.php:285 includes/general-functions.php:300
2584
  msgstr ""
2585
 
2586
  #: admin/core/core.php:2107
2587
+ #: admin/db-backup-security/db-backup-security.php:1742
2588
  #: admin/mscan/mscan.php:3530 admin/theme-skin/theme-skin.php:236
2589
  msgid "Whats New in "
2590
  msgstr ""
2632
  msgstr ""
2633
 
2634
  #: admin/core/core.php:2158 admin/email-log-settings/email-log-settings.php:431
2635
+ #: admin/login/login.php:1828 admin/maintenance/maintenance.php:2170
2636
  #: admin/security-log/security-log.php:809
2637
+ #: admin/system-info/system-info.php:1255
2638
  msgid "Contributors Page"
2639
  msgstr ""
2640
 
2643
  msgstr ""
2644
 
2645
  #: admin/core/core.php:2160 admin/email-log-settings/email-log-settings.php:430
2646
+ #: admin/login/login.php:1827 admin/maintenance/maintenance.php:2171
2647
  #: admin/security-log/security-log.php:808
2648
+ #: admin/system-info/system-info.php:1254
2649
  msgid "Security Log Event Codes"
2650
  msgstr ""
2651
 
2654
  msgstr ""
2655
 
2656
  #: admin/core/core.php:2162
2657
+ #: admin/db-backup-security/db-backup-security.php:1746
2658
  #: admin/email-log-settings/email-log-settings.php:432
2659
+ #: admin/login/login.php:1829 admin/maintenance/maintenance.php:2172
2660
  #: admin/mscan/mscan.php:3533 admin/security-log/security-log.php:810
2661
+ #: admin/system-info/system-info.php:1256 admin/theme-skin/theme-skin.php:239
2662
  msgid "Forum: Search, Troubleshooting Steps & Post Questions For Assistance"
2663
  msgstr ""
2664
 
2913
  msgstr ""
2914
 
2915
  #: admin/core/core.php:2245 admin/core/core.php:2246 admin/core/core.php:2247
2916
+ #: admin/core/core.php:2248 admin/core/core.php:2249 admin/core/core.php:2255
2917
  #: admin/core/core.php:2256 admin/core/core.php:2257 admin/core/core.php:2258
2918
  #: admin/core/core.php:2259 admin/core/core.php:2260 admin/core/core.php:2261
2919
+ #: admin/core/core.php:2262 admin/core/core.php:2263 admin/core/core.php:2264
2920
  #: admin/core/core.php:2270 admin/core/core.php:2271 admin/core/core.php:2272
2921
+ #: admin/core/core.php:2273 admin/core/core.php:2274 admin/core/core.php:2275
2922
+ #: admin/core/core.php:2281 admin/core/core.php:2282 admin/core/core.php:2283
2923
+ #: admin/core/core.php:2284 admin/core/core.php:2289 admin/core/core.php:2290
2924
+ #: admin/core/core.php:2291 admin/core/core.php:2292 admin/core/core.php:2293
2925
  #: admin/core/core.php:2298 admin/core/core.php:2299 admin/core/core.php:2300
2926
  #: admin/core/core.php:2301 admin/core/core.php:2302 admin/core/core.php:2303
2927
+ #: admin/core/core.php:2304 admin/core/core.php:2305 admin/core/core.php:2306
2928
  #: admin/core/core.php:2311 admin/core/core.php:2312 admin/core/core.php:2313
2929
  #: admin/core/core.php:2314 admin/core/core.php:2315 admin/core/core.php:2316
2930
  #: admin/core/core.php:2317 admin/core/core.php:2318 admin/core/core.php:2319
2931
+ #: admin/core/core.php:2320 admin/core/core.php:2321 admin/core/core.php:2322
2932
+ #: admin/core/core.php:2323 admin/core/core.php:2329 admin/core/core.php:2330
2933
  #: admin/core/core.php:2331 admin/core/core.php:2332 admin/core/core.php:2333
2934
  #: admin/core/core.php:2334 admin/core/core.php:2335 admin/core/core.php:2336
2935
  #: admin/core/core.php:2337 admin/core/core.php:2338 admin/core/core.php:2339
2936
+ #: admin/core/core.php:2340 admin/core/core.php:2341 admin/core/core.php:2342
2937
  #: admin/core/core.php:2348 admin/core/core.php:2349 admin/core/core.php:2350
2938
  #: admin/core/core.php:2351 admin/core/core.php:2352 admin/core/core.php:2353
2939
  #: admin/core/core.php:2354 admin/core/core.php:2355 admin/core/core.php:2356
2940
+ #: admin/core/core.php:2357 admin/core/core.php:2358 admin/core/core.php:2359
2941
+ #: admin/core/core.php:2360 admin/core/core.php:2366 admin/core/core.php:2367
2942
  #: admin/core/core.php:2368 admin/core/core.php:2369 admin/core/core.php:2370
2943
  #: admin/core/core.php:2371 admin/core/core.php:2372 admin/core/core.php:2373
2944
+ #: admin/core/core.php:2374 admin/core/core.php:2375 admin/core/core.php:2381
2945
  #: admin/core/core.php:2382 admin/core/core.php:2383 admin/core/core.php:2384
2946
  #: admin/core/core.php:2385 admin/core/core.php:2386 admin/core/core.php:2387
2947
+ #: admin/core/core.php:2388 admin/core/core.php:2389 admin/core/core.php:2390
2948
  #, php-format
2949
  msgid ""
2950
  "<a href=\"%2$s\" target=\"_blank\" title=\"Link Opens in New Browser Window"
3428
 
3429
  #: admin/db-backup-security/db-backup-help-text.php:12
3430
  msgid ""
3431
+ "DB Backup Log Email Alert and Log file option settings are on the Alerts|"
3432
+ "Logs|Email Options page."
3433
  msgstr ""
3434
 
3435
  #: admin/db-backup-security/db-backup-help-text.php:12
3606
  msgstr ""
3607
 
3608
  #: admin/db-backup-security/db-backup-security.php:273
3609
+ #: admin/db-backup-security/db-backup-security.php:1233
3610
+ #: admin/db-backup-security/db-backup-security.php:1236
3611
  msgid "DB Backup Log"
3612
  msgstr ""
3613
 
3614
  #: admin/db-backup-security/db-backup-security.php:274
3615
+ #: admin/db-backup-security/db-backup-security.php:1400
3616
+ #: admin/db-backup-security/db-backup-security.php:1403
3617
  msgid "DB Table Prefix Changer"
3618
  msgstr ""
3619
 
3781
  msgstr ""
3782
 
3783
  #: admin/db-backup-security/db-backup-security.php:983
3784
+ #: admin/db-backup-security/db-backup-security.php:1614
3785
  msgid "DB Table Name"
3786
  msgstr ""
3787
 
3803
 
3804
  #: admin/db-backup-security/db-backup-security.php:1038
3805
  msgid ""
3806
+ "Note: If you see 404 errors when trying to download zip files or if you have "
 
 
 
 
3807
  "changed the DB Backup Folder Location above, click the Question Mark help "
3808
  "button."
3809
  msgstr ""
3810
 
3811
+ #: admin/db-backup-security/db-backup-security.php:1041
3812
  msgid "Backup Job Type: Manual or Scheduled"
3813
  msgstr ""
3814
 
3815
+ #: admin/db-backup-security/db-backup-security.php:1043
3816
  msgid "Manual DB Backup Job"
3817
  msgstr ""
3818
 
3819
+ #: admin/db-backup-security/db-backup-security.php:1044
3820
  msgid "Scheduled DB Backup Job"
3821
  msgstr ""
3822
 
3823
+ #: admin/db-backup-security/db-backup-security.php:1047
3824
  msgid "Frequency of Scheduled Backup Job (recurring)"
3825
  msgstr ""
3826
 
3827
+ #: admin/db-backup-security/db-backup-security.php:1049
3828
+ #: admin/db-backup-security/db-backup-security.php:1058
3829
+ #: admin/db-backup-security/db-backup-security.php:1087
3830
+ #: admin/db-backup-security/db-backup-security.php:1099
3831
  msgid "N/A"
3832
  msgstr ""
3833
 
3834
+ #: admin/db-backup-security/db-backup-security.php:1050
3835
  msgid "Hourly Scheduled DB Backup Job"
3836
  msgstr ""
3837
 
3838
+ #: admin/db-backup-security/db-backup-security.php:1051
3839
  msgid "Daily Scheduled DB Backup Job"
3840
  msgstr ""
3841
 
3842
+ #: admin/db-backup-security/db-backup-security.php:1052
3843
  msgid "Weekly Scheduled DB Backup Job"
3844
  msgstr ""
3845
 
3846
+ #: admin/db-backup-security/db-backup-security.php:1053
3847
  msgid "Monthly Scheduled DB Backup Job"
3848
  msgstr ""
3849
 
3850
+ #: admin/db-backup-security/db-backup-security.php:1056
3851
  msgid "Hour When Scheduled Backup is Run (recurring)"
3852
  msgstr ""
3853
 
3854
+ #: admin/db-backup-security/db-backup-security.php:1059
3855
  msgid "12AM"
3856
  msgstr ""
3857
 
3858
+ #: admin/db-backup-security/db-backup-security.php:1060
3859
  msgid "1AM"
3860
  msgstr ""
3861
 
3862
+ #: admin/db-backup-security/db-backup-security.php:1061
3863
  msgid "2AM"
3864
  msgstr ""
3865
 
3866
+ #: admin/db-backup-security/db-backup-security.php:1062
3867
  msgid "3AM"
3868
  msgstr ""
3869
 
3870
+ #: admin/db-backup-security/db-backup-security.php:1063
3871
  msgid "4AM"
3872
  msgstr ""
3873
 
3874
+ #: admin/db-backup-security/db-backup-security.php:1064
3875
  msgid "5AM"
3876
  msgstr ""
3877
 
3878
+ #: admin/db-backup-security/db-backup-security.php:1065
3879
  msgid "6AM"
3880
  msgstr ""
3881
 
3882
+ #: admin/db-backup-security/db-backup-security.php:1066
3883
  msgid "7AM"
3884
  msgstr ""
3885
 
3886
+ #: admin/db-backup-security/db-backup-security.php:1067
3887
  msgid "8AM"
3888
  msgstr ""
3889
 
3890
+ #: admin/db-backup-security/db-backup-security.php:1068
3891
  msgid "9AM"
3892
  msgstr ""
3893
 
3894
+ #: admin/db-backup-security/db-backup-security.php:1069
3895
  msgid "10AM"
3896
  msgstr ""
3897
 
3898
+ #: admin/db-backup-security/db-backup-security.php:1070
3899
  msgid "11AM"
3900
  msgstr ""
3901
 
3902
+ #: admin/db-backup-security/db-backup-security.php:1071
3903
  msgid "12PM"
3904
  msgstr ""
3905
 
3906
+ #: admin/db-backup-security/db-backup-security.php:1072
3907
  msgid "1PM"
3908
  msgstr ""
3909
 
3910
+ #: admin/db-backup-security/db-backup-security.php:1073
3911
  msgid "2PM"
3912
  msgstr ""
3913
 
3914
+ #: admin/db-backup-security/db-backup-security.php:1074
3915
  msgid "3PM"
3916
  msgstr ""
3917
 
3918
+ #: admin/db-backup-security/db-backup-security.php:1075
3919
  msgid "4PM"
3920
  msgstr ""
3921
 
3922
+ #: admin/db-backup-security/db-backup-security.php:1076
3923
  msgid "5PM"
3924
  msgstr ""
3925
 
3926
+ #: admin/db-backup-security/db-backup-security.php:1077
3927
  msgid "6PM"
3928
  msgstr ""
3929
 
3930
+ #: admin/db-backup-security/db-backup-security.php:1078
3931
  msgid "7PM"
3932
  msgstr ""
3933
 
3934
+ #: admin/db-backup-security/db-backup-security.php:1079
3935
  msgid "8PM"
3936
  msgstr ""
3937
 
3938
+ #: admin/db-backup-security/db-backup-security.php:1080
3939
  msgid "9PM"
3940
  msgstr ""
3941
 
3942
+ #: admin/db-backup-security/db-backup-security.php:1081
3943
  msgid "10PM"
3944
  msgstr ""
3945
 
3946
+ #: admin/db-backup-security/db-backup-security.php:1082
3947
  msgid "11PM"
3948
  msgstr ""
3949
 
3950
+ #: admin/db-backup-security/db-backup-security.php:1085
3951
  msgid "Day of Week When Scheduled Backup is Run (recurring)"
3952
  msgstr ""
3953
 
3954
+ #: admin/db-backup-security/db-backup-security.php:1088
3955
  msgid "Sunday"
3956
  msgstr ""
3957
 
3958
+ #: admin/db-backup-security/db-backup-security.php:1089
3959
  msgid "Monday"
3960
  msgstr ""
3961
 
3962
+ #: admin/db-backup-security/db-backup-security.php:1090
3963
  msgid "Tuesday"
3964
  msgstr ""
3965
 
3966
+ #: admin/db-backup-security/db-backup-security.php:1091
3967
  msgid "Wednesday"
3968
  msgstr ""
3969
 
3970
+ #: admin/db-backup-security/db-backup-security.php:1092
3971
  msgid "Thursday"
3972
  msgstr ""
3973
 
3974
+ #: admin/db-backup-security/db-backup-security.php:1093
3975
  msgid "Friday"
3976
  msgstr ""
3977
 
3978
+ #: admin/db-backup-security/db-backup-security.php:1094
3979
  msgid "Saturday"
3980
  msgstr ""
3981
 
3982
+ #: admin/db-backup-security/db-backup-security.php:1097
3983
  msgid "Day of Month When Scheduled Backup is Run (recurring)"
3984
  msgstr ""
3985
 
3986
+ #: admin/db-backup-security/db-backup-security.php:1100
3987
  msgid "1st"
3988
  msgstr ""
3989
 
3990
+ #: admin/db-backup-security/db-backup-security.php:1101
3991
  msgid "2nd"
3992
  msgstr ""
3993
 
3994
+ #: admin/db-backup-security/db-backup-security.php:1102
3995
  msgid "3rd"
3996
  msgstr ""
3997
 
3998
+ #: admin/db-backup-security/db-backup-security.php:1103
3999
  msgid "4th"
4000
  msgstr ""
4001
 
4002
+ #: admin/db-backup-security/db-backup-security.php:1104
4003
  msgid "5th"
4004
  msgstr ""
4005
 
4006
+ #: admin/db-backup-security/db-backup-security.php:1105
4007
  msgid "6th"
4008
  msgstr ""
4009
 
4010
+ #: admin/db-backup-security/db-backup-security.php:1106
4011
  msgid "7th"
4012
  msgstr ""
4013
 
4014
+ #: admin/db-backup-security/db-backup-security.php:1107
4015
  msgid "8th"
4016
  msgstr ""
4017
 
4018
+ #: admin/db-backup-security/db-backup-security.php:1108
4019
  msgid "9th"
4020
  msgstr ""
4021
 
4022
+ #: admin/db-backup-security/db-backup-security.php:1109
4023
  msgid "10th"
4024
  msgstr ""
4025
 
4026
+ #: admin/db-backup-security/db-backup-security.php:1110
4027
  msgid "11th"
4028
  msgstr ""
4029
 
4030
+ #: admin/db-backup-security/db-backup-security.php:1111
4031
  msgid "12th"
4032
  msgstr ""
4033
 
4034
+ #: admin/db-backup-security/db-backup-security.php:1112
4035
  msgid "13th"
4036
  msgstr ""
4037
 
4038
+ #: admin/db-backup-security/db-backup-security.php:1113
4039
  msgid "14th"
4040
  msgstr ""
4041
 
4042
+ #: admin/db-backup-security/db-backup-security.php:1114
4043
  msgid "15th"
4044
  msgstr ""
4045
 
4046
+ #: admin/db-backup-security/db-backup-security.php:1115
4047
  msgid "16th"
4048
  msgstr ""
4049
 
4050
+ #: admin/db-backup-security/db-backup-security.php:1116
4051
  msgid "17th"
4052
  msgstr ""
4053
 
4054
+ #: admin/db-backup-security/db-backup-security.php:1117
4055
  msgid "18th"
4056
  msgstr ""
4057
 
4058
+ #: admin/db-backup-security/db-backup-security.php:1118
4059
  msgid "19th"
4060
  msgstr ""
4061
 
4062
+ #: admin/db-backup-security/db-backup-security.php:1119
4063
  msgid "20th"
4064
  msgstr ""
4065
 
4066
+ #: admin/db-backup-security/db-backup-security.php:1120
4067
  msgid "21st"
4068
  msgstr ""
4069
 
4070
+ #: admin/db-backup-security/db-backup-security.php:1121
4071
  msgid "22nd"
4072
  msgstr ""
4073
 
4074
+ #: admin/db-backup-security/db-backup-security.php:1122
4075
  msgid "23rd"
4076
  msgstr ""
4077
 
4078
+ #: admin/db-backup-security/db-backup-security.php:1123
4079
  msgid "24th"
4080
  msgstr ""
4081
 
4082
+ #: admin/db-backup-security/db-backup-security.php:1124
4083
  msgid "25th"
4084
  msgstr ""
4085
 
4086
+ #: admin/db-backup-security/db-backup-security.php:1125
4087
  msgid "26th"
4088
  msgstr ""
4089
 
4090
+ #: admin/db-backup-security/db-backup-security.php:1126
4091
  msgid "27th"
4092
  msgstr ""
4093
 
4094
+ #: admin/db-backup-security/db-backup-security.php:1127
4095
  msgid "28th"
4096
  msgstr ""
4097
 
4098
+ #: admin/db-backup-security/db-backup-security.php:1128
4099
  msgid "29th"
4100
  msgstr ""
4101
 
4102
+ #: admin/db-backup-security/db-backup-security.php:1129
4103
  msgid "30th"
4104
  msgstr ""
4105
 
4106
+ #: admin/db-backup-security/db-backup-security.php:1132
4107
  msgid "Send Scheduled Backup Zip File Via Email or Just Email Only:"
4108
  msgstr ""
4109
 
4110
+ #: admin/db-backup-security/db-backup-security.php:1133
4111
  msgid ""
4112
  "Note: Check with your email provider for the maximum<br>file attachment size "
4113
  "limit that is allowed by your Mail Server"
4114
  msgstr ""
4115
 
4116
+ #: admin/db-backup-security/db-backup-security.php:1135
4117
  msgid "Do Not Email Zip Backup File"
4118
  msgstr ""
4119
 
4120
+ #: admin/db-backup-security/db-backup-security.php:1136
4121
  msgid "Email & Delete Zip Backup File"
4122
  msgstr ""
4123
 
4124
+ #: admin/db-backup-security/db-backup-security.php:1137
4125
  msgid "Email Zip Backup File"
4126
  msgstr ""
4127
 
4128
+ #: admin/db-backup-security/db-backup-security.php:1138
4129
  msgid "Send Email Only & Not Zip Backup File"
4130
  msgstr ""
4131
 
4132
+ #: admin/db-backup-security/db-backup-security.php:1141
4133
  msgid "Automatically Delete Old Backup Files:"
4134
  msgstr ""
4135
 
4136
+ #: admin/db-backup-security/db-backup-security.php:1142
4137
+ #: admin/db-backup-security/db-backup-security.php:1156
4138
  msgid "Independent Option:"
4139
  msgstr ""
4140
 
4141
+ #: admin/db-backup-security/db-backup-security.php:1144
4142
  msgid "Never Delete Old Backup Files"
4143
  msgstr ""
4144
 
4145
+ #: admin/db-backup-security/db-backup-security.php:1145
4146
  msgid "Delete Backup Files Older Than 1 Day"
4147
  msgstr ""
4148
 
4149
+ #: admin/db-backup-security/db-backup-security.php:1146
4150
  msgid "Delete Backup Files Older Than 5 Days"
4151
  msgstr ""
4152
 
4153
+ #: admin/db-backup-security/db-backup-security.php:1147
4154
  msgid "Delete Backup Files Older Than 10 Days"
4155
  msgstr ""
4156
 
4157
+ #: admin/db-backup-security/db-backup-security.php:1148
4158
  msgid "Delete Backup Files Older Than 15 Days"
4159
  msgstr ""
4160
 
4161
+ #: admin/db-backup-security/db-backup-security.php:1149
4162
  msgid "Delete Backup Files Older Than 30 Days"
4163
  msgstr ""
4164
 
4165
+ #: admin/db-backup-security/db-backup-security.php:1150
4166
  msgid "Delete Backup Files Older Than 60 Days"
4167
  msgstr ""
4168
 
4169
+ #: admin/db-backup-security/db-backup-security.php:1151
4170
  msgid "Delete Backup Files Older Than 90 Days"
4171
  msgstr ""
4172
 
4173
+ #: admin/db-backup-security/db-backup-security.php:1152
4174
  msgid "Delete Backup Files Older Than 180 Days"
4175
  msgstr ""
4176
 
4177
+ #: admin/db-backup-security/db-backup-security.php:1155
4178
  msgid "Turn On|Off All Scheduled Backups (Override):"
4179
  msgstr ""
4180
 
4181
+ #: admin/db-backup-security/db-backup-security.php:1158
4182
  msgid "All Scheduled Backups On"
4183
  msgstr ""
4184
 
4185
+ #: admin/db-backup-security/db-backup-security.php:1159
4186
  msgid "All Scheduled Backups Off"
4187
  msgstr ""
4188
 
4189
+ #: admin/db-backup-security/db-backup-security.php:1162
4190
  msgid "Click OK to Create this Backup Job or click Cancel"
4191
  msgstr ""
4192
 
4193
+ #: admin/db-backup-security/db-backup-security.php:1180
4194
  msgid "Rename|Create|Reset DB Backup Folder Name:"
4195
  msgstr ""
4196
 
4197
+ #: admin/db-backup-security/db-backup-security.php:1181
4198
  msgid "Randomly Generated New DB Backup Folder Name."
4199
  msgstr ""
4200
 
4201
+ #: admin/db-backup-security/db-backup-security.php:1182
4202
  msgid "Valid Folder Naming Characters: a-z A-Z 0-9 - _"
4203
  msgstr ""
4204
 
4205
+ #: admin/db-backup-security/db-backup-security.php:1185
4206
  msgid ""
4207
  "The Rename|Create|Reset Tool renames the DB Backup folder if it already "
4208
  "exists or creates a new DB Backup folder if it does not already exist.\\n"
4214
  "OK to proceed or click Cancel"
4215
  msgstr ""
4216
 
4217
+ #: admin/db-backup-security/db-backup-security.php:1261
4218
+ #: admin/db-backup-security/db-backup-security.php:1264
4219
  msgid "DB Backup Log File Size: "
4220
  msgstr ""
4221
 
4222
+ #: admin/db-backup-security/db-backup-security.php:1264
4223
  msgid "The Email Logging options will only send log files up to 2MB in size."
4224
  msgstr ""
4225
 
4226
+ #: admin/db-backup-security/db-backup-security.php:1264
4227
  msgid ""
4228
  "Copy and paste the DB Backup Log file contents into a Notepad text file on "
4229
  "your computer and save it."
4230
  msgstr ""
4231
 
4232
+ #: admin/db-backup-security/db-backup-security.php:1264
4233
  #: admin/mscan/mscan.php:2027
4234
  msgid ""
4235
  "Then click the Delete Log button to delete the contents of this Log file."
4236
  msgstr ""
4237
 
4238
+ #: admin/db-backup-security/db-backup-security.php:1279
4239
  msgid "DB Backup Log Last Modified Time: "
4240
  msgstr ""
4241
 
4242
+ #: admin/db-backup-security/db-backup-security.php:1293
4243
  msgid ""
4244
  "Success! Your DB Backup Log file has been deleted and replaced with a new "
4245
  "blank DB Backup Log file."
4246
  msgstr ""
4247
 
4248
+ #: admin/db-backup-security/db-backup-security.php:1301
4249
  msgid "Clicking OK will delete the contents of your DB Backup Log file."
4250
  msgstr ""
4251
 
4252
+ #: admin/db-backup-security/db-backup-security.php:1301
4253
  #: admin/mscan/mscan.php:2085 admin/security-log/security-log.php:488
4254
  msgid "Click OK to Delete the Log file contents or click Cancel."
4255
  msgstr ""
4256
 
4257
+ #: admin/db-backup-security/db-backup-security.php:1320
4258
  msgid ""
4259
  "The DB Backup Log File Was Not Found! Check that the file really exists here "
4260
  "- /"
4261
  msgstr ""
4262
 
4263
+ #: admin/db-backup-security/db-backup-security.php:1320
4264
  msgid "/bps-backup/logs/db_backup_log.txt and is named correctly."
4265
  msgstr ""
4266
 
4267
+ #: admin/db-backup-security/db-backup-security.php:1339
4268
  msgid ""
4269
  "File Open and Write test successful! Your DB Backup Log file is writable."
4270
  msgstr ""
4271
 
4272
+ #: admin/db-backup-security/db-backup-security.php:1351
4273
  msgid "Success! Your DB Backup Log file has been updated."
4274
  msgstr ""
4275
 
4276
+ #: admin/db-backup-security/db-backup-security.php:1422
4277
  msgid "Your current WordPress Database Table Prefix is: "
4278
  msgstr ""
4279
 
4280
+ #: admin/db-backup-security/db-backup-security.php:1422
4281
  msgid "NOTES: "
4282
  msgstr ""
4283
 
4284
+ #: admin/db-backup-security/db-backup-security.php:1422
4285
  msgid ""
4286
  "1. It is recommended that you backup your database before using this tool."
4287
  msgstr ""
4288
 
4289
+ #: admin/db-backup-security/db-backup-security.php:1422
4290
  msgid ""
4291
  "2. If you want to create your own DB Table Prefix name or add additional "
4292
  "characters to the randomly generated DB Table Prefix name below then ONLY "
4293
  "use lowercase letters, numbers and underscores in your DB Table Prefix name."
4294
  msgstr ""
4295
 
4296
+ #: admin/db-backup-security/db-backup-security.php:1422
4297
  msgid ""
4298
  "3. The maximum length limitation of a DB Table name, including the table "
4299
  "prefix is 64 characters. See the DB Table Names & Character Length Table to "
4300
  "the right."
4301
  msgstr ""
4302
 
4303
+ #: admin/db-backup-security/db-backup-security.php:1422
4304
  msgid ""
4305
  "4. To change your DB Table Prefix name back to the WordPress default DB "
4306
  "Table Prefix name, enter wp_ for the DB Table Prefix name."
4307
  msgstr ""
4308
 
4309
+ #: admin/db-backup-security/db-backup-security.php:1434
4310
  msgid ""
4311
  "ERROR: The DB Table Prefix name can only contain numbers, lowercase letters, "
4312
  "and underscores."
4313
  msgstr ""
4314
 
4315
+ #: admin/db-backup-security/db-backup-security.php:1448
4316
  msgid "A wp-config.php file was NOT found in your website root folder."
4317
  msgstr ""
4318
 
4319
+ #: admin/db-backup-security/db-backup-security.php:1448
4320
  msgid ""
4321
  "Your DB Table Prefix was not changed. If you have moved your wp-config.php "
4322
  "file to a another Server folder then you can use this tool to change your DB "
4324
  "file back to the default location: your WordPress website root folder."
4325
  msgstr ""
4326
 
4327
+ #: admin/db-backup-security/db-backup-security.php:1469
4328
  msgid ""
4329
  "Error: The wp-config.php file is not writable. Unable to write to the wp-"
4330
  "config.php file."
4331
  msgstr ""
4332
 
4333
+ #: admin/db-backup-security/db-backup-security.php:1469
4334
  msgid ""
4335
  "Your DB Table Prefix was not changed. You will need to make the wp-config."
4336
  "php file writable first by changing either the file permissions or Ownership "
4338
  "DB Table Prefix Changer tool to change your DB Table Prefix."
4339
  msgstr ""
4340
 
4341
+ #: admin/db-backup-security/db-backup-security.php:1514
4342
  msgid ""
4343
  "DB Table Prefix Name change completed. Click the Load|Refresh Table button "
4344
  "to load/refresh the DB Table Names & Character Length Table if you would "
4345
  "like to check the new DB Table Prefix Name Changes."
4346
  msgstr ""
4347
 
4348
+ #: admin/db-backup-security/db-backup-security.php:1521
4349
  msgid ""
4350
  "Click the Update Site User Roles button to complete the DB Table Prefix Name "
4351
  "change."
4352
  msgstr ""
4353
 
4354
+ #: admin/db-backup-security/db-backup-security.php:1539
4355
  msgid "Randomly Generated DB Table Prefix"
4356
  msgstr ""
4357
 
4358
+ #: admin/db-backup-security/db-backup-security.php:1576
4359
  msgid ""
4360
  "DB Table Prefix Name change completed. Click the Load|Refresh Table button "
4361
  "to load/refresh the DB Table Names & Character Length Table if you would "
4364
  "new DB Table names."
4365
  msgstr ""
4366
 
4367
+ #: admin/db-backup-security/db-backup-security.php:1588
4368
  msgid ""
4369
  "This button must be clicked AFTER clicking the Change DB Table Prefix button "
4370
  "above."
4371
  msgstr ""
4372
 
4373
+ #: admin/db-backup-security/db-backup-security.php:1615
4374
  msgid "Length"
4375
  msgstr ""
4376
 
4377
+ #: admin/db-backup-security/db-backup-security.php:1639
4378
  msgid "DB Table Name|Column"
4379
  msgstr ""
4380
 
4381
+ #: admin/db-backup-security/db-backup-security.php:1640
4382
  msgid "Other Prefix Changes"
4383
  msgstr ""
4384
 
4385
+ #: admin/db-backup-security/db-backup-security.php:1697
4386
  msgid "DB Table Names & Character Length Table"
4387
  msgstr ""
4388
 
4389
+ #: admin/db-backup-security/db-backup-security.php:1698
4390
  msgid ""
4391
  "Displays your Current DB Table Names & Length Including The DB Table Prefix"
4392
  msgstr ""
4393
 
4394
+ #: admin/db-backup-security/db-backup-security.php:1743
4395
  #: admin/mscan/mscan.php:3531 admin/theme-skin/theme-skin.php:237
4396
  msgid "BPS Pro Features & Version Release Dates"
4397
  msgstr ""
4398
 
4399
+ #: admin/db-backup-security/db-backup-security.php:1744
4400
  #: admin/mscan/mscan.php:3532 admin/theme-skin/theme-skin.php:238
4401
  msgid "Video Tutorials"
4402
  msgstr ""
4403
 
4404
+ #: admin/db-backup-security/db-backup-security.php:1745
4405
  msgid "DB Backup & Security Guide & Troubleshooting"
4406
  msgstr ""
4407
 
4850
  msgid "Send Email Alerts for Active Theme Only"
4851
  msgstr ""
4852
 
4853
+ #: admin/htaccess/bps-mu-tools.php:502
4854
  msgid "WordPress Automatic Update Help Forum Topic"
4855
  msgstr ""
4856
 
4887
  msgstr ""
4888
 
4889
  #: admin/includes/admin.php:418 admin/includes/admin.php:440
4890
+ #: admin/theme-skin/theme-skin.php:36 admin/theme-skin/theme-skin.php:65
4891
+ #: admin/theme-skin/theme-skin.php:79 admin/theme-skin/theme-skin.php:82
4892
  msgid "UI|UX Options"
4893
  msgstr ""
4894
 
5733
 
5734
  #: admin/login/lsm-help-text.php:10
5735
  msgid ""
5736
+ "Login Security Email Alert and Log file option settings are on the Alerts|"
5737
+ "Logs|Email Options page."
5738
  msgstr ""
5739
 
5740
  #: admin/login/lsm-help-text.php:10
5887
  "be displayed. "
5888
  msgstr ""
5889
 
5890
+ #: admin/login/lsm-help-text.php:10 admin/maintenance/maintenance.php:582
5891
  #: includes/hud-dismiss-functions.php:356
5892
  #: includes/hud-dismiss-functions.php:400
5893
  msgid "CAUTION: "
6601
  "Forms/pages or use the existing default FSP message."
6602
  msgstr ""
6603
 
6604
+ #: admin/maintenance/maintenance.php:213 admin/maintenance/maintenance.php:2169
6605
  msgid "Maintenance Mode Guide"
6606
  msgstr ""
6607
 
6621
  "the top of this Question Mark help window."
6622
  msgstr ""
6623
 
6624
+ #: admin/maintenance/maintenance.php:215 admin/maintenance/maintenance.php:546
6625
  msgid ""
6626
  "Maintenance Mode Text, CSS Style Code, Images, Videos Displayed To Website "
6627
  "Visitors:"
6652
  "off Maintenance Mode when the Countdown Timer reaches 0/has completed."
6653
  msgstr ""
6654
 
6655
+ #: admin/maintenance/maintenance.php:215 admin/maintenance/maintenance.php:561
6656
  msgid "Countdown Timer Text Color:"
6657
  msgstr ""
6658
 
6660
  msgid "Select the text color for the Countdown Timer."
6661
  msgstr ""
6662
 
6663
+ #: admin/maintenance/maintenance.php:215 admin/maintenance/maintenance.php:569
6664
  msgid "Maintenance Mode Time (in Minutes):"
6665
  msgstr ""
6666
 
6714
  "your WordPress Dashboard."
6715
  msgstr ""
6716
 
6717
+ #: admin/maintenance/maintenance.php:215 admin/maintenance/maintenance.php:593
6718
  msgid "Maintenance Mode IP Address Whitelist Text Box:"
6719
  msgstr ""
6720
 
6736
  "octets or your current IP address to whitelist your IP address."
6737
  msgstr ""
6738
 
6739
+ #: admin/maintenance/maintenance.php:215 admin/maintenance/maintenance.php:600
6740
  msgid "Background Images:"
6741
  msgstr ""
6742
 
6747
  "your design/color scheme preference."
6748
  msgstr ""
6749
 
6750
+ #: admin/maintenance/maintenance.php:215 admin/maintenance/maintenance.php:625
6751
  msgid "Center Images:"
6752
  msgstr ""
6753
 
6758
  "your design/color scheme preference."
6759
  msgstr ""
6760
 
6761
+ #: admin/maintenance/maintenance.php:215 admin/maintenance/maintenance.php:645
6762
  msgid "Background Colors (If not using a Background Image):"
6763
  msgstr ""
6764
 
6776
  msgid "Check this checkbox to display the website visitor's IP addresses."
6777
  msgstr ""
6778
 
6779
+ #: admin/maintenance/maintenance.php:215 admin/maintenance/maintenance.php:655
6780
  msgid "Display Admin|Login Link"
6781
  msgstr ""
6782
 
6958
  "Error: You did not enter anything in the Maintenance Mode Time Text Box."
6959
  msgstr ""
6960
 
6961
+ #: admin/maintenance/maintenance.php:272 admin/maintenance/maintenance.php:806
6962
+ #: admin/maintenance/maintenance.php:1015
6963
  msgid ""
6964
  "Error: You did not enter an IP Address in the Maintenance Mode IP Address "
6965
  "Whitelist Text Box."
6997
  "security/admin/htaccess/ master folder. If this is not the problem "
6998
  msgstr ""
6999
 
7000
+ #: admin/maintenance/maintenance.php:498 admin/maintenance/maintenance.php:505
7001
+ #: admin/maintenance/maintenance.php:512
7002
  msgid "Your Current IP Address: "
7003
  msgstr ""
7004
 
7005
+ #: admin/maintenance/maintenance.php:498 admin/maintenance/maintenance.php:505
7006
+ #: admin/maintenance/maintenance.php:512
7007
  msgid "Recommended IP Address: "
7008
  msgstr ""
7009
 
7010
+ #: admin/maintenance/maintenance.php:543
7011
  msgid "MMode Editor"
7012
  msgstr ""
7013
 
7014
+ #: admin/maintenance/maintenance.php:547
7015
  msgid ""
7016
  "Click the Maintenance Mode Guide link in the Question Mark help button above "
7017
  "for CSS Code, Image & Video Embed examples."
7018
  msgstr ""
7019
 
7020
+ #: admin/maintenance/maintenance.php:556
7021
  msgid "MMode Option Settings"
7022
  msgstr ""
7023
 
7024
+ #: admin/maintenance/maintenance.php:559
7025
  msgid "Enable Countdown Timer"
7026
  msgstr ""
7027
 
7028
+ #: admin/maintenance/maintenance.php:563
7029
  msgid "LCD|Lime Green"
7030
  msgstr ""
7031
 
7032
+ #: admin/maintenance/maintenance.php:564 admin/maintenance/maintenance.php:648
7033
  msgid "White"
7034
  msgstr ""
7035
 
7036
+ #: admin/maintenance/maintenance.php:565
7037
  msgid "Silver"
7038
  msgstr ""
7039
 
7040
+ #: admin/maintenance/maintenance.php:566 admin/maintenance/maintenance.php:650
7041
  msgid "Gray"
7042
  msgstr ""
7043
 
7044
+ #: admin/maintenance/maintenance.php:570 admin/maintenance/maintenance.php:574
7045
  msgid "Example: 10 = 10 minutes, 180 = 3 hours, 1440 = 24 hours."
7046
  msgstr ""
7047
 
7048
+ #: admin/maintenance/maintenance.php:573
7049
  msgid "Header Retry-After (Enter the same time as above):"
7050
  msgstr ""
7051
 
7052
+ #: admin/maintenance/maintenance.php:577
7053
  msgid "Enable FrontEnd Maintenance Mode"
7054
  msgstr ""
7055
 
7056
+ #: admin/maintenance/maintenance.php:582
7057
  msgid ""
7058
  "You MUST enter Your Current IP Address or the Recommended IP Address if you "
7059
  "Enable BackEnd Maintenance Mode or you will be locked out of your WordPress "
7060
  "Dashboard."
7061
  msgstr ""
7062
 
7063
+ #: admin/maintenance/maintenance.php:584
7064
  msgid "Enable BackEnd Maintenance Mode "
7065
  msgstr ""
7066
 
7067
+ #: admin/maintenance/maintenance.php:588
7068
  msgid ""
7069
  "Enter The IP address or addresses that can view your website normally (not "
7070
  "in Maintenance Mode).<br><br>Enter multiple IP addresses separated by a "
7073
  "ffff:6463:584d, 0:0:0:0:0:ffff:c842:372c"
7074
  msgstr ""
7075
 
7076
+ #: admin/maintenance/maintenance.php:602
7077
  msgid "No Background Image"
7078
  msgstr ""
7079
 
7080
+ #: admin/maintenance/maintenance.php:603
7081
  msgid "Black Honeycomb Large"
7082
  msgstr ""
7083
 
7084
+ #: admin/maintenance/maintenance.php:604
7085
  msgid "Black Honeycomb Large Grey Line"
7086
  msgstr ""
7087
 
7088
+ #: admin/maintenance/maintenance.php:605
7089
  msgid "Black Mesh Small"
7090
  msgstr ""
7091
 
7092
+ #: admin/maintenance/maintenance.php:606
7093
  msgid "Black Mesh Small Grey Line"
7094
  msgstr ""
7095
 
7096
+ #: admin/maintenance/maintenance.php:607
7097
  msgid "Blue Honeycomb Large"
7098
  msgstr ""
7099
 
7100
+ #: admin/maintenance/maintenance.php:608
7101
  msgid "Blue Mesh Small"
7102
  msgstr ""
7103
 
7104
+ #: admin/maintenance/maintenance.php:609
7105
  msgid "Brown Honeycomb Large"
7106
  msgstr ""
7107
 
7108
+ #: admin/maintenance/maintenance.php:610
7109
  msgid "Brown Mesh Small"
7110
  msgstr ""
7111
 
7112
+ #: admin/maintenance/maintenance.php:611
7113
  msgid "Green Honeycomb Large"
7114
  msgstr ""
7115
 
7116
+ #: admin/maintenance/maintenance.php:612
7117
  msgid "Green Mesh Small"
7118
  msgstr ""
7119
 
7120
+ #: admin/maintenance/maintenance.php:613
7121
  msgid "Gray Honeycomb Large"
7122
  msgstr ""
7123
 
7124
+ #: admin/maintenance/maintenance.php:614
7125
  msgid "Gray Mesh Small"
7126
  msgstr ""
7127
 
7128
+ #: admin/maintenance/maintenance.php:615
7129
  msgid "Orange Honeycomb Large"
7130
  msgstr ""
7131
 
7132
+ #: admin/maintenance/maintenance.php:616
7133
  msgid "Orange Mesh Small"
7134
  msgstr ""
7135
 
7136
+ #: admin/maintenance/maintenance.php:617
7137
  msgid "Purple Honeycomb Large"
7138
  msgstr ""
7139
 
7140
+ #: admin/maintenance/maintenance.php:618
7141
  msgid "Purple Mesh Small"
7142
  msgstr ""
7143
 
7144
+ #: admin/maintenance/maintenance.php:619
7145
  msgid "Red|Burgundy Honeycomb Large"
7146
  msgstr ""
7147
 
7148
+ #: admin/maintenance/maintenance.php:620
7149
  msgid "Red|Burgundy Mesh Small"
7150
  msgstr ""
7151
 
7152
+ #: admin/maintenance/maintenance.php:621
7153
  msgid "Yellow Honeycomb Large"
7154
  msgstr ""
7155
 
7156
+ #: admin/maintenance/maintenance.php:622
7157
  msgid "Yellow Mesh Small"
7158
  msgstr ""
7159
 
7160
+ #: admin/maintenance/maintenance.php:627
7161
  msgid "No Center Image"
7162
  msgstr ""
7163
 
7164
+ #: admin/maintenance/maintenance.php:628
7165
  msgid "Basic Black"
7166
  msgstr ""
7167
 
7168
+ #: admin/maintenance/maintenance.php:629
7169
  msgid "Black Veins"
7170
  msgstr ""
7171
 
7172
+ #: admin/maintenance/maintenance.php:630
7173
  msgid "Blue Glass"
7174
  msgstr ""
7175
 
7176
+ #: admin/maintenance/maintenance.php:631
7177
  msgid "Brushed Metal Stamped"
7178
  msgstr ""
7179
 
7180
+ #: admin/maintenance/maintenance.php:632
7181
  msgid "Chrome"
7182
  msgstr ""
7183
 
7184
+ #: admin/maintenance/maintenance.php:633
7185
  msgid "Chrome Slick"
7186
  msgstr ""
7187
 
7188
+ #: admin/maintenance/maintenance.php:634
7189
  msgid "Fire"
7190
  msgstr ""
7191
 
7192
+ #: admin/maintenance/maintenance.php:635
7193
  msgid "Gun Metal"
7194
  msgstr ""
7195
 
7196
+ #: admin/maintenance/maintenance.php:636
7197
  msgid "Mercury"
7198
  msgstr ""
7199
 
7200
+ #: admin/maintenance/maintenance.php:637
7201
  msgid "Smoke"
7202
  msgstr ""
7203
 
7204
+ #: admin/maintenance/maintenance.php:638
7205
  msgid "Striped Cone"
7206
  msgstr ""
7207
 
7208
+ #: admin/maintenance/maintenance.php:639
7209
  msgid "Swamp Bevel"
7210
  msgstr ""
7211
 
7212
+ #: admin/maintenance/maintenance.php:640
7213
  msgid "Toy"
7214
  msgstr ""
7215
 
7216
+ #: admin/maintenance/maintenance.php:641
7217
  msgid "Water Reflection"
7218
  msgstr ""
7219
 
7220
+ #: admin/maintenance/maintenance.php:642
7221
  msgid "Wood Grain"
7222
  msgstr ""
7223
 
7224
+ #: admin/maintenance/maintenance.php:647
7225
  msgid "No Background Color"
7226
  msgstr ""
7227
 
7228
+ #: admin/maintenance/maintenance.php:649
7229
  msgid "Black"
7230
  msgstr ""
7231
 
7232
+ #: admin/maintenance/maintenance.php:653
7233
  msgid "Display Visitor IP Address"
7234
  msgstr ""
7235
 
7236
+ #: admin/maintenance/maintenance.php:657
7237
  msgid "Display Dashboard Reminder Message"
7238
  msgstr ""
7239
 
7240
+ #: admin/maintenance/maintenance.php:659
7241
  msgid "Enable Visitor Logging"
7242
  msgstr ""
7243
 
7244
+ #: admin/maintenance/maintenance.php:661
7245
  msgid "Send Email when Countdown Timer has completed"
7246
  msgstr ""
7247
 
7248
+ #: admin/maintenance/maintenance.php:663
7249
  msgid "Send Countdown Timer Email To:"
7250
  msgstr ""
7251
 
7252
+ #: admin/maintenance/maintenance.php:665
7253
  msgid "Send Countdown Timer Email From:"
7254
  msgstr ""
7255
 
7256
+ #: admin/maintenance/maintenance.php:667
7257
  msgid "Send Countdown Timer Email Cc:"
7258
  msgstr ""
7259
 
7260
+ #: admin/maintenance/maintenance.php:669
7261
  msgid "Send Countdown Timer Email Bcc:"
7262
  msgstr ""
7263
 
7264
+ #: admin/maintenance/maintenance.php:674
7265
  msgid "MMode Network|Multisite Options"
7266
  msgstr ""
7267
 
7268
+ #: admin/maintenance/maintenance.php:677
7269
  msgid "Network|Multisite Primary Site Options ONLY"
7270
  msgstr ""
7271
 
7272
+ #: admin/maintenance/maintenance.php:681
7273
  msgid ""
7274
  "Click the Maintenance Mode Question Mark help button for the steps to use "
7275
  "these special options:"
7276
  msgstr ""
7277
 
7278
+ #: admin/maintenance/maintenance.php:682
7279
  msgid "Put The Primary Site And All Subsites In Maintenance Mode"
7280
  msgstr ""
7281
 
7282
+ #: admin/maintenance/maintenance.php:684
7283
  msgid "Put All Subsites In Maintenance Mode, But Not The Primary Site"
7284
  msgstr ""
7285
 
7286
+ #: admin/maintenance/maintenance.php:692
7287
  msgid ""
7288
  "Clicking OK Saves your Options/Settings to your Database and also creates "
7289
  "your Maintenance Mode page. Click the Preview button to preview your "
7291
  "Turn On button to enable Maintenance Mode on your website."
7292
  msgstr ""
7293
 
7294
+ #: admin/maintenance/maintenance.php:817 admin/maintenance/maintenance.php:1026
7295
  msgid ""
7296
  "IP Address Format Error: You have entered multiple IP Addresses using an "
7297
  "incorrect Format."
7298
  msgstr ""
7299
 
7300
+ #: admin/maintenance/maintenance.php:817 admin/maintenance/maintenance.php:1026
7301
  msgid ""
7302
  "The correct IP Address Format is: IP Address comma single space. Example: "
7303
  "100.99.88.77, 200.66.55.44, 44.33.22.1 or 100.99.88., 200.66.55., 44.33.22. "
7304
  "if you are using the recommended 3 octet IP addresses."
7305
  msgstr ""
7306
 
7307
+ #: admin/maintenance/maintenance.php:817 admin/maintenance/maintenance.php:1026
7308
  msgid ""
7309
  "Correct the IP Address Format and click the Save Options button again. If "
7310
  "you have an IPv6 IP address use the same general format as an IPv4 IP "
7311
  "address - comma single space."
7312
  msgstr ""
7313
 
7314
+ #: admin/maintenance/maintenance.php:868 admin/maintenance/maintenance.php:1077
7315
+ #: admin/maintenance/maintenance.php:1179
7316
  msgid "FrontEnd Maintenance Mode has been Turned On."
7317
  msgstr ""
7318
 
7319
+ #: admin/maintenance/maintenance.php:886 admin/maintenance/maintenance.php:1203
7320
+ #: admin/maintenance/maintenance.php:1721
7321
+ #: admin/maintenance/maintenance.php:1852
7322
+ #: admin/maintenance/maintenance.php:2046
7323
  msgid "htaccess Files Disabled: BackEnd Maintenance Mode is disabled."
7324
  msgstr ""
7325
 
7326
+ #: admin/maintenance/maintenance.php:961 admin/maintenance/maintenance.php:1280
7327
  msgid "BackEnd Maintenance Mode has been Turned On."
7328
  msgstr ""
7329
 
7330
+ #: admin/maintenance/maintenance.php:1296
7331
+ #: admin/maintenance/maintenance.php:2098
7332
  msgid ""
7333
  "Error: You have not saved your option settings yet. Click the Save Options "
7334
  "button."
7335
  msgstr ""
7336
 
7337
+ #: admin/maintenance/maintenance.php:1374
7338
  msgid ""
7339
  "Error: Unable to get/find the site root index.php file for this GWIOD - "
7340
  "Giving WordPress Its Own Directory - website."
7341
  msgstr ""
7342
 
7343
+ #: admin/maintenance/maintenance.php:1374
7344
  msgid "GWIOD Site Root index.php File Path Checked: "
7345
  msgstr ""
7346
 
7347
+ #: admin/maintenance/maintenance.php:1374
7348
  msgid ""
7349
  "BPS Maintenance Mode will not work correctly with your WordPress GWIOD "
7350
  "setup. Try another WordPress Maintenance Mode plugin."
7351
  msgstr ""
7352
 
7353
+ #: admin/maintenance/maintenance.php:1443
7354
  msgid ""
7355
  "Error: Unable to get/find the site root index.php file for this Network "
7356
  "GWIOD - Giving WordPress Its Own Directory - website."
7357
  msgstr ""
7358
 
7359
+ #: admin/maintenance/maintenance.php:1443
7360
  msgid "Network GWIOD Site Root index.php File Path Checked: "
7361
  msgstr ""
7362
 
7363
+ #: admin/maintenance/maintenance.php:1443
7364
  msgid ""
7365
  "Please copy this error message and send it in an email to info@ait-pro.com "
7366
  "for assistance."
7367
  msgstr ""
7368
 
7369
+ #: admin/maintenance/maintenance.php:1529
7370
+ #: admin/maintenance/maintenance.php:1655
7371
+ #: admin/maintenance/maintenance.php:1815
7372
+ #: admin/maintenance/maintenance.php:1996
7373
  msgid "FrontEnd Maintenance Mode has been Turned Off."
7374
  msgstr ""
7375
 
7376
+ #: admin/maintenance/maintenance.php:1761
7377
+ #: admin/maintenance/maintenance.php:1888
7378
+ #: admin/maintenance/maintenance.php:2082
7379
  msgid "BackEnd Maintenance Mode has been Turned Off."
7380
  msgstr ""
7381
 
8331
  msgstr ""
8332
 
8333
  #: admin/mscan/mscan.php:1565 admin/mscan/mscan.php:2580
8334
+ #: admin/mscan/mscan.php:3406 admin/system-info/system-info.php:1012
8335
+ #: admin/system-info/system-info.php:1078
8336
  msgid "File Path"
8337
  msgstr ""
8338
 
8936
 
8937
  #: admin/security-log/security-log.php:234
8938
  msgid ""
8939
+ "Security Log Email Alert and Log file option settings are on the Alerts|Logs|"
8940
+ "Email Options page."
8941
  msgstr ""
8942
 
8943
  #: admin/security-log/security-log.php:234
9765
  msgid "A Zend Extension is Not Loaded"
9766
  msgstr ""
9767
 
9768
+ #: admin/system-info/system-info.php:443 admin/system-info/system-info.php:450
9769
+ #: admin/system-info/system-info.php:462 admin/system-info/system-info.php:468
9770
  msgid "OPcache"
9771
  msgstr ""
9772
 
9773
  #: admin/system-info/system-info.php:444
9774
+ msgid ""
9775
+ "opcache_get_status and/or opcache_get_configuration functions are disabled."
9776
+ msgstr ""
9777
+
9778
+ #: admin/system-info/system-info.php:455
9779
  msgid "is Enabled"
9780
  msgstr ""
9781
 
9782
+ #: admin/system-info/system-info.php:458 admin/system-info/system-info.php:463
9783
  msgid "OPcache is Not Enabled"
9784
  msgstr ""
9785
 
9786
+ #: admin/system-info/system-info.php:469
9787
+ msgid "opcache.restrict_api directive is in use."
9788
+ msgstr ""
9789
+
9790
+ #: admin/system-info/system-info.php:473
9791
  msgid "ionCube Loader"
9792
  msgstr ""
9793
 
9794
+ #: admin/system-info/system-info.php:475
9795
  msgid "ionCube Loader Extension is Loaded "
9796
  msgstr ""
9797
 
9798
+ #: admin/system-info/system-info.php:475 admin/system-info/system-info.php:707
9799
+ #: admin/system-info/system-info.php:719
9800
  msgid "Version: "
9801
  msgstr ""
9802
 
9803
+ #: admin/system-info/system-info.php:477
9804
  msgid "ionCube Loader Extension is Not Loaded"
9805
  msgstr ""
9806
 
9807
+ #: admin/system-info/system-info.php:480
9808
  msgid "Suhosin"
9809
  msgstr ""
9810
 
9811
+ #: admin/system-info/system-info.php:484
9812
  msgid "The Suhosin-Patch is installed"
9813
  msgstr ""
9814
 
9815
+ #: admin/system-info/system-info.php:487
9816
  msgid "Suhosin-Extension is Loaded"
9817
  msgstr ""
9818
 
9819
+ #: admin/system-info/system-info.php:489
9820
  msgid "Suhosin is Not Installed|Loaded"
9821
  msgstr ""
9822
 
9823
+ #: admin/system-info/system-info.php:492
9824
  msgid "APC"
9825
  msgstr ""
9826
 
9827
+ #: admin/system-info/system-info.php:494
9828
  msgid "APC Extension is Loaded and Enabled"
9829
  msgstr ""
9830
 
9831
+ #: admin/system-info/system-info.php:497
9832
  msgid "APC Extension is Loaded but Not Enabled"
9833
  msgstr ""
9834
 
9835
+ #: admin/system-info/system-info.php:499
9836
  msgid "APC Extension is Not Loaded"
9837
  msgstr ""
9838
 
9839
+ #: admin/system-info/system-info.php:502
9840
  msgid "eAccelerator"
9841
  msgstr ""
9842
 
9843
+ #: admin/system-info/system-info.php:504
9844
  msgid "eAccelerator Extension is Loaded and Enabled"
9845
  msgstr ""
9846
 
9847
+ #: admin/system-info/system-info.php:507
9848
  msgid "eAccelerator Extension is Loaded but Not Enabled"
9849
  msgstr ""
9850
 
9851
+ #: admin/system-info/system-info.php:509
9852
  msgid "eAccelerator Extension is Not Loaded"
9853
  msgstr ""
9854
 
9855
+ #: admin/system-info/system-info.php:512
9856
  msgid "XCache"
9857
  msgstr ""
9858
 
9859
+ #: admin/system-info/system-info.php:514
9860
  msgid "XCache Extension is Loaded and Enabled"
9861
  msgstr ""
9862
 
9863
+ #: admin/system-info/system-info.php:517
9864
  msgid "XCache Extension is Loaded but Not Enabled"
9865
  msgstr ""
9866
 
9867
+ #: admin/system-info/system-info.php:519
9868
  msgid "XCache Extension is Not Loaded"
9869
  msgstr ""
9870
 
9871
+ #: admin/system-info/system-info.php:522
9872
  msgid "Varnish"
9873
  msgstr ""
9874
 
9875
+ #: admin/system-info/system-info.php:524
9876
  msgid "Varnish Extension is Loaded"
9877
  msgstr ""
9878
 
9879
+ #: admin/system-info/system-info.php:526
9880
  msgid "Varnish Extension is Not Loaded"
9881
  msgstr ""
9882
 
9883
+ #: admin/system-info/system-info.php:529
9884
  msgid "Memcache"
9885
  msgstr ""
9886
 
9887
+ #: admin/system-info/system-info.php:531
9888
  msgid "Memcache Extension is Loaded"
9889
  msgstr ""
9890
 
9891
+ #: admin/system-info/system-info.php:533
9892
  msgid "Memcache Extension is Not Loaded"
9893
  msgstr ""
9894
 
9895
+ #: admin/system-info/system-info.php:536
9896
  msgid "Memcached"
9897
  msgstr ""
9898
 
9899
+ #: admin/system-info/system-info.php:538
9900
  msgid "Memcached Extension is Loaded"
9901
  msgstr ""
9902
 
9903
+ #: admin/system-info/system-info.php:540
9904
  msgid "Memcached Extension is Not Loaded"
9905
  msgstr ""
9906
 
9907
+ #: admin/system-info/system-info.php:553
9908
  msgid "DB Info is not displayed on Network/Multisite subsites"
9909
  msgstr ""
9910
 
9911
+ #: admin/system-info/system-info.php:574 includes/general-functions.php:283
9912
  msgid "Not Set"
9913
  msgstr ""
9914
 
9915
+ #: admin/system-info/system-info.php:605
9916
+ msgid "DB Version: "
9917
+ msgstr ""
9918
+
9919
+ #: admin/system-info/system-info.php:606
9920
+ msgid "DB Client Version: "
9921
+ msgstr ""
9922
+
9923
+ #: admin/system-info/system-info.php:607
9924
+ msgid "DB Hostname (Local): "
9925
+ msgstr ""
9926
+
9927
+ #: admin/system-info/system-info.php:608
9928
+ msgid "DB Hostname (Server): "
9929
+ msgstr ""
9930
+
9931
+ #: admin/system-info/system-info.php:609
9932
+ msgid "DB Hostname IP (Server): "
9933
+ msgstr ""
9934
+
9935
+ #: admin/system-info/system-info.php:610
9936
+ msgid "DB Storage Engine: "
9937
+ msgstr ""
9938
+
9939
+ #: admin/system-info/system-info.php:611
9940
+ msgid "DB Connect Timeout: "
9941
  msgstr ""
9942
 
9943
+ #: admin/system-info/system-info.php:611
9944
+ msgid " seconds"
9945
  msgstr ""
9946
 
9947
+ #: admin/system-info/system-info.php:612
9948
+ msgid "DB Port: "
9949
  msgstr ""
9950
 
9951
+ #: admin/system-info/system-info.php:613
9952
+ msgid "DB Name: "
9953
  msgstr ""
9954
 
9955
+ #: admin/system-info/system-info.php:614
9956
  msgid "DB Table Prefix: "
9957
  msgstr ""
9958
 
9959
+ #: admin/system-info/system-info.php:615
9960
  msgid "DB Charset: "
9961
  msgstr ""
9962
 
9963
+ #: admin/system-info/system-info.php:616
9964
  msgid "DB Collation: "
9965
  msgstr ""
9966
 
9967
+ #: admin/system-info/system-info.php:617
9968
  msgid "SQL Mode: "
9969
  msgstr ""
9970
 
9971
+ #: admin/system-info/system-info.php:623 admin/system-info/system-info.php:626
9972
  msgid "MySQL Extension: "
9973
  msgstr ""
9974
 
9975
+ #: admin/system-info/system-info.php:623 admin/system-info/system-info.php:631
9976
  msgid "Installed|Enabled"
9977
  msgstr ""
9978
 
9979
+ #: admin/system-info/system-info.php:626 admin/system-info/system-info.php:634
9980
+ msgid "Not Installed|Enabled"
9981
  msgstr ""
9982
 
9983
+ #: admin/system-info/system-info.php:631 admin/system-info/system-info.php:634
9984
  msgid "MySQLi Extension: "
9985
  msgstr ""
9986
 
9987
+ #: admin/system-info/system-info.php:641
9988
  msgid "WordPress Installation Folder"
9989
  msgstr ""
9990
 
9991
+ #: admin/system-info/system-info.php:644
9992
  msgid "WordPress Installation Type"
9993
  msgstr ""
9994
 
9995
+ #: admin/system-info/system-info.php:646
9996
  msgid "Standard|GWIOD Site Type"
9997
  msgstr ""
9998
 
9999
+ #: admin/system-info/system-info.php:648
10000
  msgid "Network|Multisite"
10001
  msgstr ""
10002
 
10003
+ #: admin/system-info/system-info.php:650
10004
  msgid "BuddyPress"
10005
  msgstr ""
10006
 
10007
+ #: admin/system-info/system-info.php:652
10008
  msgid "bbPress"
10009
  msgstr ""
10010
 
10011
+ #: admin/system-info/system-info.php:654
10012
  msgid "Plugins Folder"
10013
  msgstr ""
10014
 
10015
+ #: admin/system-info/system-info.php:658
10016
  msgid "Uploads Folder"
10017
  msgstr ""
10018
 
10019
+ #: admin/system-info/system-info.php:664
10020
  msgid "UPLOADS Constant"
10021
  msgstr ""
10022
 
10023
+ #: admin/system-info/system-info.php:668
10024
  msgid "WP Permalink Structure"
10025
  msgstr ""
10026
 
10027
+ #: admin/system-info/system-info.php:673 admin/system-info/system-info.php:675
10028
  msgid "DISABLE_WP_CRON constant"
10029
  msgstr ""
10030
 
10031
+ #: admin/system-info/system-info.php:673
10032
  msgid "Standard WP Crons are disabled on your website."
10033
  msgstr ""
10034
 
10035
+ #: admin/system-info/system-info.php:675
10036
  msgid "Standard WP Crons are not disabled on your website."
10037
  msgstr ""
10038
 
10039
+ #: admin/system-info/system-info.php:678
10040
  msgid "Total Plugins Installed"
10041
  msgstr ""
10042
 
10043
+ #: admin/system-info/system-info.php:680
10044
  msgid "Total Must-Use Plugins Installed"
10045
  msgstr ""
10046
 
10047
+ #: admin/system-info/system-info.php:682
10048
  msgid "Total Plugins Activated"
10049
  msgstr ""
10050
 
10051
+ #: admin/system-info/system-info.php:685
10052
  msgid "Total Plugins Network Activated"
10053
  msgstr ""
10054
 
10055
+ #: admin/system-info/system-info.php:691 admin/system-info/system-info.php:693
10056
  msgid "Get Plugins|Themes List"
10057
  msgstr ""
10058
 
10059
+ #: admin/system-info/system-info.php:694
10060
  msgid "This window is draggable (top) and resizable (bottom right corner)"
10061
  msgstr ""
10062
 
10063
+ #: admin/system-info/system-info.php:699
10064
  msgid "Browser Compression Supported"
10065
  msgstr ""
10066
 
10067
+ #: admin/system-info/system-info.php:702
10068
  msgid "GD Library"
10069
  msgstr ""
10070
 
10071
+ #: admin/system-info/system-info.php:707
10072
  msgid "GD Extension is Loaded - "
10073
  msgstr ""
10074
 
10075
+ #: admin/system-info/system-info.php:710
10076
  msgid "GD Extension is Not Loaded"
10077
  msgstr ""
10078
 
10079
+ #: admin/system-info/system-info.php:713
10080
  msgid "ImageMagick"
10081
  msgstr ""
10082
 
10083
+ #: admin/system-info/system-info.php:719
10084
  msgid "ImageMagick Extension is Loaded - "
10085
  msgstr ""
10086
 
10087
+ #: admin/system-info/system-info.php:722
10088
  msgid "ImageMagick Extension is Not Loaded"
10089
  msgstr ""
10090
 
10091
+ #: admin/system-info/system-info.php:737
10092
  msgid "PHP Server|PHP.ini Info"
10093
  msgstr ""
10094
 
10095
+ #: admin/system-info/system-info.php:739
10096
  msgid ""
10097
  "File|Folder Permissions (CGI or DSO)|Script Owner User ID (UID)|File Owner "
10098
  "User ID"
10099
  msgstr ""
10100
 
10101
+ #: admin/system-info/system-info.php:747
10102
  msgid "PHP Version"
10103
  msgstr ""
10104
 
10105
+ #: admin/system-info/system-info.php:748
10106
  msgid "PHP Memory Usage"
10107
  msgstr ""
10108
 
10109
+ #: admin/system-info/system-info.php:748
10110
  msgid " MB"
10111
  msgstr ""
10112
 
10113
+ #: admin/system-info/system-info.php:749
10114
  msgid "WordPress Admin Memory Limit"
10115
  msgstr ""
10116
 
10117
+ #: admin/system-info/system-info.php:752
10118
  msgid "WordPress Base Memory Limit"
10119
  msgstr ""
10120
 
10121
+ #: admin/system-info/system-info.php:764 admin/system-info/system-info.php:770
10122
+ #: admin/system-info/system-info.php:774 admin/system-info/system-info.php:778
10123
  msgid "PHP Actual Configuration Memory Limit: "
10124
  msgstr ""
10125
 
10126
+ #: admin/system-info/system-info.php:764
10127
  msgid "The Memory Limit value is not available from your Server."
10128
  msgstr ""
10129
 
10130
+ #: admin/system-info/system-info.php:775 admin/system-info/system-info.php:779
10131
  msgid ""
10132
  " Recommendation: Increase Memory Limit to at least 128M, 256M is even better."
10133
  msgstr ""
10134
 
10135
+ #: admin/system-info/system-info.php:788 admin/system-info/system-info.php:790
10136
  msgid "PHP Configuration File (php.ini)"
10137
  msgstr ""
10138
 
10139
+ #: admin/system-info/system-info.php:790
10140
  msgid "None/Not in use"
10141
  msgstr ""
10142
 
10143
+ #: admin/system-info/system-info.php:803
10144
  msgid "WP Temp Dir: "
10145
  msgstr ""
10146
 
10147
+ #: admin/system-info/system-info.php:806
10148
  msgid "The WP_TEMP_DIR constant is being used in wp-config.php file"
10149
  msgstr ""
10150
 
10151
+ #: admin/system-info/system-info.php:812 admin/system-info/system-info.php:814
10152
  msgid "PHP Temp Dir: "
10153
  msgstr ""
10154
 
10155
+ #: admin/system-info/system-info.php:814 admin/system-info/system-info.php:825
10156
+ #: admin/system-info/system-info.php:833
10157
  msgid "Not set/defined or directory is not writable"
10158
  msgstr ""
10159
 
10160
+ #: admin/system-info/system-info.php:823 admin/system-info/system-info.php:825
10161
  msgid "PHP Upload Temp Dir: "
10162
  msgstr ""
10163
 
10164
+ #: admin/system-info/system-info.php:831 admin/system-info/system-info.php:833
10165
  msgid "Session Save Path: "
10166
  msgstr ""
10167
 
10168
+ #: admin/system-info/system-info.php:838
10169
  msgid "Cycles: "
10170
  msgstr ""
10171
 
10172
+ #: admin/system-info/system-info.php:842
10173
  msgid "Garbage Collector: "
10174
  msgstr ""
10175
 
10176
+ #: admin/system-info/system-info.php:845
10177
  msgid "PHP Max Upload Size"
10178
  msgstr ""
10179
 
10180
+ #: admin/system-info/system-info.php:848
10181
  msgid "PHP Max Post Size"
10182
  msgstr ""
10183
 
10184
+ #: admin/system-info/system-info.php:851
10185
  msgid "PHP Safe Mode"
10186
  msgstr ""
10187
 
10188
+ #: admin/system-info/system-info.php:860
10189
  msgid "PHP Allow URL fopen"
10190
  msgstr ""
10191
 
10192
+ #: admin/system-info/system-info.php:868
10193
  msgid "PHP Allow URL Include"
10194
  msgstr ""
10195
 
10196
+ #: admin/system-info/system-info.php:876
10197
  msgid "PHP Display Errors"
10198
  msgstr ""
10199
 
10200
+ #: admin/system-info/system-info.php:884
10201
  msgid "PHP Display Startup Errors"
10202
  msgstr ""
10203
 
10204
+ #: admin/system-info/system-info.php:892
10205
  msgid "PHP Expose PHP"
10206
  msgstr ""
10207
 
10208
+ #: admin/system-info/system-info.php:900
10209
  msgid "PHP Register Globals"
10210
  msgstr ""
10211
 
10212
+ #: admin/system-info/system-info.php:908
10213
  msgid "PHP MySQL Allow Persistent Connections"
10214
  msgstr ""
10215
 
10216
+ #: admin/system-info/system-info.php:916
10217
  msgid "PHP Output Buffering"
10218
  msgstr ""
10219
 
10220
+ #: admin/system-info/system-info.php:924
10221
  msgid "PHP Max Script Execution Time"
10222
  msgstr ""
10223
 
10224
+ #: admin/system-info/system-info.php:927
10225
  msgid "PHP Magic Quotes GPC"
10226
  msgstr ""
10227
 
10228
+ #: admin/system-info/system-info.php:935
10229
  msgid "PHP open_basedir"
10230
  msgstr ""
10231
 
10232
+ #: admin/system-info/system-info.php:940
10233
  msgid "Off/Not in use"
10234
  msgstr ""
10235
 
10236
+ #: admin/system-info/system-info.php:942
10237
  msgid "PHP XML Support"
10238
  msgstr ""
10239
 
10240
+ #: admin/system-info/system-info.php:944 admin/system-info/system-info.php:952
10241
+ #: admin/system-info/system-info.php:960
10242
  msgid "Yes"
10243
  msgstr ""
10244
 
10245
+ #: admin/system-info/system-info.php:947 admin/system-info/system-info.php:955
10246
+ #: admin/system-info/system-info.php:963
10247
  msgid "No"
10248
  msgstr ""
10249
 
10250
+ #: admin/system-info/system-info.php:950
10251
  msgid "PHP IPTC Support"
10252
  msgstr ""
10253
 
10254
+ #: admin/system-info/system-info.php:958
10255
  msgid "PHP Exif Support"
10256
  msgstr ""
10257
 
10258
+ #: admin/system-info/system-info.php:971
10259
  msgid "PHP Disable Functions"
10260
  msgstr ""
10261
 
10262
+ #: admin/system-info/system-info.php:975
10263
  msgid "No PHP functions are disabled."
10264
  msgstr ""
10265
 
10266
+ #: admin/system-info/system-info.php:980
10267
  msgid "PHP Suhosin Function Blacklist"
10268
  msgstr ""
10269
 
10270
+ #: admin/system-info/system-info.php:984
10271
  msgid "No PHP functions are blacklisted."
10272
  msgstr ""
10273
 
10274
+ #: admin/system-info/system-info.php:1009
10275
  msgid "CGI File and Folder Permissions|Recommendations"
10276
  msgstr ""
10277
 
10278
+ #: admin/system-info/system-info.php:1012
10279
+ #: admin/system-info/system-info.php:1078
10280
  msgid "Folder Path"
10281
  msgstr ""
10282
 
10283
+ #: admin/system-info/system-info.php:1013
10284
+ #: admin/system-info/system-info.php:1079
10285
  msgid "Recommended"
10286
  msgstr ""
10287
 
10288
+ #: admin/system-info/system-info.php:1013
10289
+ #: admin/system-info/system-info.php:1014
10290
+ #: admin/system-info/system-info.php:1079
10291
+ #: admin/system-info/system-info.php:1080
10292
  msgid "Permissions"
10293
  msgstr ""
10294
 
10295
+ #: admin/system-info/system-info.php:1014
10296
+ #: admin/system-info/system-info.php:1080
10297
  msgid "Current"
10298
  msgstr ""
10299
 
10300
+ #: admin/system-info/system-info.php:1015
10301
+ #: admin/system-info/system-info.php:1081
10302
  msgid "Script Owner"
10303
  msgstr ""
10304
 
10305
+ #: admin/system-info/system-info.php:1015
10306
+ #: admin/system-info/system-info.php:1081
10307
  msgid " User ID (UID)"
10308
  msgstr ""
10309
 
10310
+ #: admin/system-info/system-info.php:1016
10311
+ #: admin/system-info/system-info.php:1082
10312
  msgid "File Owner"
10313
  msgstr ""
10314
 
10315
+ #: admin/system-info/system-info.php:1016
10316
+ #: admin/system-info/system-info.php:1082
10317
  msgid " User ID"
10318
  msgstr ""
10319
 
10320
+ #: admin/system-info/system-info.php:1075
10321
  msgid "DSO File and Folder Permissions|Recommendations"
10322
  msgstr ""
10323
 
10324
+ #: admin/system-info/system-info.php:1146
10325
  msgid "System Info Processing Completion Time: "
10326
  msgstr ""
10327
 
10328
+ #: admin/system-info/system-info.php:1186
10329
  msgid ""
10330
  "Check your website Headers or another website's Headers by making a GET "
10331
  "Request"
10332
  msgstr ""
10333
 
10334
+ #: admin/system-info/system-info.php:1203
10335
  msgid "GET Request Headers: "
10336
  msgstr ""
10337
 
10338
+ #: admin/system-info/system-info.php:1218
10339
  msgid ""
10340
  "Error: The WordPress wp_remote_get function is not available or is blocked "
10341
  "on your website/server."
10342
  msgstr ""
10343
 
10344
+ #: admin/system-info/system-info.php:1228
10345
  msgid "Enter a Website URL - Example: "
10346
  msgstr ""
10347
 
10348
+ #: admin/system-info/system-info.php:1231
10349
  msgid ""
10350
  "This Headers check makes a GET Request using the WordPress wp_remote_get "
10351
  "function."
10352
  msgstr ""
10353
 
10354
+ #: admin/system-info/system-info.php:1231
10355
  msgid ""
10356
  "You can use the Check Headers HEAD Request tool to check headers using HEAD "
10357
  "instead of GET."
10358
  msgstr ""
10359
 
 
 
 
 
 
10360
  #: admin/theme-skin/theme-skin.php:90
10361
  msgid "Inpage Status Display"
10362
  msgstr ""
11431
  #: admin/wizard/wizard-functions.php:827 admin/wizard/wizard.php:648
11432
  #: admin/wizard/wizard.php:686 admin/wizard/wizard.php:744
11433
  #: admin/wizard/wizard.php:792 admin/wizard/wizard.php:844
11434
+ #: admin/wizard/wizard.php:942 includes/general-functions.php:1093
11435
  msgid " DB Option created or updated Successfully!"
11436
  msgstr ""
11437
 
11783
  msgid "Setup Wizard Completion Time: "
11784
  msgstr ""
11785
 
11786
+ #: admin/wizard/wizard.php:1085 admin/wizard/wizard.php:1772
11787
+ #: admin/wizard/wizard.php:1775
11788
  msgid "Setup Wizard Export|Import"
11789
  msgstr ""
11790
 
11896
  "Code for these caching plugins: WP Super Cache, W3 Total Cache, Comet Cache "
11897
  "Plugin (free & Pro), WP Fastest Cache Plugin (free & Premium), LiteSpeed "
11898
  "Cache and WP Rocket. If a problem occurs with AutoFix you can turn On the "
11899
+ "AutoFix Debugger on the BPS UI|UX Options page > BPS UI|UX|AutoFix Debug "
11900
  "option to check the plugin or theme name and the BPS Custom Code text box "
11901
  "where the problem is occurring. You can also turn Off AutoFix and AutoFix "
11902
  "will not try to detect or create Custom Code whitelist rules or setup or "
12056
  "all checked and Displayed Message/Error Message: default FSP message."
12057
  msgstr ""
12058
 
12059
+ #: admin/wizard/wizard.php:1207 admin/wizard/wizard.php:1344
12060
+ msgid "Network|Multisite Sitewide GDMW Settings"
12061
+ msgstr ""
12062
+
12063
+ #: admin/wizard/wizard.php:1207
12064
+ msgid ""
12065
+ "This option is for Network|Multisite sites ONLY. This is an independent "
12066
+ "option Form that creates and saves the GDMW option setting for all Network "
12067
+ "sites when you click the Save MU GDMW Options Sitewide button. If the GDMW "
12068
+ "option setting has already been setup and saved for any Network site then "
12069
+ "that GDMW option setting will not be changed. If the GDMW option setting has "
12070
+ "not already been setup and saved for any Network site then that GDMW option "
12071
+ "setting will be created and saved with the default setting: No, which means "
12072
+ "you do not have a GDMW hosted site. Running the Pre-Installation Wizard and "
12073
+ "Setup Wizard also updates the GDMW option setting on your Primary site and "
12074
+ "all Subsites."
12075
+ msgstr ""
12076
+
12077
  #: admin/wizard/wizard.php:1221
12078
  msgid "AutoFix (AutoWhitelist|AutoSetup|AutoCleanup):"
12079
  msgstr ""
12141
  msgstr ""
12142
 
12143
  #: admin/wizard/wizard.php:1308
12144
+ msgid "Hide System Info Page"
12145
  msgstr ""
12146
 
12147
  #: admin/wizard/wizard.php:1309
12148
+ msgid "Display System Info Page"
12149
  msgstr ""
12150
 
12151
  #: admin/wizard/wizard.php:1326
12152
  msgid "Network|Multisite Sitewide JTC Anti-Spam|Anti-Hacker Settings"
12153
  msgstr ""
12154
 
12155
+ #: admin/wizard/wizard.php:1376
12156
  msgid ""
12157
  "The Zip File Download Fix option is set to On. This option should only be "
12158
  "set to On if you are unable to download these Zip files: Custom Code Export "
12160
  "htaccess file backup Zip file."
12161
  msgstr ""
12162
 
12163
+ #: admin/wizard/wizard.php:1389
12164
  msgid "The Zip File Download Fix option is set to Off."
12165
  msgstr ""
12166
 
12167
+ #: admin/wizard/wizard.php:1413
12168
  msgid "Multisite Hide|Display System Info Page for Subsites option saved."
12169
  msgstr ""
12170
 
12171
+ #: admin/wizard/wizard.php:1428
12172
  msgid ""
12173
  "Error: Your Network site exceeds the default WP criteria for a large network "
12174
  "site. Either you have more than 10,000 users or more than 10,000 sites. "
12176
  "org for assistance."
12177
  msgstr ""
12178
 
12179
+ #: admin/wizard/wizard.php:1435
12180
  msgid " LSM DB Options created or updated Successfully!"
12181
  msgstr ""
12182
 
12183
+ #: admin/wizard/wizard.php:1508 admin/wizard/wizard.php:1631
12184
+ #: admin/wizard/wizard.php:1705
12185
  msgid ""
12186
  "Error: Your Network site exceeds the default WP criteria for a large network "
12187
  "site. Either you have more than 10,000 users or more than 10,000 sites. "
12189
  "line: Setup Wizard Options Large Network Site Help."
12190
  msgstr ""
12191
 
12192
+ #: admin/wizard/wizard.php:1515
12193
  msgid " JTC DB Options created or updated Successfully!"
12194
  msgstr ""
12195
 
12196
+ #: admin/wizard/wizard.php:1638
12197
  msgid " FSP DB Options created or updated Successfully!"
12198
  msgstr ""
12199
 
12200
+ #: admin/wizard/wizard.php:1712
12201
+ msgid " GDMW DB Options created or updated Successfully!"
12202
+ msgstr ""
12203
+
12204
+ #: admin/wizard/wizard.php:1789
12205
  msgid "GDMW Hosting"
12206
  msgstr ""
12207
 
12208
+ #: admin/wizard/wizard.php:1791
12209
  msgid "Setup Wizard Export"
12210
  msgstr ""
12211
 
12212
+ #: admin/wizard/wizard.php:1791
12213
  msgid ""
12214
  "The Setup Wizard Export feature exports all BPS plugin option settings "
12215
  "except for website specific settings that need to be setup by running the "
12217
  "new website. The name of the exported zip file is: bps-settings-export.zip"
12218
  msgstr ""
12219
 
12220
+ #: admin/wizard/wizard.php:1791
12221
  msgid "Setup Wizard Import"
12222
  msgstr ""
12223
 
12224
+ #: admin/wizard/wizard.php:1791
12225
  msgid ""
12226
  "To import BPS plugin option settings click the Choose File button, navigate "
12227
  "to where you downloaded/saved the bps-settings-export.zip file on your "
12228
  "computer, select the zip file and click the Open button. Then click the "
12229
  "Import button. IMPORTANT: Run the Setup Wizard after the import completes. "
12230
+ "After running the Setup Wizard go to the BPS Security > htaccess File "
12231
+ "Options > Custom Code tab page and check all of your custom htaccess code "
12232
+ "for any website specific custom htaccess code. Example: If you find any "
12233
+ "custom htaccess code that has a website URL for your other website that you "
12234
  "exported BPS plugin settings from, then either edit that custom htaccess "
12235
  "code or remove it from BPS Custom Code."
12236
  msgstr ""
12237
 
12238
+ #: admin/wizard/wizard.php:1791
12239
  msgid "Network|Multisite Help Info"
12240
  msgstr ""
12241
 
12242
+ #: admin/wizard/wizard.php:1791
12243
  msgid ""
12244
  "Setup Wizard Export|Import works for Network|Multisite site types, but only "
12245
  "the Primary site's BPS plugin option settings are exported and imported. BPS "
12251
  "option settings from the Primary site to all Subsites."
12252
  msgstr ""
12253
 
12254
+ #: admin/wizard/wizard.php:1798
12255
  msgid ""
12256
  "Clicking OK will Import BPS plugin settings from the bps-settings-export.zip "
12257
  "file on your computer."
12258
  msgstr ""
12259
 
12260
+ #: admin/wizard/wizard.php:1798
12261
  msgid "Click OK to Import BPS plugin settings or click Cancel."
12262
  msgstr ""
12263
 
12264
+ #: admin/wizard/wizard.php:1807
12265
  msgid ""
12266
  "Clicking OK will Export your BPS plugin settings into the bps-settings-"
12267
  "export.zip file, which you can then download to your computer by clicking "
12269
  "message."
12270
  msgstr ""
12271
 
12272
+ #: admin/wizard/wizard.php:1807
12273
  msgid "Click OK to Export BPS plugin settings or click Cancel."
12274
  msgstr ""
12275
 
12276
+ #: admin/wizard/wizard.php:1943
12277
  msgid ""
12278
  "BPS plugin option settings exported successfully. Click the Download Zip "
12279
  "Export button to download the Setup Wizard Export zip file: bps-settings-"
12280
  "export.zip."
12281
  msgstr ""
12282
 
12283
+ #: admin/wizard/wizard.php:1943
12284
  msgid ""
12285
  " and select the Zip File Download Fix On setting for the Zile File Download "
12286
  "Fix option. You should now be able to download the bps-settings-export.zip "
12287
  "file."
12288
  msgstr ""
12289
 
12290
+ #: admin/wizard/wizard.php:2123 admin/wizard/wizard.php:2155
12291
  msgid "BPS plugin settings imported successfully."
12292
  msgstr ""
12293
 
12294
+ #: admin/wizard/wizard.php:2123 admin/wizard/wizard.php:2155
12295
  msgid "IMPORTANT: Run the BPS Setup Wizard now."
12296
  msgstr ""
12297
 
12298
+ #: admin/wizard/wizard.php:2123 admin/wizard/wizard.php:2155
12299
  msgid ""
12300
+ "After running the Setup Wizard go to the BPS Security > htaccess File "
12301
+ "Options > Custom Code tab page and check all of your custom htaccess code "
12302
+ "for any website specific custom htaccess code. Example: If you find any "
12303
+ "custom htaccess code that has a website URL for your other website that you "
12304
  "exported BPS plugin settings from, then either edit that custom htaccess "
12305
  "code or remove it from BPS Custom Code."
12306
  msgstr ""
12307
 
12308
+ #: admin/wizard/wizard.php:2169
12309
  msgid ""
12310
  "Either the bps-settings-export.zip file has not been selected yet for Import "
12311
  "or the file "
12312
  msgstr ""
12313
 
12314
+ #: admin/wizard/wizard.php:2169
12315
  msgid ""
12316
  " is not a valid Setup Wizard Export file or file name. The BPS Setup Wizard "
12317
  "Import feature only allows the bps-settings-export.zip file to be Uploaded/"
12419
  #: includes/hud-dismiss-functions.php:455
12420
  msgid ""
12421
  "To Dismiss this Notice click the Dismiss Notice button below. To Reset "
12422
+ "Dismiss Notices click the Reset|Recheck Dismiss Notices button on the Alerts|"
12423
+ "Logs|Email Options page."
12424
  msgstr ""
12425
 
12426
  #: includes/functions.php:397 includes/hud-autofix-setup.php:75
12878
  "file."
12879
  msgstr ""
12880
 
12881
+ #: includes/general-functions.php:1094
12882
  msgid " Hosting Account Root Folder Option setup or updated Successfully!"
12883
  msgstr ""
12884
 
13864
 
13865
  #: includes/hud-autofix-whitelist.php:861
13866
  msgid ""
13867
+ " Click the UI|UX Options page Question Mark help button for more information."
 
13868
  msgstr ""
13869
 
13870
  #: includes/hud-autofix-whitelist.php:870
13995
  #: includes/hud-dismiss-functions.php:217
13996
  msgid ""
13997
  " link. To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices "
13998
+ "button on the Alerts|Logs|Email Options page."
13999
  msgstr ""
14000
 
14001
  #: includes/hud-dismiss-functions.php:208
14167
  #: includes/hud-dismiss-functions.php:545
14168
  msgid ""
14169
  "To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on "
14170
+ "the Alerts|Logs|Email Options page."
14171
  msgstr ""
14172
 
14173
  #: includes/hud-dismiss-functions.php:552
14330
  msgstr ""
14331
 
14332
  #: includes/hud-dismiss-functions.php:808
14333
+ msgid "MScan Rebuild Notice"
14334
  msgstr ""
14335
 
14336
  #: includes/hud-dismiss-functions.php:808
14337
  msgid ""
14338
+ "MScan has been completely rebuilt. MScan is faster, very accurate and user "
14339
+ "friendly. "
14340
  msgstr ""
14341
 
14342
  #: includes/hud-dismiss-functions.php:808
14343
+ msgid "Check out MScan"
14344
  msgstr ""
14345
 
14346
  #: includes/hud-dismiss-functions.php:808
readme.txt CHANGED
@@ -4,9 +4,8 @@ Donate link: https://wordpress.org/support/view/plugin-reviews/bulletproof-secur
4
  Tags: security, secure, malware scanner, login security, firewall, security plugin, wordpress security, login, bruteforce, backup, exploit, infection, protection, virus, anti-virus, logout, spam, anti-spam
5
  Requires at least: 3.8
6
  Requires PHP: 5.6
7
- Recommended PHP: 8.0.12
8
  Tested up to: 5.8.2
9
- Stable tag: 5.5
10
  License: GPLv2 or later
11
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
12
 
@@ -110,7 +109,7 @@ Security plugin features and frequently asked questions see the FAQ section belo
110
  2. Auth Cookie Expiration (ACE)
111
  3. DB Table Prefix Changer
112
  4. Maintenance Mode
113
- 5. UI|UX Settings: Choose UI|UX visual preferences & functionality.
114
  6. MScan Malware Scanner
115
 
116
  * <strong>Uninstall Options</strong>
@@ -215,7 +214,7 @@ Setup Wizard AutoFix checks which plugins and themes you currently have installe
215
 
216
  <strong>Description:</strong> MScan is a malware scanner that scans website files for hacker files or code and scans the WP database for hacker code. MScan Scheduled
217
  scanning is available in BPS Pro only.
218
- * MScan uses file hash comparisons for all WP files (WP Core, Plugins and Themes). File hash comparisons are 100% accurate, which means no false positives will occur for any WP files. All other non-WP files are scanned using standard conventional pattern matching. Now that WP Files are all scanned with file hash comparisons this allowed increasing the detection sensitivity for pattern matching scanning. Additional pattern matching rules have been added to MScan 2.0.
219
  * For more details see the <a href="https://forum.ait-pro.com/forums/topic/mscan-malware-scanner-guide/" title="MScan Malware Scanner Guide" rel="nofollow" target="_blank">MScan Malware Scanner Guide</a>.
220
 
221
  = BulletProof Security System Info =
@@ -302,7 +301,7 @@ protect all of your WordPress Forms, BuddyPress, bbPress and WooCommerce Forms a
302
 
303
  = BulletProof Security Send Email Alerts When New Plugin Or Theme Updates Are Available Features =
304
 
305
- <strong>Description:</strong> Send email alerts when new Plugin or Theme updates are available. Options: 1 Hour, 12 Hours or 1 Day. Do not send email alerts (default setting), Send Email Alerts for All Plugins, Send Email Alerts for Active Plugins Only, Send Email Alerts for All Themes and Send Email Alerts for Active Theme Only. This feature is located on the Email|Log Settings page.
306
 
307
  = BulletProof Security DB Backup|Database Backup Features =
308
 
@@ -452,15 +451,15 @@ Yes. BulletProof Security automatically creates customized .htaccess website sec
452
 
453
  = Security Log File Automation - Automatically Zipped, Emailed and Replaced =
454
 
455
- Security Log files are automatically zipped, emailed and replaced with a new blank Security Log file when the log file reaches the maximum file size setting that you choose. By Default BulletProof Security sets this DB option to zip, email and replace the Security Log file when it reaches 500KB. The Security Log file is checked once per hour with a WordPress Cron. The optimum recommended file size setting is 500KB. Email and Log file settings are located under the Email|Log Settings menu/page.
456
 
457
  = MScan Malware Scanner Log File Automation - Automatically Zipped, Emailed and Replaced =
458
 
459
- MScan Log files are automatically zipped, emailed and replaced with a new blank MScan Log file when the log file reaches the maximum file size setting that you choose. By Default BulletProof Security sets this DB option to zip, email and replace the MScan Log file when it reaches 500KB. The MScan Log file is checked once per hour with a WordPress Cron. The optimum recommended file size setting is 500KB. Email and Log file settings are located under the Email|Log Settings menu/page.
460
 
461
  = DB Backup Log File Automation - Automatically Zipped, Emailed and Replaced =
462
 
463
- DB Backup Log files are automatically zipped, emailed and replaced with a new blank DB Backup Log file when the log file reaches the maximum file size setting that you choose. By Default BulletProof Security sets this DB option to zip, email and replace the Security Log file when it reaches 500KB. The DB Backup Log file is checked once per hour with a WordPress Cron. The optimum recommended file size setting is 500KB. Email and Log file settings are located under the Email|Log Settings menu/page.
464
 
465
  = What to do if Hidden Plugin Folders|Files Cron (HPF) detects a hidden plugin folder or file =
466
 
4
  Tags: security, secure, malware scanner, login security, firewall, security plugin, wordpress security, login, bruteforce, backup, exploit, infection, protection, virus, anti-virus, logout, spam, anti-spam
5
  Requires at least: 3.8
6
  Requires PHP: 5.6
 
7
  Tested up to: 5.8.2
8
+ Stable tag: 5.6
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
109
  2. Auth Cookie Expiration (ACE)
110
  3. DB Table Prefix Changer
111
  4. Maintenance Mode
112
+ 5. UI|UX Options: Choose UI|UX visual preferences & functionality.
113
  6. MScan Malware Scanner
114
 
115
  * <strong>Uninstall Options</strong>
214
 
215
  <strong>Description:</strong> MScan is a malware scanner that scans website files for hacker files or code and scans the WP database for hacker code. MScan Scheduled
216
  scanning is available in BPS Pro only.
217
+ * MScan uses file hash comparisons for all WP files (WP Core, Plugins and Themes). File hash comparisons are 100% accurate, which means no false positives will occur for any WP files. All other non-WP files are scanned using standard conventional pattern matching. Now that WP Files are all scanned with file hash comparisons this allowed increasing the detection sensitivity for pattern matching scanning. Additional pattern matching rules have been added to MScan.
218
  * For more details see the <a href="https://forum.ait-pro.com/forums/topic/mscan-malware-scanner-guide/" title="MScan Malware Scanner Guide" rel="nofollow" target="_blank">MScan Malware Scanner Guide</a>.
219
 
220
  = BulletProof Security System Info =
301
 
302
  = BulletProof Security Send Email Alerts When New Plugin Or Theme Updates Are Available Features =
303
 
304
+ <strong>Description:</strong> Send email alerts when new Plugin or Theme updates are available. Options: 1 Hour, 12 Hours or 1 Day. Do not send email alerts (default setting), Send Email Alerts for All Plugins, Send Email Alerts for Active Plugins Only, Send Email Alerts for All Themes and Send Email Alerts for Active Theme Only. This feature is located on the Alerts|Logs|Email Options page.
305
 
306
  = BulletProof Security DB Backup|Database Backup Features =
307
 
451
 
452
  = Security Log File Automation - Automatically Zipped, Emailed and Replaced =
453
 
454
+ Security Log files are automatically zipped, emailed and replaced with a new blank Security Log file when the log file reaches the maximum file size setting that you choose. By Default BulletProof Security sets this DB option to zip, email and replace the Security Log file when it reaches 500KB. The Security Log file is checked once per hour with a WordPress Cron. The optimum recommended file size setting is 500KB. Email and Log file settings are located under the Alerts|Logs|Email Options menu/page.
455
 
456
  = MScan Malware Scanner Log File Automation - Automatically Zipped, Emailed and Replaced =
457
 
458
+ MScan Log files are automatically zipped, emailed and replaced with a new blank MScan Log file when the log file reaches the maximum file size setting that you choose. By Default BulletProof Security sets this DB option to zip, email and replace the MScan Log file when it reaches 500KB. The MScan Log file is checked once per hour with a WordPress Cron. The optimum recommended file size setting is 500KB. Email and Log file settings are located under the Alerts|Logs|Email Options menu/page.
459
 
460
  = DB Backup Log File Automation - Automatically Zipped, Emailed and Replaced =
461
 
462
+ DB Backup Log files are automatically zipped, emailed and replaced with a new blank DB Backup Log file when the log file reaches the maximum file size setting that you choose. By Default BulletProof Security sets this DB option to zip, email and replace the Security Log file when it reaches 500KB. The DB Backup Log file is checked once per hour with a WordPress Cron. The optimum recommended file size setting is 500KB. Email and Log file settings are located under the Alerts|Logs|Email Options menu/page.
463
 
464
  = What to do if Hidden Plugin Folders|Files Cron (HPF) detects a hidden plugin folder or file =
465