<?php
#  ________         ____________      _____ ________                       ________      
#  ___  __ )____  _____  /___  /_____ __  /____  __ \______________ ______ ___  __/      
#  __  __  |_  / / /__  / __  / _  _ \_  __/__  /_/ /__  ___/_  __ \_  __ \__  /_        
#  _  /_/ / / /_/ / _  /  _  /  /  __// /_  _  ____/ _  /    / /_/ // /_/ /_  __/        
#  /_____/  \__,_/  /_/   /_/   \___/ \__/  /_/      /_/     \____/ \____/ /_/           
#  ________                             _____ _____              ________                
#  __  ___/_____ ___________  _____________(_)__  /______  __    ___  __ \______________ 
#  _____ \ _  _ \_  ___/_  / / /__  ___/__  / _  __/__  / / /    __  /_/ /__  ___/_  __ \
#  ____/ / /  __// /__  / /_/ / _  /    _  /  / /_  _  /_/ /     _  ____/ _  /    / /_/ /
#  /____/  \___/ \___/  \__,_/  /_/     /_/   \__/  _\__, /      /_/      /_/     \____/ 
#                                                   /____/                               
# 42756C6C657450726F6F66 5365637572697479 50726F 
#
/*	The Copyright, AITpro Software Products License Information must remain
	intact or all BulletProof Security Pro warranties, guarantees, liabilities are void.
	
	Copyright (C) Edward Alexander, AIT-pro.com. All rights reserved.

	AITpro Software Products License Information:
	BY DOWNLOADING, INSTALLING, COPYING, ACCESSING, OR USING BulletProof Security Pro YOU AGREE TO THE TERMS OF THIS AGREEMENT. 
	IF YOU 	ARE ACCEPTING THESE TERMS ON BEHALF OF ANOTHER PERSON OR A COMPANY OR OTHER LEGAL ENTITY, YOU REPRESENT AND WARRANT
	THAT YOU HAVE FULL AUTHORITY TO BIND THAT PERSON, COMPANY, OR LEGAL ENTITY TO THESE TERMS. IF YOU DO NOT AGREE TO THESE TERMS,
	* DO NOT DOWNLOAD, INSTALL, COPY, ACCESS, OR USE BulletProof Security Pro; AND
	* PROMPTLY RETURN BulletProof Security Pro TO THE PARTY FROM WHOM YOU ACQUIRED IT. IF YOU DOWNLOADED BulletProof Security Pro
	FROM THE AITPRO WEBSITE, CONTACT AITPRO FOR A REFUND IF APPLICABLE.
	
	AITpro Software Products License Information continued:
	You agree to keep the AITpro Software Products License for BulletProof Security Pro, unmodified or altered in any way,
	with the original copy of BulletProof Security Pro that you have and any and all copies or partial copies of BulletProof
	Security Pro that You make. 
*/
// Direct calls to this file are Forbidden when core files are not present
if ( ! function_exists('add_action') ) {
		header('Status: 403 Forbidden');
		header('HTTP/1.1 403 Forbidden');
		exit();
}
 
if ( ! current_user_can('manage_options') ) { 
		header('Status: 403 Forbidden');
		header('HTTP/1.1 403 Forbidden');
		exit();
}
?>

<!-- force the vertical scrollbar -->
<style>
#wpwrap{min-height:100.1%};
</style>

<div id="bps-container" class="wrap" style="margin:10px 20px 5px 0px;">

<noscript><div id="message" class="updated" style="font-weight:600;font-size:13px;padding:5px;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);"><span style="color:blue">BPS Warning: JavaScript is disabled in your Browser</span><br />BPS plugin pages will not display visually correct and all BPS JavaScript functionality will not work correctly.</div></noscript>

<?php
// S-Monitor HUD - Heads Up Display - Warnings, Error messages, AutoFix Setup & Whitelist - displayed in BPS Only		
bps_HUD_autofix_setup_bps_only();
bps_HUD_autofix_whitelist_bps_only();
bps_HUD_bps_only();

// S-Monitor BPS Security Status for Root and wp-admin (wp-admin only if problem) - displayed in BPS Only
bps_security_status_bps_only();
bps_security_status_wpadmin_bps_only();

// S-Monitor & AutoRestore Status display - displayed in BPS Only 
bps_ARCM_admin_notice_status_bps();

// S-Monitor - MScan Status display - BPS pages ONLY
bps_MScan_admin_notice_status_bps();

// S-Monitor - DB Monitor Status display - BPS pages ONLY
bps_DBM_admin_notice_status_bps();

// S-Monitor - DB Backup Status display - BPS pages ONLY
bps_DBB_admin_notice_status_bps();

// S-Monitor - Plugin Firewall Status display - BPS pages ONLY
bps_PFWAP_admin_notice_status_bps();

// S-Monitor - Uploads Anti-Exploit Guard Status display - BPS pages ONLY
bps_UAEG_admin_notice_status_bps();

// S-Monitor - Login Security Status display - BPS pages ONLY
bps_Login_Security_admin_notice_status_bps();

// S-Monitor - JTC Anti-Spam Status display - BPS pages ONLY
bps_jtc_antispam_admin_notice_status_bps();

// S-Monitor - Idle Session Status display - BPS pages ONLY
bpsPro_isl_notice_status_bps();

// S-Monitor - Auth Cookie Expiration Status display - BPS pages ONLY
bpsPro_ace_notice_status_bps();

// S-Monitor - Login Security Alerts - BPS pages ONLY
bps_smonitor_LoginSecurityResetModTimeDiff_bps();

// S-Monitor - ARQ Alerts - BPS pages ONLY
bps_smonitor_ARQ_alerts_bps();

// S-Monitor PHP Error Log - New PHP Errors - displayed in BPS Only
bps_smonitor_ELogModTimeDiff_bps();

// S-Monitor Security Log - New Log Entry Has Been Logged - displayed in BPS Only
bps_smonitor_SecurityLogModTimeDiff_bps();

// S-Monitor - PHP Error Log Set & valid path, ini_set Options Checks & auto-update wp-config.php - BPS pages ONLY
bps_smonitor_phpini_bps();

// S-Monitor F-Lock - Check if F-Lock options saved - F-Lock Lock / Unlock File Status & actual file permissions 404 or 400
bps_smonitor_flock_bps();
?>

<div id="message" class="updated" style="border:1px solid #999;background-color:#000;">

<?php
// Obsolete file cleanup / deletion
//echo bpsRemoveObs();

// Manually runs real-time BPS Pro version update check - for testing ONLY
// echo bpsPro_update_checks();
// Manually runs PHP Error Log cron function - for testing ONLY
// echo bps_smonitor_ELogModTimeDiff_wp_email();

// General all purpose "Settings Saved." message for forms - /includes/class.php
if ( current_user_can('manage_options') && wp_script_is( 'bps-accordion', $list = 'queue' ) ) {
if ( isset( $_GET['settings-updated'] ) && @$_GET['settings-updated'] == true ) {
	$text = '<p style="font-size:1em;font-weight:bold;padding:2px 0px 2px 5px;margin:0px -11px 0px -11px;background-color:#dfecf2;-webkit-box-shadow: 3px 3px 5px 0px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px 0px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px 0px rgba(153,153,153,0.7);"><font color="green"><strong>'.__('Settings Saved', 'bulletproof-security').'</strong></font></p>';
	echo $text;
	} else {
	echo '<font color="#fb0101"><strong>'.bps_cuser_errors().'</strong></font>';
	}
}

// Replace ABSPATH = wp-content/plugins
$bps_plugin_dir = str_replace( ABSPATH, '', WP_PLUGIN_DIR);
// Replace ABSPATH = wp-content
$bps_wpcontent_dir = str_replace( ABSPATH, '', WP_CONTENT_DIR);
// Replace ABSPATH = wp-content/uploads
$wp_upload_dir = wp_upload_dir();
$bps_uploads_dir = str_replace( ABSPATH, '', $wp_upload_dir['basedir'] );

// Anti-Piracy check - Fallback 10R
$D8 = '42756C6C657450726F6F66';
bpsPro_AP_Check($D8);

?>
</div>

<h2 class="bps-tab-title"><?php _e('Whats New and General Help Info & Tips', 'bulletproof-security'); ?></h2>

<!-- jQuery UI Tab Menu -->
<div id="bps-tabs" class="bps-menu">
    <div id="bpsHead"><img src="<?php echo plugins_url('/bulletproof-security/admin/images/bps-pro-logo.gif'); ?>" /></div>
		<ul>
            <li><a href="#bps-tabs-1"><?php _e('Whats New and General Help Info & Tips', 'bulletproof-security'); ?></a></li>
		</ul>
            
<div id="bps-tabs-1">

<table width="100%" border="0" cellspacing="0" cellpadding="0" class="bps-whats_new_table">
  <tr>
   <td width="1%" class="bps-table_title_no_border">&nbsp;</td>
   <td width="99%" class="bps-table_title_no_border"><h2><?php $text = __('Whats New in ', 'bulletproof-security'). BULLETPROOF_VERSION .__(' and General Help Info & Tips', 'bulletproof-security'); echo $text; ?></h2></td>
  </tr>
  <tr>
    <td class="bps-table_cell_no_border">&nbsp;</td>
    <td class="bps-table_cell_no_border"><?php $text = '<h2><strong>'.__('General Help Info & Tips:', 'bulletproof-security').'</strong></h2>'; echo $text; ?></td>
  </tr>
   <tr>
    <td class="bps-table_cell_no_border">&nbsp;</td>
    <td class="bps-table_cell_no_border">&nbsp;</td>
  </tr>
  <tr>
    <td class="bps-table_cell_no_border">&bull;</td>
    <td class="bps-table_cell_no_border"><?php $text = '<strong>'.__('BPS Pro Video Tutorials|Setup Wizard: ', 'bulletproof-security').'<a href="https://forum.ait-pro.com/video-tutorials/" target="_blank" title="BPS Pro Video Tutorials">BPS Pro Video Tutorials</a></strong>'; echo $text; ?></td>
  </tr>   
   <tr>
    <td class="bps-table_cell_no_border">&nbsp;</td>
    <td class="bps-table_cell_no_border">&nbsp;</td>
  </tr>
  <tr>
    <td class="bps-table_cell_no_border">&bull;</td>
    <td class="bps-table_cell_no_border"><?php $text = '<strong>'.__('Troubleshooting Steps & The BPS Pro Security Log: ', 'bulletproof-security').'<br><a href="https://forum.ait-pro.com/forums/topic/read-me-first-pro/#bps-pro-general-troubleshooting" target="_blank" title="BPS Pro Troubleshooting Steps">Troubleshooting Steps</a></strong><br>'.__('All BPS Pro plugin features can be turned Off/On individually to confirm, eliminate or isolate a problem or issue that may or may not be caused by BPS Pro. ', 'bulletproof-security').'<br><strong><a href="https://forum.ait-pro.com/video-tutorials/#security-log-firewall" target="_blank" title="BPS Pro Security Log Video Tutorial">Security Log Video Tutorial</a></strong><br>'.__('The BPS Pro Security Log is a primary troubleshooting tool. If BPS Pro is blocking something legitimate in another plugin or theme then a Security Log entry will be logged for exactly what is being blocked. A whitelist rule can then be created to allow a plugin or theme to do what it needs to do without being blocked.', 'bulletproof-security').'<br><strong><a href="https://forum.ait-pro.com/forums/forum/bulletproof-security-pro/" target="_blank" title="BPS Pro Security Forum">BPS Pro Security Forum</a></strong><br>'.__('Search the Forum site to see if a known issue or problem is already posted with a solution/whitelist rule in the Forum.', 'bulletproof-security'); echo $text; ?></td>
  </tr>   
   <tr>
    <td class="bps-table_cell_no_border">&nbsp;</td>
    <td class="bps-table_cell_no_border">&nbsp;</td>
  </tr>
  <tr>
    <td class="bps-table_cell_no_border">&bull;</td>
    <td class="bps-table_cell_no_border"><?php $text = '<strong>'.__('Real Time Alerts|Self-Healing|Wizards: ', 'bulletproof-security').'</strong>'.__('BPS Pro checks everything in real time so there is no need to worry about forgetting to set something up or setting something up incorrectly. If something is not set up or is set up incorrectly you will see an alert or warning about what needs to be done to correct the problem. Displayed alerts and warnings have a Click Here link to take you to the page that needs attention. BPS Pro also has self-healing capability to automatically correct issues/problems. The Pre-Installation Wizard and Setup Wizard can be re-run again at any time.', 'bulletproof-security'); echo $text; ?></td>
  </tr>
   <tr>
    <td class="bps-table_cell_no_border">&nbsp;</td>
    <td class="bps-table_cell_no_border">&nbsp;</td>
  </tr>
   <tr>
    <td class="bps-table_cell_no_border">&bull;</td>
    <td class="bps-table_cell_no_border"><?php $text = '<strong>'.__('BPS Pro Updates|Upgrades: ', 'bulletproof-security').'<a href="https://forum.ait-pro.com/forums/topic/bulletproof-security-pro-bps-pro-upgrade-installation-methods/" target="_blank" title="BPS Pro Upgrade Installation Methods">Upgrade Installation Methods</a></strong><br>'.__('. When upgrading BPS Pro, BPS Pro plugin files are updated/upgraded & some database settings may be updated if necessary in some BPS Pro version releases. BPS Pro updates/upgrades do not change any of your personal settings. ', 'bulletproof-security'); echo $text; ?></td>
  </tr>
   <tr>
    <td class="bps-table_cell_no_border">&nbsp;</td>
    <td class="bps-table_cell_no_border">&nbsp;</td>
  </tr>
  <tr>
    <td class="bps-table_cell_no_border">&bull;</td>
    <td class="bps-table_cell_no_border"><?php $text = '<strong>'.__('ini_set Options|php.ini Files: ', 'bulletproof-security').'</strong>'.__('The ini_set Options can be used as an alternative to creating a custom php.ini file or .user.ini file (if your PHP version is PHP5.3.x or above) or in addition to creating a custom php.ini file or .user.ini file (if your PHP version is PHP5.3.x or above).', 'bulletproof-security'); echo $text; ?></td>
  </tr>
  <tr>
    <td class="bps-table_cell_no_border">&nbsp;</td>
    <td class="bps-table_cell_no_border">&nbsp;</td>
  </tr>
  <tr>
    <td class="bps-table_cell_no_border">&bull;</td>
    <td class="bps-table_cell_no_border"><?php $text = '<strong>'.__('PHP Errors|PHP Error Log: ', 'bulletproof-security').'<a href="https://forum.ait-pro.com/forums/topic/how-to-troubleshoot-php-errors-php-errors-in-your-php-error-log/" target="_blank" title="How to Troubleshoot PHP Errors">How to Troubleshoot PHP Errors</a></strong><br>'.__('. PHP Errors are a normal thing that can occur on all websites intermittently. PHP errors may have been already occurring on your website before you installed BPS Pro, but you were not being alerted about them. BPS logs PHP errors in a static PHP error log text file and you are alerted about these PHP errors when they occur. It is recommended that you contact plugin and theme authors about PHP errors that are occurring in those plugins and themes and being logged by BPS. If you do not want to be alerted about PHP errors then you can turn PHP error log alerts off on the S-Monitor page by setting this Option: ', 'bulletproof-security').'<strong>'.__('PHP Error Log: New Errors in The PHP Error Log Alerts', 'bulletproof-security').'</strong>'.__(' to Turn Off Displayed Alerts.', 'bulletproof-security'); echo $text; ?></td>
  </tr>
  <tr>
    <td class="bps-table_cell_no_border">&nbsp;</td>
    <td class="bps-table_cell_no_border">&nbsp;</td>
  </tr>
  <tr>
    <td class="bps-table_cell_no_border">&bull;</td>
    <td class="bps-table_cell_no_border"><?php $text = '<strong>'.__('S-Monitor Recommendations: ', 'bulletproof-security').'</strong>'.__('It is recommended that you choose to display all alerts in your WP Dashboard instead of displaying alerts only in BPS pages with the exception of: ', 'bulletproof-security').'<strong>'.__('Security Log: New Log Entry Has Been Logged Alerts', 'bulletproof-security').'</strong>,'.__(' which should be set to Turn Off Displayed Alerts or display in BPS Pro pages only. These days an average site is attacked at least once per minute. BPS Pro is already handling blocking attacks so you do not need to see Security Log alerts all day long to tell you that BPS Pro is doing its job. You can turn the Security Log alerts On as needed for troubleshooting purposes and then turn Security Log alerts Off after you are done troubleshooting. Database Monitor: DBM Alerts should also be set to Turn Off Displayed Alerts.', 'bulletproof-security'); echo $text; ?></td>
  </tr>
  <tr>
    <td class="bps-table_cell_no_border">&nbsp;</td>
    <td class="bps-table_cell_no_border">&nbsp;</td>
  </tr>
  <tr>
    <td class="bps-table_cell_no_border">&bull;</td>
    <td class="bps-table_cell_no_border"><?php $text = '<strong>'.__('AutoRestore|Quarantine (ARQ IDPS) ARQ Guide Link & General Tips: ', 'bulletproof-security').'<a href="https://forum.ait-pro.com/forums/topic/autorestore-quarantine-guide-read-me-first/" target="_blank" title="AutoRestore|Quarantine Guide">AutoRestore|Quarantine Guide</a></strong><br>'.__('AutoRestore|Quarantine Intrusion Detection and Prevention System (ARQ IDPS) is a real time file monitor that monitors all of your website files for any changes or modifications and will autorestore and/or quarantine if file changes are detected. ARQ IDPS is completely automated and seamless when upgrading WordPress, Plugins or Themes from within your WordPress Dashboard. See the AutoRestore|Quarantine Guide link above for procedural steps when manually modifying files or folders or installing files or folders from a remote location/3rd party application. ARQ needs to be turned Off when working with files or folders manually or remotely. When working with files or folders manually see the ', 'bulletproof-security').'<strong>'.__('AutoRestore|Quarantine Correct Usage', 'bulletproof-security').'</strong>'.__(' help section in the ARQ Guide link above. ARQ does not monitor your WordPress Database so that means creating Posts, Pages and Comments are not monitored by ARQ. ARQ does not monitor your WordPress /uploads folder. Your WordPress uploads folder is protected by the Uploads Anti-Exploit Guard (UAEG).', 'bulletproof-security'); echo $text; ?></td>
  </tr>
  <tr>
    <td class="bps-table_cell_no_border">&nbsp;</td>
    <td class="bps-table_cell_no_border">&nbsp;</td>
  </tr>
  <tr>
    <td class="bps-table_cell_no_border">&bull;</td>
    <td class="bps-table_cell_no_border"><?php $text = '<strong>'.__('BPS Pro Affiliate Program: ', 'bulletproof-security').'<a href="http://affiliates.ait-pro.com/" target="_blank" title="BPS Pro Affiliate Program">'.__('BPS Pro Affiliate Program', 'bulletproof-security').'</a></strong><br>'.__('BPS Pro has an Affiliate Program. Affiliate commission payout is 25% of each referral sale. Payouts are made in a rolling 30 day period.', 'bulletproof-security'); echo $text; ?></td>
  </tr>
  <tr>
    <td class="bps-table_cell_no_border">&nbsp;</td>
    <td class="bps-table_cell_no_border">&nbsp;</td>
  </tr>
  <tr>
    <td class="bps-table_cell_no_border">&bull;</td>
    <td class="bps-table_cell_no_border"><?php $text = '<strong>'.__('BPS Pro Version Release Dates &amp; Whats New: ', 'bulletproof-security').'<a href="https://forum.ait-pro.com/forums/topic/bulletproof-security-pro-version-release-dates/" target="_blank" title="BPS Pro Version Release Dates &amp; Whats New">'.__('Version Release Dates &amp; Whats New', 'bulletproof-security').'</a></strong><br>'.__('View BPS Pro version release dates, history and Whats New changelog for all BPS Pro version releases.', 'bulletproof-security'); echo $text; ?></td>
  </tr>
  <tr>
    <td class="bps-table_cell_no_border">&nbsp;</td>
    <td class="bps-table_cell_no_border">&nbsp;</td>
  </tr>
  <tr>
    <td class="bps-table_cell_no_border">&nbsp;</td>
    <td class="bps-table_cell_no_border"><?php $text = '<h2><strong>'.__('Whats New in BPS Pro ', 'bulletproof-security').$bpspro_version.'</strong></h2>'; echo $text; ?></td>
  </tr>
 <tr>
    <td class="bps-table_cell_no_border">&nbsp;</td>
    <td class="bps-table_cell_no_border"><?php $text = __('<strong>&bull; PHP 8.0.10 Testing:</strong> BPS Pro has been tested up to PHP 8.0.10. No issues or problems found.<br><br><strong>&bull; Update:</strong> Log file automation: Zipped log files now use a timestamp naming convention – log-zip-file-name-timestamp.zip. The log files in the zip file are also named using the same naming convention.<br><br><strong>&bull; BugFix:</strong> PHP Error log zip file automation PclZip only: PHP Error log files not being zipped for PclZip condition. Missing get_option() under the PclZip condition. No issues with the ZipArchive condition.<br><br><strong>&bull; BugFix:</strong> Setup Wizard Options: Enable|Disable htaccess Files option automatically enabled (if disabled) due to a bug in the Apache Module checking conditions.<br><br><strong>&bull; Help Text Addition:</strong> htaccess Files Disabled Notice: “The Pre-Installation and Setup Wizard need to be run again after disabling or enabling htaccess files.” help text added.<br><br><strong>&bull; BugFix:</strong> S-Monitor Email Alerts: 4 email options saved with blank values in a previous BPS Pro version. The 4 options are automatically fixed on BPS Pro upgrade. Affected email options: HPF email alerts, MScan email alerts and MScan email log files. Problem scenario: If ARQ was turned Off and an ARQ is turned Off email alert was sent then these 4 options were updated with blank values.<br><br><strong>&bull; Procedural Update:</strong> Add new $wpdb collate variable to all dbDelta functions.<br><br><strong>&bull; Procedural Fix:</strong> Create default WP root .htaccess file for Multisite on BPS Pro plugin uninstallation.<br><br><strong>&bull; Procedural Update:</strong> Setup Wizard: Additional default AutoRestore wp-content folder exclude rule created for Malcare plugin wp-content folder.<br><br><strong>&bull; Procedural Update:</strong> SiteGround Security plugin added to the wp-content .htaccess file check Dismiss Notice.<br><br><strong>&bull; PHP Error Fix:</strong> Login Security & Monitoring: Undefined array key and Undefined variable php errors fixed.<br><br><strong>&bull; PHP Error Fix:</strong> Setup Wizard Options: Enable|Disable htaccess Files: PHP Errors fixed when disabling and enabling htaccess files.<br><br><strong>&bull; PHP Error Fix:</strong> MScan: foreach() argument must be of type array|object, null given. Plugin hash version check and Theme hash version check DB options. Check if is_array() and is_null() before processing foreach().<br><br><strong>&bull; PHP Error Fix:</strong> System Info: mb_stripos(): Empty delimiter in system-info.php on line 537.', 'bulletproof-security'); echo $text; ?>
     </td>
  </tr>
  <tr>
    <td class="bps-table_cell_no_border">&nbsp;</td>
    <td class="bps-table_cell_no_border"><?php $text = '<h2><strong>'.__('Whats New in BPS Pro 15.8', 'bulletproof-security').'</strong></h2>'; echo $text; ?></td>
  </tr>
 <tr>
    <td class="bps-table_cell_no_border">&nbsp;</td>
    <td class="bps-table_cell_no_border"><?php $text = __('<strong>&bull; New Feature:</strong> S-Monitor: 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. Location: BPS Pro > S-Monitor > Email Alerting & Log File Options Form.<br><br><strong>&bull; BugFix:</strong> S-Monitor: AutoRestore|Quarantine is Turned Off Cron function missing newer DB options. Dev Note: This only affected some S-Monitor email alert options IF AutoRestore|Quarantine was Turned Off and the S-Monitor ARQ Off check was turned On.<br><br><strong>&bull; AutoRestore OBFD Cron:</strong> The AutoRestore Old Backup File Deletion Cron has been updated to include the latest old WP version files to automatically delete from AutoRestore backup.<br><br><strong>&bull; ARQ Automation:</strong> The WordPress Theme Editor is now hooked into ARQ Automation. Any edited Theme files will be automatically backed up to ARQ backup.<br><br><strong>&bull; MScan Log|DB Monitor Log:</strong> Logging fields changed: Full path to files has been changed to relative paths to files. DB Table Prefix removed from logging field: Table Name. Reason: htaccess files are not processed on nginx server types, which would leave the MScan and DB Monitor Logs unprotected by the /bps-backup/.htaccess file.<br><br><strong>&bull; DB Backup Log:</strong> Logging fields removed: Zip Backup File Name, DB Backup Folder Location and DB Backup File Download Link|URL. DB Table Prefix removed from logging field: Table Name. Reason: htaccess files are not processed on nginx server types, which would leave the DB Backup Log unprotected by the /bps-backup/.htaccess file. The DB Backup Log is deleted on BPS upgrade if the log file contains the file paths to DB Backup zip files and replaced with a new blank DB Backup Log file.<br><br><strong>&bull; DB Backup:</strong> PHP error fixed: Undefined variable $mailed.<br><br><strong>&bull; Reload BPS Pro Status Display:</strong> Changed from PHP to JavaScript. Clicking the Reload BPS Pro Status Display button reloads the fragment/named anchor tab page instead of loading the main tab page in BPS Pro plugin pages.<br><br><strong>&bull; BugFix:</strong> Log File Zip & Email: Switch break conditions fixed.<br><br><strong>&bull; TypoFix:</strong> 2 help text typos fixed.<br><br><strong>&bull; Procedural Fix:</strong> jQuery alert added when the View version details link is clicked on the WP Plugins page. As of WP 5.8 the BPS free plugin details are displayed in the version details iframe instead of BPS Pro plugin details.<br><br><strong>&bull; wp-admin .htaccess Change:</strong> The wp-admin/widgets.php file is whitelisted by default in the wp-admin .htaccess file. Resolves issues with the new Widgets Block Editor in WP 5.8.<br><br><strong>&bull; Setup Wizard:</strong> SAPI conditional check added for DSO server types to not display the Root htaccess file lock recommendation text.<br><br><strong>&bull; System Info:</strong> PHP error fix: opcache_get_configuration() has been disabled for security reasons.<br><br><strong>&bull; System Info:</strong> PHP error fix: Zend OPcache API is restricted by "restrict_api".<br><br><strong>&bull; System Info:</strong> Zend OPcache conditional corrections.', 'bulletproof-security'); echo $text; ?>
     </td>
  </tr>
  <tr>
    <td class="bps-table_cell_no_border">&nbsp;</td>
    <td class="bps-table_cell_no_border"><?php $text = '<h2><strong>'.__('Whats New in BPS Pro 15.7', 'bulletproof-security').'</strong></h2>'; echo $text; ?></td>
  </tr>
 <tr>
    <td class="bps-table_cell_no_border">&nbsp;</td>
    <td class="bps-table_cell_no_border"><?php $text = __('<strong>&bull; Setup Wizard AutoSetup|HUD AutoFix Setup:</strong> WP Fastest Cache changes due to WPFC code changes. WPFC plugin option settings can no longer be used to check if WPFC Browser caching is enabled. Causes PHP Fatal errors in Setup Wizard AutoSetup and HUD AutFix Setup. Fixed: Setup Wizard AutoSetup and HUD AutoFix Setup no longer check any WPFC option settings.<br><br><strong>&bull; BugFix:</strong> MScan Scheduled Scan: PHP Fatal error fixed for Call to undefined function get_home_path().', 'bulletproof-security'); echo $text; ?>
     </td>
  </tr>
  <tr>
    <td class="bps-table_cell_no_border">&nbsp;</td>
    <td class="bps-table_cell_no_border"><?php $text = '<h2><strong>'.__('Whats New in BPS Pro 15.6', 'bulletproof-security').'</strong></h2>'; echo $text; ?></td>
  </tr>
 <tr>
    <td class="bps-table_cell_no_border">&nbsp;</td>
    <td class="bps-table_cell_no_border"><?php $text = __('<strong>&bull; AutoRestore Add Folders & Files Feature Rebuild:</strong> New capabilities: Add Folders & Files anywhere under a hosting account except for WP Core folders: wp-content, wp-admin and wp-includes since those folders are already monitored and protected by default by AutoRestore|Quarantine, Restore Added Files from Quarantine, Delete all Added Folders & Files with one click. New option: Hosting account root folder path option setting. New Error Checking: Prevent adding folders and files under WP Core folders: wp-content, wp-admin and wp-includes.<br><br><strong>&bull; AutoRestore Add Folders & Files Feature Additional Notes:</strong> In previous versions of BPS Pro prior to 15.6 the AutoRestore Add Folders & Files feature only allowed adding folders & files from/within the root WordPress installation folder. BPS Pro 15.6 now allows adding folders and files anywhere from the hosting account root folder to all folders and files below the hosting account root folder.<br><br><strong>&bull; AutoRestore Add Folders & Files Rebuild Dismiss Notice:</strong> Checks for existing added folders and files and displays one time upgrade steps to use the new rebuilt AutoRestore Add Folders & Files feature.<br><br><strong>&bull; Setup Wizard AutoFix:</strong> New Setup Wizard AutoFix whitelist rule added for the Business Directory plugin.<br><br><strong>&bull; Procedural Update:</strong> Setup Wizard: Additional default AutoRestore wp-content folder exclude rule created for WP Rocket plugin wp-content config folder.<br><br><strong>&bull; Procedural Update:</strong> Setup Wizard: Additional default AutoRestore wp-content folder exclude rule created for PeepSo plugin wp-content folder.<br><br><strong>&bull; System Info:</strong> New checks added for the WordPress get_home_path() URL, Server Port and Server Protocol. Useful for troubleshooting and support.<br><br><strong>&bull; Procedural Fix:</strong> MScan: Delete /tmp files nick nack php error fixed.<br><br><strong>&bull; Procedural Fix:</strong> ini_set Options: Newer WordPress versions use slightly different code in the wp-config.php file. New ini_set Options pattern matching conditions have been added to match the newer wp-config.php code. Features affected: Setup Wizard and ini_set Options Enable Form.<br><br><strong>&bull; CSS BugFix:</strong> ini_set Options: Line breaks added back for a few textbox Labels where the line breaks were previously accidentally removed.', 'bulletproof-security'); echo $text; ?>
     </td>
  </tr>
  <tr>
    <td class="bps-table_cell_no_border">&nbsp;</td>
    <td class="bps-table_cell_no_border"><?php $text = '<h2><strong>'.__('Whats New in BPS Pro 15.5', 'bulletproof-security').'</strong></h2>'; echo $text; ?></td>
  </tr>
 <tr>
    <td class="bps-table_cell_no_border">&nbsp;</td>
    <td class="bps-table_cell_no_border"><?php $text = __('<strong>&bull; MScan:</strong> New scan status display using a popup Browser window vs the previous problematic iframe method.', 'bulletproof-security'); echo $text; ?>
     </td>
  </tr>
  <tr>
    <td class="bps-table_cell_no_border">&nbsp;</td>
    <td class="bps-table_cell_no_border"><?php $text = '<h2><strong>'.__('Whats New in BPS Pro 15.4/15.4.1', 'bulletproof-security').'</strong></h2>'; echo $text; ?></td>
  </tr>
 <tr>
    <td class="bps-table_cell_no_border">&nbsp;</td>
    <td class="bps-table_cell_no_border"><?php $text = __('<strong>&bull; MScan Rebuild:</strong> MScan 2.0: MScan 2.0 now 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, but 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.<br><br><strong>&bull; Removal:</strong> The LiteSpeed Server|Plugin Firewall Notice has been removed. No longer used.<br><br><strong>&bull; BPS Pro Upgrade Notification Email:</strong> Link added to the BPS Pro Whats New|Changelog forum topic.<br><br><strong>&bull; Procedural Correction:</strong> PHP Warning:  Undefined property error fixed on the WP Plugins Add New page.<br><br><strong>&bull; Procedural Fix:</strong> PHP Error Log Delete button: PHP Warning:  touch(): Utime failed.<br><br><strong>&bull; 15.4.1 BugFix:</strong> MScan 2.0: First time scan was not creating the Plugin and Theme hash files due to an incorrect condition in the file hash maker function.', 'bulletproof-security'); echo $text; ?>
     </td>
  </tr>
  <tr>
    <td class="bps-table_cell_no_border">&nbsp;</td>
    <td class="bps-table_cell_no_border"><?php $text = '<h2><strong>'.__('Whats New in BPS Pro 15.3', 'bulletproof-security').'</strong></h2>'; echo $text; ?></td>
  </tr>
 <tr>
    <td class="bps-table_cell_no_border">&nbsp;</td>
    <td class="bps-table_cell_no_border"><?php $text = __('<strong>&bull; MScan:</strong> The MScan Pattern matching code is now automatically saved to the DB on BPS upgrades and new installations. Previously the MScan pattern matching code was saved to a file in the /bps-backup/ folder. Some web hosts scanners flagged the MScan pattern matching code as malicious.<br><br><strong>&bull; MScan Rebuild Status:</strong> The MScan rebuild is 80% completed. Due to higher priority tasks (PHP 8 compliance|WP 5.7 procedural updates) taking precedence the finalization of the MScan rebuild has been pushed back to BPS Pro 15.4.<br><br><strong>&bull; Procedural Update:</strong> PHP 8.0.2 compliance: Fixed any issues with BPS Pro in PHP 8.0.2.<br><br><strong>&bull; Procedural Update:</strong> Added new help text for FSP in the Setup Wizard Options and Setup Wizard Export|Import Read Me help buttons.<br><br><strong>&bull; Procedural Update:</strong> Setup Wizard: Additional default AutoRestore wp-content folder exclude rule created for the Themify cache folder: /tf_cache/.<br><br><strong>&bull; Procedural Fix:</strong> Delete this BPS free plugin option if it exists:  bulletproof_security_options_pop_uninstall.<br><br><strong>&bull; BugFix:</strong> Plugin Firewall: Additional Roles IP Whitelist option: Capabilities bug fixed for additional roles IP address whitelisting.<br><br><strong>&bull; System Info:</strong> Added Themes to the Get Plugins List form. Form is now named Get Plugins|Themes List.<br><br><strong>&bull; P-Security:</strong> PHP Error Log: Additional conditional checks added for the PHP Error Log Path Does Not Match error check. Forum topic created with cause/solution help info: ', 'bulletproof-security').'<a href="https://forum.ait-pro.com/forums/topic/php-error-log-path-does-not-match-error-log-path-seen-by-server-blank-none/" target="_blank" title="PHP Error Log Path Does Not Match Help Forum Topic">PHP Error Log Path Does Not Match Help Forum Topic</a>'; echo $text; ?>
     </td>
  <tr>
    <td class="bps-table_cell_no_border">&nbsp;</td>
    <td class="bps-table_cell_no_border"><?php $text = '<h2><strong>'.__('Whats New in BPS Pro 15.2', 'bulletproof-security').'</strong></h2>'; echo $text; ?></td>
  </tr>
 <tr>
    <td class="bps-table_cell_no_border">&nbsp;</td>
    <td class="bps-table_cell_no_border"><?php $text = __('<strong>&bull; AutoRestore Automation Rebuild:</strong> AutoRestore now works seamlessly for Remote WP Core updates and web host forced WP Core updates. Dev Note: The AutoRestore WP Automatic Update function has been rebuilt/redesigned to include Remote and forced WP Core updates and uses an alternative method than the previous method of using the WP Upgrader pre_install and post_install filters to ensure AutoRestore Automation completes successfully. This rebuild also resolves files being quarantined due to issues with server/website latency/slowness. Plugin and Theme updates (Automatic, Shiny, Bulk) still use the WP Upgrader pre_install and post_install filters.  Additional Note: The WP Upgrader pre_install and post_install filters are still checked during AutoRestore Automation for WP Automatic Updates, but the WP Upgrader filters are not the primary conditional factor in determining the final AutoRestore Automation actions/processing.<br><br><strong>&bull; BugFix:</strong> AutoRestore Automation: New AutoRestore backup folders were not being successfully created during AutoRestore Automation backups for WP Core Automatic Updates that included new WP Core folders, which caused the new WP Core files in those new folders to be quarantined. Dev Note: Additional FailSafes added in the Master ARQ Fire function.<br><br><strong>&bull; Security Log: Total # of Security Log Entries by Type:</strong> New AutoRestore Automation log entry type names added. New log entry type names added to jQuery Dialog Readme help text.<br><br><strong>&bull; New Feature:</strong> Force Strong Passwords (FSP): Set password requirements for strong passwords. FSP works on standard single WordPress site types, Network|Multisite site types and BuddyPress. WooCommerce already has strong password requirements by default. The FSP option settings do not affect WooCommerce Forms. Notes: FSP option settings are pre-saved with default settings on BPS plugin upgrade and in the Setup Wizard. FSP is Turned Off by default. Select FSP On to turn FSP On.<br><br><strong>&bull; New Option:</strong> Setup Wizard Options: Network|Multisite Sitewide Force Strong Passwords Settings. Create/update FSP option settings on all  Network|Multisite subsites. Note: FSP option settings are also created/updated when running the Setup Wizard.<br><br><strong>&bull; Setup Wizard AutoFix:</strong> New Setup Wizard AutoFix whitelist rule added for the Link Whisper and Link Whisper Premium plugins.<br><br><strong>&bull; Plugin Firewall:</strong> IPv4/IPv6 translation IP address matching condition added. Current User ID != 1 condition removed from the User Roles section in the PFW Roles function. New condition added to prevent blank IP addresses returned in the User Roles section in the PFW Roles function. Dev Note: These additional measures have been created to prevent blank IP addresses from being written (not written) into the Plugin Firewall ADDITIONAL ROLES IP htaccess code section.<br><br><strong>&bull; Procedural Change:</strong> System Info: Removed green and red font text colors from the PHP Server|PHP.ini Info section.<br><br><strong>&bull; Procedural Fix:</strong> jQuery Dialog Read Me help buttons: Remove the additional "Close" text displayed below the X button.<br><br><strong>&bull; Procedural Fix:</strong> PHP Notice error fix for Trying to access array offset on value of type bool in firewall-autopilot.php on line 209.<br><br><strong>&bull; Procedural Fix:</strong> MMode: Set default Maintenance Mode Time option setting to 0 if no value is entered.<br><br><strong>&bull; BugFix:</strong> Activation: gethostbyaddr() php error for Activation Key Request Form.<br><br><strong>&bull; BugFix:</strong> BPS Pro Status Display: MScan hover tooltip PHP Notice error fixed.', 'bulletproof-security'); echo $text; ?>
     </td>
  </tr>
  <tr>
    <td class="bps-table_cell_no_border">&nbsp;</td>
    <td class="bps-table_cell_no_border"><?php $text = '<h2><strong>'.__('Whats New in BPS Pro 15.1', 'bulletproof-security').'</strong></h2>'; echo $text; ?></td>
  </tr>
 <tr>
    <td class="bps-table_cell_no_border">&nbsp;</td>
    <td class="bps-table_cell_no_border"><?php $text = __('<strong>&bull; Procedural Update:</strong> Apache Modules|Directives tests: New condition added for mod_access_compat tests. All htaccess testing code is now wrapped in IfModule conditional code. The View Visual Test link and page has been removed from the BPS System Info page.<br><br><strong>&bull; Plugin Firewall:</strong> Pre-save the Additional Roles IP Whitelist option setting by default in the Pre-Installation Wizard and on BPS Pro upgrade. Administrator, Editor, Author and Contributor Roles are checked (On) by default. Dev Note: Resolves a known issue with some Cloudflare plugins reversing the client => proxy IP address order in the X forwarded for header, which causes an incorrect IP address to be created|updated in the Plugin Firewall.<br><br><strong>&bull; Removal:</strong> HUD Dismiss Notice: Plugin Firewall Additional Roles IP Whitelist feature notice is no longer necessary and has been removed.<br><br><strong>&bull; Setup Wizard:</strong> Network|Multisite Sitewide Login Security Settings and Network|Multisite Sitewide JTC Anti-Spam|Anti-Hacker Settings option settings are now included and processed in the Setup Wizard. These option settings will still remain as individual option settings on the Setup Wizard Options page.<br><br><strong>&bull; Setup Wizard:</strong> WP_DEBUG check message: Additional message text added: Turn Off WordPress Debugging before running the Pre-Installation Wizard and the Setup Wizard.<br><br><strong>&bull; Setup Wizard AutoFix:</strong> New Setup Wizard AutoFix whitelist rule added for the Restrict Content Pro plugin.<br><br><strong>&bull; Procedural Update:</strong> Added the new WP 5.6 htaccess RewriteRule: RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] to BPS htaccess code writing functions. Dev Note: Sets the HTTP Authorization header variable for cases where the WP REST API encounters a problem with REST Authentication headers not being accepted.<br><br><strong>&bull; Procedural Change:</strong> Plugin Firewall: Get the client IP address in the X Forwarded For Header instead of the Proxy IP address.<br><br><strong>&bull; Procedural Fix:</strong> Condition added to the BPS admin_notices Master function to prevent BPS admin_notices from displaying on the Web Stories plugin pages.<br><br><strong>&bull; Custom Code:</strong> Link added for the BPS HTTPS/SSL Rewrite htaccess code above Custom Code text box: 8. CUSTOM CODE WP REWRITE LOOP START.<br><br><strong>&bull; PHP Error Log Test:</strong> Generating a PHP Error Log test confirmation message instead of triggering an actual PHP error.<br><br><strong>&bull; Procedural Fix:</strong> Filter WP Site Health site_status_tests for only BPS Cron jobs that display "A scheduled event is late" error message and remove (unset) only the BPS Cron test result.<br><br><strong>&bull; System Info:</strong> Removed recommended permissions for /tmp folder.<br><br><strong>&bull; BugFix:</strong> Get the client IP address for HTTP_X_FORWARDED_FOR for use in the self-protection htaccess files that are updated in real-time in BPS plugin folders.<br><br><strong>&bull; BugFix:</strong> htaccess File Editor: Additional htaccess files disabled condition added for the htaccess File Editor root htaccess file permissions check.', 'bulletproof-security'); echo $text; ?>
     </td>
  </tr>
  <tr>
    <td class="bps-table_cell_no_border">&nbsp;</td>
    <td class="bps-table_cell_no_border"><?php $text = '<h2><strong>'.__('Whats New in BPS Pro 15', 'bulletproof-security').'</strong></h2>'; echo $text; ?></td>
  </tr>
 <tr>
    <td class="bps-table_cell_no_border">&nbsp;</td>
    <td class="bps-table_cell_no_border"><?php $text = __('<strong>&bull; New Option|Tool:</strong> Quarantine: Exclude Folders|Files from being checked by AutoRestore. This new option allows you to exclude folders and files from being checked by AutoRestore|Quarantine. This tool is the same tool that is located on the AutoRestore Add|Exclude Other Folders & Files page. Instead of having to leave the Quarantine page and go to the AutoRestore page to exclude folders or files you can now exclude folders and files directly on the Quarantine page.<br><br><strong>&bull; New Option:</strong> MScan: Exclude /tmp Files: Allows you to exclude tmp files by file name from being deleted by MScan. Usage: Some web hosts store files such as, mysql.sock, .s.PGSQL.5432 and .per-user in the /tmp folder. These files cannot be deleted by MScan, but attempting to delete these files will generate php errors. To prevent php errors from occurring you would exclude files such as these using the MScan Exclude /tmp files option setting.<br><br><strong>&bull; New Addition:</strong> Setup Wizard AutoSetup: LiteSpeed Cache caching plugin added to the Setup Wizard AutoSetup feature. LiteSpeed Cache htaccess code is now automatically setup by the Setup Wizard.<br><br><strong>&bull; Setup Wizard AutoFix:</strong> New Setup Wizard AutoFix whitelist rule added for the Nextend Social Login plugin.<br><br><strong>&bull; Setup Wizard AutoFix:</strong> New Setup Wizard AutoFix whitelist rule added for the WP Reset and WP Reset Pro plugins.<br><br><strong>&bull; Setup Wizard AutoFix:</strong> New Setup Wizard AutoFix whitelist rule added for the Jetpack plugin SSO feature.<br><br><strong>&bull; BugFix:</strong> WP Rocket AutoFix: Change WP Rocket Marker for the skip/bypass rule so that it is not detected by the HUD AutoFix function.<br><br><strong>&bull; Procedural Change:</strong> AutoRestore|Quarantine email alerts: Now include the file name and path of quarantined files with the timestamp when the file was quarantined. Additional help info added to the alert email.<br><br><strong>&bull; Procedural Change:</strong> Email Alerts: URL\'s/links in BPS email alerts have been changed from site root URL\'s/links to direct links to BPS pages. Dev Note: WordPress handles the redirect_to automatically if someone is not already logged into their website.<br><br><strong>&bull; Procedural Change:</strong> Setup Wizard: S-Monitor > Security Log: New Log Entry Has Been Logged Alerts default option setting is now set to Turn Off Displayed Alerts for new BPS Pro installations.<br><br><strong>&bull; Procedural Change:</strong> PHP Configuration Memory Limit: Parsing phpinfo() to get the PHP memory_limit Local Value instead of using get_cfg_var(\'memory_limit\') to get the PHP memory_limit value. Dev Note: If the phpinfo() function has been disabled on a host server the return value is error text.<br><br><strong>&bull; Procedural Change:</strong> BPS Pro Activation: Removed the gethostbyaddr error check since it does not have any troubleshooting value any longer.<br><br><strong>&bull; Procedural Update:</strong> Setup Wizard: Additional default AutoRestore wp-content folder exclude rules created for cache and backup folders for various plugins and themes.<br><br><strong>&bull; Procedural Update:</strong> RESS: New WP scripts whitelisted in the RESS function.<br><br><strong>&bull; Procedural Update:</strong> Setup Wizard: BPS plugin upgrade function is processed in the Setup Wizard in cases where htaccess files have been disabled.<br><br><strong>&bull; Procedural Update:</strong> Setup Wizard: Updated the htaccess Files Disabled Notice with additional help text.<br><br><strong>&bull; CSS Fix:</strong> PHP Error Log Location Set To text alignment correction.<br><br><strong>&bull; CSS Fix:</strong> All BPS Core pages: Force scrollbar to display on BPS plugin pages. Dev Note: Resolves a problem with WP Nav menus not being visible/accessible on BPS plugin jQuery UI Tab pages where the content of the BPS page is not displayed at 100% page height.<br><br><strong>&bull; Procedural Change:</strong> PHP Error Log Path Does Not Match error message:  Additional help information has been added to the help message. Dev Note: The Error Log Path Seen by Server value is displayed in the error message or the value now displays "blank/none" if there is an issue/problem with getting the "Error Log Path Seen by Server" value.<br><br><strong>&bull; BugFix:</strong> "ini_set Options code not found" error message displayed when saving a PHP Error Log path using the Set Error Log Location button instead of using the ini_set Options Form.<br><br><strong>&bull; BugFix:</strong> Setup Wizard: Error checks displayed incorrect information due to a timing/page refresh issue.', 'bulletproof-security'); echo $text; ?>
     </td>
  </tr>
  <tr>
    <td class="bps-table_cell_no_border">&nbsp;</td>
    <td class="bps-table_cell_no_border">&nbsp;</td>
  </tr>
  <tr>
    <td class="bps-table_cell_no_border">&nbsp;</td>
    <td class="bps-table_cell_no_border">&nbsp;</td>
  </tr>
</table>
</div>
        
<div id="AITpro-link">BulletProof Security Pro <?php echo BULLETPROOF_VERSION; ?> Plugin by <a href="https://forum.ait-pro.com/" target="_blank" title="AITpro Website Security">AITpro Website Security</a>
</div>
</div>
</div>