Version Description
(2021-02-11) =
Release notes: WP Activity Log 4.2: Support for all date & time formats & other major updates
New features * New date & time module that supports any type of date and time format that WordPress supports. * An all new activity log dashboard widget. * Added activity log coverage for several new WordPress settings, including automatic updates settings, date and time settings and application passwords.
Improved activity log coverage * New event IDs for changes in posts * ID 2129: User added / changed / removed a post's excerpt * ID 2130: User added / changed / removed a post's featured image
-
New event IDs for changes in WordPress settings
- ID 6035: Changed the "Your homepage displays" WordPress setting
- ID 6036: Changed the homepage in the WordPress setting
- ID 6037: Changed the posts page in the WordPress settings
- ID 6040: Changed the Timezone in the WordPress settings
- ID 6041: Changed the Date format in the WordPress settings
- ID 6042: Changed the Time format in the WordPress settings
- ID 6044: User changed the WordPress automatic update settings
-
New event IDs for application passwords
- ID 4025: User added / removed application password from own profile
- ID 4026: User added / removed application password from another user's profile
- ID 4027: User revoked all application passwords from own profile
- ID 4028: User revoked all application passwords from another user's profile
-
New event IDs for multisite network settings
- ID 7007: The setting Allow site administrators to add new users to their site was enabled / disabled
- ID 7008: The value of the Site upload space setting was changed
- ID 7009: The value of the file size allowed in the site upload space setting was changed
- ID 7010: Changed the list of allowed file types on the network
- ID 7011: Changed the value of the maximum upload file size network setting
-
Other new event IDs
- ID 1010: User requested a password reset.
Improvements
* Improved coverage of users logins, logout and failed logins activity on custom login pages.
* Standardized the text, format and metadata formatting of all the activity log events.
* Drastically improved the coverage of the activity logs sensors with a number of new event IDs.
* Redesigned the activity logs extension UI.
* Support for URL rewrites and page names (correct page title reported even if the page is a URL rewrite).
* Default activity log SMS notifications template updated.
* Plugins version numbers are now reported in the activity log (for example when a plugin is updated).
* Users who hide the plugin from plugins page now get a notification when a plugin update is available.
* Consolidated the code that generates the activity log messages.
* Merged the Help and Contact us pages in the plugin menu.
* Improved the Reports filters queries to address timeout issues on very big websites.
* Replaced the "SHOW TABLES" queries for much better plugin performance.
* Removed the "/uploads/wp-activity-log/" directory in the free edition. This is only required in premium edition.
* Support for CloudFlare HTTP headers - plugin reports correct IP when behind CloudFlare CDN or firewall (more info on firewalls support)[https://wpactivitylog.com/support/kb/support-reverse-proxies-web-application-firewalls/].
* Reports, Email & SMS notifications and other modules now fully support metadata which contains the space character. For example the user role Shop Manager.
* Remove support for custom sensors. Custom event IDs in activity log now only supported via activity log extension plugin.
* Completely removed the code of the old promotional events (stopped using them in 2017).
* Removed the request log file setting. The request log file can now be enabled via a filter.
* Removed the working directory location setting from plugin settings. Instead introduced a new wp-config.php constant: WSAL_WORKING_DIR_PATH
* Plugin now using WP_CONTENT_DIR instead of ABSPATH were applicable (better supported by WordPress specific web hosts).
* Added event text to event IDs 1001 and 1001.
* The system information file now also includes all of the plugin's settings saved in the wp_options table.
* Simplified the process that retrieves filnames.
* Several under the hood performance improvements (removed obsolete code, improved sensors etc)
Bug fixes * Event ID 1000 (user login) still logged when IP address is excluded. * Change in page template was not being logged with event ID 2048. * Event ID 2002 was not always reported in some edge cases. * Plugin's directory in uploads was not being created when website was hosted on Flywheel and WordPress.com. * Date & time were missing in CSV reports when using some specific date and time formats in WordPress. * Super admin role was also shown for administrators on single site setup. * Plugin was not showing the correct total of sessions when deleting all sessions. * Plugin was generating a PHP error when a network site was deleted. * No event was being reported when installing activity log extensions for third party plugins. * Plugin installation was not running correctly when installed alongside the Website File Changes Monitor plugin. * The setting to configure the number of failed logins to keep a log of was reset to default each time the settings page was saved. * Wrong variable was used in licensing notifications, resulting in misleading error responses when license failed to activate.
Refer to the complete plugin changelog for more detailed information about what was new, improved and fixed in previous versions of the WP Activity Log plugin.
Release Info
Developer | WPWhiteSecurity |
Plugin | WP Security Audit Log |
Version | 4.2.0 |
Comparing to | |
See all releases |
Code changes from version 4.1.5.2 to 4.2.0
- classes/AbstractLogger.php +2 -2
- classes/Adapters/MySQL/ActiveRecordAdapter.php +3 -12
- classes/Alert.php +3 -3
- classes/AlertManager.php +62 -31
- classes/AuditLogGridView.php +9 -173
- classes/AuditLogListView.php +7 -163
- classes/Connector/MySQLDB.php +2 -1
- classes/Loggers/Database.php +2 -2
- classes/SensorManager.php +4 -9
- classes/Sensors/Content.php +154 -71
- classes/Sensors/Database.php +62 -30
- classes/Sensors/FrontendLogin.php +0 -84
- classes/Sensors/LogInOut.php +20 -33
- classes/Sensors/Menus.php +38 -27
- classes/Sensors/MetaData.php +4 -1
- classes/Sensors/Multisite.php +79 -15
- classes/Sensors/PhpErrors.php +0 -177
- classes/Sensors/PluginsThemes.php +7 -3
- classes/Sensors/Request.php +0 -120
- classes/Sensors/System.php +153 -0
- classes/Sensors/UserProfile.php +94 -0
- classes/Settings.php +406 -576
- classes/ThirdPartyExtensions/GravityFormsExtension.php +2 -2
- classes/Uninstall.php +4 -21
- classes/Utilities/DateTimeFormatter.php +171 -0
- classes/Utilities/Emailer.php +3 -2
- classes/Utilities/PluginInstallAndActivate.php +34 -32
- classes/Views/AuditLog.php +3 -3
- classes/Views/Help.php +29 -1
- classes/Views/Settings.php +1 -100
- classes/Views/SetupWizard.php +4 -4
- classes/Views/ToggleAlerts.php +98 -49
- classes/WidgetManager.php +8 -3
- classes/index.php +4 -0
- css/index.php +4 -0
- defaults.php +148 -123
- img/index.php +4 -0
- index.php +4 -0
- js/auditlog.js +1 -1
- js/index.php +4 -0
- js/jquery.plugin.min.js +9 -0
- languages/wp-security-audit-log.pot +1370 -1176
- readme.txt +83 -7
- sdk/freemius/includes/class-freemius.php +9 -9
- sdk/freemius/templates/contact.php +1 -1
- sdk/index.php +4 -0
- wp-security-audit-log.php +61 -47
@@ -10,14 +10,14 @@ abstract class WSAL_AbstractLogger {
|
|
10 |
/**
|
11 |
* Instance of WpSecurityAuditLog.
|
12 |
*
|
13 |
-
* @var
|
14 |
*/
|
15 |
protected $plugin;
|
16 |
|
17 |
/**
|
18 |
* Method: Constructor.
|
19 |
*
|
20 |
-
* @param
|
21 |
* @since 1.0.0
|
22 |
*/
|
23 |
public function __construct( WpSecurityAuditLog $plugin ) {
|
10 |
/**
|
11 |
* Instance of WpSecurityAuditLog.
|
12 |
*
|
13 |
+
* @var WpSecurityAuditLog
|
14 |
*/
|
15 |
protected $plugin;
|
16 |
|
17 |
/**
|
18 |
* Method: Constructor.
|
19 |
*
|
20 |
+
* @param WpSecurityAuditLog $plugin - Instance of WpSecurityAuditLog.
|
21 |
* @since 1.0.0
|
22 |
*/
|
23 |
public function __construct( WpSecurityAuditLog $plugin ) {
|
@@ -438,7 +438,7 @@ class WSAL_Adapters_MySQL_ActiveRecord implements WSAL_Adapters_ActiveRecordInte
|
|
438 |
* @return string
|
439 |
*/
|
440 |
protected function _GetUninstallQuery() {
|
441 |
-
return 'DROP TABLE ' . $this->GetTable();
|
442 |
}
|
443 |
|
444 |
/**
|
@@ -625,18 +625,9 @@ class WSAL_Adapters_MySQL_ActiveRecord implements WSAL_Adapters_ActiveRecordInte
|
|
625 |
$sql .= " LIMIT {$_limit}";
|
626 |
}
|
627 |
$results = $_wpdb->get_results( $sql );
|
628 |
-
|
629 |
if ( ! empty( $results ) ) {
|
630 |
-
|
631 |
-
|
632 |
-
$user_id = $wpdb->get_var( $sql );
|
633 |
-
if ( null == $user_id ) {
|
634 |
-
$sql = "SELECT t4.ID FROM $wpdb->users AS t4 WHERE t4.ID = \"$row->user_id\"";
|
635 |
-
$user_id = $wpdb->get_var( $sql );
|
636 |
-
}
|
637 |
-
$row->user_id = $user_id;
|
638 |
-
$results['lastDate'] = $row->created_on;
|
639 |
-
}
|
640 |
}
|
641 |
|
642 |
return $results;
|
438 |
* @return string
|
439 |
*/
|
440 |
protected function _GetUninstallQuery() {
|
441 |
+
return 'DROP TABLE IF EXISTS ' . $this->GetTable();
|
442 |
}
|
443 |
|
444 |
/**
|
625 |
$sql .= " LIMIT {$_limit}";
|
626 |
}
|
627 |
$results = $_wpdb->get_results( $sql );
|
|
|
628 |
if ( ! empty( $results ) ) {
|
629 |
+
$last_item = end( $results );
|
630 |
+
$results['lastDate'] = $last_item->created_on;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
631 |
}
|
632 |
|
633 |
return $results;
|
@@ -122,7 +122,7 @@ final class WSAL_Alert {
|
|
122 |
* @param mixed $highlight - (Optional) Highlight format.
|
123 |
* @return string The expanded message.
|
124 |
*/
|
125 |
-
protected function GetFormattedMesg( $orig_mesg, $meta_data = array(), $meta_formatter = null, $occurrence_id = 0, $highlight = null ) {
|
126 |
// Tokenize message with regex.
|
127 |
$message = preg_split( '/(%.*?%)/', (string) $orig_mesg, -1, PREG_SPLIT_DELIM_CAPTURE );
|
128 |
if ( ! is_array( $message ) ) {
|
@@ -155,7 +155,7 @@ final class WSAL_Alert {
|
|
155 |
* @param mixed $highlight - (Optional) Highlight format.
|
156 |
* @return string Fully formatted message.
|
157 |
*/
|
158 |
-
public function GetMessage( $meta_data = array(), $meta_formatter = null, $mesg = null, $occurrence_id = 0, $highlight = false ) {
|
159 |
-
return $this->GetFormattedMesg( is_null( $mesg ) ? $this->mesg : $mesg, $meta_data, $meta_formatter, $occurrence_id, $highlight );
|
160 |
}
|
161 |
}
|
122 |
* @param mixed $highlight - (Optional) Highlight format.
|
123 |
* @return string The expanded message.
|
124 |
*/
|
125 |
+
protected function GetFormattedMesg( $orig_mesg, $meta_data = array(), $meta_formatter = null, $occurrence_id = 0, $highlight = null, $context = false ) {
|
126 |
// Tokenize message with regex.
|
127 |
$message = preg_split( '/(%.*?%)/', (string) $orig_mesg, -1, PREG_SPLIT_DELIM_CAPTURE );
|
128 |
if ( ! is_array( $message ) ) {
|
155 |
* @param mixed $highlight - (Optional) Highlight format.
|
156 |
* @return string Fully formatted message.
|
157 |
*/
|
158 |
+
public function GetMessage( $meta_data = array(), $meta_formatter = null, $mesg = null, $occurrence_id = 0, $highlight = false, $context = false ) {
|
159 |
+
return $this->GetFormattedMesg( is_null( $mesg ) ? $this->mesg : $mesg, $meta_data, $meta_formatter, $occurrence_id, $highlight, $context );
|
160 |
}
|
161 |
}
|
@@ -89,6 +89,11 @@ final class WSAL_AlertManager {
|
|
89 |
*/
|
90 |
public $ignored_cpts = array();
|
91 |
|
|
|
|
|
|
|
|
|
|
|
92 |
/**
|
93 |
* Create new AlertManager instance.
|
94 |
*
|
@@ -139,20 +144,6 @@ final class WSAL_AlertManager {
|
|
139 |
);
|
140 |
|
141 |
$this->date_format = $this->plugin->settings()->GetDateFormat();
|
142 |
-
$this->datetime_format = $this->plugin->settings()->GetDatetimeFormat( false );
|
143 |
-
$timezone = $this->plugin->settings()->GetTimezone();
|
144 |
-
|
145 |
-
if ( '0' === $timezone ) {
|
146 |
-
$timezone = 'utc';
|
147 |
-
} elseif ( '1' === $timezone ) {
|
148 |
-
$timezone = 'wp';
|
149 |
-
}
|
150 |
-
|
151 |
-
if ( 'utc' === $timezone ) {
|
152 |
-
$this->gmt_offset_sec = date( 'Z' );
|
153 |
-
} else {
|
154 |
-
$this->gmt_offset_sec = get_option( 'gmt_offset' ) * ( 60 * 60 );
|
155 |
-
}
|
156 |
}
|
157 |
|
158 |
/**
|
@@ -321,18 +312,53 @@ final class WSAL_AlertManager {
|
|
321 |
* @param callable $cond - A future condition callback (receives an object of type WSAL_AlertManager as parameter).
|
322 |
*/
|
323 |
public function TriggerIf( $type, $data, $cond = null ) {
|
|
|
324 |
$username = null;
|
325 |
$roles = [];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
326 |
if ( 1000 === $type ) {
|
327 |
// when event 1000 is triggered, the user is not logged in
|
328 |
// we need to extract the username and user roles from the event data
|
329 |
$username = array_key_exists( 'Username', $data ) ? $data['Username'] : null;
|
330 |
$roles = array_key_exists( 'CurrentUserRoles', $data ) ? $data['CurrentUserRoles'] : [];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
331 |
} else {
|
332 |
$username = wp_get_current_user()->user_login;
|
333 |
$roles = $this->plugin->settings()->GetCurrentUserRoles();
|
334 |
}
|
335 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
336 |
if ( $this->CheckEnableUserRoles( $username, $roles ) ) {
|
337 |
$this->_pipeline[] = array(
|
338 |
'type' => $type,
|
@@ -1225,6 +1251,8 @@ final class WSAL_AlertManager {
|
|
1225 |
'unblocked' => __( 'Unblocked', 'wp-security-audit-log' ),
|
1226 |
'renamed' => __( 'Renamed', 'wp-security-audit-log' ),
|
1227 |
'duplicated' => __( 'Duplicated', 'wp-security-audit-log' ),
|
|
|
|
|
1228 |
);
|
1229 |
// sort the types alphabetically.
|
1230 |
asort( $types );
|
@@ -1273,9 +1301,11 @@ final class WSAL_AlertManager {
|
|
1273 |
/**
|
1274 |
* Filter query for MWPAL.
|
1275 |
*
|
1276 |
-
* @param WSAL_Models_OccurrenceQuery $query
|
1277 |
-
* @param array
|
|
|
1278 |
* @return WSAL_Models_OccurrenceQuery
|
|
|
1279 |
*/
|
1280 |
private function filter_query( $query, $query_args ) {
|
1281 |
if ( isset( $query_args['search_term'] ) && $query_args['search_term'] ) {
|
@@ -1297,8 +1327,7 @@ final class WSAL_AlertManager {
|
|
1297 |
if ( 'event' === $prefix ) {
|
1298 |
$query->addORCondition( array( 'alert_id = %s' => $value ) );
|
1299 |
} elseif ( in_array( $prefix, array( 'from', 'to', 'on' ), true ) ) {
|
1300 |
-
$
|
1301 |
-
$date = DateTime::createFromFormat( $date_format, $value[0] );
|
1302 |
$date->setTime( 0, 0 ); // Reset time to 00:00:00.
|
1303 |
$date_string = $date->format( 'U' );
|
1304 |
|
@@ -1687,7 +1716,9 @@ final class WSAL_AlertManager {
|
|
1687 |
* Create statistics unique IPs report.
|
1688 |
*
|
1689 |
* @param array $filters - Filters.
|
|
|
1690 |
* @return array
|
|
|
1691 |
*/
|
1692 |
private function generate_statistics_unique_ips( $filters ) {
|
1693 |
$date_start = ! empty( $filters['date-range']['start'] ) ? $filters['date-range']['start'] : null;
|
@@ -1845,20 +1876,24 @@ final class WSAL_AlertManager {
|
|
1845 |
/**
|
1846 |
* Get alert details.
|
1847 |
*
|
1848 |
-
* @param int
|
1849 |
-
* @param int
|
1850 |
-
* @param int
|
1851 |
-
* @param string
|
1852 |
-
* @param int
|
1853 |
-
* @param string|array $roles
|
1854 |
-
* @param string
|
1855 |
-
* @param string
|
|
|
1856 |
* @return array|false details
|
|
|
1857 |
*/
|
1858 |
private function get_alert_details( $entry_id, $alert_id, $site_id, $created_on, $user_id = null, $roles = null, $ip = '', $ua = '' ) {
|
1859 |
// Must be a new instance every time, otherwise the alert message is not retrieved properly.
|
1860 |
$occurrence = new WSAL_Models_Occurrence();
|
1861 |
|
|
|
|
|
1862 |
// Get alert details.
|
1863 |
$code = $this->GetAlert( $alert_id );
|
1864 |
$code = $code ? $code->code : 0;
|
@@ -1918,11 +1953,7 @@ final class WSAL_AlertManager {
|
|
1918 |
'blog_name' => $blog_name,
|
1919 |
'blog_url' => $blog_url,
|
1920 |
'alert_id' => $alert_id,
|
1921 |
-
'date' =>
|
1922 |
-
'$$$',
|
1923 |
-
substr( number_format( fmod( (int) $created_on + $this->gmt_offset_sec, 1 ), 3 ), 2 ),
|
1924 |
-
date( $this->datetime_format, (int) $created_on + $this->gmt_offset_sec )
|
1925 |
-
),
|
1926 |
'code' => $const->name,
|
1927 |
'message' => $occurrence->GetAlert()->GetMessage( $occurrence->GetMetaArray(), array( $this->plugin->settings, 'meta_formatter' ), $occurrence->_cachedmessage ),
|
1928 |
'user_name' => $username,
|
89 |
*/
|
90 |
public $ignored_cpts = array();
|
91 |
|
92 |
+
/**
|
93 |
+
* @var string Date format.
|
94 |
+
*/
|
95 |
+
private $date_format;
|
96 |
+
|
97 |
/**
|
98 |
* Create new AlertManager instance.
|
99 |
*
|
144 |
);
|
145 |
|
146 |
$this->date_format = $this->plugin->settings()->GetDateFormat();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
147 |
}
|
148 |
|
149 |
/**
|
312 |
* @param callable $cond - A future condition callback (receives an object of type WSAL_AlertManager as parameter).
|
313 |
*/
|
314 |
public function TriggerIf( $type, $data, $cond = null ) {
|
315 |
+
|
316 |
$username = null;
|
317 |
$roles = [];
|
318 |
+
|
319 |
+
// if user switching plugin class exists and filter is set to disable then try get the old user.
|
320 |
+
if ( apply_filters( 'wsal_disable_user_switching_plugin_tracking', false ) && class_exists( 'user_switching' ) ) {
|
321 |
+
$old_user = user_switching::get_old_user();
|
322 |
+
if ( isset( $old_user->user_login ) ) {
|
323 |
+
// looks like this is a switched user so setup original user
|
324 |
+
// values for use when logging.
|
325 |
+
$username = $old_user->user_login;
|
326 |
+
$data['Username'] = $old_user->user_login;
|
327 |
+
$data['CurrentUserID'] = $old_user->ID;
|
328 |
+
}
|
329 |
+
}
|
330 |
+
|
331 |
if ( 1000 === $type ) {
|
332 |
// when event 1000 is triggered, the user is not logged in
|
333 |
// we need to extract the username and user roles from the event data
|
334 |
$username = array_key_exists( 'Username', $data ) ? $data['Username'] : null;
|
335 |
$roles = array_key_exists( 'CurrentUserRoles', $data ) ? $data['CurrentUserRoles'] : [];
|
336 |
+
} elseif ( class_exists( 'user_switching' ) && isset( $old_user ) && false !== $old_user ) {
|
337 |
+
// looks like this is a switched user so setup original user
|
338 |
+
// roles and values for later user.
|
339 |
+
$roles = $old_user->roles;
|
340 |
+
if ( function_exists( 'is_super_admin' ) && is_super_admin() ) {
|
341 |
+
$roles[] = 'superadmin';
|
342 |
+
}
|
343 |
+
$data['CurrentUserRoles'] = $roles;
|
344 |
} else {
|
345 |
$username = wp_get_current_user()->user_login;
|
346 |
$roles = $this->plugin->settings()->GetCurrentUserRoles();
|
347 |
}
|
348 |
|
349 |
+
// Check if IP is disabled.
|
350 |
+
if ( $this->IsDisabledIP() ) {
|
351 |
+
return;
|
352 |
+
}
|
353 |
+
|
354 |
+
// Check if PostType index is set in data array.
|
355 |
+
if ( isset( $data['PostType'] ) && ! empty( $data['PostType'] ) ) {
|
356 |
+
// If the post type is disabled then return.
|
357 |
+
if ( $this->is_disabled_post_type( $data['PostType'] ) ) {
|
358 |
+
return;
|
359 |
+
}
|
360 |
+
}
|
361 |
+
|
362 |
if ( $this->CheckEnableUserRoles( $username, $roles ) ) {
|
363 |
$this->_pipeline[] = array(
|
364 |
'type' => $type,
|
1251 |
'unblocked' => __( 'Unblocked', 'wp-security-audit-log' ),
|
1252 |
'renamed' => __( 'Renamed', 'wp-security-audit-log' ),
|
1253 |
'duplicated' => __( 'Duplicated', 'wp-security-audit-log' ),
|
1254 |
+
'submitted' => __( 'Submitted', 'wp-security-audit-log' ),
|
1255 |
+
'revoked' => __( 'Revoked', 'wp-security-audit-log' ),
|
1256 |
);
|
1257 |
// sort the types alphabetically.
|
1258 |
asort( $types );
|
1301 |
/**
|
1302 |
* Filter query for MWPAL.
|
1303 |
*
|
1304 |
+
* @param WSAL_Models_OccurrenceQuery $query - Events query.
|
1305 |
+
* @param array $query_args - Query args.
|
1306 |
+
*
|
1307 |
* @return WSAL_Models_OccurrenceQuery
|
1308 |
+
* @throws Freemius_Exception
|
1309 |
*/
|
1310 |
private function filter_query( $query, $query_args ) {
|
1311 |
if ( isset( $query_args['search_term'] ) && $query_args['search_term'] ) {
|
1327 |
if ( 'event' === $prefix ) {
|
1328 |
$query->addORCondition( array( 'alert_id = %s' => $value ) );
|
1329 |
} elseif ( in_array( $prefix, array( 'from', 'to', 'on' ), true ) ) {
|
1330 |
+
$date = DateTime::createFromFormat( $this->date_format, $value[0] );
|
|
|
1331 |
$date->setTime( 0, 0 ); // Reset time to 00:00:00.
|
1332 |
$date_string = $date->format( 'U' );
|
1333 |
|
1716 |
* Create statistics unique IPs report.
|
1717 |
*
|
1718 |
* @param array $filters - Filters.
|
1719 |
+
*
|
1720 |
* @return array
|
1721 |
+
* @throws Freemius_Exception
|
1722 |
*/
|
1723 |
private function generate_statistics_unique_ips( $filters ) {
|
1724 |
$date_start = ! empty( $filters['date-range']['start'] ) ? $filters['date-range']['start'] : null;
|
1876 |
/**
|
1877 |
* Get alert details.
|
1878 |
*
|
1879 |
+
* @param int $entry_id - Entry ID.
|
1880 |
+
* @param int $alert_id - Alert ID.
|
1881 |
+
* @param int $site_id - Site ID.
|
1882 |
+
* @param string $created_on - Alert generation time.
|
1883 |
+
* @param int $user_id - User id.
|
1884 |
+
* @param string|array $roles - User roles.
|
1885 |
+
* @param string $ip - IP address of the user.
|
1886 |
+
* @param string $ua - User agent.
|
1887 |
+
*
|
1888 |
* @return array|false details
|
1889 |
+
* @throws Exception
|
1890 |
*/
|
1891 |
private function get_alert_details( $entry_id, $alert_id, $site_id, $created_on, $user_id = null, $roles = null, $ip = '', $ua = '' ) {
|
1892 |
// Must be a new instance every time, otherwise the alert message is not retrieved properly.
|
1893 |
$occurrence = new WSAL_Models_Occurrence();
|
1894 |
|
1895 |
+
$user_id = ( ! is_numeric( $user_id ) && null !== $user_id ) ? WSAL_Rep_Util_S::swap_login_for_id( $user_id ) : $user_id;
|
1896 |
+
|
1897 |
// Get alert details.
|
1898 |
$code = $this->GetAlert( $alert_id );
|
1899 |
$code = $code ? $code->code : 0;
|
1953 |
'blog_name' => $blog_name,
|
1954 |
'blog_url' => $blog_url,
|
1955 |
'alert_id' => $alert_id,
|
1956 |
+
'date' => WSAL_Utilities_DateTimeFormatter::instance()->getFormattedDateTime( $created_on ),
|
|
|
|
|
|
|
|
|
1957 |
'code' => $const->name,
|
1958 |
'message' => $occurrence->GetAlert()->GetMessage( $occurrence->GetMetaArray(), array( $this->plugin->settings, 'meta_formatter' ), $occurrence->_cachedmessage ),
|
1959 |
'user_name' => $username,
|
@@ -31,13 +31,6 @@ class WSAL_AuditLogGridView extends WP_List_Table {
|
|
31 |
*/
|
32 |
protected $_plugin;
|
33 |
|
34 |
-
/**
|
35 |
-
* GMT Offset
|
36 |
-
*
|
37 |
-
* @var string
|
38 |
-
*/
|
39 |
-
protected $_gmt_offset_sec = 0;
|
40 |
-
|
41 |
/**
|
42 |
* Current Alert ID
|
43 |
*
|
@@ -93,24 +86,6 @@ class WSAL_AuditLogGridView extends WP_List_Table {
|
|
93 |
public function __construct( $plugin, $query_args ) {
|
94 |
$this->_plugin = $plugin;
|
95 |
$this->query_args = $query_args;
|
96 |
-
$timezone = $this->_plugin->settings()->GetTimezone();
|
97 |
-
|
98 |
-
/**
|
99 |
-
* Transform timezone values.
|
100 |
-
*
|
101 |
-
* @since 3.2.3
|
102 |
-
*/
|
103 |
-
if ( '0' === $timezone ) {
|
104 |
-
$timezone = 'utc';
|
105 |
-
} elseif ( '1' === $timezone ) {
|
106 |
-
$timezone = 'wp';
|
107 |
-
}
|
108 |
-
|
109 |
-
if ( 'utc' === $timezone ) {
|
110 |
-
$this->_gmt_offset_sec = date( 'Z' );
|
111 |
-
} else {
|
112 |
-
$this->_gmt_offset_sec = get_option( 'gmt_offset' ) * HOUR_IN_SECONDS;
|
113 |
-
}
|
114 |
|
115 |
parent::__construct(
|
116 |
array(
|
@@ -131,8 +106,7 @@ class WSAL_AuditLogGridView extends WP_List_Table {
|
|
131 |
|
132 |
|
133 |
protected function get_table_classes() {
|
134 |
-
|
135 |
-
return $table_classes;
|
136 |
}
|
137 |
|
138 |
/**
|
@@ -385,9 +359,6 @@ class WSAL_AuditLogGridView extends WP_List_Table {
|
|
385 |
* @param string $column_name - Name of the column.
|
386 |
*/
|
387 |
public function column_default( $item, $column_name ) {
|
388 |
-
// Get date format.
|
389 |
-
$datetime_format = $this->_plugin->settings()->GetDatetimeFormat();
|
390 |
-
|
391 |
// Store meta if not set.
|
392 |
if ( ! isset( $this->item_meta[ $item->getId() ] ) ) {
|
393 |
$this->item_meta[ $item->getId() ] = $item->GetMetaArray();
|
@@ -432,32 +403,19 @@ class WSAL_AuditLogGridView extends WP_List_Table {
|
|
432 |
?>
|
433 |
<table id="Event<?php echo absint( $item->id ); ?>">
|
434 |
<td class="wsal-grid-text-header"><?php esc_html_e( 'Message:', 'alm-' ); ?></td>
|
435 |
-
<td class="wsal-grid-text-data"><?php echo
|
436 |
</table>
|
437 |
<?php
|
438 |
}
|
439 |
return ob_get_clean();
|
440 |
case 'info':
|
441 |
-
$
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
str_replace(
|
449 |
-
'$$$',
|
450 |
-
substr( number_format( fmod( $item->created_on + $this->_gmt_offset_sec, 1 ), 3 ), 2 ),
|
451 |
-
date( $date_format, $item->created_on + $this->_gmt_offset_sec )
|
452 |
-
)
|
453 |
-
) : '<i>' . __( 'Unknown', 'wp-security-audit-log' ) . '</i>';
|
454 |
-
$eventtime = $item->created_on ? (
|
455 |
-
str_replace(
|
456 |
-
'$$$',
|
457 |
-
substr( number_format( fmod( $item->created_on + $this->_gmt_offset_sec, 1 ), 3 ), 2 ),
|
458 |
-
date( get_option( 'time_format' ), $item->created_on + $this->_gmt_offset_sec )
|
459 |
-
)
|
460 |
-
) : '<i>' . __( 'Unknown', 'wp-security-audit-log' ) . '</i>';
|
461 |
|
462 |
$username = $item->GetUsername( $this->item_meta[ $item->getId() ] ); // Get username.
|
463 |
$user = get_user_by( 'login', $username ); // Get user.
|
@@ -646,127 +604,6 @@ class WSAL_AuditLogGridView extends WP_List_Table {
|
|
646 |
return ( 'asc' === $this->_order ) ? $result : -$result;
|
647 |
}
|
648 |
|
649 |
-
/**
|
650 |
-
* Method: Meta data formatter.
|
651 |
-
*
|
652 |
-
* @param string $name - Name of the data.
|
653 |
-
* @param mixed $value - Value of the data.
|
654 |
-
* @return string
|
655 |
-
* @deprecated 3.3
|
656 |
-
*/
|
657 |
-
public function meta_formatter( $name, $value ) {
|
658 |
-
switch ( true ) {
|
659 |
-
case '%Message%' == $name:
|
660 |
-
return esc_html( $value );
|
661 |
-
|
662 |
-
case '%PromoMessage%' == $name:
|
663 |
-
return '<p class="promo-alert">' . $value . '</p>';
|
664 |
-
|
665 |
-
case '%PromoLink%' == $name:
|
666 |
-
case '%CommentLink%' == $name:
|
667 |
-
case '%CommentMsg%' == $name:
|
668 |
-
return $value;
|
669 |
-
|
670 |
-
case '%MetaLink%' == $name:
|
671 |
-
if ( ! empty( $value ) ) {
|
672 |
-
return "<a href=\"#\" data-disable-custom-nonce='" . wp_create_nonce( 'disable-custom-nonce' . $value ) . "' onclick=\"return WsalDisableCustom(this, '" . $value . "');\"> Exclude Custom Field from the Monitoring</a>";
|
673 |
-
} else {
|
674 |
-
return '';
|
675 |
-
}
|
676 |
-
|
677 |
-
case '%RevisionLink%' === $name:
|
678 |
-
$check_value = (string) $value;
|
679 |
-
if ( 'NULL' !== $check_value ) {
|
680 |
-
return ' Click <a target="_blank" href="' . esc_url( $value ) . '">here</a> to see the content changes.';
|
681 |
-
} else {
|
682 |
-
return false;
|
683 |
-
}
|
684 |
-
|
685 |
-
case '%EditorLinkPost%' == $name:
|
686 |
-
return ' View the <a target="_blank" href="' . esc_url( $value ) . '">post</a>';
|
687 |
-
|
688 |
-
case '%EditorLinkPage%' == $name:
|
689 |
-
return ' View the <a target="_blank" href="' . esc_url( $value ) . '">page</a>';
|
690 |
-
|
691 |
-
case '%CategoryLink%' == $name:
|
692 |
-
return ' View the <a target="_blank" href="' . esc_url( $value ) . '">category</a>';
|
693 |
-
|
694 |
-
case '%TagLink%' == $name:
|
695 |
-
return ' View the <a target="_blank" href="' . esc_url( $value ) . '">tag</a>';
|
696 |
-
|
697 |
-
case '%EditorLinkForum%' == $name:
|
698 |
-
return ' View the <a target="_blank" href="' . esc_url( $value ) . '">forum</a>';
|
699 |
-
|
700 |
-
case '%EditorLinkTopic%' == $name:
|
701 |
-
return ' View the <a target="_blank" href="' . esc_url( $value ) . '">topic</a>';
|
702 |
-
|
703 |
-
case in_array( $name, array( '%MetaValue%', '%MetaValueOld%', '%MetaValueNew%' ) ):
|
704 |
-
return '<strong>' . (
|
705 |
-
strlen( $value ) > 50 ? ( esc_html( substr( $value, 0, 50 ) ) . '…' ) : esc_html( $value )
|
706 |
-
) . '</strong>';
|
707 |
-
|
708 |
-
case '%ClientIP%' == $name:
|
709 |
-
if ( is_string( $value ) ) {
|
710 |
-
return '<strong>' . str_replace( array( '"', '[', ']' ), '', $value ) . '</strong>';
|
711 |
-
} else {
|
712 |
-
return '<i>unknown</i>';
|
713 |
-
}
|
714 |
-
|
715 |
-
case '%LogFileLink%' === $name: // Failed login file link.
|
716 |
-
return '';
|
717 |
-
|
718 |
-
case '%Attempts%' === $name: // Failed login attempts.
|
719 |
-
$check_value = (int) $value;
|
720 |
-
if ( 0 === $check_value ) {
|
721 |
-
return '';
|
722 |
-
} else {
|
723 |
-
return $value;
|
724 |
-
}
|
725 |
-
|
726 |
-
case '%LogFileText%' === $name: // Failed login file text.
|
727 |
-
return '<a href="javascript:;" onclick="download_failed_login_log( this )" data-download-nonce="' . esc_attr( wp_create_nonce( 'wsal-download-failed-logins' ) ) . '" title="' . esc_html__( 'Download the log file.', 'wp-security-audit-log' ) . '">' . esc_html__( 'Download the log file.', 'wp-security-audit-log' ) . '</a>';
|
728 |
-
|
729 |
-
case strncmp( $value, 'http://', 7 ) === 0:
|
730 |
-
case strncmp( $value, 'https://', 8 ) === 0:
|
731 |
-
return '<a href="' . esc_html( $value ) . '" title="' . esc_html( $value ) . '" target="_blank">' . esc_html( $value ) . '</a>';
|
732 |
-
|
733 |
-
case '%PostStatus%' === $name:
|
734 |
-
if ( ! empty( $value ) && 'publish' === $value ) {
|
735 |
-
return '<strong>' . esc_html__( 'published', 'wp-security-audit-log' ) . '</strong>';
|
736 |
-
} else {
|
737 |
-
return '<strong>' . esc_html( $value ) . '</strong>';
|
738 |
-
}
|
739 |
-
|
740 |
-
case '%multisite_text%' === $name:
|
741 |
-
if ( $this->is_multisite() && $value ) {
|
742 |
-
$site_info = get_blog_details( $value, true );
|
743 |
-
if ( $site_info ) {
|
744 |
-
return ' on site <a href="' . esc_url( $site_info->siteurl ) . '">' . esc_html( $site_info->blogname ) . '</a>';
|
745 |
-
}
|
746 |
-
return;
|
747 |
-
}
|
748 |
-
return;
|
749 |
-
|
750 |
-
case '%ReportText%' === $name:
|
751 |
-
return;
|
752 |
-
|
753 |
-
case '%ChangeText%' === $name:
|
754 |
-
$url = admin_url( 'admin-ajax.php' ) . '?action=AjaxInspector&occurrence=' . $this->current_alert_id;
|
755 |
-
return ' View the changes in <a class="thickbox" title="' . __( 'Alert Data Inspector', 'wp-security-audit-log' ) . '"'
|
756 |
-
. ' href="' . $url . '&TB_iframe=true&width=600&height=550">data inspector.</a>';
|
757 |
-
|
758 |
-
case '%ScanError%' === $name:
|
759 |
-
if ( 'NULL' === $value ) {
|
760 |
-
return false;
|
761 |
-
}
|
762 |
-
/* translators: Mailto link for support. */
|
763 |
-
return ' with errors. ' . sprintf( __( 'Contact us on %s for assistance', 'wp-security-audit-log' ), '<a href="mailto:support@wpsecurityauditlog.com" target="_blank">support@wpsecurityauditlog.com</a>' );
|
764 |
-
|
765 |
-
default:
|
766 |
-
return '<strong>' . esc_html( $value ) . '</strong>';
|
767 |
-
}
|
768 |
-
}
|
769 |
-
|
770 |
/**
|
771 |
* Method: Check if multisite.
|
772 |
*
|
@@ -1042,7 +879,6 @@ class WSAL_AuditLogGridView extends WP_List_Table {
|
|
1042 |
$tmp = new WSAL_Models_Occurrence();
|
1043 |
// Making sure the field exists to order by.
|
1044 |
if ( isset( $tmp->{$order_by} ) ) {
|
1045 |
-
// TODO: We used to use a custom comparator ... is it safe to let MySQL do the ordering now?.
|
1046 |
$query->addOrderBy( $order_by, $is_descending );
|
1047 |
} else {
|
1048 |
$query->addOrderBy( 'created_on', true );
|
31 |
*/
|
32 |
protected $_plugin;
|
33 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
/**
|
35 |
* Current Alert ID
|
36 |
*
|
86 |
public function __construct( $plugin, $query_args ) {
|
87 |
$this->_plugin = $plugin;
|
88 |
$this->query_args = $query_args;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
|
90 |
parent::__construct(
|
91 |
array(
|
106 |
|
107 |
|
108 |
protected function get_table_classes() {
|
109 |
+
return array( 'widefat', 'fixed', 'striped', $this->_args['plural'], 'wsal-table', 'wsal-table-grid' );
|
|
|
110 |
}
|
111 |
|
112 |
/**
|
359 |
* @param string $column_name - Name of the column.
|
360 |
*/
|
361 |
public function column_default( $item, $column_name ) {
|
|
|
|
|
|
|
362 |
// Store meta if not set.
|
363 |
if ( ! isset( $this->item_meta[ $item->getId() ] ) ) {
|
364 |
$this->item_meta[ $item->getId() ] = $item->GetMetaArray();
|
403 |
?>
|
404 |
<table id="Event<?php echo absint( $item->id ); ?>">
|
405 |
<td class="wsal-grid-text-header"><?php esc_html_e( 'Message:', 'alm-' ); ?></td>
|
406 |
+
<td class="wsal-grid-text-data"><?php echo $item->GetMessage( array( $this->_plugin->settings, 'meta_formatter' ), false, $this->item_meta[ $item->getId() ] ); ?></td>
|
407 |
</table>
|
408 |
<?php
|
409 |
}
|
410 |
return ob_get_clean();
|
411 |
case 'info':
|
412 |
+
$eventdate = $item->created_on
|
413 |
+
? WSAL_Utilities_DateTimeFormatter::instance()->getFormattedDateTime($item->created_on, 'date' )
|
414 |
+
: '<i>' . __( 'Unknown', 'wp-security-audit-log' ) . '</i>';
|
415 |
+
|
416 |
+
$eventtime = $item->created_on
|
417 |
+
? WSAL_Utilities_DateTimeFormatter::instance()->getFormattedDateTime($item->created_on, 'time' )
|
418 |
+
: '<i>' . __( 'Unknown', 'wp-security-audit-log' ) . '</i>';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
419 |
|
420 |
$username = $item->GetUsername( $this->item_meta[ $item->getId() ] ); // Get username.
|
421 |
$user = get_user_by( 'login', $username ); // Get user.
|
604 |
return ( 'asc' === $this->_order ) ? $result : -$result;
|
605 |
}
|
606 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
607 |
/**
|
608 |
* Method: Check if multisite.
|
609 |
*
|
879 |
$tmp = new WSAL_Models_Occurrence();
|
880 |
// Making sure the field exists to order by.
|
881 |
if ( isset( $tmp->{$order_by} ) ) {
|
|
|
882 |
$query->addOrderBy( $order_by, $is_descending );
|
883 |
} else {
|
884 |
$query->addOrderBy( 'created_on', true );
|
@@ -31,13 +31,6 @@ class WSAL_AuditLogListView extends WP_List_Table {
|
|
31 |
*/
|
32 |
protected $_plugin;
|
33 |
|
34 |
-
/**
|
35 |
-
* GMT Offset
|
36 |
-
*
|
37 |
-
* @var string
|
38 |
-
*/
|
39 |
-
protected $_gmt_offset_sec = 0;
|
40 |
-
|
41 |
/**
|
42 |
* Current Alert ID
|
43 |
*
|
@@ -93,24 +86,6 @@ class WSAL_AuditLogListView extends WP_List_Table {
|
|
93 |
public function __construct( $plugin, $query_args ) {
|
94 |
$this->_plugin = $plugin;
|
95 |
$this->query_args = $query_args;
|
96 |
-
$timezone = $this->_plugin->settings()->GetTimezone();
|
97 |
-
|
98 |
-
/**
|
99 |
-
* Transform timezone values.
|
100 |
-
*
|
101 |
-
* @since 3.2.3
|
102 |
-
*/
|
103 |
-
if ( '0' === $timezone ) {
|
104 |
-
$timezone = 'utc';
|
105 |
-
} elseif ( '1' === $timezone ) {
|
106 |
-
$timezone = 'wp';
|
107 |
-
}
|
108 |
-
|
109 |
-
if ( 'utc' === $timezone ) {
|
110 |
-
$this->_gmt_offset_sec = date( 'Z' );
|
111 |
-
} else {
|
112 |
-
$this->_gmt_offset_sec = get_option( 'gmt_offset' ) * HOUR_IN_SECONDS;
|
113 |
-
}
|
114 |
|
115 |
parent::__construct(
|
116 |
array(
|
@@ -413,13 +388,12 @@ class WSAL_AuditLogListView extends WP_List_Table {
|
|
413 |
/**
|
414 |
* Method: Get default column values.
|
415 |
*
|
416 |
-
* @param WSAL_Models_Occurrence $item
|
417 |
-
* @param string
|
|
|
|
|
418 |
*/
|
419 |
public function column_default( $item, $column_name ) {
|
420 |
-
// Get date format.
|
421 |
-
$datetime_format = $this->_plugin->settings()->GetDatetimeFormat();
|
422 |
-
|
423 |
// Store meta if not set.
|
424 |
if ( ! isset( $this->item_meta[ $item->getId() ] ) ) {
|
425 |
$this->item_meta[ $item->getId() ] = $item->GetMetaArray();
|
@@ -462,18 +436,9 @@ class WSAL_AuditLogListView extends WP_List_Table {
|
|
462 |
|
463 |
return '<a class="tooltip" href="#" data-tooltip="' . esc_html( $const->name ) . '"><span class="log-type log-type-' . $const->value . '"></span></a>';
|
464 |
case 'crtd':
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
$datetime_format = str_replace( '.$$$', '', $datetime_format );
|
469 |
-
}
|
470 |
-
return $item->created_on ? (
|
471 |
-
str_replace(
|
472 |
-
'$$$',
|
473 |
-
substr( number_format( fmod( $item->created_on + $this->_gmt_offset_sec, 1 ), 3 ), 2 ),
|
474 |
-
date( $datetime_format, $item->created_on + $this->_gmt_offset_sec )
|
475 |
-
)
|
476 |
-
) : '<i>' . __( 'Unknown', 'wp-security-audit-log' ) . '</i>';
|
477 |
case 'user':
|
478 |
$username = $item->GetUsername( $this->item_meta[ $item->getId() ] ); // Get username.
|
479 |
$user = get_user_by( 'login', $username ); // Get user.
|
@@ -642,127 +607,6 @@ class WSAL_AuditLogListView extends WP_List_Table {
|
|
642 |
return ( 'asc' === $this->_order ) ? $result : -$result;
|
643 |
}
|
644 |
|
645 |
-
/**
|
646 |
-
* Method: Meta data formatter.
|
647 |
-
*
|
648 |
-
* @param string $name - Name of the data.
|
649 |
-
* @param mixed $value - Value of the data.
|
650 |
-
* @return string
|
651 |
-
* @deprecated 3.3
|
652 |
-
*/
|
653 |
-
public function meta_formatter( $name, $value ) {
|
654 |
-
switch ( true ) {
|
655 |
-
case '%Message%' == $name:
|
656 |
-
return esc_html( $value );
|
657 |
-
|
658 |
-
case '%PromoMessage%' == $name:
|
659 |
-
return '<p class="promo-alert">' . $value . '</p>';
|
660 |
-
|
661 |
-
case '%PromoLink%' == $name:
|
662 |
-
case '%CommentLink%' == $name:
|
663 |
-
case '%CommentMsg%' == $name:
|
664 |
-
return $value;
|
665 |
-
|
666 |
-
case '%MetaLink%' == $name:
|
667 |
-
if ( ! empty( $value ) ) {
|
668 |
-
return "<a href=\"#\" data-disable-custom-nonce='" . wp_create_nonce( 'disable-custom-nonce' . $value ) . "' onclick=\"return WsalDisableCustom(this, '" . $value . "');\"> Exclude Custom Field from the Monitoring</a>";
|
669 |
-
} else {
|
670 |
-
return '';
|
671 |
-
}
|
672 |
-
|
673 |
-
case '%RevisionLink%' === $name:
|
674 |
-
$check_value = (string) $value;
|
675 |
-
if ( 'NULL' !== $check_value ) {
|
676 |
-
return ' Click <a target="_blank" href="' . esc_url( $value ) . '">here</a> to see the content changes.';
|
677 |
-
} else {
|
678 |
-
return false;
|
679 |
-
}
|
680 |
-
|
681 |
-
case '%EditorLinkPost%' == $name:
|
682 |
-
return ' View the <a target="_blank" href="' . esc_url( $value ) . '">post</a>';
|
683 |
-
|
684 |
-
case '%EditorLinkPage%' == $name:
|
685 |
-
return ' View the <a target="_blank" href="' . esc_url( $value ) . '">page</a>';
|
686 |
-
|
687 |
-
case '%CategoryLink%' == $name:
|
688 |
-
return ' View the <a target="_blank" href="' . esc_url( $value ) . '">category</a>';
|
689 |
-
|
690 |
-
case '%TagLink%' == $name:
|
691 |
-
return ' View the <a target="_blank" href="' . esc_url( $value ) . '">tag</a>';
|
692 |
-
|
693 |
-
case '%EditorLinkForum%' == $name:
|
694 |
-
return ' View the <a target="_blank" href="' . esc_url( $value ) . '">forum</a>';
|
695 |
-
|
696 |
-
case '%EditorLinkTopic%' == $name:
|
697 |
-
return ' View the <a target="_blank" href="' . esc_url( $value ) . '">topic</a>';
|
698 |
-
|
699 |
-
case in_array( $name, array( '%MetaValue%', '%MetaValueOld%', '%MetaValueNew%' ) ):
|
700 |
-
return '<strong>' . (
|
701 |
-
strlen( $value ) > 50 ? ( esc_html( substr( $value, 0, 50 ) ) . '…' ) : esc_html( $value )
|
702 |
-
) . '</strong>';
|
703 |
-
|
704 |
-
case '%ClientIP%' == $name:
|
705 |
-
if ( is_string( $value ) ) {
|
706 |
-
return '<strong>' . str_replace( array( '"', '[', ']' ), '', $value ) . '</strong>';
|
707 |
-
} else {
|
708 |
-
return '<i>unknown</i>';
|
709 |
-
}
|
710 |
-
|
711 |
-
case '%LogFileLink%' === $name: // Failed login file link.
|
712 |
-
return '';
|
713 |
-
|
714 |
-
case '%Attempts%' === $name: // Failed login attempts.
|
715 |
-
$check_value = (int) $value;
|
716 |
-
if ( 0 === $check_value ) {
|
717 |
-
return '';
|
718 |
-
} else {
|
719 |
-
return $value;
|
720 |
-
}
|
721 |
-
|
722 |
-
case '%LogFileText%' === $name: // Failed login file text.
|
723 |
-
return '<a href="javascript:;" onclick="download_failed_login_log( this )" data-download-nonce="' . esc_attr( wp_create_nonce( 'wsal-download-failed-logins' ) ) . '" title="' . esc_html__( 'Download the log file.', 'wp-security-audit-log' ) . '">' . esc_html__( 'Download the log file.', 'wp-security-audit-log' ) . '</a>';
|
724 |
-
|
725 |
-
case strncmp( $value, 'http://', 7 ) === 0:
|
726 |
-
case strncmp( $value, 'https://', 8 ) === 0:
|
727 |
-
return '<a href="' . esc_html( $value ) . '" title="' . esc_html( $value ) . '" target="_blank">' . esc_html( $value ) . '</a>';
|
728 |
-
|
729 |
-
case '%PostStatus%' === $name:
|
730 |
-
if ( ! empty( $value ) && 'publish' === $value ) {
|
731 |
-
return '<strong>' . esc_html__( 'published', 'wp-security-audit-log' ) . '</strong>';
|
732 |
-
} else {
|
733 |
-
return '<strong>' . esc_html( $value ) . '</strong>';
|
734 |
-
}
|
735 |
-
|
736 |
-
case '%multisite_text%' === $name:
|
737 |
-
if ( $this->is_multisite() && $value ) {
|
738 |
-
$site_info = get_blog_details( $value, true );
|
739 |
-
if ( $site_info ) {
|
740 |
-
return ' on site <a href="' . esc_url( $site_info->siteurl ) . '">' . esc_html( $site_info->blogname ) . '</a>';
|
741 |
-
}
|
742 |
-
return;
|
743 |
-
}
|
744 |
-
return;
|
745 |
-
|
746 |
-
case '%ReportText%' === $name:
|
747 |
-
return;
|
748 |
-
|
749 |
-
case '%ChangeText%' === $name:
|
750 |
-
$url = admin_url( 'admin-ajax.php' ) . '?action=AjaxInspector&occurrence=' . $this->current_alert_id;
|
751 |
-
return ' View the changes in <a class="thickbox" title="' . __( 'Alert Data Inspector', 'wp-security-audit-log' ) . '"'
|
752 |
-
. ' href="' . $url . '&TB_iframe=true&width=600&height=550">data inspector.</a>';
|
753 |
-
|
754 |
-
case '%ScanError%' === $name:
|
755 |
-
if ( 'NULL' === $value ) {
|
756 |
-
return false;
|
757 |
-
}
|
758 |
-
/* translators: Mailto link for support. */
|
759 |
-
return ' with errors. ' . sprintf( __( 'Contact us on %s for assistance', 'wp-security-audit-log' ), '<a href="mailto:support@wpsecurityauditlog.com" target="_blank">support@wpsecurityauditlog.com</a>' );
|
760 |
-
|
761 |
-
default:
|
762 |
-
return '<strong>' . esc_html( $value ) . '</strong>';
|
763 |
-
}
|
764 |
-
}
|
765 |
-
|
766 |
/**
|
767 |
* Method: Check if multisite.
|
768 |
*
|
31 |
*/
|
32 |
protected $_plugin;
|
33 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
/**
|
35 |
* Current Alert ID
|
36 |
*
|
86 |
public function __construct( $plugin, $query_args ) {
|
87 |
$this->_plugin = $plugin;
|
88 |
$this->query_args = $query_args;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
|
90 |
parent::__construct(
|
91 |
array(
|
388 |
/**
|
389 |
* Method: Get default column values.
|
390 |
*
|
391 |
+
* @param WSAL_Models_Occurrence $item - Column item.
|
392 |
+
* @param string $column_name - Name of the column.
|
393 |
+
*
|
394 |
+
* @return string
|
395 |
*/
|
396 |
public function column_default( $item, $column_name ) {
|
|
|
|
|
|
|
397 |
// Store meta if not set.
|
398 |
if ( ! isset( $this->item_meta[ $item->getId() ] ) ) {
|
399 |
$this->item_meta[ $item->getId() ] = $item->GetMetaArray();
|
436 |
|
437 |
return '<a class="tooltip" href="#" data-tooltip="' . esc_html( $const->name ) . '"><span class="log-type log-type-' . $const->value . '"></span></a>';
|
438 |
case 'crtd':
|
439 |
+
return $item->created_on
|
440 |
+
? WSAL_Utilities_DateTimeFormatter::instance()->getFormattedDateTime( $item->created_on, 'datetime', true, true )
|
441 |
+
: '<i>' . __( 'Unknown', 'wp-security-audit-log' ) . '</i>';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
442 |
case 'user':
|
443 |
$username = $item->GetUsername( $this->item_meta[ $item->getId() ] ); // Get username.
|
444 |
$user = get_user_by( 'login', $username ); // Get user.
|
607 |
return ( 'asc' === $this->_order ) ? $result : -$result;
|
608 |
}
|
609 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
610 |
/**
|
611 |
* Method: Check if multisite.
|
612 |
*
|
@@ -152,7 +152,8 @@ class WSAL_Connector_MySQLDB extends WSAL_Connector_AbstractConnector implements
|
|
152 |
public function isInstalled() {
|
153 |
$wpdb = $this->getConnection();
|
154 |
$table = $wpdb->base_prefix . 'wsal_occurrences';
|
155 |
-
|
|
|
156 |
}
|
157 |
|
158 |
/**
|
152 |
public function isInstalled() {
|
153 |
$wpdb = $this->getConnection();
|
154 |
$table = $wpdb->base_prefix . 'wsal_occurrences';
|
155 |
+
$db_result = $wpdb->query( "SELECT COUNT(1) FROM {$table};");
|
156 |
+
return 1 === $db_result;
|
157 |
}
|
158 |
|
159 |
/**
|
@@ -51,8 +51,8 @@ class WSAL_Loggers_Database extends WSAL_AbstractLogger {
|
|
51 |
* @param bool $override_buffer - (Optional) Override buffer to log event immediately.
|
52 |
*/
|
53 |
public function Log( $type, $data = array(), $date = null, $siteid = null, $migrated = false, $override_buffer = false ) {
|
54 |
-
//
|
55 |
-
if ( $type < 0010
|
56 |
return;
|
57 |
}
|
58 |
|
51 |
* @param bool $override_buffer - (Optional) Override buffer to log event immediately.
|
52 |
*/
|
53 |
public function Log( $type, $data = array(), $date = null, $siteid = null, $migrated = false, $override_buffer = false ) {
|
54 |
+
// PHP alerts logging was deprecated in version 4.2.0
|
55 |
+
if ( $type < 0010 ) {
|
56 |
return;
|
57 |
}
|
58 |
|
@@ -43,11 +43,6 @@ final class WSAL_SensorManager extends WSAL_AbstractSensor {
|
|
43 |
$this->AddFromFile( $file );
|
44 |
}
|
45 |
|
46 |
-
/**
|
47 |
-
* Load Custom Sensor files from {plugin working dir}/custom-sensors/
|
48 |
-
*/
|
49 |
-
$uploads_dir_path = $plugin->settings()->get_working_dir_path( 'custom-sensors', true, true );
|
50 |
-
|
51 |
/*
|
52 |
* Get an array of directories to loop through to add custom sensors.
|
53 |
*
|
@@ -56,7 +51,7 @@ final class WSAL_SensorManager extends WSAL_AbstractSensor {
|
|
56 |
*
|
57 |
* @since 3.5.1 - Added the `wsal_custom_sensors_classes_dirs` filter.
|
58 |
*/
|
59 |
-
$paths = apply_filters( 'wsal_custom_sensors_classes_dirs', array(
|
60 |
foreach ( $paths as $inc_path ) {
|
61 |
// Check directory.
|
62 |
if ( is_dir( $inc_path ) && is_readable( $inc_path ) ) {
|
@@ -194,7 +189,7 @@ final class WSAL_SensorManager extends WSAL_AbstractSensor {
|
|
194 |
|
195 |
$frontend_events = WSAL_Settings::get_frontend_events();
|
196 |
|
197 |
-
// Check to see if LogInOut,
|
198 |
if ( WpSecurityAuditLog::is_login_screen() ) {
|
199 |
if ( 'FrontendRegister' === $filename && ! empty( $frontend_events['register'] )
|
200 |
|| 'LogInOut' === $filename ) {
|
@@ -214,7 +209,7 @@ final class WSAL_SensorManager extends WSAL_AbstractSensor {
|
|
214 |
*
|
215 |
* @param array $public_sensors - List of sensors to be loaded for visitors.
|
216 |
*/
|
217 |
-
$public_sensors = apply_filters( 'wsal_load_public_sensors', array( '
|
218 |
if ( WpSecurityAuditLog::is_frontend() && ! is_user_logged_in() && ! in_array( $filename, $public_sensors, true ) ) {
|
219 |
return false;
|
220 |
}
|
@@ -287,7 +282,7 @@ final class WSAL_SensorManager extends WSAL_AbstractSensor {
|
|
287 |
}
|
288 |
break;
|
289 |
|
290 |
-
case '
|
291 |
if ( is_user_logged_in() || empty( $frontend_events['login'] ) ) {
|
292 |
$load_sensor = false;
|
293 |
}
|
43 |
$this->AddFromFile( $file );
|
44 |
}
|
45 |
|
|
|
|
|
|
|
|
|
|
|
46 |
/*
|
47 |
* Get an array of directories to loop through to add custom sensors.
|
48 |
*
|
51 |
*
|
52 |
* @since 3.5.1 - Added the `wsal_custom_sensors_classes_dirs` filter.
|
53 |
*/
|
54 |
+
$paths = apply_filters( 'wsal_custom_sensors_classes_dirs', array() );
|
55 |
foreach ( $paths as $inc_path ) {
|
56 |
// Check directory.
|
57 |
if ( is_dir( $inc_path ) && is_readable( $inc_path ) ) {
|
189 |
|
190 |
$frontend_events = WSAL_Settings::get_frontend_events();
|
191 |
|
192 |
+
// Check to see if LogInOut, and FrontendRegister sensors should load on login page.
|
193 |
if ( WpSecurityAuditLog::is_login_screen() ) {
|
194 |
if ( 'FrontendRegister' === $filename && ! empty( $frontend_events['register'] )
|
195 |
|| 'LogInOut' === $filename ) {
|
209 |
*
|
210 |
* @param array $public_sensors - List of sensors to be loaded for visitors.
|
211 |
*/
|
212 |
+
$public_sensors = apply_filters( 'wsal_load_public_sensors', array( 'FrontendRegister', 'LogInOut' ) );
|
213 |
if ( WpSecurityAuditLog::is_frontend() && ! is_user_logged_in() && ! in_array( $filename, $public_sensors, true ) ) {
|
214 |
return false;
|
215 |
}
|
282 |
}
|
283 |
break;
|
284 |
|
285 |
+
case 'LogInOut':
|
286 |
if ( is_user_logged_in() || empty( $frontend_events['login'] ) ) {
|
287 |
$load_sensor = false;
|
288 |
}
|
@@ -73,6 +73,13 @@ class WSAL_Sensors_Content extends WSAL_AbstractSensor {
|
|
73 |
*/
|
74 |
protected $old_status = null;
|
75 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
76 |
/**
|
77 |
* Listening to events using WP hooks.
|
78 |
*/
|
@@ -93,7 +100,10 @@ class WSAL_Sensors_Content extends WSAL_AbstractSensor {
|
|
93 |
add_action( 'create_post_tag', array( $this, 'event_tag_creation' ), 10, 1 );
|
94 |
add_action( 'pre_delete_term', array( $this, 'check_taxonomy_term_deletion' ), 10, 2 );
|
95 |
add_filter( 'wp_update_term_data', array( $this, 'event_update_term_data' ), 10, 4 );
|
96 |
-
|
|
|
|
|
|
|
97 |
|
98 |
// Check if MainWP Child Plugin exists.
|
99 |
if ( WpSecurityAuditLog::is_mainwp_active() ) {
|
@@ -114,13 +124,14 @@ class WSAL_Sensors_Content extends WSAL_AbstractSensor {
|
|
114 |
|
115 |
// If post exists.
|
116 |
if ( ! empty( $post ) && $post instanceof WP_Post ) {
|
117 |
-
$this->_old_post
|
118 |
-
$this->_old_link
|
119 |
-
$this->_old_tmpl
|
120 |
-
$this->_old_cats
|
121 |
-
$this->_old_tags
|
122 |
-
$this->_old_stky
|
123 |
-
$this->old_status
|
|
|
124 |
}
|
125 |
}
|
126 |
|
@@ -293,10 +304,11 @@ class WSAL_Sensors_Content extends WSAL_AbstractSensor {
|
|
293 |
if ( empty( $request_params['action'] ) && isset( $request_params['page'] ) ) {
|
294 |
$event = 5025;
|
295 |
$event_data = array(
|
296 |
-
'PostID'
|
297 |
-
'PostType'
|
298 |
-
'PostTitle'
|
299 |
-
'
|
|
|
300 |
);
|
301 |
}
|
302 |
|
@@ -443,12 +455,14 @@ class WSAL_Sensors_Content extends WSAL_AbstractSensor {
|
|
443 |
public function viewing_post() {
|
444 |
// Retrieve the current post object.
|
445 |
$post = get_queried_object();
|
|
|
446 |
if ( is_user_logged_in() && ! is_admin() ) {
|
447 |
if ( $this->check_other_sensors( $post ) ) {
|
448 |
return $post->post_title;
|
449 |
}
|
450 |
|
451 |
$current_path = isset( $_SERVER['REQUEST_URI'] ) ? sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ) ) : false;
|
|
|
452 |
if (
|
453 |
! empty( $_SERVER['HTTP_REFERER'] )
|
454 |
&& ! empty( $current_path )
|
@@ -462,6 +476,12 @@ class WSAL_Sensors_Content extends WSAL_AbstractSensor {
|
|
462 |
$edit_link = $this->get_editor_link( $post ); // Get editor link.
|
463 |
$post_data = $this->get_post_event_data( $post ); // Get event post data.
|
464 |
|
|
|
|
|
|
|
|
|
|
|
|
|
465 |
// Set editor link.
|
466 |
$post_data[ $edit_link['name'] ] = $edit_link['value'];
|
467 |
$this->plugin->alerts->Trigger( 2101, $post_data );
|
@@ -664,38 +684,90 @@ class WSAL_Sensors_Content extends WSAL_AbstractSensor {
|
|
664 |
* @param string $meta_key Meta key.
|
665 |
* @param mixed $meta_value Meta value.
|
666 |
*/
|
667 |
-
public function
|
668 |
-
if (
|
669 |
return;
|
670 |
}
|
671 |
|
672 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
673 |
return;
|
674 |
}
|
675 |
|
676 |
-
$
|
677 |
-
$old_tmpl = ucwords( str_replace( array( '-', '_' ), ' ', basename( $this->_old_tmpl, '.php' ) ) );
|
678 |
-
$new_tmpl_path = $this->get_post_template( $post );
|
679 |
-
$new_tmpl = ucwords( str_replace( array( '-', '_' ), ' ', basename( $new_tmpl_path, '.php' ) ) );
|
680 |
|
681 |
-
if ( $
|
682 |
-
$
|
683 |
-
|
684 |
-
|
685 |
-
array(
|
686 |
-
'PostID' => $post->ID,
|
687 |
-
'PostType' => $post->post_type,
|
688 |
-
'PostTitle' => $post->post_title,
|
689 |
-
'PostStatus' => $post->post_status,
|
690 |
-
'PostDate' => $post->post_date,
|
691 |
-
'OldTemplate' => $old_tmpl,
|
692 |
-
'NewTemplate' => $new_tmpl,
|
693 |
-
'OldTemplatePath' => $this->_old_tmpl,
|
694 |
-
'NewTemplatePath' => $new_tmpl_path,
|
695 |
-
$editor_link['name'] => $editor_link['value'],
|
696 |
-
)
|
697 |
-
);
|
698 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
699 |
}
|
700 |
|
701 |
/**
|
@@ -1221,8 +1293,12 @@ class WSAL_Sensors_Content extends WSAL_AbstractSensor {
|
|
1221 |
* @param WP_Post $post - The post.
|
1222 |
*/
|
1223 |
protected function check_tags_change( $old_tags, $new_tags, $post ) {
|
|
|
|
|
|
|
|
|
1224 |
$intersection = array_intersect( $old_tags, $new_tags );
|
1225 |
-
if ( count( $intersection ) === count( $old_tags ) ) {
|
1226 |
// no change, let's leave
|
1227 |
return;
|
1228 |
}
|
@@ -1290,14 +1366,6 @@ class WSAL_Sensors_Content extends WSAL_AbstractSensor {
|
|
1290 |
return 0; // Return if any Yoast alert has or will trigger.
|
1291 |
}
|
1292 |
}
|
1293 |
-
|
1294 |
-
// Get post meta events.
|
1295 |
-
$meta_events = array( 2053, 2054, 2055, 2062, 2016, 2120, 2119, 2131, 2132 );
|
1296 |
-
foreach ( $meta_events as $meta_event ) {
|
1297 |
-
if ( $this->plugin->alerts->WillOrHasTriggered( $meta_event ) ) {
|
1298 |
-
return 0; // Return if any meta event has or will trigger.
|
1299 |
-
}
|
1300 |
-
}
|
1301 |
}
|
1302 |
|
1303 |
$event_data = $this->get_post_event_data( $oldpost );
|
@@ -1305,12 +1373,29 @@ class WSAL_Sensors_Content extends WSAL_AbstractSensor {
|
|
1305 |
$event_data[ $editor_link['name'] ] = $editor_link['value'];
|
1306 |
$event_data['RevisionLink'] = $this->get_post_revision( $post_id, $oldpost );
|
1307 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1308 |
if ( 2002 === $event ) {
|
1309 |
-
|
1310 |
-
|
1311 |
-
|
1312 |
-
}
|
1313 |
-
}
|
1314 |
} else {
|
1315 |
$this->plugin->alerts->Trigger( $event, $event_data );
|
1316 |
}
|
@@ -1318,6 +1403,25 @@ class WSAL_Sensors_Content extends WSAL_AbstractSensor {
|
|
1318 |
}
|
1319 |
}
|
1320 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1321 |
/**
|
1322 |
* Ignore post from BBPress, WooCommerce Plugin
|
1323 |
* Triggered on the Sensors
|
@@ -1394,27 +1498,6 @@ class WSAL_Sensors_Content extends WSAL_AbstractSensor {
|
|
1394 |
return ! empty( $revision_id ) ? add_query_arg( 'revision', $revision_id, admin_url( 'revision.php' ) ) : null;
|
1395 |
}
|
1396 |
|
1397 |
-
/**
|
1398 |
-
* Method: This function make sures that alert 2016
|
1399 |
-
* has not been triggered before triggering categories
|
1400 |
-
* & tags events.
|
1401 |
-
*
|
1402 |
-
* @param WSAL_AlertManager $manager - WSAL Alert Manager.
|
1403 |
-
* @return bool
|
1404 |
-
*/
|
1405 |
-
public function must_not_contain_events( WSAL_AlertManager $manager ) {
|
1406 |
-
if ( $manager->WillOrHasTriggered( 2016 )
|
1407 |
-
|| $manager->WillOrHasTriggered( 2048 )
|
1408 |
-
|| $manager->WillOrHasTriggered( 2049 )
|
1409 |
-
|| $manager->WillOrHasTriggered( 2050 )
|
1410 |
-
|| $manager->WillOrHasTriggered( 2119 )
|
1411 |
-
|| $manager->WillOrHasTriggered( 2120 )
|
1412 |
-
|| $manager->WillOrHasTriggered( 2017 ) ) {
|
1413 |
-
return false;
|
1414 |
-
}
|
1415 |
-
return true;
|
1416 |
-
}
|
1417 |
-
|
1418 |
/**
|
1419 |
* Log post stuck/unstuck events.
|
1420 |
*
|
73 |
*/
|
74 |
protected $old_status = null;
|
75 |
|
76 |
+
/**
|
77 |
+
* Old Post Meta.
|
78 |
+
*
|
79 |
+
* @var string
|
80 |
+
*/
|
81 |
+
protected $old_meta = null;
|
82 |
+
|
83 |
/**
|
84 |
* Listening to events using WP hooks.
|
85 |
*/
|
100 |
add_action( 'create_post_tag', array( $this, 'event_tag_creation' ), 10, 1 );
|
101 |
add_action( 'pre_delete_term', array( $this, 'check_taxonomy_term_deletion' ), 10, 2 );
|
102 |
add_filter( 'wp_update_term_data', array( $this, 'event_update_term_data' ), 10, 4 );
|
103 |
+
add_filter( 'add_post_metadata', array( $this, 'check_changed_meta' ), 10, 4 );
|
104 |
+
add_filter( 'delete_post_metadata', array( $this, 'check_changed_meta' ), 10, 4 );
|
105 |
+
add_filter( 'updated_post_meta', array( $this, 'check_changed_meta' ), 10, 4 );
|
106 |
+
|
107 |
|
108 |
// Check if MainWP Child Plugin exists.
|
109 |
if ( WpSecurityAuditLog::is_mainwp_active() ) {
|
124 |
|
125 |
// If post exists.
|
126 |
if ( ! empty( $post ) && $post instanceof WP_Post ) {
|
127 |
+
$this->_old_post = $post;
|
128 |
+
$this->_old_link = get_permalink( $post_id );
|
129 |
+
$this->_old_tmpl = $this->get_post_template( $this->_old_post );
|
130 |
+
$this->_old_cats = $this->get_post_categories( $this->_old_post );
|
131 |
+
$this->_old_tags = $this->get_post_tags( $this->_old_post );
|
132 |
+
$this->_old_stky = in_array( $post_id, get_option( 'sticky_posts' ), true );
|
133 |
+
$this->old_status = $post->post_status;
|
134 |
+
$this->old_meta = get_post_meta( $post_id );
|
135 |
}
|
136 |
}
|
137 |
|
304 |
if ( empty( $request_params['action'] ) && isset( $request_params['page'] ) ) {
|
305 |
$event = 5025;
|
306 |
$event_data = array(
|
307 |
+
'PostID' => $post->ID,
|
308 |
+
'PostType' => $post->post_type,
|
309 |
+
'PostTitle' => $post->post_title,
|
310 |
+
'PostStatus' => $post->post_status,
|
311 |
+
'Username' => 'Plugins',
|
312 |
);
|
313 |
}
|
314 |
|
455 |
public function viewing_post() {
|
456 |
// Retrieve the current post object.
|
457 |
$post = get_queried_object();
|
458 |
+
|
459 |
if ( is_user_logged_in() && ! is_admin() ) {
|
460 |
if ( $this->check_other_sensors( $post ) ) {
|
461 |
return $post->post_title;
|
462 |
}
|
463 |
|
464 |
$current_path = isset( $_SERVER['REQUEST_URI'] ) ? sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ) ) : false;
|
465 |
+
|
466 |
if (
|
467 |
! empty( $_SERVER['HTTP_REFERER'] )
|
468 |
&& ! empty( $current_path )
|
476 |
$edit_link = $this->get_editor_link( $post ); // Get editor link.
|
477 |
$post_data = $this->get_post_event_data( $post ); // Get event post data.
|
478 |
|
479 |
+
// Update post URL based on current actual path.
|
480 |
+
$full_current_path = home_url( $current_path );
|
481 |
+
if ( $full_current_path !== $post_data['PostUrl'] ) {
|
482 |
+
$post_data['PostUrl'] = esc_url( $full_current_path );
|
483 |
+
}
|
484 |
+
|
485 |
// Set editor link.
|
486 |
$post_data[ $edit_link['name'] ] = $edit_link['value'];
|
487 |
$this->plugin->alerts->Trigger( 2101, $post_data );
|
684 |
* @param string $meta_key Meta key.
|
685 |
* @param mixed $meta_value Meta value.
|
686 |
*/
|
687 |
+
public function check_changed_meta( $meta_id, $post_id, $meta_key, $meta_value ) {
|
688 |
+
if ( ! $post_id ) {
|
689 |
return;
|
690 |
}
|
691 |
|
692 |
+
switch ( $meta_key ) {
|
693 |
+
case '_wp_page_template':
|
694 |
+
$this->check_template_change( $post_id, $meta_value );
|
695 |
+
break;
|
696 |
+
case '_thumbnail_id':
|
697 |
+
$this->check_featured_image_change( $post_id, $meta_value );
|
698 |
+
break;
|
699 |
+
default:
|
700 |
+
// no other meta keys supported here.
|
701 |
+
}
|
702 |
+
}
|
703 |
+
|
704 |
+
/**
|
705 |
+
* Check Page Template Update.
|
706 |
+
*
|
707 |
+
* @param int $post_id Post ID.
|
708 |
+
* @param mixed $meta_value Meta value.
|
709 |
+
*/
|
710 |
+
public function check_template_change( $post_id, $meta_value ) {
|
711 |
+
$post = get_post( $post_id );
|
712 |
+
$old_tmpl = ( $this->_old_tmpl && 'page' !== basename( $this->_old_tmpl, '.php' ) ) ? ucwords( str_replace( array( '-', '_' ), ' ', basename( $this->_old_tmpl, '.php' ) ) ) : __( 'Default template', 'wp-security-audit-log' );
|
713 |
+
$new_tmpl = ( $meta_value ) ? ucwords( str_replace( array( '-', '_' ), ' ', basename( $meta_value ) ) ) : __( 'Default', 'wp-security-audit-log' );
|
714 |
+
|
715 |
+
if ( $old_tmpl !== $new_tmpl ) {
|
716 |
+
$editor_link = $this->get_editor_link( $post );
|
717 |
+
$this->plugin->alerts->Trigger(
|
718 |
+
2048,
|
719 |
+
array(
|
720 |
+
'PostID' => $post->ID,
|
721 |
+
'PostType' => $post->post_type,
|
722 |
+
'PostTitle' => $post->post_title,
|
723 |
+
'PostStatus' => $post->post_status,
|
724 |
+
'PostDate' => $post->post_date,
|
725 |
+
'OldTemplate' => $old_tmpl,
|
726 |
+
'NewTemplate' => $new_tmpl,
|
727 |
+
$editor_link['name'] => $editor_link['value'],
|
728 |
+
)
|
729 |
+
);
|
730 |
+
}
|
731 |
+
}
|
732 |
+
|
733 |
+
/**
|
734 |
+
* Check Post Featured Image Update.
|
735 |
+
*
|
736 |
+
* @param int $post_id Post ID.
|
737 |
+
* @param mixed $meta_value Meta value.
|
738 |
+
*/
|
739 |
+
public function check_featured_image_change( $post_id, $meta_value ) {
|
740 |
+
$previous_featured_image = ( isset( $this->old_meta['_thumbnail_id'][0] ) ) ? wp_get_attachment_metadata( $this->old_meta['_thumbnail_id'][0] ) : false;
|
741 |
+
$new_featured_image = wp_get_attachment_metadata( $meta_value );
|
742 |
+
|
743 |
+
if ( empty( $new_featured_image['file'] ) && empty( $previous_featured_image['file'] ) ) {
|
744 |
return;
|
745 |
}
|
746 |
|
747 |
+
$event_type = 'modified';
|
|
|
|
|
|
|
748 |
|
749 |
+
if ( empty( $previous_featured_image['file'] ) && ! empty( $new_featured_image['file'] ) ) {
|
750 |
+
$event_type = 'added';
|
751 |
+
} elseif ( ! empty( $previous_featured_image['file'] ) && empty( $new_featured_image['file'] ) ) {
|
752 |
+
$event_type = 'removed';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
753 |
}
|
754 |
+
|
755 |
+
$post = get_post( $post_id );
|
756 |
+
$editor_link = $this->get_editor_link( $post );
|
757 |
+
$this->plugin->alerts->Trigger(
|
758 |
+
2130,
|
759 |
+
array(
|
760 |
+
'PostID' => $post->ID,
|
761 |
+
'PostType' => $post->post_type,
|
762 |
+
'PostTitle' => $post->post_title,
|
763 |
+
'PostStatus' => $post->post_status,
|
764 |
+
'PostDate' => $post->post_date,
|
765 |
+
'previous_image' => ( $previous_featured_image['file'] ) ? $previous_featured_image['file'] : __( 'No previous image', 'wp-security-audit-log' ),
|
766 |
+
'new_image' => ( $new_featured_image['file'] ) ? $new_featured_image['file'] : __( 'No image', 'wp-security-audit-log' ),
|
767 |
+
$editor_link['name'] => $editor_link['value'],
|
768 |
+
'EventType' => $event_type,
|
769 |
+
)
|
770 |
+
);
|
771 |
}
|
772 |
|
773 |
/**
|
1293 |
* @param WP_Post $post - The post.
|
1294 |
*/
|
1295 |
protected function check_tags_change( $old_tags, $new_tags, $post ) {
|
1296 |
+
// Ensure old_tags is not null.
|
1297 |
+
if ( ! $old_tags ) {
|
1298 |
+
$old_tags = [];
|
1299 |
+
}
|
1300 |
$intersection = array_intersect( $old_tags, $new_tags );
|
1301 |
+
if ( count( $intersection ) === count( $old_tags ) && count( $old_tags ) === count( $new_tags ) ) {
|
1302 |
// no change, let's leave
|
1303 |
return;
|
1304 |
}
|
1366 |
return 0; // Return if any Yoast alert has or will trigger.
|
1367 |
}
|
1368 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1369 |
}
|
1370 |
|
1371 |
$event_data = $this->get_post_event_data( $oldpost );
|
1373 |
$event_data[ $editor_link['name'] ] = $editor_link['value'];
|
1374 |
$event_data['RevisionLink'] = $this->get_post_revision( $post_id, $oldpost );
|
1375 |
|
1376 |
+
// Check excerpt change.
|
1377 |
+
$old_post_excerpt = $oldpost->post_excerpt;
|
1378 |
+
$post_excerpt = get_post_field( 'post_excerpt', $post_id );
|
1379 |
+
|
1380 |
+
if ( empty( $old_post_excerpt ) && ! empty( $post_excerpt ) ) {
|
1381 |
+
$event_data['EventType'] = 'added';
|
1382 |
+
} elseif ( ! empty( $old_post_excerpt ) && empty( $post_excerpt ) ) {
|
1383 |
+
$event_data['EventType'] = 'removed';
|
1384 |
+
} elseif ( $old_post_excerpt !== $post_excerpt ) {
|
1385 |
+
$event_data['EventType'] = 'modified';
|
1386 |
+
}
|
1387 |
+
|
1388 |
+
if ( $old_post_excerpt !== $post_excerpt ) {
|
1389 |
+
$event = 2129;
|
1390 |
+
// We are purposfully showing an empty, not NULL value.
|
1391 |
+
$event_data['old_post_excerpt'] = ( $old_post_excerpt ) ? $old_post_excerpt : ' ';
|
1392 |
+
$event_data['post_excerpt'] = ( $post_excerpt ) ? $post_excerpt : ' ';
|
1393 |
+
}
|
1394 |
+
|
1395 |
if ( 2002 === $event ) {
|
1396 |
+
// If we reach this point, we no longer need to check if the content has changed as we already have an event to handle it.
|
1397 |
+
// So trigger 2002 regardess and "something" has changed in the post, we just dont detect it elsewhere.
|
1398 |
+
$this->plugin->alerts->TriggerIf( $event, $event_data, array( $this, 'ignore_other_post_events' ) );
|
|
|
|
|
1399 |
} else {
|
1400 |
$this->plugin->alerts->Trigger( $event, $event_data );
|
1401 |
}
|
1403 |
}
|
1404 |
}
|
1405 |
|
1406 |
+
/**
|
1407 |
+
* Method: Ensure no other post-related events are being fired, or have recently been fired.
|
1408 |
+
*
|
1409 |
+
* @param WSAL_AlertManager $manager - WSAL Alert Manager.
|
1410 |
+
* @return bool
|
1411 |
+
*/
|
1412 |
+
public function ignore_other_post_events( WSAL_AlertManager $manager ) {
|
1413 |
+
|
1414 |
+
$post_events = array_keys( $this->plugin->alerts->get_alerts_by_sub_category( 'Content' ) );
|
1415 |
+
|
1416 |
+
foreach ( $post_events as $event ) {
|
1417 |
+
if ( $manager->WillOrHasTriggered( $event) || $this->was_triggered_recently( $event ) ) {
|
1418 |
+
return false;
|
1419 |
+
}
|
1420 |
+
}
|
1421 |
+
|
1422 |
+
return true;
|
1423 |
+
}
|
1424 |
+
|
1425 |
/**
|
1426 |
* Ignore post from BBPress, WooCommerce Plugin
|
1427 |
* Triggered on the Sensors
|
1498 |
return ! empty( $revision_id ) ? add_query_arg( 'revision', $revision_id, admin_url( 'revision.php' ) ) : null;
|
1499 |
}
|
1500 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1501 |
/**
|
1502 |
* Log post stuck/unstuck events.
|
1503 |
*
|
@@ -64,10 +64,8 @@ class WSAL_Sensors_Database extends WSAL_AbstractSensor {
|
|
64 |
* Listening to events using WP hooks.
|
65 |
*/
|
66 |
public function HookEvents() {
|
67 |
-
|
68 |
-
|
69 |
-
add_filter( 'query', array( $this, 'EventDropQuery' ) );
|
70 |
-
}
|
71 |
}
|
72 |
|
73 |
/**
|
@@ -81,25 +79,22 @@ class WSAL_Sensors_Database extends WSAL_AbstractSensor {
|
|
81 |
if ( ! self::$enabled ) {
|
82 |
return $query;
|
83 |
}
|
84 |
-
|
85 |
$table_names = array();
|
86 |
$str = explode( ' ', $query );
|
87 |
$query_type = '';
|
88 |
-
if ( preg_match( '|DROP TABLE ([^ ]*)|', $query ) ) {
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
|
|
|
|
93 |
}
|
94 |
-
|
95 |
-
} elseif ( preg_match( '/CREATE TABLE (IF NOT EXISTS)? ([^ ]*)/i', $query, $matches ) ) {
|
96 |
$table_name = $matches[count($matches) - 1];
|
97 |
-
|
98 |
-
|
99 |
-
$table_name
|
100 |
-
);
|
101 |
-
|
102 |
-
if ( $table_name !== $wpdb->get_var( $table_exists_query ) ) {
|
103 |
/**
|
104 |
* Some plugins keep trying to create tables even
|
105 |
* when they already exist - would result in too
|
@@ -337,17 +332,13 @@ class WSAL_Sensors_Database extends WSAL_AbstractSensor {
|
|
337 |
'delete' => array(),
|
338 |
);
|
339 |
|
340 |
-
global $wpdb;
|
341 |
foreach ( $queries as $qry ) {
|
342 |
$qry = str_replace( '`', '', $qry );
|
343 |
$str = explode( ' ', $qry );
|
344 |
-
if ( preg_match( '/CREATE TABLE
|
345 |
$table_name = $matches[count($matches) - 1];
|
346 |
-
|
347 |
-
|
348 |
-
$table_name
|
349 |
-
);
|
350 |
-
if ( $table_name !== $wpdb->get_var( $table_exists_query ) ) {
|
351 |
/**
|
352 |
* Some plugins keep trying to create tables even
|
353 |
* when they already exist- would result in too
|
@@ -357,11 +348,12 @@ class WSAL_Sensors_Database extends WSAL_AbstractSensor {
|
|
357 |
}
|
358 |
} elseif ( preg_match( '|ALTER TABLE ([^ ]*)|', $qry ) ) {
|
359 |
array_push( $query_types['update'], $str[2] );
|
360 |
-
} elseif ( preg_match( '|DROP TABLE ([^ ]*)|', $qry ) ) {
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
|
|
365 |
}
|
366 |
}
|
367 |
}
|
@@ -396,4 +388,44 @@ class WSAL_Sensors_Database extends WSAL_AbstractSensor {
|
|
396 |
return $plugin_name;
|
397 |
}
|
398 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
399 |
}
|
64 |
* Listening to events using WP hooks.
|
65 |
*/
|
66 |
public function HookEvents() {
|
67 |
+
add_action( 'dbdelta_queries', array( $this, 'EventDBDeltaQuery' ) );
|
68 |
+
add_filter( 'query', array( $this, 'EventDropQuery' ) );
|
|
|
|
|
69 |
}
|
70 |
|
71 |
/**
|
79 |
if ( ! self::$enabled ) {
|
80 |
return $query;
|
81 |
}
|
82 |
+
|
83 |
$table_names = array();
|
84 |
$str = explode( ' ', $query );
|
85 |
$query_type = '';
|
86 |
+
if ( preg_match( '|DROP TABLE( IF EXISTS)? ([^ ]*)|', $query ) ) {
|
87 |
+
$table_name = empty( $str[4] ) ? $str[2] : $str[4];
|
88 |
+
// only log when the table exists as some plugins try to delete tables even if they don't exist
|
89 |
+
if ( $this->is_table_operation_check_enabled($table_name, 'delete')
|
90 |
+
&& $this->check_if_table_exists( $table_name ) ) {
|
91 |
+
array_push( $table_names, $table_name );
|
92 |
+
$query_type = 'delete';
|
93 |
}
|
94 |
+
} elseif ( preg_match( '/CREATE TABLE( IF NOT EXISTS)? ([^ ]*)/i', $query, $matches ) || preg_match( '/CREATE TABLE ([^ ]*)/i', $query, $matches ) ) {
|
|
|
95 |
$table_name = $matches[count($matches) - 1];
|
96 |
+
if ( $this->is_table_operation_check_enabled($table_name, 'create')
|
97 |
+
&& ! $this->check_if_table_exists($table_name) ) {
|
|
|
|
|
|
|
|
|
98 |
/**
|
99 |
* Some plugins keep trying to create tables even
|
100 |
* when they already exist - would result in too
|
332 |
'delete' => array(),
|
333 |
);
|
334 |
|
|
|
335 |
foreach ( $queries as $qry ) {
|
336 |
$qry = str_replace( '`', '', $qry );
|
337 |
$str = explode( ' ', $qry );
|
338 |
+
if ( preg_match( '/CREATE TABLE( IF NOT EXISTS)? ([^ ]*)/i', $qry, $matches ) ) {
|
339 |
$table_name = $matches[count($matches) - 1];
|
340 |
+
if ( $this->is_table_operation_check_enabled($table_name, 'create')
|
341 |
+
&& ! $this->check_if_table_exists( $table_name ) ) {
|
|
|
|
|
|
|
342 |
/**
|
343 |
* Some plugins keep trying to create tables even
|
344 |
* when they already exist- would result in too
|
348 |
}
|
349 |
} elseif ( preg_match( '|ALTER TABLE ([^ ]*)|', $qry ) ) {
|
350 |
array_push( $query_types['update'], $str[2] );
|
351 |
+
} elseif ( preg_match( '|DROP TABLE( IF EXISTS)? ([^ ]*)|', $qry ) ) {
|
352 |
+
$table_name = empty( $str[4] ) ? $str[2] : $str[4];
|
353 |
+
// only log when the table exists as some plugins try to delete tables even if they don't exist
|
354 |
+
if ( $this->is_table_operation_check_enabled($table_name, 'delete')
|
355 |
+
&& $this->check_if_table_exists( $table_name ) ) {
|
356 |
+
array_push( $query_types['delete'], $table_name );
|
357 |
}
|
358 |
}
|
359 |
}
|
388 |
return $plugin_name;
|
389 |
}
|
390 |
}
|
391 |
+
|
392 |
+
/**
|
393 |
+
* Checks if a table exists in the WordPress database by running a SELECT query instead of former solution using
|
394 |
+
* SHOW TABLES. The previous solution has proven to be memory intense in shared hosting environments.
|
395 |
+
*
|
396 |
+
* @param string $table_name Table name.
|
397 |
+
*
|
398 |
+
* @return bool True if the table exists. False otherwise.
|
399 |
+
* @since 4.2.0
|
400 |
+
*/
|
401 |
+
private function check_if_table_exists( $table_name ) {
|
402 |
+
try {
|
403 |
+
global $wpdb;
|
404 |
+
$db_result = $wpdb->query( "SELECT COUNT(1) FROM {$table_name};" );
|
405 |
+
|
406 |
+
return ( 1 === $db_result );
|
407 |
+
} catch (Exception $e) {
|
408 |
+
return false;
|
409 |
+
}
|
410 |
+
}
|
411 |
+
|
412 |
+
/**
|
413 |
+
* Checks if alerts for certain query type are enabled or not.
|
414 |
+
*
|
415 |
+
* This is used to prevent unnecessary table existence checks. These checks should not take place
|
416 |
+
* if a specific alert is not enabled. Unfortunately if the alert is enabled or not is being checked
|
417 |
+
* too late.
|
418 |
+
*
|
419 |
+
* @param string $table_name
|
420 |
+
* @param string $query_type
|
421 |
+
*
|
422 |
+
* @return bool
|
423 |
+
* @see WSAL_AlertManager::_CommitItem()
|
424 |
+
* @since 4.2.0
|
425 |
+
*/
|
426 |
+
private function is_table_operation_check_enabled( $table_name, $query_type ) {
|
427 |
+
$actor = $this->GetActor( [ $table_name ] );
|
428 |
+
$eventCode = $this->GetEventCode( $actor, $query_type );
|
429 |
+
return $this->plugin->alerts->IsEnabled( $eventCode );
|
430 |
+
}
|
431 |
}
|
@@ -1,84 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Frontend user login sensor.
|
4 |
-
*
|
5 |
-
* @package wsal
|
6 |
-
*/
|
7 |
-
|
8 |
-
if ( ! defined( 'ABSPATH' ) ) {
|
9 |
-
exit; // Exit if accessed directly.
|
10 |
-
}
|
11 |
-
|
12 |
-
/**
|
13 |
-
* Frontend user login sensor.
|
14 |
-
*/
|
15 |
-
class WSAL_Sensors_FrontendLogin extends WSAL_AbstractSensor {
|
16 |
-
|
17 |
-
/**
|
18 |
-
* Listening to events using WP hooks.
|
19 |
-
*/
|
20 |
-
public function HookEvents() {
|
21 |
-
add_action( 'set_auth_cookie', array( $this, 'event_login' ), 10, 6 );
|
22 |
-
}
|
23 |
-
|
24 |
-
/**
|
25 |
-
* Event Login.
|
26 |
-
*
|
27 |
-
* @param string $auth_cookie Authentication cookie value.
|
28 |
-
* @param int $expire The time the login grace period expires as a UNIX timestamp.
|
29 |
-
* Default is 12 hours past the cookie's expiration time.
|
30 |
-
* @param int $expiration The time when the authentication cookie expires as a UNIX timestamp.
|
31 |
-
* Default is 14 days from now.
|
32 |
-
* @param int $user_id User ID.
|
33 |
-
* @param string $scheme Authentication scheme. Values include 'auth' or 'secure_auth'.
|
34 |
-
* @param string $token User's session token to use for this cookie.
|
35 |
-
*/
|
36 |
-
public function event_login( $auth_cookie, $expire, $expiration, $user_id, $scheme, $token ) {
|
37 |
-
|
38 |
-
$user = get_user_by( 'id', $user_id );
|
39 |
-
if ( ! is_a( $user, '\WP_User' ) ) {
|
40 |
-
// not a user logging in, return early.
|
41 |
-
return;
|
42 |
-
}
|
43 |
-
|
44 |
-
$user_login = $user->data->user_login;
|
45 |
-
$user_roles = $this->plugin->settings()->GetCurrentUserRoles( $user->roles );
|
46 |
-
|
47 |
-
if ( $this->plugin->settings()->IsLoginSuperAdmin( $user_login ) ) {
|
48 |
-
$user_roles[] = 'superadmin';
|
49 |
-
}
|
50 |
-
|
51 |
-
$alert_data = array(
|
52 |
-
'Username' => $user_login,
|
53 |
-
'CurrentUserRoles' => $user_roles,
|
54 |
-
);
|
55 |
-
|
56 |
-
// @todo attach this using a filter, it should also remove the need for duplicated function hash_token below
|
57 |
-
if ( class_exists( 'WSAL_UserSessions_Helpers' ) ) {
|
58 |
-
$alert_data['SessionID'] = $this->hash_token( $token );
|
59 |
-
}
|
60 |
-
|
61 |
-
$this->plugin->alerts->Trigger(
|
62 |
-
1000,
|
63 |
-
$alert_data,
|
64 |
-
true
|
65 |
-
);
|
66 |
-
}
|
67 |
-
|
68 |
-
/**
|
69 |
-
* Hashes the given session token.
|
70 |
-
*
|
71 |
-
* NOTE: This is how core session manager does it.
|
72 |
-
*
|
73 |
-
* @param string $token Session token to hash.
|
74 |
-
* @return string A hash of the session token (a verifier).
|
75 |
-
*/
|
76 |
-
public static function hash_token( $token ) {
|
77 |
-
// If ext/hash is not present, use sha1() instead.
|
78 |
-
if ( function_exists( 'hash' ) ) {
|
79 |
-
return hash( 'sha256', $token );
|
80 |
-
} else {
|
81 |
-
return sha1( $token );
|
82 |
-
}
|
83 |
-
}
|
84 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -52,6 +52,7 @@ class WSAL_Sensors_LogInOut extends WSAL_AbstractSensor {
|
|
52 |
add_action( 'wp_login_failed', array( $this, 'EventLoginFailure' ) );
|
53 |
add_action( 'clear_auth_cookie', array( $this, 'GetCurrentUser' ), 10 );
|
54 |
add_filter( 'wp_login_blocked', array( $this, 'EventLoginBlocked' ), 10, 1 );
|
|
|
55 |
|
56 |
if ( WpSecurityAuditLog::is_twofactor_active() ) {
|
57 |
add_action( 'login_redirect', array( $this, 'event_2fa_login' ), 10, 1 );
|
@@ -60,6 +61,7 @@ class WSAL_Sensors_LogInOut extends WSAL_AbstractSensor {
|
|
60 |
if ( WpSecurityAuditLog::is_plugin_active( 'user-switching/user-switching.php' ) ) {
|
61 |
add_action( 'switch_to_user', array( $this, 'user_switched_event' ), 10, 2 );
|
62 |
}
|
|
|
63 |
}
|
64 |
|
65 |
/**
|
@@ -501,39 +503,6 @@ class WSAL_Sensors_LogInOut extends WSAL_AbstractSensor {
|
|
501 |
}
|
502 |
}
|
503 |
|
504 |
-
/**
|
505 |
-
* Event login blocked.
|
506 |
-
*
|
507 |
-
* @param string $username - Username.
|
508 |
-
*/
|
509 |
-
public function EventLoginBlocked( $username ) {
|
510 |
-
// try get the user object first by login and then by email.
|
511 |
-
$user = get_user_by( 'login', $username );
|
512 |
-
if ( ! $user ) {
|
513 |
-
$user = get_user_by( 'email', $username );
|
514 |
-
}
|
515 |
-
// bail early if we could not get a WP_User.
|
516 |
-
if ( ! is_a( $user, '\WP_User' ) ) {
|
517 |
-
return;
|
518 |
-
}
|
519 |
-
|
520 |
-
// get the users roles.
|
521 |
-
$user_roles = $this->plugin->settings()->GetCurrentUserRoles( $user->roles );
|
522 |
-
if ( $this->plugin->settings()->IsLoginSuperAdmin( $username ) ) {
|
523 |
-
$user_roles[] = 'superadmin';
|
524 |
-
}
|
525 |
-
|
526 |
-
// record a login blocked event.
|
527 |
-
$this->plugin->alerts->Trigger(
|
528 |
-
1004,
|
529 |
-
array(
|
530 |
-
'Username' => $user->user_login,
|
531 |
-
'CurrentUserRoles' => $user_roles,
|
532 |
-
),
|
533 |
-
true
|
534 |
-
);
|
535 |
-
}
|
536 |
-
|
537 |
/**
|
538 |
* User Switched.
|
539 |
*
|
@@ -561,4 +530,22 @@ class WSAL_Sensors_LogInOut extends WSAL_AbstractSensor {
|
|
561 |
)
|
562 |
);
|
563 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
564 |
}
|
52 |
add_action( 'wp_login_failed', array( $this, 'EventLoginFailure' ) );
|
53 |
add_action( 'clear_auth_cookie', array( $this, 'GetCurrentUser' ), 10 );
|
54 |
add_filter( 'wp_login_blocked', array( $this, 'EventLoginBlocked' ), 10, 1 );
|
55 |
+
add_action( 'lostpassword_post', array( $this, 'event_user_requested_pw_reset' ), 10, 2 );
|
56 |
|
57 |
if ( WpSecurityAuditLog::is_twofactor_active() ) {
|
58 |
add_action( 'login_redirect', array( $this, 'event_2fa_login' ), 10, 1 );
|
61 |
if ( WpSecurityAuditLog::is_plugin_active( 'user-switching/user-switching.php' ) ) {
|
62 |
add_action( 'switch_to_user', array( $this, 'user_switched_event' ), 10, 2 );
|
63 |
}
|
64 |
+
|
65 |
}
|
66 |
|
67 |
/**
|
503 |
}
|
504 |
}
|
505 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
506 |
/**
|
507 |
* User Switched.
|
508 |
*
|
530 |
)
|
531 |
);
|
532 |
}
|
533 |
+
|
534 |
+
/**
|
535 |
+
* User has requested a password reset.
|
536 |
+
*
|
537 |
+
* @param object $errors Current WP_errors objtect.
|
538 |
+
* @param object $user User making the request.
|
539 |
+
*/
|
540 |
+
public function event_user_requested_pw_reset( $errors, $user ) {
|
541 |
+
$user_roles = $this->plugin->settings()->GetCurrentUserRoles( $user->roles );
|
542 |
+
$this->plugin->alerts->Trigger(
|
543 |
+
1010,
|
544 |
+
array(
|
545 |
+
'Username' => $user->user_login,
|
546 |
+
'CurrentUserRoles' => $user_roles,
|
547 |
+
),
|
548 |
+
true
|
549 |
+
);
|
550 |
+
}
|
551 |
}
|
@@ -110,7 +110,7 @@ class WSAL_Sensors_Menus extends WSAL_AbstractSensor {
|
|
110 |
return false;
|
111 |
}
|
112 |
|
113 |
-
$this->EventModifiedItems( $post_array['menu-item-object'][ $menu_item_db_id ], $post_array['menu-item-title'][ $menu_item_db_id ], $post_array['menu-name'] );
|
114 |
}
|
115 |
}
|
116 |
$old_menu_items[ $item_id ] = array(
|
@@ -138,7 +138,7 @@ class WSAL_Sensors_Menus extends WSAL_AbstractSensor {
|
|
138 |
// Add Items to the menu.
|
139 |
if ( count( $added_items ) > 0 && wp_verify_nonce( $post_array['update-nav-menu-nonce'], 'update-nav_menu' ) ) {
|
140 |
if ( in_array( $menu_item_db_id, $added_items ) ) {
|
141 |
-
$this->EventAddItems( $post_array['menu-item-object'][ $menu_item_db_id ], $post_array['menu-item-title'][ $menu_item_db_id ], $post_array['menu-name'] );
|
142 |
}
|
143 |
}
|
144 |
$removed_items = array_diff( array_keys( $old_menu_items ), $new_menu_items );
|
@@ -147,7 +147,7 @@ class WSAL_Sensors_Menus extends WSAL_AbstractSensor {
|
|
147 |
if ( count( $removed_items ) > 0 && wp_verify_nonce( $post_array['update-nav-menu-nonce'], 'update-nav_menu' ) ) {
|
148 |
if ( array_search( $menu_item_db_id, $new_menu_items ) == ( count( $new_menu_items ) - 1 ) ) {
|
149 |
foreach ( $removed_items as $removed_item_id ) {
|
150 |
-
$this->EventRemoveItems( $old_menu_items[ $removed_item_id ]['type'], $old_menu_items[ $removed_item_id ]['title'], $post_array['menu-name'] );
|
151 |
}
|
152 |
}
|
153 |
}
|
@@ -163,7 +163,10 @@ class WSAL_Sensors_Menus extends WSAL_AbstractSensor {
|
|
163 |
public function CreateMenu( $term_id, $menu_data ) {
|
164 |
$this->plugin->alerts->Trigger(
|
165 |
2078,
|
166 |
-
array(
|
|
|
|
|
|
|
167 |
);
|
168 |
}
|
169 |
|
@@ -225,6 +228,7 @@ class WSAL_Sensors_Menus extends WSAL_AbstractSensor {
|
|
225 |
2081,
|
226 |
array(
|
227 |
'MenuName' => $this->_old_menu->name,
|
|
|
228 |
)
|
229 |
);
|
230 |
}
|
@@ -259,11 +263,11 @@ class WSAL_Sensors_Menus extends WSAL_AbstractSensor {
|
|
259 |
foreach ( $this->_old_menu_terms as $old_menu_term ) {
|
260 |
if ( $old_menu_term['term_id'] == $post_array['menu'] && wp_verify_nonce( $post_array['update-nav-menu-nonce'], 'update-nav_menu' ) ) {
|
261 |
if ( $old_menu_term['name'] != $post_array['menu-name'] ) {
|
262 |
-
$this->EventChangeName( $old_menu_term['name'], $post_array['menu-name'] );
|
263 |
} else {
|
264 |
//Remove the last menu item.
|
265 |
if ( count( $content_names_old ) == 1 && count( $content_types_old ) == 1 ) {
|
266 |
-
$this->EventRemoveItems( $content_types_old[0], $content_names_old[0], $post_array['menu-name'] );
|
267 |
}
|
268 |
}
|
269 |
}
|
@@ -291,7 +295,7 @@ class WSAL_Sensors_Menus extends WSAL_AbstractSensor {
|
|
291 |
|
292 |
// Alert 2082 Auto add pages.
|
293 |
if ( ! empty( $auto_add ) ) {
|
294 |
-
$this->EventMenuSetting( $menu_data['menu-name'], $auto_add, 'Auto add pages' );
|
295 |
}
|
296 |
|
297 |
$nav_menu_locations = get_nav_menu_locations();
|
@@ -313,7 +317,7 @@ class WSAL_Sensors_Menus extends WSAL_AbstractSensor {
|
|
313 |
|
314 |
// Alert 2082 top menu.
|
315 |
if ( ! empty( $location_top ) ) {
|
316 |
-
$this->EventMenuSetting( $menu_data['menu-name'], $location_top, 'Location: top menu' );
|
317 |
}
|
318 |
|
319 |
$location_social = null;
|
@@ -333,7 +337,7 @@ class WSAL_Sensors_Menus extends WSAL_AbstractSensor {
|
|
333 |
|
334 |
// Alert 2082 Social links menu.
|
335 |
if ( ! empty( $location_social ) ) {
|
336 |
-
$this->EventMenuSetting( $menu_data['menu-name'], $location_social, 'Location: social menu' );
|
337 |
}
|
338 |
}
|
339 |
}
|
@@ -463,18 +467,18 @@ class WSAL_Sensors_Menus extends WSAL_AbstractSensor {
|
|
463 |
// Modified Items in the menu.
|
464 |
if ( $old_item['title'] != $content_name ) {
|
465 |
$is_occurred_event = true;
|
466 |
-
$this->EventModifiedItems( $value['type_label'], $content_name, $menu->name );
|
467 |
}
|
468 |
// Moved as a sub-item.
|
469 |
if ( $old_item['menu_item_parent'] != $value['menu_item_parent'] && 0 != $value['menu_item_parent'] ) {
|
470 |
$is_occurred_event = true;
|
471 |
$parent_name = $this->GetItemName( $value['nav_menu_term_id'], $value['menu_item_parent'] );
|
472 |
-
$this->EventChangeSubItem( $content_name, $parent_name, $menu->name );
|
473 |
}
|
474 |
// Changed order of the objects in a menu.
|
475 |
if ( $old_item['menu_order'] != $value['position'] ) {
|
476 |
$is_occurred_event = true;
|
477 |
-
$this->EventChangeOrder( $content_name, $menu->name );
|
478 |
}
|
479 |
}
|
480 |
}
|
@@ -482,7 +486,7 @@ class WSAL_Sensors_Menus extends WSAL_AbstractSensor {
|
|
482 |
// Add Items to the menu.
|
483 |
if ( ! $is_occurred_event ) {
|
484 |
$menu_name = ! empty( $customized['new_menu_name'] ) ? $customized['new_menu_name'] : $menu->name;
|
485 |
-
$this->EventAddItems( $value['type_label'], $content_name, $menu_name );
|
486 |
}
|
487 |
} else {
|
488 |
// Menu changed name.
|
@@ -490,7 +494,7 @@ class WSAL_Sensors_Menus extends WSAL_AbstractSensor {
|
|
490 |
foreach ( $this->_old_menu_terms as $old_menu ) {
|
491 |
foreach ( $update_menus as $update_menu ) {
|
492 |
if ( $old_menu['term_id'] == $update_menu['term_id'] && $old_menu['name'] != $update_menu['name'] ) {
|
493 |
-
$this->EventChangeName( $old_menu['name'], $update_menu['name'] );
|
494 |
}
|
495 |
}
|
496 |
}
|
@@ -498,9 +502,9 @@ class WSAL_Sensors_Menus extends WSAL_AbstractSensor {
|
|
498 |
// Setting Auto add pages.
|
499 |
if ( ! empty( $value ) && isset( $value['auto_add'] ) ) {
|
500 |
if ( $value['auto_add'] ) {
|
501 |
-
$this->EventMenuSetting( $value['name'], 'Enabled', 'Auto add pages' );
|
502 |
} else {
|
503 |
-
$this->EventMenuSetting( $value['name'], 'Disabled', 'Auto add pages' );
|
504 |
}
|
505 |
}
|
506 |
// Setting Location.
|
@@ -509,12 +513,12 @@ class WSAL_Sensors_Menus extends WSAL_AbstractSensor {
|
|
509 |
if ( ! empty( $value ) ) {
|
510 |
$menu = wp_get_nav_menu_object( $value );
|
511 |
$menu_name = ! empty( $customized['new_menu_name'] ) ? $customized['new_menu_name'] : ( ! empty( $menu ) ? $menu->name : '' );
|
512 |
-
$this->EventMenuSetting( $menu_name, 'Enabled', 'Location: ' . $loc . ' menu' );
|
513 |
} else {
|
514 |
if ( ! empty( $this->_old_menu_locations[ $loc ] ) ) {
|
515 |
$menu = wp_get_nav_menu_object( $this->_old_menu_locations[ $loc ] );
|
516 |
$menu_name = ! empty( $customized['new_menu_name'] ) ? $customized['new_menu_name'] : ( ! empty( $menu ) ? $menu->name : '' );
|
517 |
-
$this->EventMenuSetting( $menu_name, 'Disabled', 'Location: ' . $loc . ' menu' );
|
518 |
}
|
519 |
}
|
520 |
}
|
@@ -524,7 +528,7 @@ class WSAL_Sensors_Menus extends WSAL_AbstractSensor {
|
|
524 |
if ( ! empty( $this->_old_menu_items ) ) {
|
525 |
foreach ( $this->_old_menu_items as $old_item ) {
|
526 |
if ( $old_item['item_id'] == $item_id ) {
|
527 |
-
$this->EventRemoveItems( $old_item['object'], $old_item['title'], $old_item['menu_name'] );
|
528 |
}
|
529 |
}
|
530 |
}
|
@@ -543,13 +547,14 @@ class WSAL_Sensors_Menus extends WSAL_AbstractSensor {
|
|
543 |
* @param string $content_name - Name of content.
|
544 |
* @param string $menu_name - Menu name.
|
545 |
*/
|
546 |
-
private function EventAddItems( $content_type, $content_name, $menu_name ) {
|
547 |
$this->plugin->alerts->Trigger(
|
548 |
2079,
|
549 |
array(
|
550 |
'ContentType' => 'custom' === $content_type ? 'custom link' : $content_type,
|
551 |
'ContentName' => $content_name,
|
552 |
'MenuName' => $menu_name,
|
|
|
553 |
)
|
554 |
);
|
555 |
}
|
@@ -561,13 +566,14 @@ class WSAL_Sensors_Menus extends WSAL_AbstractSensor {
|
|
561 |
* @param string $content_name - Name of content.
|
562 |
* @param string $menu_name - Menu name.
|
563 |
*/
|
564 |
-
private function EventRemoveItems( $content_type, $content_name, $menu_name ) {
|
565 |
$this->plugin->alerts->Trigger(
|
566 |
2080,
|
567 |
array(
|
568 |
'ContentType' => 'custom' === $content_type ? 'custom link' : $content_type,
|
569 |
'ContentName' => $content_name,
|
570 |
'MenuName' => $menu_name,
|
|
|
571 |
)
|
572 |
);
|
573 |
}
|
@@ -579,7 +585,7 @@ class WSAL_Sensors_Menus extends WSAL_AbstractSensor {
|
|
579 |
* @param string $status - Status of menu.
|
580 |
* @param string $menu_setting - Menu setting.
|
581 |
*/
|
582 |
-
private function EventMenuSetting( $menu_name, $status, $menu_setting ) {
|
583 |
$status = 'Enabled' === $status ? 'enabled' : 'disabled';
|
584 |
$this->plugin->alerts->Trigger(
|
585 |
2082,
|
@@ -587,6 +593,7 @@ class WSAL_Sensors_Menus extends WSAL_AbstractSensor {
|
|
587 |
'EventType' => $status,
|
588 |
'MenuSetting' => $menu_setting,
|
589 |
'MenuName' => $menu_name,
|
|
|
590 |
)
|
591 |
);
|
592 |
}
|
@@ -598,13 +605,14 @@ class WSAL_Sensors_Menus extends WSAL_AbstractSensor {
|
|
598 |
* @param string $content_name - Name of content.
|
599 |
* @param string $menu_name - Menu name.
|
600 |
*/
|
601 |
-
private function EventModifiedItems( $content_type, $content_name, $menu_name ) {
|
602 |
$this->plugin->alerts->Trigger(
|
603 |
2083,
|
604 |
array(
|
605 |
'ContentType' => 'custom' === $content_type ? 'custom link' : $content_type,
|
606 |
'ContentName' => $content_name,
|
607 |
'MenuName' => $menu_name,
|
|
|
608 |
)
|
609 |
);
|
610 |
}
|
@@ -615,12 +623,13 @@ class WSAL_Sensors_Menus extends WSAL_AbstractSensor {
|
|
615 |
* @param string $old_menu_name - Old Menu Name.
|
616 |
* @param string $new_menu_name - New Menu Name.
|
617 |
*/
|
618 |
-
private function EventChangeName( $old_menu_name, $new_menu_name ) {
|
619 |
$this->plugin->alerts->Trigger(
|
620 |
2084,
|
621 |
array(
|
622 |
'OldMenuName' => $old_menu_name,
|
623 |
-
'
|
|
|
624 |
)
|
625 |
);
|
626 |
}
|
@@ -631,12 +640,13 @@ class WSAL_Sensors_Menus extends WSAL_AbstractSensor {
|
|
631 |
* @param string $item_name - Item name.
|
632 |
* @param string $menu_name - Menu name.
|
633 |
*/
|
634 |
-
private function EventChangeOrder( $item_name, $menu_name ) {
|
635 |
$this->plugin->alerts->Trigger(
|
636 |
2085,
|
637 |
array(
|
638 |
'ItemName' => $item_name,
|
639 |
'MenuName' => $menu_name,
|
|
|
640 |
)
|
641 |
);
|
642 |
}
|
@@ -648,13 +658,14 @@ class WSAL_Sensors_Menus extends WSAL_AbstractSensor {
|
|
648 |
* @param string $parent_name - Parent Name.
|
649 |
* @param string $menu_name - Menu Name.
|
650 |
*/
|
651 |
-
private function EventChangeSubItem( $item_name, $parent_name, $menu_name ) {
|
652 |
$this->plugin->alerts->Trigger(
|
653 |
2089,
|
654 |
array(
|
655 |
'ItemName' => $item_name,
|
656 |
'ParentName' => $parent_name,
|
657 |
'MenuName' => $menu_name,
|
|
|
658 |
)
|
659 |
);
|
660 |
}
|
110 |
return false;
|
111 |
}
|
112 |
|
113 |
+
$this->EventModifiedItems( $post_array['menu-item-object'][ $menu_item_db_id ], $post_array['menu-item-title'][ $menu_item_db_id ], $post_array['menu-name'], $menu_id );
|
114 |
}
|
115 |
}
|
116 |
$old_menu_items[ $item_id ] = array(
|
138 |
// Add Items to the menu.
|
139 |
if ( count( $added_items ) > 0 && wp_verify_nonce( $post_array['update-nav-menu-nonce'], 'update-nav_menu' ) ) {
|
140 |
if ( in_array( $menu_item_db_id, $added_items ) ) {
|
141 |
+
$this->EventAddItems( $post_array['menu-item-object'][ $menu_item_db_id ], $post_array['menu-item-title'][ $menu_item_db_id ], $post_array['menu-name'], $menu_id );
|
142 |
}
|
143 |
}
|
144 |
$removed_items = array_diff( array_keys( $old_menu_items ), $new_menu_items );
|
147 |
if ( count( $removed_items ) > 0 && wp_verify_nonce( $post_array['update-nav-menu-nonce'], 'update-nav_menu' ) ) {
|
148 |
if ( array_search( $menu_item_db_id, $new_menu_items ) == ( count( $new_menu_items ) - 1 ) ) {
|
149 |
foreach ( $removed_items as $removed_item_id ) {
|
150 |
+
$this->EventRemoveItems( $old_menu_items[ $removed_item_id ]['type'], $old_menu_items[ $removed_item_id ]['title'], $post_array['menu-name'], $menu_id );
|
151 |
}
|
152 |
}
|
153 |
}
|
163 |
public function CreateMenu( $term_id, $menu_data ) {
|
164 |
$this->plugin->alerts->Trigger(
|
165 |
2078,
|
166 |
+
array(
|
167 |
+
'MenuName' => $menu_data['menu-name'],
|
168 |
+
'MenuID' => $term_id,
|
169 |
+
)
|
170 |
);
|
171 |
}
|
172 |
|
228 |
2081,
|
229 |
array(
|
230 |
'MenuName' => $this->_old_menu->name,
|
231 |
+
'MenuID' => $term_id,
|
232 |
)
|
233 |
);
|
234 |
}
|
263 |
foreach ( $this->_old_menu_terms as $old_menu_term ) {
|
264 |
if ( $old_menu_term['term_id'] == $post_array['menu'] && wp_verify_nonce( $post_array['update-nav-menu-nonce'], 'update-nav_menu' ) ) {
|
265 |
if ( $old_menu_term['name'] != $post_array['menu-name'] ) {
|
266 |
+
$this->EventChangeName( $old_menu_term['name'], $post_array['menu-name'], $menu_id );
|
267 |
} else {
|
268 |
//Remove the last menu item.
|
269 |
if ( count( $content_names_old ) == 1 && count( $content_types_old ) == 1 ) {
|
270 |
+
$this->EventRemoveItems( $content_types_old[0], $content_names_old[0], $post_array['menu-name'], $menu_id );
|
271 |
}
|
272 |
}
|
273 |
}
|
295 |
|
296 |
// Alert 2082 Auto add pages.
|
297 |
if ( ! empty( $auto_add ) ) {
|
298 |
+
$this->EventMenuSetting( $menu_data['menu-name'], $auto_add, 'Auto add pages', $menu_id );
|
299 |
}
|
300 |
|
301 |
$nav_menu_locations = get_nav_menu_locations();
|
317 |
|
318 |
// Alert 2082 top menu.
|
319 |
if ( ! empty( $location_top ) ) {
|
320 |
+
$this->EventMenuSetting( $menu_data['menu-name'], $location_top, 'Location: top menu', $menu_id );
|
321 |
}
|
322 |
|
323 |
$location_social = null;
|
337 |
|
338 |
// Alert 2082 Social links menu.
|
339 |
if ( ! empty( $location_social ) ) {
|
340 |
+
$this->EventMenuSetting( $menu_data['menu-name'], $location_social, 'Location: social menu', $menu_id );
|
341 |
}
|
342 |
}
|
343 |
}
|
467 |
// Modified Items in the menu.
|
468 |
if ( $old_item['title'] != $content_name ) {
|
469 |
$is_occurred_event = true;
|
470 |
+
$this->EventModifiedItems( $value['type_label'], $content_name, $menu->name, $menu->term_id );
|
471 |
}
|
472 |
// Moved as a sub-item.
|
473 |
if ( $old_item['menu_item_parent'] != $value['menu_item_parent'] && 0 != $value['menu_item_parent'] ) {
|
474 |
$is_occurred_event = true;
|
475 |
$parent_name = $this->GetItemName( $value['nav_menu_term_id'], $value['menu_item_parent'] );
|
476 |
+
$this->EventChangeSubItem( $content_name, $parent_name, $menu->name, $menu->term_id );
|
477 |
}
|
478 |
// Changed order of the objects in a menu.
|
479 |
if ( $old_item['menu_order'] != $value['position'] ) {
|
480 |
$is_occurred_event = true;
|
481 |
+
$this->EventChangeOrder( $content_name, $menu->name, $menu->term_id );
|
482 |
}
|
483 |
}
|
484 |
}
|
486 |
// Add Items to the menu.
|
487 |
if ( ! $is_occurred_event ) {
|
488 |
$menu_name = ! empty( $customized['new_menu_name'] ) ? $customized['new_menu_name'] : $menu->name;
|
489 |
+
$this->EventAddItems( $value['type_label'], $content_name, $menu_name, $menu->term_id );
|
490 |
}
|
491 |
} else {
|
492 |
// Menu changed name.
|
494 |
foreach ( $this->_old_menu_terms as $old_menu ) {
|
495 |
foreach ( $update_menus as $update_menu ) {
|
496 |
if ( $old_menu['term_id'] == $update_menu['term_id'] && $old_menu['name'] != $update_menu['name'] ) {
|
497 |
+
$this->EventChangeName( $old_menu['name'], $update_menu['name'], $menu->term_id );
|
498 |
}
|
499 |
}
|
500 |
}
|
502 |
// Setting Auto add pages.
|
503 |
if ( ! empty( $value ) && isset( $value['auto_add'] ) ) {
|
504 |
if ( $value['auto_add'] ) {
|
505 |
+
$this->EventMenuSetting( $value['name'], 'Enabled', 'Auto add pages', $menu->term_id );
|
506 |
} else {
|
507 |
+
$this->EventMenuSetting( $value['name'], 'Disabled', 'Auto add pages', $menu->term_id );
|
508 |
}
|
509 |
}
|
510 |
// Setting Location.
|
513 |
if ( ! empty( $value ) ) {
|
514 |
$menu = wp_get_nav_menu_object( $value );
|
515 |
$menu_name = ! empty( $customized['new_menu_name'] ) ? $customized['new_menu_name'] : ( ! empty( $menu ) ? $menu->name : '' );
|
516 |
+
$this->EventMenuSetting( $menu_name, 'Enabled', 'Location: ' . $loc . ' menu', $menu->term_id );
|
517 |
} else {
|
518 |
if ( ! empty( $this->_old_menu_locations[ $loc ] ) ) {
|
519 |
$menu = wp_get_nav_menu_object( $this->_old_menu_locations[ $loc ] );
|
520 |
$menu_name = ! empty( $customized['new_menu_name'] ) ? $customized['new_menu_name'] : ( ! empty( $menu ) ? $menu->name : '' );
|
521 |
+
$this->EventMenuSetting( $menu_name, 'Disabled', 'Location: ' . $loc . ' menu', $menu->term_id );
|
522 |
}
|
523 |
}
|
524 |
}
|
528 |
if ( ! empty( $this->_old_menu_items ) ) {
|
529 |
foreach ( $this->_old_menu_items as $old_item ) {
|
530 |
if ( $old_item['item_id'] == $item_id ) {
|
531 |
+
$this->EventRemoveItems( $old_item['object'], $old_item['title'], $old_item['menu_name'], $menu->term_id );
|
532 |
}
|
533 |
}
|
534 |
}
|
547 |
* @param string $content_name - Name of content.
|
548 |
* @param string $menu_name - Menu name.
|
549 |
*/
|
550 |
+
private function EventAddItems( $content_type, $content_name, $menu_name, $menu_id ) {
|
551 |
$this->plugin->alerts->Trigger(
|
552 |
2079,
|
553 |
array(
|
554 |
'ContentType' => 'custom' === $content_type ? 'custom link' : $content_type,
|
555 |
'ContentName' => $content_name,
|
556 |
'MenuName' => $menu_name,
|
557 |
+
'MenuID' => $menu_id,
|
558 |
)
|
559 |
);
|
560 |
}
|
566 |
* @param string $content_name - Name of content.
|
567 |
* @param string $menu_name - Menu name.
|
568 |
*/
|
569 |
+
private function EventRemoveItems( $content_type, $content_name, $menu_name, $menu_id ) {
|
570 |
$this->plugin->alerts->Trigger(
|
571 |
2080,
|
572 |
array(
|
573 |
'ContentType' => 'custom' === $content_type ? 'custom link' : $content_type,
|
574 |
'ContentName' => $content_name,
|
575 |
'MenuName' => $menu_name,
|
576 |
+
'MenuID' => $menu_id,
|
577 |
)
|
578 |
);
|
579 |
}
|
585 |
* @param string $status - Status of menu.
|
586 |
* @param string $menu_setting - Menu setting.
|
587 |
*/
|
588 |
+
private function EventMenuSetting( $menu_name, $status, $menu_setting, $menu_id ) {
|
589 |
$status = 'Enabled' === $status ? 'enabled' : 'disabled';
|
590 |
$this->plugin->alerts->Trigger(
|
591 |
2082,
|
593 |
'EventType' => $status,
|
594 |
'MenuSetting' => $menu_setting,
|
595 |
'MenuName' => $menu_name,
|
596 |
+
'MenuID' => $menu_id,
|
597 |
)
|
598 |
);
|
599 |
}
|
605 |
* @param string $content_name - Name of content.
|
606 |
* @param string $menu_name - Menu name.
|
607 |
*/
|
608 |
+
private function EventModifiedItems( $content_type, $content_name, $menu_name, $menu_id ) {
|
609 |
$this->plugin->alerts->Trigger(
|
610 |
2083,
|
611 |
array(
|
612 |
'ContentType' => 'custom' === $content_type ? 'custom link' : $content_type,
|
613 |
'ContentName' => $content_name,
|
614 |
'MenuName' => $menu_name,
|
615 |
+
'MenuID' => $menu_id,
|
616 |
)
|
617 |
);
|
618 |
}
|
623 |
* @param string $old_menu_name - Old Menu Name.
|
624 |
* @param string $new_menu_name - New Menu Name.
|
625 |
*/
|
626 |
+
private function EventChangeName( $old_menu_name, $new_menu_name, $menu_id ) {
|
627 |
$this->plugin->alerts->Trigger(
|
628 |
2084,
|
629 |
array(
|
630 |
'OldMenuName' => $old_menu_name,
|
631 |
+
'MenuName' => $new_menu_name,
|
632 |
+
'MenuID' => $menu_id,
|
633 |
)
|
634 |
);
|
635 |
}
|
640 |
* @param string $item_name - Item name.
|
641 |
* @param string $menu_name - Menu name.
|
642 |
*/
|
643 |
+
private function EventChangeOrder( $item_name, $menu_name, $menu_id ) {
|
644 |
$this->plugin->alerts->Trigger(
|
645 |
2085,
|
646 |
array(
|
647 |
'ItemName' => $item_name,
|
648 |
'MenuName' => $menu_name,
|
649 |
+
'MenuID' => $menu_id,
|
650 |
)
|
651 |
);
|
652 |
}
|
658 |
* @param string $parent_name - Parent Name.
|
659 |
* @param string $menu_name - Menu Name.
|
660 |
*/
|
661 |
+
private function EventChangeSubItem( $item_name, $parent_name, $menu_name, $menu_id ) {
|
662 |
$this->plugin->alerts->Trigger(
|
663 |
2089,
|
664 |
array(
|
665 |
'ItemName' => $item_name,
|
666 |
'ParentName' => $parent_name,
|
667 |
'MenuName' => $menu_name,
|
668 |
+
'MenuID' => $menu_id,
|
669 |
)
|
670 |
);
|
671 |
}
|
@@ -86,8 +86,11 @@ class WSAL_Sensors_MetaData extends WSAL_AbstractMetaDataSensor {
|
|
86 |
unset( $this->plugin->alerts->ignored_cpts[$key] );
|
87 |
}
|
88 |
|
|
|
|
|
|
|
89 |
// Ignore updates from ignored custom post types.
|
90 |
-
if ( in_array( $post->post_type, $
|
91 |
return;
|
92 |
}
|
93 |
|
86 |
unset( $this->plugin->alerts->ignored_cpts[$key] );
|
87 |
}
|
88 |
|
89 |
+
// Allow ignored post typed to be modified via filter.
|
90 |
+
$ignored_cpts = apply_filters( 'wsal_post_meta_created_ignored_cpts', $this->plugin->alerts->ignored_cpts );
|
91 |
+
|
92 |
// Ignore updates from ignored custom post types.
|
93 |
+
if ( in_array( $post->post_type, $ignored_cpts, true ) ) {
|
94 |
return;
|
95 |
}
|
96 |
|
@@ -49,15 +49,16 @@ class WSAL_Sensors_Multisite extends WSAL_AbstractSensor {
|
|
49 |
if ( current_user_can( 'switch_themes' ) ) {
|
50 |
add_action( 'shutdown', array( $this, 'EventAdminShutdown' ) );
|
51 |
}
|
52 |
-
add_action( '
|
53 |
add_action( 'archive_blog', array( $this, 'EventArchiveBlog' ) );
|
54 |
add_action( 'unarchive_blog', array( $this, 'EventUnarchiveBlog' ) );
|
55 |
add_action( 'activate_blog', array( $this, 'EventActivateBlog' ) );
|
56 |
add_action( 'deactivate_blog', array( $this, 'EventDeactivateBlog' ) );
|
57 |
-
add_action( '
|
58 |
add_action( 'add_user_to_blog', array( $this, 'EventUserAddedToBlog' ), 10, 3 );
|
59 |
add_action( 'remove_user_from_blog', array( $this, 'EventUserRemovedFromBlog' ), 10, 2 );
|
60 |
-
|
|
|
61 |
}
|
62 |
|
63 |
/**
|
@@ -70,14 +71,75 @@ class WSAL_Sensors_Multisite extends WSAL_AbstractSensor {
|
|
70 |
* @param mixed $old_value Old value of the network option.
|
71 |
* @param int $network_id ID of the network.
|
72 |
*/
|
73 |
-
public function
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
81 |
}
|
82 |
|
83 |
/**
|
@@ -140,9 +202,10 @@ class WSAL_Sensors_Multisite extends WSAL_AbstractSensor {
|
|
140 |
/**
|
141 |
* New site added on the network.
|
142 |
*
|
143 |
-
* @param
|
144 |
*/
|
145 |
-
public function EventNewBlog( $
|
|
|
146 |
$this->plugin->alerts->Trigger(
|
147 |
7000,
|
148 |
array(
|
@@ -220,9 +283,10 @@ class WSAL_Sensors_Multisite extends WSAL_AbstractSensor {
|
|
220 |
/**
|
221 |
* Existing site deleted from network.
|
222 |
*
|
223 |
-
* @param
|
224 |
*/
|
225 |
-
public function EventDeleteBlog( $
|
|
|
226 |
$this->plugin->alerts->Trigger(
|
227 |
7005,
|
228 |
array(
|
49 |
if ( current_user_can( 'switch_themes' ) ) {
|
50 |
add_action( 'shutdown', array( $this, 'EventAdminShutdown' ) );
|
51 |
}
|
52 |
+
add_action( 'wp_insert_site', array( $this, 'EventNewBlog' ), 10, 1 );
|
53 |
add_action( 'archive_blog', array( $this, 'EventArchiveBlog' ) );
|
54 |
add_action( 'unarchive_blog', array( $this, 'EventUnarchiveBlog' ) );
|
55 |
add_action( 'activate_blog', array( $this, 'EventActivateBlog' ) );
|
56 |
add_action( 'deactivate_blog', array( $this, 'EventDeactivateBlog' ) );
|
57 |
+
add_action( 'wp_uninitialize_site', array( $this, 'EventDeleteBlog' ) );
|
58 |
add_action( 'add_user_to_blog', array( $this, 'EventUserAddedToBlog' ), 10, 3 );
|
59 |
add_action( 'remove_user_from_blog', array( $this, 'EventUserRemovedFromBlog' ), 10, 2 );
|
60 |
+
|
61 |
+
add_action( 'update_site_option', array( $this, 'on_network_option_change'), 10, 4 );
|
62 |
}
|
63 |
|
64 |
/**
|
71 |
* @param mixed $old_value Old value of the network option.
|
72 |
* @param int $network_id ID of the network.
|
73 |
*/
|
74 |
+
public function on_network_option_change( $option, $value, $old_value, $network_id ) {
|
75 |
+
|
76 |
+
switch ( $option ) {
|
77 |
+
case 'registration':
|
78 |
+
// Array of potential values.
|
79 |
+
$possible_values = array(
|
80 |
+
'none' => __( 'disabled', 'wp-security-audit-log' ),
|
81 |
+
'user' => __( 'user accounts only', 'wp-security-audit-log' ),
|
82 |
+
'blog' => __( 'users can register new sites', 'wp-security-audit-log' ),
|
83 |
+
'all' => __( 'sites & users can be registered', 'wp-security-audit-log' ),
|
84 |
+
);
|
85 |
+
$this->plugin->alerts->Trigger(
|
86 |
+
7012,
|
87 |
+
array(
|
88 |
+
'previous_setting' => ( isset( $possible_values[ $old_value ] ) ) ? $possible_values[ $old_value ] : $old_value,
|
89 |
+
'new_setting' => ( isset( $possible_values[ $value ] ) ) ? $possible_values[ $value ] : $value,
|
90 |
+
)
|
91 |
+
);
|
92 |
+
break;
|
93 |
+
|
94 |
+
case 'add_new_users':
|
95 |
+
$this->plugin->alerts->Trigger(
|
96 |
+
7007,
|
97 |
+
array(
|
98 |
+
'EventType' => ( ! $value ) ? 'disabled' : 'enabled',
|
99 |
+
)
|
100 |
+
);
|
101 |
+
break;
|
102 |
+
|
103 |
+
case 'upload_space_check_disabled':
|
104 |
+
$this->plugin->alerts->Trigger(
|
105 |
+
7008,
|
106 |
+
array(
|
107 |
+
'EventType' => ( $value ) ? 'disabled' : 'enabled',
|
108 |
+
)
|
109 |
+
);
|
110 |
+
break;
|
111 |
+
|
112 |
+
case 'blog_upload_space':
|
113 |
+
$this->plugin->alerts->Trigger(
|
114 |
+
7009,
|
115 |
+
array(
|
116 |
+
'old_value' => sanitize_text_field( $old_value ),
|
117 |
+
'new_value' => sanitize_text_field( $value ),
|
118 |
+
)
|
119 |
+
);
|
120 |
+
break;
|
121 |
+
|
122 |
+
case 'upload_filetypes':
|
123 |
+
$this->plugin->alerts->Trigger(
|
124 |
+
7010,
|
125 |
+
array(
|
126 |
+
'old_value' => sanitize_text_field( $old_value ),
|
127 |
+
'new_value' => sanitize_text_field( $value ),
|
128 |
+
)
|
129 |
+
);
|
130 |
+
break;
|
131 |
+
|
132 |
+
case 'fileupload_maxk':
|
133 |
+
$this->plugin->alerts->Trigger(
|
134 |
+
7009,
|
135 |
+
array(
|
136 |
+
'old_value' => sanitize_text_field( $old_value ),
|
137 |
+
'new_value' => sanitize_text_field( $value ),
|
138 |
+
)
|
139 |
+
);
|
140 |
+
break;
|
141 |
+
}
|
142 |
+
|
143 |
}
|
144 |
|
145 |
/**
|
202 |
/**
|
203 |
* New site added on the network.
|
204 |
*
|
205 |
+
* @param WP_Site $new_blog - New site object.
|
206 |
*/
|
207 |
+
public function EventNewBlog( $new_blog ) {
|
208 |
+
$blog_id = $new_blog->blog_id;
|
209 |
$this->plugin->alerts->Trigger(
|
210 |
7000,
|
211 |
array(
|
283 |
/**
|
284 |
* Existing site deleted from network.
|
285 |
*
|
286 |
+
* @param WP_Site $deleted_blog - Deleted blog object.
|
287 |
*/
|
288 |
+
public function EventDeleteBlog( $deleted_blog ) {
|
289 |
+
$blog_id = $deleted_blog->blog_id;
|
290 |
$this->plugin->alerts->Trigger(
|
291 |
7005,
|
292 |
array(
|
@@ -1,177 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Sensor: PHP Errors
|
4 |
-
*
|
5 |
-
* PHP Errors sensor file.
|
6 |
-
*
|
7 |
-
* @since 1.0.0
|
8 |
-
* @package Wsal
|
9 |
-
*/
|
10 |
-
|
11 |
-
// Exit if accessed directly.
|
12 |
-
if ( ! defined( 'ABSPATH' ) ) {
|
13 |
-
exit;
|
14 |
-
}
|
15 |
-
|
16 |
-
/**
|
17 |
-
* PHP Errors sensor.
|
18 |
-
*
|
19 |
-
* 0001 PHP error
|
20 |
-
* 0002 PHP warning
|
21 |
-
* 0003 PHP notice
|
22 |
-
* 0004 PHP exception
|
23 |
-
* 0005 PHP shutdown error
|
24 |
-
*
|
25 |
-
* @package Wsal
|
26 |
-
* @subpackage Sensors
|
27 |
-
*/
|
28 |
-
class WSAL_Sensors_PhpErrors extends WSAL_AbstractSensor {
|
29 |
-
|
30 |
-
/**
|
31 |
-
* Avoid Recursive Errors
|
32 |
-
*
|
33 |
-
* @var boolean
|
34 |
-
*/
|
35 |
-
protected $_avoid_error_recursion = false;
|
36 |
-
|
37 |
-
/**
|
38 |
-
* Last Error
|
39 |
-
*
|
40 |
-
* @var string
|
41 |
-
*/
|
42 |
-
protected $_maybe_last_error = null;
|
43 |
-
|
44 |
-
/**
|
45 |
-
* Error Types
|
46 |
-
*
|
47 |
-
* @var array
|
48 |
-
*/
|
49 |
-
protected $_error_types = array(
|
50 |
-
0001 => array( 1, 4, 16, 64, 256, 4096 ), // Errors.
|
51 |
-
0002 => array( 2, 32, 128, 512 ), // Warnings.
|
52 |
-
0003 => array( 8, 1024, 2048, 8192, 16384 ), // Notices.
|
53 |
-
0004 => array(), // Exceptions.
|
54 |
-
0005 => array(), // Shutdown.
|
55 |
-
);
|
56 |
-
|
57 |
-
/**
|
58 |
-
* Listening to Php events.
|
59 |
-
*/
|
60 |
-
public function HookEvents() {
|
61 |
-
if ( $this->plugin->settings()->IsPhpErrorLoggingEnabled() ) {
|
62 |
-
set_error_handler( array( $this, 'EventError' ), E_ALL );
|
63 |
-
set_exception_handler( array( $this, 'EventException' ) );
|
64 |
-
register_shutdown_function( array( $this, 'EventShutdown' ) );
|
65 |
-
}
|
66 |
-
}
|
67 |
-
|
68 |
-
/**
|
69 |
-
* Get the hash of the error.
|
70 |
-
*
|
71 |
-
* @param integer $code - Error code.
|
72 |
-
* @param string $mesg - Error message.
|
73 |
-
* @param string $file - File name.
|
74 |
-
* @param integer $line - Line number.
|
75 |
-
*/
|
76 |
-
protected function GetErrorHash( $code, $mesg, $file, $line ) {
|
77 |
-
return md5( implode( ':', func_get_args() ) );
|
78 |
-
}
|
79 |
-
|
80 |
-
/**
|
81 |
-
* PHP error, warning or notice.
|
82 |
-
*
|
83 |
-
* @param integer $errno - Error code.
|
84 |
-
* @param string $errstr - Error message.
|
85 |
-
* @param string $errfile - File name.
|
86 |
-
* @param integer $errline - Line number.
|
87 |
-
* @param array $errcontext - Error context.
|
88 |
-
*/
|
89 |
-
public function EventError( $errno, $errstr, $errfile = 'unknown', $errline = 0, $errcontext = array() ) {
|
90 |
-
if ( $this->_avoid_error_recursion ) {
|
91 |
-
return;
|
92 |
-
}
|
93 |
-
|
94 |
-
$errbacktrace = 'No Backtrace';
|
95 |
-
if ( $this->plugin->settings()->IsBacktraceLoggingEnabled() ) {
|
96 |
-
ob_start();
|
97 |
-
debug_print_backtrace();
|
98 |
-
$errbacktrace = ob_get_clean();
|
99 |
-
}
|
100 |
-
|
101 |
-
$data = array(
|
102 |
-
'Code' => $errno,
|
103 |
-
'Message' => $errstr,
|
104 |
-
'File' => $errfile,
|
105 |
-
'Line' => $errline,
|
106 |
-
'Context' => $errcontext,
|
107 |
-
'Trace' => $errbacktrace,
|
108 |
-
);
|
109 |
-
|
110 |
-
$type = 0002; // Default — middle ground.
|
111 |
-
foreach ( $this->_error_types as $temp => $codes ) {
|
112 |
-
if ( in_array( $errno, $codes ) ) {
|
113 |
-
$type = $temp;
|
114 |
-
}
|
115 |
-
}
|
116 |
-
|
117 |
-
$this->_maybe_last_error = $this->GetErrorHash( $errno, $errstr, $errfile, $errline );
|
118 |
-
$this->_avoid_error_recursion = true;
|
119 |
-
$this->plugin->alerts->Trigger( $type, $data );
|
120 |
-
$this->_avoid_error_recursion = false;
|
121 |
-
}
|
122 |
-
|
123 |
-
/**
|
124 |
-
* PHP exception.
|
125 |
-
*
|
126 |
-
* @param Exception $ex - Instance of Exception.
|
127 |
-
*/
|
128 |
-
public function EventException( Exception $ex ) {
|
129 |
-
if ( $this->_avoid_error_recursion ) {
|
130 |
-
return;
|
131 |
-
}
|
132 |
-
|
133 |
-
$errbacktrace = 'No Backtrace';
|
134 |
-
if ( $this->plugin->settings()->IsBacktraceLoggingEnabled() ) {
|
135 |
-
$errbacktrace = $ex->getTraceAsString();
|
136 |
-
}
|
137 |
-
|
138 |
-
$data = array(
|
139 |
-
'Class' => get_class( $ex ),
|
140 |
-
'Code' => $ex->getCode(),
|
141 |
-
'Message' => $ex->getMessage(),
|
142 |
-
'File' => $ex->getFile(),
|
143 |
-
'Line' => $ex->getLine(),
|
144 |
-
'Trace' => $errbacktrace,
|
145 |
-
);
|
146 |
-
|
147 |
-
if ( method_exists( $ex, 'getContext' ) ) {
|
148 |
-
$data['Context'] = $ex->getContext();
|
149 |
-
}
|
150 |
-
|
151 |
-
$this->_avoid_error_recursion = true;
|
152 |
-
$this->plugin->alerts->Trigger( 0004, $data );
|
153 |
-
$this->_avoid_error_recursion = false;
|
154 |
-
}
|
155 |
-
|
156 |
-
/**
|
157 |
-
* PHP shutdown error.
|
158 |
-
*/
|
159 |
-
public function EventShutdown() {
|
160 |
-
if ( $this->_avoid_error_recursion ) {
|
161 |
-
return;
|
162 |
-
}
|
163 |
-
|
164 |
-
if ( ($e = error_get_last()) && ($this->_maybe_last_error != $this->GetErrorHash( $e['type'], $e['message'], $e['file'], $e['line'] )) ) {
|
165 |
-
$data = array(
|
166 |
-
'Code' => $e['type'],
|
167 |
-
'Message' => $e['message'],
|
168 |
-
'File' => $e['file'],
|
169 |
-
'Line' => $e['line'],
|
170 |
-
);
|
171 |
-
|
172 |
-
$this->_avoid_error_recursion = true;
|
173 |
-
$this->plugin->alerts->Trigger( 0005, $data );
|
174 |
-
$this->_avoid_error_recursion = false;
|
175 |
-
}
|
176 |
-
}
|
177 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -98,7 +98,7 @@ class WSAL_Sensors_PluginsThemes extends WSAL_AbstractSensor {
|
|
98 |
$is_plugins = 'plugins' === $actype;
|
99 |
|
100 |
// Install plugin.
|
101 |
-
if ( in_array( $action, array( 'install-plugin', 'upload-plugin' ) ) && current_user_can( 'install_plugins' ) ) {
|
102 |
$plugin = array_values( array_diff( array_keys( get_plugins() ), array_keys( $this->old_plugins ) ) );
|
103 |
if ( count( $plugin ) != 1 ) {
|
104 |
$this->LogError(
|
@@ -281,12 +281,14 @@ class WSAL_Sensors_PluginsThemes extends WSAL_AbstractSensor {
|
|
281 |
$plugin_name = str_replace( array( '_', '-', ' ' ), ' ', $plugin_name );
|
282 |
$plugin_name = ucwords( $plugin_name );
|
283 |
$plugin_file = WP_PLUGIN_DIR . '/' . $plugin_file;
|
|
|
284 |
$this->plugin->alerts->Trigger(
|
285 |
5003,
|
286 |
array(
|
287 |
'PluginFile' => $plugin_file,
|
288 |
'PluginData' => (object) array(
|
289 |
-
'Name'
|
|
|
290 |
),
|
291 |
)
|
292 |
);
|
@@ -302,12 +304,14 @@ class WSAL_Sensors_PluginsThemes extends WSAL_AbstractSensor {
|
|
302 |
$plugin_name = basename( $plugin_file, '.php' );
|
303 |
$plugin_name = str_replace( array( '_', '-', ' ' ), ' ', $plugin_name );
|
304 |
$plugin_name = ucwords( $plugin_name );
|
|
|
305 |
$this->plugin->alerts->Trigger(
|
306 |
5003,
|
307 |
array(
|
308 |
'PluginFile' => $plugin_file,
|
309 |
'PluginData' => (object) array(
|
310 |
-
'Name'
|
|
|
311 |
),
|
312 |
)
|
313 |
);
|
98 |
$is_plugins = 'plugins' === $actype;
|
99 |
|
100 |
// Install plugin.
|
101 |
+
if ( in_array( $action, array( 'install-plugin', 'upload-plugin', 'run_addon_install' ) ) && current_user_can( 'install_plugins' ) ) {
|
102 |
$plugin = array_values( array_diff( array_keys( get_plugins() ), array_keys( $this->old_plugins ) ) );
|
103 |
if ( count( $plugin ) != 1 ) {
|
104 |
$this->LogError(
|
281 |
$plugin_name = str_replace( array( '_', '-', ' ' ), ' ', $plugin_name );
|
282 |
$plugin_name = ucwords( $plugin_name );
|
283 |
$plugin_file = WP_PLUGIN_DIR . '/' . $plugin_file;
|
284 |
+
$plugin_data = get_plugin_data( $plugin_file, false, true );
|
285 |
$this->plugin->alerts->Trigger(
|
286 |
5003,
|
287 |
array(
|
288 |
'PluginFile' => $plugin_file,
|
289 |
'PluginData' => (object) array(
|
290 |
+
'Name' => $plugin_name,
|
291 |
+
'Version' => $plugin_data['Version'],
|
292 |
),
|
293 |
)
|
294 |
);
|
304 |
$plugin_name = basename( $plugin_file, '.php' );
|
305 |
$plugin_name = str_replace( array( '_', '-', ' ' ), ' ', $plugin_name );
|
306 |
$plugin_name = ucwords( $plugin_name );
|
307 |
+
$plugin_data = $this->old_plugins[ $post_array['plugin'] ];
|
308 |
$this->plugin->alerts->Trigger(
|
309 |
5003,
|
310 |
array(
|
311 |
'PluginFile' => $plugin_file,
|
312 |
'PluginData' => (object) array(
|
313 |
+
'Name' => $plugin_name,
|
314 |
+
'Version' => $plugin_data['Version'],
|
315 |
),
|
316 |
)
|
317 |
);
|
@@ -1,120 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Sensor: Request
|
4 |
-
*
|
5 |
-
* Request sensor class file.
|
6 |
-
*
|
7 |
-
* @since 1.0.0
|
8 |
-
* @package Wsal
|
9 |
-
*/
|
10 |
-
|
11 |
-
// Exit if accessed directly.
|
12 |
-
if ( ! defined( 'ABSPATH' ) ) {
|
13 |
-
exit;
|
14 |
-
}
|
15 |
-
|
16 |
-
/**
|
17 |
-
* Writes the Request.log.php file.
|
18 |
-
*
|
19 |
-
* @package Wsal
|
20 |
-
* @subpackage Sensors
|
21 |
-
*/
|
22 |
-
class WSAL_Sensors_Request extends WSAL_AbstractSensor {
|
23 |
-
|
24 |
-
/**
|
25 |
-
* Environment Variables
|
26 |
-
*
|
27 |
-
* @var array
|
28 |
-
*/
|
29 |
-
protected static $envvars = array();
|
30 |
-
|
31 |
-
/**
|
32 |
-
* Listening to events using WP hooks.
|
33 |
-
*/
|
34 |
-
public function HookEvents() {
|
35 |
-
if ( $this->plugin->settings()->IsRequestLoggingEnabled() ) {
|
36 |
-
add_action( 'shutdown', array( $this, 'EventShutdown' ) );
|
37 |
-
}
|
38 |
-
}
|
39 |
-
|
40 |
-
/**
|
41 |
-
* Fires just before PHP shuts down execution.
|
42 |
-
*/
|
43 |
-
public function EventShutdown() {
|
44 |
-
// Filter global arrays for security.
|
45 |
-
$post_array = filter_input_array( INPUT_POST );
|
46 |
-
$server_array = filter_input_array( INPUT_SERVER );
|
47 |
-
|
48 |
-
// get the custom logging path from settings.
|
49 |
-
$custom_logging_path = $this->plugin->settings()->get_working_dir_path();
|
50 |
-
if ( is_wp_error($custom_logging_path) ) {
|
51 |
-
return;
|
52 |
-
}
|
53 |
-
|
54 |
-
$file = $custom_logging_path . 'Request.log.php';
|
55 |
-
|
56 |
-
$request_method = isset( $server_array['REQUEST_METHOD'] ) ? $server_array['REQUEST_METHOD'] : false;
|
57 |
-
$request_uri = isset( $server_array['REQUEST_URI'] ) ? $server_array['REQUEST_URI'] : false;
|
58 |
-
|
59 |
-
$line = '[' . date( 'Y-m-d H:i:s' ) . '] '
|
60 |
-
. $request_method . ' '
|
61 |
-
. $request_uri . ' '
|
62 |
-
. ( ! empty( $post_array ) ? str_pad( PHP_EOL, 24 ) . json_encode( $post_array ) : '')
|
63 |
-
. ( ! empty( self::$envvars ) ? str_pad( PHP_EOL, 24 ) . json_encode( self::$envvars ) : '')
|
64 |
-
. PHP_EOL;
|
65 |
-
|
66 |
-
if ( ! file_exists( $file ) && ! file_put_contents( $file, '<' . '?php die(\'Access Denied\'); ?>' . PHP_EOL ) ) {
|
67 |
-
$this->LogError(
|
68 |
-
'Could not initialize request log file', array(
|
69 |
-
'file' => $file,
|
70 |
-
)
|
71 |
-
);
|
72 |
-
return;
|
73 |
-
}
|
74 |
-
|
75 |
-
$f = fopen( $file, 'a' );
|
76 |
-
if ( $f ) {
|
77 |
-
if ( ! fwrite( $f, $line ) ) {
|
78 |
-
$this->LogWarn(
|
79 |
-
'Could not write to log file', array(
|
80 |
-
'file' => $file,
|
81 |
-
)
|
82 |
-
);
|
83 |
-
}
|
84 |
-
if ( ! fclose( $f ) ) {
|
85 |
-
$this->LogWarn(
|
86 |
-
'Could not close log file', array(
|
87 |
-
'file' => $file,
|
88 |
-
)
|
89 |
-
);
|
90 |
-
}
|
91 |
-
} else {
|
92 |
-
$this->LogWarn(
|
93 |
-
'Could not open log file', array(
|
94 |
-
'file' => $file,
|
95 |
-
)
|
96 |
-
);
|
97 |
-
}
|
98 |
-
}
|
99 |
-
|
100 |
-
/**
|
101 |
-
* Sets $envvars element with key and value.
|
102 |
-
*
|
103 |
-
* @param mixed $name - Key name of the variable.
|
104 |
-
* @param mixed $value - Value of the variable.
|
105 |
-
*/
|
106 |
-
public static function SetVar( $name, $value ) {
|
107 |
-
self::$envvars[ $name ] = $value;
|
108 |
-
}
|
109 |
-
|
110 |
-
/**
|
111 |
-
* Copy data array into $envvars array.
|
112 |
-
*
|
113 |
-
* @param array $data - Data array.
|
114 |
-
*/
|
115 |
-
public static function SetVars( $data ) {
|
116 |
-
foreach ( $data as $name => $value ) {
|
117 |
-
self::SetVar( $name, $value );
|
118 |
-
}
|
119 |
-
}
|
120 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -170,6 +170,88 @@ class WSAL_Sensors_System extends WSAL_AbstractSensor {
|
|
170 |
}
|
171 |
}
|
172 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
173 |
// Registration Option.
|
174 |
if ( $is_option_page && wp_verify_nonce( $post_array['_wpnonce'], 'general-options' ) && ( get_option( 'users_can_register' ) xor isset( $post_array['users_can_register'] ) ) ) {
|
175 |
$old = get_option( 'users_can_register' ) ? 'enabled' : 'disabled';
|
@@ -266,6 +348,18 @@ class WSAL_Sensors_System extends WSAL_AbstractSensor {
|
|
266 |
);
|
267 |
}
|
268 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
269 |
}
|
270 |
|
271 |
/**
|
@@ -417,4 +511,63 @@ class WSAL_Sensors_System extends WSAL_AbstractSensor {
|
|
417 |
}
|
418 |
return $whitelist;
|
419 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
420 |
}
|
170 |
}
|
171 |
}
|
172 |
|
173 |
+
if ( isset( $post_array['option_page'] ) && 'reading' === $post_array['option_page'] && isset( $post_array['show_on_front'] )
|
174 |
+
&& wp_verify_nonce( $post_array['_wpnonce'], 'reading-options' ) ) {
|
175 |
+
$old_homepage = ( 'posts' === get_site_option( 'show_on_front' ) ) ? __( 'latest posts', 'wp-security-audit-log' ) :__( 'static page', 'wp-security-audit-log' );
|
176 |
+
$new_homepage = ( 'posts' === $post_array['show_on_front'] ) ? __( 'latest posts', 'wp-security-audit-log' ) :__( 'static page', 'wp-security-audit-log' );
|
177 |
+
if ( $old_homepage != $new_homepage ) {
|
178 |
+
$this->plugin->alerts->Trigger(
|
179 |
+
6035,
|
180 |
+
array(
|
181 |
+
'old_homepage' => $old_homepage,
|
182 |
+
'new_homepage' => $new_homepage,
|
183 |
+
)
|
184 |
+
);
|
185 |
+
}
|
186 |
+
}
|
187 |
+
|
188 |
+
if ( isset( $post_array['option_page'] ) && 'reading' === $post_array['option_page'] && isset( $post_array['page_on_front'] )
|
189 |
+
&& wp_verify_nonce( $post_array['_wpnonce'], 'reading-options' ) ) {
|
190 |
+
$old_frontpage = get_the_title( get_site_option( 'page_on_front' ) ) ;
|
191 |
+
$new_frontpage = get_the_title( $post_array[ 'page_on_front' ] );
|
192 |
+
if ( $old_frontpage != $new_frontpage ) {
|
193 |
+
$this->plugin->alerts->Trigger(
|
194 |
+
6036,
|
195 |
+
array(
|
196 |
+
'old_page' => $old_frontpage,
|
197 |
+
'new_page' => $new_frontpage,
|
198 |
+
)
|
199 |
+
);
|
200 |
+
}
|
201 |
+
}
|
202 |
+
|
203 |
+
if ( isset( $post_array['option_page'] ) && 'reading' === $post_array['option_page'] && isset( $post_array['page_for_posts'] )
|
204 |
+
&& wp_verify_nonce( $post_array['_wpnonce'], 'reading-options' ) ) {
|
205 |
+
$old_postspage = get_the_title( get_site_option( 'page_for_posts' ) );
|
206 |
+
$new_postspage = get_the_title( $post_array[ 'page_for_posts' ] );
|
207 |
+
if ( $old_postspage != $new_postspage ) {
|
208 |
+
$this->plugin->alerts->Trigger(
|
209 |
+
6037,
|
210 |
+
array(
|
211 |
+
'old_page' => $old_postspage,
|
212 |
+
'new_page' => $new_postspage,
|
213 |
+
)
|
214 |
+
);
|
215 |
+
}
|
216 |
+
}
|
217 |
+
|
218 |
+
// check timezone change
|
219 |
+
if ( $is_option_page && wp_verify_nonce( $post_array['_wpnonce'], 'general-options' ) && ! empty( $post_array['timezone_string'] ) ) {
|
220 |
+
$this->check_timezone_change( $post_array );
|
221 |
+
}
|
222 |
+
|
223 |
+
// check date format change
|
224 |
+
if ( $is_option_page && wp_verify_nonce( $post_array['_wpnonce'], 'general-options' ) && ! empty( $post_array['date_format'] ) ) {
|
225 |
+
$old_date_format = get_option( 'date_format' );
|
226 |
+
$new_date_format = ( '\c\u\s\t\o\m' === $post_array['date_format'] ) ? $post_array['date_format_custom'] : $post_array['date_format'];
|
227 |
+
if ( $old_date_format !== $new_date_format ) {
|
228 |
+
$this->plugin->alerts->Trigger(
|
229 |
+
6041,
|
230 |
+
array(
|
231 |
+
'old_date_format' => $old_date_format,
|
232 |
+
'new_date_format' => $new_date_format,
|
233 |
+
'CurrentUserID' => wp_get_current_user()->ID,
|
234 |
+
)
|
235 |
+
);
|
236 |
+
}
|
237 |
+
}
|
238 |
+
|
239 |
+
// check time format change
|
240 |
+
if ( $is_option_page && wp_verify_nonce( $post_array['_wpnonce'], 'general-options' ) && ! empty( $post_array['time_format'] ) ) {
|
241 |
+
$old_time_format = get_option( 'time_format' );
|
242 |
+
$new_time_format = ( '\c\u\s\t\o\m' === $post_array['time_format'] ) ? $post_array['time_format_custom'] : $post_array['time_format'];
|
243 |
+
if ( $old_time_format !== $new_time_format ) {
|
244 |
+
$this->plugin->alerts->Trigger(
|
245 |
+
6042,
|
246 |
+
array(
|
247 |
+
'old_time_format' => $old_time_format,
|
248 |
+
'new_time_format' => $new_time_format,
|
249 |
+
'CurrentUserID' => wp_get_current_user()->ID,
|
250 |
+
)
|
251 |
+
);
|
252 |
+
}
|
253 |
+
}
|
254 |
+
|
255 |
// Registration Option.
|
256 |
if ( $is_option_page && wp_verify_nonce( $post_array['_wpnonce'], 'general-options' ) && ( get_option( 'users_can_register' ) xor isset( $post_array['users_can_register'] ) ) ) {
|
257 |
$old = get_option( 'users_can_register' ) ? 'enabled' : 'disabled';
|
348 |
);
|
349 |
}
|
350 |
}
|
351 |
+
|
352 |
+
// Enable core updates.
|
353 |
+
if ( isset( $get_array['action'] ) && 'core-major-auto-updates-settings' === $get_array['action'] && isset( $get_array['value'] )
|
354 |
+
&& wp_verify_nonce( $get_array['_wpnonce'], 'core-major-auto-updates-nonce' ) ) {
|
355 |
+
$status = ( 'enable' === $get_array['value'] ) ? __( 'automatically update to all new versions of WordPress', 'wp-security-audit-log' ) : __( 'automatically update maintenance and security releases only', 'wp-security-audit-log' );
|
356 |
+
$this->plugin->alerts->Trigger(
|
357 |
+
6044,
|
358 |
+
array(
|
359 |
+
'updates_status' => $status,
|
360 |
+
)
|
361 |
+
);
|
362 |
+
}
|
363 |
}
|
364 |
|
365 |
/**
|
511 |
}
|
512 |
return $whitelist;
|
513 |
}
|
514 |
+
|
515 |
+
/**
|
516 |
+
* Checks if the timezone settings have changed. Logs an events if it did.
|
517 |
+
*
|
518 |
+
* @param array $post_array Sanitized input array.
|
519 |
+
*
|
520 |
+
* @since 4.2.0
|
521 |
+
*/
|
522 |
+
private function check_timezone_change( $post_array ) {
|
523 |
+
$old_timezone_string = get_option( 'timezone_string' );
|
524 |
+
$new_timezone_string = isset( $post_array['timezone_string'] ) ? $post_array['timezone_string'] : '';
|
525 |
+
|
526 |
+
// backup of the labels as we might change them below when dealing with UTC offset definitions
|
527 |
+
$old_timezone_label = $old_timezone_string;
|
528 |
+
$new_timezone_label = $new_timezone_string;
|
529 |
+
if ( strlen( $old_timezone_string ) === 0 ) {
|
530 |
+
// the old timezone string can be empty if the time zone was configured using UTC offset selection
|
531 |
+
// rather than using a country/city selection
|
532 |
+
$old_timezone_string = $old_timezone_label = wp_timezone_string();
|
533 |
+
if ( 'UTC' === $old_timezone_string ) {
|
534 |
+
$old_timezone_string = '+00:00';
|
535 |
+
}
|
536 |
+
|
537 |
+
// adjusts label to show UTC offset consistently
|
538 |
+
$old_timezone_label = 'UTC' . $old_timezone_label;
|
539 |
+
}
|
540 |
+
|
541 |
+
// new timezone can be defined as UTC offset
|
542 |
+
|
543 |
+
// there is one UTC option that doesn't contain the offset, we need to tweak the value for further processing
|
544 |
+
if ( 'UTC' === $new_timezone_string ) {
|
545 |
+
$new_timezone_string = 'UTC+0';
|
546 |
+
}
|
547 |
+
|
548 |
+
if ( preg_match( '/UTC([+\-][0-9\.]+)/', $new_timezone_string, $matches ) ) {
|
549 |
+
$hours_decimal = floatval( $matches[1] );
|
550 |
+
|
551 |
+
// the new timezone is also set using UTC offset, it needs to be converted to the same format used
|
552 |
+
// by wp_timezone_string
|
553 |
+
$sign = $hours_decimal < 0 ? '-' : '+';
|
554 |
+
$abs_hours = abs( $hours_decimal );
|
555 |
+
$abs_mins = abs( $hours_decimal * 60 % 60 );
|
556 |
+
$new_timezone_string = sprintf( '%s%02d:%02d', $sign, floor( $abs_hours ), $abs_mins );
|
557 |
+
|
558 |
+
// adjusts label to show UTC offset consistently
|
559 |
+
$new_timezone_label = 'UTC' . $new_timezone_string;
|
560 |
+
}
|
561 |
+
|
562 |
+
if ( $old_timezone_string !== $new_timezone_string ) {
|
563 |
+
$this->plugin->alerts->Trigger(
|
564 |
+
6040,
|
565 |
+
array(
|
566 |
+
'old_timezone' => $old_timezone_label,
|
567 |
+
'new_timezone' => $new_timezone_label,
|
568 |
+
'CurrentUserID' => wp_get_current_user()->ID,
|
569 |
+
)
|
570 |
+
);
|
571 |
+
}
|
572 |
+
}
|
573 |
}
|
@@ -53,6 +53,99 @@ class WSAL_Sensors_UserProfile extends WSAL_AbstractSensor {
|
|
53 |
add_action( 'revoke_super_admin', array( $this, 'get_super_admins' ) );
|
54 |
add_action( 'granted_super_admin', array( $this, 'event_super_access_granted' ), 10, 1 );
|
55 |
add_action( 'revoked_super_admin', array( $this, 'event_super_access_revoked' ), 10, 1 );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
56 |
}
|
57 |
|
58 |
/**
|
@@ -197,6 +290,7 @@ class WSAL_Sensors_UserProfile extends WSAL_AbstractSensor {
|
|
197 |
if ( ! $user ) {
|
198 |
return;
|
199 |
}
|
|
|
200 |
$current_user = wp_get_current_user();
|
201 |
$updated = isset( $_GET['updated'] ); // @codingStandardsIgnoreLine
|
202 |
if ( $current_user && ( $user->ID !== $current_user->ID ) && ! $updated ) {
|
53 |
add_action( 'revoke_super_admin', array( $this, 'get_super_admins' ) );
|
54 |
add_action( 'granted_super_admin', array( $this, 'event_super_access_granted' ), 10, 1 );
|
55 |
add_action( 'revoked_super_admin', array( $this, 'event_super_access_revoked' ), 10, 1 );
|
56 |
+
add_action( 'update_user_meta', array( $this, 'event_application_password_added' ), 10, 4 );
|
57 |
+
|
58 |
+
}
|
59 |
+
|
60 |
+
public function event_application_password_added( $meta_id, $user_id, $meta_key, $_meta_value ) {
|
61 |
+
|
62 |
+
// Filter global arrays for security.
|
63 |
+
$post_array = filter_input_array( INPUT_POST );
|
64 |
+
$get_array = filter_input_array( INPUT_GET );
|
65 |
+
$server_array = filter_input_array( INPUT_SERVER );
|
66 |
+
|
67 |
+
if ( ! isset( $server_array['HTTP_REFERER'] ) || ! isset( $server_array['REQUEST_URI'] ) ) {
|
68 |
+
return;
|
69 |
+
}
|
70 |
+
|
71 |
+
// Check the page which is performing this change.
|
72 |
+
$referer_check = pathinfo( $server_array['HTTP_REFERER'] );
|
73 |
+
$referer_check = $referer_check['filename'];
|
74 |
+
$referer_check = ( strpos( $referer_check, '.' ) !== false ) ? strstr( $referer_check , '.', true ) : $referer_check;
|
75 |
+
|
76 |
+
$is_correct_referer_and_action = false;
|
77 |
+
|
78 |
+
if ( 'profile' === $referer_check || 'user-edit' === $referer_check ) {
|
79 |
+
$is_correct_referer_and_action = true;
|
80 |
+
}
|
81 |
+
|
82 |
+
// Ensure we are dealign with the correct request.
|
83 |
+
if ( $is_correct_referer_and_action && strpos( $server_array['REQUEST_URI'], '/wp/v2/users/'. $user_id .'/application-passwords' ) !== false ) {
|
84 |
+
|
85 |
+
$old_value = get_user_meta( $user_id, '_application_passwords', true );
|
86 |
+
|
87 |
+
$current_user = get_user_by( 'id', $user_id );
|
88 |
+
$current_userdata = get_userdata( $user_id );
|
89 |
+
$current_user_roles = implode( ', ', array_map( array( $this, 'filter_role_names' ), $current_userdata->roles ) );
|
90 |
+
$event_id = ( 'user-edit' === $referer_check ) ? 4026 : 4025;
|
91 |
+
|
92 |
+
// Note, firstname and lastname fields are purposefully spaces to avoid NULL.
|
93 |
+
if ( isset( $_POST['name'] ) ) {
|
94 |
+
$this->plugin->alerts->Trigger(
|
95 |
+
$event_id,
|
96 |
+
array(
|
97 |
+
'roles' => $current_user_roles,
|
98 |
+
'login' => $current_user->user_login,
|
99 |
+
'firstname' => ( empty( $current_user->user_firstname ) ) ? ' ' : $current_user->user_firstname,
|
100 |
+
'lastname' => ( empty( $current_user->user_lastname ) ) ? ' ' : $current_user->user_lastname,
|
101 |
+
'CurrentUserID' => $current_user->ID,
|
102 |
+
'friendly_name' => sanitize_text_field( $_POST['name'] ),
|
103 |
+
'EventType' => 'added',
|
104 |
+
)
|
105 |
+
);
|
106 |
+
}
|
107 |
+
|
108 |
+
// Check if all have been removed.
|
109 |
+
elseif ( ! empty( $old_value ) && count( $old_value ) > 1 && empty( $_meta_value ) ) {
|
110 |
+
$event_id = ( 'user-edit' === $referer_check ) ? 4028 : 4027;
|
111 |
+
|
112 |
+
// Note, firstname and lastname fields are purposefully spaces to avoid NULL.
|
113 |
+
$this->plugin->alerts->Trigger(
|
114 |
+
$event_id ,
|
115 |
+
array(
|
116 |
+
'roles' => $current_user_roles,
|
117 |
+
'login' => $current_user->user_login,
|
118 |
+
'firstname' => ( empty( $current_user->user_firstname ) ) ? ' ' : $current_user->user_firstname,
|
119 |
+
'lastname' => ( empty( $current_user->user_lastname ) ) ? ' ' : $current_user->user_lastname,
|
120 |
+
'CurrentUserID' => $current_user->ID,
|
121 |
+
'EventType' => 'revoked',
|
122 |
+
)
|
123 |
+
);
|
124 |
+
}
|
125 |
+
|
126 |
+
// Check the item that was removed.
|
127 |
+
elseif ( count( $_meta_value ) < count( $old_value ) ) {
|
128 |
+
$revoked_pw = array_diff( array_map( 'serialize', $old_value ), array_map( 'serialize', $_meta_value ) );
|
129 |
+
$revoked_pw = array_values( array_map( 'unserialize', $revoked_pw ) );
|
130 |
+
$revoked_pw_name = $revoked_pw[0]['name'];
|
131 |
+
$event_id = ( 'user-edit' === $referer_check ) ? 4026 : 4025;
|
132 |
+
|
133 |
+
// Note, firstname and lastname fields are purposefully spaces to avoid NULL.
|
134 |
+
$this->plugin->alerts->Trigger(
|
135 |
+
$event_id ,
|
136 |
+
array(
|
137 |
+
'roles' => $current_user_roles,
|
138 |
+
'login' => $current_user->user_login,
|
139 |
+
'firstname' => ( empty( $current_user->user_firstname ) ) ? ' ' : $current_user->user_firstname,
|
140 |
+
'lastname' => ( empty( $current_user->user_lastname ) ) ? ' ' : $current_user->user_lastname,
|
141 |
+
'CurrentUserID' => $current_user->ID,
|
142 |
+
'friendly_name' => sanitize_text_field( $revoked_pw_name ),
|
143 |
+
'EventType' => 'revoked',
|
144 |
+
)
|
145 |
+
);
|
146 |
+
}
|
147 |
+
}
|
148 |
+
|
149 |
}
|
150 |
|
151 |
/**
|
290 |
if ( ! $user ) {
|
291 |
return;
|
292 |
}
|
293 |
+
|
294 |
$current_user = wp_get_current_user();
|
295 |
$updated = isset( $_GET['updated'] ); // @codingStandardsIgnoreLine
|
296 |
if ( $current_user && ( $user->ID !== $current_user->ID ) && ! $updated ) {
|
@@ -33,11 +33,7 @@ class WSAL_Settings {
|
|
33 |
*/
|
34 |
protected $_plugin;
|
35 |
|
36 |
-
const
|
37 |
-
const OPT_DEV_PHP_ERRORS = 'p';
|
38 |
-
const OPT_DEV_REQUEST_LOG = 'r';
|
39 |
-
const OPT_DEV_BACKTRACE_LOG = 'b';
|
40 |
-
const ERROR_CODE_INVALID_IP = 901;
|
41 |
|
42 |
/**
|
43 |
* List of Site Admins.
|
@@ -46,13 +42,6 @@ class WSAL_Settings {
|
|
46 |
*/
|
47 |
private $site_admins = array();
|
48 |
|
49 |
-
/**
|
50 |
-
* Dev Options.
|
51 |
-
*
|
52 |
-
* @var array
|
53 |
-
*/
|
54 |
-
protected $_devoption = null;
|
55 |
-
|
56 |
/**
|
57 |
* Pruning Date.
|
58 |
*
|
@@ -119,9 +108,17 @@ class WSAL_Settings {
|
|
119 |
/**
|
120 |
* Alerts enabled in Geek mode.
|
121 |
*
|
122 |
-
* @var
|
123 |
*/
|
124 |
-
public $geek_alerts = array( 1004, 1005, 1006, 1007, 2023, 2024, 2053, 2054, 2055, 2062, 2100, 2111, 2112, 2124, 2125, 2131, 2132, 2094, 2095, 2043, 2071, 2082, 2083, 2085, 2089, 4014, 4015, 4016,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
125 |
|
126 |
/**
|
127 |
* Current screen object.
|
@@ -144,247 +141,22 @@ class WSAL_Settings {
|
|
144 |
add_action( 'deactivated_plugin', array( $this, 'reset_stealth_mode' ), 10, 1 );
|
145 |
}
|
146 |
|
147 |
-
/**
|
148 |
-
* Gets path to the default working directory relative to the root of WordPress site.
|
149 |
-
*
|
150 |
-
* Uses forward slashes and result has a slash at the end.
|
151 |
-
*
|
152 |
-
* @return string
|
153 |
-
*/
|
154 |
-
public function get_default_working_dir_relative() {
|
155 |
-
$upload_dir = wp_upload_dir(null, false);
|
156 |
-
if (false === $upload_dir || ! array_key_exists('basedir', $upload_dir) ||
|
157 |
-
( array_key_exists('error', $upload_dir) && ! empty ( $upload_dir['error'] ) )
|
158 |
-
) {
|
159 |
-
// fallback in case there is a problem with filesystem
|
160 |
-
return WP_CONTENT_DIR . '/uploads/wp-activity-log/';
|
161 |
-
}
|
162 |
-
|
163 |
-
$result = $upload_dir['basedir'] . '/wp-activity-log/';
|
164 |
-
|
165 |
-
// remove absolute path from the basedir to make it relative
|
166 |
-
if ( defined( 'ABSPATH' ) ) {
|
167 |
-
$result = preg_replace( '/^' . preg_quote( ABSPATH, '/' ) . '/', '', $result );
|
168 |
-
// add leading slash if missing
|
169 |
-
if ( '/' !== substr( $result, 0, 1) ) {
|
170 |
-
$result = '/' . $result;
|
171 |
-
}
|
172 |
-
}
|
173 |
-
return $result;
|
174 |
-
}
|
175 |
-
|
176 |
-
/**
|
177 |
-
* Retrieves the working directory from the settings relative to the WordPress root folder.
|
178 |
-
*
|
179 |
-
* Used by two public helper functions that provide the working directory path and URL for the rest of the plugin:
|
180 |
-
* - WSAL_Settings::get_working_dir_path
|
181 |
-
* - WSAL_Settings::get_working_dir_url
|
182 |
-
*
|
183 |
-
* Result contains forward slashes suitable for use in URL. It also contains the trailing slash. Replace slashes
|
184 |
-
* with system specific directory separators when used as filesystem path. This is already done in
|
185 |
-
* WSAL_Settings::get_working_dir_path in case you need it.
|
186 |
-
*
|
187 |
-
* @param string $path Optional path relative to the working directory.
|
188 |
-
* @param bool $ignore_site If true, there will be no sub-site specific subfolder in multisite context.
|
189 |
-
* @return string
|
190 |
-
* @since 4.1.3
|
191 |
-
*
|
192 |
-
* @see WSAL_Settings::get_working_dir_path()
|
193 |
-
* @see WSAL_Settings::get_working_dir_url()
|
194 |
-
* @see WSAL_Settings::get_working_dir_path_relative()
|
195 |
-
*/
|
196 |
-
private function get_working_dir_path_relative( $path = '', $ignore_site = false ) {
|
197 |
-
if ( ! \function_exists( 'get_home_path' ) ) {
|
198 |
-
require_once ABSPATH . 'wp-admin/includes/file.php';
|
199 |
-
}
|
200 |
-
|
201 |
-
// get relative path from the plugin settings
|
202 |
-
$result = trailingslashit( $this->_plugin->GetGlobalSetting( 'custom-logging-dir', $this->get_default_working_dir_relative() ) );
|
203 |
-
|
204 |
-
// append site specific subfolder in multisite context
|
205 |
-
if ( ! $ignore_site && $this->_plugin->IsMultisite() ) {
|
206 |
-
$site_id = get_current_blog_id();
|
207 |
-
if ($site_id > 0) {
|
208 |
-
$result .= 'sites/' . $site_id . '/';
|
209 |
-
}
|
210 |
-
}
|
211 |
-
|
212 |
-
// append optional path passed as a parameter
|
213 |
-
if ( $path && is_string( $path ) ) {
|
214 |
-
$result .= $path . '/';
|
215 |
-
}
|
216 |
-
|
217 |
-
// result should have the trailing slash at this point, no need to trailingslashit again
|
218 |
-
return $result;
|
219 |
-
}
|
220 |
-
|
221 |
-
/**
|
222 |
-
* Retrieves the working directory URL including a trailing slash.
|
223 |
-
*
|
224 |
-
* Uses as default:
|
225 |
-
* {uploads folder}/wp-activity-log/
|
226 |
-
*
|
227 |
-
* @param string $path Optional path relative to the working directory.
|
228 |
-
|
229 |
-
* @return string
|
230 |
-
* @see WSAL_Settings::get_working_dir_path_relative()
|
231 |
-
*
|
232 |
-
* @since 4.1.0
|
233 |
-
*/
|
234 |
-
public function get_working_dir_url( $path = '' ) {
|
235 |
-
$result = $this->get_default_working_dir_relative( $path );
|
236 |
-
return trailingslashit( \get_site_url() ) . $result;
|
237 |
-
}
|
238 |
-
|
239 |
-
/**
|
240 |
-
* Retrieves the working directory from the settings. Returns a folder path
|
241 |
-
* with a trailing slash. It also creates the folder unless the $skip_creation
|
242 |
-
* parameter is set to true.
|
243 |
-
*
|
244 |
-
* Uses as default:
|
245 |
-
* {uploads folder}/wp-activity-log/
|
246 |
-
*
|
247 |
-
* @param string $path Optional path relative to the working directory.
|
248 |
-
* @param bool $skip_creation If true, the folder will not be created.
|
249 |
-
* @param bool $ignore_site If true, there will be no sub-site specific subfolder in multisite context.
|
250 |
-
*
|
251 |
-
* @return string|WP_Error
|
252 |
-
* @see WSAL_Settings::get_working_dir_path_relative()
|
253 |
-
*
|
254 |
-
* @since 4.1.0
|
255 |
-
*/
|
256 |
-
public function get_working_dir_path( $path = '', $skip_creation = false, $ignore_site = false ) {
|
257 |
-
$result = $this->get_working_dir_path_relative( $path, $ignore_site );
|
258 |
-
$result = trailingslashit( ABSPATH ) . $result;
|
259 |
-
$result = preg_replace('/\//', DIRECTORY_SEPARATOR, $result);
|
260 |
-
if ( ! $skip_creation ) {
|
261 |
-
if ( ! wp_mkdir_p( $result ) ) {
|
262 |
-
return new WP_Error('mkdir_failed', sprintf(
|
263 |
-
/* translators: %s: Directory path. */
|
264 |
-
__( 'Unable to create directory %s. Is its parent directory writable by the server?' ),
|
265 |
-
esc_html( $result )
|
266 |
-
));
|
267 |
-
}
|
268 |
-
}
|
269 |
-
|
270 |
-
return $result;
|
271 |
-
}
|
272 |
|
273 |
/**
|
274 |
* Enable Basic Mode.
|
275 |
*/
|
276 |
public function set_basic_mode() {
|
277 |
-
// Disable alerts of geek mode.
|
278 |
-
$this->SetDisabledAlerts( $this->geek_alerts );
|
279 |
}
|
280 |
|
281 |
/**
|
282 |
* Enable Geek Mode.
|
283 |
*/
|
284 |
public function set_geek_mode() {
|
285 |
-
$this->SetDisabledAlerts(
|
286 |
-
}
|
287 |
-
|
288 |
-
/**
|
289 |
-
* Return array of developer options to be enabled by default.
|
290 |
-
*
|
291 |
-
* @return array
|
292 |
-
*/
|
293 |
-
public function GetDefaultDevOptions() {
|
294 |
-
return array();
|
295 |
-
}
|
296 |
-
|
297 |
-
/**
|
298 |
-
* Returns whether a developer option is enabled or not.
|
299 |
-
*
|
300 |
-
* @param string $option - See self::OPT_DEV_* constants.
|
301 |
-
* @return boolean - If option is enabled or not.
|
302 |
-
*/
|
303 |
-
public function IsDevOptionEnabled( $option ) {
|
304 |
-
if ( is_null( $this->_devoption ) ) {
|
305 |
-
$this->_devoption = $this->_plugin->GetGlobalSetting(
|
306 |
-
'dev-options', implode( ',', $this->GetDefaultDevOptions() )
|
307 |
-
);
|
308 |
-
$this->_devoption = explode( ',', $this->_devoption );
|
309 |
-
}
|
310 |
-
return in_array( $option, $this->_devoption );
|
311 |
-
}
|
312 |
-
|
313 |
-
/**
|
314 |
-
* Check whether any developer option has been enabled or not.
|
315 |
-
*
|
316 |
-
* @return boolean
|
317 |
-
*/
|
318 |
-
public function IsAnyDevOptionEnabled() {
|
319 |
-
return ! empty( $this->_plugin->GetGlobalSetting( 'dev-options', [] ) );
|
320 |
-
}
|
321 |
-
|
322 |
-
/**
|
323 |
-
* Sets whether a developer option is enabled or not.
|
324 |
-
*
|
325 |
-
* @param string $option - See self::OPT_DEV_* constants.
|
326 |
-
* @param boolean $enabled - If option should be enabled or not.
|
327 |
-
*/
|
328 |
-
public function SetDevOptionEnabled( $option, $enabled ) {
|
329 |
-
// Make sure options have been loaded.
|
330 |
-
$this->IsDevOptionEnabled( '' );
|
331 |
-
// Remove option if it exists.
|
332 |
-
while ( ( $p = array_search( $option, $this->_devoption ) ) !== false ) {
|
333 |
-
unset( $this->_devoption[ $p ] );
|
334 |
-
}
|
335 |
-
// Add option if callee wants it enabled.
|
336 |
-
if ( $enabled ) {
|
337 |
-
$this->_devoption[] = $option;
|
338 |
-
}
|
339 |
-
// Commit option.
|
340 |
-
$this->_plugin->SetGlobalSetting(
|
341 |
-
'dev-options', implode( ',', $this->_devoption )
|
342 |
-
);
|
343 |
-
}
|
344 |
-
|
345 |
-
/**
|
346 |
-
* Remove all enabled developer options.
|
347 |
-
*/
|
348 |
-
public function ClearDevOptions() {
|
349 |
-
$this->_devoption = array();
|
350 |
-
$this->_plugin->SetGlobalSetting( 'dev-options', '' );
|
351 |
}
|
352 |
|
353 |
-
/**
|
354 |
-
* Check whether to enable data inspector or not.
|
355 |
-
*
|
356 |
-
* @return boolean
|
357 |
-
*/
|
358 |
-
public function IsDataInspectorEnabled() {
|
359 |
-
return $this->IsDevOptionEnabled( self::OPT_DEV_DATA_INSPECTOR );
|
360 |
-
}
|
361 |
-
|
362 |
-
/**
|
363 |
-
* Check whether to enable PHP error logging or not.
|
364 |
-
*
|
365 |
-
* @return boolean
|
366 |
-
*/
|
367 |
-
public function IsPhpErrorLoggingEnabled() {
|
368 |
-
return $this->IsDevOptionEnabled( self::OPT_DEV_PHP_ERRORS );
|
369 |
-
}
|
370 |
-
|
371 |
-
/**
|
372 |
-
* Check whether to log requests to file or not.
|
373 |
-
*
|
374 |
-
* @return boolean
|
375 |
-
*/
|
376 |
-
public function IsRequestLoggingEnabled() {
|
377 |
-
return $this->IsDevOptionEnabled( self::OPT_DEV_REQUEST_LOG );
|
378 |
-
}
|
379 |
-
|
380 |
-
/**
|
381 |
-
* Check whether to store debug backtrace for PHP alerts or not.
|
382 |
-
*
|
383 |
-
* @return boolean
|
384 |
-
*/
|
385 |
-
public function IsBacktraceLoggingEnabled() {
|
386 |
-
return $this->IsDevOptionEnabled( self::OPT_DEV_BACKTRACE_LOG );
|
387 |
-
}
|
388 |
|
389 |
/**
|
390 |
* Check whether dashboard widgets are enabled or not.
|
@@ -810,69 +582,69 @@ class WSAL_Settings {
|
|
810 |
$user = get_userdata( $user );
|
811 |
}
|
812 |
|
813 |
-
//
|
814 |
$result = false;
|
815 |
|
816 |
$is_multisite = $this->_plugin->IsMultisite();
|
817 |
switch ( $action ) {
|
818 |
case 'view':
|
819 |
-
if (
|
820 |
-
//
|
821 |
switch ( $this->get_restrict_plugin_setting() ) {
|
822 |
case 'only_admins':
|
823 |
-
//
|
824 |
-
$result = in_array('administrator', $user->roles);
|
825 |
break;
|
826 |
case 'only_me':
|
827 |
-
//
|
828 |
$result = $user->ID == $this->get_only_me_user_id();
|
829 |
break;
|
830 |
default:
|
831 |
-
//
|
832 |
$result = false;
|
833 |
}
|
834 |
} else {
|
835 |
-
//
|
836 |
-
//
|
837 |
switch ( $this->get_restrict_log_viewer() ) {
|
838 |
case 'only_me':
|
839 |
-
//
|
840 |
$result = ( $user->ID == $this->get_only_me_user_id() );
|
841 |
break;
|
842 |
case 'only_superadmins':
|
843 |
-
//
|
844 |
-
if ( function_exists( 'is_super_admin' ) && is_super_admin($user->ID) ) {
|
845 |
$result = true;
|
846 |
}
|
847 |
break;
|
848 |
case 'only_admins':
|
849 |
-
//
|
850 |
-
$result = in_array('administrator', $user->roles) || ( function_exists( 'is_super_admin' ) && is_super_admin($user->ID) );
|
851 |
break;
|
852 |
default:
|
853 |
-
//
|
854 |
break;
|
855 |
}
|
856 |
}
|
857 |
|
858 |
-
if (
|
859 |
-
//
|
860 |
-
//
|
861 |
$extra_viewers = $this->GetAllowedPluginViewers();
|
862 |
-
if (in_array($user->user_login, $extra_viewers )) {
|
863 |
$result = true;
|
864 |
-
} elseif (!empty(array_intersect($extra_viewers, $user->roles))) {
|
865 |
$result = true;
|
866 |
}
|
867 |
}
|
868 |
break;
|
869 |
case 'edit':
|
870 |
if ( $is_multisite ) {
|
871 |
-
//
|
872 |
if ( wp_doing_ajax() ) {
|
873 |
-
//
|
874 |
$result = true;
|
875 |
-
}
|
876 |
$result = false;
|
877 |
break;
|
878 |
}
|
@@ -880,12 +652,12 @@ class WSAL_Settings {
|
|
880 |
|
881 |
$restrict_plugin_setting = $this->get_restrict_plugin_setting();
|
882 |
if ( 'only_me' === $restrict_plugin_setting ) {
|
883 |
-
$result = ( $user->ID == $this->get_only_me_user_id());
|
884 |
} elseif ( 'only_admins' === $restrict_plugin_setting ) {
|
885 |
-
if ($is_multisite) {
|
886 |
-
$result = ( function_exists( 'is_super_admin' ) && is_super_admin($user->ID) );
|
887 |
} else {
|
888 |
-
$result = in_array('administrator', $user->roles);
|
889 |
}
|
890 |
}
|
891 |
break;
|
@@ -903,14 +675,14 @@ class WSAL_Settings {
|
|
903 |
* @param string $action Action to check permissions for.
|
904 |
* @return bool
|
905 |
*/
|
906 |
-
return apply_filters('wsal_user_can', $result, $user, $action);
|
907 |
}
|
908 |
|
909 |
public function GetCurrentUserRoles( $base_roles = null ) {
|
910 |
if ( null == $base_roles ) {
|
911 |
$base_roles = wp_get_current_user()->roles;
|
912 |
}
|
913 |
-
if ( function_exists( 'is_super_admin' ) && is_super_admin() ) {
|
914 |
$base_roles[] = 'superadmin';
|
915 |
}
|
916 |
return $base_roles;
|
@@ -970,7 +742,19 @@ class WSAL_Settings {
|
|
970 |
public function GetClientIPs() {
|
971 |
$ips = array();
|
972 |
|
973 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
974 |
if ( isset( $_SERVER[ $key ] ) ) {
|
975 |
$ips[ $key ] = array();
|
976 |
|
@@ -1129,61 +913,92 @@ class WSAL_Settings {
|
|
1129 |
}
|
1130 |
|
1131 |
/**
|
1132 |
-
*
|
|
|
|
|
|
|
|
|
1133 |
*
|
1134 |
* @param boolean $line_break - True if line break otherwise false.
|
|
|
|
|
1135 |
*/
|
1136 |
-
public function GetDatetimeFormat( $line_break = true ) {
|
1137 |
-
|
1138 |
-
$date_time_format = $this->GetDateFormat() . '<\b\r>' . $this->GetTimeFormat();
|
1139 |
-
} else {
|
1140 |
-
$date_time_format = $this->GetDateFormat() . ' ' . $this->GetTimeFormat();
|
1141 |
-
}
|
1142 |
|
1143 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1144 |
|
1145 |
// Check if the time format does not have seconds.
|
1146 |
-
if ( stripos( $
|
1147 |
-
if ( stripos( $
|
1148 |
-
$
|
1149 |
}
|
1150 |
-
$
|
1151 |
-
$
|
1152 |
} else {
|
1153 |
// Check if the time format does have milliseconds.
|
1154 |
-
if ( stripos( $
|
1155 |
-
$
|
1156 |
} else {
|
1157 |
-
$
|
1158 |
}
|
1159 |
}
|
1160 |
|
1161 |
-
if (
|
1162 |
-
$
|
1163 |
}
|
1164 |
-
|
|
|
|
|
|
|
1165 |
}
|
1166 |
|
1167 |
/**
|
1168 |
-
* Date
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1169 |
*/
|
1170 |
-
public function GetDateFormat() {
|
1171 |
-
|
1172 |
-
|
1173 |
-
|
1174 |
-
|
1175 |
-
return
|
1176 |
}
|
1177 |
|
1178 |
/**
|
1179 |
-
* Time
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1180 |
*/
|
1181 |
-
public function GetTimeFormat() {
|
1182 |
-
$
|
1183 |
-
|
1184 |
-
|
1185 |
-
|
1186 |
-
|
|
|
|
|
1187 |
}
|
1188 |
|
1189 |
/**
|
@@ -1420,87 +1235,13 @@ class WSAL_Settings {
|
|
1420 |
}
|
1421 |
}
|
1422 |
|
1423 |
-
/**
|
1424 |
-
* Generate index.php file for each sub-directory present in the plugin working directory.
|
1425 |
-
*
|
1426 |
-
* @since 3.1.2
|
1427 |
-
*/
|
1428 |
-
public function generate_index_files() {
|
1429 |
-
// get plugin working directory.
|
1430 |
-
$wsal_working_dir = $this->get_working_dir_path();
|
1431 |
-
|
1432 |
-
// If the directory exists then generate index.php file for every sub-directory.
|
1433 |
-
if ( ! is_wp_error( $wsal_working_dir ) && ! empty( $wsal_working_dir ) && is_dir( $wsal_working_dir ) ) {
|
1434 |
-
// Generate index.php for the main directory.
|
1435 |
-
if ( ! file_exists( $wsal_working_dir . DIRECTORY_SEPARATOR . 'index.php' ) ) {
|
1436 |
-
// Generate index.php file.
|
1437 |
-
$this->create_index_file( $wsal_working_dir );
|
1438 |
-
}
|
1439 |
-
|
1440 |
-
// Generate .htaccess for the main directory.
|
1441 |
-
if ( ! file_exists( $wsal_working_dir . DIRECTORY_SEPARATOR . '.htaccess' ) ) {
|
1442 |
-
// Generate .htaccess file.
|
1443 |
-
$this->create_htaccess_file( $wsal_working_dir );
|
1444 |
-
}
|
1445 |
-
|
1446 |
-
// Fetch all files in the uploads directory.
|
1447 |
-
$sub_directories = glob( $wsal_working_dir . '*' );
|
1448 |
-
foreach ( $sub_directories as $sub_dir ) {
|
1449 |
-
// index.php file.
|
1450 |
-
if ( is_dir( $sub_dir ) && ! file_exists( $sub_dir . DIRECTORY_SEPARATOR . 'index.php' ) ) {
|
1451 |
-
// Generate index.php file.
|
1452 |
-
$this->create_index_file( $sub_dir . '/' );
|
1453 |
-
}
|
1454 |
-
|
1455 |
-
// .htaccess file.
|
1456 |
-
if ( is_dir( $sub_dir ) && ! file_exists( $sub_dir . DIRECTORY_SEPARATOR . '.htaccess' ) ) {
|
1457 |
-
// Generate .htaccess file.
|
1458 |
-
$this->create_htaccess_file( $sub_dir . DIRECTORY_SEPARATOR );
|
1459 |
-
}
|
1460 |
-
}
|
1461 |
-
}
|
1462 |
-
}
|
1463 |
-
|
1464 |
-
/**
|
1465 |
-
* Create an index.php file, if none exists, in order to
|
1466 |
-
* avoid directory listing in the specified directory.
|
1467 |
-
*
|
1468 |
-
* @param string $dir_path - Directory Path.
|
1469 |
-
* @return bool
|
1470 |
-
* @since 3.1.2
|
1471 |
-
*/
|
1472 |
-
final public function create_index_file( $dir_path ) {
|
1473 |
-
// Check if index.php file exists.
|
1474 |
-
$dir_path = trailingslashit( $dir_path );
|
1475 |
-
$result = 0;
|
1476 |
-
if ( ! is_file( $dir_path . 'index.php' ) ) {
|
1477 |
-
$result = @file_put_contents( $dir_path . 'index.php', '<?php // Silence is golden' );
|
1478 |
-
}
|
1479 |
-
return ( $result > 0 );
|
1480 |
-
}
|
1481 |
-
|
1482 |
-
/**
|
1483 |
-
* Create an .htaccess file, if none exists, in order to
|
1484 |
-
* block access to directory listing in the specified directory.
|
1485 |
-
*
|
1486 |
-
* @param string $dir_path - Directory Path.
|
1487 |
-
* @return bool
|
1488 |
-
* @since 3.1.2
|
1489 |
-
*/
|
1490 |
-
final public function create_htaccess_file( $dir_path ) {
|
1491 |
-
// Check if .htaccess file exists.
|
1492 |
-
$dir_path = trailingslashit( $dir_path );
|
1493 |
-
$result = 0;
|
1494 |
-
if ( ! is_file( $dir_path . '.htaccess' ) ) {
|
1495 |
-
$result = @file_put_contents( $dir_path . '.htaccess', 'Deny from all' );
|
1496 |
-
}
|
1497 |
-
return ( $result > 0 );
|
1498 |
-
}
|
1499 |
|
1500 |
/**
|
1501 |
* Method: Get Token Type.
|
1502 |
*
|
1503 |
* @param string $token - Token type.
|
|
|
|
|
1504 |
* @since 3.2.3
|
1505 |
*/
|
1506 |
public function get_token_type( $token ) {
|
@@ -1605,11 +1346,11 @@ class WSAL_Settings {
|
|
1605 |
}
|
1606 |
|
1607 |
$this->SetIncognito( true ); // Incognito mode to hide WSAL on plugins page.
|
1608 |
-
$this->set_restrict_log_viewer('only_me');
|
1609 |
-
$this->set_restrict_plugin_setting('only_me');
|
1610 |
-
//
|
1611 |
$only_me_user_id = is_user_logged_in() ? get_current_user_id() : 1;
|
1612 |
-
$this->set_only_me_user_id($only_me_user_id);
|
1613 |
$this->_plugin->SetGlobalBooleanSetting( 'mwp-child-stealth-mode', true ); // Save stealth mode option.
|
1614 |
}
|
1615 |
}
|
@@ -1621,9 +1362,9 @@ class WSAL_Settings {
|
|
1621 |
*/
|
1622 |
public function deactivate_mainwp_child_stealth_mode() {
|
1623 |
$this->SetIncognito( false ); // Disable incognito mode to hide WSAL on plugins page.
|
1624 |
-
$this->set_restrict_plugin_setting('only_admins');
|
1625 |
-
$this->set_restrict_log_viewer('only_admins');
|
1626 |
-
$this->set_admin_blocking_plugin_support(false);
|
1627 |
$this->_plugin->SetGlobalBooleanSetting( 'mwp-child-stealth-mode', false ); // Disable stealth mode option.
|
1628 |
}
|
1629 |
|
@@ -1654,36 +1395,68 @@ class WSAL_Settings {
|
|
1654 |
/**
|
1655 |
* Method: Meta data formatter.
|
1656 |
*
|
1657 |
-
* @param string
|
1658 |
-
* @param mixed
|
1659 |
* @param integer $occ_id - Event occurrence ID.
|
1660 |
-
* @param mixed
|
|
|
1661 |
*
|
1662 |
* @return string
|
1663 |
* @throws Freemius_Exception
|
1664 |
*/
|
1665 |
-
public function meta_formatter( $name, $value, $occ_id, $highlight ) {
|
1666 |
-
|
1667 |
-
|
1668 |
-
|
1669 |
-
|
1670 |
-
|
1671 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1672 |
}
|
1673 |
|
|
|
1674 |
switch ( true ) {
|
1675 |
case '%Message%' == $name:
|
1676 |
return esc_html( $value );
|
1677 |
-
|
1678 |
-
return '<p class="promo-alert">' . $value . '</p>';
|
1679 |
-
case '%PromoLink%' == $name:
|
1680 |
case '%CommentLink%' == $name:
|
1681 |
case '%CommentMsg%' == $name:
|
1682 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1683 |
|
1684 |
case '%MetaLink%' == $name:
|
1685 |
if ( ! empty( $value ) ) {
|
1686 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
1687 |
} else {
|
1688 |
return '';
|
1689 |
}
|
@@ -1691,27 +1464,93 @@ class WSAL_Settings {
|
|
1691 |
case '%RevisionLink%' === $name:
|
1692 |
$check_value = (string) $value;
|
1693 |
if ( 'NULL' !== $check_value ) {
|
1694 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1695 |
}
|
1696 |
return false;
|
1697 |
|
1698 |
-
case
|
1699 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1700 |
|
1701 |
case '%EditorLinkOrder%' == $name:
|
1702 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1703 |
|
1704 |
case '%CategoryLink%' == $name:
|
1705 |
case '%cat_link%' == $name:
|
1706 |
case '%ProductCatLink%' == $name:
|
1707 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1708 |
|
1709 |
case '%TagLink%' == $name:
|
1710 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1711 |
|
1712 |
case '%EditUserLink%' === $name:
|
1713 |
if ( 'NULL' !== $value ) {
|
1714 |
-
return '<a href="' . $value . '" target="_blank">' . __( 'User profile page', 'wp-security-audit-log' ) . '</a>';
|
1715 |
}
|
1716 |
return '';
|
1717 |
|
@@ -1741,7 +1580,56 @@ class WSAL_Settings {
|
|
1741 |
$return_value = '';
|
1742 |
if ( null !== $occ_post && 'publish' === $occ_post->post_status ) {
|
1743 |
$post_permalink = get_permalink( $occ_post->ID );
|
1744 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1745 |
}
|
1746 |
return $return_value;
|
1747 |
|
@@ -1757,15 +1645,31 @@ class WSAL_Settings {
|
|
1757 |
}
|
1758 |
|
1759 |
case '%LogFileText%' === $name: // Failed login file text.
|
1760 |
-
|
|
|
|
|
|
|
1761 |
|
1762 |
case strncmp( $value, 'http://', 7 ) === 0:
|
1763 |
case strncmp( $value, 'https://', 8 ) === 0:
|
1764 |
-
|
1765 |
-
|
1766 |
-
|
1767 |
-
|
1768 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1769 |
}
|
1770 |
|
1771 |
case in_array( $name, array( '%PostStatus%', '%ProductStatus%' ), true ):
|
@@ -1779,7 +1683,11 @@ class WSAL_Settings {
|
|
1779 |
if ( $this->_plugin->IsMultisite() && $value ) {
|
1780 |
$site_info = get_blog_details( $value, true );
|
1781 |
if ( $site_info ) {
|
1782 |
-
|
|
|
|
|
|
|
|
|
1783 |
}
|
1784 |
return;
|
1785 |
}
|
@@ -1795,6 +1703,9 @@ class WSAL_Settings {
|
|
1795 |
if ( 'NULL' === $value ) {
|
1796 |
return false;
|
1797 |
}
|
|
|
|
|
|
|
1798 |
/* translators: Mailto link for support. */
|
1799 |
return ' with errors. ' . sprintf( __( 'Contact us on %s for assistance', 'wp-security-audit-log' ), '<a href="mailto:support@wpsecurityauditlog.com" target="_blank">support@wpsecurityauditlog.com</a>' );
|
1800 |
|
@@ -1808,21 +1719,65 @@ class WSAL_Settings {
|
|
1808 |
'tab' => 'file-changes',
|
1809 |
);
|
1810 |
$file_settings = add_query_arg( $file_settings_args, admin_url( 'admin.php' ) );
|
1811 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1812 |
|
1813 |
case '%ContactSupport%' === $name:
|
1814 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1815 |
|
1816 |
case '%LineBreak%' === $name:
|
|
|
|
|
|
|
|
|
|
|
|
|
1817 |
return '<br>';
|
1818 |
|
1819 |
case '%PluginFile%' === $name:
|
1820 |
return $highlight_start_tag . dirname( $value ) . $highlight_end_tag;
|
1821 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1822 |
default:
|
1823 |
// if we didn't get a match already try get one via a filter.
|
1824 |
$filtered_formatted_value = apply_filters( 'wsal_meta_formatter_custom_formatter', $value, $name );
|
1825 |
-
return ( $value !== $filtered_formatted_value
|
1826 |
}
|
1827 |
}
|
1828 |
|
@@ -1921,144 +1876,18 @@ class WSAL_Settings {
|
|
1921 |
/**
|
1922 |
* Method: Meta data formatter.
|
1923 |
*
|
1924 |
-
* @
|
|
|
|
|
|
|
1925 |
*
|
1926 |
-
* @param string $name - Name of the data.
|
1927 |
-
* @param mixed $value - Value of the data.
|
1928 |
-
* @param integer $occ_id - Event occurrence ID.
|
1929 |
-
* @param mixed $highlight - Highlight format.
|
1930 |
* @return string
|
|
|
|
|
|
|
1931 |
*/
|
1932 |
-
|
1933 |
-
|
1934 |
-
case '%Message%' === $name:
|
1935 |
-
return esc_html( $value );
|
1936 |
-
|
1937 |
-
case '%PromoLink%' === $name:
|
1938 |
-
case '%CommentLink%' === $name:
|
1939 |
-
case '%CommentMsg%' === $name:
|
1940 |
-
return $value;
|
1941 |
-
|
1942 |
-
case '%MetaLink%' === $name:
|
1943 |
-
return '';
|
1944 |
-
|
1945 |
-
case '%RevisionLink%' === $name:
|
1946 |
-
$check_value = (string) $value;
|
1947 |
-
if ( 'NULL' !== $check_value ) {
|
1948 |
-
return ' Click <' . esc_url( $value ) . '|here> to see the content changes.';
|
1949 |
-
} else {
|
1950 |
-
return false;
|
1951 |
-
}
|
1952 |
-
|
1953 |
-
case '%EditorLinkPost%' === $name:
|
1954 |
-
return ' View the <' . esc_url( $value ) . '|post>';
|
1955 |
-
|
1956 |
-
case '%EditorLinkOrder%' === $name:
|
1957 |
-
return ' <' . esc_url( $value ) . '|View Order>';
|
1958 |
-
|
1959 |
-
case '%CategoryLink%' === $name:
|
1960 |
-
case '%cat_link%' === $name:
|
1961 |
-
case '%ProductCatLink%' == $name:
|
1962 |
-
return ' View the <' . esc_url( $value ) . '|category>';
|
1963 |
-
|
1964 |
-
case '%TagLink%' === $name:
|
1965 |
-
return ' View the <' . esc_url( $value ) . '|tag>';
|
1966 |
-
|
1967 |
-
case '%EditorLinkForum%' === $name:
|
1968 |
-
return ' View the <' . esc_url( $value ) . '|forum>';
|
1969 |
-
|
1970 |
-
case '%EditorLinkTopic%' === $name:
|
1971 |
-
return ' View the <' . esc_url( $value ) . '|topic>';
|
1972 |
-
|
1973 |
-
case in_array( $name, array( '%MetaValue%', '%MetaValueOld%', '%MetaValueNew%' ), true ):
|
1974 |
-
return '*' . ( strlen( $value ) > 50 ? ( esc_html( substr( $value, 0, 50 ) ) . '...' ) : esc_html( $value ) ) . '*';
|
1975 |
-
|
1976 |
-
case '%ClientIP%' === $name:
|
1977 |
-
if ( is_string( $value ) ) {
|
1978 |
-
return '*' . str_replace( array( '"', '[', ']' ), '', $value ) . '*';
|
1979 |
-
} else {
|
1980 |
-
return '_unknown_';
|
1981 |
-
}
|
1982 |
-
|
1983 |
-
case '%LinkFile%' === $name:
|
1984 |
-
if ( 'NULL' != $value ) {
|
1985 |
-
return '';
|
1986 |
-
} else {
|
1987 |
-
return 'Click <' . esc_url( add_query_arg( 'page', 'wsal-togglealerts', admin_url( 'admin.php' ) ) ) . '|here> to log such requests to file';
|
1988 |
-
}
|
1989 |
-
|
1990 |
-
case '%URL%' === $name:
|
1991 |
-
return '.';
|
1992 |
-
|
1993 |
-
case '%LogFileLink%' === $name: // Failed login file link.
|
1994 |
-
return '';
|
1995 |
-
|
1996 |
-
case '%Attempts%' === $name: // Failed login attempts.
|
1997 |
-
$check_value = (int) $value;
|
1998 |
-
if ( 0 === $check_value ) {
|
1999 |
-
return '';
|
2000 |
-
} else {
|
2001 |
-
return $value;
|
2002 |
-
}
|
2003 |
-
|
2004 |
-
case '%LogFileText%' === $name: // Failed login file text.
|
2005 |
-
return '';
|
2006 |
-
|
2007 |
-
case strncmp( $value, 'http://', 7 ) === 0:
|
2008 |
-
case strncmp( $value, 'https://', 8 ) === 0:
|
2009 |
-
return '<' . esc_html( $value ) . '|' . esc_html( $value ) . '>';
|
2010 |
-
|
2011 |
-
case in_array( $name, array( '%PostStatus%', '%ProductStatus%' ), true ):
|
2012 |
-
if ( ! empty( $value ) && 'publish' === $value ) {
|
2013 |
-
return '*' . esc_html__( 'published', 'wp-security-audit-log' ) . '*';
|
2014 |
-
} else {
|
2015 |
-
return '*' . esc_html( $value ) . '*';
|
2016 |
-
}
|
2017 |
-
|
2018 |
-
case '%multisite_text%' === $name:
|
2019 |
-
if ( $this->_plugin->IsMultisite() && $value ) {
|
2020 |
-
$site_info = get_blog_details( $value, true );
|
2021 |
-
if ( $site_info ) {
|
2022 |
-
return ' on site <' . esc_url( $site_info->siteurl ) . '|' . esc_html( $site_info->blogname ) . '>';
|
2023 |
-
}
|
2024 |
-
return;
|
2025 |
-
}
|
2026 |
-
return;
|
2027 |
-
|
2028 |
-
case '%ReportText%' === $name:
|
2029 |
-
return;
|
2030 |
-
|
2031 |
-
case '%ChangeText%' === $name:
|
2032 |
-
return;
|
2033 |
-
|
2034 |
-
case '%ScanError%' === $name:
|
2035 |
-
if ( 'NULL' === $value ) {
|
2036 |
-
return false;
|
2037 |
-
}
|
2038 |
-
/* translators: Mailto link for support. */
|
2039 |
-
return ' with errors. ' . sprintf( __( 'Contact us on %s for assistance', 'wp-security-audit-log' ), '<mailto:support@wpsecurityauditlog.com|support@wpsecurityauditlog.com>' );
|
2040 |
-
|
2041 |
-
case '%TableNames%' === $name:
|
2042 |
-
$value = str_replace( ',', ', ', $value );
|
2043 |
-
return '*' . esc_html( $value ) . '*';
|
2044 |
-
|
2045 |
-
case '%FileSettings%' === $name:
|
2046 |
-
$file_settings_args = array(
|
2047 |
-
'page' => 'wsal-settings',
|
2048 |
-
'tab' => 'file-changes',
|
2049 |
-
);
|
2050 |
-
$file_settings = add_query_arg( $file_settings_args, admin_url( 'admin.php' ) );
|
2051 |
-
return '<' . esc_url( $file_settings ) . '|' . esc_html__( 'plugin settings', 'wp-security-audit-log' ) . '>';
|
2052 |
-
|
2053 |
-
case '%ContactSupport%' === $name:
|
2054 |
-
return '<https://wpactivitylog.com/contact|' . esc_html__( 'contact our support', 'wp-security-audit-log' ) . '>';
|
2055 |
-
|
2056 |
-
case '%LineBreak%' === $name:
|
2057 |
-
return;
|
2058 |
-
|
2059 |
-
default:
|
2060 |
-
return '*' . esc_html( $value ) . '*';
|
2061 |
-
}
|
2062 |
}
|
2063 |
|
2064 |
/**
|
@@ -2107,8 +1936,9 @@ class WSAL_Settings {
|
|
2107 |
* @return array - WSAL Options array.
|
2108 |
*/
|
2109 |
public function get_plugin_settings() {
|
2110 |
-
|
2111 |
-
|
|
|
2112 |
}
|
2113 |
|
2114 |
/**
|
@@ -2319,7 +2149,7 @@ class WSAL_Settings {
|
|
2319 |
* @return bool
|
2320 |
*/
|
2321 |
public static function set_frontend_events( $value = array() ) {
|
2322 |
-
return \WSAL\Helpers\Options::set_option_value_ignore_prefix( self::FRONT_END_EVENTS_OPTION_NAME, $value);
|
2323 |
}
|
2324 |
|
2325 |
/**
|
@@ -2342,14 +2172,14 @@ class WSAL_Settings {
|
|
2342 |
return $this->_plugin->GetGlobalSetting( 'only-me-user-id' );
|
2343 |
}
|
2344 |
|
2345 |
-
|
2346 |
-
|
2347 |
-
|
2348 |
-
|
2349 |
-
|
2350 |
-
|
2351 |
-
|
2352 |
-
|
2353 |
|
2354 |
/**
|
2355 |
* Check if admin blocking plugin support is enabled.
|
@@ -2361,19 +2191,19 @@ class WSAL_Settings {
|
|
2361 |
* @return bool
|
2362 |
*/
|
2363 |
public function get_admin_blocking_plugin_support() {
|
2364 |
-
|
2365 |
}
|
2366 |
|
2367 |
-
|
2368 |
-
|
2369 |
-
|
2370 |
|
2371 |
public function set_mainwp_enforced_settings( $settings ) {
|
2372 |
-
|
2373 |
-
|
2374 |
|
2375 |
-
|
2376 |
-
|
2377 |
-
|
2378 |
|
2379 |
}
|
33 |
*/
|
34 |
protected $_plugin;
|
35 |
|
36 |
+
const ERROR_CODE_INVALID_IP = 901;
|
|
|
|
|
|
|
|
|
37 |
|
38 |
/**
|
39 |
* List of Site Admins.
|
42 |
*/
|
43 |
private $site_admins = array();
|
44 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
/**
|
46 |
* Pruning Date.
|
47 |
*
|
108 |
/**
|
109 |
* Alerts enabled in Geek mode.
|
110 |
*
|
111 |
+
* @var int[]
|
112 |
*/
|
113 |
+
public $geek_alerts = array( 1004, 1005, 1006, 1007, 2023, 2024, 2053, 2054, 2055, 2062, 2100, 2111, 2112, 2124, 2125, 2131, 2132, 2094, 2095, 2043, 2071, 2082, 2083, 2085, 2089, 4014, 4015, 4016, 5019, 5025, 6001, 6002, 6008, 6010, 6011, 6012, 6013, 6014, 6015, 6016, 6017, 6018, 6024, 6025 );
|
114 |
+
|
115 |
+
/**
|
116 |
+
* Alerts always disabled by default - in basic mode and also in geek mode.
|
117 |
+
*
|
118 |
+
* @var int[]
|
119 |
+
* @since 4.2.0
|
120 |
+
*/
|
121 |
+
public $always_disabled_alerts = array( 5010, 5011, 5012, 5013, 5014, 5015, 5016, 5017, 5018, 5022, 5023, 5024 );
|
122 |
|
123 |
/**
|
124 |
* Current screen object.
|
141 |
add_action( 'deactivated_plugin', array( $this, 'reset_stealth_mode' ), 10, 1 );
|
142 |
}
|
143 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
144 |
|
145 |
/**
|
146 |
* Enable Basic Mode.
|
147 |
*/
|
148 |
public function set_basic_mode() {
|
149 |
+
// Disable alerts of geek mode and alerts to be always disabled.
|
150 |
+
$this->SetDisabledAlerts( array_merge( $this->geek_alerts, $this->always_disabled_alerts ) );
|
151 |
}
|
152 |
|
153 |
/**
|
154 |
* Enable Geek Mode.
|
155 |
*/
|
156 |
public function set_geek_mode() {
|
157 |
+
$this->SetDisabledAlerts( $this->always_disabled_alerts ); // Disable alerts to be always disabled.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
158 |
}
|
159 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
160 |
|
161 |
/**
|
162 |
* Check whether dashboard widgets are enabled or not.
|
582 |
$user = get_userdata( $user );
|
583 |
}
|
584 |
|
585 |
+
// by default the user has no privileges
|
586 |
$result = false;
|
587 |
|
588 |
$is_multisite = $this->_plugin->IsMultisite();
|
589 |
switch ( $action ) {
|
590 |
case 'view':
|
591 |
+
if ( ! $is_multisite ) {
|
592 |
+
// non-multisite piggybacks on the plugin settings access
|
593 |
switch ( $this->get_restrict_plugin_setting() ) {
|
594 |
case 'only_admins':
|
595 |
+
// allow access only if the user is and admin
|
596 |
+
$result = in_array( 'administrator', $user->roles );
|
597 |
break;
|
598 |
case 'only_me':
|
599 |
+
// allow access only if the user matches the only user allowed access
|
600 |
$result = $user->ID == $this->get_only_me_user_id();
|
601 |
break;
|
602 |
default:
|
603 |
+
// no other options to allow access here
|
604 |
$result = false;
|
605 |
}
|
606 |
} else {
|
607 |
+
// multisite MUST respect the log viewer restriction settings plus also additional users and roles
|
608 |
+
// defined in the extra option
|
609 |
switch ( $this->get_restrict_log_viewer() ) {
|
610 |
case 'only_me':
|
611 |
+
// allow access only if the user matches the only user allowed access
|
612 |
$result = ( $user->ID == $this->get_only_me_user_id() );
|
613 |
break;
|
614 |
case 'only_superadmins':
|
615 |
+
// allow access only for super admins
|
616 |
+
if ( function_exists( 'is_super_admin' ) && is_super_admin( $user->ID ) ) {
|
617 |
$result = true;
|
618 |
}
|
619 |
break;
|
620 |
case 'only_admins':
|
621 |
+
// allow access only for super admins and admins
|
622 |
+
$result = in_array( 'administrator', $user->roles ) || ( function_exists( 'is_super_admin' ) && is_super_admin( $user->ID ) );
|
623 |
break;
|
624 |
default:
|
625 |
+
// fallback for any other cases would go here
|
626 |
break;
|
627 |
}
|
628 |
}
|
629 |
|
630 |
+
if ( ! $result ) {
|
631 |
+
// user is still not allowed to view the logs, let's check the additional users and roles
|
632 |
+
// settings
|
633 |
$extra_viewers = $this->GetAllowedPluginViewers();
|
634 |
+
if ( in_array( $user->user_login, $extra_viewers ) ) {
|
635 |
$result = true;
|
636 |
+
} elseif ( ! empty( array_intersect( $extra_viewers, $user->roles ) ) ) {
|
637 |
$result = true;
|
638 |
}
|
639 |
}
|
640 |
break;
|
641 |
case 'edit':
|
642 |
if ( $is_multisite ) {
|
643 |
+
// no one has access to settings on sub site inside a network
|
644 |
if ( wp_doing_ajax() ) {
|
645 |
+
// AJAX calls are an exception
|
646 |
$result = true;
|
647 |
+
} elseif ( ! is_network_admin() ) {
|
648 |
$result = false;
|
649 |
break;
|
650 |
}
|
652 |
|
653 |
$restrict_plugin_setting = $this->get_restrict_plugin_setting();
|
654 |
if ( 'only_me' === $restrict_plugin_setting ) {
|
655 |
+
$result = ( $user->ID == $this->get_only_me_user_id() );
|
656 |
} elseif ( 'only_admins' === $restrict_plugin_setting ) {
|
657 |
+
if ( $is_multisite ) {
|
658 |
+
$result = ( function_exists( 'is_super_admin' ) && is_super_admin( $user->ID ) );
|
659 |
} else {
|
660 |
+
$result = in_array( 'administrator', $user->roles );
|
661 |
}
|
662 |
}
|
663 |
break;
|
675 |
* @param string $action Action to check permissions for.
|
676 |
* @return bool
|
677 |
*/
|
678 |
+
return apply_filters( 'wsal_user_can', $result, $user, $action );
|
679 |
}
|
680 |
|
681 |
public function GetCurrentUserRoles( $base_roles = null ) {
|
682 |
if ( null == $base_roles ) {
|
683 |
$base_roles = wp_get_current_user()->roles;
|
684 |
}
|
685 |
+
if ( is_multisite() && function_exists( 'is_super_admin' ) && is_super_admin() ) {
|
686 |
$base_roles[] = 'superadmin';
|
687 |
}
|
688 |
return $base_roles;
|
742 |
public function GetClientIPs() {
|
743 |
$ips = array();
|
744 |
|
745 |
+
$proxy_headers = array(
|
746 |
+
'HTTP_CLIENT_IP',
|
747 |
+
'HTTP_X_FORWARDED_FOR',
|
748 |
+
'HTTP_X_FORWARDED',
|
749 |
+
'HTTP_X_CLUSTER_CLIENT_IP',
|
750 |
+
'HTTP_FORWARDED_FOR',
|
751 |
+
'HTTP_FORWARDED',
|
752 |
+
'REMOTE_ADDR',
|
753 |
+
// Cloudflare
|
754 |
+
'HTTP_CF-Connecting-IP',
|
755 |
+
'HTTP_TRUE_CLIENT_IP'
|
756 |
+
);
|
757 |
+
foreach ( $proxy_headers as $key ) {
|
758 |
if ( isset( $_SERVER[ $key ] ) ) {
|
759 |
$ips[ $key ] = array();
|
760 |
|
913 |
}
|
914 |
|
915 |
/**
|
916 |
+
* Determines datetime format to be displayed in any UI in the plugin (logs in administration, emails, reports,
|
917 |
+
* notifications etc.).
|
918 |
+
*
|
919 |
+
* Note: Format returned by this function is not compatible with JavaScript date and time picker widgets. Use
|
920 |
+
* functions GetTimeFormat and GetDateFormat for those.
|
921 |
*
|
922 |
* @param boolean $line_break - True if line break otherwise false.
|
923 |
+
*
|
924 |
+
* @return string
|
925 |
*/
|
926 |
+
public function GetDatetimeFormat( $line_break = true, $use_nb_space_for_am_pm = true ) {
|
927 |
+
$result = $this->GetDateFormat();
|
|
|
|
|
|
|
|
|
928 |
|
929 |
+
$result .= $line_break ? '<\b\r>' : ' ';
|
930 |
+
|
931 |
+
$time_format = $this->GetTimeFormat();
|
932 |
+
$has_am_pm = false;
|
933 |
+
$am_pm_fraction = false;
|
934 |
+
$am_pm_pattern = '/(?i)(\s+A)/';
|
935 |
+
if ( preg_match( $am_pm_pattern, $time_format, $am_pm_matches ) ) {
|
936 |
+
$has_am_pm = true;
|
937 |
+
$am_pm_fraction = $am_pm_matches[0];
|
938 |
+
$time_format = preg_replace( $am_pm_pattern, '', $time_format );
|
939 |
+
}
|
940 |
|
941 |
// Check if the time format does not have seconds.
|
942 |
+
if ( stripos( $time_format, 's' ) === false ) {
|
943 |
+
if ( stripos( $time_format, '.v' ) !== false ) {
|
944 |
+
$time_format = str_replace( '.v', '', $result );
|
945 |
}
|
946 |
+
$time_format .= ':s'; // Add seconds to time format.
|
947 |
+
$time_format .= '.$$$'; // Add milliseconds to time format.
|
948 |
} else {
|
949 |
// Check if the time format does have milliseconds.
|
950 |
+
if ( stripos( $time_format, '.v' ) !== false ) {
|
951 |
+
$time_format = str_replace( '.v', '.$$$', $result );
|
952 |
} else {
|
953 |
+
$time_format .= '.$$$';
|
954 |
}
|
955 |
}
|
956 |
|
957 |
+
if ( $has_am_pm ) {
|
958 |
+
$time_format .= preg_replace( '/\s/', $use_nb_space_for_am_pm ? '&\n\b\s\p;' : ' ', $am_pm_fraction );
|
959 |
}
|
960 |
+
|
961 |
+
$result .= $time_format;
|
962 |
+
|
963 |
+
return $result;
|
964 |
}
|
965 |
|
966 |
/**
|
967 |
+
* Date format based on WordPress date settings. It can be optionally sanitized to get format compatible with
|
968 |
+
* JavaScript date and time picker widgets.
|
969 |
+
*
|
970 |
+
* Note: This function must not be used to display actual date and time values anywhere. For that use function GetDateTimeFormat.
|
971 |
+
*
|
972 |
+
* @param bool $sanitized If true, the format is sanitized for use with JavaScript date and time picker widgets.
|
973 |
+
*
|
974 |
+
* @return string
|
975 |
*/
|
976 |
+
public function GetDateFormat( $sanitized = false ) {
|
977 |
+
if ( $sanitized ) {
|
978 |
+
return 'Y-m-d';
|
979 |
+
}
|
980 |
+
|
981 |
+
return get_option( 'date_format' );
|
982 |
}
|
983 |
|
984 |
/**
|
985 |
+
* Time format based on WordPress date settings. It can be optionally sanitized to get format compatible with
|
986 |
+
* JavaScript date and time picker widgets.
|
987 |
+
*
|
988 |
+
* Note: This function must not be used to display actual date and time values anywhere. For that use function GetDateTimeFormat.
|
989 |
+
*
|
990 |
+
* @param bool $sanitize If true, the format is sanitized for use with JavaScript date and time picker widgets.
|
991 |
+
*
|
992 |
+
* @return string
|
993 |
*/
|
994 |
+
public function GetTimeFormat( $sanitize = false ) {
|
995 |
+
$result = get_option( 'time_format' );
|
996 |
+
if ( $sanitize ) {
|
997 |
+
$search = array( 'a', 'A', 'T', ' ' );
|
998 |
+
$replace = array( '', '', '', '' );
|
999 |
+
$result = str_replace( $search, $replace, $result );
|
1000 |
+
}
|
1001 |
+
return $result;
|
1002 |
}
|
1003 |
|
1004 |
/**
|
1235 |
}
|
1236 |
}
|
1237 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1238 |
|
1239 |
/**
|
1240 |
* Method: Get Token Type.
|
1241 |
*
|
1242 |
* @param string $token - Token type.
|
1243 |
+
*
|
1244 |
+
* @return string
|
1245 |
* @since 3.2.3
|
1246 |
*/
|
1247 |
public function get_token_type( $token ) {
|
1346 |
}
|
1347 |
|
1348 |
$this->SetIncognito( true ); // Incognito mode to hide WSAL on plugins page.
|
1349 |
+
$this->set_restrict_log_viewer( 'only_me' );
|
1350 |
+
$this->set_restrict_plugin_setting( 'only_me' );
|
1351 |
+
// current user with fallback to default admin (in case this is triggered using WP CLI or something similar)
|
1352 |
$only_me_user_id = is_user_logged_in() ? get_current_user_id() : 1;
|
1353 |
+
$this->set_only_me_user_id( $only_me_user_id );
|
1354 |
$this->_plugin->SetGlobalBooleanSetting( 'mwp-child-stealth-mode', true ); // Save stealth mode option.
|
1355 |
}
|
1356 |
}
|
1362 |
*/
|
1363 |
public function deactivate_mainwp_child_stealth_mode() {
|
1364 |
$this->SetIncognito( false ); // Disable incognito mode to hide WSAL on plugins page.
|
1365 |
+
$this->set_restrict_plugin_setting( 'only_admins' );
|
1366 |
+
$this->set_restrict_log_viewer( 'only_admins' );
|
1367 |
+
$this->set_admin_blocking_plugin_support( false );
|
1368 |
$this->_plugin->SetGlobalBooleanSetting( 'mwp-child-stealth-mode', false ); // Disable stealth mode option.
|
1369 |
}
|
1370 |
|
1395 |
/**
|
1396 |
* Method: Meta data formatter.
|
1397 |
*
|
1398 |
+
* @param string $name - Name of the data.
|
1399 |
+
* @param mixed $value - Value of the data.
|
1400 |
* @param integer $occ_id - Event occurrence ID.
|
1401 |
+
* @param mixed $highlight - Highlight format.
|
1402 |
+
* @param mixed $meta_context - Context for formatting.
|
1403 |
*
|
1404 |
* @return string
|
1405 |
* @throws Freemius_Exception
|
1406 |
*/
|
1407 |
+
public function meta_formatter( $name, $value, $occ_id = null, $highlight = null, $meta_context = false ) {
|
1408 |
+
|
1409 |
+
// Setup the correct context.
|
1410 |
+
$meta_context = ( $highlight && 'daily-report' === $highlight ) ? $highlight : $meta_context;
|
1411 |
+
|
1412 |
+
// Define wrapper html based on context of message.
|
1413 |
+
switch ( $meta_context ) {
|
1414 |
+
case 'reports':
|
1415 |
+
case 'sms':
|
1416 |
+
$highlight_start_tag = '';
|
1417 |
+
$highlight_end_tag = '';
|
1418 |
+
$is_url_shortner = $this->_plugin->GetGlobalBooleanSetting( 'is-url-shortner' );
|
1419 |
+
break;
|
1420 |
+
case 'slack':
|
1421 |
+
$highlight_start_tag = '*';
|
1422 |
+
$highlight_end_tag = '*';
|
1423 |
+
break;
|
1424 |
+
case 'daily-report':
|
1425 |
+
$highlight_start_tag = '<span style="color: #149247;">';
|
1426 |
+
$highlight_end_tag = '</span>';
|
1427 |
+
break;
|
1428 |
+
default:
|
1429 |
+
$highlight_start_tag = '<strong>';
|
1430 |
+
$highlight_end_tag = '</strong>';
|
1431 |
}
|
1432 |
|
1433 |
+
// Reassign the variable tags based on context.
|
1434 |
switch ( true ) {
|
1435 |
case '%Message%' == $name:
|
1436 |
return esc_html( $value );
|
1437 |
+
|
|
|
|
|
1438 |
case '%CommentLink%' == $name:
|
1439 |
case '%CommentMsg%' == $name:
|
1440 |
+
switch ( $meta_context ) {
|
1441 |
+
case 'sms':
|
1442 |
+
return wp_strip_all_tags( $value );
|
1443 |
+
break;
|
1444 |
+
case 'reports':
|
1445 |
+
return strip_tags( $value );
|
1446 |
+
break;
|
1447 |
+
default:
|
1448 |
+
return $value;
|
1449 |
+
}
|
1450 |
|
1451 |
case '%MetaLink%' == $name:
|
1452 |
if ( ! empty( $value ) ) {
|
1453 |
+
switch ( $meta_context ) {
|
1454 |
+
case 'sms':
|
1455 |
+
case 'reports':
|
1456 |
+
case 'slack':
|
1457 |
+
return '';
|
1458 |
+
}
|
1459 |
+
return $highlight_start_tag . "<a href=\"#\" data-disable-custom-nonce='" . wp_create_nonce( 'disable-custom-nonce' . $value ) . "' onclick=\"return WsalDisableCustom(this, '" . $value . "');\"> Exclude Custom Field from the Monitoring</a>" . $highlight_end_tag;
|
1460 |
} else {
|
1461 |
return '';
|
1462 |
}
|
1464 |
case '%RevisionLink%' === $name:
|
1465 |
$check_value = (string) $value;
|
1466 |
if ( 'NULL' !== $check_value ) {
|
1467 |
+
switch ( $meta_context ) {
|
1468 |
+
case 'sms':
|
1469 |
+
$url = $is_url_shortner ? $this->_plugin->wsalCommon->shorten_url_bitly( $value ) : $value;
|
1470 |
+
return esc_html( ' Navigate to this URL to view the changes: ' . $url );
|
1471 |
+
break;
|
1472 |
+
case 'reports':
|
1473 |
+
return esc_html( ' Navigate to this URL to view the changes ' . $value );
|
1474 |
+
break;
|
1475 |
+
case 'slack':
|
1476 |
+
return ' Click <' . esc_url( $value ) . '|here> to see the content changes.';
|
1477 |
+
break;
|
1478 |
+
default:
|
1479 |
+
return $highlight_start_tag . '<a target="_blank" href="' . esc_url( $value ) . '">' . __( 'View the content changes', 'wp-security-audit-log' ) . '</a>' . $highlight_end_tag;
|
1480 |
+
}
|
1481 |
}
|
1482 |
return false;
|
1483 |
|
1484 |
+
case '%EditorLinkPage%' == $name:
|
1485 |
+
if ( 'sms' === $meta_context ) {
|
1486 |
+
$url = $is_url_shortner ? $this->_plugin->wsalCommon->shorten_url_bitly( $value ) : $value;
|
1487 |
+
return ' View the page: ' . esc_url( $url );
|
1488 |
+
}
|
1489 |
+
return $highlight_start_tag . '<a target="_blank" href="' . esc_url( $value ) . '">' . __( 'View page in the editor', 'wp-security-audit-log' ) . '</a>' . $highlight_end_tag;
|
1490 |
+
|
1491 |
+
case '%EditorLinkPost%' == $name:
|
1492 |
+
switch ( $meta_context ) {
|
1493 |
+
case 'sms':
|
1494 |
+
$url = $is_url_shortner ? $this->_plugin->wsalCommon->shorten_url_bitly( $value ) : $value;
|
1495 |
+
return ' View the post: ' . esc_url( $url );
|
1496 |
+
break;
|
1497 |
+
case 'reports':
|
1498 |
+
return ' View the post: ' . esc_url( $value );
|
1499 |
+
break;
|
1500 |
+
case 'slack':
|
1501 |
+
return ' View the <' . esc_url( $value ) . '|post>';
|
1502 |
+
break;
|
1503 |
+
default:
|
1504 |
+
return $highlight_start_tag . '<a target="_blank" href="' . esc_url( $value ) . '">' . __( 'View post in the editor', 'wp-security-audit-log' ) . '</a>' . $highlight_end_tag;
|
1505 |
+
}
|
1506 |
|
1507 |
case '%EditorLinkOrder%' == $name:
|
1508 |
+
switch ( $meta_context ) {
|
1509 |
+
case 'sms':
|
1510 |
+
$url = $is_url_shortner ? $this->_plugin->wsalCommon->shorten_url_bitly( $value ) : $value;
|
1511 |
+
return ' View the order: ' . esc_url( $url );
|
1512 |
+
break;
|
1513 |
+
case 'slack':
|
1514 |
+
return ' <' . esc_url( $value ) . '|View Order>';
|
1515 |
+
break;
|
1516 |
+
default:
|
1517 |
+
return $highlight_start_tag. '<a target="_blank" href="' . esc_url( $value ) . '">' . __( 'View Order', 'wp-security-audit-log' ) . '</a>' . $highlight_end_tag;
|
1518 |
+
}
|
1519 |
|
1520 |
case '%CategoryLink%' == $name:
|
1521 |
case '%cat_link%' == $name:
|
1522 |
case '%ProductCatLink%' == $name:
|
1523 |
+
switch ( $meta_context ) {
|
1524 |
+
case 'sms':
|
1525 |
+
$url = $is_url_shortner ? $this->_plugin->wsalCommon->shorten_url_bitly( $value ) : $value;
|
1526 |
+
return ' View the category: ' . esc_url( $url );
|
1527 |
+
break;
|
1528 |
+
case 'slack':
|
1529 |
+
return ' View the <' . esc_url( $value ) . '|category>';
|
1530 |
+
break;
|
1531 |
+
default:
|
1532 |
+
return $highlight_start_tag . '<a target="_blank" href="' . esc_url( $value ) . '">' . __( 'View category', 'wp-security-audit-log' ) . '</a>' . $highlight_end_tag;
|
1533 |
+
}
|
1534 |
|
1535 |
case '%TagLink%' == $name:
|
1536 |
+
switch ( $meta_context ) {
|
1537 |
+
case 'sms':
|
1538 |
+
$url = $is_url_shortner ? $this->_plugin->wsalCommon->shorten_url_bitly( $value ) : $value;
|
1539 |
+
return ' View the tag: ' . esc_url( $url );
|
1540 |
+
break;
|
1541 |
+
case 'reports':
|
1542 |
+
return ' View the tag: ' . esc_url( $value );
|
1543 |
+
break;
|
1544 |
+
case 'slack':
|
1545 |
+
return ' View the <' . esc_url( $value ) . '|tag>';
|
1546 |
+
break;
|
1547 |
+
default:
|
1548 |
+
return $highlight_start_tag . '<a target="_blank" href="' . esc_url( $value ) . '">' . __( 'View tag', 'wp-security-audit-log' ) . '</a>' . $highlight_end_tag;
|
1549 |
+
}
|
1550 |
|
1551 |
case '%EditUserLink%' === $name:
|
1552 |
if ( 'NULL' !== $value ) {
|
1553 |
+
return $highlight_start_tag . '<a href="' . $value . '" target="_blank">' . __( 'User profile page', 'wp-security-audit-log' ) . '</a>' . $highlight_end_tag;
|
1554 |
}
|
1555 |
return '';
|
1556 |
|
1580 |
$return_value = '';
|
1581 |
if ( null !== $occ_post && 'publish' === $occ_post->post_status ) {
|
1582 |
$post_permalink = get_permalink( $occ_post->ID );
|
1583 |
+
switch ( $meta_context ) {
|
1584 |
+
case 'sms':
|
1585 |
+
$url = $is_url_shortner ? $this->_plugin->wsalCommon->shorten_url_bitly( $post_permalink ) : $post_permalink;
|
1586 |
+
$return_value = ' URL: ' . esc_url( $url );
|
1587 |
+
break;
|
1588 |
+
case 'reports':
|
1589 |
+
$return_value = ' URL: ' . esc_url( $post_permalink );
|
1590 |
+
break;
|
1591 |
+
case 'slack':
|
1592 |
+
$return_valuen = ' URL <' . esc_url( $post_permalink ) . '|tag>';
|
1593 |
+
break;
|
1594 |
+
default:
|
1595 |
+
$return_value = '<br>URL: ' . $highlight_start_tag . '<a href="' . esc_url( $post_permalink ) . '" title="' . esc_attr( $occ_post->post_title ) . '" target="_blank">' . esc_html( $post_permalink ) . '</a>' . $highlight_end_tag;
|
1596 |
+
}
|
1597 |
+
}
|
1598 |
+
return $return_value;
|
1599 |
+
|
1600 |
+
case '%MenuUrl%' === $name:
|
1601 |
+
// get connection.
|
1602 |
+
$db_config = WSAL_Connector_ConnectorFactory::GetConfig(); // Get DB connector configuration.
|
1603 |
+
$connector = $this->_plugin->getConnector( $db_config ); // Get connector for DB.
|
1604 |
+
$wsal_db = $connector->getConnection(); // Get DB connection.
|
1605 |
+
|
1606 |
+
// get values needed.
|
1607 |
+
$meta_adapter = new WSAL_Adapters_MySQL_Meta( $wsal_db );
|
1608 |
+
$event_data = $meta_adapter->LoadByNameAndOccurrenceId( 'MenuID', $occ_id );
|
1609 |
+
$menu_id = $event_data['value'];
|
1610 |
+
|
1611 |
+
// start with an empty string.
|
1612 |
+
$return_value = '';
|
1613 |
+
|
1614 |
+
if ( null !== $menu_id ) {
|
1615 |
+
$menu_url = add_query_arg(
|
1616 |
+
array(
|
1617 |
+
'action' => 'edit',
|
1618 |
+
'menu' => $menu_id,
|
1619 |
+
),
|
1620 |
+
admin_url( 'nav-menus.php' )
|
1621 |
+
);
|
1622 |
+
switch ( $meta_context ) {
|
1623 |
+
case 'sms':
|
1624 |
+
$url = $is_url_shortner ? $this->_plugin->wsalCommon->shorten_url_bitly( $menu_url ) : $menu_url;
|
1625 |
+
$return_value = ' View Menu: ' . esc_url( $url );
|
1626 |
+
break;
|
1627 |
+
case 'slack':
|
1628 |
+
$return_valuen = ' View Menu <' . esc_url( $menu_url ) . '|tag>';
|
1629 |
+
break;
|
1630 |
+
default:
|
1631 |
+
$return_value = '<br>' . $highlight_start_tag . '<a href="' . esc_url( $menu_url ) . '" title="' . esc_html__( 'View Menu', 'wp-security-audit-log' ) . '" target="_blank">' . esc_html__( 'View Menu', 'wp-security-audit-log' ) . '</a>' . $highlight_end_tag;
|
1632 |
+
}
|
1633 |
}
|
1634 |
return $return_value;
|
1635 |
|
1645 |
}
|
1646 |
|
1647 |
case '%LogFileText%' === $name: // Failed login file text.
|
1648 |
+
if ( 'slack' === $meta_context || 'reports' === $meta_context || 'sms' === $meta_context ) {
|
1649 |
+
return '';
|
1650 |
+
}
|
1651 |
+
return $highlight_start_tag . '<a href="javascript:;" onclick="download_failed_login_log( this )" data-download-nonce="' . esc_attr( wp_create_nonce( 'wsal-download-failed-logins' ) ) . '" title="' . esc_html__( 'Download the log file.', 'wp-security-audit-log' ) . '">' . esc_html__( 'Download the log file.', 'wp-security-audit-log' ) . '</a>' . $highlight_end_tag;
|
1652 |
|
1653 |
case strncmp( $value, 'http://', 7 ) === 0:
|
1654 |
case strncmp( $value, 'https://', 8 ) === 0:
|
1655 |
+
switch ( $meta_context ) {
|
1656 |
+
case 'reports':
|
1657 |
+
return esc_html( $value );
|
1658 |
+
break;
|
1659 |
+
case 'sms':
|
1660 |
+
$url = $is_url_shortner ? $this->_plugin->wsalCommon->shorten_url_bitly( $value ) : $value;
|
1661 |
+
return esc_url( $url );
|
1662 |
+
break;
|
1663 |
+
case 'slack' :
|
1664 |
+
return '<' . esc_html( $value ) . '|' . esc_html( $value ) . '>';
|
1665 |
+
break;
|
1666 |
+
default:
|
1667 |
+
$updated_line = apply_filters( 'wsal_link_filter', $value, $name );
|
1668 |
+
if ( $updated_line !== $value ) {
|
1669 |
+
return $updated_line;
|
1670 |
+
} else {
|
1671 |
+
return '<a href="' . esc_html( $value ) . '" title="' . esc_html( $value ) . '" target="_blank">' . esc_html( $value ) . '</a>';
|
1672 |
+
}
|
1673 |
}
|
1674 |
|
1675 |
case in_array( $name, array( '%PostStatus%', '%ProductStatus%' ), true ):
|
1683 |
if ( $this->_plugin->IsMultisite() && $value ) {
|
1684 |
$site_info = get_blog_details( $value, true );
|
1685 |
if ( $site_info ) {
|
1686 |
+
if ( 'slack' === $meta_context ) {
|
1687 |
+
return ' on site <' . esc_url( $site_info->siteurl ) . '|' . esc_html( $site_info->blogname ) . '>';
|
1688 |
+
} else {
|
1689 |
+
return ' on site ' . $highlight_start_tag . '<a href="' . esc_url( $site_info->siteurl ) . '">' . esc_html( $site_info->blogname ) . '</a>' . $highlight_end_tag;
|
1690 |
+
}
|
1691 |
}
|
1692 |
return;
|
1693 |
}
|
1703 |
if ( 'NULL' === $value ) {
|
1704 |
return false;
|
1705 |
}
|
1706 |
+
if ( 'slack' === $meta_context ) {
|
1707 |
+
return ' with errors. ' . sprintf( __( 'Contact us on %s for assistance', 'wp-security-audit-log' ), '<mailto:support@wpsecurityauditlog.com|support@wpsecurityauditlog.com>' );
|
1708 |
+
}
|
1709 |
/* translators: Mailto link for support. */
|
1710 |
return ' with errors. ' . sprintf( __( 'Contact us on %s for assistance', 'wp-security-audit-log' ), '<a href="mailto:support@wpsecurityauditlog.com" target="_blank">support@wpsecurityauditlog.com</a>' );
|
1711 |
|
1719 |
'tab' => 'file-changes',
|
1720 |
);
|
1721 |
$file_settings = add_query_arg( $file_settings_args, admin_url( 'admin.php' ) );
|
1722 |
+
switch ( $meta_context ) {
|
1723 |
+
case 'sms':
|
1724 |
+
$file_settings = $this->is_url_shortner ? $this->plugin->wsalCommon->shorten_url_bitly( $value ) : $value;
|
1725 |
+
return esc_html__( 'plugin settings', 'wp-security-audit-log' ) . ': ' . $file_settings;
|
1726 |
+
break;
|
1727 |
+
case 'slack':
|
1728 |
+
return '<' . esc_url( $file_settings ) . '|' . esc_html__( 'plugin settings', 'wp-security-audit-log' ) . '>';
|
1729 |
+
break;
|
1730 |
+
default:
|
1731 |
+
return $highlight_start_tag . '<a href="' . esc_url( $file_settings ) . '">' . esc_html__( 'Increase maximum file size limit', 'wp-security-audit-log' ) . '</a>' . $highlight_end_tag;
|
1732 |
+
}
|
1733 |
|
1734 |
case '%ContactSupport%' === $name:
|
1735 |
+
switch ( $meta_context ) {
|
1736 |
+
case 'sms':
|
1737 |
+
$value = 'https://wpactivitylog.com/contact/';
|
1738 |
+
$url = $this->is_url_shortner ? $this->plugin->wsalCommon->shorten_url_bitly( $value ) : $value;
|
1739 |
+
return esc_html__( 'contact our support', 'wp-security-audit-log' ) . ': ' . $url;
|
1740 |
+
break;
|
1741 |
+
case 'slack':
|
1742 |
+
return '<https://wpactivitylog.com/contact|' . esc_html__( 'contact our support', 'wp-security-audit-log' ) . '>';
|
1743 |
+
break;
|
1744 |
+
}
|
1745 |
+
return $highlight_start_tag . '<a href="https://wpactivitylog.com/contact/" target="_blank">' . esc_html__( 'Contact Support', 'wp-security-audit-log' ) . '</a>' . $highlight_end_tag;
|
1746 |
|
1747 |
case '%LineBreak%' === $name:
|
1748 |
+
switch ( $meta_context ) {
|
1749 |
+
case 'reports':
|
1750 |
+
case 'slack':
|
1751 |
+
case 'sms':
|
1752 |
+
return '';
|
1753 |
+
}
|
1754 |
return '<br>';
|
1755 |
|
1756 |
case '%PluginFile%' === $name:
|
1757 |
return $highlight_start_tag . dirname( $value ) . $highlight_end_tag;
|
1758 |
|
1759 |
+
case '%LinkFile%' == $name:
|
1760 |
+
switch ( $meta_context ) {
|
1761 |
+
case 'sms':
|
1762 |
+
$url = $is_url_shortner ? $this->_plugin->wsalCommon->shorten_url_bitly( $value ) : $value;
|
1763 |
+
return 'To view the requests open the log file ' . esc_url( $url );
|
1764 |
+
break;
|
1765 |
+
case 'slack':
|
1766 |
+
return 'Click <' . esc_url( add_query_arg( 'page', 'wsal-togglealerts', admin_url( 'admin.php' ) ) ) . '|here> to log such requests to file';
|
1767 |
+
break;
|
1768 |
+
default:
|
1769 |
+
return '<br>To view the requests open the log file ' . esc_url( $value );
|
1770 |
+
}
|
1771 |
+
|
1772 |
+
case '%URL%' == $name:
|
1773 |
+
if ( 'sms' === $meta_context ) {
|
1774 |
+
return '.';
|
1775 |
+
}
|
1776 |
+
|
1777 |
default:
|
1778 |
// if we didn't get a match already try get one via a filter.
|
1779 |
$filtered_formatted_value = apply_filters( 'wsal_meta_formatter_custom_formatter', $value, $name );
|
1780 |
+
return ( $value !== $filtered_formatted_value ) ? $filtered_formatted_value : $highlight_start_tag . esc_html( $value ) . $highlight_end_tag;
|
1781 |
}
|
1782 |
}
|
1783 |
|
1876 |
/**
|
1877 |
* Method: Meta data formatter.
|
1878 |
*
|
1879 |
+
* @param string $name - Name of the data.
|
1880 |
+
* @param mixed $value - Value of the data.
|
1881 |
+
* @param integer $occ_id - Event occurrence ID.
|
1882 |
+
* @param mixed $highlight - Highlight format.
|
1883 |
*
|
|
|
|
|
|
|
|
|
1884 |
* @return string
|
1885 |
+
* @throws Freemius_Exception
|
1886 |
+
* @since 3.3
|
1887 |
+
*
|
1888 |
*/
|
1889 |
+
public function slack_meta_formatter( $name, $value, $occ_id, $highlight ) {
|
1890 |
+
return $this->_plugin->settings()->meta_formatter( $name, $value, $occ_id, $highlight, 'slack' );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1891 |
}
|
1892 |
|
1893 |
/**
|
1936 |
* @return array - WSAL Options array.
|
1937 |
*/
|
1938 |
public function get_plugin_settings() {
|
1939 |
+
global $wpdb;
|
1940 |
+
$plugin_options = $wpdb->get_results( "SELECT * FROM $wpdb->options WHERE option_name LIKE 'wsal_%'" );
|
1941 |
+
return $plugin_options;
|
1942 |
}
|
1943 |
|
1944 |
/**
|
2149 |
* @return bool
|
2150 |
*/
|
2151 |
public static function set_frontend_events( $value = array() ) {
|
2152 |
+
return \WSAL\Helpers\Options::set_option_value_ignore_prefix( self::FRONT_END_EVENTS_OPTION_NAME, $value );
|
2153 |
}
|
2154 |
|
2155 |
/**
|
2172 |
return $this->_plugin->GetGlobalSetting( 'only-me-user-id' );
|
2173 |
}
|
2174 |
|
2175 |
+
/**
|
2176 |
+
* Save admin blocking plugin support enabled.
|
2177 |
+
*
|
2178 |
+
* @param bool $enabled
|
2179 |
+
*/
|
2180 |
+
public function set_admin_blocking_plugin_support( $enabled ) {
|
2181 |
+
$this->_plugin->SetGlobalBooleanSetting( 'admin-blocking-plugins-support', $enabled );
|
2182 |
+
}
|
2183 |
|
2184 |
/**
|
2185 |
* Check if admin blocking plugin support is enabled.
|
2191 |
* @return bool
|
2192 |
*/
|
2193 |
public function get_admin_blocking_plugin_support() {
|
2194 |
+
return $this->_plugin->GetGlobalBooleanSetting( 'admin-blocking-plugins-support', false );
|
2195 |
}
|
2196 |
|
2197 |
+
public function get_mainwp_enforced_settings() {
|
2198 |
+
return $this->_plugin->GetGlobalSetting( 'mainwp_enforced_settings', array() );
|
2199 |
+
}
|
2200 |
|
2201 |
public function set_mainwp_enforced_settings( $settings ) {
|
2202 |
+
$this->_plugin->SetGlobalSetting( 'mainwp_enforced_settings', $settings );
|
2203 |
+
}
|
2204 |
|
2205 |
+
public function delete_mainwp_enforced_settings() {
|
2206 |
+
$this->_plugin->DeleteSettingByName( WpSecurityAuditLog::OPTIONS_PREFIX . 'mainwp_enforced_settings' );
|
2207 |
+
}
|
2208 |
|
2209 |
}
|
@@ -11,8 +11,8 @@ if ( ! class_exists( 'WSAL_GravityFormsExtension' ) ) {
|
|
11 |
'title' => __( 'Gravity Forms', 'wp-security-audit-log' ),
|
12 |
'image_filename' => 'gravityforms.png',
|
13 |
'plugin_slug' => 'activity-log-gravity-forms/activity-log-gravity-forms.php',
|
14 |
-
'plugin_url' => 'https://downloads.wordpress.org/plugin/
|
15 |
-
'event_tab_id' => '#tab-
|
16 |
'plugin_description' => __( 'Keep a record of when someone adds, modifies or deletes forms, entries and more in the Gravity Forms plugin.', 'wp-security-audit-log' ),
|
17 |
)
|
18 |
);
|
11 |
'title' => __( 'Gravity Forms', 'wp-security-audit-log' ),
|
12 |
'image_filename' => 'gravityforms.png',
|
13 |
'plugin_slug' => 'activity-log-gravity-forms/activity-log-gravity-forms.php',
|
14 |
+
'plugin_url' => 'https://downloads.wordpress.org/plugin/activity-log-gravity-forms.latest-stable.zip',
|
15 |
+
'event_tab_id' => '#tab-gravity-forms',
|
16 |
'plugin_description' => __( 'Keep a record of when someone adds, modifies or deletes forms, entries and more in the Gravity Forms plugin.', 'wp-security-audit-log' ),
|
17 |
)
|
18 |
);
|
@@ -22,14 +22,10 @@ class WSAL_Uninstall {
|
|
22 |
public static function uninstall() {
|
23 |
// Drop the tables.
|
24 |
if ( self::should_uninstall() ) {
|
25 |
-
|
26 |
-
self::drop_table( 'options' );
|
27 |
-
}
|
28 |
self::drop_table( 'occurrences' );
|
29 |
self::drop_table( 'metadata' );
|
30 |
-
|
31 |
-
self::drop_table( 'sessions' );
|
32 |
-
}
|
33 |
}
|
34 |
|
35 |
// Check if we have set things to delete upon uninstall.
|
@@ -47,26 +43,13 @@ class WSAL_Uninstall {
|
|
47 |
* @return bool
|
48 |
*/
|
49 |
private static function should_uninstall() {
|
50 |
-
return self::should_data_be_deleted()
|
51 |
}
|
52 |
|
53 |
private static function should_data_be_deleted() {
|
54 |
return in_array( get_option( 'wsal_delete-data' ), [ 'yes', 1, '1', 'y', 'true', true ] );
|
55 |
}
|
56 |
|
57 |
-
/**
|
58 |
-
* Check if a table exists.
|
59 |
-
*
|
60 |
-
* @param string $table - Name of the WSAL table (without prefix).
|
61 |
-
*
|
62 |
-
* @return bool
|
63 |
-
*/
|
64 |
-
private static function table_exists( $table ) {
|
65 |
-
global $wpdb;
|
66 |
-
|
67 |
-
return (bool) count( $wpdb->get_results( $wpdb->prepare( 'SHOW TABLES LIKE %s', self::get_table( $table ) ) ) );
|
68 |
-
}
|
69 |
-
|
70 |
/**
|
71 |
* Returns the name of the WSAL table.
|
72 |
*
|
@@ -86,7 +69,7 @@ class WSAL_Uninstall {
|
|
86 |
private static function drop_table( $name ) {
|
87 |
global $wpdb;
|
88 |
$table_name = self::get_table( $name );
|
89 |
-
$wpdb->query( 'DROP TABLE ' . $table_name );
|
90 |
}
|
91 |
|
92 |
/**
|
22 |
public static function uninstall() {
|
23 |
// Drop the tables.
|
24 |
if ( self::should_uninstall() ) {
|
25 |
+
self::drop_table( 'options' );
|
|
|
|
|
26 |
self::drop_table( 'occurrences' );
|
27 |
self::drop_table( 'metadata' );
|
28 |
+
self::drop_table( 'sessions' );
|
|
|
|
|
29 |
}
|
30 |
|
31 |
// Check if we have set things to delete upon uninstall.
|
43 |
* @return bool
|
44 |
*/
|
45 |
private static function should_uninstall() {
|
46 |
+
return self::should_data_be_deleted();
|
47 |
}
|
48 |
|
49 |
private static function should_data_be_deleted() {
|
50 |
return in_array( get_option( 'wsal_delete-data' ), [ 'yes', 1, '1', 'y', 'true', true ] );
|
51 |
}
|
52 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
/**
|
54 |
* Returns the name of the WSAL table.
|
55 |
*
|
69 |
private static function drop_table( $name ) {
|
70 |
global $wpdb;
|
71 |
$table_name = self::get_table( $name );
|
72 |
+
$wpdb->query( 'DROP TABLE IF EXISTS ' . $table_name );
|
73 |
}
|
74 |
|
75 |
/**
|
@@ -0,0 +1,171 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Utility Class: Date and time formatter.
|
4 |
+
*
|
5 |
+
* Singleton utility class used for formatting date and time strings.
|
6 |
+
*
|
7 |
+
* @package Wsal
|
8 |
+
* @since 4.2.0
|
9 |
+
*/
|
10 |
+
|
11 |
+
// Exit if accessed directly.
|
12 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
13 |
+
exit;
|
14 |
+
}
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Date and Time Utility Class
|
18 |
+
*
|
19 |
+
* Singleton utility class used for formatting date and time strings.
|
20 |
+
*
|
21 |
+
* @since 4.2.0
|
22 |
+
*/
|
23 |
+
class WSAL_Utilities_DateTimeFormatter {
|
24 |
+
|
25 |
+
/**
|
26 |
+
* @var string Regular expression for matching the milliseconds part of datetime string.
|
27 |
+
*/
|
28 |
+
private static $am_pm_lookup_pattern = '/\.\d+((\ |\ )([AP]M))?/i';
|
29 |
+
|
30 |
+
/**
|
31 |
+
* GMT Offset
|
32 |
+
*
|
33 |
+
* @var string
|
34 |
+
*/
|
35 |
+
private $gmt_offset_sec = 0;
|
36 |
+
|
37 |
+
private $date_format;
|
38 |
+
|
39 |
+
private $time_format;
|
40 |
+
|
41 |
+
private $datetime_format;
|
42 |
+
|
43 |
+
private $datetime_format_no_linebreaks;
|
44 |
+
|
45 |
+
private $show_milliseconds;
|
46 |
+
|
47 |
+
/**
|
48 |
+
* Make constructor private, so nobody can call "new Class".
|
49 |
+
*/
|
50 |
+
private function __construct() {
|
51 |
+
}
|
52 |
+
|
53 |
+
/**
|
54 |
+
* Call this method to get singleton
|
55 |
+
*/
|
56 |
+
public static function instance() {
|
57 |
+
static $instance = false;
|
58 |
+
if ( $instance === false ) {
|
59 |
+
// Late static binding (PHP 5.3+)
|
60 |
+
$instance = new static();
|
61 |
+
|
62 |
+
$plugin = WpSecurityAuditLog::GetInstance();
|
63 |
+
$timezone = $plugin->settings()->GetTimezone();
|
64 |
+
|
65 |
+
/**
|
66 |
+
* Transform timezone values.
|
67 |
+
*
|
68 |
+
* @since 3.2.3
|
69 |
+
*/
|
70 |
+
if ( '0' === $timezone ) {
|
71 |
+
$timezone = 'utc';
|
72 |
+
} elseif ( '1' === $timezone ) {
|
73 |
+
$timezone = 'wp';
|
74 |
+
}
|
75 |
+
|
76 |
+
if ( 'utc' === $timezone ) {
|
77 |
+
$instance->gmt_offset_sec = date( 'Z' );
|
78 |
+
} else {
|
79 |
+
$instance->gmt_offset_sec = get_option( 'gmt_offset' ) * HOUR_IN_SECONDS;
|
80 |
+
}
|
81 |
+
|
82 |
+
$instance->show_milliseconds = $plugin->settings()->get_show_milliseconds();
|
83 |
+
$instance->date_format = $plugin->settings()->GetDateFormat();
|
84 |
+
$instance->time_format = $plugin->settings()->GetTimeFormat();
|
85 |
+
$instance->datetime_format = $plugin->settings()->GetDatetimeFormat();
|
86 |
+
$instance->datetime_format_no_linebreaks = $plugin->settings()->GetDatetimeFormat( false );
|
87 |
+
|
88 |
+
}
|
89 |
+
|
90 |
+
return $instance;
|
91 |
+
}
|
92 |
+
|
93 |
+
/**
|
94 |
+
* Remove milliseconds from formatted datetime string.
|
95 |
+
*
|
96 |
+
* @param string $formattedDatetime Formatted datetime string
|
97 |
+
*
|
98 |
+
* @return string
|
99 |
+
* @since 4.2.0
|
100 |
+
*/
|
101 |
+
public static function removeMilliseconds( $formattedDatetime ) {
|
102 |
+
return preg_replace( self::$am_pm_lookup_pattern, ' $3', $formattedDatetime );
|
103 |
+
}
|
104 |
+
|
105 |
+
public function getFormattedDateTime( $timestamp, $type = 'datetime', $do_timezone_offset = true, $line_break = false, $use_nb_space_for_am_pm = true, $translated = true ) {
|
106 |
+
$result = '';
|
107 |
+
$format = null;
|
108 |
+
switch ( $type ) {
|
109 |
+
case 'datetime':
|
110 |
+
$format = $line_break ? $this->datetime_format : $this->datetime_format_no_linebreaks;
|
111 |
+
if ( ! $use_nb_space_for_am_pm ) {
|
112 |
+
$format = preg_replace( '/&\\\n\\\b\\\s\\\p;/', ' ', $format );
|
113 |
+
}
|
114 |
+
break;
|
115 |
+
case 'date':
|
116 |
+
$format = $this->date_format;
|
117 |
+
break;
|
118 |
+
case 'time':
|
119 |
+
$format = $this->time_format;
|
120 |
+
break;
|
121 |
+
default:
|
122 |
+
return $result;
|
123 |
+
}
|
124 |
+
|
125 |
+
if ( null === $format ) {
|
126 |
+
return $result;
|
127 |
+
}
|
128 |
+
|
129 |
+
// timezone adjustment
|
130 |
+
$timezone_adjusted_timestamp = $do_timezone_offset ? $timestamp + $this->gmt_offset_sec : $timestamp;
|
131 |
+
|
132 |
+
// milliseconds in format
|
133 |
+
if ( ! $this->show_milliseconds ) {
|
134 |
+
// remove the milliseconds placeholder from format string.
|
135 |
+
$format = str_replace( '.$$$', '', $format );
|
136 |
+
}
|
137 |
+
|
138 |
+
// date formatting
|
139 |
+
$result = $translated ? date_i18n( $format, $timezone_adjusted_timestamp ) : date( $format, $timezone_adjusted_timestamp );
|
140 |
+
|
141 |
+
// milliseconds value
|
142 |
+
if ( $this->show_milliseconds ) {
|
143 |
+
$result = str_replace(
|
144 |
+
'$$$',
|
145 |
+
substr( number_format( fmod( $timezone_adjusted_timestamp, 1 ), 3 ), 2 ),
|
146 |
+
$result
|
147 |
+
);
|
148 |
+
}
|
149 |
+
|
150 |
+
return $result;
|
151 |
+
|
152 |
+
}
|
153 |
+
|
154 |
+
/**
|
155 |
+
* Make clone magic method private, so nobody can clone instance.
|
156 |
+
*/
|
157 |
+
private function __clone() {
|
158 |
+
}
|
159 |
+
|
160 |
+
/**
|
161 |
+
* Make sleep magic method private, so nobody can serialize instance.
|
162 |
+
*/
|
163 |
+
private function __sleep() {
|
164 |
+
}
|
165 |
+
|
166 |
+
/**
|
167 |
+
* Make wakeup magic method private, so nobody can unserialize instance.
|
168 |
+
*/
|
169 |
+
private function __wakeup() {
|
170 |
+
}
|
171 |
+
}
|
@@ -31,10 +31,11 @@ class WSAL_Utilities_Emailer {
|
|
31 |
$type_name = $wsal->settings()->get_type_username(); // Get the data to display.
|
32 |
$user = _wp_get_current_user();
|
33 |
$datetime_format = $wsal->settings()->GetDatetimeFormat( false );
|
|
|
34 |
$date_time = str_replace(
|
35 |
'$$$',
|
36 |
-
substr( number_format( fmod(
|
37 |
-
date( $datetime_format,
|
38 |
);
|
39 |
|
40 |
// Checks for display name.
|
31 |
$type_name = $wsal->settings()->get_type_username(); // Get the data to display.
|
32 |
$user = _wp_get_current_user();
|
33 |
$datetime_format = $wsal->settings()->GetDatetimeFormat( false );
|
34 |
+
$now = current_time( 'timestamp' );
|
35 |
$date_time = str_replace(
|
36 |
'$$$',
|
37 |
+
substr( number_format( fmod( $now, 1 ), 3 ), 2 ),
|
38 |
+
date( $datetime_format, $now )
|
39 |
);
|
40 |
|
41 |
// Checks for display name.
|
@@ -80,41 +80,43 @@ if ( ! class_exists( 'WSAL_PluginInstallAndActivate' ) ) {
|
|
80 |
<tr>
|
81 |
<td class="addon-td">
|
82 |
<p class="description"><?php esc_html_e( 'WP Activity Log can keep a log of changes done on other plugins. Install the relevant extension from the below list to keep a log of changes done on that plugin.', 'wp-security-audit-log' ); ?></p></br>
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
$
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
?>
|
97 |
-
|
98 |
-
<div class="addon-wrapper">
|
99 |
-
<img src="<?php echo esc_url( trailingslashit( WSAL_BASE_URL ) . 'img/addons/' . $details['image_filename'] ); ?>">
|
100 |
-
<h4><?php esc_html_e( 'Extension for ', 'wp-security-audit-log' ); ?><?php echo esc_html( $details['title'] ); ?></h4>
|
101 |
-
<p><?php echo sanitize_text_field( $details['plugin_description'] ); ?></p><br>
|
102 |
-
<p><button class="install-addon button button-primary <?php echo esc_attr( $disable_button ); ?>" data-nonce="<?php echo esc_attr( $nonce ); ?>" data-plugin-slug="<?php echo esc_attr( $details['plugin_slug'] ); ?>" data-plugin-download-url="<?php echo esc_url( $details['plugin_url'] ); ?>" data-plugin-event-tab-id="<?php echo esc_attr( $details['event_tab_id'] ); ?>">
|
103 |
-
<?php
|
104 |
-
if ( $this->is_plugin_installed( $details['plugin_slug'] ) && ! WpSecurityAuditLog::is_plugin_active( $details['plugin_slug'] ) ) {
|
105 |
-
esc_html_e( 'Extension installed, activate now?', 'wp-security-audit-log' );
|
106 |
-
} elseif ( $this->is_plugin_installed( $details['plugin_slug'] ) && WpSecurityAuditLog::is_plugin_active( $details['plugin_slug'] ) || 'wsal-wpforms.php' === basename( $details['plugin_slug'] ) && function_exists( 'wsal_wpforms_add_custom_event_objects' ) || 'wsal-bbpress.php' === basename( $details['plugin_slug'] ) && function_exists( 'wsal_bbpress_add_custom_event_objects' ) || 'activity-log-yoast-seo.php' === basename( $details['plugin_slug'] ) && function_exists( 'wsal_yoast_seo_extension_add_custom_event_objects' ) ) {
|
107 |
-
esc_html_e( 'Extension installed', 'wp-security-audit-log' );
|
108 |
-
} else {
|
109 |
-
esc_html_e( 'Install Extension', 'wp-security-audit-log' );
|
110 |
}
|
111 |
?>
|
112 |
-
</button><span class="spinner" style="display: none; visibility: visible; float: none; margin: 0 0 0 8px;"></span></p>
|
113 |
-
</div>
|
114 |
|
115 |
-
|
116 |
-
|
117 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
118 |
</td>
|
119 |
</tr>
|
120 |
</tbody>
|
80 |
<tr>
|
81 |
<td class="addon-td">
|
82 |
<p class="description"><?php esc_html_e( 'WP Activity Log can keep a log of changes done on other plugins. Install the relevant extension from the below list to keep a log of changes done on that plugin.', 'wp-security-audit-log' ); ?></p></br>
|
83 |
+
<div id="extension-wrapper">
|
84 |
+
<?php
|
85 |
+
// Create a nonce to pass through via data attr.
|
86 |
+
$nonce = wp_create_nonce( 'wsal-install-addon' );
|
87 |
+
// Loop through plugins and output.
|
88 |
+
foreach ( $our_plugins as $details ) {
|
89 |
+
$disable_button = '';
|
90 |
+
if ( WpSecurityAuditLog::is_plugin_active( $details['plugin_slug'] ) ) {
|
91 |
+
$disable_button = 'disabled';
|
92 |
+
}
|
93 |
+
// Check if this is actually an addon for something, otherwise bail.
|
94 |
+
if ( ! isset( $details['addon_for'] ) || ! isset( $details['image_filename'] ) ) {
|
95 |
+
continue;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
96 |
}
|
97 |
?>
|
|
|
|
|
98 |
|
99 |
+
<div class="addon-wrapper">
|
100 |
+
<img src="<?php echo esc_url( trailingslashit( WSAL_BASE_URL ) . 'img/addons/' . $details['image_filename'] ); ?>">
|
101 |
+
<h4><?php esc_html_e( 'Extension for ', 'wp-security-audit-log' ); ?><?php echo esc_html( $details['title'] ); ?></h4>
|
102 |
+
<p><?php echo sanitize_text_field( $details['plugin_description'] ); ?></p><br>
|
103 |
+
<p><button class="install-addon button button-primary <?php echo esc_attr( $disable_button ); ?>" data-nonce="<?php echo esc_attr( $nonce ); ?>" data-plugin-slug="<?php echo esc_attr( $details['plugin_slug'] ); ?>" data-plugin-download-url="<?php echo esc_url( $details['plugin_url'] ); ?>" data-plugin-event-tab-id="<?php echo esc_attr( $details['event_tab_id'] ); ?>">
|
104 |
+
<?php
|
105 |
+
if ( $this->is_plugin_installed( $details['plugin_slug'] ) && ! WpSecurityAuditLog::is_plugin_active( $details['plugin_slug'] ) ) {
|
106 |
+
esc_html_e( 'Extension installed, activate now?', 'wp-security-audit-log' );
|
107 |
+
} elseif ( $this->is_plugin_installed( $details['plugin_slug'] ) && WpSecurityAuditLog::is_plugin_active( $details['plugin_slug'] ) || 'wsal-wpforms.php' === basename( $details['plugin_slug'] ) && function_exists( 'wsal_wpforms_add_custom_event_objects' ) || 'wsal-bbpress.php' === basename( $details['plugin_slug'] ) && function_exists( 'wsal_bbpress_add_custom_event_objects' ) || 'activity-log-yoast-seo.php' === basename( $details['plugin_slug'] ) && function_exists( 'wsal_yoast_seo_extension_add_custom_event_objects' ) ) {
|
108 |
+
esc_html_e( 'Extension installed', 'wp-security-audit-log' );
|
109 |
+
} else {
|
110 |
+
esc_html_e( 'Install Extension', 'wp-security-audit-log' );
|
111 |
+
}
|
112 |
+
?>
|
113 |
+
</button><span class="spinner" style="display: none; visibility: visible; float: none; margin: 0 0 0 8px;"></span></p>
|
114 |
+
</div>
|
115 |
+
|
116 |
+
<?php
|
117 |
+
}
|
118 |
+
?>
|
119 |
+
</div>
|
120 |
</td>
|
121 |
</tr>
|
122 |
</tbody>
|
@@ -249,8 +249,8 @@ class WSAL_Views_AuditLog extends WSAL_AbstractView {
|
|
249 |
$all_plugins = get_plugins();
|
250 |
$plugin_filenames = array();
|
251 |
foreach ( $all_plugins as $plugin => $info ) {
|
252 |
-
|
253 |
-
$plugin_filenames[] =
|
254 |
}
|
255 |
|
256 |
// Grab list of plugins we have addons for.
|
@@ -1099,7 +1099,7 @@ class WSAL_Views_AuditLog extends WSAL_AbstractView {
|
|
1099 |
);
|
1100 |
die();
|
1101 |
}
|
1102 |
-
|
1103 |
if ( empty( $_POST['nonce'] ) || ! wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['nonce'] ) ), 'wsal_dismiss_advert' ) ) {
|
1104 |
// Nonce verification failed.
|
1105 |
echo wp_json_encode(
|
249 |
$all_plugins = get_plugins();
|
250 |
$plugin_filenames = array();
|
251 |
foreach ( $all_plugins as $plugin => $info ) {
|
252 |
+
$plugin_info = pathinfo( $plugin );
|
253 |
+
$plugin_filenames[] = $plugin_info['filename'];
|
254 |
}
|
255 |
|
256 |
// Grab list of plugins we have addons for.
|
1099 |
);
|
1100 |
die();
|
1101 |
}
|
1102 |
+
|
1103 |
if ( empty( $_POST['nonce'] ) || ! wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['nonce'] ) ), 'wsal_dismiss_advert' ) ) {
|
1104 |
// Nonce verification failed.
|
1105 |
echo wp_json_encode(
|
@@ -64,6 +64,12 @@ class WSAL_Views_Help extends WSAL_AbstractView {
|
|
64 |
'render' => array( $this, 'tab_help' ),
|
65 |
'priority' => 10,
|
66 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
67 |
'system-info' => array(
|
68 |
'name' => __( 'System Info', 'wp-security-audit-log' ),
|
69 |
'link' => add_query_arg( 'tab', 'system-info', $this->GetUrl() ),
|
@@ -115,7 +121,7 @@ class WSAL_Views_Help extends WSAL_AbstractView {
|
|
115 |
* Method: Get View Name.
|
116 |
*/
|
117 |
public function GetName() {
|
118 |
-
return __( 'Help', 'wp-security-audit-log' );
|
119 |
}
|
120 |
|
121 |
/**
|
@@ -224,6 +230,28 @@ class WSAL_Views_Help extends WSAL_AbstractView {
|
|
224 |
<?php
|
225 |
}
|
226 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
227 |
/**
|
228 |
* Tab: System info.
|
229 |
*/
|
64 |
'render' => array( $this, 'tab_help' ),
|
65 |
'priority' => 10,
|
66 |
),
|
67 |
+
'contact' => array(
|
68 |
+
'name' => __( 'Contact Us', 'wp-security-audit-log' ),
|
69 |
+
'link' => add_query_arg( 'tab', 'contact', $this->GetUrl() ),
|
70 |
+
'render' => array( $this, 'tab_contact_us' ),
|
71 |
+
'priority' => 15,
|
72 |
+
),
|
73 |
'system-info' => array(
|
74 |
'name' => __( 'System Info', 'wp-security-audit-log' ),
|
75 |
'link' => add_query_arg( 'tab', 'system-info', $this->GetUrl() ),
|
121 |
* Method: Get View Name.
|
122 |
*/
|
123 |
public function GetName() {
|
124 |
+
return __( 'Help & Contact Us', 'wp-security-audit-log' );
|
125 |
}
|
126 |
|
127 |
/**
|
230 |
<?php
|
231 |
}
|
232 |
|
233 |
+
/**
|
234 |
+
* Tab: Contact us.
|
235 |
+
*/
|
236 |
+
public function tab_contact_us() {
|
237 |
+
?>
|
238 |
+
<h3 class="wsal-tab__heading"><?php esc_html_e( 'Contact Us', 'wp-security-audit-log' ); ?></h3>
|
239 |
+
<style type="text/css">
|
240 |
+
.fs-secure-notice {
|
241 |
+
position: relative !important;
|
242 |
+
top: 0 !important;
|
243 |
+
left: 0 !important;
|
244 |
+
}
|
245 |
+
.fs-full-size-wrapper {
|
246 |
+
margin: 10px 20px 0 2px !important;
|
247 |
+
}
|
248 |
+
</style>
|
249 |
+
<?php
|
250 |
+
$freemius_id = wsal_freemius()->get_id();
|
251 |
+
$vars = array( 'id' => $freemius_id );
|
252 |
+
echo fs_get_template( 'contact.php', $vars );
|
253 |
+
}
|
254 |
+
|
255 |
/**
|
256 |
* Tab: System info.
|
257 |
*/
|
@@ -875,7 +875,7 @@ class WSAL_Views_Settings extends WSAL_AbstractView {
|
|
875 |
<!-- From Email & Name -->
|
876 |
|
877 |
<h3><?php esc_html_e( 'Do you want to hide the plugin from the list of installed plugins?', 'wp-security-audit-log' ); ?></h3>
|
878 |
-
<p class="description"><?php esc_html_e( 'By default all installed plugins are listed in the plugins page.
|
879 |
<table class="form-table wsal-tab">
|
880 |
<tbody>
|
881 |
<tr>
|
@@ -1194,7 +1194,6 @@ class WSAL_Views_Settings extends WSAL_AbstractView {
|
|
1194 |
</tr>
|
1195 |
</tbody>
|
1196 |
</table>
|
1197 |
-
|
1198 |
<!-- / File Changes Logging Tab -->
|
1199 |
<?php
|
1200 |
}
|
@@ -1338,77 +1337,12 @@ class WSAL_Views_Settings extends WSAL_AbstractView {
|
|
1338 |
* Tab: `Advanced Settings`
|
1339 |
*/
|
1340 |
private function tab_advanced_settings() {
|
1341 |
-
$location = $this->_plugin->GetGlobalSetting( 'custom-logging-dir', $this->_plugin->settings()->get_default_working_dir_relative() );
|
1342 |
?>
|
1343 |
<p class="description">
|
1344 |
<?php esc_html_e( 'These settings are for advanced users.', 'wp-security-audit-log' ); ?>
|
1345 |
<?php echo sprintf( __( 'If you have any questions <a href="https://wpactivitylog.com/contact/?utm_source=plugin&utm_medium=referral&utm_campaign=WSAL&utm_content=settings+pages" target="_blank">contact us</a>.', 'wp-security-audit-log' ), $this->_plugin->allowed_html_tags ); ?>
|
1346 |
</p>
|
1347 |
|
1348 |
-
<h3><?php esc_html_e( 'Where do you want the plugin\'s working directory for log files, reports and other files?', 'wp-security-audit-log' ); ?></h3>
|
1349 |
-
<p class="description"><?php esc_html_e( 'The plugin stores the reports it generates, a number of log files and the request log in this working directory. By default the directory is in the default WordPress uploads directory. Use the below setting to create the working directory in a different location. Note that the plugin requires write permissions to this directory. Please specify the relative path of the directory.', 'wp-security-audit-log' ); ?></p>
|
1350 |
-
<table class="form-table wsal-tab">
|
1351 |
-
<tbody>
|
1352 |
-
<!-- custom log directory -->
|
1353 |
-
<tr>
|
1354 |
-
<th><label><?php esc_html_e( 'Working directory location', 'wp-security-audit-log' ); ?></label></th>
|
1355 |
-
<td>
|
1356 |
-
<fieldset>
|
1357 |
-
<label for="wsal-custom-logs-dir">
|
1358 |
-
<input type="text" name="wsal-custom-logs-dir" id="wsal-custom-logs-dir"
|
1359 |
-
value="<?php echo esc_attr( $location ); ?>">
|
1360 |
-
</label>
|
1361 |
-
<p class="description">
|
1362 |
-
<?php
|
1363 |
-
echo wp_kses(
|
1364 |
-
__( '<strong>Note:</strong> Enter a path from the root of your website: eg "/wp-content/uploads/wp-activity-log/".' ),
|
1365 |
-
$this->_plugin->allowed_html_tags
|
1366 |
-
);
|
1367 |
-
?>
|
1368 |
-
</p>
|
1369 |
-
</fieldset>
|
1370 |
-
</td>
|
1371 |
-
</tr>
|
1372 |
-
<!-- / custom log directory -->
|
1373 |
-
</tbody>
|
1374 |
-
</table>
|
1375 |
-
|
1376 |
-
|
1377 |
-
<h3><?php esc_html_e( 'Troubleshooting setting: Keep a debug log of all the requests this website receives', 'wp-security-audit-log' ); ?></h3>
|
1378 |
-
<p class="description"><?php esc_html_e( 'Only enable the request log on testing, staging and development website. Never enable logging on a live website unless instructed to do so. Enabling request logging on a live website may degrade the performance of the website.', 'wp-security-audit-log' ); ?></p>
|
1379 |
-
<table class="form-table wsal-tab">
|
1380 |
-
<tbody>
|
1381 |
-
<tr>
|
1382 |
-
<th><label><?php esc_html_e( 'Request Log', 'wp-security-audit-log' ); ?></label></th>
|
1383 |
-
<td>
|
1384 |
-
<fieldset>
|
1385 |
-
<?php $devoption_checked = $this->_plugin->settings()->IsDevOptionEnabled( WSAL_Settings::OPT_DEV_REQUEST_LOG ); ?>
|
1386 |
-
<label for="devoption_yes">
|
1387 |
-
<input type="radio" name="DevOptions" id="devoption_yes"
|
1388 |
-
<?php checked( $devoption_checked, true ); ?>
|
1389 |
-
value="<?php echo esc_attr( WSAL_Settings::OPT_DEV_REQUEST_LOG ); ?>">
|
1390 |
-
<?php esc_html_e( 'Yes', 'wp-security-audit-log' ); ?>
|
1391 |
-
</label>
|
1392 |
-
<br>
|
1393 |
-
<label for="devoption_no">
|
1394 |
-
<input type="radio" name="DevOptions" id="devoption_no" <?php checked( $devoption_checked, false ); ?> value="0">
|
1395 |
-
<?php esc_html_e( 'No', 'wp-security-audit-log' ); ?>
|
1396 |
-
</label>
|
1397 |
-
<p class="description">
|
1398 |
-
<?php
|
1399 |
-
echo wp_kses(
|
1400 |
-
__( '<strong>Note:</strong> The requests debug log file is saved as request.log.php in the /wp-content/uploads/wp-activity-log/ directory.' ),
|
1401 |
-
$this->_plugin->allowed_html_tags
|
1402 |
-
);
|
1403 |
-
?>
|
1404 |
-
</p>
|
1405 |
-
</fieldset>
|
1406 |
-
</td>
|
1407 |
-
</tr>
|
1408 |
-
<!-- / Developer Options -->
|
1409 |
-
</tbody>
|
1410 |
-
</table>
|
1411 |
-
|
1412 |
<h3><?php esc_html_e( 'Reset plugin settings to default', 'wp-security-audit-log' ); ?></h3>
|
1413 |
<p class="description"><?php _e( 'Use this button to <em>factory reset</em> the plugin. This means that all the configured settings will be reset to default and all email notifications, scheduled reports, external database / third party services connections, archiving and mirroring rule will be deleted. NOTE: the activity log data will not be purged. Use the setting below to purge the activity log.', 'wp-security-audit-log' ); ?></p>
|
1414 |
<table class="form-table wsal-tab">
|
@@ -1535,12 +1469,6 @@ class WSAL_Views_Settings extends WSAL_AbstractView {
|
|
1535 |
$post_array = filter_input_array( INPUT_POST );
|
1536 |
|
1537 |
$this->_plugin->settings()->SetDeleteData( isset( $post_array['DeleteData'] ) ? sanitize_text_field( $post_array['DeleteData'] ) : false );
|
1538 |
-
$this->_plugin->settings()->ClearDevOptions();
|
1539 |
-
if ( isset( $post_array['DevOptions'] ) && 'r' === $post_array['DevOptions'] ) {
|
1540 |
-
$this->_plugin->settings()->SetDevOptionEnabled( 'r', true );
|
1541 |
-
} else {
|
1542 |
-
$this->_plugin->settings()->SetDevOptionEnabled( 'r', false );
|
1543 |
-
}
|
1544 |
|
1545 |
$stealth_mode = isset( $post_array['mwp_stealth_mode'] ) ? $post_array['mwp_stealth_mode'] : false;
|
1546 |
if ( 'yes' === $stealth_mode ) {
|
@@ -1556,33 +1484,6 @@ class WSAL_Views_Settings extends WSAL_AbstractView {
|
|
1556 |
} else {
|
1557 |
$this->_plugin->settings()->deactivate_mainwp_child_stealth_mode();
|
1558 |
}
|
1559 |
-
|
1560 |
-
$custom_logging_dir = $this->_plugin->settings()->get_default_working_dir_relative();
|
1561 |
-
if ( isset( $post_array['wsal-custom-logs-dir'] ) ) {
|
1562 |
-
$posted_logging_dir = filter_var( $post_array['wsal-custom-logs-dir'], FILTER_SANITIZE_STRING );
|
1563 |
-
if (!empty($posted_logging_dir)) {
|
1564 |
-
$custom_logging_dir = $posted_logging_dir;
|
1565 |
-
}
|
1566 |
-
}
|
1567 |
-
|
1568 |
-
if ( ! empty( $custom_logging_dir ) ) {
|
1569 |
-
$custom_logging_path = trailingslashit( get_home_path() ) . ltrim( trailingslashit( $custom_logging_dir ), '/' );
|
1570 |
-
if ( ! is_dir( $custom_logging_path ) || ! is_readable( $custom_logging_path ) || ! is_writable( $custom_logging_path ) ) {
|
1571 |
-
$dir_made = wp_mkdir_p( $custom_logging_path );
|
1572 |
-
if ( $dir_made ) {
|
1573 |
-
// make an empty index.php in the directory.
|
1574 |
-
@file_put_contents( $custom_logging_path . 'index.php', '<?php // Silence is golden' );
|
1575 |
-
}
|
1576 |
-
|
1577 |
-
// if the directory was not made then we will display an error message
|
1578 |
-
if ( ! $dir_made ) {
|
1579 |
-
// throw an exception to display an error message
|
1580 |
-
throw new Exception( __( 'The plugin cannot create the directory for the log files. Please check permissions and configure it again.', 'wp-security-audit-log' ) );
|
1581 |
-
}
|
1582 |
-
}
|
1583 |
-
// save.
|
1584 |
-
$this->_plugin->SetGlobalSetting( 'custom-logging-dir', $custom_logging_dir );
|
1585 |
-
}
|
1586 |
}
|
1587 |
|
1588 |
/**
|
875 |
<!-- From Email & Name -->
|
876 |
|
877 |
<h3><?php esc_html_e( 'Do you want to hide the plugin from the list of installed plugins?', 'wp-security-audit-log' ); ?></h3>
|
878 |
+
<p class="description"><?php esc_html_e( 'By default all installed plugins are listed in the plugins page. Set this option to Yes remove WP Activity Log from the list of installed plugins for users who are unable to access the WP Activity Log settings.', 'wp-security-audit-log' ); ?></p>
|
879 |
<table class="form-table wsal-tab">
|
880 |
<tbody>
|
881 |
<tr>
|
1194 |
</tr>
|
1195 |
</tbody>
|
1196 |
</table>
|
|
|
1197 |
<!-- / File Changes Logging Tab -->
|
1198 |
<?php
|
1199 |
}
|
1337 |
* Tab: `Advanced Settings`
|
1338 |
*/
|
1339 |
private function tab_advanced_settings() {
|
|
|
1340 |
?>
|
1341 |
<p class="description">
|
1342 |
<?php esc_html_e( 'These settings are for advanced users.', 'wp-security-audit-log' ); ?>
|
1343 |
<?php echo sprintf( __( 'If you have any questions <a href="https://wpactivitylog.com/contact/?utm_source=plugin&utm_medium=referral&utm_campaign=WSAL&utm_content=settings+pages" target="_blank">contact us</a>.', 'wp-security-audit-log' ), $this->_plugin->allowed_html_tags ); ?>
|
1344 |
</p>
|
1345 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1346 |
<h3><?php esc_html_e( 'Reset plugin settings to default', 'wp-security-audit-log' ); ?></h3>
|
1347 |
<p class="description"><?php _e( 'Use this button to <em>factory reset</em> the plugin. This means that all the configured settings will be reset to default and all email notifications, scheduled reports, external database / third party services connections, archiving and mirroring rule will be deleted. NOTE: the activity log data will not be purged. Use the setting below to purge the activity log.', 'wp-security-audit-log' ); ?></p>
|
1348 |
<table class="form-table wsal-tab">
|
1469 |
$post_array = filter_input_array( INPUT_POST );
|
1470 |
|
1471 |
$this->_plugin->settings()->SetDeleteData( isset( $post_array['DeleteData'] ) ? sanitize_text_field( $post_array['DeleteData'] ) : false );
|
|
|
|
|
|
|
|
|
|
|
|
|
1472 |
|
1473 |
$stealth_mode = isset( $post_array['mwp_stealth_mode'] ) ? $post_array['mwp_stealth_mode'] : false;
|
1474 |
if ( 'yes' === $stealth_mode ) {
|
1484 |
} else {
|
1485 |
$this->_plugin->settings()->deactivate_mainwp_child_stealth_mode();
|
1486 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1487 |
}
|
1488 |
|
1489 |
/**
|
@@ -154,8 +154,8 @@ final class WSAL_Views_SetupWizard {
|
|
154 |
$all_plugins = get_plugins();
|
155 |
$plugin_filenames = array();
|
156 |
foreach ( $all_plugins as $plugin => $info ) {
|
157 |
-
|
158 |
-
$plugin_filenames[] =
|
159 |
}
|
160 |
|
161 |
// Grab list of plugins we have addons for.
|
@@ -789,8 +789,8 @@ final class WSAL_Views_SetupWizard {
|
|
789 |
$all_plugins = get_plugins();
|
790 |
$plugin_filenames = array();
|
791 |
foreach ( $all_plugins as $plugin => $info ) {
|
792 |
-
|
793 |
-
$plugin_filenames[] =
|
794 |
}
|
795 |
|
796 |
// Grab list of plugins we have addons for.
|
154 |
$all_plugins = get_plugins();
|
155 |
$plugin_filenames = array();
|
156 |
foreach ( $all_plugins as $plugin => $info ) {
|
157 |
+
$plugin_info = pathinfo( $plugin );
|
158 |
+
$plugin_filenames[] = $plugin_info['filename'];
|
159 |
}
|
160 |
|
161 |
// Grab list of plugins we have addons for.
|
789 |
$all_plugins = get_plugins();
|
790 |
$plugin_filenames = array();
|
791 |
foreach ( $all_plugins as $plugin => $info ) {
|
792 |
+
$plugin_info = pathinfo( $plugin );
|
793 |
+
$plugin_filenames[] = $plugin_info['filename'];
|
794 |
}
|
795 |
|
796 |
// Grab list of plugins we have addons for.
|
@@ -86,12 +86,16 @@ class WSAL_Views_ToggleAlerts extends WSAL_AbstractView {
|
|
86 |
$enabled = array_map( 'intval', $post_array['alert'] );
|
87 |
$disabled = array();
|
88 |
$registered_alerts = $this->_plugin->alerts->GetAlerts();
|
89 |
-
$disabled
|
90 |
|
91 |
// Save the disabled events.
|
92 |
-
$this->_plugin->alerts->SetDisabledAlerts( $disabled );
|
93 |
|
94 |
-
//
|
|
|
|
|
|
|
|
|
95 |
do_action( 'wsal_togglealerts_process_save_settings', $post_array );
|
96 |
|
97 |
}
|
@@ -132,27 +136,31 @@ class WSAL_Views_ToggleAlerts extends WSAL_AbstractView {
|
|
132 |
}
|
133 |
|
134 |
// Log level form submission.
|
135 |
-
$
|
136 |
$log_level_nonce = isset( $post_array['wsal-log-level-nonce'] ) ? sanitize_text_field( $post_array['wsal-log-level-nonce'] ) : false;
|
137 |
|
138 |
if ( wp_verify_nonce( $log_level_nonce, 'wsal-log-level' ) ) {
|
139 |
-
$this->_plugin->SetGlobalSetting( 'details-level', $
|
140 |
|
141 |
-
if ( 'basic' === $
|
142 |
$this->_plugin->settings()->set_basic_mode();
|
143 |
-
} elseif ( 'geek' === $
|
144 |
$this->_plugin->settings()->set_geek_mode();
|
145 |
}
|
146 |
}
|
147 |
|
148 |
$disabled_events = $this->_plugin->GetGlobalSetting( 'disabled-alerts' ); // Get disabled events.
|
149 |
$disabled_events = explode( ',', $disabled_events );
|
150 |
-
$events_diff = array_diff( $disabled_events, $this->_plugin->settings()->geek_alerts ); // Calculate the difference of events.
|
151 |
-
$events_diff = array_filter( $events_diff ); // Remove empty values.
|
152 |
-
$is_custom = ! empty( $events_diff ) ? true : false; // If difference is not empty then mode is custom.
|
153 |
-
$log_details = $this->_plugin->GetGlobalSetting( 'details-level', false ); // Get log level option.
|
154 |
|
155 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
156 |
|
157 |
// Allow further items to be added externally.
|
158 |
$subcat_alerts = apply_filters( 'wsal_togglealerts_sub_category_events', $subcat_alerts );
|
@@ -170,19 +178,9 @@ class WSAL_Views_ToggleAlerts extends WSAL_AbstractView {
|
|
170 |
<fieldset>
|
171 |
<label for="wsal-log-level"><?php esc_html_e( 'Log Level: ', 'wp-security-audit-log' ); ?></label>
|
172 |
<select name="wsal-log-level" id="wsal-log-level" onchange="this.form.submit()"<?php if ( $disabled_events_enforced_by_mainwp ): ?> disabled="disabled"<?php endif; ?>>
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
<?php esc_html_e( 'Basic', 'wp-security-audit-log' ); ?>
|
177 |
-
</option>
|
178 |
-
<option value="geek"
|
179 |
-
<?php echo ( ! empty( $log_details ) && 'geek' === $log_details ) ? esc_attr( 'selected' ) : false; ?>
|
180 |
-
>
|
181 |
-
<?php esc_html_e( 'Geek', 'wp-security-audit-log' ); ?>
|
182 |
-
</option>
|
183 |
-
<option value="custom" <?php echo ( $is_custom ) ? esc_attr( 'selected' ) : false; ?>>
|
184 |
-
<?php esc_html_e( 'Custom', 'wp-security-audit-log' ); ?>
|
185 |
-
</option>
|
186 |
</select>
|
187 |
<p class="description">
|
188 |
<?php echo wp_kses( __( 'Use the Log level drop down menu above to use one of our preset log levels. Alternatively you can enable or disable any of the individual events from the below tabs. Refer to <a href="https://wpactivitylog.com/support/kb/list-wordpress-activity-log-event-ids/" target="_blank">the complete list of WordPress activity log event IDs</a> for reference on all the events the plugin can keep a log of.', 'wp-security-audit-log' ), $this->_plugin->allowed_html_tags ); ?>
|
@@ -378,10 +376,13 @@ class WSAL_Views_ToggleAlerts extends WSAL_AbstractView {
|
|
378 |
<?php
|
379 |
$subcat_title = '';
|
380 |
switch ( $alert->type ) {
|
|
|
|
|
|
|
381 |
case 1004:
|
382 |
$subcat_title = esc_html__( 'User Sessions', 'wp-security-audit-log' );
|
383 |
break;
|
384 |
-
|
385 |
$subcat_title = esc_html__( 'Files', 'wp-security-audit-log' );
|
386 |
break;
|
387 |
case 2011:
|
@@ -447,18 +448,6 @@ class WSAL_Views_ToggleAlerts extends WSAL_AbstractView {
|
|
447 |
<td><?php echo esc_html( $alert->desc ); ?></td>
|
448 |
</tr>
|
449 |
<?php
|
450 |
-
if ( 1000 === $alert->type ) {
|
451 |
-
$frontend_events = WSAL_Settings::get_frontend_events();
|
452 |
-
?>
|
453 |
-
<tr>
|
454 |
-
<td></td>
|
455 |
-
<td><input type="checkbox" name="frontend-events[login]" id="frontend-events-login" value="1" <?php checked( $frontend_events['login'] ); ?>></td>
|
456 |
-
<td colspan="2">
|
457 |
-
<label for="frontend-events-login"><?php esc_html_e( 'Keep a log when users login to the website from other login pages / forms other than the default WordPress login page.', 'wp-security-audit-log' ); ?></label>
|
458 |
-
</td>
|
459 |
-
</tr>
|
460 |
-
<?php
|
461 |
-
}
|
462 |
|
463 |
if ( 4000 === $alert->type ) {
|
464 |
$frontend_events = WSAL_Settings::get_frontend_events();
|
@@ -500,6 +489,21 @@ class WSAL_Views_ToggleAlerts extends WSAL_AbstractView {
|
|
500 |
<?php
|
501 |
}
|
502 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
503 |
do_action( 'wsal_togglealerts_append_content_to_toggle', $alert->type );
|
504 |
}
|
505 |
|
@@ -543,7 +547,7 @@ class WSAL_Views_ToggleAlerts extends WSAL_AbstractView {
|
|
543 |
<p class="submit"><input type="submit" name="submit" id="submit" class="button button-primary" value="<?php echo esc_attr( __( 'Save Changes', 'wp-security-audit-log' ) ); ?>"></p>
|
544 |
</form>
|
545 |
|
546 |
-
<?php if ( ! empty( $
|
547 |
<!-- Log level updated modal -->
|
548 |
<div class="remodal" data-remodal-id="wsal-log-level-updated">
|
549 |
<button data-remodal-action="close" class="remodal-close"></button>
|
@@ -551,7 +555,7 @@ class WSAL_Views_ToggleAlerts extends WSAL_AbstractView {
|
|
551 |
<p>
|
552 |
<?php
|
553 |
/* translators: Alerts log level. */
|
554 |
-
echo sprintf( esc_html__( 'The %s log level has been successfully loaded and applied.', 'wp-security-audit-log' ), $
|
555 |
?>
|
556 |
</p>
|
557 |
<br>
|
@@ -652,25 +656,44 @@ class WSAL_Views_ToggleAlerts extends WSAL_AbstractView {
|
|
652 |
table#tab-frontend-events tr:nth-child(12) td:first-child {
|
653 |
padding-left: 10px;
|
654 |
}
|
655 |
-
|
|
|
656 |
display: none;
|
657 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
658 |
.addon-wrapper img {
|
659 |
max-width: 200px;
|
660 |
}
|
661 |
.addon-wrapper {
|
662 |
-
|
663 |
-
|
664 |
-
|
665 |
-
|
666 |
-
text-align: center;
|
667 |
-
float: left;
|
668 |
-
margin-right: 3px;
|
669 |
-
min-height: 250px;
|
670 |
}
|
671 |
.addon-wrapper:hover {
|
672 |
border: 1px solid #ccc;
|
673 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
674 |
</style>
|
675 |
<?php
|
676 |
}
|
@@ -746,4 +769,30 @@ class WSAL_Views_ToggleAlerts extends WSAL_AbstractView {
|
|
746 |
</script>
|
747 |
<?php
|
748 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
749 |
}
|
86 |
$enabled = array_map( 'intval', $post_array['alert'] );
|
87 |
$disabled = array();
|
88 |
$registered_alerts = $this->_plugin->alerts->GetAlerts();
|
89 |
+
$disabled = apply_filters( 'wsal_save_settings_disabled_events', $disabled, $registered_alerts, $frontend_events, $enabled );
|
90 |
|
91 |
// Save the disabled events.
|
92 |
+
$this->_plugin->alerts->SetDisabledAlerts( $disabled ); // Save the disabled events.
|
93 |
|
94 |
+
// Update failed login limits.
|
95 |
+
$this->_plugin->settings()->set_failed_login_limit( $post_array['log_failed_login_limit'] );
|
96 |
+
$this->_plugin->settings()->set_visitor_failed_login_limit( $post_array['log_visitor_failed_login_limit'] );
|
97 |
+
|
98 |
+
// Allow 3rd parties to process and save more of the posted data.
|
99 |
do_action( 'wsal_togglealerts_process_save_settings', $post_array );
|
100 |
|
101 |
}
|
136 |
}
|
137 |
|
138 |
// Log level form submission.
|
139 |
+
$log_level_to_set = isset( $post_array['wsal-log-level'] ) ? sanitize_text_field( $post_array['wsal-log-level'] ) : false;
|
140 |
$log_level_nonce = isset( $post_array['wsal-log-level-nonce'] ) ? sanitize_text_field( $post_array['wsal-log-level-nonce'] ) : false;
|
141 |
|
142 |
if ( wp_verify_nonce( $log_level_nonce, 'wsal-log-level' ) ) {
|
143 |
+
$this->_plugin->SetGlobalSetting( 'details-level', $log_level_to_set );
|
144 |
|
145 |
+
if ( 'basic' === $log_level_to_set ) {
|
146 |
$this->_plugin->settings()->set_basic_mode();
|
147 |
+
} elseif ( 'geek' === $log_level_to_set ) {
|
148 |
$this->_plugin->settings()->set_geek_mode();
|
149 |
}
|
150 |
}
|
151 |
|
152 |
$disabled_events = $this->_plugin->GetGlobalSetting( 'disabled-alerts' ); // Get disabled events.
|
153 |
$disabled_events = explode( ',', $disabled_events );
|
|
|
|
|
|
|
|
|
154 |
|
155 |
+
// check if the log level is custom
|
156 |
+
$log_level = $this->get_log_level_based_on_events( $disabled_events );
|
157 |
+
$log_level_options = [
|
158 |
+
'basic' => esc_html__( 'Basic', 'wp-security-audit-log' ),
|
159 |
+
'geek' => esc_html__( 'Geek', 'wp-security-audit-log' ),
|
160 |
+
'custom' => esc_html__( 'Custom', 'wp-security-audit-log' ),
|
161 |
+
];
|
162 |
+
|
163 |
+
$subcat_alerts = array( 1000, 1004, 2010, 2111 );
|
164 |
|
165 |
// Allow further items to be added externally.
|
166 |
$subcat_alerts = apply_filters( 'wsal_togglealerts_sub_category_events', $subcat_alerts );
|
178 |
<fieldset>
|
179 |
<label for="wsal-log-level"><?php esc_html_e( 'Log Level: ', 'wp-security-audit-log' ); ?></label>
|
180 |
<select name="wsal-log-level" id="wsal-log-level" onchange="this.form.submit()"<?php if ( $disabled_events_enforced_by_mainwp ): ?> disabled="disabled"<?php endif; ?>>
|
181 |
+
<?php foreach ( $log_level_options as $log_level_id => $log_level_label ): ?>
|
182 |
+
<option value="<?php echo $log_level_id; ?>" <?php echo selected( $log_level, $log_level_id ); ?>><?php echo $log_level_label; ?></option>
|
183 |
+
<?php endforeach; ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
184 |
</select>
|
185 |
<p class="description">
|
186 |
<?php echo wp_kses( __( 'Use the Log level drop down menu above to use one of our preset log levels. Alternatively you can enable or disable any of the individual events from the below tabs. Refer to <a href="https://wpactivitylog.com/support/kb/list-wordpress-activity-log-event-ids/" target="_blank">the complete list of WordPress activity log event IDs</a> for reference on all the events the plugin can keep a log of.', 'wp-security-audit-log' ), $this->_plugin->allowed_html_tags ); ?>
|
376 |
<?php
|
377 |
$subcat_title = '';
|
378 |
switch ( $alert->type ) {
|
379 |
+
case 1000:
|
380 |
+
$subcat_title = esc_html__( 'User Logins/Logouts', 'wp-security-audit-log' );
|
381 |
+
break;
|
382 |
case 1004:
|
383 |
$subcat_title = esc_html__( 'User Sessions', 'wp-security-audit-log' );
|
384 |
break;
|
385 |
+
case 2010:
|
386 |
$subcat_title = esc_html__( 'Files', 'wp-security-audit-log' );
|
387 |
break;
|
388 |
case 2011:
|
448 |
<td><?php echo esc_html( $alert->desc ); ?></td>
|
449 |
</tr>
|
450 |
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
451 |
|
452 |
if ( 4000 === $alert->type ) {
|
453 |
$frontend_events = WSAL_Settings::get_frontend_events();
|
489 |
<?php
|
490 |
}
|
491 |
|
492 |
+
|
493 |
+
if ( 1003 === $alert->type ) {
|
494 |
+
$frontend_events = WSAL_Settings::get_frontend_events();
|
495 |
+
?>
|
496 |
+
<tr>
|
497 |
+
<th>
|
498 |
+
<input type="checkbox" name="frontend-events[login]" id="frontend-events-login" value="1" <?php checked( $frontend_events['login'] ); ?>>
|
499 |
+
</th>
|
500 |
+
<td colspan="3">
|
501 |
+
<label for="frontend-events-login"><?php esc_html_e( 'Keep a log of user log in activity on custom login forms (such as WooCommerce & membership plugins)', 'wp-security-audit-log' ); ?></label>
|
502 |
+
</td>
|
503 |
+
</tr>
|
504 |
+
<?php
|
505 |
+
}
|
506 |
+
|
507 |
do_action( 'wsal_togglealerts_append_content_to_toggle', $alert->type );
|
508 |
}
|
509 |
|
547 |
<p class="submit"><input type="submit" name="submit" id="submit" class="button button-primary" value="<?php echo esc_attr( __( 'Save Changes', 'wp-security-audit-log' ) ); ?>"></p>
|
548 |
</form>
|
549 |
|
550 |
+
<?php if ( ! empty( $log_level_to_set ) ) : ?>
|
551 |
<!-- Log level updated modal -->
|
552 |
<div class="remodal" data-remodal-id="wsal-log-level-updated">
|
553 |
<button data-remodal-action="close" class="remodal-close"></button>
|
555 |
<p>
|
556 |
<?php
|
557 |
/* translators: Alerts log level. */
|
558 |
+
echo sprintf( esc_html__( 'The %s log level has been successfully loaded and applied.', 'wp-security-audit-log' ), $log_level_to_set );
|
559 |
?>
|
560 |
</p>
|
561 |
<br>
|
656 |
table#tab-frontend-events tr:nth-child(12) td:first-child {
|
657 |
padding-left: 10px;
|
658 |
}
|
659 |
+
/* Extensions tab */
|
660 |
+
[href="#tab-0" i], [data-parent="tab-wpforms"], [data-parent="tab-gravity-forms"] {
|
661 |
display: none;
|
662 |
}
|
663 |
+
#extension-wrapper {
|
664 |
+
display: flex;
|
665 |
+
flex-wrap: wrap;
|
666 |
+
flex-direction: row;
|
667 |
+
justify-content: space-between;
|
668 |
+
}
|
669 |
.addon-wrapper img {
|
670 |
max-width: 200px;
|
671 |
}
|
672 |
.addon-wrapper {
|
673 |
+
flex: 1 0 30%;
|
674 |
+
margin: 0 5px 11px 5px;
|
675 |
+
border: 1px solid #eee;
|
676 |
+
padding: 20px;
|
|
|
|
|
|
|
|
|
677 |
}
|
678 |
.addon-wrapper:hover {
|
679 |
border: 1px solid #ccc;
|
680 |
}
|
681 |
+
.addon-wrapper .button-primary {
|
682 |
+
position: relative;
|
683 |
+
padding: 13px 26px !important;
|
684 |
+
font-weight: 500;
|
685 |
+
font-size: 16px;
|
686 |
+
line-height: 1;
|
687 |
+
color: white;
|
688 |
+
background: #007cba;
|
689 |
+
border: none;
|
690 |
+
outline: none;
|
691 |
+
overflow: hidden;
|
692 |
+
cursor: pointer;
|
693 |
+
filter: drop-shadow(0 2px 8px rgba(39, 94, 254, 0.32));
|
694 |
+
transition: 0.3s cubic-bezier(0.215, 0.61, 0.355, 1);
|
695 |
+
line-height: 1 !important;
|
696 |
+
}
|
697 |
</style>
|
698 |
<?php
|
699 |
}
|
769 |
</script>
|
770 |
<?php
|
771 |
}
|
772 |
+
|
773 |
+
/**
|
774 |
+
* Determine the log level setting by checking the list of enabled/disabled events.
|
775 |
+
*
|
776 |
+
* @param int[] $disabled_events Currently disabled events.
|
777 |
+
*
|
778 |
+
* @return string Log level setting value.
|
779 |
+
* @since 4.2.0
|
780 |
+
*/
|
781 |
+
private function get_log_level_based_on_events( $disabled_events ) {
|
782 |
+
$events_to_cross_check = $this->_plugin->settings()->always_disabled_alerts;
|
783 |
+
$events_diff = array_diff( $disabled_events, $events_to_cross_check );
|
784 |
+
$events_diff = array_filter( $events_diff ); // Remove empty values.
|
785 |
+
if ( empty( $events_diff ) ) {
|
786 |
+
return 'geek';
|
787 |
+
}
|
788 |
+
|
789 |
+
$events_to_cross_check = array_merge( $events_to_cross_check, $this->_plugin->settings()->geek_alerts );
|
790 |
+
$events_diff = array_diff( $disabled_events, $events_to_cross_check );
|
791 |
+
$events_diff = array_filter( $events_diff ); // Remove empty values.
|
792 |
+
if ( empty( $events_diff ) ) {
|
793 |
+
return 'basic';
|
794 |
+
}
|
795 |
+
|
796 |
+
return 'custom';
|
797 |
+
}
|
798 |
}
|
@@ -73,18 +73,23 @@ class WSAL_WidgetManager {
|
|
73 |
<table class="wp-list-table widefat" cellspacing="0" cellpadding="0"
|
74 |
style="display: block; overflow-x: auto;">
|
75 |
<thead>
|
76 |
-
<th class="manage-column" style="width:
|
77 |
-
<th class="manage-column" style="width:
|
|
|
|
|
78 |
</thead>
|
79 |
<tbody>
|
80 |
<?php
|
81 |
$url = 'admin.php?page=' . $this->_plugin->views->views[0]->GetSafeViewName();
|
82 |
$fmt = array( $this->_plugin->settings(), 'meta_formatter' );
|
83 |
foreach ( $results as $entry ) :
|
84 |
-
$username
|
|
|
85 |
?>
|
86 |
<tr>
|
87 |
<td><?php echo ( $username ) ? esc_html( $username ) : '<i>unknown</i>'; ?></td>
|
|
|
|
|
88 |
<td>
|
89 |
<a href="<?php echo esc_url( $url ) . '#Event' . esc_attr( $entry->getId() ); ?>">
|
90 |
<?php echo wp_kses( $entry->GetMessage( $fmt ), $this->_plugin->allowed_html_tags ); ?>
|
73 |
<table class="wp-list-table widefat" cellspacing="0" cellpadding="0"
|
74 |
style="display: block; overflow-x: auto;">
|
75 |
<thead>
|
76 |
+
<th class="manage-column" style="width: 10%;" scope="col"><?php esc_html_e( 'User', 'wp-security-audit-log' ); ?></th>
|
77 |
+
<th class="manage-column" style="width: 10%;" scope="col"><?php esc_html_e( 'Object', 'wp-security-audit-log' ); ?></th>
|
78 |
+
<th class="manage-column" style="width: 10%;" scope="col"><?php esc_html_e( 'Event Type', 'wp-security-audit-log' ); ?></th>
|
79 |
+
<th class="manage-column" style="width: 70%;" scope="col"><?php esc_html_e( 'Description', 'wp-security-audit-log' ); ?></th>
|
80 |
</thead>
|
81 |
<tbody>
|
82 |
<?php
|
83 |
$url = 'admin.php?page=' . $this->_plugin->views->views[0]->GetSafeViewName();
|
84 |
$fmt = array( $this->_plugin->settings(), 'meta_formatter' );
|
85 |
foreach ( $results as $entry ) :
|
86 |
+
$username = $entry->GetUsername();
|
87 |
+
$event_meta = $entry->GetMetaArray();
|
88 |
?>
|
89 |
<tr>
|
90 |
<td><?php echo ( $username ) ? esc_html( $username ) : '<i>unknown</i>'; ?></td>
|
91 |
+
<td><?php echo ( $event_meta['Object'] ) ? esc_html( $event_meta['Object'] ) : '<i>unknown</i>'; ?></td>
|
92 |
+
<td><?php echo ( $event_meta['EventType'] ) ? esc_html( $event_meta['EventType'] ) : '<i>unknown</i>'; ?></td>
|
93 |
<td>
|
94 |
<a href="<?php echo esc_url( $url ) . '#Event' . esc_attr( $entry->getId() ); ?>">
|
95 |
<?php echo wp_kses( $entry->GetMessage( $fmt ), $this->_plugin->allowed_html_tags ); ?>
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Nothing to see here.
|
4 |
+
*/
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Nothing to see here.
|
4 |
+
*/
|
@@ -21,24 +21,17 @@ if ( ! class_exists( 'WpSecurityAuditLog' ) ) {
|
|
21 |
defined( 'E_CRITICAL' ) || define( 'E_CRITICAL', 'E_CRITICAL' );
|
22 |
|
23 |
/**
|
24 |
-
*
|
|
|
|
|
|
|
|
|
|
|
25 |
*
|
26 |
* @param WpSecurityAuditLog $wsal - Instance of main plugin.
|
27 |
*/
|
28 |
-
function
|
29 |
-
|
30 |
-
// {plugin working folder}/custom-alerts.php.
|
31 |
-
$uploads_dir_path = $wsal->settings()->get_working_dir_path( '', true, true );
|
32 |
-
|
33 |
-
/*
|
34 |
-
* Get an array of directories to loop through to add custom alerts.
|
35 |
-
*
|
36 |
-
* Passed through a filter so other plugins or code can add own custom
|
37 |
-
* alerts files by adding the containing directory to this array.
|
38 |
-
*
|
39 |
-
* @since 3.5.1 - Added the `wsal_custom_alerts_dirs` filter.
|
40 |
-
*/
|
41 |
-
$paths = apply_filters( 'wsal_custom_alerts_dirs', array( $uploads_dir_path ) );
|
42 |
foreach ( $paths as $inc_path ) {
|
43 |
// Check directory.
|
44 |
if ( is_dir( $inc_path ) && is_readable( $inc_path ) ) {
|
@@ -85,45 +78,48 @@ function wsaldefaults_wsal_init() {
|
|
85 |
array(
|
86 |
__( 'Users Logins & Sessions Events', 'wp-security-audit-log' ) => array(
|
87 |
__( 'User Activity', 'wp-security-audit-log' ) => array(
|
88 |
-
array( 1000, WSAL_LOW, __( 'User logged in', 'wp-security-audit-log' ), '', 'user', 'login' ),
|
89 |
-
array( 1001, WSAL_LOW, __( 'User logged out', 'wp-security-audit-log' ), '', 'user', 'logout' ),
|
90 |
-
array( 1002, WSAL_MEDIUM, __( 'Login failed', 'wp-security-audit-log' ), '%Attempts% failed login(s)', 'user', 'failed-login' ),
|
91 |
array( 1003, WSAL_LOW, __( 'Login failed / non existing user', 'wp-security-audit-log' ), __( '%Attempts% failed login(s) %LineBreak% %LogFileText%', 'wp-security-audit-log' ), 'system', 'failed-login' ),
|
92 |
array( 1004, WSAL_MEDIUM, __( 'Login blocked', 'wp-security-audit-log' ), __( 'Login blocked because other session(s) already exist for this user. %LineBreak% IP address: %ClientIP%', 'wp-security-audit-log' ), 'user', 'blocked' ),
|
93 |
array( 1005, WSAL_LOW, __( 'User logged in with existing session(s)', 'wp-security-audit-log' ), __( 'User logged in. There are other session(s) using the same username logged in from these IP address(es): %IPAddress%', 'wp-security-audit-log' ), 'user', 'login' ),
|
94 |
array( 1006, WSAL_MEDIUM, __( 'User logged out all other sessions with the same username', 'wp-security-audit-log' ), __( 'Logged out all other sessions with the same user.', 'wp-security-audit-log' ), 'user', 'logout' ),
|
95 |
-
array( 1007, WSAL_MEDIUM, __( 'User session destroyed and logged out', 'wp-security-audit-log' ), __( 'Terminated the session of another user. %LineBreak% User: %TargetUserName% %LineBreak% Session ID: %TargetSessionID%', 'wp-security-audit-log' ), 'user', 'logout' ),
|
96 |
array( 1008, WSAL_MEDIUM, __( 'Switched to another user', 'wp-security-audit-log' ), __( 'Switched to another user. %LineBreak% User: %TargetUserName% %LineBreak% Role: %TargetUserRole%', 'wp-security-audit-log' ), 'user', 'login' ),
|
97 |
array( 2010, WSAL_MEDIUM, __( 'User uploaded file from Uploads directory', 'wp-security-audit-log' ), __( 'Filename: %FileName% %LineBreak% Directory: %FilePath%', 'wp-security-audit-log' ), 'file', 'uploaded' ),
|
98 |
array( 2011, WSAL_LOW, __( 'User deleted file from Uploads directory', 'wp-security-audit-log' ), __( 'Filename: %FileName% %LineBreak% Directory: %FilePath%', 'wp-security-audit-log' ), 'file', 'deleted' ),
|
|
|
99 |
),
|
100 |
),
|
101 |
|
102 |
__( 'Content & Comments', 'wp-security-audit-log' ) => array(
|
103 |
__( 'Content', 'wp-security-audit-log' ) => array(
|
104 |
-
array( 2000, WSAL_INFORMATIONAL, __( 'User created a new post and saved it as draft', 'wp-security-audit-log' ), __( 'Created the post %PostTitle% %LineBreak% ID: %PostID% %LineBreak%
|
105 |
-
array( 2001, WSAL_LOW, __( 'User published a post', 'wp-security-audit-log' ), __( 'Published the post %PostTitle% %LineBreak% ID: %PostID% %LineBreak%
|
106 |
-
array( 2002, WSAL_LOW, __( 'User modified a post', 'wp-security-audit-log' ), __( 'Modified the post %PostTitle% %LineBreak% ID: %PostID% %LineBreak%
|
107 |
-
array( 2008, WSAL_MEDIUM, __( 'User permanently deleted a post from the trash', 'wp-security-audit-log' ), __( 'Permanently deleted the post %PostTitle% %LineBreak% ID: %PostID% %LineBreak%
|
108 |
-
array( 2012, WSAL_MEDIUM, __( 'User moved a post to the trash', 'wp-security-audit-log' ), __( 'Moved the post %PostTitle% to trash %LineBreak% ID: %PostID% %LineBreak%
|
109 |
-
array( 2014, WSAL_LOW, __( 'User restored a post from trash', 'wp-security-audit-log' ), __( 'Restored the post %PostTitle% from trash %LineBreak% ID: %PostID% %LineBreak%
|
110 |
-
array( 2017, WSAL_INFORMATIONAL, __( 'User changed post URL', 'wp-security-audit-log' ), __( 'Changed the URL of the post %PostTitle% %LineBreak% ID: %PostID% %LineBreak%
|
111 |
-
array( 2019, WSAL_INFORMATIONAL, __( 'User changed post author', 'wp-security-audit-log' ), __( 'Changed the author of the post %PostTitle% %LineBreak% ID: %PostID% %LineBreak%
|
112 |
-
array( 2021, WSAL_MEDIUM, __( 'User changed post status', 'wp-security-audit-log' ), __( 'Changed the status of the post %PostTitle% %LineBreak% ID: %PostID% %LineBreak%
|
113 |
-
array( 2025, WSAL_LOW, __( 'User changed the visibility of a post', 'wp-security-audit-log' ), __( 'Changed the visibility of the post %PostTitle% %LineBreak% ID: %PostID% %LineBreak%
|
114 |
-
array( 2027, WSAL_INFORMATIONAL, __( 'User changed the date of a post', 'wp-security-audit-log' ), __( 'Changed the date of the post %PostTitle% %LineBreak% ID: %PostID% %LineBreak%
|
115 |
-
array( 2047, WSAL_LOW, __( 'User changed the parent of a page', 'wp-security-audit-log' ), __( 'Changed the parent of the post %PostTitle% %LineBreak% ID: %PostID% %LineBreak%
|
116 |
-
array( 2048, WSAL_LOW, __( 'User changed the template of a page', 'wp-security-audit-log' ), __( 'Changed the template of the post %PostTitle% %LineBreak% ID: %PostID% %LineBreak%
|
117 |
-
array( 2049, WSAL_INFORMATIONAL, __( 'User set a post as sticky', 'wp-security-audit-log' ), __( 'Set the post %PostTitle% as sticky %LineBreak% ID: %PostID% %LineBreak%
|
118 |
-
array( 2050, WSAL_INFORMATIONAL, __( 'User removed post from sticky', 'wp-security-audit-log' ), __( 'Removed the post %PostTitle% from sticky %LineBreak% ID: %PostID% %LineBreak%
|
119 |
-
array( 2065, WSAL_LOW, __( 'User modified the content of a post', 'wp-security-audit-log' ), __( 'Modified the content of the post %PostTitle% %LineBreak% ID: %PostID% %LineBreak%
|
120 |
-
array( 2073, WSAL_INFORMATIONAL, __( 'User submitted a post for review', 'wp-security-audit-log' ), __( 'Submitted the post %PostTitle% for review %LineBreak% ID: %PostID% %LineBreak%
|
121 |
-
array( 2074, WSAL_LOW, __( 'User scheduled a post', 'wp-security-audit-log' ), __( 'Scheduled the post %PostTitle% to be published on %PublishingDate% %LineBreak% ID: %PostID% %LineBreak%
|
122 |
-
array( 2086, WSAL_INFORMATIONAL, __( 'User changed title of a post', 'wp-security-audit-log' ), __( 'Changed the title of the post %OldTitle% %LineBreak%
|
123 |
-
array( 2100, WSAL_INFORMATIONAL, __( 'User opened a post in the editor', 'wp-security-audit-log' ), __( 'Opened the post %PostTitle% in the editor %LineBreak% ID: %PostID% %LineBreak%
|
124 |
-
array( 2101, WSAL_INFORMATIONAL, __( 'User viewed a post', 'wp-security-audit-log' ), __( 'Viewed the post %PostTitle% %LineBreak% ID: %PostID% %LineBreak%
|
125 |
-
array( 2111, WSAL_LOW, __( 'User enabled/disabled comments in a post', 'wp-security-audit-log' ), __( 'The comments in the post %PostTitle% %LineBreak% ID: %PostID% %LineBreak%
|
126 |
-
array( 2112, WSAL_LOW, __( 'User enabled/disabled trackbacks and pingbacks in a post', 'wp-security-audit-log' ), __( 'Pingbacks and Trackbacks in the post %PostTitle% %LineBreak% ID: %PostID% %LineBreak%
|
|
|
|
|
127 |
),
|
128 |
|
129 |
__( 'Tags', 'wp-security-audit-log' ) => array(
|
@@ -131,39 +127,39 @@ function wsaldefaults_wsal_init() {
|
|
131 |
array( 2120, WSAL_INFORMATIONAL, __( 'User removed post tag', 'wp-security-audit-log' ), __( 'Removed tag(s) from the post %PostTitle% %LineBreak% ID: %PostID% %LineBreak% Type: %PostType% %LineBreak% Status: %PostStatus% %LineBreak% Removed tag(s): %tag% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%', 'wp-security-audit-log' ), 'post', 'modified' ),
|
132 |
array( 2121, WSAL_INFORMATIONAL, __( 'User created new tag', 'wp-security-audit-log' ), __( 'Created the tag %TagName% %LineBreak% Slug: %Slug% %LineBreak% %TagLink%', 'wp-security-audit-log' ), 'tag', 'created' ),
|
133 |
array( 2122, WSAL_LOW, __( 'User deleted tag', 'wp-security-audit-log' ), __( 'Deleted the tag %TagName% %LineBreak% Slug: %Slug%', 'wp-security-audit-log' ), 'tag', 'deleted' ),
|
134 |
-
array( 2123, WSAL_INFORMATIONAL, __( 'User renamed tag', 'wp-security-audit-log' ), __( '
|
135 |
array( 2124, WSAL_INFORMATIONAL, __( 'User changed tag slug', 'wp-security-audit-log' ), __( 'Changed the slug of the tag %tag% %LineBreak% Previous slug: %old_slug% %LineBreak% New slug: %new_slug% %LineBreak% %TagLink%', 'wp-security-audit-log' ), 'tag', 'modified' ),
|
136 |
array( 2125, WSAL_INFORMATIONAL, __( 'User changed tag description', 'wp-security-audit-log' ), __( 'Changed the description of the tag %tag% %LineBreak% Slug: %Slug% %LineBreak% Previous description: %old_desc% %LineBreak% New description: %new_desc% %LineBreak% %TagLink%', 'wp-security-audit-log' ), 'tag', 'modified' ),
|
137 |
),
|
138 |
|
139 |
__( 'Categories', 'wp-security-audit-log' ) => array(
|
140 |
-
array( 2016, WSAL_LOW, __( 'User changed post category', 'wp-security-audit-log' ), __( 'Changed the category of the post %PostTitle% %LineBreak% ID: %PostID% %LineBreak%
|
141 |
array( 2023, WSAL_MEDIUM, __( 'User created new category', 'wp-security-audit-log' ), __( 'Created the category %CategoryName% %LineBreak% Slug: %Slug% %LineBreak% %CategoryLink%', 'wp-security-audit-log' ), 'category', 'created' ),
|
142 |
array( 2024, WSAL_MEDIUM, __( 'User deleted category', 'wp-security-audit-log' ), __( 'Deleted the category %CategoryName% %LineBreak% Slug: %Slug%', 'wp-security-audit-log' ), 'category', 'deleted' ),
|
143 |
array( 2052, WSAL_LOW, __( 'Changed the parent of a category', 'wp-security-audit-log' ), __( 'Changed the parent of the category %CategoryName% %LineBreak% Slug: %Slug% %LineBreak% Previous parent: %OldParent% %LineBreak% New parent: %NewParent% %LineBreak% %CategoryLink%', 'wp-security-audit-log' ), 'category', 'modified' ),
|
144 |
-
array( 2127, WSAL_LOW, __( 'User changed category name', 'wp-security-audit-log' ), __( 'Previous name: %old_name% %LineBreak% New name: %new_name% %LineBreak% Slug: %slug% %LineBreak%
|
145 |
array( 2128, WSAL_LOW, __( 'User changed category slug', 'wp-security-audit-log' ), __( 'Changed the slug of the category: %CategoryName% %LineBreak% Previous slug: %old_slug% %LineBreak% New slug: %new_slug% %LineBreak% %cat_link%', 'wp-security-audit-log' ), 'category', 'modified' ),
|
146 |
),
|
147 |
|
148 |
__( 'Custom Fields', 'wp-security-audit-log' ) => array(
|
149 |
-
array( 2053, WSAL_LOW, __( 'User created a custom field for a post', 'wp-security-audit-log' ), __( 'Created
|
150 |
-
array( 2054, WSAL_LOW, __( 'User updated a custom field value for a post', 'wp-security-audit-log' ), __( 'Modified the value of the custom field %MetaKey% in the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post
|
151 |
-
array( 2055, WSAL_MEDIUM, __( 'User deleted a custom field from a post', 'wp-security-audit-log' ), __( 'Deleted the custom field %MetaKey% from the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post
|
152 |
-
array( 2062, WSAL_LOW, __( 'User updated a custom field name for a post', 'wp-security-audit-log' ), __( '
|
153 |
),
|
154 |
|
155 |
__( 'Custom Fields (ACF)', 'wp-security-audit-log' ) => array(
|
156 |
array( 2131,
|
157 |
WSAL_LOW,
|
158 |
__( 'User added relationship to a custom field value for a post', 'mwp-al-ext' ),
|
159 |
-
__( '
|
160 |
'custom-field',
|
161 |
'modified'
|
162 |
),
|
163 |
array( 2132,
|
164 |
WSAL_LOW,
|
165 |
__( 'User removed relationship from a custom field value for a post', 'mwp-al-ext' ),
|
166 |
-
__( '
|
167 |
'custom-field',
|
168 |
'modified'
|
169 |
),
|
@@ -173,28 +169,28 @@ function wsaldefaults_wsal_init() {
|
|
173 |
* Alerts: Comments
|
174 |
*/
|
175 |
__( 'Comments', 'wp-security-audit-log' ) => array(
|
176 |
-
array( 2090, WSAL_INFORMATIONAL, __( 'User approved a comment', 'wp-security-audit-log' ), __( 'Approved the comment posted by %Author% on the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post
|
177 |
-
array( 2091, WSAL_INFORMATIONAL, __( 'User unapproved a comment', 'wp-security-audit-log' ), __( 'Unapproved the comment posted by %Author% on the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post
|
178 |
-
array( 2092, WSAL_INFORMATIONAL, __( 'User replied to a comment', 'wp-security-audit-log' ), __( 'Replied to the comment posted by %Author% on the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post
|
179 |
-
array( 2093, WSAL_LOW, __( 'User edited a comment', 'wp-security-audit-log' ), __( 'Edited the comment posted by %Author% on the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post
|
180 |
-
array( 2094, WSAL_INFORMATIONAL, __( 'User marked a comment as Spam', 'wp-security-audit-log' ), __( 'Marked the comment posted by %Author% on the post %PostTitle% as spam %LineBreak% Post ID: %PostID% %LineBreak% Post
|
181 |
-
array( 2095, WSAL_LOW, __( 'User marked a comment as Not Spam', 'wp-security-audit-log' ), __( 'Marked the comment posted by %Author% on the post %PostTitle% as not spam %LineBreak% Post ID: %PostID% %LineBreak% Post
|
182 |
-
array( 2096, WSAL_LOW, __( 'User moved a comment to trash', 'wp-security-audit-log' ), __( 'Moved the comment posted by %Author% on the post %PostTitle% to trash %LineBreak% Post ID: %PostID% %LineBreak% Post
|
183 |
-
array( 2097, WSAL_INFORMATIONAL, __( 'User restored a comment from the trash', 'wp-security-audit-log' ), __( 'Restored the comment posted by %Author% on the post %PostTitle% from trash %LineBreak% Post ID: %PostID% %LineBreak% Post
|
184 |
-
array( 2098, WSAL_LOW, __( 'User permanently deleted a comment', 'wp-security-audit-log' ), __( 'Permanently deleted the comment posted by %Author% on the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post
|
185 |
-
array( 2099, WSAL_INFORMATIONAL, __( 'User posted a comment', 'wp-security-audit-log' ), __( 'Posted a comment on the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post
|
186 |
/**
|
187 |
* IMPORTANT: This alert is deprecated but should not be
|
188 |
* removed from the definitions for backwards compatibility.
|
189 |
*/
|
190 |
-
array( 2126, WSAL_INFORMATIONAL, __( 'Visitor posted a comment', 'wp-security-audit-log' ), __( 'Posted a comment on the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post
|
191 |
),
|
192 |
|
193 |
/**
|
194 |
* Alerts: Widgets
|
195 |
*/
|
196 |
__( 'Widgets', 'wp-security-audit-log' ) => array(
|
197 |
-
array( 2042, WSAL_MEDIUM, __( 'User added a new widget', 'wp-security-audit-log' ), __( 'Added a new %WidgetName% widget in
|
198 |
array( 2043, WSAL_HIGH, __( 'User modified a widget', 'wp-security-audit-log' ), __( 'Modified the %WidgetName% widget in %Sidebar%.', 'wp-security-audit-log' ), 'widget', 'modified' ),
|
199 |
array( 2044, WSAL_MEDIUM, __( 'User deleted widget', 'wp-security-audit-log' ), __( 'Deleted the %WidgetName% widget from %Sidebar%.', 'wp-security-audit-log' ), 'widget', 'deleted' ),
|
200 |
array( 2045, WSAL_LOW, __( 'User moved widget', 'wp-security-audit-log' ), __( 'Moved the %WidgetName% widget %LineBreak% From: %OldSidebar% %LineBreak% To: %NewSidebar%', 'wp-security-audit-log' ), 'widget', 'modified' ),
|
@@ -205,15 +201,15 @@ function wsaldefaults_wsal_init() {
|
|
205 |
* Alerts: Menus
|
206 |
*/
|
207 |
__( 'Menus', 'wp-security-audit-log' ) => array(
|
208 |
-
array( 2078, WSAL_LOW, __( 'User created new menu', 'wp-security-audit-log' ), __( 'New menu called %MenuName
|
209 |
-
array( 2079, WSAL_LOW, __( 'User added content to a menu', 'wp-security-audit-log' ), __( 'Added new item to the menu %MenuName% %LineBreak% Item type: %ContentType% %LineBreak% Item name: %ContentName% ', 'wp-security-audit-log' ), 'menu', 'modified' ),
|
210 |
-
array( 2080, WSAL_LOW, __( 'User removed content from a menu', 'wp-security-audit-log' ), __( 'Removed item from the menu %MenuName% %LineBreak% Item type: %ContentType% %LineBreak% Item name: %ContentName%', 'wp-security-audit-log' ), 'menu', 'modified' ),
|
211 |
array( 2081, WSAL_MEDIUM, __( 'User deleted menu', 'wp-security-audit-log' ), __( 'Deleted the menu %MenuName%', 'wp-security-audit-log' ), 'menu', 'deleted' ),
|
212 |
-
array( 2082, WSAL_LOW, __( 'User changed menu setting', 'wp-security-audit-log' ), __( 'The setting in the %MenuName% %LineBreak% Setting: %MenuSetting%', 'wp-security-audit-log' ), 'menu', 'enabled' ),
|
213 |
-
array( 2083, WSAL_LOW, __( 'User modified content in a menu', 'wp-security-audit-log' ), __( 'Modified an item in the menu %MenuName% %LineBreak% Item type: %ContentType% %LineBreak% Item name: %ContentName%', 'wp-security-audit-log' ), 'menu', 'modified' ),
|
214 |
-
array( 2084, WSAL_LOW, __( 'User changed name of a menu', 'wp-security-audit-log' ), __( '
|
215 |
-
array( 2085, WSAL_LOW, __( 'User changed order of the objects in a menu', 'wp-security-audit-log' ), __( 'Changed the order of the items in the menu %MenuName%', 'wp-security-audit-log' ), 'menu', 'modified' ),
|
216 |
-
array( 2089, WSAL_LOW, __( 'User moved objects as a sub-item', 'wp-security-audit-log' ), __( 'Menu name: %MenuName% %LineBreak% Moved item %ItemName% as a sub-item of %ParentName%', 'wp-security-audit-log' ), 'menu', 'modified' ),
|
217 |
),
|
218 |
|
219 |
/**
|
@@ -301,61 +297,67 @@ function wsaldefaults_wsal_init() {
|
|
301 |
|
302 |
__( 'User Accounts', 'wp-security-audit-log' ) => array(
|
303 |
__( 'User Profiles', 'wp-security-audit-log' ) => array(
|
304 |
-
array( 4000, WSAL_CRITICAL, __( 'New user was created on WordPress', 'wp-security-audit-log' ), __( 'New user: %NewUserData->Username% %LineBreak% Role: %NewUserData->Roles% %LineBreak% %EditUserLink%', 'wp-security-audit-log' ), 'user', 'created' ),
|
305 |
array( 4001, WSAL_CRITICAL, __( 'User created another WordPress user', 'wp-security-audit-log' ), __( 'New user: %NewUserData->Username% %LineBreak% Role: %NewUserData->Roles% %LineBreak% First name: %NewUserData->FirstName% %LineBreak% Last name: %NewUserData->LastName% %LineBreak% %EditUserLink%', 'wp-security-audit-log' ), 'user', 'created' ),
|
306 |
-
array( 4002, WSAL_CRITICAL, __( 'The role of a user was changed by another WordPress user', 'wp-security-audit-log' ), __( 'Changed the role of
|
307 |
-
array( 4003, WSAL_HIGH, __( 'User has changed his or her password', 'wp-security-audit-log' ), __( 'Changed the password %LineBreak% First name: %TargetUserData->FirstName% %LineBreak% Last name: %TargetUserData->LastName% %LineBreak% %EditUserLink%', 'wp-security-audit-log' ), 'user', 'modified' ),
|
308 |
array( 4004, WSAL_HIGH, __( 'User changed another user\'s password', 'wp-security-audit-log' ), __( 'Changed the password of the user %TargetUserData->Username% %LineBreak% Role: %TargetUserData->Roles% %LineBreak% First name: %TargetUserData->FirstName% %LineBreak% Last name: %TargetUserData->LastName% %LineBreak% %EditUserLink%', 'wp-security-audit-log' ), 'user', 'modified' ),
|
309 |
-
array( 4005, WSAL_MEDIUM, __( 'User changed his or her email address', 'wp-security-audit-log' ), __( 'Changed the email address
|
310 |
-
array( 4006, WSAL_MEDIUM, __( 'User changed another user\'s email address', 'wp-security-audit-log' ), __( 'Changed the email address of the user %TargetUsername% %LineBreak%
|
311 |
array( 4007, WSAL_HIGH, __( 'User was deleted by another user', 'wp-security-audit-log' ), __( 'User: %TargetUserData->Username% %LineBreak% Role: %TargetUserData->Roles% %LineBreak% First name: %NewUserData->FirstName% %LineBreak% Last name: %NewUserData->LastName%', 'wp-security-audit-log' ), 'user', 'deleted' ),
|
312 |
array( 4014, WSAL_INFORMATIONAL, __( 'User opened the profile page of another user', 'wp-security-audit-log' ), __( 'The profile page of the user %TargetUsername% %LineBreak% Role: %Roles% %LineBreak% First name: %FirstName% %LineBreak% Last name: %LastName% %LineBreak% %EditUserLink%', 'wp-security-audit-log' ), 'user', 'opened' ),
|
313 |
-
array( 4015, WSAL_LOW, __( 'User updated a custom field value for a user', 'wp-security-audit-log' ), __( 'Changed the value of a custom field in the user profile %TargetUsername% %LineBreak%
|
314 |
-
array( 4016, WSAL_LOW, __( 'User created a custom field value for a user', 'wp-security-audit-log' ), __( 'Created a new custom field in the user profile %TargetUsername% %LineBreak%
|
315 |
-
array( 4017, WSAL_INFORMATIONAL, __( 'User changed first name for a user', 'wp-security-audit-log' ), __( 'Changed the first name of the user %TargetUsername% %LineBreak%
|
316 |
-
array( 4018, WSAL_INFORMATIONAL, __( 'User changed last name for a user', 'wp-security-audit-log' ), __( 'Changed the last name of the user %TargetUsername% %LineBreak%
|
317 |
-
array( 4019, WSAL_INFORMATIONAL, __( 'User changed nickname for a user', 'wp-security-audit-log' ), __( 'Changed the nickname of the user %TargetUsername% %LineBreak%
|
318 |
-
array( 4020, WSAL_LOW, __( 'User changed the display name for a user', 'wp-security-audit-log' ), __( 'Changed the display name of the user %TargetUsername% %LineBreak%
|
|
|
|
|
|
|
|
|
|
|
|
|
319 |
),
|
320 |
|
321 |
__( 'Multisite User Profiles', 'wp-security-audit-log' ) => array(
|
322 |
-
array( 4008, WSAL_CRITICAL, __( 'User granted Super Admin privileges', 'wp-security-audit-log' ), __( 'Granted Super Admin privileges to %TargetUsername% %LineBreak% First name: %FirstName% %LineBreak% Last name: %LastName% %LineBreak% %EditUserLink%', 'wp-security-audit-log' ), 'user', 'modified' ),
|
323 |
-
array( 4009, WSAL_CRITICAL, __( 'User revoked from Super Admin privileges', 'wp-security-audit-log' ), __( 'Revoked Super Admin privileges from %TargetUsername% %LineBreak% First name: %FirstName% %LineBreak% Last name: %LastName% %LineBreak% %EditUserLink%', 'wp-security-audit-log' ), 'user', 'modified' ),
|
324 |
array( 4010, WSAL_MEDIUM, __( 'Existing user added to a site', 'wp-security-audit-log' ), __( 'Added user %TargetUsername% to site: %SiteName% %LineBreak% Role: %TargetUserRole% %LineBreak% First name: %FirstName% %LineBreak% Last name: %LastName% %LineBreak% %EditUserLink%', 'wp-security-audit-log' ), 'user', 'modified' ),
|
325 |
-
array( 4011, WSAL_MEDIUM, __( 'User removed from site', 'wp-security-audit-log' ), __( 'Removed user %TargetUsername% from site: %SiteName% %LineBreak%
|
326 |
array( 4012, WSAL_CRITICAL, __( 'New network user created', 'wp-security-audit-log' ), __( 'Created a new network user %NewUserData->Username% %LineBreak% First name: %NewUserData->FirstName% %LineBreak% Last name: %NewUserData->LastName% %LineBreak% %EditUserLink%', 'wp-security-audit-log' ), 'user', 'created' ),
|
327 |
),
|
328 |
),
|
329 |
|
330 |
__( 'Plugins & Themes', 'wp-security-audit-log' ) => array(
|
331 |
__( 'Plugins', 'wp-security-audit-log' ) => array(
|
332 |
-
array( 5000, WSAL_CRITICAL, __( 'User installed a plugin', 'wp-security-audit-log' ), __( 'Name: %Plugin->Name% %LineBreak% Install location: %Plugin->plugin_dir_path%', 'wp-security-audit-log' ), 'plugin', 'installed' ),
|
333 |
-
array( 5001, WSAL_HIGH, __( 'User activated a WordPress plugin', 'wp-security-audit-log' ), __( 'Name: %PluginData->Name% %LineBreak% Install location: %PluginFile%', 'wp-security-audit-log' ), 'plugin', 'activated' ),
|
334 |
-
array( 5002, WSAL_HIGH, __( 'User deactivated a WordPress plugin', 'wp-security-audit-log' ), __( 'Name: %PluginData->Name% %LineBreak% Install location: %PluginFile%', 'wp-security-audit-log' ), 'plugin', 'deactivated' ),
|
335 |
-
array( 5003, WSAL_HIGH, __( 'User uninstalled a plugin', 'wp-security-audit-log' ), __( 'Name: %PluginData->Name% %LineBreak% Install location: %PluginFile%', 'wp-security-audit-log' ), 'plugin', 'uninstalled' ),
|
336 |
-
array( 5004, WSAL_LOW, __( 'User upgraded a plugin', 'wp-security-audit-log' ), __( 'Name: %PluginData->Name% %LineBreak% Install location: %PluginFile%', 'wp-security-audit-log' ), 'plugin', 'updated' ),
|
337 |
-
array( 5010, WSAL_LOW, __( 'Plugin created table', 'wp-security-audit-log' ), __( 'Plugin created this table in the database %LineBreak%
|
338 |
-
array( 5011, WSAL_LOW, __( 'Plugin modified table structure', 'wp-security-audit-log' ), __( 'Plugin modified the structure of this table %LineBreak%
|
339 |
-
array( 5012, WSAL_MEDIUM, __( 'Plugin deleted table', 'wp-security-audit-log' ), __( 'Plugin deleted this table from the database %LineBreak%
|
340 |
-
array( 5019, WSAL_MEDIUM, __( 'A plugin created a post', 'wp-security-audit-log' ), __( 'Plugin
|
341 |
-
array( 5025, WSAL_LOW, __( 'A plugin deleted a post', 'wp-security-audit-log' ), __( 'Plugin
|
342 |
array( 2051, WSAL_HIGH, __( 'User changed a file using the plugin editor', 'wp-security-audit-log' ), __( 'Modified a file with the plugin editor %LineBreak% File: %File%', 'wp-security-audit-log' ), 'file', 'modified' ),
|
343 |
),
|
344 |
|
345 |
__( 'Themes', 'wp-security-audit-log' ) => array(
|
346 |
-
array( 5005, WSAL_CRITICAL, __( 'User installed a theme', 'wp-security-audit-log' ), __( '
|
347 |
-
array( 5006, WSAL_HIGH, __( 'User activated a theme', 'wp-security-audit-log' ), __( '
|
348 |
-
array( 5007, WSAL_HIGH, __( 'User uninstalled a theme', 'wp-security-audit-log' ), __( '
|
349 |
-
array( 5013, WSAL_LOW, __( 'Theme created tables', 'wp-security-audit-log' ), __( 'Theme created
|
350 |
-
array( 5014, WSAL_LOW, __( 'Theme modified tables structure', 'wp-security-audit-log' ), __( 'Theme modified the structure of
|
351 |
-
array( 5015, WSAL_MEDIUM, __( 'Theme deleted tables', 'wp-security-audit-log' ), __( 'Theme deleted
|
352 |
-
array( 5031, WSAL_LOW, __( 'User updated a theme', 'wp-security-audit-log' ), __( 'Name: %Theme->Name% %LineBreak% Install location: %Theme->get_template_directory%', 'wp-security-audit-log' ), 'theme', 'updated' ),
|
353 |
array( 2046, WSAL_HIGH, __( 'User changed a file using the theme editor', 'wp-security-audit-log' ), __( 'Modified a file with the theme editor %LineBreak% File: %Theme%/%File%', 'wp-security-audit-log' ), 'file', 'modified' ),
|
354 |
),
|
355 |
|
356 |
__( 'Themes on Multisite', 'wp-security-audit-log' ) => array(
|
357 |
-
array( 5008, WSAL_HIGH, __( 'Activated theme on network', 'wp-security-audit-log' ), __( 'Network activated the theme %Theme->Name% %LineBreak% Install location: %Theme->get_template_directory%', 'wp-security-audit-log' ), 'theme', 'activated' ),
|
358 |
-
array( 5009, WSAL_MEDIUM, __( 'Deactivated theme from network', 'wp-security-audit-log' ), __( 'Network deactivated the theme %Theme->Name% %LineBreak% Install location: %Theme->get_template_directory%', 'wp-security-audit-log' ), 'theme', 'deactivated' ),
|
359 |
),
|
360 |
|
361 |
__( 'Database Events', 'wp-security-audit-log' ) => array(
|
@@ -377,34 +379,52 @@ function wsaldefaults_wsal_init() {
|
|
377 |
array( 0004, E_CRITICAL, __( 'PHP exception', 'wp-security-audit-log' ), __( '%Message%.', 'wp-security-audit-log' ) ),
|
378 |
array( 0005, E_CRITICAL, __( 'PHP shutdown error', 'wp-security-audit-log' ), __( '%Message%.', 'wp-security-audit-log' ) ),
|
379 |
array( 6004, WSAL_MEDIUM, __( 'WordPress was updated', 'wp-security-audit-log' ), __( 'Updated WordPress %LineBreak% Previous version: %OldVersion% %LineBreak% New version: %NewVersion%', 'wp-security-audit-log' ), 'system', 'updated' ),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
380 |
array( 9999, E_CRITICAL, __( 'Advertising Extensions', 'wp-security-audit-log' ), __( '%PromoName% %PromoMessage%', 'wp-security-audit-log' ) ),
|
381 |
),
|
382 |
|
383 |
__( 'Activity log plugin', 'wp-security-audit-log' ) => array(
|
384 |
-
array( 6000, WSAL_INFORMATIONAL, __( 'Events automatically pruned by system', 'wp-security-audit-log' ), __( 'System automatically deleted %EventCount%
|
385 |
-
array( 6006, WSAL_MEDIUM, __( 'Reset the plugin\'s settings to default', 'wp-security-audit-log' ), __( 'Reset the
|
386 |
array( 6034, WSAL_CRITICAL, __( 'Purged the activity log', 'wp-security-audit-log' ), __( 'Purged the activity log', 'wp-security-audit-log' ), 'wp-activity-log', 'deleted' ),
|
387 |
-
|
388 |
),
|
389 |
|
390 |
__( 'WordPress Site Settings', 'wp-security-audit-log' ) => array(
|
391 |
-
array( 6001, WSAL_CRITICAL, __( 'Option Anyone Can Register in WordPress settings changed', 'wp-security-audit-log' ), __( 'The
|
392 |
-
array( 6002, WSAL_CRITICAL, __( 'New User Default Role changed', 'wp-security-audit-log' ), __( 'Changed the
|
393 |
-
array( 6003, WSAL_CRITICAL, __( 'WordPress Administrator Notification email changed', 'wp-security-audit-log' ), __( '
|
394 |
array( 6005, WSAL_HIGH, __( 'User changes the WordPress Permalinks', 'wp-security-audit-log' ), __( 'Changed the WordPress permalinks %LineBreak% Previous permalinks: %OldPattern% %LineBreak% New permalinks: %NewPattern%', 'wp-security-audit-log' ), 'system-setting', 'modified' ),
|
395 |
-
array( 6008, WSAL_INFORMATIONAL, __( 'Enabled/Disabled the option Discourage search engines from indexing this site', 'wp-security-audit-log' ), __( 'Discourage search engines from indexing this site
|
396 |
array( 6009, WSAL_MEDIUM, __( 'Enabled/Disabled comments on all the website', 'wp-security-audit-log' ), __( 'Comments on the website', 'wp-security-audit-log' ), 'system-setting', 'enabled' ),
|
397 |
-
|
398 |
-
array(
|
399 |
-
array(
|
400 |
-
array(
|
401 |
-
array(
|
402 |
-
array(
|
403 |
-
array(
|
404 |
-
array(
|
405 |
-
array(
|
406 |
-
array(
|
407 |
-
array(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
408 |
),
|
409 |
),
|
410 |
|
@@ -416,6 +436,11 @@ function wsaldefaults_wsal_init() {
|
|
416 |
array( 7003, WSAL_HIGH, __( 'Deactivated site has been activated', 'wp-security-audit-log' ), __( 'Activated the site: %SiteName% %LineBreak% URL: %BlogURL%', 'wp-security-audit-log' ), 'multisite-network', 'activated' ),
|
417 |
array( 7004, WSAL_HIGH, __( 'Site has been deactivated', 'wp-security-audit-log' ), __( 'Deactivated the site: %SiteName% %LineBreak% URL: %BlogURL%', 'wp-security-audit-log' ), 'multisite-network', 'deactivated' ),
|
418 |
array( 7005, WSAL_HIGH, __( 'Existing site deleted from network', 'wp-security-audit-log' ), __( 'The site: %SiteName% %LineBreak% URL: %BlogURL%', 'wp-security-audit-log' ), 'multisite-network', 'deleted' ),
|
|
|
|
|
|
|
|
|
|
|
419 |
array( 7012, WSAL_HIGH, __( 'Allow new registrations settings changed', 'wp-security-audit-log' ), __( 'Changed the <strong>Allow new registrations</strong> settings %LineBreak% Previous setting: %previous_setting% %LineBreak% New setting: %new_setting%', 'wp-security-audit-log' ), 'multisite-network', 'modified' ),
|
420 |
),
|
421 |
),
|
@@ -435,7 +460,7 @@ function wsaldefaults_wsal_init() {
|
|
435 |
}
|
436 |
|
437 |
// Load Custom alerts.
|
438 |
-
|
439 |
}
|
440 |
|
441 |
add_action( 'init', 'wsaldefaults_wsal_init', 5 );
|
21 |
defined( 'E_CRITICAL' ) || define( 'E_CRITICAL', 'E_CRITICAL' );
|
22 |
|
23 |
/**
|
24 |
+
* Gets an array of directories to loop through to add custom alerts.
|
25 |
+
*
|
26 |
+
* Passed through a filter so other plugins or code can add own custom
|
27 |
+
* alerts files by adding the containing directory to this array.
|
28 |
+
*
|
29 |
+
* @since 3.5.1 - Added the `wsal_custom_alerts_dirs` filter.
|
30 |
*
|
31 |
* @param WpSecurityAuditLog $wsal - Instance of main plugin.
|
32 |
*/
|
33 |
+
function wsal_load_include_custom_files( $wsal ) {
|
34 |
+
$paths = apply_filters( 'wsal_custom_alerts_dirs', array() );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
foreach ( $paths as $inc_path ) {
|
36 |
// Check directory.
|
37 |
if ( is_dir( $inc_path ) && is_readable( $inc_path ) ) {
|
78 |
array(
|
79 |
__( 'Users Logins & Sessions Events', 'wp-security-audit-log' ) => array(
|
80 |
__( 'User Activity', 'wp-security-audit-log' ) => array(
|
81 |
+
array( 1000, WSAL_LOW, __( 'User logged in', 'wp-security-audit-log' ), __( 'User logged in', 'wp-security-audit-log' ), 'user', 'login' ),
|
82 |
+
array( 1001, WSAL_LOW, __( 'User logged out', 'wp-security-audit-log' ), __( 'User logged out', 'wp-security-audit-log' ), 'user', 'logout' ),
|
83 |
+
array( 1002, WSAL_MEDIUM, __( 'Login failed', 'wp-security-audit-log' ), __( '%Attempts% failed login(s)', 'wp-security-audit-log' ), 'user', 'failed-login' ),
|
84 |
array( 1003, WSAL_LOW, __( 'Login failed / non existing user', 'wp-security-audit-log' ), __( '%Attempts% failed login(s) %LineBreak% %LogFileText%', 'wp-security-audit-log' ), 'system', 'failed-login' ),
|
85 |
array( 1004, WSAL_MEDIUM, __( 'Login blocked', 'wp-security-audit-log' ), __( 'Login blocked because other session(s) already exist for this user. %LineBreak% IP address: %ClientIP%', 'wp-security-audit-log' ), 'user', 'blocked' ),
|
86 |
array( 1005, WSAL_LOW, __( 'User logged in with existing session(s)', 'wp-security-audit-log' ), __( 'User logged in. There are other session(s) using the same username logged in from these IP address(es): %IPAddress%', 'wp-security-audit-log' ), 'user', 'login' ),
|
87 |
array( 1006, WSAL_MEDIUM, __( 'User logged out all other sessions with the same username', 'wp-security-audit-log' ), __( 'Logged out all other sessions with the same user.', 'wp-security-audit-log' ), 'user', 'logout' ),
|
88 |
+
array( 1007, WSAL_MEDIUM, __( 'User session destroyed and logged out', 'wp-security-audit-log' ), __( 'Terminated the session of another user. %LineBreak% User: %TargetUserName% %LineBreak% Role: %TargetUserRole% %LineBreak% Session ID: %TargetSessionID%', 'wp-security-audit-log' ), 'user', 'logout' ),
|
89 |
array( 1008, WSAL_MEDIUM, __( 'Switched to another user', 'wp-security-audit-log' ), __( 'Switched to another user. %LineBreak% User: %TargetUserName% %LineBreak% Role: %TargetUserRole%', 'wp-security-audit-log' ), 'user', 'login' ),
|
90 |
array( 2010, WSAL_MEDIUM, __( 'User uploaded file from Uploads directory', 'wp-security-audit-log' ), __( 'Filename: %FileName% %LineBreak% Directory: %FilePath%', 'wp-security-audit-log' ), 'file', 'uploaded' ),
|
91 |
array( 2011, WSAL_LOW, __( 'User deleted file from Uploads directory', 'wp-security-audit-log' ), __( 'Filename: %FileName% %LineBreak% Directory: %FilePath%', 'wp-security-audit-log' ), 'file', 'deleted' ),
|
92 |
+
array( 1010, WSAL_INFORMATIONAL, __( 'User requested a password reset', 'wp-security-audit-log' ), __( 'User requested a password reset. This does not mean that the password was changed.', 'wp-security-audit-log' ), 'user', 'submitted' ),
|
93 |
),
|
94 |
),
|
95 |
|
96 |
__( 'Content & Comments', 'wp-security-audit-log' ) => array(
|
97 |
__( 'Content', 'wp-security-audit-log' ) => array(
|
98 |
+
array( 2000, WSAL_INFORMATIONAL, __( 'User created a new post and saved it as draft', 'wp-security-audit-log' ), __( 'Created the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%', 'wp-security-audit-log' ), 'post', 'created' ),
|
99 |
+
array( 2001, WSAL_LOW, __( 'User published a post', 'wp-security-audit-log' ), __( 'Published the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%', 'wp-security-audit-log' ), 'post', 'published' ),
|
100 |
+
array( 2002, WSAL_LOW, __( 'User modified a post', 'wp-security-audit-log' ), __( 'Modified the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%', 'wp-security-audit-log' ), 'post', 'modified' ),
|
101 |
+
array( 2008, WSAL_MEDIUM, __( 'User permanently deleted a post from the trash', 'wp-security-audit-log' ), __( 'Permanently deleted the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus%', 'wp-security-audit-log' ), 'post', 'deleted' ),
|
102 |
+
array( 2012, WSAL_MEDIUM, __( 'User moved a post to the trash', 'wp-security-audit-log' ), __( 'Moved the post %PostTitle% to trash %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %PostUrlIfPlublished%', 'wp-security-audit-log' ), 'post', 'deleted' ),
|
103 |
+
array( 2014, WSAL_LOW, __( 'User restored a post from trash', 'wp-security-audit-log' ), __( 'Restored the post %PostTitle% from trash %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%', 'wp-security-audit-log' ), 'post', 'restored' ),
|
104 |
+
array( 2017, WSAL_INFORMATIONAL, __( 'User changed post URL', 'wp-security-audit-log' ), __( 'Changed the URL of the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Previous URL: %OldUrl% %LineBreak% New URL: %NewUrl% %LineBreak% %EditorLinkPost%', 'wp-security-audit-log' ), 'post', 'modified' ),
|
105 |
+
array( 2019, WSAL_INFORMATIONAL, __( 'User changed post author', 'wp-security-audit-log' ), __( 'Changed the author of the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Previous author: %OldAuthor% %LineBreak% New author: %NewAuthor% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%.', 'wp-security-audit-log' ), 'post', 'modified' ),
|
106 |
+
array( 2021, WSAL_MEDIUM, __( 'User changed post status', 'wp-security-audit-log' ), __( 'Changed the status of the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Previous status: %OldStatus% %LineBreak% New status: %NewStatus% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%', 'wp-security-audit-log' ), 'post', 'modified' ),
|
107 |
+
array( 2025, WSAL_LOW, __( 'User changed the visibility of a post', 'wp-security-audit-log' ), __( 'Changed the visibility of the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Previous visibility status: %OldVisibility% %LineBreak% New visibility status: %NewVisibility% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%', 'wp-security-audit-log' ), 'post', 'modified' ),
|
108 |
+
array( 2027, WSAL_INFORMATIONAL, __( 'User changed the date of a post', 'wp-security-audit-log' ), __( 'Changed the date of the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Previous date: %OldDate% %LineBreak% New date: %NewDate% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%', 'wp-security-audit-log' ), 'post', 'modified' ),
|
109 |
+
array( 2047, WSAL_LOW, __( 'User changed the parent of a page', 'wp-security-audit-log' ), __( 'Changed the parent of the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Previous parent: %OldParentName% %LineBreak% New parent: %NewParentName% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%', 'wp-security-audit-log' ), 'post', 'modified' ),
|
110 |
+
array( 2048, WSAL_LOW, __( 'User changed the template of a page', 'wp-security-audit-log' ), __( 'Changed the template of the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Previous template: %OldTemplate% %LineBreak% New template: %NewTemplate% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%', 'wp-security-audit-log' ), 'post', 'modified' ),
|
111 |
+
array( 2049, WSAL_INFORMATIONAL, __( 'User set a post as sticky', 'wp-security-audit-log' ), __( 'Set the post %PostTitle% as sticky %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%', 'wp-security-audit-log' ), 'post', 'modified' ),
|
112 |
+
array( 2050, WSAL_INFORMATIONAL, __( 'User removed post from sticky', 'wp-security-audit-log' ), __( 'Removed the post %PostTitle% from sticky %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%', 'wp-security-audit-log' ), 'post', 'modified' ),
|
113 |
+
array( 2065, WSAL_LOW, __( 'User modified the content of a post', 'wp-security-audit-log' ), __( 'Modified the content of the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% %RevisionLink% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%', 'wp-security-audit-log' ), 'post', 'modified' ),
|
114 |
+
array( 2073, WSAL_INFORMATIONAL, __( 'User submitted a post for review', 'wp-security-audit-log' ), __( 'Submitted the post %PostTitle% for review %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%', 'wp-security-audit-log' ), 'post', 'modified' ),
|
115 |
+
array( 2074, WSAL_LOW, __( 'User scheduled a post', 'wp-security-audit-log' ), __( 'Scheduled the post %PostTitle% to be published on %PublishingDate% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%', 'wp-security-audit-log' ), 'post', 'modified' ),
|
116 |
+
array( 2086, WSAL_INFORMATIONAL, __( 'User changed title of a post', 'wp-security-audit-log' ), __( 'Changed the title of the post %OldTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% New title: %NewTitle% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%', 'wp-security-audit-log' ), 'post', 'modified' ),
|
117 |
+
array( 2100, WSAL_INFORMATIONAL, __( 'User opened a post in the editor', 'wp-security-audit-log' ), __( 'Opened the post %PostTitle% in the editor %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%', 'wp-security-audit-log' ), 'post', 'opened' ),
|
118 |
+
array( 2101, WSAL_INFORMATIONAL, __( 'User viewed a post', 'wp-security-audit-log' ), __( 'Viewed the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% URL: %PostUrl% %LineBreak% %EditorLinkPost%', 'wp-security-audit-log' ), 'post', 'viewed' ),
|
119 |
+
array( 2111, WSAL_LOW, __( 'User enabled/disabled comments in a post', 'wp-security-audit-log' ), __( 'The comments in the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%', 'wp-security-audit-log' ), 'post', 'enabled' ),
|
120 |
+
array( 2112, WSAL_LOW, __( 'User enabled/disabled trackbacks and pingbacks in a post', 'wp-security-audit-log' ), __( 'Pingbacks and Trackbacks in the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%', 'wp-security-audit-log' ), 'post', 'enabled' ),
|
121 |
+
array( 2129, WSAL_INFORMATIONAL, __( 'User updated the excerpt in a post', 'wp-security-audit-log' ), __( 'The excerpt of the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Previous excerpt entry: %old_post_excerpt% %LineBreak% New excerpt entry: %post_excerpt% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%', 'wp-security-audit-log' ), 'post', 'modified' ),
|
122 |
+
array( 2130, WSAL_INFORMATIONAL, __( 'User updated the featured image in a post', 'wp-security-audit-log' ), __( 'The featured image of the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Previous image: %previous_image% %LineBreak% New image: %new_image% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%', 'wp-security-audit-log' ), 'post', 'modified' ),
|
123 |
),
|
124 |
|
125 |
__( 'Tags', 'wp-security-audit-log' ) => array(
|
127 |
array( 2120, WSAL_INFORMATIONAL, __( 'User removed post tag', 'wp-security-audit-log' ), __( 'Removed tag(s) from the post %PostTitle% %LineBreak% ID: %PostID% %LineBreak% Type: %PostType% %LineBreak% Status: %PostStatus% %LineBreak% Removed tag(s): %tag% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%', 'wp-security-audit-log' ), 'post', 'modified' ),
|
128 |
array( 2121, WSAL_INFORMATIONAL, __( 'User created new tag', 'wp-security-audit-log' ), __( 'Created the tag %TagName% %LineBreak% Slug: %Slug% %LineBreak% %TagLink%', 'wp-security-audit-log' ), 'tag', 'created' ),
|
129 |
array( 2122, WSAL_LOW, __( 'User deleted tag', 'wp-security-audit-log' ), __( 'Deleted the tag %TagName% %LineBreak% Slug: %Slug%', 'wp-security-audit-log' ), 'tag', 'deleted' ),
|
130 |
+
array( 2123, WSAL_INFORMATIONAL, __( 'User renamed tag', 'wp-security-audit-log' ), __( 'Previous name: %old_name% %LineBreak% New name: %new_name% %LineBreak% Slug: %Slug% %LineBreak% %TagLink%', 'wp-security-audit-log' ), 'tag', 'renamed' ),
|
131 |
array( 2124, WSAL_INFORMATIONAL, __( 'User changed tag slug', 'wp-security-audit-log' ), __( 'Changed the slug of the tag %tag% %LineBreak% Previous slug: %old_slug% %LineBreak% New slug: %new_slug% %LineBreak% %TagLink%', 'wp-security-audit-log' ), 'tag', 'modified' ),
|
132 |
array( 2125, WSAL_INFORMATIONAL, __( 'User changed tag description', 'wp-security-audit-log' ), __( 'Changed the description of the tag %tag% %LineBreak% Slug: %Slug% %LineBreak% Previous description: %old_desc% %LineBreak% New description: %new_desc% %LineBreak% %TagLink%', 'wp-security-audit-log' ), 'tag', 'modified' ),
|
133 |
),
|
134 |
|
135 |
__( 'Categories', 'wp-security-audit-log' ) => array(
|
136 |
+
array( 2016, WSAL_LOW, __( 'User changed post category', 'wp-security-audit-log' ), __( 'Changed the category of the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Previous category(ies): %OldCategories% %LineBreak% New category(ies): %NewCategories% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%', 'wp-security-audit-log' ), 'post', 'modified' ),
|
137 |
array( 2023, WSAL_MEDIUM, __( 'User created new category', 'wp-security-audit-log' ), __( 'Created the category %CategoryName% %LineBreak% Slug: %Slug% %LineBreak% %CategoryLink%', 'wp-security-audit-log' ), 'category', 'created' ),
|
138 |
array( 2024, WSAL_MEDIUM, __( 'User deleted category', 'wp-security-audit-log' ), __( 'Deleted the category %CategoryName% %LineBreak% Slug: %Slug%', 'wp-security-audit-log' ), 'category', 'deleted' ),
|
139 |
array( 2052, WSAL_LOW, __( 'Changed the parent of a category', 'wp-security-audit-log' ), __( 'Changed the parent of the category %CategoryName% %LineBreak% Slug: %Slug% %LineBreak% Previous parent: %OldParent% %LineBreak% New parent: %NewParent% %LineBreak% %CategoryLink%', 'wp-security-audit-log' ), 'category', 'modified' ),
|
140 |
+
array( 2127, WSAL_LOW, __( 'User changed category name', 'wp-security-audit-log' ), __( 'Previous name: %old_name% %LineBreak% New name: %new_name% %LineBreak% Slug: %slug% %LineBreak% %cat_link%', 'wp-security-audit-log' ), 'category', 'renamed' ),
|
141 |
array( 2128, WSAL_LOW, __( 'User changed category slug', 'wp-security-audit-log' ), __( 'Changed the slug of the category: %CategoryName% %LineBreak% Previous slug: %old_slug% %LineBreak% New slug: %new_slug% %LineBreak% %cat_link%', 'wp-security-audit-log' ), 'category', 'modified' ),
|
142 |
),
|
143 |
|
144 |
__( 'Custom Fields', 'wp-security-audit-log' ) => array(
|
145 |
+
array( 2053, WSAL_LOW, __( 'User created a custom field for a post', 'wp-security-audit-log' ), __( 'Created the new custom field %MetaKey% in the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Custom field value: %MetaValue% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost% %LineBreak% %MetaLink%', 'wp-security-audit-log' ), 'post', 'modified' ),
|
146 |
+
array( 2054, WSAL_LOW, __( 'User updated a custom field value for a post', 'wp-security-audit-log' ), __( 'Modified the value of the custom field %MetaKey% in the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Previous custom field value: %MetaValueOld% %LineBreak% New custom field value: %MetaValueNew% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost% %LineBreak% %MetaLink%.', 'wp-security-audit-log' ), 'custom-field', 'modified' ),
|
147 |
+
array( 2055, WSAL_MEDIUM, __( 'User deleted a custom field from a post', 'wp-security-audit-log' ), __( 'Deleted the custom field %MetaKey% from the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%', 'wp-security-audit-log' ), 'custom-field', 'deleted' ),
|
148 |
+
array( 2062, WSAL_LOW, __( 'User updated a custom field name for a post', 'wp-security-audit-log' ), __( 'Previous custom field name: %MetaKeyOld% %LineBreak% New custom field name: %MetaKeyNew% %LineBreak% Post: %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%', 'wp-security-audit-log' ), 'custom-field', 'renamed' ),
|
149 |
),
|
150 |
|
151 |
__( 'Custom Fields (ACF)', 'wp-security-audit-log' ) => array(
|
152 |
array( 2131,
|
153 |
WSAL_LOW,
|
154 |
__( 'User added relationship to a custom field value for a post', 'mwp-al-ext' ),
|
155 |
+
__( 'Added relationships to the custom field %MetaKey% in the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% New relationships: %Relationships% %LineBreak% %LineBreak% %EditorLinkPost% %LineBreak% %MetaLink%.', 'mwp-al-ext' ),
|
156 |
'custom-field',
|
157 |
'modified'
|
158 |
),
|
159 |
array( 2132,
|
160 |
WSAL_LOW,
|
161 |
__( 'User removed relationship from a custom field value for a post', 'mwp-al-ext' ),
|
162 |
+
__( 'Removed relationships from the custom field %MetaKey% in the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Removed relationships: %Relationships% %LineBreak% %LineBreak% %EditorLinkPost% %LineBreak% %MetaLink%.', 'mwp-al-ext' ),
|
163 |
'custom-field',
|
164 |
'modified'
|
165 |
),
|
169 |
* Alerts: Comments
|
170 |
*/
|
171 |
__( 'Comments', 'wp-security-audit-log' ) => array(
|
172 |
+
array( 2090, WSAL_INFORMATIONAL, __( 'User approved a comment', 'wp-security-audit-log' ), __( 'Approved the comment posted by %Author% on the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Comment ID: %CommentID% %PostUrlIfPlublished% %LineBreak% %CommentLink%', 'wp-security-audit-log' ), 'comment', 'approved' ),
|
173 |
+
array( 2091, WSAL_INFORMATIONAL, __( 'User unapproved a comment', 'wp-security-audit-log' ), __( 'Unapproved the comment posted by %Author% on the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Comment ID: %CommentID% %PostUrlIfPlublished% %LineBreak% %CommentLink%', 'wp-security-audit-log' ), 'comment', 'unapproved' ),
|
174 |
+
array( 2092, WSAL_INFORMATIONAL, __( 'User replied to a comment', 'wp-security-audit-log' ), __( 'Replied to the comment posted by %Author% on the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Comment ID: %CommentID% %PostUrlIfPlublished% %LineBreak% %CommentLink%', 'wp-security-audit-log' ), 'comment', 'created' ),
|
175 |
+
array( 2093, WSAL_LOW, __( 'User edited a comment', 'wp-security-audit-log' ), __( 'Edited the comment posted by %Author% on the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Comment ID: %CommentID% %PostUrlIfPlublished% %LineBreak% %CommentLink%', 'wp-security-audit-log' ), 'comment', 'modified' ),
|
176 |
+
array( 2094, WSAL_INFORMATIONAL, __( 'User marked a comment as Spam', 'wp-security-audit-log' ), __( 'Marked the comment posted by %Author% on the post %PostTitle% as spam %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Comment ID: %CommentID% %PostUrlIfPlublished% %LineBreak% %CommentLink%', 'wp-security-audit-log' ), 'comment', 'unapproved' ),
|
177 |
+
array( 2095, WSAL_LOW, __( 'User marked a comment as Not Spam', 'wp-security-audit-log' ), __( 'Marked the comment posted by %Author% on the post %PostTitle% as not spam %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Comment ID: %CommentID% %PostUrlIfPlublished% %LineBreak% %CommentLink%', 'wp-security-audit-log' ), 'comment', 'approved' ),
|
178 |
+
array( 2096, WSAL_LOW, __( 'User moved a comment to trash', 'wp-security-audit-log' ), __( 'Moved the comment posted by %Author% on the post %PostTitle% to trash %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Comment ID: %CommentID% %PostUrlIfPlublished% %LineBreak% %CommentLink%', 'wp-security-audit-log' ), 'comment', 'deleted' ),
|
179 |
+
array( 2097, WSAL_INFORMATIONAL, __( 'User restored a comment from the trash', 'wp-security-audit-log' ), __( 'Restored the comment posted by %Author% on the post %PostTitle% from trash %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Comment ID: %CommentID% %PostUrlIfPlublished% %LineBreak% %CommentLink%', 'wp-security-audit-log' ), 'comment', 'restored' ),
|
180 |
+
array( 2098, WSAL_LOW, __( 'User permanently deleted a comment', 'wp-security-audit-log' ), __( 'Permanently deleted the comment posted by %Author% on the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Comment ID: %CommentID% %PostUrlIfPlublished%', 'wp-security-audit-log' ), 'comment', 'deleted' ),
|
181 |
+
array( 2099, WSAL_INFORMATIONAL, __( 'User posted a comment', 'wp-security-audit-log' ), __( 'Posted a comment on the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Comment ID: %CommentID% %PostUrlIfPlublished% %LineBreak% %CommentLink%', 'wp-security-audit-log' ), 'comment', 'created' ),
|
182 |
/**
|
183 |
* IMPORTANT: This alert is deprecated but should not be
|
184 |
* removed from the definitions for backwards compatibility.
|
185 |
*/
|
186 |
+
array( 2126, WSAL_INFORMATIONAL, __( 'Visitor posted a comment', 'wp-security-audit-log' ), __( 'Posted a comment on the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Comment ID: %CommentID% %PostUrlIfPlublished% %LineBreak% %CommentLink%', 'wp-security-audit-log' ), 'comment', 'created' ),
|
187 |
),
|
188 |
|
189 |
/**
|
190 |
* Alerts: Widgets
|
191 |
*/
|
192 |
__( 'Widgets', 'wp-security-audit-log' ) => array(
|
193 |
+
array( 2042, WSAL_MEDIUM, __( 'User added a new widget', 'wp-security-audit-log' ), __( 'Added a new %WidgetName% widget in %Sidebar%.', 'wp-security-audit-log' ), 'widget', 'added' ),
|
194 |
array( 2043, WSAL_HIGH, __( 'User modified a widget', 'wp-security-audit-log' ), __( 'Modified the %WidgetName% widget in %Sidebar%.', 'wp-security-audit-log' ), 'widget', 'modified' ),
|
195 |
array( 2044, WSAL_MEDIUM, __( 'User deleted widget', 'wp-security-audit-log' ), __( 'Deleted the %WidgetName% widget from %Sidebar%.', 'wp-security-audit-log' ), 'widget', 'deleted' ),
|
196 |
array( 2045, WSAL_LOW, __( 'User moved widget', 'wp-security-audit-log' ), __( 'Moved the %WidgetName% widget %LineBreak% From: %OldSidebar% %LineBreak% To: %NewSidebar%', 'wp-security-audit-log' ), 'widget', 'modified' ),
|
201 |
* Alerts: Menus
|
202 |
*/
|
203 |
__( 'Menus', 'wp-security-audit-log' ) => array(
|
204 |
+
array( 2078, WSAL_LOW, __( 'User created new menu', 'wp-security-audit-log' ), __( 'New menu called %MenuName% %MenuUrl%', 'wp-security-audit-log' ), 'menu', 'created' ),
|
205 |
+
array( 2079, WSAL_LOW, __( 'User added content to a menu', 'wp-security-audit-log' ), __( 'Added new item to the menu %MenuName% %LineBreak% Item type: %ContentType% %LineBreak% Item name: %ContentName% %MenuUrl%', 'wp-security-audit-log' ), 'menu', 'modified' ),
|
206 |
+
array( 2080, WSAL_LOW, __( 'User removed content from a menu', 'wp-security-audit-log' ), __( 'Removed item from the menu %MenuName% %LineBreak% Item type: %ContentType% %LineBreak% Item name: %ContentName% %MenuUrl%', 'wp-security-audit-log' ), 'menu', 'modified' ),
|
207 |
array( 2081, WSAL_MEDIUM, __( 'User deleted menu', 'wp-security-audit-log' ), __( 'Deleted the menu %MenuName%', 'wp-security-audit-log' ), 'menu', 'deleted' ),
|
208 |
+
array( 2082, WSAL_LOW, __( 'User changed menu setting', 'wp-security-audit-log' ), __( 'The setting in the %MenuName% %LineBreak% Setting: %MenuSetting% %MenuUrl%', 'wp-security-audit-log' ), 'menu', 'enabled' ),
|
209 |
+
array( 2083, WSAL_LOW, __( 'User modified content in a menu', 'wp-security-audit-log' ), __( 'Modified an item in the menu %MenuName% %LineBreak% Item type: %ContentType% %LineBreak% Item name: %ContentName% %MenuUrl%', 'wp-security-audit-log' ), 'menu', 'modified' ),
|
210 |
+
array( 2084, WSAL_LOW, __( 'User changed name of a menu', 'wp-security-audit-log' ), __( 'Previous name: %OldMenuName% %LineBreak% New name: %MenuName% %MenuUrl%', 'wp-security-audit-log' ), 'menu', 'renamed' ),
|
211 |
+
array( 2085, WSAL_LOW, __( 'User changed order of the objects in a menu', 'wp-security-audit-log' ), __( 'Changed the order of the items in the menu %MenuName% %MenuUrl%', 'wp-security-audit-log' ), 'menu', 'modified' ),
|
212 |
+
array( 2089, WSAL_LOW, __( 'User moved objects as a sub-item', 'wp-security-audit-log' ), __( 'Menu name: %MenuName% %LineBreak% Moved item %ItemName% as a sub-item of %ParentName% %MenuUrl%', 'wp-security-audit-log' ), 'menu', 'modified' ),
|
213 |
),
|
214 |
|
215 |
/**
|
297 |
|
298 |
__( 'User Accounts', 'wp-security-audit-log' ) => array(
|
299 |
__( 'User Profiles', 'wp-security-audit-log' ) => array(
|
300 |
+
array( 4000, WSAL_CRITICAL, __( 'New user was created on WordPress', 'wp-security-audit-log' ), __( 'New user created via registration %LineBreak% User: %NewUserData->Username% %LineBreak% Role: %NewUserData->Roles% %LineBreak% %EditUserLink%', 'wp-security-audit-log' ), 'user', 'created' ),
|
301 |
array( 4001, WSAL_CRITICAL, __( 'User created another WordPress user', 'wp-security-audit-log' ), __( 'New user: %NewUserData->Username% %LineBreak% Role: %NewUserData->Roles% %LineBreak% First name: %NewUserData->FirstName% %LineBreak% Last name: %NewUserData->LastName% %LineBreak% %EditUserLink%', 'wp-security-audit-log' ), 'user', 'created' ),
|
302 |
+
array( 4002, WSAL_CRITICAL, __( 'The role of a user was changed by another WordPress user', 'wp-security-audit-log' ), __( 'Changed the role of user %TargetUsername% %LineBreak% Previous role: %OldRole% %LineBreak% New role: %NewRole% %LineBreak% First name: %FirstName% %LineBreak% Last name: %LastName% %LineBreak% %EditUserLink%', 'wp-security-audit-log' ), 'user', 'modified' ),
|
303 |
+
array( 4003, WSAL_HIGH, __( 'User has changed his or her password', 'wp-security-audit-log' ), __( 'Changed the password %LineBreak% Role: %TargetUserData->Roles% %LineBreak% First name: %TargetUserData->FirstName% %LineBreak% Last name: %TargetUserData->LastName% %LineBreak% %EditUserLink%', 'wp-security-audit-log' ), 'user', 'modified' ),
|
304 |
array( 4004, WSAL_HIGH, __( 'User changed another user\'s password', 'wp-security-audit-log' ), __( 'Changed the password of the user %TargetUserData->Username% %LineBreak% Role: %TargetUserData->Roles% %LineBreak% First name: %TargetUserData->FirstName% %LineBreak% Last name: %TargetUserData->LastName% %LineBreak% %EditUserLink%', 'wp-security-audit-log' ), 'user', 'modified' ),
|
305 |
+
array( 4005, WSAL_MEDIUM, __( 'User changed his or her email address', 'wp-security-audit-log' ), __( 'Changed the email address %LineBreak% Role: %Roles% %LineBreak% First name: %FirstName% %LineBreak% Last name: %LastName% %LineBreak% Previous email address: %OldEmail% %LineBreak% New email address: %NewEmail% %LineBreak% %EditUserLink%', 'wp-security-audit-log' ), 'user', 'modified' ),
|
306 |
+
array( 4006, WSAL_MEDIUM, __( 'User changed another user\'s email address', 'wp-security-audit-log' ), __( 'Changed the email address of the user %TargetUsername% %LineBreak% Role: %Roles% %LineBreak% First name: %FirstName% %LineBreak% Last name: %LastName% %LineBreak% Previous email address: %OldEmail% %LineBreak% New email address: %NewEmail% %LineBreak% %EditUserLink%', 'wp-security-audit-log' ), 'user', 'modified' ),
|
307 |
array( 4007, WSAL_HIGH, __( 'User was deleted by another user', 'wp-security-audit-log' ), __( 'User: %TargetUserData->Username% %LineBreak% Role: %TargetUserData->Roles% %LineBreak% First name: %NewUserData->FirstName% %LineBreak% Last name: %NewUserData->LastName%', 'wp-security-audit-log' ), 'user', 'deleted' ),
|
308 |
array( 4014, WSAL_INFORMATIONAL, __( 'User opened the profile page of another user', 'wp-security-audit-log' ), __( 'The profile page of the user %TargetUsername% %LineBreak% Role: %Roles% %LineBreak% First name: %FirstName% %LineBreak% Last name: %LastName% %LineBreak% %EditUserLink%', 'wp-security-audit-log' ), 'user', 'opened' ),
|
309 |
+
array( 4015, WSAL_LOW, __( 'User updated a custom field value for a user', 'wp-security-audit-log' ), __( 'Changed the value of a custom field in the user profile %TargetUsername% %LineBreak% Role: %Roles% %LineBreak% First name: %FirstName% %LineBreak% Last name: %LastName% %LineBreak% Custom field: %custom_field_name% %LineBreak% Previous value: %old_value% %LineBreak% New value: %new_value% %LineBreak% %EditUserLink%', 'wp-security-audit-log' ), 'user', 'modified' ),
|
310 |
+
array( 4016, WSAL_LOW, __( 'User created a custom field value for a user', 'wp-security-audit-log' ), __( 'Created a new custom field in the user profile %TargetUsername% %LineBreak% Role: %Roles% %LineBreak% First name: %FirstName% %LineBreak% Last name: %LastName% %LineBreak% Custom field: %custom_field_name% %LineBreak% Custom field value: %new_value% %LineBreak% %EditUserLink%', 'wp-security-audit-log' ), 'user', 'modified' ),
|
311 |
+
array( 4017, WSAL_INFORMATIONAL, __( 'User changed first name for a user', 'wp-security-audit-log' ), __( 'Changed the first name of the user %TargetUsername% %LineBreak% Role: %Roles% %LineBreak% Previous name: %old_firstname% %LineBreak% New name: %new_firstname% %LineBreak% Last name: %LastName% %LineBreak% %EditUserLink%', 'wp-security-audit-log' ), 'user', 'modified' ),
|
312 |
+
array( 4018, WSAL_INFORMATIONAL, __( 'User changed last name for a user', 'wp-security-audit-log' ), __( 'Changed the last name of the user %TargetUsername% %LineBreak% Role: %Roles% %LineBreak% First name: %FirstName% %LineBreak% Previous last name: %old_lastname% %LineBreak% New last name: %new_lastname% %LineBreak% %EditUserLink%', 'wp-security-audit-log' ), 'user', 'modified' ),
|
313 |
+
array( 4019, WSAL_INFORMATIONAL, __( 'User changed nickname for a user', 'wp-security-audit-log' ), __( 'Changed the nickname of the user %TargetUsername% %LineBreak% Role: %Roles% %LineBreak% First name: %FirstName% %LineBreak% Last name: %LastName% %LineBreak% Previous nickname: %old_nickname% New nickname: %new_nickname% %LineBreak% %EditUserLink%', 'wp-security-audit-log' ), 'user', 'modified' ),
|
314 |
+
array( 4020, WSAL_LOW, __( 'User changed the display name for a user', 'wp-security-audit-log' ), __( 'Changed the display name of the user %TargetUsername% %LineBreak% Role: %Roles% %LineBreak% First name: %FirstName% %LineBreak% Last name: %LastName% %LineBreak% Previous display name: %old_displayname% %LineBreak% New display name: %new_displayname% %LineBreak% %EditUserLink%', 'wp-security-audit-log' ), 'user', 'modified' ),
|
315 |
+
|
316 |
+
array( 4025, WSAL_CRITICAL, __( 'User created an application password', 'wp-security-audit-log' ), __( 'An application password %LineBreak% Role: %roles% %LineBreak% First name: %firstname% %LineBreak% Last name: %lastname% %LineBreak% Application password friendly name: %friendly_name%', 'wp-security-audit-log' ), 'user', 'added' ),
|
317 |
+
array( 4026, WSAL_CRITICAL, __( 'User created an application password', 'wp-security-audit-log' ), __( 'An application password for the user %login% %LineBreak% Role: %roles% %LineBreak% First name: %firstname% %LineBreak% Last name: %lastname% %LineBreak% Application password friendly name: %friendly_name%', 'wp-security-audit-log' ), 'user', 'added' ),
|
318 |
+
|
319 |
+
array( 4027, WSAL_HIGH, __( 'User revoked all application passwords', 'wp-security-audit-log' ), __( 'All application passwords %LineBreak% Role: %roles% %LineBreak% First name: %firstname% %LineBreak% Last name: %lastname%', 'wp-security-audit-log' ), 'user', 'revoked' ),
|
320 |
+
array( 4028, WSAL_HIGH, __( 'User revoked all application passwords for a user', 'wp-security-audit-log' ), __( 'All application passwords from the user %login% %LineBreak% Role: %roles% %LineBreak% First name: %firstname% %LineBreak% Last name: %lastname%', 'wp-security-audit-log' ), 'user', 'revoked' ),
|
321 |
),
|
322 |
|
323 |
__( 'Multisite User Profiles', 'wp-security-audit-log' ) => array(
|
324 |
+
array( 4008, WSAL_CRITICAL, __( 'User granted Super Admin privileges', 'wp-security-audit-log' ), __( 'Granted Super Admin privileges to %TargetUsername% %LineBreak% Role: %Roles% %LineBreak% First name: %FirstName% %LineBreak% Last name: %LastName% %LineBreak% %EditUserLink%', 'wp-security-audit-log' ), 'user', 'modified' ),
|
325 |
+
array( 4009, WSAL_CRITICAL, __( 'User revoked from Super Admin privileges', 'wp-security-audit-log' ), __( 'Revoked Super Admin privileges from %TargetUsername% %LineBreak% Role: %Roles% %LineBreak% First name: %FirstName% %LineBreak% Last name: %LastName% %LineBreak% %EditUserLink%', 'wp-security-audit-log' ), 'user', 'modified' ),
|
326 |
array( 4010, WSAL_MEDIUM, __( 'Existing user added to a site', 'wp-security-audit-log' ), __( 'Added user %TargetUsername% to site: %SiteName% %LineBreak% Role: %TargetUserRole% %LineBreak% First name: %FirstName% %LineBreak% Last name: %LastName% %LineBreak% %EditUserLink%', 'wp-security-audit-log' ), 'user', 'modified' ),
|
327 |
+
array( 4011, WSAL_MEDIUM, __( 'User removed from site', 'wp-security-audit-log' ), __( 'Removed user %TargetUsername% from site: %SiteName% %LineBreak% Site role: %TargetUserRole% %LineBreak% First name: %FirstName% %LineBreak% Last name: %LastName% %LineBreak% %EditUserLink%', 'wp-security-audit-log' ), 'user', 'modified' ),
|
328 |
array( 4012, WSAL_CRITICAL, __( 'New network user created', 'wp-security-audit-log' ), __( 'Created a new network user %NewUserData->Username% %LineBreak% First name: %NewUserData->FirstName% %LineBreak% Last name: %NewUserData->LastName% %LineBreak% %EditUserLink%', 'wp-security-audit-log' ), 'user', 'created' ),
|
329 |
),
|
330 |
),
|
331 |
|
332 |
__( 'Plugins & Themes', 'wp-security-audit-log' ) => array(
|
333 |
__( 'Plugins', 'wp-security-audit-log' ) => array(
|
334 |
+
array( 5000, WSAL_CRITICAL, __( 'User installed a plugin', 'wp-security-audit-log' ), __( 'Name: %Plugin->Name% %LineBreak% Version: %Plugin->Version% %LineBreak% Install location: %Plugin->plugin_dir_path%', 'wp-security-audit-log' ), 'plugin', 'installed' ),
|
335 |
+
array( 5001, WSAL_HIGH, __( 'User activated a WordPress plugin', 'wp-security-audit-log' ), __( 'Name: %PluginData->Name% %LineBreak% Version: %PluginData->Version% %LineBreak% Install location: %PluginFile%', 'wp-security-audit-log' ), 'plugin', 'activated' ),
|
336 |
+
array( 5002, WSAL_HIGH, __( 'User deactivated a WordPress plugin', 'wp-security-audit-log' ), __( 'Name: %PluginData->Name% %LineBreak% Version: %PluginData->Version% %LineBreak% Install location: %PluginFile%', 'wp-security-audit-log' ), 'plugin', 'deactivated' ),
|
337 |
+
array( 5003, WSAL_HIGH, __( 'User uninstalled a plugin', 'wp-security-audit-log' ), __( 'Name: %PluginData->Name% %LineBreak% Version: %PluginData->Version% %LineBreak% Install location: %PluginFile%', 'wp-security-audit-log' ), 'plugin', 'uninstalled' ),
|
338 |
+
array( 5004, WSAL_LOW, __( 'User upgraded a plugin', 'wp-security-audit-log' ), __( 'Name: %PluginData->Name% %LineBreak% Updated version: %PluginData->Version% %LineBreak% Install location: %PluginFile%', 'wp-security-audit-log' ), 'plugin', 'updated' ),
|
339 |
+
array( 5010, WSAL_LOW, __( 'Plugin created table', 'wp-security-audit-log' ), __( 'Plugin created this table in the database %LineBreak% Table: %TableNames% %LineBreak% Plugin: %Plugin->Name%', 'wp-security-audit-log' ), 'database', 'created' ),
|
340 |
+
array( 5011, WSAL_LOW, __( 'Plugin modified table structure', 'wp-security-audit-log' ), __( 'Plugin modified the structure of this table %LineBreak% Table: %TableNames% %LineBreak% Plugin: %Plugin->Name%', 'wp-security-audit-log' ), 'database', 'modified' ),
|
341 |
+
array( 5012, WSAL_MEDIUM, __( 'Plugin deleted table', 'wp-security-audit-log' ), __( 'Plugin deleted this table from the database %LineBreak% Table: %TableNames% %LineBreak% Plugin: %Plugin->Name%', 'wp-security-audit-log' ), 'database', 'deleted' ),
|
342 |
+
array( 5019, WSAL_MEDIUM, __( 'A plugin created a post', 'wp-security-audit-log' ), __( 'Plugin created the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Plugin: %PluginName% %LineBreak% %EditorLinkPage%', 'wp-security-audit-log' ), 'post', 'created' ),
|
343 |
+
array( 5025, WSAL_LOW, __( 'A plugin deleted a post', 'wp-security-audit-log' ), __( 'Plugin deleted the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Plugin: %PluginName%', 'wp-security-audit-log' ), 'post', 'deleted' ),
|
344 |
array( 2051, WSAL_HIGH, __( 'User changed a file using the plugin editor', 'wp-security-audit-log' ), __( 'Modified a file with the plugin editor %LineBreak% File: %File%', 'wp-security-audit-log' ), 'file', 'modified' ),
|
345 |
),
|
346 |
|
347 |
__( 'Themes', 'wp-security-audit-log' ) => array(
|
348 |
+
array( 5005, WSAL_CRITICAL, __( 'User installed a theme', 'wp-security-audit-log' ), __( 'Name: %Theme->Name% %LineBreak% Version: %Theme->Version% %LineBreak% Install location: %Theme->get_template_directory%', 'wp-security-audit-log' ), 'theme', 'installed' ),
|
349 |
+
array( 5006, WSAL_HIGH, __( 'User activated a theme', 'wp-security-audit-log' ), __( 'Name: %Theme->Name% %LineBreak% Version: %Theme->Version% %LineBreak% Install location: %Theme->get_template_directory%', 'wp-security-audit-log' ), 'theme', 'activated' ),
|
350 |
+
array( 5007, WSAL_HIGH, __( 'User uninstalled a theme', 'wp-security-audit-log' ), __( 'Name: %Theme->Name% %LineBreak% Version: %Theme->Version% %LineBreak% Install location: %Theme->get_template_directory%', 'wp-security-audit-log' ), 'theme', 'deleted' ),
|
351 |
+
array( 5013, WSAL_LOW, __( 'Theme created tables', 'wp-security-audit-log' ), __( 'Theme created this table in the database %LineBreak% Table: %TableNames% %LineBreak% Theme: %Theme->Name%', 'wp-security-audit-log' ), 'database', 'created' ),
|
352 |
+
array( 5014, WSAL_LOW, __( 'Theme modified tables structure', 'wp-security-audit-log' ), __( 'Theme modified the structure of this database table %LineBreak% Table: %TableNames% %LineBreak% Theme: %Theme->Name%', 'wp-security-audit-log' ), 'database', 'modified' ),
|
353 |
+
array( 5015, WSAL_MEDIUM, __( 'Theme deleted tables', 'wp-security-audit-log' ), __( 'Theme deleted this table from the database %LineBreak% Tables: %TableNames% %LineBreak% Theme: %Theme->Name%', 'wp-security-audit-log' ), 'database', 'deleted' ),
|
354 |
+
array( 5031, WSAL_LOW, __( 'User updated a theme', 'wp-security-audit-log' ), __( 'Name: %Theme->Name% %LineBreak% New version: %Theme->Version% %LineBreak% Install location: %Theme->get_template_directory%', 'wp-security-audit-log' ), 'theme', 'updated' ),
|
355 |
array( 2046, WSAL_HIGH, __( 'User changed a file using the theme editor', 'wp-security-audit-log' ), __( 'Modified a file with the theme editor %LineBreak% File: %Theme%/%File%', 'wp-security-audit-log' ), 'file', 'modified' ),
|
356 |
),
|
357 |
|
358 |
__( 'Themes on Multisite', 'wp-security-audit-log' ) => array(
|
359 |
+
array( 5008, WSAL_HIGH, __( 'Activated theme on network', 'wp-security-audit-log' ), __( 'Network activated the theme %Theme->Name% %LineBreak% Version: %Theme->Version% %LineBreak% Install location: %Theme->get_template_directory%', 'wp-security-audit-log' ), 'theme', 'activated' ),
|
360 |
+
array( 5009, WSAL_MEDIUM, __( 'Deactivated theme from network', 'wp-security-audit-log' ), __( 'Network deactivated the theme %Theme->Name% %LineBreak% Version: %Theme->Version% %LineBreak% Install location: %Theme->get_template_directory%', 'wp-security-audit-log' ), 'theme', 'deactivated' ),
|
361 |
),
|
362 |
|
363 |
__( 'Database Events', 'wp-security-audit-log' ) => array(
|
379 |
array( 0004, E_CRITICAL, __( 'PHP exception', 'wp-security-audit-log' ), __( '%Message%.', 'wp-security-audit-log' ) ),
|
380 |
array( 0005, E_CRITICAL, __( 'PHP shutdown error', 'wp-security-audit-log' ), __( '%Message%.', 'wp-security-audit-log' ) ),
|
381 |
array( 6004, WSAL_MEDIUM, __( 'WordPress was updated', 'wp-security-audit-log' ), __( 'Updated WordPress %LineBreak% Previous version: %OldVersion% %LineBreak% New version: %NewVersion%', 'wp-security-audit-log' ), 'system', 'updated' ),
|
382 |
+
/**
|
383 |
+
* Alerts: Advertising Extensions
|
384 |
+
*
|
385 |
+
* IMPORTANT: This alert should not be removed from here for backwards compatibility.
|
386 |
+
*
|
387 |
+
* @deprecated 4.2.0
|
388 |
+
*/
|
389 |
array( 9999, E_CRITICAL, __( 'Advertising Extensions', 'wp-security-audit-log' ), __( '%PromoName% %PromoMessage%', 'wp-security-audit-log' ) ),
|
390 |
),
|
391 |
|
392 |
__( 'Activity log plugin', 'wp-security-audit-log' ) => array(
|
393 |
+
array( 6000, WSAL_INFORMATIONAL, __( 'Events automatically pruned by system', 'wp-security-audit-log' ), __( 'System automatically deleted %EventCount% events', 'wp-security-audit-log' ), 'wp-activity-log', 'deleted' ),
|
394 |
+
array( 6006, WSAL_MEDIUM, __( 'Reset the plugin\'s settings to default', 'wp-security-audit-log' ), __( 'Reset the activity log plugin\'s settings to default', 'wp-security-audit-log' ), 'wp-activity-log', 'modified' ),
|
395 |
array( 6034, WSAL_CRITICAL, __( 'Purged the activity log', 'wp-security-audit-log' ), __( 'Purged the activity log', 'wp-security-audit-log' ), 'wp-activity-log', 'deleted' ),
|
396 |
+
array( 6043, WSAL_HIGH, __( 'Some WP Activity Log plugin settings on this site were propagated and overridden from the MainWP dashboard', 'wp-security-audit-log' ), __( 'Some WP Activity Log plugin settings on this site were propagated and overridden from the MainWP dashboard.', 'wp-security-audit-log' ), 'wp-activity-log', 'modified' ),
|
397 |
),
|
398 |
|
399 |
__( 'WordPress Site Settings', 'wp-security-audit-log' ) => array(
|
400 |
+
array( 6001, WSAL_CRITICAL, __( 'Option Anyone Can Register in WordPress settings changed', 'wp-security-audit-log' ), __( 'The <strong>Membership</strong> setting <strong>Anyone can register</strong>', 'wp-security-audit-log' ), 'system-setting', 'enabled' ),
|
401 |
+
array( 6002, WSAL_CRITICAL, __( 'New User Default Role changed', 'wp-security-audit-log' ), __( 'Changed the <strong>New user default role</strong> WordPress setting %LineBreak% Previous role: %OldRole% %LineBreak% New role: %NewRole%', 'wp-security-audit-log' ), 'system-setting', 'modified' ),
|
402 |
+
array( 6003, WSAL_CRITICAL, __( 'WordPress Administrator Notification email changed', 'wp-security-audit-log' ), __( 'Change the <strong>Administrator email address</strong> in the WordPress settings %LineBreak% Previous address %OldEmail% %LineBreak% New address: %NewEmail%', 'wp-security-audit-log' ), 'system-setting', 'modified' ),
|
403 |
array( 6005, WSAL_HIGH, __( 'User changes the WordPress Permalinks', 'wp-security-audit-log' ), __( 'Changed the WordPress permalinks %LineBreak% Previous permalinks: %OldPattern% %LineBreak% New permalinks: %NewPattern%', 'wp-security-audit-log' ), 'system-setting', 'modified' ),
|
404 |
+
array( 6008, WSAL_INFORMATIONAL, __( 'Enabled/Disabled the option Discourage search engines from indexing this site', 'wp-security-audit-log' ), __( 'The <strong>Search engine visibility</strong> in the WordPess settings (Discourage search engines from indexing this site)', 'wp-security-audit-log' ), 'system-setting', 'enabled' ),
|
405 |
array( 6009, WSAL_MEDIUM, __( 'Enabled/Disabled comments on all the website', 'wp-security-audit-log' ), __( 'Comments on the website', 'wp-security-audit-log' ), 'system-setting', 'enabled' ),
|
406 |
+
|
407 |
+
array( 6010, WSAL_MEDIUM, __( 'Enabled/Disabled the option Comment author must fill out name and email', 'wp-security-audit-log' ), __( 'The WordPress setting <strong>Comment author must fill out name and email</strong>', 'wp-security-audit-log' ), 'system-setting', 'enabled' ),
|
408 |
+
array( 6011, WSAL_MEDIUM, __( 'Enabled/Disabled the option Users must be logged in and registered to comment', 'wp-security-audit-log' ), __( 'The WordPress setting <strong>Users must be registered and logged in to comment</strong>', 'wp-security-audit-log' ), 'system-setting', 'enabled' ),
|
409 |
+
array( 6012, WSAL_INFORMATIONAL, __( 'Enabled/Disabled the option to automatically close comments', 'wp-security-audit-log' ), __( 'The WordPress setting <strong>Automatically close comments after %Value% days</strong>', 'wp-security-audit-log' ), 'system-setting', 'enabled' ),
|
410 |
+
array( 6013, WSAL_INFORMATIONAL, __( 'Changed the value of the option Automatically close comments', 'wp-security-audit-log' ), __( 'Changed the value of the WordPress setting to <strong>Automatically close comments after a number of days</strong> %LineBreak% Previous value: %OldValue% %LineBreak% New value: %NewValue%', 'wp-security-audit-log' ), 'system-setting', 'modified' ),
|
411 |
+
array( 6014, WSAL_MEDIUM, __( 'Enabled/Disabled the option for comments to be manually approved', 'wp-security-audit-log' ), __( 'The WordPress setting <strong>Comments must be manualy approved</strong>', 'wp-security-audit-log' ), 'system-setting', 'enabled' ),
|
412 |
+
array( 6015, WSAL_LOW, __( 'Enabled/Disabled the option for an author to have previously approved comments for the comments to appear', 'wp-security-audit-log' ), __( 'The WordPress setting <strong>Comment author must have a previously approved comment</strong>', 'wp-security-audit-log' ), 'system-setting', 'enabled' ),
|
413 |
+
array( 6016, WSAL_LOW, __( 'Changed the number of links that a comment must have to be held in the queue', 'wp-security-audit-log' ), __( 'Changed the WordPress setting <strong>Hold a comment in the queue if it contains links</strong> %LineBreak% Previous value: %OldValue% %LineBreak% New value: %NewValue%', 'wp-security-audit-log' ), 'system-setting', 'modified' ),
|
414 |
+
array( 6017, WSAL_INFORMATIONAL, __( 'Modified the list of keywords for comments moderation', 'wp-security-audit-log' ), __( 'Modified the list of keywords for comments medoration in WordPress', 'wp-security-audit-log' ), 'system-setting', 'modified' ),
|
415 |
+
array( 6018, WSAL_INFORMATIONAL, __( 'Modified the list of keywords for comments blacklisting', 'wp-security-audit-log' ), __( 'Modified the list of <strong>Disallowed comment keys</strong> (keywords) for comments blacklisting in WordPress', 'wp-security-audit-log' ), 'system-setting', 'modified' ),
|
416 |
+
array( 6024, WSAL_CRITICAL, __( 'Option WordPress Address (URL) in WordPress settings changed', 'wp-security-audit-log' ), __( 'Changed the <strong>WordPress address (URL)</strong> %LineBreak% Previous URL: %old_url% %LineBreak% New URL: %new_url%', 'wp-security-audit-log' ), 'system-setting', 'modified' ),
|
417 |
+
array( 6025, WSAL_CRITICAL, __( 'Option Site Address (URL) in WordPress settings changed', 'wp-security-audit-log' ), __( 'Changed the <strong>Site address (URL)</strong> %LineBreak% Previous URL: %old_url% %LineBreak% New URL: %new_url%', 'wp-security-audit-log' ), 'system-setting', 'modified' ),
|
418 |
+
|
419 |
+
array( 6035, WSAL_CRITICAL, __( 'Option Your homepage displays in WordPress settings changed', 'wp-security-audit-log' ), __( 'The <strong>Your homepage displays</strong> in the WordPress settings %LineBreak% Previous setting: %old_homepage% %LineBreak% New setting: %new_homepage%', 'wp-security-audit-log' ), 'system-setting', 'modified' ),
|
420 |
+
array( 6036, WSAL_CRITICAL, __( 'Option homepage in WordPress settings changed', 'wp-security-audit-log' ), __( 'Changed the <strong>Homepage</strong> in the WordPress settings %LineBreak% Previous page: %old_page% %LineBreak% New page: %new_page%', 'wp-security-audit-log' ), 'system-setting', 'modified' ),
|
421 |
+
array( 6037, WSAL_CRITICAL, __( 'Option posts page in WordPress settings changed', 'wp-security-audit-log' ), __( 'Changed the <strong>Posts page</strong> in the WordPress settings %LineBreak% Previous page: %old_page% %LineBreak% New setting: %new_page%', 'wp-security-audit-log' ), 'system-setting', 'modified' ),
|
422 |
+
|
423 |
+
array( 6040, WSAL_CRITICAL, __( 'Option Timezone in WordPress settings changed', 'wp-security-audit-log' ), __( 'The <strong>Timezone</strong> in the WordPress settings %LineBreak% Previous timezone: %old_timezone% %LineBreak% New timezone: %new_timezone%', 'wp-security-audit-log' ), 'system-setting', 'modified' ),
|
424 |
+
array( 6041, WSAL_CRITICAL, __( 'Option Date format in WordPress settings changed', 'wp-security-audit-log' ), __( 'The <strong>Date format</strong> in the WordPress settings %LineBreak% Previous format: %old_date_format% %LineBreak% New format: %new_date_format%', 'wp-security-audit-log' ), 'system-setting', 'modified' ),
|
425 |
+
array( 6042, WSAL_CRITICAL, __( 'Option Time format in WordPress settings changed', 'wp-security-audit-log' ), __( 'The <strong>Time format</strong> in the WordPress settings %LineBreak% Previous format: %old_time_format% %LineBreak% New format: %new_time_format%', 'wp-security-audit-log' ), 'system-setting', 'modified' ),
|
426 |
+
|
427 |
+
array( 6044, WSAL_CRITICAL, __( 'Option Automatic updates setting changed', 'wp-security-audit-log' ), __( 'The <strong>Automatic updates</strong> in the WordPress settings %LineBreak% %updates_status%', 'wp-security-audit-log' ), 'system-setting', 'modified' ),
|
428 |
),
|
429 |
),
|
430 |
|
436 |
array( 7003, WSAL_HIGH, __( 'Deactivated site has been activated', 'wp-security-audit-log' ), __( 'Activated the site: %SiteName% %LineBreak% URL: %BlogURL%', 'wp-security-audit-log' ), 'multisite-network', 'activated' ),
|
437 |
array( 7004, WSAL_HIGH, __( 'Site has been deactivated', 'wp-security-audit-log' ), __( 'Deactivated the site: %SiteName% %LineBreak% URL: %BlogURL%', 'wp-security-audit-log' ), 'multisite-network', 'deactivated' ),
|
438 |
array( 7005, WSAL_HIGH, __( 'Existing site deleted from network', 'wp-security-audit-log' ), __( 'The site: %SiteName% %LineBreak% URL: %BlogURL%', 'wp-security-audit-log' ), 'multisite-network', 'deleted' ),
|
439 |
+
array( 7007, WSAL_CRITICAL, __( 'Allow site administrators to add new users to their sites settings changed', 'wp-security-audit-log' ), __( 'The network setting <strong>Allow site administrators to add new users to their sites</strong>', 'wp-security-audit-log' ), 'multisite-network', 'enabled' ),
|
440 |
+
array( 7008, WSAL_HIGH, __( 'Site upload space settings changed', 'wp-security-audit-log' ), __( 'The network setting <strong>Site upload space</strong> (to limit space allocated for each site\'s upload directory)', 'wp-security-audit-log' ), 'multisite-network', 'enabled' ),
|
441 |
+
array( 7009, WSAL_MEDIUM, __( 'Site upload space file size settings changed', 'wp-security-audit-log' ), __( 'The file size in the <strong>Site upload space</strong> network setting %LineBreak% Previous size (MB): %old_value% %LineBreak%New size (MB): %new_value%', 'wp-security-audit-log' ), 'multisite-network', 'modified' ),
|
442 |
+
array( 7010, WSAL_CRITICAL, __( 'Site Upload file types settings changed', 'wp-security-audit-log' ), __( 'The network setting <strong>Upload file types</strong> (list of allowed file types) %LineBreak% Previous value: %old_value% %LineBreak% New value: %new_value%', 'wp-security-audit-log' ), 'multisite-network', 'modified' ),
|
443 |
+
array( 7011, WSAL_CRITICAL, __( 'Site Max upload file size settings changed', 'wp-security-audit-log' ), __( 'Changed the <strong>Max upload file size</strong> network setting %LineBreak% Previous size (KB): %old_value% %LineBreak% New size (KB): %new_value%', 'wp-security-audit-log' ), 'multisite-network', 'modified' ),
|
444 |
array( 7012, WSAL_HIGH, __( 'Allow new registrations settings changed', 'wp-security-audit-log' ), __( 'Changed the <strong>Allow new registrations</strong> settings %LineBreak% Previous setting: %previous_setting% %LineBreak% New setting: %new_setting%', 'wp-security-audit-log' ), 'multisite-network', 'modified' ),
|
445 |
),
|
446 |
),
|
460 |
}
|
461 |
|
462 |
// Load Custom alerts.
|
463 |
+
wsal_load_include_custom_files( $wsal );
|
464 |
}
|
465 |
|
466 |
add_action( 'init', 'wsaldefaults_wsal_init', 5 );
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Nothing to see here.
|
4 |
+
*/
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Nothing to see here.
|
4 |
+
*/
|
@@ -273,7 +273,7 @@ function download(filename, text) {
|
|
273 |
*/
|
274 |
function download_failed_login_log(element) {
|
275 |
var nonce = jQuery(element).data('download-nonce'); // Nonce.
|
276 |
-
alert = jQuery(element).
|
277 |
|
278 |
jQuery.ajax({
|
279 |
type: 'POST',
|
273 |
*/
|
274 |
function download_failed_login_log(element) {
|
275 |
var nonce = jQuery(element).data('download-nonce'); // Nonce.
|
276 |
+
alert = jQuery(element).closest( '[id^="Event"]' ).attr('id').substring(5);
|
277 |
|
278 |
jQuery.ajax({
|
279 |
type: 'POST',
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Nothing to see here.
|
4 |
+
*/
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*! Simple JavaScript Inheritance
|
2 |
+
* By John Resig http://ejohn.org/
|
3 |
+
* MIT Licensed.
|
4 |
+
*/
|
5 |
+
!function(){"use strict";var a=!1;window.JQClass=function(){},JQClass.classes={},JQClass.extend=function b(c){function d(){!a&&this._init&&this._init.apply(this,arguments)}var e=this.prototype;a=!0;var f=new this;a=!1;for(var g in c)if("function"==typeof c[g]&&"function"==typeof e[g])f[g]=function(a,b){return function(){var c=this._super;this._super=function(b){return e[a].apply(this,b||[])};var d=b.apply(this,arguments);return this._super=c,d}}(g,c[g]);else if("object"==typeof c[g]&&"object"==typeof e[g]&&"defaultOptions"===g){var h,i=e[g],j=c[g],k={};for(h in i)k[h]=i[h];for(h in j)k[h]=j[h];f[g]=k}else f[g]=c[g];return d.prototype=f,d.prototype.constructor=d,d.extend=b,d}}(),/*! Abstract base class for collection plugins v1.0.2.
|
6 |
+
Written by Keith Wood (wood.keith{at}optusnet.com.au) December 2013.
|
7 |
+
Licensed under the MIT license (http://keith-wood.name/licence.html). */
|
8 |
+
function($){"use strict";function camelCase(a){return a.replace(/-([a-z])/g,function(a,b){return b.toUpperCase()})}JQClass.classes.JQPlugin=JQClass.extend({name:"plugin",defaultOptions:{},regionalOptions:{},deepMerge:!0,_getMarker:function(){return"is-"+this.name},_init:function(){$.extend(this.defaultOptions,this.regionalOptions&&this.regionalOptions[""]||{});var a=camelCase(this.name);$[a]=this,$.fn[a]=function(b){var c=Array.prototype.slice.call(arguments,1),d=this,e=this;return this.each(function(){if("string"==typeof b){if("_"===b[0]||!$[a][b])throw"Unknown method: "+b;var f=$[a][b].apply($[a],[this].concat(c));if(f!==d&&void 0!==f)return e=f,!1}else $[a]._attach(this,b)}),e}},setDefaults:function(a){$.extend(this.defaultOptions,a||{})},_attach:function(a,b){if(a=$(a),!a.hasClass(this._getMarker())){a.addClass(this._getMarker()),b=$.extend(this.deepMerge,{},this.defaultOptions,this._getMetadata(a),b||{});var c=$.extend({name:this.name,elem:a,options:b},this._instSettings(a,b));a.data(this.name,c),this._postAttach(a,c),this.option(a,b)}},_instSettings:function(a,b){return{}},_postAttach:function(a,b){},_getMetadata:function(elem){try{var data=elem.data(this.name.toLowerCase())||"";data=data.replace(/(\\?)'/g,function(a,b){return b?"'":'"'}).replace(/([a-zA-Z0-9]+):/g,function(a,b,c){var d=data.substring(0,c).match(/"/g);return d&&d.length%2!==0?b+":":'"'+b+'":'}).replace(/\\:/g,":"),data=$.parseJSON("{"+data+"}");for(var key in data)if(data.hasOwnProperty(key)){var value=data[key];"string"==typeof value&&value.match(/^new Date\(([-0-9,\s]*)\)$/)&&(data[key]=eval(value))}return data}catch(a){return{}}},_getInst:function(a){return $(a).data(this.name)||{}},option:function(a,b,c){a=$(a);var d=a.data(this.name),e=b||{};return!b||"string"==typeof b&&"undefined"==typeof c?(e=(d||{}).options,e&&b?e[b]:e):void(a.hasClass(this._getMarker())&&("string"==typeof b&&(e={},e[b]=c),this._optionsChanged(a,d,e),$.extend(d.options,e)))},_optionsChanged:function(a,b,c){},destroy:function(a){a=$(a),a.hasClass(this._getMarker())&&(this._preDestroy(a,this._getInst(a)),a.removeData(this.name).removeClass(this._getMarker()))},_preDestroy:function(a,b){}}),$.JQPlugin={createPlugin:function(a,b){"object"==typeof a&&(b=a,a="JQPlugin"),a=camelCase(a);var c=camelCase(b.name);JQClass.classes[c]=JQClass.classes[a].extend(b),new JQClass.classes[c]}}}(jQuery);
|
9 |
+
//# sourceMappingURL=jquery.plugin.min.map
|
@@ -16,2418 +16,2576 @@ msgstr ""
|
|
16 |
"X-Poedit-SourceCharset: UTF-8\n"
|
17 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
18 |
|
19 |
-
#: defaults.php:
|
20 |
msgid "Critical severity events."
|
21 |
msgstr ""
|
22 |
|
23 |
-
#: defaults.php:
|
24 |
msgid "High severity events."
|
25 |
msgstr ""
|
26 |
|
27 |
-
#: defaults.php:
|
28 |
msgid "Medium severity events."
|
29 |
msgstr ""
|
30 |
|
31 |
-
#: defaults.php:
|
32 |
msgid "Low severity events."
|
33 |
msgstr ""
|
34 |
|
35 |
-
#: defaults.php:
|
36 |
msgid "Informational events."
|
37 |
msgstr ""
|
38 |
|
39 |
-
#: defaults.php:
|
40 |
msgid "Users Logins & Sessions Events"
|
41 |
msgstr ""
|
42 |
|
43 |
-
#: defaults.php:
|
44 |
msgid "User Activity"
|
45 |
msgstr ""
|
46 |
|
47 |
-
#: defaults.php:
|
48 |
msgid "User logged in"
|
49 |
msgstr ""
|
50 |
|
51 |
-
#: defaults.php:
|
52 |
msgid "User logged out"
|
53 |
msgstr ""
|
54 |
|
55 |
-
#: defaults.php:
|
56 |
msgid "Login failed"
|
57 |
msgstr ""
|
58 |
|
59 |
-
#: defaults.php:
|
|
|
|
|
|
|
|
|
60 |
msgid "Login failed / non existing user"
|
61 |
msgstr ""
|
62 |
|
63 |
-
#: defaults.php:
|
64 |
msgid "%Attempts% failed login(s) %LineBreak% %LogFileText%"
|
65 |
msgstr ""
|
66 |
|
67 |
-
#: defaults.php:
|
68 |
msgid "Login blocked"
|
69 |
msgstr ""
|
70 |
|
71 |
-
#: defaults.php:
|
72 |
msgid "Login blocked because other session(s) already exist for this user. %LineBreak% IP address: %ClientIP%"
|
73 |
msgstr ""
|
74 |
|
75 |
-
#: defaults.php:
|
76 |
msgid "User logged in with existing session(s)"
|
77 |
msgstr ""
|
78 |
|
79 |
-
#: defaults.php:
|
80 |
msgid "User logged in. There are other session(s) using the same username logged in from these IP address(es): %IPAddress%"
|
81 |
msgstr ""
|
82 |
|
83 |
-
#: defaults.php:
|
84 |
msgid "User logged out all other sessions with the same username"
|
85 |
msgstr ""
|
86 |
|
87 |
-
#: defaults.php:
|
88 |
msgid "Logged out all other sessions with the same user."
|
89 |
msgstr ""
|
90 |
|
91 |
-
#: defaults.php:
|
92 |
msgid "User session destroyed and logged out"
|
93 |
msgstr ""
|
94 |
|
95 |
-
#: defaults.php:
|
96 |
-
msgid "Terminated the session of another user. %LineBreak% User: %TargetUserName% %LineBreak% Session ID: %TargetSessionID%"
|
97 |
msgstr ""
|
98 |
|
99 |
-
#: defaults.php:
|
100 |
msgid "Switched to another user"
|
101 |
msgstr ""
|
102 |
|
103 |
-
#: defaults.php:
|
104 |
msgid "Switched to another user. %LineBreak% User: %TargetUserName% %LineBreak% Role: %TargetUserRole%"
|
105 |
msgstr ""
|
106 |
|
107 |
-
#: defaults.php:
|
108 |
msgid "User uploaded file from Uploads directory"
|
109 |
msgstr ""
|
110 |
|
111 |
-
#: defaults.php:
|
112 |
msgid "Filename: %FileName% %LineBreak% Directory: %FilePath%"
|
113 |
msgstr ""
|
114 |
|
115 |
-
#: defaults.php:
|
116 |
msgid "User deleted file from Uploads directory"
|
117 |
msgstr ""
|
118 |
|
119 |
-
#: defaults.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
120 |
msgid "Content & Comments"
|
121 |
msgstr ""
|
122 |
|
123 |
-
#: defaults.php:
|
124 |
msgid "Content"
|
125 |
msgstr ""
|
126 |
|
127 |
-
#: defaults.php:
|
128 |
msgid "User created a new post and saved it as draft"
|
129 |
msgstr ""
|
130 |
|
131 |
-
#: defaults.php:
|
132 |
-
msgid "Created the post %PostTitle% %LineBreak% ID: %PostID% %LineBreak%
|
133 |
msgstr ""
|
134 |
|
135 |
-
#: defaults.php:
|
136 |
msgid "User published a post"
|
137 |
msgstr ""
|
138 |
|
139 |
-
#: defaults.php:
|
140 |
-
msgid "Published the post %PostTitle% %LineBreak% ID: %PostID% %LineBreak%
|
141 |
msgstr ""
|
142 |
|
143 |
-
#: defaults.php:
|
144 |
msgid "User modified a post"
|
145 |
msgstr ""
|
146 |
|
147 |
-
#: defaults.php:
|
148 |
-
msgid "Modified the post %PostTitle% %LineBreak% ID: %PostID% %LineBreak%
|
149 |
msgstr ""
|
150 |
|
151 |
-
#: defaults.php:
|
152 |
msgid "User permanently deleted a post from the trash"
|
153 |
msgstr ""
|
154 |
|
155 |
-
#: defaults.php:
|
156 |
-
msgid "Permanently deleted the post %PostTitle% %LineBreak% ID: %PostID% %LineBreak%
|
157 |
msgstr ""
|
158 |
|
159 |
-
#: defaults.php:
|
160 |
msgid "User moved a post to the trash"
|
161 |
msgstr ""
|
162 |
|
163 |
-
#: defaults.php:
|
164 |
-
msgid "Moved the post %PostTitle% to trash %LineBreak% ID: %PostID% %LineBreak%
|
165 |
msgstr ""
|
166 |
|
167 |
-
#: defaults.php:
|
168 |
msgid "User restored a post from trash"
|
169 |
msgstr ""
|
170 |
|
171 |
-
#: defaults.php:
|
172 |
-
msgid "Restored the post %PostTitle% from trash %LineBreak% ID: %PostID% %LineBreak%
|
173 |
msgstr ""
|
174 |
|
175 |
-
#: defaults.php:
|
176 |
msgid "User changed post URL"
|
177 |
msgstr ""
|
178 |
|
179 |
-
#: defaults.php:
|
180 |
-
msgid "Changed the URL of the post %PostTitle% %LineBreak% ID: %PostID% %LineBreak%
|
181 |
msgstr ""
|
182 |
|
183 |
-
#: defaults.php:
|
184 |
msgid "User changed post author"
|
185 |
msgstr ""
|
186 |
|
187 |
-
#: defaults.php:
|
188 |
-
msgid "Changed the author of the post %PostTitle% %LineBreak% ID: %PostID% %LineBreak%
|
189 |
msgstr ""
|
190 |
|
191 |
-
#: defaults.php:
|
192 |
msgid "User changed post status"
|
193 |
msgstr ""
|
194 |
|
195 |
-
#: defaults.php:
|
196 |
-
msgid "Changed the status of the post %PostTitle% %LineBreak% ID: %PostID% %LineBreak%
|
197 |
msgstr ""
|
198 |
|
199 |
-
#: defaults.php:
|
200 |
msgid "User changed the visibility of a post"
|
201 |
msgstr ""
|
202 |
|
203 |
-
#: defaults.php:
|
204 |
-
msgid "Changed the visibility of the post %PostTitle% %LineBreak% ID: %PostID% %LineBreak%
|
205 |
msgstr ""
|
206 |
|
207 |
-
#: defaults.php:
|
208 |
msgid "User changed the date of a post"
|
209 |
msgstr ""
|
210 |
|
211 |
-
#: defaults.php:
|
212 |
-
msgid "Changed the date of the post %PostTitle% %LineBreak% ID: %PostID% %LineBreak%
|
213 |
msgstr ""
|
214 |
|
215 |
-
#: defaults.php:
|
216 |
msgid "User changed the parent of a page"
|
217 |
msgstr ""
|
218 |
|
219 |
-
#: defaults.php:
|
220 |
-
msgid "Changed the parent of the post %PostTitle% %LineBreak% ID: %PostID% %LineBreak%
|
221 |
msgstr ""
|
222 |
|
223 |
-
#: defaults.php:
|
224 |
msgid "User changed the template of a page"
|
225 |
msgstr ""
|
226 |
|
227 |
-
#: defaults.php:
|
228 |
-
msgid "Changed the template of the post %PostTitle% %LineBreak% ID: %PostID% %LineBreak%
|
229 |
msgstr ""
|
230 |
|
231 |
-
#: defaults.php:
|
232 |
msgid "User set a post as sticky"
|
233 |
msgstr ""
|
234 |
|
235 |
-
#: defaults.php:
|
236 |
-
msgid "Set the post %PostTitle% as sticky %LineBreak% ID: %PostID% %LineBreak%
|
237 |
msgstr ""
|
238 |
|
239 |
-
#: defaults.php:
|
240 |
msgid "User removed post from sticky"
|
241 |
msgstr ""
|
242 |
|
243 |
-
#: defaults.php:
|
244 |
-
msgid "Removed the post %PostTitle% from sticky %LineBreak% ID: %PostID% %LineBreak%
|
245 |
msgstr ""
|
246 |
|
247 |
-
#: defaults.php:
|
248 |
msgid "User modified the content of a post"
|
249 |
msgstr ""
|
250 |
|
251 |
-
#: defaults.php:
|
252 |
-
msgid "Modified the content of the post %PostTitle% %LineBreak% ID: %PostID% %LineBreak%
|
253 |
msgstr ""
|
254 |
|
255 |
-
#: defaults.php:
|
256 |
msgid "User submitted a post for review"
|
257 |
msgstr ""
|
258 |
|
259 |
-
#: defaults.php:
|
260 |
-
msgid "Submitted the post %PostTitle% for review %LineBreak% ID: %PostID% %LineBreak%
|
261 |
msgstr ""
|
262 |
|
263 |
-
#: defaults.php:
|
264 |
msgid "User scheduled a post"
|
265 |
msgstr ""
|
266 |
|
267 |
-
#: defaults.php:
|
268 |
-
msgid "Scheduled the post %PostTitle% to be published on %PublishingDate% %LineBreak% ID: %PostID% %LineBreak%
|
269 |
msgstr ""
|
270 |
|
271 |
-
#: defaults.php:
|
272 |
msgid "User changed title of a post"
|
273 |
msgstr ""
|
274 |
|
275 |
-
#: defaults.php:
|
276 |
-
msgid "Changed the title of the post %OldTitle% %LineBreak%
|
277 |
msgstr ""
|
278 |
|
279 |
-
#: defaults.php:
|
280 |
msgid "User opened a post in the editor"
|
281 |
msgstr ""
|
282 |
|
283 |
-
#: defaults.php:
|
284 |
-
msgid "Opened the post %PostTitle% in the editor %LineBreak% ID: %PostID% %LineBreak%
|
285 |
msgstr ""
|
286 |
|
287 |
-
#: defaults.php:
|
288 |
msgid "User viewed a post"
|
289 |
msgstr ""
|
290 |
|
291 |
-
#: defaults.php:
|
292 |
-
msgid "Viewed the post %PostTitle% %LineBreak% ID: %PostID% %LineBreak%
|
293 |
msgstr ""
|
294 |
|
295 |
-
#: defaults.php:
|
296 |
msgid "User enabled/disabled comments in a post"
|
297 |
msgstr ""
|
298 |
|
299 |
-
#: defaults.php:
|
300 |
-
msgid "The comments in the post %PostTitle% %LineBreak% ID: %PostID% %LineBreak%
|
301 |
msgstr ""
|
302 |
|
303 |
-
#: defaults.php:
|
304 |
msgid "User enabled/disabled trackbacks and pingbacks in a post"
|
305 |
msgstr ""
|
306 |
|
307 |
-
#: defaults.php:
|
308 |
-
msgid "Pingbacks and Trackbacks in the post %PostTitle% %LineBreak% ID: %PostID% %LineBreak%
|
309 |
msgstr ""
|
310 |
|
311 |
-
#: defaults.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
312 |
msgid "Tags"
|
313 |
msgstr ""
|
314 |
|
315 |
-
#: defaults.php:
|
316 |
msgid "User added post tag"
|
317 |
msgstr ""
|
318 |
|
319 |
-
#: defaults.php:
|
320 |
msgid "Added tag(s) to the post %PostTitle% %LineBreak% ID: %PostID% %LineBreak% Type: %PostType% %LineBreak% Status: %PostStatus% %LineBreak% Added tag(s): %tag% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%"
|
321 |
msgstr ""
|
322 |
|
323 |
-
#: defaults.php:
|
324 |
msgid "User removed post tag"
|
325 |
msgstr ""
|
326 |
|
327 |
-
#: defaults.php:
|
328 |
msgid "Removed tag(s) from the post %PostTitle% %LineBreak% ID: %PostID% %LineBreak% Type: %PostType% %LineBreak% Status: %PostStatus% %LineBreak% Removed tag(s): %tag% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%"
|
329 |
msgstr ""
|
330 |
|
331 |
-
#: defaults.php:
|
332 |
msgid "User created new tag"
|
333 |
msgstr ""
|
334 |
|
335 |
-
#: defaults.php:
|
336 |
msgid "Created the tag %TagName% %LineBreak% Slug: %Slug% %LineBreak% %TagLink%"
|
337 |
msgstr ""
|
338 |
|
339 |
-
#: defaults.php:
|
340 |
msgid "User deleted tag"
|
341 |
msgstr ""
|
342 |
|
343 |
-
#: defaults.php:
|
344 |
msgid "Deleted the tag %TagName% %LineBreak% Slug: %Slug%"
|
345 |
msgstr ""
|
346 |
|
347 |
-
#: defaults.php:
|
348 |
msgid "User renamed tag"
|
349 |
msgstr ""
|
350 |
|
351 |
-
#: defaults.php:
|
352 |
-
msgid "
|
353 |
msgstr ""
|
354 |
|
355 |
-
#: defaults.php:
|
356 |
msgid "User changed tag slug"
|
357 |
msgstr ""
|
358 |
|
359 |
-
#: defaults.php:
|
360 |
msgid "Changed the slug of the tag %tag% %LineBreak% Previous slug: %old_slug% %LineBreak% New slug: %new_slug% %LineBreak% %TagLink%"
|
361 |
msgstr ""
|
362 |
|
363 |
-
#: defaults.php:
|
364 |
msgid "User changed tag description"
|
365 |
msgstr ""
|
366 |
|
367 |
-
#: defaults.php:
|
368 |
msgid "Changed the description of the tag %tag% %LineBreak% Slug: %Slug% %LineBreak% Previous description: %old_desc% %LineBreak% New description: %new_desc% %LineBreak% %TagLink%"
|
369 |
msgstr ""
|
370 |
|
371 |
-
#: defaults.php:
|
372 |
msgid "Categories"
|
373 |
msgstr ""
|
374 |
|
375 |
-
#: defaults.php:
|
376 |
msgid "User changed post category"
|
377 |
msgstr ""
|
378 |
|
379 |
-
#: defaults.php:
|
380 |
-
msgid "Changed the category of the post %PostTitle% %LineBreak% ID: %PostID% %LineBreak%
|
381 |
msgstr ""
|
382 |
|
383 |
-
#: defaults.php:
|
384 |
msgid "User created new category"
|
385 |
msgstr ""
|
386 |
|
387 |
-
#: defaults.php:
|
388 |
msgid "Created the category %CategoryName% %LineBreak% Slug: %Slug% %LineBreak% %CategoryLink%"
|
389 |
msgstr ""
|
390 |
|
391 |
-
#: defaults.php:
|
392 |
msgid "User deleted category"
|
393 |
msgstr ""
|
394 |
|
395 |
-
#: defaults.php:
|
396 |
msgid "Deleted the category %CategoryName% %LineBreak% Slug: %Slug%"
|
397 |
msgstr ""
|
398 |
|
399 |
-
#: defaults.php:
|
400 |
msgid "Changed the parent of a category"
|
401 |
msgstr ""
|
402 |
|
403 |
-
#: defaults.php:
|
404 |
msgid "Changed the parent of the category %CategoryName% %LineBreak% Slug: %Slug% %LineBreak% Previous parent: %OldParent% %LineBreak% New parent: %NewParent% %LineBreak% %CategoryLink%"
|
405 |
msgstr ""
|
406 |
|
407 |
-
#: defaults.php:
|
408 |
msgid "User changed category name"
|
409 |
msgstr ""
|
410 |
|
411 |
-
#: defaults.php:
|
412 |
-
msgid "Previous name: %old_name% %LineBreak% New name: %new_name% %LineBreak% Slug: %slug% %LineBreak%
|
413 |
msgstr ""
|
414 |
|
415 |
-
#: defaults.php:
|
416 |
msgid "User changed category slug"
|
417 |
msgstr ""
|
418 |
|
419 |
-
#: defaults.php:
|
420 |
msgid "Changed the slug of the category: %CategoryName% %LineBreak% Previous slug: %old_slug% %LineBreak% New slug: %new_slug% %LineBreak% %cat_link%"
|
421 |
msgstr ""
|
422 |
|
423 |
-
#: defaults.php:
|
424 |
msgid "Custom Fields"
|
425 |
msgstr ""
|
426 |
|
427 |
-
#: defaults.php:
|
428 |
msgid "User created a custom field for a post"
|
429 |
msgstr ""
|
430 |
|
431 |
-
#: defaults.php:
|
432 |
-
msgid "Created
|
433 |
msgstr ""
|
434 |
|
435 |
-
#: defaults.php:
|
436 |
msgid "User updated a custom field value for a post"
|
437 |
msgstr ""
|
438 |
|
439 |
-
#: defaults.php:
|
440 |
-
msgid "Modified the value of the custom field %MetaKey% in the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post
|
441 |
msgstr ""
|
442 |
|
443 |
-
#: defaults.php:
|
444 |
msgid "User deleted a custom field from a post"
|
445 |
msgstr ""
|
446 |
|
447 |
-
#: defaults.php:
|
448 |
-
msgid "Deleted the custom field %MetaKey% from the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post
|
449 |
msgstr ""
|
450 |
|
451 |
-
#: defaults.php:
|
452 |
msgid "User updated a custom field name for a post"
|
453 |
msgstr ""
|
454 |
|
455 |
-
#: defaults.php:
|
456 |
-
msgid "
|
457 |
msgstr ""
|
458 |
|
459 |
-
#: defaults.php:
|
460 |
msgid "Custom Fields (ACF)"
|
461 |
msgstr ""
|
462 |
|
463 |
-
#: defaults.php:
|
464 |
msgid "Comments"
|
465 |
msgstr ""
|
466 |
|
467 |
-
#: defaults.php:
|
468 |
msgid "User approved a comment"
|
469 |
msgstr ""
|
470 |
|
471 |
-
#: defaults.php:
|
472 |
-
msgid "Approved the comment posted by %Author% on the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post
|
473 |
msgstr ""
|
474 |
|
475 |
-
#: defaults.php:
|
476 |
msgid "User unapproved a comment"
|
477 |
msgstr ""
|
478 |
|
479 |
-
#: defaults.php:
|
480 |
-
msgid "Unapproved the comment posted by %Author% on the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post
|
481 |
msgstr ""
|
482 |
|
483 |
-
#: defaults.php:
|
484 |
msgid "User replied to a comment"
|
485 |
msgstr ""
|
486 |
|
487 |
-
#: defaults.php:
|
488 |
-
msgid "Replied to the comment posted by %Author% on the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post
|
489 |
msgstr ""
|
490 |
|
491 |
-
#: defaults.php:
|
492 |
msgid "User edited a comment"
|
493 |
msgstr ""
|
494 |
|
495 |
-
#: defaults.php:
|
496 |
-
msgid "Edited the comment posted by %Author% on the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post
|
497 |
msgstr ""
|
498 |
|
499 |
-
#: defaults.php:
|
500 |
msgid "User marked a comment as Spam"
|
501 |
msgstr ""
|
502 |
|
503 |
-
#: defaults.php:
|
504 |
-
msgid "Marked the comment posted by %Author% on the post %PostTitle% as spam %LineBreak% Post ID: %PostID% %LineBreak% Post
|
505 |
msgstr ""
|
506 |
|
507 |
-
#: defaults.php:
|
508 |
msgid "User marked a comment as Not Spam"
|
509 |
msgstr ""
|
510 |
|
511 |
-
#: defaults.php:
|
512 |
-
msgid "Marked the comment posted by %Author% on the post %PostTitle% as not spam %LineBreak% Post ID: %PostID% %LineBreak% Post
|
513 |
msgstr ""
|
514 |
|
515 |
-
#: defaults.php:
|
516 |
msgid "User moved a comment to trash"
|
517 |
msgstr ""
|
518 |
|
519 |
-
#: defaults.php:
|
520 |
-
msgid "Moved the comment posted by %Author% on the post %PostTitle% to trash %LineBreak% Post ID: %PostID% %LineBreak% Post
|
521 |
msgstr ""
|
522 |
|
523 |
-
#: defaults.php:
|
524 |
msgid "User restored a comment from the trash"
|
525 |
msgstr ""
|
526 |
|
527 |
-
#: defaults.php:
|
528 |
-
msgid "Restored the comment posted by %Author% on the post %PostTitle% from trash %LineBreak% Post ID: %PostID% %LineBreak% Post
|
529 |
msgstr ""
|
530 |
|
531 |
-
#: defaults.php:
|
532 |
msgid "User permanently deleted a comment"
|
533 |
msgstr ""
|
534 |
|
535 |
-
#: defaults.php:
|
536 |
-
msgid "Permanently deleted the comment posted by %Author% on the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post
|
537 |
msgstr ""
|
538 |
|
539 |
-
#: defaults.php:
|
540 |
msgid "User posted a comment"
|
541 |
msgstr ""
|
542 |
|
543 |
-
#: defaults.php:
|
544 |
-
msgid "Posted a comment on the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post
|
545 |
msgstr ""
|
546 |
|
547 |
-
#: defaults.php:
|
548 |
msgid "Visitor posted a comment"
|
549 |
msgstr ""
|
550 |
|
551 |
-
#: defaults.php:
|
|
|
|
|
|
|
|
|
552 |
msgid "Widgets"
|
553 |
msgstr ""
|
554 |
|
555 |
-
#: defaults.php:
|
556 |
msgid "User added a new widget"
|
557 |
msgstr ""
|
558 |
|
559 |
-
#: defaults.php:
|
560 |
-
msgid "Added a new %WidgetName% widget in
|
561 |
msgstr ""
|
562 |
|
563 |
-
#: defaults.php:
|
564 |
msgid "User modified a widget"
|
565 |
msgstr ""
|
566 |
|
567 |
-
#: defaults.php:
|
568 |
msgid "Modified the %WidgetName% widget in %Sidebar%."
|
569 |
msgstr ""
|
570 |
|
571 |
-
#: defaults.php:
|
572 |
msgid "User deleted widget"
|
573 |
msgstr ""
|
574 |
|
575 |
-
#: defaults.php:
|
576 |
msgid "Deleted the %WidgetName% widget from %Sidebar%."
|
577 |
msgstr ""
|
578 |
|
579 |
-
#: defaults.php:
|
580 |
msgid "User moved widget"
|
581 |
msgstr ""
|
582 |
|
583 |
-
#: defaults.php:
|
584 |
msgid "Moved the %WidgetName% widget %LineBreak% From: %OldSidebar% %LineBreak% To: %NewSidebar%"
|
585 |
msgstr ""
|
586 |
|
587 |
-
#: defaults.php:
|
588 |
msgid "User changed widget position"
|
589 |
msgstr ""
|
590 |
|
591 |
-
#: defaults.php:
|
592 |
msgid "Changed the position of the %WidgetName% widget in %Sidebar%."
|
593 |
msgstr ""
|
594 |
|
595 |
-
#: defaults.php:
|
596 |
msgid "Menus"
|
597 |
msgstr ""
|
598 |
|
599 |
-
#: defaults.php:
|
600 |
msgid "User created new menu"
|
601 |
msgstr ""
|
602 |
|
603 |
-
#: defaults.php:
|
604 |
-
msgid "New menu called %MenuName
|
605 |
msgstr ""
|
606 |
|
607 |
-
#: defaults.php:
|
608 |
msgid "User added content to a menu"
|
609 |
msgstr ""
|
610 |
|
611 |
-
#: defaults.php:
|
612 |
-
msgid "Added new item to the menu %MenuName% %LineBreak% Item type: %ContentType% %LineBreak% Item name: %ContentName% "
|
613 |
msgstr ""
|
614 |
|
615 |
-
#: defaults.php:
|
616 |
msgid "User removed content from a menu"
|
617 |
msgstr ""
|
618 |
|
619 |
-
#: defaults.php:
|
620 |
-
msgid "Removed item from the menu %MenuName% %LineBreak% Item type: %ContentType% %LineBreak% Item name: %ContentName%"
|
621 |
msgstr ""
|
622 |
|
623 |
-
#: defaults.php:
|
624 |
msgid "User deleted menu"
|
625 |
msgstr ""
|
626 |
|
627 |
-
#: defaults.php:
|
628 |
msgid "Deleted the menu %MenuName%"
|
629 |
msgstr ""
|
630 |
|
631 |
-
#: defaults.php:
|
632 |
msgid "User changed menu setting"
|
633 |
msgstr ""
|
634 |
|
635 |
-
#: defaults.php:
|
636 |
-
msgid "The setting in the %MenuName% %LineBreak% Setting: %MenuSetting%"
|
637 |
msgstr ""
|
638 |
|
639 |
-
#: defaults.php:
|
640 |
msgid "User modified content in a menu"
|
641 |
msgstr ""
|
642 |
|
643 |
-
#: defaults.php:
|
644 |
-
msgid "Modified an item in the menu %MenuName% %LineBreak% Item type: %ContentType% %LineBreak% Item name: %ContentName%"
|
645 |
msgstr ""
|
646 |
|
647 |
-
#: defaults.php:
|
648 |
msgid "User changed name of a menu"
|
649 |
msgstr ""
|
650 |
|
651 |
-
#: defaults.php:
|
652 |
-
msgid "
|
653 |
msgstr ""
|
654 |
|
655 |
-
#: defaults.php:
|
656 |
msgid "User changed order of the objects in a menu"
|
657 |
msgstr ""
|
658 |
|
659 |
-
#: defaults.php:
|
660 |
-
msgid "Changed the order of the items in the menu %MenuName%"
|
661 |
msgstr ""
|
662 |
|
663 |
-
#: defaults.php:
|
664 |
msgid "User moved objects as a sub-item"
|
665 |
msgstr ""
|
666 |
|
667 |
-
#: defaults.php:
|
668 |
-
msgid "Menu name: %MenuName% %LineBreak% Moved item %ItemName% as a sub-item of %ParentName%"
|
669 |
msgstr ""
|
670 |
|
671 |
-
#: defaults.php:
|
672 |
msgid "Custom Post Types"
|
673 |
msgstr ""
|
674 |
|
675 |
-
#: defaults.php:
|
676 |
msgid "User modified a draft blog post"
|
677 |
msgstr ""
|
678 |
|
679 |
-
#: defaults.php:
|
680 |
msgid "Modified the draft post with the %PostTitle%. %EditorLinkPost%."
|
681 |
msgstr ""
|
682 |
|
683 |
-
#: defaults.php:
|
684 |
msgid "User created a new post with custom post type and saved it as draft"
|
685 |
msgstr ""
|
686 |
|
687 |
-
#: defaults.php:
|
688 |
msgid "Created a new custom post called %PostTitle% of type %PostType%. %EditorLinkPost%."
|
689 |
msgstr ""
|
690 |
|
691 |
-
#: defaults.php:
|
692 |
msgid "User published a post with custom post type"
|
693 |
msgstr ""
|
694 |
|
695 |
-
#: defaults.php:
|
696 |
msgid "Published a custom post %PostTitle% of type %PostType%. Post URL is %PostUrl%. %EditorLinkPost%."
|
697 |
msgstr ""
|
698 |
|
699 |
-
#: defaults.php:
|
700 |
msgid "User modified a post with custom post type"
|
701 |
msgstr ""
|
702 |
|
703 |
-
#: defaults.php:
|
704 |
msgid "Modified the custom post %PostTitle% of type %PostType%. Post URL is %PostUrl%. %EditorLinkPost%."
|
705 |
msgstr ""
|
706 |
|
707 |
-
#: defaults.php:
|
708 |
msgid "User modified a draft post with custom post type"
|
709 |
msgstr ""
|
710 |
|
711 |
-
#: defaults.php:
|
712 |
msgid "Modified the draft custom post %PostTitle% of type is %PostType%. %EditorLinkPost%."
|
713 |
msgstr ""
|
714 |
|
715 |
-
#: defaults.php:
|
716 |
msgid "User permanently deleted post with custom post type"
|
717 |
msgstr ""
|
718 |
|
719 |
-
#: defaults.php:
|
720 |
msgid "Permanently Deleted the custom post %PostTitle% of type %PostType%."
|
721 |
msgstr ""
|
722 |
|
723 |
-
#: defaults.php:
|
724 |
msgid "User moved post with custom post type to trash"
|
725 |
msgstr ""
|
726 |
|
727 |
-
#: defaults.php:
|
728 |
msgid "Moved the custom post %PostTitle% of type %PostType% to trash. Post URL was %PostUrl%."
|
729 |
msgstr ""
|
730 |
|
731 |
-
#: defaults.php:
|
732 |
msgid "User restored post with custom post type from trash"
|
733 |
msgstr ""
|
734 |
|
735 |
-
#: defaults.php:
|
736 |
msgid "The custom post %PostTitle% of type %PostType% has been restored from trash. %EditorLinkPost%."
|
737 |
msgstr ""
|
738 |
|
739 |
-
#: defaults.php:
|
740 |
msgid "User changed the category of a post with custom post type"
|
741 |
msgstr ""
|
742 |
|
743 |
-
#: defaults.php:
|
744 |
msgid "Changed the category(ies) of the custom post %PostTitle% of type %PostType% from %OldCategories% to %NewCategories%. %EditorLinkPost%."
|
745 |
msgstr ""
|
746 |
|
747 |
-
#: defaults.php:
|
748 |
msgid "User changed the URL of a post with custom post type"
|
749 |
msgstr ""
|
750 |
|
751 |
-
#: defaults.php:
|
752 |
msgid "Changed the URL of the custom post %PostTitle% of type %PostType% from %OldUrl% to %NewUrl%. %EditorLinkPost%."
|
753 |
msgstr ""
|
754 |
|
755 |
-
#: defaults.php:
|
756 |
msgid "User changed the author or post with custom post type"
|
757 |
msgstr ""
|
758 |
|
759 |
-
#: defaults.php:
|
760 |
msgid "Changed the author of custom post %PostTitle% of type %PostType% from %OldAuthor% to %NewAuthor%. %EditorLinkPost%."
|
761 |
msgstr ""
|
762 |
|
763 |
-
#: defaults.php:
|
764 |
msgid "User changed the status of post with custom post type"
|
765 |
msgstr ""
|
766 |
|
767 |
-
#: defaults.php:
|
768 |
msgid "Changed the status of custom post %PostTitle% of type %PostType% from %OldStatus% to %NewStatus%. %EditorLinkPost%."
|
769 |
msgstr ""
|
770 |
|
771 |
-
#: defaults.php:
|
772 |
msgid "User changed the visibility of a post with custom post type"
|
773 |
msgstr ""
|
774 |
|
775 |
-
#: defaults.php:
|
776 |
msgid "Changed the visibility of the custom post %PostTitle% of type %PostType% from %OldVisibility% to %NewVisibility%. %EditorLinkPost%."
|
777 |
msgstr ""
|
778 |
|
779 |
-
#: defaults.php:
|
780 |
msgid "User changed the date of post with custom post type"
|
781 |
msgstr ""
|
782 |
|
783 |
-
#: defaults.php:
|
784 |
msgid "Changed the date of the custom post %PostTitle% of type %PostType% from %OldDate% to %NewDate%. %EditorLinkPost%."
|
785 |
msgstr ""
|
786 |
|
787 |
-
#: defaults.php:
|
788 |
msgid "User created a custom field for a custom post type"
|
789 |
msgstr ""
|
790 |
|
791 |
-
#: defaults.php:
|
792 |
msgid "User updated a custom field for a custom post type"
|
793 |
msgstr ""
|
794 |
|
795 |
-
#: defaults.php:
|
796 |
msgid "User deleted a custom field from a custom post type"
|
797 |
msgstr ""
|
798 |
|
799 |
-
#: defaults.php:
|
800 |
msgid "User updated a custom field name for a custom post type"
|
801 |
msgstr ""
|
802 |
|
803 |
-
#: defaults.php:
|
804 |
msgid "User modified content for a published custom post type"
|
805 |
msgstr ""
|
806 |
|
807 |
-
#: defaults.php:
|
808 |
msgid "User modified content for a draft post"
|
809 |
msgstr ""
|
810 |
|
811 |
-
#: defaults.php:
|
812 |
msgid "User modified content for a draft custom post type"
|
813 |
msgstr ""
|
814 |
|
815 |
-
#: defaults.php:
|
816 |
msgid "User modified content of a post"
|
817 |
msgstr ""
|
818 |
|
819 |
-
#: defaults.php:
|
820 |
msgid "User scheduled a custom post type"
|
821 |
msgstr ""
|
822 |
|
823 |
-
#: defaults.php:
|
824 |
msgid "Scheduled the custom post type %PostTitle% to be published %PublishingDate%. %EditorLinkPost%."
|
825 |
msgstr ""
|
826 |
|
827 |
-
#: defaults.php:
|
828 |
msgid "User changed title of a custom post type"
|
829 |
msgstr ""
|
830 |
|
831 |
-
#: defaults.php:
|
832 |
msgid "Changed the title of the custom post %OldTitle% to %NewTitle%. %EditorLinkPost%."
|
833 |
msgstr ""
|
834 |
|
835 |
-
#: defaults.php:
|
836 |
msgid "User opened a custom post type in the editor"
|
837 |
msgstr ""
|
838 |
|
839 |
-
#: defaults.php:
|
840 |
msgid "Opened the custom post %PostTitle% of type %PostType% in the editor. View the post: %EditorLinkPost%."
|
841 |
msgstr ""
|
842 |
|
843 |
-
#: defaults.php:
|
844 |
msgid "User viewed a custom post type"
|
845 |
msgstr ""
|
846 |
|
847 |
-
#: defaults.php:
|
848 |
msgid "Viewed the custom post %PostTitle% of type %PostType%. View the post: %PostUrl%."
|
849 |
msgstr ""
|
850 |
|
851 |
-
#: defaults.php:
|
852 |
msgid "A plugin created a custom post"
|
853 |
msgstr ""
|
854 |
|
855 |
-
#: defaults.php:
|
856 |
msgid "A plugin automatically created the following custom post: %PostTitle%."
|
857 |
msgstr ""
|
858 |
|
859 |
-
#: defaults.php:
|
860 |
msgid "A plugin deleted a custom post"
|
861 |
msgstr ""
|
862 |
|
863 |
-
#: defaults.php:
|
864 |
msgid "A plugin automatically deleted the following custom post: %PostTitle%."
|
865 |
msgstr ""
|
866 |
|
867 |
-
#: defaults.php:
|
868 |
msgid "A plugin modified a custom post"
|
869 |
msgstr ""
|
870 |
|
871 |
-
#: defaults.php:
|
872 |
msgid "Plugin modified the custom post %PostTitle%. View the post: %EditorLinkPost%."
|
873 |
msgstr ""
|
874 |
|
875 |
-
#: defaults.php:
|
876 |
msgid "Pages"
|
877 |
msgstr ""
|
878 |
|
879 |
-
#: defaults.php:
|
880 |
msgid "User created a new WordPress page and saved it as draft"
|
881 |
msgstr ""
|
882 |
|
883 |
-
#: defaults.php:
|
884 |
msgid "Created a new page called %PostTitle% and saved it as draft. %EditorLinkPage%."
|
885 |
msgstr ""
|
886 |
|
887 |
-
#: defaults.php:
|
888 |
msgid "User published a WordPress page"
|
889 |
msgstr ""
|
890 |
|
891 |
-
#: defaults.php:
|
892 |
msgid "Published a page called %PostTitle%. Page URL is %PostUrl%. %EditorLinkPage%."
|
893 |
msgstr ""
|
894 |
|
895 |
-
#: defaults.php:
|
896 |
msgid "User modified a published WordPress page"
|
897 |
msgstr ""
|
898 |
|
899 |
-
#: defaults.php:
|
900 |
msgid "Modified the published page %PostTitle%. Page URL is %PostUrl%. %EditorLinkPage%."
|
901 |
msgstr ""
|
902 |
|
903 |
-
#: defaults.php:
|
904 |
msgid "User modified a draft WordPress page"
|
905 |
msgstr ""
|
906 |
|
907 |
-
#: defaults.php:
|
908 |
msgid "Modified the draft page %PostTitle%. Page ID is %PostID%. %EditorLinkPage%."
|
909 |
msgstr ""
|
910 |
|
911 |
-
#: defaults.php:
|
912 |
msgid "User permanently deleted a page from the trash"
|
913 |
msgstr ""
|
914 |
|
915 |
-
#: defaults.php:
|
916 |
msgid "Permanently deleted the page %PostTitle%."
|
917 |
msgstr ""
|
918 |
|
919 |
-
#: defaults.php:
|
920 |
msgid "User moved WordPress page to the trash"
|
921 |
msgstr ""
|
922 |
|
923 |
-
#: defaults.php:
|
924 |
msgid "Moved the page %PostTitle% to trash. Page URL was %PostUrl%."
|
925 |
msgstr ""
|
926 |
|
927 |
-
#: defaults.php:
|
928 |
msgid "User restored a WordPress page from trash"
|
929 |
msgstr ""
|
930 |
|
931 |
-
#: defaults.php:
|
932 |
msgid "Page %PostTitle% has been restored from trash. %EditorLinkPage%."
|
933 |
msgstr ""
|
934 |
|
935 |
-
#: defaults.php:
|
936 |
msgid "User changed page URL"
|
937 |
msgstr ""
|
938 |
|
939 |
-
#: defaults.php:
|
940 |
msgid "Changed the URL of the page %PostTitle% from %OldUrl% to %NewUrl%. %EditorLinkPage%."
|
941 |
msgstr ""
|
942 |
|
943 |
-
#: defaults.php:
|
944 |
msgid "User changed page author"
|
945 |
msgstr ""
|
946 |
|
947 |
-
#: defaults.php:
|
948 |
msgid "Changed the author of the page %PostTitle% from %OldAuthor% to %NewAuthor%. %EditorLinkPage%."
|
949 |
msgstr ""
|
950 |
|
951 |
-
#: defaults.php:
|
952 |
msgid "User changed page status"
|
953 |
msgstr ""
|
954 |
|
955 |
-
#: defaults.php:
|
956 |
msgid "Changed the status of the page %PostTitle% from %OldStatus% to %NewStatus%. %EditorLinkPage%."
|
957 |
msgstr ""
|
958 |
|
959 |
-
#: defaults.php:
|
960 |
msgid "User changed the visibility of a page post"
|
961 |
msgstr ""
|
962 |
|
963 |
-
#: defaults.php:
|
964 |
msgid "Changed the visibility of the page %PostTitle% from %OldVisibility% to %NewVisibility%. %EditorLinkPage%."
|
965 |
msgstr ""
|
966 |
|
967 |
-
#: defaults.php:
|
968 |
msgid "User changed the date of a page post"
|
969 |
msgstr ""
|
970 |
|
971 |
-
#: defaults.php:
|
972 |
msgid "Changed the date of the page %PostTitle% from %OldDate% to %NewDate%. %EditorLinkPage%."
|
973 |
msgstr ""
|
974 |
|
975 |
-
#: defaults.php:
|
976 |
msgid "User created a custom field for a page"
|
977 |
msgstr ""
|
978 |
|
979 |
-
#: defaults.php:
|
980 |
msgid "User updated a custom field value for a page"
|
981 |
msgstr ""
|
982 |
|
983 |
-
#: defaults.php:
|
984 |
msgid "User deleted a custom field from a page"
|
985 |
msgstr ""
|
986 |
|
987 |
-
#: defaults.php:
|
988 |
msgid "User updated a custom field name for a page"
|
989 |
msgstr ""
|
990 |
|
991 |
-
#: defaults.php:
|
992 |
msgid "User modified content for a published page"
|
993 |
msgstr ""
|
994 |
|
995 |
-
#: defaults.php:
|
996 |
msgid "Modified the content of the published page %PostTitle%. Page URL is %PostUrl%. %RevisionLink% %EditorLinkPage%."
|
997 |
msgstr ""
|
998 |
|
999 |
-
#: defaults.php:
|
1000 |
msgid "User modified content for a draft page"
|
1001 |
msgstr ""
|
1002 |
|
1003 |
-
#: defaults.php:
|
1004 |
msgid "User scheduled a page"
|
1005 |
msgstr ""
|
1006 |
|
1007 |
-
#: defaults.php:
|
1008 |
msgid "User changed title of a page"
|
1009 |
msgstr ""
|
1010 |
|
1011 |
-
#: defaults.php:
|
1012 |
msgid "User opened a page in the editor"
|
1013 |
msgstr ""
|
1014 |
|
1015 |
-
#: defaults.php:
|
1016 |
msgid "Opened the page %PostTitle% in the editor. View the page: %EditorLinkPage%."
|
1017 |
msgstr ""
|
1018 |
|
1019 |
-
#: defaults.php:
|
1020 |
msgid "User viewed a page"
|
1021 |
msgstr ""
|
1022 |
|
1023 |
-
#: defaults.php:
|
1024 |
msgid "Viewed the page %PostTitle%. View the page: %PostUrl%."
|
1025 |
msgstr ""
|
1026 |
|
1027 |
-
#: defaults.php:
|
1028 |
msgid "User disabled Comments/Trackbacks and Pingbacks on a draft post"
|
1029 |
msgstr ""
|
1030 |
|
1031 |
-
#: defaults.php:
|
1032 |
msgid "Disabled %Type% on the draft post %PostTitle%. View the post: %PostUrl%."
|
1033 |
msgstr ""
|
1034 |
|
1035 |
-
#: defaults.php:
|
1036 |
msgid "User enabled Comments/Trackbacks and Pingbacks on a draft post"
|
1037 |
msgstr ""
|
1038 |
|
1039 |
-
#: defaults.php:
|
1040 |
msgid "Enabled %Type% on the draft post %PostTitle%. View the post: %PostUrl%."
|
1041 |
msgstr ""
|
1042 |
|
1043 |
-
#: defaults.php:
|
1044 |
msgid "User disabled Comments/Trackbacks and Pingbacks on a published page"
|
1045 |
msgstr ""
|
1046 |
|
1047 |
-
#: defaults.php:
|
1048 |
msgid "Disabled %Type% on the published page %PostTitle%. View the page: %PostUrl%."
|
1049 |
msgstr ""
|
1050 |
|
1051 |
-
#: defaults.php:
|
1052 |
msgid "User enabled Comments/Trackbacks and Pingbacks on a published page"
|
1053 |
msgstr ""
|
1054 |
|
1055 |
-
#: defaults.php:
|
1056 |
msgid "Enabled %Type% on the published page %PostTitle%. View the page: %PostUrl%."
|
1057 |
msgstr ""
|
1058 |
|
1059 |
-
#: defaults.php:
|
1060 |
msgid "User disabled Comments/Trackbacks and Pingbacks on a draft page"
|
1061 |
msgstr ""
|
1062 |
|
1063 |
-
#: defaults.php:
|
1064 |
msgid "Disabled %Type% on the draft page %PostTitle%. View the page: %PostUrl%."
|
1065 |
msgstr ""
|
1066 |
|
1067 |
-
#: defaults.php:
|
1068 |
msgid "User enabled Comments/Trackbacks and Pingbacks on a draft page"
|
1069 |
msgstr ""
|
1070 |
|
1071 |
-
#: defaults.php:
|
1072 |
msgid "Enabled %Type% on the draft page %PostTitle%. View the page: %PostUrl%."
|
1073 |
msgstr ""
|
1074 |
|
1075 |
-
#: defaults.php:
|
1076 |
msgid "A plugin created a page"
|
1077 |
msgstr ""
|
1078 |
|
1079 |
-
#: defaults.php:
|
1080 |
msgid "A plugin automatically created the following page: %PostTitle%."
|
1081 |
msgstr ""
|
1082 |
|
1083 |
-
#: defaults.php:
|
1084 |
msgid "A plugin deleted a page"
|
1085 |
msgstr ""
|
1086 |
|
1087 |
-
#: defaults.php:
|
1088 |
msgid "A plugin automatically deleted the following page: %PostTitle%."
|
1089 |
msgstr ""
|
1090 |
|
1091 |
-
#: defaults.php:
|
1092 |
msgid "A plugin modified a page"
|
1093 |
msgstr ""
|
1094 |
|
1095 |
-
#: defaults.php:
|
1096 |
msgid "Plugin modified the page %PostTitle%. View the page: %EditorLinkPage%."
|
1097 |
msgstr ""
|
1098 |
|
1099 |
-
#: defaults.php:
|
1100 |
msgid "User Accounts"
|
1101 |
msgstr ""
|
1102 |
|
1103 |
-
#: defaults.php:
|
1104 |
msgid "User Profiles"
|
1105 |
msgstr ""
|
1106 |
|
1107 |
-
#: defaults.php:
|
1108 |
msgid "New user was created on WordPress"
|
1109 |
msgstr ""
|
1110 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1111 |
#: defaults.php:304
|
1112 |
-
msgid "
|
|
|
|
|
|
|
|
|
1113 |
msgstr ""
|
1114 |
|
1115 |
#: defaults.php:305
|
1116 |
-
msgid "User
|
1117 |
msgstr ""
|
1118 |
|
1119 |
#: defaults.php:305
|
1120 |
-
msgid "
|
1121 |
msgstr ""
|
1122 |
|
1123 |
#: defaults.php:306
|
1124 |
-
msgid "
|
1125 |
msgstr ""
|
1126 |
|
1127 |
#: defaults.php:306
|
1128 |
-
msgid "Changed the
|
1129 |
msgstr ""
|
1130 |
|
1131 |
#: defaults.php:307
|
1132 |
-
msgid "User
|
1133 |
msgstr ""
|
1134 |
|
1135 |
#: defaults.php:307
|
1136 |
-
msgid "
|
1137 |
msgstr ""
|
1138 |
|
1139 |
#: defaults.php:308
|
1140 |
-
msgid "User
|
1141 |
msgstr ""
|
1142 |
|
1143 |
#: defaults.php:308
|
1144 |
-
msgid "
|
1145 |
msgstr ""
|
1146 |
|
1147 |
#: defaults.php:309
|
1148 |
-
msgid "User
|
1149 |
msgstr ""
|
1150 |
|
1151 |
#: defaults.php:309
|
1152 |
-
msgid "Changed the
|
1153 |
msgstr ""
|
1154 |
|
1155 |
#: defaults.php:310
|
1156 |
-
msgid "User
|
1157 |
msgstr ""
|
1158 |
|
1159 |
#: defaults.php:310
|
1160 |
-
msgid "
|
1161 |
msgstr ""
|
1162 |
|
1163 |
#: defaults.php:311
|
1164 |
-
msgid "User
|
1165 |
msgstr ""
|
1166 |
|
1167 |
#: defaults.php:311
|
1168 |
-
msgid "
|
1169 |
msgstr ""
|
1170 |
|
1171 |
#: defaults.php:312
|
1172 |
-
msgid "User
|
1173 |
msgstr ""
|
1174 |
|
1175 |
#: defaults.php:312
|
1176 |
-
msgid "
|
1177 |
msgstr ""
|
1178 |
|
1179 |
#: defaults.php:313
|
1180 |
-
msgid "User
|
1181 |
msgstr ""
|
1182 |
|
1183 |
#: defaults.php:313
|
1184 |
-
msgid "Changed the
|
1185 |
msgstr ""
|
1186 |
|
1187 |
#: defaults.php:314
|
1188 |
-
msgid "User
|
1189 |
msgstr ""
|
1190 |
|
1191 |
#: defaults.php:314
|
1192 |
-
msgid "
|
1193 |
msgstr ""
|
1194 |
|
1195 |
-
#: defaults.php:
|
1196 |
-
msgid "User
|
1197 |
-
msgstr ""
|
1198 |
-
|
1199 |
-
#: defaults.php:315
|
1200 |
-
msgid "Changed the first name of the user %TargetUsername% %LineBreak% Previous name: %old_firstname% %LineBreak% New name: %new_firstname% %LineBreak% Role: %Roles% %LineBreak% Last name: %LastName% %LineBreak% %EditUserLink%"
|
1201 |
msgstr ""
|
1202 |
|
1203 |
#: defaults.php:316
|
1204 |
-
msgid "
|
1205 |
msgstr ""
|
1206 |
|
1207 |
-
#: defaults.php:
|
1208 |
-
msgid "
|
1209 |
msgstr ""
|
1210 |
|
1211 |
-
#: defaults.php:
|
1212 |
-
msgid "User
|
1213 |
msgstr ""
|
1214 |
|
1215 |
-
#: defaults.php:
|
1216 |
-
msgid "
|
1217 |
msgstr ""
|
1218 |
|
1219 |
-
#: defaults.php:
|
1220 |
-
msgid "User
|
1221 |
msgstr ""
|
1222 |
|
1223 |
-
#: defaults.php:
|
1224 |
-
msgid "
|
1225 |
msgstr ""
|
1226 |
|
1227 |
-
#: defaults.php:
|
1228 |
msgid "Multisite User Profiles"
|
1229 |
msgstr ""
|
1230 |
|
1231 |
-
#: defaults.php:
|
1232 |
msgid "User granted Super Admin privileges"
|
1233 |
msgstr ""
|
1234 |
|
1235 |
-
#: defaults.php:
|
1236 |
-
msgid "Granted Super Admin privileges to %TargetUsername% %LineBreak% First name: %FirstName% %LineBreak% Last name: %LastName% %LineBreak% %EditUserLink%"
|
1237 |
msgstr ""
|
1238 |
|
1239 |
-
#: defaults.php:
|
1240 |
msgid "User revoked from Super Admin privileges"
|
1241 |
msgstr ""
|
1242 |
|
1243 |
-
#: defaults.php:
|
1244 |
-
msgid "Revoked Super Admin privileges from %TargetUsername% %LineBreak% First name: %FirstName% %LineBreak% Last name: %LastName% %LineBreak% %EditUserLink%"
|
1245 |
msgstr ""
|
1246 |
|
1247 |
-
#: defaults.php:
|
1248 |
msgid "Existing user added to a site"
|
1249 |
msgstr ""
|
1250 |
|
1251 |
-
#: defaults.php:
|
1252 |
msgid "Added user %TargetUsername% to site: %SiteName% %LineBreak% Role: %TargetUserRole% %LineBreak% First name: %FirstName% %LineBreak% Last name: %LastName% %LineBreak% %EditUserLink%"
|
1253 |
msgstr ""
|
1254 |
|
1255 |
-
#: defaults.php:
|
1256 |
msgid "User removed from site"
|
1257 |
msgstr ""
|
1258 |
|
1259 |
-
#: defaults.php:
|
1260 |
-
msgid "Removed user %TargetUsername% from site: %SiteName% %LineBreak%
|
1261 |
msgstr ""
|
1262 |
|
1263 |
-
#: defaults.php:
|
1264 |
msgid "New network user created"
|
1265 |
msgstr ""
|
1266 |
|
1267 |
-
#: defaults.php:
|
1268 |
msgid "Created a new network user %NewUserData->Username% %LineBreak% First name: %NewUserData->FirstName% %LineBreak% Last name: %NewUserData->LastName% %LineBreak% %EditUserLink%"
|
1269 |
msgstr ""
|
1270 |
|
1271 |
-
#: defaults.php:
|
1272 |
msgid "Plugins & Themes"
|
1273 |
msgstr ""
|
1274 |
|
1275 |
-
#: defaults.php:
|
1276 |
msgid "Plugins"
|
1277 |
msgstr ""
|
1278 |
|
1279 |
-
#: defaults.php:
|
1280 |
msgid "User installed a plugin"
|
1281 |
msgstr ""
|
1282 |
|
1283 |
-
#: defaults.php:
|
1284 |
-
msgid "Name: %Plugin->Name% %LineBreak% Install location: %Plugin->plugin_dir_path%"
|
1285 |
msgstr ""
|
1286 |
|
1287 |
-
#: defaults.php:
|
1288 |
msgid "User activated a WordPress plugin"
|
1289 |
msgstr ""
|
1290 |
|
1291 |
-
#: defaults.php:
|
1292 |
-
msgid "Name: %PluginData->Name% %LineBreak% Install location: %PluginFile%"
|
1293 |
msgstr ""
|
1294 |
|
1295 |
-
#: defaults.php:
|
1296 |
msgid "User deactivated a WordPress plugin"
|
1297 |
msgstr ""
|
1298 |
|
1299 |
-
#: defaults.php:
|
1300 |
msgid "User uninstalled a plugin"
|
1301 |
msgstr ""
|
1302 |
|
1303 |
-
#: defaults.php:
|
1304 |
msgid "User upgraded a plugin"
|
1305 |
msgstr ""
|
1306 |
|
1307 |
-
#: defaults.php:
|
|
|
|
|
|
|
|
|
1308 |
msgid "Plugin created table"
|
1309 |
msgstr ""
|
1310 |
|
1311 |
-
#: defaults.php:
|
1312 |
-
msgid "Plugin created this table in the database %LineBreak%
|
1313 |
msgstr ""
|
1314 |
|
1315 |
-
#: defaults.php:
|
1316 |
msgid "Plugin modified table structure"
|
1317 |
msgstr ""
|
1318 |
|
1319 |
-
#: defaults.php:
|
1320 |
-
msgid "Plugin modified the structure of this table %LineBreak%
|
1321 |
msgstr ""
|
1322 |
|
1323 |
-
#: defaults.php:
|
1324 |
msgid "Plugin deleted table"
|
1325 |
msgstr ""
|
1326 |
|
1327 |
-
#: defaults.php:
|
1328 |
-
msgid "Plugin deleted this table from the database %LineBreak%
|
1329 |
msgstr ""
|
1330 |
|
1331 |
-
#: defaults.php:
|
1332 |
msgid "A plugin created a post"
|
1333 |
msgstr ""
|
1334 |
|
1335 |
-
#: defaults.php:
|
1336 |
-
msgid "Plugin
|
1337 |
msgstr ""
|
1338 |
|
1339 |
-
#: defaults.php:
|
1340 |
msgid "A plugin deleted a post"
|
1341 |
msgstr ""
|
1342 |
|
1343 |
-
#: defaults.php:
|
1344 |
-
msgid "Plugin
|
1345 |
msgstr ""
|
1346 |
|
1347 |
-
#: defaults.php:
|
1348 |
msgid "User changed a file using the plugin editor"
|
1349 |
msgstr ""
|
1350 |
|
1351 |
-
#: defaults.php:
|
1352 |
msgid "Modified a file with the plugin editor %LineBreak% File: %File%"
|
1353 |
msgstr ""
|
1354 |
|
1355 |
-
#: defaults.php:
|
1356 |
msgid "Themes"
|
1357 |
msgstr ""
|
1358 |
|
1359 |
-
#: defaults.php:
|
1360 |
msgid "User installed a theme"
|
1361 |
msgstr ""
|
1362 |
|
1363 |
-
#: defaults.php:
|
1364 |
-
msgid "
|
1365 |
msgstr ""
|
1366 |
|
1367 |
-
#: defaults.php:
|
1368 |
msgid "User activated a theme"
|
1369 |
msgstr ""
|
1370 |
|
1371 |
-
#: defaults.php:
|
1372 |
-
msgid "Theme \"%Theme->Name%\" %LineBreak% Install location: %Theme->get_template_directory%"
|
1373 |
-
msgstr ""
|
1374 |
-
|
1375 |
-
#: defaults.php:348
|
1376 |
msgid "User uninstalled a theme"
|
1377 |
msgstr ""
|
1378 |
|
1379 |
-
#: defaults.php:
|
1380 |
msgid "Theme created tables"
|
1381 |
msgstr ""
|
1382 |
|
1383 |
-
#: defaults.php:
|
1384 |
-
msgid "Theme created
|
1385 |
msgstr ""
|
1386 |
|
1387 |
-
#: defaults.php:
|
1388 |
msgid "Theme modified tables structure"
|
1389 |
msgstr ""
|
1390 |
|
1391 |
-
#: defaults.php:
|
1392 |
-
msgid "Theme modified the structure of
|
1393 |
msgstr ""
|
1394 |
|
1395 |
-
#: defaults.php:
|
1396 |
msgid "Theme deleted tables"
|
1397 |
msgstr ""
|
1398 |
|
1399 |
-
#: defaults.php:
|
1400 |
-
msgid "Theme deleted
|
1401 |
msgstr ""
|
1402 |
|
1403 |
-
#: defaults.php:
|
1404 |
msgid "User updated a theme"
|
1405 |
msgstr ""
|
1406 |
|
1407 |
-
#: defaults.php:
|
1408 |
-
msgid "Name: %Theme->Name% %LineBreak% Install location: %Theme->get_template_directory%"
|
1409 |
msgstr ""
|
1410 |
|
1411 |
-
#: defaults.php:
|
1412 |
msgid "User changed a file using the theme editor"
|
1413 |
msgstr ""
|
1414 |
|
1415 |
-
#: defaults.php:
|
1416 |
msgid "Modified a file with the theme editor %LineBreak% File: %Theme%/%File%"
|
1417 |
msgstr ""
|
1418 |
|
1419 |
-
#: defaults.php:
|
1420 |
msgid "Themes on Multisite"
|
1421 |
msgstr ""
|
1422 |
|
1423 |
-
#: defaults.php:
|
1424 |
msgid "Activated theme on network"
|
1425 |
msgstr ""
|
1426 |
|
1427 |
-
#: defaults.php:
|
1428 |
-
msgid "Network activated the theme %Theme->Name% %LineBreak% Install location: %Theme->get_template_directory%"
|
1429 |
msgstr ""
|
1430 |
|
1431 |
-
#: defaults.php:
|
1432 |
msgid "Deactivated theme from network"
|
1433 |
msgstr ""
|
1434 |
|
1435 |
-
#: defaults.php:
|
1436 |
-
msgid "Network deactivated the theme %Theme->Name% %LineBreak% Install location: %Theme->get_template_directory%"
|
1437 |
msgstr ""
|
1438 |
|
1439 |
-
#: defaults.php:
|
1440 |
msgid "Database Events"
|
1441 |
msgstr ""
|
1442 |
|
1443 |
-
#: defaults.php:
|
1444 |
msgid "Unknown component created tables"
|
1445 |
msgstr ""
|
1446 |
|
1447 |
-
#: defaults.php:
|
1448 |
msgid "An unknown component created these tables in the database %LineBreak% Tables: %TableNames%"
|
1449 |
msgstr ""
|
1450 |
|
1451 |
-
#: defaults.php:
|
1452 |
msgid "Unknown component modified tables structure"
|
1453 |
msgstr ""
|
1454 |
|
1455 |
-
#: defaults.php:
|
1456 |
msgid "An unknown component modified the structure of these database tables %LineBreak% Tables: %TableNames%"
|
1457 |
msgstr ""
|
1458 |
|
1459 |
-
#: defaults.php:
|
1460 |
msgid "Unknown component deleted tables"
|
1461 |
msgstr ""
|
1462 |
|
1463 |
-
#: defaults.php:
|
1464 |
msgid "An unknown component deleted these tables from the database %LineBreak% Tables: %TableNames%"
|
1465 |
msgstr ""
|
1466 |
|
1467 |
-
#: defaults.php:
|
1468 |
msgid "WordPress created tables"
|
1469 |
msgstr ""
|
1470 |
|
1471 |
-
#: defaults.php:
|
1472 |
msgid "WordPress created these tables in the database %LineBreak% Tables: %TableNames%"
|
1473 |
msgstr ""
|
1474 |
|
1475 |
-
#: defaults.php:
|
1476 |
msgid "WordPress modified tables structure"
|
1477 |
msgstr ""
|
1478 |
|
1479 |
-
#: defaults.php:
|
1480 |
msgid "WordPress modified the structure of these database tables %LineBreak% Tables: %TableNames%"
|
1481 |
msgstr ""
|
1482 |
|
1483 |
-
#: defaults.php:
|
1484 |
msgid "WordPress deleted tables"
|
1485 |
msgstr ""
|
1486 |
|
1487 |
-
#: defaults.php:
|
1488 |
msgid "WordPress deleted these tables from the database %LineBreak% Tables: %TableNames%"
|
1489 |
msgstr ""
|
1490 |
|
1491 |
-
#: defaults.php:
|
1492 |
msgid "WordPress & System"
|
1493 |
msgstr ""
|
1494 |
|
1495 |
-
#: defaults.php:
|
1496 |
msgid "System"
|
1497 |
msgstr ""
|
1498 |
|
1499 |
-
#: defaults.php:
|
1500 |
msgid "Unknown Error"
|
1501 |
msgstr ""
|
1502 |
|
1503 |
-
#: defaults.php:
|
1504 |
msgid "An unexpected error has occurred ."
|
1505 |
msgstr ""
|
1506 |
|
1507 |
-
#: defaults.php:
|
1508 |
msgid "PHP error"
|
1509 |
msgstr ""
|
1510 |
|
1511 |
-
#: defaults.php:
|
1512 |
msgid "%Message%."
|
1513 |
msgstr ""
|
1514 |
|
1515 |
-
#: defaults.php:
|
1516 |
msgid "PHP warning"
|
1517 |
msgstr ""
|
1518 |
|
1519 |
-
#: defaults.php:
|
1520 |
msgid "PHP notice"
|
1521 |
msgstr ""
|
1522 |
|
1523 |
-
#: defaults.php:
|
1524 |
msgid "PHP exception"
|
1525 |
msgstr ""
|
1526 |
|
1527 |
-
#: defaults.php:
|
1528 |
msgid "PHP shutdown error"
|
1529 |
msgstr ""
|
1530 |
|
1531 |
-
#: defaults.php:
|
1532 |
msgid "WordPress was updated"
|
1533 |
msgstr ""
|
1534 |
|
1535 |
-
#: defaults.php:
|
1536 |
msgid "Updated WordPress %LineBreak% Previous version: %OldVersion% %LineBreak% New version: %NewVersion%"
|
1537 |
msgstr ""
|
1538 |
|
1539 |
-
#: defaults.php:
|
1540 |
msgid "Advertising Extensions"
|
1541 |
msgstr ""
|
1542 |
|
1543 |
-
#: defaults.php:
|
1544 |
msgid "%PromoName% %PromoMessage%"
|
1545 |
msgstr ""
|
1546 |
|
1547 |
-
#: defaults.php:
|
1548 |
msgid "Activity log plugin"
|
1549 |
msgstr ""
|
1550 |
|
1551 |
-
#: defaults.php:
|
1552 |
msgid "Events automatically pruned by system"
|
1553 |
msgstr ""
|
1554 |
|
1555 |
-
#: defaults.php:
|
1556 |
-
msgid "System automatically deleted %EventCount%
|
1557 |
msgstr ""
|
1558 |
|
1559 |
-
#: defaults.php:
|
1560 |
msgid "Reset the plugin's settings to default"
|
1561 |
msgstr ""
|
1562 |
|
1563 |
-
#: defaults.php:
|
1564 |
-
msgid "Reset the
|
1565 |
msgstr ""
|
1566 |
|
1567 |
-
#: defaults.php:
|
1568 |
msgid "Purged the activity log"
|
1569 |
msgstr ""
|
1570 |
|
1571 |
-
#: defaults.php:
|
1572 |
msgid "Some WP Activity Log plugin settings on this site were propagated and overridden from the MainWP dashboard"
|
1573 |
msgstr ""
|
1574 |
|
1575 |
-
#: defaults.php:
|
1576 |
msgid "Some WP Activity Log plugin settings on this site were propagated and overridden from the MainWP dashboard."
|
1577 |
msgstr ""
|
1578 |
|
1579 |
-
#: defaults.php:
|
1580 |
msgid "WordPress Site Settings"
|
1581 |
msgstr ""
|
1582 |
|
1583 |
-
#: defaults.php:
|
1584 |
msgid "Option Anyone Can Register in WordPress settings changed"
|
1585 |
msgstr ""
|
1586 |
|
1587 |
-
#: defaults.php:
|
1588 |
-
msgid "The
|
1589 |
msgstr ""
|
1590 |
|
1591 |
-
#: defaults.php:
|
1592 |
msgid "New User Default Role changed"
|
1593 |
msgstr ""
|
1594 |
|
1595 |
-
#: defaults.php:
|
1596 |
-
msgid "Changed the
|
1597 |
msgstr ""
|
1598 |
|
1599 |
-
#: defaults.php:
|
1600 |
msgid "WordPress Administrator Notification email changed"
|
1601 |
msgstr ""
|
1602 |
|
1603 |
-
#: defaults.php:
|
1604 |
-
msgid "
|
1605 |
msgstr ""
|
1606 |
|
1607 |
-
#: defaults.php:
|
1608 |
msgid "User changes the WordPress Permalinks"
|
1609 |
msgstr ""
|
1610 |
|
1611 |
-
#: defaults.php:
|
1612 |
msgid "Changed the WordPress permalinks %LineBreak% Previous permalinks: %OldPattern% %LineBreak% New permalinks: %NewPattern%"
|
1613 |
msgstr ""
|
1614 |
|
1615 |
-
#: defaults.php:
|
1616 |
msgid "Enabled/Disabled the option Discourage search engines from indexing this site"
|
1617 |
msgstr ""
|
1618 |
|
1619 |
-
#: defaults.php:
|
1620 |
-
msgid "Discourage search engines from indexing this site
|
1621 |
msgstr ""
|
1622 |
|
1623 |
-
#: defaults.php:
|
1624 |
msgid "Enabled/Disabled comments on all the website"
|
1625 |
msgstr ""
|
1626 |
|
1627 |
-
#: defaults.php:
|
1628 |
msgid "Comments on the website"
|
1629 |
msgstr ""
|
1630 |
|
1631 |
-
#: defaults.php:
|
1632 |
msgid "Enabled/Disabled the option Comment author must fill out name and email"
|
1633 |
msgstr ""
|
1634 |
|
1635 |
-
#: defaults.php:
|
1636 |
-
msgid "The
|
1637 |
msgstr ""
|
1638 |
|
1639 |
-
#: defaults.php:
|
1640 |
msgid "Enabled/Disabled the option Users must be logged in and registered to comment"
|
1641 |
msgstr ""
|
1642 |
|
1643 |
-
#: defaults.php:
|
1644 |
-
msgid "The
|
1645 |
msgstr ""
|
1646 |
|
1647 |
-
#: defaults.php:
|
1648 |
msgid "Enabled/Disabled the option to automatically close comments"
|
1649 |
msgstr ""
|
1650 |
|
1651 |
-
#: defaults.php:
|
1652 |
-
msgid "The
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1653 |
msgstr ""
|
1654 |
|
1655 |
-
#: defaults.php:
|
1656 |
-
msgid "Changed the
|
1657 |
msgstr ""
|
1658 |
|
1659 |
-
#: defaults.php:
|
1660 |
-
msgid "
|
1661 |
msgstr ""
|
1662 |
|
1663 |
-
#: defaults.php:
|
1664 |
-
msgid "
|
1665 |
msgstr ""
|
1666 |
|
1667 |
-
#: defaults.php:
|
1668 |
-
msgid "
|
1669 |
msgstr ""
|
1670 |
|
1671 |
-
#: defaults.php:
|
1672 |
-
msgid "
|
1673 |
msgstr ""
|
1674 |
|
1675 |
-
#: defaults.php:
|
1676 |
-
msgid "
|
1677 |
msgstr ""
|
1678 |
|
1679 |
-
#: defaults.php:
|
1680 |
-
msgid "Changed the
|
1681 |
msgstr ""
|
1682 |
|
1683 |
-
#: defaults.php:
|
1684 |
-
msgid "
|
1685 |
msgstr ""
|
1686 |
|
1687 |
-
#: defaults.php:
|
1688 |
-
msgid "
|
1689 |
msgstr ""
|
1690 |
|
1691 |
-
#: defaults.php:
|
1692 |
-
msgid "
|
1693 |
msgstr ""
|
1694 |
|
1695 |
-
#: defaults.php:
|
1696 |
-
msgid "
|
1697 |
msgstr ""
|
1698 |
|
1699 |
-
#: defaults.php:
|
1700 |
-
msgid "Option
|
1701 |
msgstr ""
|
1702 |
|
1703 |
-
#: defaults.php:
|
1704 |
-
msgid "
|
1705 |
msgstr ""
|
1706 |
|
1707 |
-
#: defaults.php:
|
1708 |
-
msgid "Option
|
1709 |
msgstr ""
|
1710 |
|
1711 |
-
#: defaults.php:
|
1712 |
-
msgid "
|
1713 |
msgstr ""
|
1714 |
|
1715 |
-
#: defaults.php:
|
1716 |
msgid "Multisite Network Sites"
|
1717 |
msgstr ""
|
1718 |
|
1719 |
-
#: defaults.php:
|
1720 |
msgid "MultiSite"
|
1721 |
msgstr ""
|
1722 |
|
1723 |
-
#: defaults.php:
|
1724 |
msgid "New site added on the network"
|
1725 |
msgstr ""
|
1726 |
|
1727 |
-
#: defaults.php:
|
1728 |
msgid "New site on the network: %SiteName% %LineBreak% URL: %BlogURL%"
|
1729 |
msgstr ""
|
1730 |
|
1731 |
-
#: defaults.php:
|
1732 |
msgid "Existing site archived"
|
1733 |
msgstr ""
|
1734 |
|
1735 |
-
#: defaults.php:
|
1736 |
msgid "Archived the site: %SiteName% %LineBreak% URL: %BlogURL%"
|
1737 |
msgstr ""
|
1738 |
|
1739 |
-
#: defaults.php:
|
1740 |
msgid "Archived site has been unarchived"
|
1741 |
msgstr ""
|
1742 |
|
1743 |
-
#: defaults.php:
|
1744 |
msgid "Unarchived the site: %SiteName% %LineBreak% URL: %BlogURL%"
|
1745 |
msgstr ""
|
1746 |
|
1747 |
-
#: defaults.php:
|
1748 |
msgid "Deactivated site has been activated"
|
1749 |
msgstr ""
|
1750 |
|
1751 |
-
#: defaults.php:
|
1752 |
msgid "Activated the site: %SiteName% %LineBreak% URL: %BlogURL%"
|
1753 |
msgstr ""
|
1754 |
|
1755 |
-
#: defaults.php:
|
1756 |
msgid "Site has been deactivated"
|
1757 |
msgstr ""
|
1758 |
|
1759 |
-
#: defaults.php:
|
1760 |
msgid "Deactivated the site: %SiteName% %LineBreak% URL: %BlogURL%"
|
1761 |
msgstr ""
|
1762 |
|
1763 |
-
#: defaults.php:
|
1764 |
msgid "Existing site deleted from network"
|
1765 |
msgstr ""
|
1766 |
|
1767 |
-
#: defaults.php:
|
1768 |
msgid "The site: %SiteName% %LineBreak% URL: %BlogURL%"
|
1769 |
msgstr ""
|
1770 |
|
1771 |
-
#: defaults.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1772 |
msgid "Allow new registrations settings changed"
|
1773 |
msgstr ""
|
1774 |
|
1775 |
-
#: defaults.php:
|
1776 |
msgid "Changed the <strong>Allow new registrations</strong> settings %LineBreak% Previous setting: %previous_setting% %LineBreak% New setting: %new_setting%"
|
1777 |
msgstr ""
|
1778 |
|
1779 |
-
#: defaults.php:
|
1780 |
msgid "File Changes"
|
1781 |
msgstr ""
|
1782 |
|
1783 |
-
#: defaults.php:
|
1784 |
msgid "Monitor File Changes"
|
1785 |
msgstr ""
|
1786 |
|
1787 |
-
#: defaults.php:
|
1788 |
msgid "Dummy"
|
1789 |
msgstr ""
|
1790 |
|
1791 |
#. translators: Username
|
1792 |
#. translators: Username
|
1793 |
-
#: wp-security-audit-log.php:
|
1794 |
msgid "Hey %1$s"
|
1795 |
msgstr ""
|
1796 |
|
1797 |
-
#: wp-security-audit-log.php:
|
1798 |
msgid "Never miss an important update! Opt-in to our security and feature updates notifications, and non-sensitive diagnostic tracking with freemius.com."
|
1799 |
msgstr ""
|
1800 |
|
1801 |
-
#: wp-security-audit-log.php:
|
1802 |
msgid "Note: "
|
1803 |
msgstr ""
|
1804 |
|
1805 |
-
#: wp-security-audit-log.php:
|
1806 |
msgid "NO ACTIVITY LOG ACTIVITY & DATA IS SENT BACK TO OUR SERVERS."
|
1807 |
msgstr ""
|
1808 |
|
1809 |
#. translators: 1: Plugin name. 2: Freemius link.
|
1810 |
-
#: wp-security-audit-log.php:
|
1811 |
msgid "Please help us improve %2$s! If you opt-in, some non-sensitive data about your usage of %2$s will be sent to %5$s, a diagnostic tracking service we use. If you skip this, that's okay! %2$s will still work just fine."
|
1812 |
msgstr ""
|
1813 |
|
1814 |
#. translators: Plugin name
|
1815 |
-
#: wp-security-audit-log.php:
|
1816 |
msgid "Get a free 7-day trial of the premium edition of %s. No credit card required, no commitments!"
|
1817 |
msgstr ""
|
1818 |
|
1819 |
-
#: wp-security-audit-log.php:
|
1820 |
msgid "WP Activity Log"
|
1821 |
msgstr ""
|
1822 |
|
1823 |
-
#: wp-security-audit-log.php:
|
1824 |
msgid "Start free trial"
|
1825 |
msgstr ""
|
1826 |
|
1827 |
-
#: wp-security-audit-log.php:
|
1828 |
msgid "You need to activate the licence key to use WP Activity Log Premium. %2$s"
|
1829 |
msgstr ""
|
1830 |
|
1831 |
-
#: wp-security-audit-log.php:
|
1832 |
msgid "Activate the licence key now"
|
1833 |
msgstr ""
|
1834 |
|
1835 |
#. translators: Number of sites
|
1836 |
-
#: wp-security-audit-log.php:
|
1837 |
msgid "The license is limited to %s sub-sites. You need to upgrade your license to cover all the sub-sites on this network."
|
1838 |
msgstr ""
|
1839 |
|
1840 |
-
#: wp-security-audit-log.php:
|
|
|
|
|
|
|
|
|
1841 |
msgid "Error: You do not have sufficient permissions to disable this custom field."
|
1842 |
msgstr ""
|
1843 |
|
1844 |
-
#: wp-security-audit-log.php:
|
1845 |
msgid "Custom Field <strong>%1$s</strong> is no longer being monitored.<br />Enable the monitoring of this custom field again from the"
|
1846 |
msgstr ""
|
1847 |
|
1848 |
-
#: wp-security-audit-log.php:
|
1849 |
msgid "Excluded Objects"
|
1850 |
msgstr ""
|
1851 |
|
1852 |
-
#: wp-security-audit-log.php:
|
1853 |
msgid " tab in the plugin settings"
|
1854 |
msgstr ""
|
1855 |
|
1856 |
-
#: wp-security-audit-log.php:
|
1857 |
msgid "Error: You do not have sufficient permissions to disable this alert."
|
1858 |
msgstr ""
|
1859 |
|
1860 |
-
#: wp-security-audit-log.php:
|
1861 |
msgid "Alert %1$s is no longer being monitored.<br /> %2$s"
|
1862 |
msgstr ""
|
1863 |
|
1864 |
-
#: wp-security-audit-log.php:
|
1865 |
msgid "You can enable this alert again from the Enable/Disable Alerts node in the plugin menu."
|
1866 |
msgstr ""
|
1867 |
|
1868 |
-
#: wp-security-audit-log.php:
|
1869 |
msgid "Installing, please wait"
|
1870 |
msgstr ""
|
1871 |
|
1872 |
-
#: wp-security-audit-log.php:
|
1873 |
msgid "Already installed"
|
1874 |
msgstr ""
|
1875 |
|
1876 |
-
#: wp-security-audit-log.php:
|
1877 |
msgid "Extension installed"
|
1878 |
msgstr ""
|
1879 |
|
1880 |
-
#: wp-security-audit-log.php:
|
1881 |
msgid "Extension activated"
|
1882 |
msgstr ""
|
1883 |
|
1884 |
-
#: wp-security-audit-log.php:
|
1885 |
msgid "Install failed"
|
1886 |
msgstr ""
|
1887 |
|
1888 |
#. translators: %s: PHP Version
|
1889 |
-
#: wp-security-audit-log.php:
|
1890 |
msgid "You are using a version of PHP that is older than %s, which is no longer supported."
|
1891 |
msgstr ""
|
1892 |
|
1893 |
-
#: wp-security-audit-log.php:
|
1894 |
msgid "Contact us on <a href=\"mailto:plugins@wpwhitesecurity.com\">plugins@wpwhitesecurity.com</a> to help you switch the version of PHP you are using."
|
1895 |
msgstr ""
|
1896 |
|
1897 |
#. translators: %s: Activity Log for MainWP plugin hyperlink
|
1898 |
-
#: wp-security-audit-log.php:
|
1899 |
msgid "Please install the %s plugin on the MainWP dashboard."
|
1900 |
msgstr ""
|
1901 |
|
1902 |
-
#: wp-security-audit-log.php:
|
1903 |
msgid "Activity Log for MainWP"
|
1904 |
msgstr ""
|
1905 |
|
1906 |
#. translators: %s: Getting started guide hyperlink
|
1907 |
-
#: wp-security-audit-log.php:
|
1908 |
msgid "The WP Activity Log should be installed on the child sites only. Refer to the %s for more information."
|
1909 |
msgstr ""
|
1910 |
|
1911 |
-
#: wp-security-audit-log.php:
|
1912 |
msgid "getting started guide"
|
1913 |
msgstr ""
|
1914 |
|
1915 |
-
#: wp-security-audit-log.php:
|
1916 |
-
msgid "This plugin uses 3 tables in the WordPress database to store the activity log and settings. It seems that these tables were not created."
|
1917 |
-
msgstr ""
|
1918 |
-
|
1919 |
-
#: wp-security-audit-log.php:1392
|
1920 |
-
msgid "This could happen because the database user does not have the right privileges to create the tables in the database. We recommend you to update the privileges and try enabling the plugin again."
|
1921 |
-
msgstr ""
|
1922 |
-
|
1923 |
-
#. translators: %s: Support Hyperlink
|
1924 |
-
#: wp-security-audit-log.php:1394
|
1925 |
-
msgid "If after doing so you still have issues, please send us an email on %s for assistance."
|
1926 |
-
msgstr ""
|
1927 |
-
|
1928 |
-
#: wp-security-audit-log.php:1394
|
1929 |
-
msgid "support@wpsecurityauditlog.com"
|
1930 |
-
msgstr ""
|
1931 |
-
|
1932 |
-
#: wp-security-audit-log.php:1906
|
1933 |
msgid "For security and auditing purposes, a record of all of your logged-in actions and changes within the WordPress dashboard will be recorded in an activity log with the <a href=\"https://wpactivitylog.com/\" target=\"_blank\">WP Activity Log plugin</a>. The audit log also includes the IP address where you accessed this site from."
|
1934 |
msgstr ""
|
1935 |
|
1936 |
-
#: wp-security-audit-log.php:
|
1937 |
msgid "Every 6 hours"
|
1938 |
msgstr ""
|
1939 |
|
1940 |
-
#: wp-security-audit-log.php:
|
1941 |
msgid "Every 45 minutes"
|
1942 |
msgstr ""
|
1943 |
|
1944 |
-
#: wp-security-audit-log.php:
|
1945 |
msgid "Every 30 minutes"
|
1946 |
msgstr ""
|
1947 |
|
1948 |
-
#: wp-security-audit-log.php:
|
1949 |
msgid "Every 15 minutes"
|
1950 |
msgstr ""
|
1951 |
|
1952 |
-
#: wp-security-audit-log.php:
|
1953 |
msgid "Every 10 minutes"
|
1954 |
msgstr ""
|
1955 |
|
1956 |
-
#: wp-security-audit-log.php:
|
1957 |
msgid "Every 1 minute"
|
1958 |
msgstr ""
|
1959 |
|
1960 |
#. translators: 1. Deprecated method name 2. Version since deprecated
|
1961 |
-
#: wp-security-audit-log.php:
|
1962 |
msgid "Method %1$s is deprecated since version %2$s!"
|
1963 |
msgstr ""
|
1964 |
|
1965 |
#. translators: Event ID
|
1966 |
-
#: classes/AlertManager.php:
|
1967 |
msgid "Event with code %d has not be registered."
|
1968 |
msgstr ""
|
1969 |
|
1970 |
#. translators: Event ID
|
1971 |
-
#: classes/AlertManager.php:
|
1972 |
msgid "Event %s already registered with WP Activity Log."
|
1973 |
msgstr ""
|
1974 |
|
1975 |
-
#: classes/AlertManager.php:
|
1976 |
msgid "You have custom events that are using the same ID or IDs which are already registered in the plugin, so they have been disabled."
|
1977 |
msgstr ""
|
1978 |
|
1979 |
#. translators: 1.CSS classes, 2. Notice, 3. Contact us link
|
1980 |
-
#: classes/AlertManager.php:
|
1981 |
msgid "%4$s to help you solve this issue."
|
1982 |
msgstr ""
|
1983 |
|
1984 |
-
#: classes/AlertManager.php:
|
1985 |
msgid "ERROR:"
|
1986 |
msgstr ""
|
1987 |
|
1988 |
-
#: classes/AlertManager.php:
|
1989 |
msgid "Contact us"
|
1990 |
msgstr ""
|
1991 |
|
1992 |
-
#: classes/AlertManager.php:
|
1993 |
msgid "User"
|
1994 |
msgstr ""
|
1995 |
|
1996 |
-
#: classes/AlertManager.php:
|
1997 |
msgid "Plugin"
|
1998 |
msgstr ""
|
1999 |
|
2000 |
-
#: classes/AlertManager.php:
|
2001 |
msgid "Database"
|
2002 |
msgstr ""
|
2003 |
|
2004 |
-
#: classes/AlertManager.php:
|
2005 |
msgid "Post"
|
2006 |
msgstr ""
|
2007 |
|
2008 |
-
#: classes/AlertManager.php:
|
2009 |
msgid "File"
|
2010 |
msgstr ""
|
2011 |
|
2012 |
-
#: classes/AlertManager.php:
|
2013 |
msgid "Tag"
|
2014 |
msgstr ""
|
2015 |
|
2016 |
-
#: classes/AlertManager.php:
|
2017 |
msgid "Comment"
|
2018 |
msgstr ""
|
2019 |
|
2020 |
-
#: classes/AlertManager.php:
|
2021 |
msgid "Setting"
|
2022 |
msgstr ""
|
2023 |
|
2024 |
-
#: classes/AlertManager.php:
|
2025 |
msgid "System Setting"
|
2026 |
msgstr ""
|
2027 |
|
2028 |
-
#: classes/AlertManager.php:
|
2029 |
msgid "MainWP Network"
|
2030 |
msgstr ""
|
2031 |
|
2032 |
-
#: classes/AlertManager.php:
|
2033 |
msgid "MainWP"
|
2034 |
msgstr ""
|
2035 |
|
2036 |
-
#: classes/AlertManager.php:
|
2037 |
msgid "Category"
|
2038 |
msgstr ""
|
2039 |
|
2040 |
-
#: classes/AlertManager.php:
|
2041 |
msgid "Custom Field"
|
2042 |
msgstr ""
|
2043 |
|
2044 |
-
#: classes/AlertManager.php:
|
2045 |
msgid "Widget"
|
2046 |
msgstr ""
|
2047 |
|
2048 |
-
#: classes/AlertManager.php:
|
2049 |
msgid "Menu"
|
2050 |
msgstr ""
|
2051 |
|
2052 |
-
#: classes/AlertManager.php:
|
2053 |
msgid "Theme"
|
2054 |
msgstr ""
|
2055 |
|
2056 |
-
#: classes/AlertManager.php:
|
2057 |
msgid "Activity log"
|
2058 |
msgstr ""
|
2059 |
|
2060 |
-
#: classes/AlertManager.php:
|
2061 |
msgid "Multisite Network"
|
2062 |
msgstr ""
|
2063 |
|
2064 |
-
#: classes/AlertManager.php:
|
2065 |
msgid "IP Address"
|
2066 |
msgstr ""
|
2067 |
|
2068 |
-
#: classes/AlertManager.php:
|
2069 |
msgid "unknown object"
|
2070 |
msgstr ""
|
2071 |
|
2072 |
-
#: classes/AlertManager.php:
|
2073 |
msgid "Login"
|
2074 |
msgstr ""
|
2075 |
|
2076 |
-
#: classes/AlertManager.php:
|
2077 |
msgid "Logout"
|
2078 |
msgstr ""
|
2079 |
|
2080 |
-
#: classes/AlertManager.php:
|
2081 |
msgid "Installed"
|
2082 |
msgstr ""
|
2083 |
|
2084 |
-
#: classes/AlertManager.php:
|
2085 |
msgid "Activated"
|
2086 |
msgstr ""
|
2087 |
|
2088 |
-
#: classes/AlertManager.php:
|
2089 |
msgid "Deactivated"
|
2090 |
msgstr ""
|
2091 |
|
2092 |
-
#: classes/AlertManager.php:
|
2093 |
msgid "Uninstalled"
|
2094 |
msgstr ""
|
2095 |
|
2096 |
-
#: classes/AlertManager.php:
|
2097 |
msgid "Updated"
|
2098 |
msgstr ""
|
2099 |
|
2100 |
-
#: classes/AlertManager.php:
|
2101 |
msgid "Created"
|
2102 |
msgstr ""
|
2103 |
|
2104 |
-
#: classes/AlertManager.php:
|
2105 |
msgid "Modified"
|
2106 |
msgstr ""
|
2107 |
|
2108 |
-
#: classes/AlertManager.php:
|
2109 |
msgid "Deleted"
|
2110 |
msgstr ""
|
2111 |
|
2112 |
-
#: classes/AlertManager.php:
|
2113 |
msgid "Published"
|
2114 |
msgstr ""
|
2115 |
|
2116 |
-
#: classes/AlertManager.php:
|
2117 |
msgid "Approved"
|
2118 |
msgstr ""
|
2119 |
|
2120 |
-
#: classes/AlertManager.php:
|
2121 |
msgid "Unapproved"
|
2122 |
msgstr ""
|
2123 |
|
2124 |
-
#: classes/AlertManager.php:
|
2125 |
msgid "Enabled"
|
2126 |
msgstr ""
|
2127 |
|
2128 |
-
#: classes/AlertManager.php:
|
2129 |
msgid "Disabled"
|
2130 |
msgstr ""
|
2131 |
|
2132 |
-
#: classes/AlertManager.php:
|
2133 |
msgid "Added"
|
2134 |
msgstr ""
|
2135 |
|
2136 |
-
#: classes/AlertManager.php:
|
2137 |
msgid "Failed Login"
|
2138 |
msgstr ""
|
2139 |
|
2140 |
-
#: classes/AlertManager.php:
|
2141 |
msgid "Blocked"
|
2142 |
msgstr ""
|
2143 |
|
2144 |
-
#: classes/AlertManager.php:
|
2145 |
msgid "Uploaded"
|
2146 |
msgstr ""
|
2147 |
|
2148 |
-
#: classes/AlertManager.php:
|
2149 |
msgid "Restored"
|
2150 |
msgstr ""
|
2151 |
|
2152 |
-
#: classes/AlertManager.php:
|
2153 |
msgid "Opened"
|
2154 |
msgstr ""
|
2155 |
|
2156 |
-
#: classes/AlertManager.php:
|
2157 |
msgid "Viewed"
|
2158 |
msgstr ""
|
2159 |
|
2160 |
-
#: classes/AlertManager.php:
|
2161 |
msgid "Started"
|
2162 |
msgstr ""
|
2163 |
|
2164 |
-
#: classes/AlertManager.php:
|
2165 |
msgid "Stopped"
|
2166 |
msgstr ""
|
2167 |
|
2168 |
-
#: classes/AlertManager.php:
|
2169 |
msgid "Removed"
|
2170 |
msgstr ""
|
2171 |
|
2172 |
-
#: classes/AlertManager.php:
|
2173 |
msgid "Unblocked"
|
2174 |
msgstr ""
|
2175 |
|
2176 |
-
#: classes/AlertManager.php:
|
2177 |
msgid "Renamed"
|
2178 |
msgstr ""
|
2179 |
|
2180 |
-
#: classes/AlertManager.php:
|
2181 |
msgid "Duplicated"
|
2182 |
msgstr ""
|
2183 |
|
2184 |
-
#: classes/AlertManager.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2185 |
msgid "unknown type"
|
2186 |
msgstr ""
|
2187 |
|
2188 |
-
#: classes/AlertManager.php:
|
2189 |
msgid "Unknown error code."
|
2190 |
msgstr ""
|
2191 |
|
2192 |
-
#: classes/AlertManager.php:
|
2193 |
msgid "Unknown Site"
|
2194 |
msgstr ""
|
2195 |
|
2196 |
-
#: classes/AuditLogGridView.php:
|
2197 |
msgid "No events so far."
|
2198 |
msgstr ""
|
2199 |
|
2200 |
-
#: classes/AuditLogGridView.php:
|
2201 |
msgid "List View"
|
2202 |
msgstr ""
|
2203 |
|
2204 |
-
#: classes/AuditLogGridView.php:
|
2205 |
msgid "Grid View"
|
2206 |
msgstr ""
|
2207 |
|
2208 |
-
#: classes/AuditLogGridView.php:
|
2209 |
msgid "Show "
|
2210 |
msgstr ""
|
2211 |
|
2212 |
-
#: classes/AuditLogGridView.php:
|
2213 |
msgid " Items"
|
2214 |
msgstr ""
|
2215 |
|
2216 |
-
#: classes/AuditLogGridView.php:
|
2217 |
msgid "— End of Activity Log —"
|
2218 |
msgstr ""
|
2219 |
|
2220 |
-
#: classes/AuditLogGridView.php:
|
2221 |
msgid "All Sites"
|
2222 |
msgstr ""
|
2223 |
|
2224 |
-
#: classes/AuditLogGridView.php:
|
2225 |
msgid "Live Database"
|
2226 |
msgstr ""
|
2227 |
|
2228 |
-
#: classes/AuditLogGridView.php:
|
2229 |
msgid "Archive Database"
|
2230 |
msgstr ""
|
2231 |
|
2232 |
-
#: classes/AuditLogGridView.php:
|
2233 |
msgid "ID"
|
2234 |
msgstr ""
|
2235 |
|
2236 |
-
#: classes/AuditLogGridView.php:
|
2237 |
msgid "Severity"
|
2238 |
msgstr ""
|
2239 |
|
2240 |
-
#: classes/AuditLogGridView.php:
|
2241 |
msgid "Info"
|
2242 |
msgstr ""
|
2243 |
|
2244 |
-
#: classes/AuditLogGridView.php:
|
2245 |
msgid "Site"
|
2246 |
msgstr ""
|
2247 |
|
2248 |
-
#: classes/AuditLogGridView.php:
|
2249 |
msgid "Message"
|
2250 |
msgstr ""
|
2251 |
|
2252 |
-
#: classes/AuditLogGridView.php:
|
2253 |
msgid "Grid"
|
2254 |
msgstr ""
|
2255 |
|
2256 |
-
#: classes/AuditLogGridView.php:
|
2257 |
msgid "Disable this type of events."
|
2258 |
msgstr ""
|
2259 |
|
2260 |
-
#: classes/AuditLogGridView.php:
|
2261 |
msgid "Unknown"
|
2262 |
msgstr ""
|
2263 |
|
2264 |
-
#: classes/AuditLogGridView.php:
|
2265 |
msgid "Unregistered user"
|
2266 |
msgstr ""
|
2267 |
|
2268 |
-
#: classes/AuditLogGridView.php:
|
2269 |
msgid "Show me all activity by this User"
|
2270 |
msgstr ""
|
2271 |
|
2272 |
-
#: classes/AuditLogGridView.php:
|
2273 |
msgid "Show me all activity originating from this IP Address"
|
2274 |
msgstr ""
|
2275 |
|
2276 |
-
#: classes/AuditLogGridView.php:
|
2277 |
msgid "View all details of this change"
|
2278 |
msgstr ""
|
2279 |
|
2280 |
-
#: classes/AuditLogGridView.php:
|
2281 |
msgid "Alert Data Inspector"
|
2282 |
msgstr ""
|
2283 |
|
2284 |
-
#: classes/
|
2285 |
-
msgid "Download the log file."
|
2286 |
-
msgstr ""
|
2287 |
-
|
2288 |
-
#: classes/AuditLogGridView.php:735, classes/AuditLogListView.php:731, classes/Settings.php:1773, classes/Settings.php:2013, extensions/email-notifications/classes/Notifier.php:788
|
2289 |
-
msgid "published"
|
2290 |
-
msgstr ""
|
2291 |
-
|
2292 |
-
#. translators: Mailto link for support.
|
2293 |
-
#. translators: Mailto link for support.
|
2294 |
-
#. translators: Mailto link for support.
|
2295 |
-
#. translators: Mailto link for support.
|
2296 |
-
#. translators: Mailto link for support.
|
2297 |
-
#. translators: Mailto link for support.
|
2298 |
-
#: classes/AuditLogGridView.php:763, classes/AuditLogListView.php:759, classes/Settings.php:1799, classes/Settings.php:2039, extensions/email-notifications/classes/Notifier.php:814, extensions/reports/classes/Common.php:541
|
2299 |
-
msgid "Contact us on %s for assistance"
|
2300 |
-
msgstr ""
|
2301 |
-
|
2302 |
-
#: classes/AuditLogListView.php:323, classes/AuditLogListView.php:355, extensions/search/classes/Filters/DateFilter.php:27
|
2303 |
msgid "Date"
|
2304 |
msgstr ""
|
2305 |
|
2306 |
-
#: classes/AuditLogListView.php:
|
2307 |
msgid "IP"
|
2308 |
msgstr ""
|
2309 |
|
2310 |
-
#: classes/AuditLogListView.php:
|
2311 |
msgid "Object"
|
2312 |
msgstr ""
|
2313 |
|
2314 |
-
#: classes/AuditLogListView.php:
|
2315 |
msgid "Event Type"
|
2316 |
msgstr ""
|
2317 |
|
2318 |
-
#: classes/AuditLogListView.php:
|
2319 |
msgid "Click to toggle."
|
2320 |
msgstr ""
|
2321 |
|
2322 |
-
#: classes/AuditLogListView.php:
|
2323 |
msgid "Alert message not found."
|
2324 |
msgstr ""
|
2325 |
|
2326 |
-
#: classes/AuditLogListView.php:
|
2327 |
msgid "Alert description not found."
|
2328 |
msgstr ""
|
2329 |
|
2330 |
-
#: classes/ConstantManager.php:166, classes/Views/ToggleAlerts.php:
|
2331 |
msgid "Informational"
|
2332 |
msgstr ""
|
2333 |
|
2334 |
-
#: classes/ConstantManager.php:164, classes/Views/ToggleAlerts.php:
|
2335 |
msgid "Low"
|
2336 |
msgstr ""
|
2337 |
|
2338 |
-
#: classes/ConstantManager.php:162, classes/Views/ToggleAlerts.php:
|
2339 |
msgid "Medium"
|
2340 |
msgstr ""
|
2341 |
|
2342 |
-
#: classes/ConstantManager.php:160, classes/Views/ToggleAlerts.php:
|
2343 |
msgid "High"
|
2344 |
msgstr ""
|
2345 |
|
2346 |
-
#: classes/ConstantManager.php:158, classes/ConstantManager.php:152, classes/Views/ToggleAlerts.php:
|
2347 |
msgid "Critical"
|
2348 |
msgstr ""
|
2349 |
|
2350 |
-
#: classes/ConstantManager.php:156, classes/Views/ToggleAlerts.php:
|
2351 |
msgid "Notification"
|
2352 |
msgstr ""
|
2353 |
|
2354 |
-
#: classes/ConstantManager.php:154, classes/Views/ToggleAlerts.php:
|
2355 |
msgid "Warning"
|
2356 |
msgstr ""
|
2357 |
|
2358 |
-
#: classes/Settings.php:
|
2359 |
msgid "This function is deprecated"
|
2360 |
msgstr ""
|
2361 |
|
2362 |
-
#: classes/Settings.php:
|
2363 |
msgid "View the content changes"
|
2364 |
msgstr ""
|
2365 |
|
2366 |
-
#: classes/Settings.php:
|
|
|
|
|
|
|
|
|
2367 |
msgid "View post in the editor"
|
2368 |
msgstr ""
|
2369 |
|
2370 |
-
#: classes/Settings.php:
|
2371 |
msgid "View Order"
|
2372 |
msgstr ""
|
2373 |
|
2374 |
-
#: classes/Settings.php:
|
2375 |
msgid "View category"
|
2376 |
msgstr ""
|
2377 |
|
2378 |
-
#: classes/Settings.php:
|
2379 |
msgid "View tag"
|
2380 |
msgstr ""
|
2381 |
|
2382 |
-
#: classes/Settings.php:
|
2383 |
msgid "User profile page"
|
2384 |
msgstr ""
|
2385 |
|
2386 |
-
#: classes/Settings.php:
|
2387 |
-
msgid "
|
2388 |
msgstr ""
|
2389 |
|
2390 |
-
#: classes/Settings.php:
|
2391 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2392 |
msgstr ""
|
2393 |
|
2394 |
-
#: classes/Settings.php:
|
2395 |
msgid "plugin settings"
|
2396 |
msgstr ""
|
2397 |
|
2398 |
-
#: classes/Settings.php:
|
|
|
|
|
|
|
|
|
2399 |
msgid "contact our support"
|
2400 |
msgstr ""
|
2401 |
|
2402 |
-
#: classes/Settings.php:
|
|
|
|
|
|
|
|
|
2403 |
msgid "Root directory of WordPress (excluding sub directories)"
|
2404 |
msgstr ""
|
2405 |
|
2406 |
-
#: classes/Settings.php:
|
2407 |
msgid "WP Admin directory (/wp-admin/)"
|
2408 |
msgstr ""
|
2409 |
|
2410 |
-
#: classes/Settings.php:
|
2411 |
msgid "WP Includes directory (/wp-includes/)"
|
2412 |
msgstr ""
|
2413 |
|
2414 |
-
#: classes/Settings.php:
|
2415 |
msgid "/wp-content/ directory (excluding plugins, themes & uploads directories)"
|
2416 |
msgstr ""
|
2417 |
|
2418 |
-
#: classes/Settings.php:
|
2419 |
msgid "Themes directory (/wp-content/themes/)"
|
2420 |
msgstr ""
|
2421 |
|
2422 |
-
#: classes/Settings.php:
|
2423 |
msgid "Plugins directory (/wp-content/plugins/)"
|
2424 |
msgstr ""
|
2425 |
|
2426 |
-
#: classes/Settings.php:
|
2427 |
msgid "Uploads directory (/wp-content/uploads/)"
|
2428 |
msgstr ""
|
2429 |
|
2430 |
-
#: classes/Settings.php:
|
2431 |
msgid "Uploads directory of all sub sites on this network (/wp-content/sites/*)"
|
2432 |
msgstr ""
|
2433 |
|
@@ -2443,7 +2601,7 @@ msgstr ""
|
|
2443 |
msgid "Latest Events"
|
2444 |
msgstr ""
|
2445 |
|
2446 |
-
#: classes/WidgetManager.php:
|
2447 |
msgid "Description"
|
2448 |
msgstr ""
|
2449 |
|
@@ -2477,22 +2635,70 @@ msgstr ""
|
|
2477 |
msgid "This type of activity / change is no longer monitored. You can create your own custom event IDs to keep a log of such change. Read more about custom events %1$shere%2$s."
|
2478 |
msgstr ""
|
2479 |
|
2480 |
-
#: classes/Sensors/Content.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2481 |
msgid "Public"
|
2482 |
msgstr ""
|
2483 |
|
2484 |
-
#: classes/Sensors/Content.php:
|
2485 |
msgid "Private"
|
2486 |
msgstr ""
|
2487 |
|
2488 |
-
#: classes/Sensors/Content.php:
|
2489 |
msgid "Password Protected"
|
2490 |
msgstr ""
|
2491 |
|
2492 |
-
#: classes/Sensors/Content.php:
|
2493 |
msgid "no tags"
|
2494 |
msgstr ""
|
2495 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2496 |
#: classes/ThirdPartyExtensions/BBPressExtension.php:29
|
2497 |
msgid "BBPress"
|
2498 |
msgstr ""
|
@@ -2518,16 +2724,16 @@ msgid "Yoast SEO"
|
|
2518 |
msgstr ""
|
2519 |
|
2520 |
#. translators: %s: Home URL
|
2521 |
-
#: classes/Utilities/Emailer.php:
|
2522 |
msgid "WP Activity Log plugin disabled on %s"
|
2523 |
msgstr ""
|
2524 |
|
2525 |
-
#: classes/Utilities/Emailer.php:
|
2526 |
msgid "Hello admin,"
|
2527 |
msgstr ""
|
2528 |
|
2529 |
#. translators: 1. User display name, 2. Home URL, 3. Date and time
|
2530 |
-
#: classes/Utilities/Emailer.php:
|
2531 |
msgid "This is a notification to let you know that the user %1$s has deactivated the plugin WP Activity Log on the website %2$s on %3$s."
|
2532 |
msgstr ""
|
2533 |
|
@@ -2535,15 +2741,15 @@ msgstr ""
|
|
2535 |
msgid "WP Activity Log can keep a log of changes done on other plugins. Install the relevant extension from the below list to keep a log of changes done on that plugin."
|
2536 |
msgstr ""
|
2537 |
|
2538 |
-
#: classes/Utilities/PluginInstallAndActivate.php:
|
2539 |
msgid "Extension for "
|
2540 |
msgstr ""
|
2541 |
|
2542 |
-
#: classes/Utilities/PluginInstallAndActivate.php:
|
2543 |
msgid "Install Extension"
|
2544 |
msgstr ""
|
2545 |
|
2546 |
-
#: classes/Utilities/PluginInstallAndActivate.php:
|
2547 |
msgid "Extension installed, activate now?"
|
2548 |
msgstr ""
|
2549 |
|
@@ -2639,7 +2845,7 @@ msgstr ""
|
|
2639 |
msgid "Log Viewer"
|
2640 |
msgstr ""
|
2641 |
|
2642 |
-
#: classes/Views/AuditLog.php:540, classes/Views/Settings.php:326, classes/Views/ToggleAlerts.php:
|
2643 |
msgid "You do not have sufficient permissions to access this page."
|
2644 |
msgstr ""
|
2645 |
|
@@ -2647,11 +2853,11 @@ msgstr ""
|
|
2647 |
msgid "Thank you for installing WP Activity Log. Do you want to run the wizard to configure the basic plugin settings?"
|
2648 |
msgstr ""
|
2649 |
|
2650 |
-
#: classes/Views/AuditLog.php:591, classes/Views/Settings.php:527, classes/Views/Settings.php:554, classes/Views/Settings.php:620, classes/Views/Settings.php:678, classes/Views/Settings.php:1122, classes/Views/Settings.php:
|
2651 |
msgid "Yes"
|
2652 |
msgstr ""
|
2653 |
|
2654 |
-
#: classes/Views/AuditLog.php:592, classes/Views/Settings.php:532, classes/Views/Settings.php:559, classes/Views/Settings.php:650, classes/Views/Settings.php:688, classes/Views/Settings.php:1127, classes/Views/Settings.php:
|
2655 |
msgid "No"
|
2656 |
msgstr ""
|
2657 |
|
@@ -2663,7 +2869,7 @@ msgstr ""
|
|
2663 |
msgid "No Results"
|
2664 |
msgstr ""
|
2665 |
|
2666 |
-
#: classes/Views/AuditLog.php:795, classes/Views/AuditLog.php:838, classes/Views/AuditLog.php:1108, classes/Views/AuditLog.php:1170, classes/Views/AuditLog.php:1223, classes/Views/Settings.php:235, classes/Views/Settings.php:
|
2667 |
msgid "Nonce verification failed."
|
2668 |
msgstr ""
|
2669 |
|
@@ -2808,111 +3014,119 @@ msgstr ""
|
|
2808 |
msgid "Configure an unlimited number of connections to different databases and third party services."
|
2809 |
msgstr ""
|
2810 |
|
2811 |
-
#: classes/Views/Help.php:62, classes/Views/Help.php:
|
2812 |
msgid "Help"
|
2813 |
msgstr ""
|
2814 |
|
2815 |
-
#: classes/Views/Help.php:68, classes/Views/Help.php:
|
|
|
|
|
|
|
|
|
2816 |
msgid "System Info"
|
2817 |
msgstr ""
|
2818 |
|
2819 |
-
#: classes/Views/Help.php:
|
|
|
|
|
|
|
|
|
2820 |
msgid "Getting Started"
|
2821 |
msgstr ""
|
2822 |
|
2823 |
-
#: classes/Views/Help.php:
|
2824 |
msgid "Getting started with WP Activity Log is really easy; once the plugin is installed it will automatically keep a log of everything that is happening on your website and you do not need to do anything. Watch the video below for a quick overview of the plugin."
|
2825 |
msgstr ""
|
2826 |
|
2827 |
-
#: classes/Views/Help.php:
|
2828 |
msgid "Plugin Support"
|
2829 |
msgstr ""
|
2830 |
|
2831 |
-
#: classes/Views/Help.php:
|
2832 |
msgid "Have you encountered or noticed any issues while using WP Activity Log plugin?"
|
2833 |
msgstr ""
|
2834 |
|
2835 |
-
#: classes/Views/Help.php:
|
2836 |
msgid "Or you want to report something to us? Click any of the options below to post on the plugin's forum or contact our support directly."
|
2837 |
msgstr ""
|
2838 |
|
2839 |
-
#: classes/Views/Help.php:
|
2840 |
msgid "Free Support Forum"
|
2841 |
msgstr ""
|
2842 |
|
2843 |
-
#: classes/Views/Help.php:
|
2844 |
msgid "Free Support Email"
|
2845 |
msgstr ""
|
2846 |
|
2847 |
-
#: classes/Views/Help.php:
|
2848 |
msgid "Plugin Documentation"
|
2849 |
msgstr ""
|
2850 |
|
2851 |
-
#: classes/Views/Help.php:
|
2852 |
msgid "For more technical information about the WP Activity Log plugin please visit the plugin’s knowledge base."
|
2853 |
msgstr ""
|
2854 |
|
2855 |
-
#: classes/Views/Help.php:
|
2856 |
msgid "Refer to the list of WordPress security events for a complete list of Events and IDs that the plugin uses to keep a log of all the changes in the WordPress activity log."
|
2857 |
msgstr ""
|
2858 |
|
2859 |
-
#: classes/Views/Help.php:
|
2860 |
msgid "Plugin Website"
|
2861 |
msgstr ""
|
2862 |
|
2863 |
-
#: classes/Views/Help.php:
|
2864 |
msgid "Knowledge Base"
|
2865 |
msgstr ""
|
2866 |
|
2867 |
-
#: classes/Views/Help.php:
|
2868 |
msgid "List of activity logs event IDs"
|
2869 |
msgstr ""
|
2870 |
|
2871 |
-
#: classes/Views/Help.php:
|
2872 |
msgid "Rate WP Activity Log"
|
2873 |
msgstr ""
|
2874 |
|
2875 |
-
#: classes/Views/Help.php:
|
2876 |
msgid "We work really hard to deliver a plugin that enables you to keep a record of all the changes that are happening on your WordPress."
|
2877 |
msgstr ""
|
2878 |
|
2879 |
-
#: classes/Views/Help.php:
|
2880 |
msgid "It takes thousands of man-hours every year and endless amount of dedication to research, develop and maintain the free edition of WP Activity Log."
|
2881 |
msgstr ""
|
2882 |
|
2883 |
-
#: classes/Views/Help.php:
|
2884 |
msgid "Therefore if you like what you see, and find WP Activity Log useful we ask you nothing more than to please rate our plugin."
|
2885 |
msgstr ""
|
2886 |
|
2887 |
-
#: classes/Views/Help.php:
|
2888 |
msgid "We appreciate every star!"
|
2889 |
msgstr ""
|
2890 |
|
2891 |
-
#: classes/Views/Help.php:
|
2892 |
msgid "Rate Plugin"
|
2893 |
msgstr ""
|
2894 |
|
2895 |
-
#: classes/Views/Help.php:
|
2896 |
msgid "Enforce strong password policies on WordPress"
|
2897 |
msgstr ""
|
2898 |
|
2899 |
-
#: classes/Views/Help.php:
|
2900 |
msgid "Automatically identify unauthorized file changes on WordPress"
|
2901 |
msgstr ""
|
2902 |
|
2903 |
-
#: classes/Views/Help.php:
|
2904 |
msgid "Add an extra layer of security to your login pages with 2FA & require your users to use it."
|
2905 |
msgstr ""
|
2906 |
|
2907 |
-
#: classes/Views/Help.php:
|
2908 |
msgid "See the child sites activity logs from the central MainWP dashboard"
|
2909 |
msgstr ""
|
2910 |
|
2911 |
-
#: classes/Views/Help.php:
|
2912 |
msgid "Our other WordPress plugins"
|
2913 |
msgstr ""
|
2914 |
|
2915 |
-
#: classes/Views/Help.php:
|
2916 |
msgid "LEARN MORE"
|
2917 |
msgstr ""
|
2918 |
|
@@ -3084,7 +3298,7 @@ msgstr ""
|
|
3084 |
msgid "Unknown settings tab."
|
3085 |
msgstr ""
|
3086 |
|
3087 |
-
#: classes/Views/Settings.php:220, classes/Views/Settings.php:
|
3088 |
msgid "Access Denied."
|
3089 |
msgstr ""
|
3090 |
|
@@ -3092,7 +3306,7 @@ msgstr ""
|
|
3092 |
msgid "Invalid input."
|
3093 |
msgstr ""
|
3094 |
|
3095 |
-
#: classes/Views/Settings.php:342, classes/Views/ToggleAlerts.php:
|
3096 |
msgid "Settings have been saved."
|
3097 |
msgstr ""
|
3098 |
|
@@ -3100,7 +3314,7 @@ msgstr ""
|
|
3100 |
msgid "Message sent successfully."
|
3101 |
msgstr ""
|
3102 |
|
3103 |
-
#: classes/Views/Settings.php:348, classes/Views/ToggleAlerts.php:
|
3104 |
msgid "Error: "
|
3105 |
msgstr ""
|
3106 |
|
@@ -3337,7 +3551,7 @@ msgid "Do you want to hide the plugin from the list of installed plugins?"
|
|
3337 |
msgstr ""
|
3338 |
|
3339 |
#: classes/Views/Settings.php:878
|
3340 |
-
msgid "By default all installed plugins are listed in the plugins page.
|
3341 |
msgstr ""
|
3342 |
|
3343 |
#: classes/Views/Settings.php:882
|
@@ -3445,7 +3659,7 @@ msgstr ""
|
|
3445 |
msgid "Date & Time"
|
3446 |
msgstr ""
|
3447 |
|
3448 |
-
#: classes/Views/Settings.php:1084, extensions/email-notifications/classes/Common.php:
|
3449 |
msgid "Event ID"
|
3450 |
msgstr ""
|
3451 |
|
@@ -3469,247 +3683,219 @@ msgstr ""
|
|
3469 |
msgid "Website File Changes plugin settings"
|
3470 |
msgstr ""
|
3471 |
|
3472 |
-
#: classes/Views/Settings.php:1176, classes/Views/ToggleAlerts.php:
|
3473 |
msgid "Website File Changes Monitor"
|
3474 |
msgstr ""
|
3475 |
|
3476 |
-
#: classes/Views/Settings.php:1177, classes/Views/ToggleAlerts.php:
|
3477 |
msgid "To keep a log of file changes please install Website File Changes Monitor, a plugin which is also developed by us."
|
3478 |
msgstr ""
|
3479 |
|
3480 |
-
#: classes/Views/Settings.php:1178, classes/Views/ToggleAlerts.php:
|
3481 |
msgid "Install plugin now"
|
3482 |
msgstr ""
|
3483 |
|
3484 |
-
#: classes/Views/Settings.php:1178, classes/Views/ToggleAlerts.php:
|
3485 |
msgid "Learn More"
|
3486 |
msgstr ""
|
3487 |
|
3488 |
-
#: classes/Views/Settings.php:
|
3489 |
msgid "By default the plugin keeps a log of all user changes done on your WordPress website. Use the setting below to exclude any objects from the activity log. When an object is excluded from the activity log, any event in which that object is referred will not be logged in the activity log."
|
3490 |
msgstr ""
|
3491 |
|
3492 |
-
#: classes/Views/Settings.php:
|
3493 |
msgid "Exclude Users:"
|
3494 |
msgstr ""
|
3495 |
|
3496 |
-
#: classes/Views/Settings.php:
|
3497 |
msgid "Exclude Roles:"
|
3498 |
msgstr ""
|
3499 |
|
3500 |
-
#: classes/Views/Settings.php:
|
3501 |
msgid "Exclude IP Address(es):"
|
3502 |
msgstr ""
|
3503 |
|
3504 |
-
#: classes/Views/Settings.php:
|
3505 |
msgid "You can exclude an individual IP address or a range of IP addresses. To exclude a range use the following format: [first IP]-[last octet of the last IP]. Example: 172.16.180.6-127."
|
3506 |
msgstr ""
|
3507 |
|
3508 |
-
#: classes/Views/Settings.php:
|
3509 |
msgid "Exclude Post Type:"
|
3510 |
msgstr ""
|
3511 |
|
3512 |
-
#: classes/Views/Settings.php:
|
3513 |
msgid "WordPress has the post and page post types by default though your website might use more post types (custom post types). You can exclude all post types, including the default WordPress ones."
|
3514 |
msgstr ""
|
3515 |
|
3516 |
-
#: classes/Views/Settings.php:
|
3517 |
msgid "Exclude Custom Fields:"
|
3518 |
msgstr ""
|
3519 |
|
3520 |
-
#: classes/Views/Settings.php:
|
3521 |
msgid "You can use the * wildcard to exclude multiple matching custom fields. For example to exclude all custom fields starting with wp123 enter wp123*"
|
3522 |
msgstr ""
|
3523 |
|
3524 |
-
#: classes/Views/Settings.php:
|
3525 |
msgid "These settings are for advanced users."
|
3526 |
msgstr ""
|
3527 |
|
3528 |
-
#: classes/Views/Settings.php:
|
3529 |
msgid "If you have any questions <a href=\"https://wpactivitylog.com/contact/?utm_source=plugin&utm_medium=referral&utm_campaign=WSAL&utm_content=settings+pages\" target=\"_blank\">contact us</a>."
|
3530 |
msgstr ""
|
3531 |
|
3532 |
-
#: classes/Views/Settings.php:
|
3533 |
-
msgid "Where do you want the plugin's working directory for log files, reports and other files?"
|
3534 |
-
msgstr ""
|
3535 |
-
|
3536 |
-
#: classes/Views/Settings.php:1349
|
3537 |
-
msgid "The plugin stores the reports it generates, a number of log files and the request log in this working directory. By default the directory is in the default WordPress uploads directory. Use the below setting to create the working directory in a different location. Note that the plugin requires write permissions to this directory. Please specify the relative path of the directory."
|
3538 |
-
msgstr ""
|
3539 |
-
|
3540 |
-
#: classes/Views/Settings.php:1354
|
3541 |
-
msgid "Working directory location"
|
3542 |
-
msgstr ""
|
3543 |
-
|
3544 |
-
#: classes/Views/Settings.php:1377
|
3545 |
-
msgid "Troubleshooting setting: Keep a debug log of all the requests this website receives"
|
3546 |
-
msgstr ""
|
3547 |
-
|
3548 |
-
#: classes/Views/Settings.php:1378
|
3549 |
-
msgid "Only enable the request log on testing, staging and development website. Never enable logging on a live website unless instructed to do so. Enabling request logging on a live website may degrade the performance of the website."
|
3550 |
-
msgstr ""
|
3551 |
-
|
3552 |
-
#: classes/Views/Settings.php:1382
|
3553 |
-
msgid "Request Log"
|
3554 |
-
msgstr ""
|
3555 |
-
|
3556 |
-
#: classes/Views/Settings.php:1412
|
3557 |
msgid "Reset plugin settings to default"
|
3558 |
msgstr ""
|
3559 |
|
3560 |
-
#: classes/Views/Settings.php:
|
3561 |
msgid "Use this button to <em>factory reset</em> the plugin. This means that all the configured settings will be reset to default and all email notifications, scheduled reports, external database / third party services connections, archiving and mirroring rule will be deleted. NOTE: the activity log data will not be purged. Use the setting below to purge the activity log."
|
3562 |
msgstr ""
|
3563 |
|
3564 |
-
#: classes/Views/Settings.php:
|
3565 |
msgid "Reset Settings"
|
3566 |
msgstr ""
|
3567 |
|
3568 |
-
#: classes/Views/Settings.php:
|
3569 |
msgid "RESET"
|
3570 |
msgstr ""
|
3571 |
|
3572 |
-
#: classes/Views/Settings.php:
|
3573 |
msgid "Purge the WordPress activity log"
|
3574 |
msgstr ""
|
3575 |
|
3576 |
-
#: classes/Views/Settings.php:
|
3577 |
msgid "Click the Purge button below to delete all the data from the WordPress activity log and start afresh."
|
3578 |
msgstr ""
|
3579 |
|
3580 |
-
#: classes/Views/Settings.php:
|
3581 |
msgid "Purge Activity Log"
|
3582 |
msgstr ""
|
3583 |
|
3584 |
-
#: classes/Views/Settings.php:
|
3585 |
msgid "PURGE"
|
3586 |
msgstr ""
|
3587 |
|
3588 |
-
#: classes/Views/Settings.php:
|
3589 |
msgid "MainWP Child Site Stealth Mode"
|
3590 |
msgstr ""
|
3591 |
|
3592 |
-
#: classes/Views/Settings.php:
|
3593 |
msgid "This option is enabled automatically when the plugin detects the MainWP Child plugin on the site. When this setting is enabled plugin access is restricted to the administrator who installs the plugin, the plugin is not shown in the list of installed plugins and no admin notifications are shown. Disable this option to change the plugin to the default setup."
|
3594 |
msgstr ""
|
3595 |
|
3596 |
-
#: classes/Views/Settings.php:
|
3597 |
msgid "Enable MainWP Child Site Stealth Mode"
|
3598 |
msgstr ""
|
3599 |
|
3600 |
-
#: classes/Views/Settings.php:
|
3601 |
msgid "Admin blocking plugins support"
|
3602 |
msgstr ""
|
3603 |
|
3604 |
-
#: classes/Views/Settings.php:
|
3605 |
msgid "Enable early plugin loading on sites that use admin blocking plugins"
|
3606 |
msgstr ""
|
3607 |
|
3608 |
-
#: classes/Views/Settings.php:
|
3609 |
msgid "Do you want to delete the plugin data from the database upon uninstall?"
|
3610 |
msgstr ""
|
3611 |
|
3612 |
-
#: classes/Views/Settings.php:
|
3613 |
msgid "The plugin saves the activity log data and settings in the WordPress database. By default upon uninstalling the plugin the data is kept in the database so if it is installed again, you can still access the data. If the data is deleted it is not possible to recover it so you won't be able to access it again even when you reinstall the plugin."
|
3614 |
msgstr ""
|
3615 |
|
3616 |
-
#: classes/Views/Settings.php:
|
3617 |
msgid "Remove Data on Uninstall"
|
3618 |
msgstr ""
|
3619 |
|
3620 |
-
#: classes/Views/Settings.php:
|
3621 |
msgid "Are you sure you want to reset all the plugin settings to default? This action cannot be undone."
|
3622 |
msgstr ""
|
3623 |
|
3624 |
-
#: classes/Views/Settings.php:
|
3625 |
msgid "Are you sure you want to purge all the activity log data?"
|
3626 |
msgstr ""
|
3627 |
|
3628 |
-
#: classes/Views/Settings.php:
|
3629 |
msgid "MainWP Child plugin is not active on this website."
|
3630 |
msgstr ""
|
3631 |
|
3632 |
-
#: classes/Views/Settings.php:
|
3633 |
-
msgid "The plugin cannot create the directory for the log files. Please check permissions and configure it again."
|
3634 |
-
msgstr ""
|
3635 |
-
|
3636 |
-
#: classes/Views/Settings.php:1656
|
3637 |
msgid "The specified value is not a valid URL!"
|
3638 |
msgstr ""
|
3639 |
|
3640 |
-
#: classes/Views/Settings.php:
|
3641 |
msgid "The specified value is not a valid post type!"
|
3642 |
msgstr ""
|
3643 |
|
3644 |
-
#: classes/Views/Settings.php:
|
3645 |
msgid "The specified value is not a valid IP address!"
|
3646 |
msgstr ""
|
3647 |
|
3648 |
-
#: classes/Views/Settings.php:
|
3649 |
msgid "The specified value is not a user nor a role!"
|
3650 |
msgstr ""
|
3651 |
|
3652 |
-
#: classes/Views/Settings.php:
|
3653 |
msgid "Filename cannot be added because it contains invalid characters."
|
3654 |
msgstr ""
|
3655 |
|
3656 |
-
#: classes/Views/Settings.php:
|
3657 |
msgid "File extension cannot be added because it contains invalid characters."
|
3658 |
msgstr ""
|
3659 |
|
3660 |
-
#: classes/Views/Settings.php:
|
3661 |
msgid "Directory cannot be added because it contains invalid characters."
|
3662 |
msgstr ""
|
3663 |
|
3664 |
-
#: classes/Views/Settings.php:
|
3665 |
msgid "Please save any changes before switching tabs."
|
3666 |
msgstr ""
|
3667 |
|
3668 |
-
#: classes/Views/Settings.php:
|
3669 |
msgid "Nonce Verification Failed."
|
3670 |
msgstr ""
|
3671 |
|
3672 |
-
#: classes/Views/Settings.php:
|
3673 |
msgid "Plugin settings have been reset."
|
3674 |
msgstr ""
|
3675 |
|
3676 |
-
#: classes/Views/Settings.php:
|
3677 |
msgid "Reset query failed."
|
3678 |
msgstr ""
|
3679 |
|
3680 |
-
#: classes/Views/Settings.php:
|
3681 |
msgid "Tables has been reset."
|
3682 |
msgstr ""
|
3683 |
|
3684 |
-
#: classes/Views/Settings.php:
|
3685 |
msgid "Activity log retention"
|
3686 |
msgstr ""
|
3687 |
|
3688 |
-
#: classes/Views/Settings.php:
|
3689 |
msgid "Keep all data"
|
3690 |
msgstr ""
|
3691 |
|
3692 |
-
#: classes/Views/Settings.php:
|
3693 |
msgid "Delete events older than"
|
3694 |
msgstr ""
|
3695 |
|
3696 |
-
#: classes/Views/Settings.php:
|
3697 |
msgid "Months"
|
3698 |
msgstr ""
|
3699 |
|
3700 |
-
#: classes/Views/Settings.php:
|
3701 |
msgid "Years"
|
3702 |
msgstr ""
|
3703 |
|
3704 |
-
#: classes/Views/Settings.php:
|
3705 |
msgid "The next scheduled purging of activity log data that is older than "
|
3706 |
msgstr ""
|
3707 |
|
3708 |
-
#: classes/Views/Settings.php:
|
3709 |
msgid "You can run the purging process now by clicking the button below."
|
3710 |
msgstr ""
|
3711 |
|
3712 |
-
#: classes/Views/Settings.php:
|
3713 |
msgid "Purge Old Data"
|
3714 |
msgstr ""
|
3715 |
|
@@ -3882,120 +4068,124 @@ msgstr ""
|
|
3882 |
msgid "Enable/Disable Events"
|
3883 |
msgstr ""
|
3884 |
|
3885 |
-
#: classes/Views/ToggleAlerts.php:
|
3886 |
-
msgid "Log Level: "
|
3887 |
-
msgstr ""
|
3888 |
-
|
3889 |
-
#: classes/Views/ToggleAlerts.php:176
|
3890 |
msgid "Basic"
|
3891 |
msgstr ""
|
3892 |
|
3893 |
-
#: classes/Views/ToggleAlerts.php:
|
3894 |
msgid "Geek"
|
3895 |
msgstr ""
|
3896 |
|
3897 |
-
#: classes/Views/ToggleAlerts.php:
|
3898 |
msgid "Custom"
|
3899 |
msgstr ""
|
3900 |
|
3901 |
-
#: classes/Views/ToggleAlerts.php:
|
|
|
|
|
|
|
|
|
3902 |
msgid "Use the Log level drop down menu above to use one of our preset log levels. Alternatively you can enable or disable any of the individual events from the below tabs. Refer to <a href=\"https://wpactivitylog.com/support/kb/list-wordpress-activity-log-event-ids/\" target=\"_blank\">the complete list of WordPress activity log event IDs</a> for reference on all the events the plugin can keep a log of."
|
3903 |
msgstr ""
|
3904 |
|
3905 |
-
#: classes/Views/ToggleAlerts.php:
|
3906 |
msgid "Third party plugins"
|
3907 |
msgstr ""
|
3908 |
|
3909 |
-
#: classes/Views/ToggleAlerts.php:
|
3910 |
msgid "Code"
|
3911 |
msgstr ""
|
3912 |
|
3913 |
-
#: classes/Views/ToggleAlerts.php:
|
3914 |
msgid "Logins & Logouts"
|
3915 |
msgstr ""
|
3916 |
|
3917 |
-
#: classes/Views/ToggleAlerts.php:
|
3918 |
msgid "Your website is a single site so the multisite events have been disabled."
|
3919 |
msgstr ""
|
3920 |
|
3921 |
-
#: classes/Views/ToggleAlerts.php:
|
3922 |
msgid "The plugin WooCommerce is not installed on your website so these events have been disabled."
|
3923 |
msgstr ""
|
3924 |
|
3925 |
-
#: classes/Views/ToggleAlerts.php:
|
3926 |
msgid "Products"
|
3927 |
msgstr ""
|
3928 |
|
3929 |
-
#: classes/Views/ToggleAlerts.php:
|
3930 |
msgid "Post Changes"
|
3931 |
msgstr ""
|
3932 |
|
3933 |
-
#: classes/Views/ToggleAlerts.php:
|
3934 |
msgid "<strong>Note:</strong> Post refers to any type of content, i.e. blog post, page or a post with a custom post type."
|
3935 |
msgstr ""
|
3936 |
|
3937 |
-
#: classes/Views/ToggleAlerts.php:
|
3938 |
msgid "Not Implemented"
|
3939 |
msgstr ""
|
3940 |
|
3941 |
-
#: classes/Views/ToggleAlerts.php:
|
3942 |
msgid "Not Available"
|
3943 |
msgstr ""
|
3944 |
|
3945 |
-
#: classes/Views/ToggleAlerts.php:
|
|
|
|
|
|
|
|
|
3946 |
msgid "User Sessions"
|
3947 |
msgstr ""
|
3948 |
|
3949 |
-
#: classes/Views/ToggleAlerts.php:
|
3950 |
msgid "Files"
|
3951 |
msgstr ""
|
3952 |
|
3953 |
-
#: classes/Views/ToggleAlerts.php:
|
3954 |
msgid "Post Settings"
|
3955 |
msgstr ""
|
3956 |
|
3957 |
-
#: classes/Views/ToggleAlerts.php:
|
3958 |
-
msgid "Keep a log when users login to the website from other login pages / forms other than the default WordPress login page."
|
3959 |
-
msgstr ""
|
3960 |
-
|
3961 |
-
#: classes/Views/ToggleAlerts.php:470
|
3962 |
msgid "Keep a log when a visitor registers a user on the website. Only enable this if you allow visitors to register as users on your website. User registration is disabled by default in WordPress."
|
3963 |
msgstr ""
|
3964 |
|
3965 |
-
#: classes/Views/ToggleAlerts.php:
|
3966 |
msgid "Number of login attempts to log. Enter 0 to log all failed login attempts. (By default the plugin only logs up to 10 failed login because the process can be very resource intensive in case of a brute force attack)"
|
3967 |
msgstr ""
|
3968 |
|
3969 |
-
#: classes/Views/ToggleAlerts.php:
|
|
|
|
|
|
|
|
|
3970 |
msgid "Save Changes"
|
3971 |
msgstr ""
|
3972 |
|
3973 |
-
#: classes/Views/ToggleAlerts.php:
|
3974 |
msgid "Log Level Updated"
|
3975 |
msgstr ""
|
3976 |
|
3977 |
#. translators: Alerts log level.
|
3978 |
-
#: classes/Views/ToggleAlerts.php:
|
3979 |
msgid "The %s log level has been successfully loaded and applied."
|
3980 |
msgstr ""
|
3981 |
|
3982 |
-
#: classes/Views/ToggleAlerts.php:
|
3983 |
msgid "OK"
|
3984 |
msgstr ""
|
3985 |
|
3986 |
-
#: classes/Views/ToggleAlerts.php:
|
3987 |
msgid "Enable File Integrity Scanner"
|
3988 |
msgstr ""
|
3989 |
|
3990 |
-
#: classes/Views/ToggleAlerts.php:
|
3991 |
msgid "The file integrity scanner is switched off. To enable this event it has to be switched on."
|
3992 |
msgstr ""
|
3993 |
|
3994 |
-
#: classes/Views/ToggleAlerts.php:
|
3995 |
msgid "SWITCH ON"
|
3996 |
msgstr ""
|
3997 |
|
3998 |
-
#: classes/Views/ToggleAlerts.php:
|
3999 |
msgid "DISABLE EVENT"
|
4000 |
msgstr ""
|
4001 |
|
@@ -4003,88 +4193,88 @@ msgstr ""
|
|
4003 |
msgid "An identical search filter already exists."
|
4004 |
msgstr ""
|
4005 |
|
4006 |
-
#: extensions/search/search-init.php:218, extensions/search/search-init.php:
|
4007 |
msgid "Search"
|
4008 |
msgstr ""
|
4009 |
|
4010 |
-
#: extensions/search/search-init.php:
|
4011 |
msgid "- Use the free-text search to search for text in the event's message.<br>- To search for a particular Event ID, user, IP address, Post ID or Type or use date ranges, use the filters."
|
4012 |
msgstr ""
|
4013 |
|
4014 |
-
#: extensions/search/search-init.php:
|
4015 |
msgid "Clear Search Results"
|
4016 |
msgstr ""
|
4017 |
|
4018 |
-
#: extensions/search/search-init.php:
|
4019 |
msgid "Nothing found!"
|
4020 |
msgstr ""
|
4021 |
|
4022 |
-
#: extensions/search/search-init.php:
|
4023 |
msgid "Load"
|
4024 |
msgstr ""
|
4025 |
|
4026 |
-
#: extensions/search/search-init.php:
|
4027 |
msgid "Loading..."
|
4028 |
msgstr ""
|
4029 |
|
4030 |
-
#: extensions/search/search-init.php:
|
4031 |
msgid "Load & Run"
|
4032 |
msgstr ""
|
4033 |
|
4034 |
-
#: extensions/search/search-init.php:
|
4035 |
msgid "Delete"
|
4036 |
msgstr ""
|
4037 |
|
4038 |
-
#: extensions/search/search-init.php:
|
4039 |
msgid "Deleting..."
|
4040 |
msgstr ""
|
4041 |
|
4042 |
-
#: extensions/search/search-init.php:
|
4043 |
msgid "Load Search & Filters"
|
4044 |
msgstr ""
|
4045 |
|
4046 |
-
#: extensions/search/search-init.php:
|
4047 |
msgid "* Invalid IP"
|
4048 |
msgstr ""
|
4049 |
|
4050 |
-
#: extensions/search/search-init.php:
|
4051 |
msgid "Remove"
|
4052 |
msgstr ""
|
4053 |
|
4054 |
-
#: extensions/search/search-init.php:
|
4055 |
msgid "Close Filters"
|
4056 |
msgstr ""
|
4057 |
|
4058 |
-
#: extensions/search/search-init.php:
|
4059 |
msgid "Filter View"
|
4060 |
msgstr ""
|
4061 |
|
4062 |
#. translators: both placeholders are html formatting strings for itallics
|
4063 |
-
#: extensions/search/search-init.php:
|
4064 |
msgid "Click the %1$sSearch%2$s button to apply the filters. Click the %1$sClear Search Results%2$s button to reset the search and filters."
|
4065 |
msgstr ""
|
4066 |
|
4067 |
-
#: extensions/search/search-init.php:
|
4068 |
msgid "Widget could not be found."
|
4069 |
msgstr ""
|
4070 |
|
4071 |
-
#: extensions/search/search-init.php:
|
4072 |
msgid "No saved search found."
|
4073 |
msgstr ""
|
4074 |
|
4075 |
-
#: extensions/search/search-init.php:
|
4076 |
msgid "Saved searches found."
|
4077 |
msgstr ""
|
4078 |
|
4079 |
-
#: extensions/search/search-init.php:
|
4080 |
msgid "Search name not specified."
|
4081 |
msgstr ""
|
4082 |
|
4083 |
-
#: extensions/search/search-init.php:
|
4084 |
msgid "Saved search not found."
|
4085 |
msgstr ""
|
4086 |
|
4087 |
-
#: extensions/search/search-init.php:
|
4088 |
msgid "Saved search deleted."
|
4089 |
msgstr ""
|
4090 |
|
@@ -4112,11 +4302,11 @@ msgstr ""
|
|
4112 |
msgid "Add notification"
|
4113 |
msgstr ""
|
4114 |
|
4115 |
-
#: extensions/email-notifications/classes/AddNotification.php:
|
4116 |
msgid "Back"
|
4117 |
msgstr ""
|
4118 |
|
4119 |
-
#: extensions/email-notifications/classes/AddNotification.php:
|
4120 |
msgid "You have reached the maximum number of notifications you can add."
|
4121 |
msgstr ""
|
4122 |
|
@@ -4129,234 +4319,234 @@ msgstr ""
|
|
4129 |
#. translators: Twilio settings hyperlink.
|
4130 |
#. translators: Twilio settings hyperlink.
|
4131 |
#. translators: Twilio settings hyperlink.
|
4132 |
-
#: extensions/email-notifications/classes/AddNotification.php:
|
4133 |
msgid "Click %s to configure Twilio integration for SMS notifications."
|
4134 |
msgstr ""
|
4135 |
|
4136 |
-
#: extensions/email-notifications/classes/AddNotification.php:
|
4137 |
msgid "here"
|
4138 |
msgstr ""
|
4139 |
|
4140 |
#. translators: Trigger groups documentation hyperlink
|
4141 |
#. translators: Trigger groups documentation hyperlink
|
4142 |
-
#: extensions/email-notifications/classes/AddNotification.php:
|
4143 |
msgid "Trigger groups documentation"
|
4144 |
msgstr ""
|
4145 |
|
4146 |
-
#: extensions/email-notifications/classes/AddNotification.php:
|
4147 |
msgid "Triggers"
|
4148 |
msgstr ""
|
4149 |
|
4150 |
-
#: extensions/email-notifications/classes/AddNotification.php:
|
4151 |
msgid "Add Trigger"
|
4152 |
msgstr ""
|
4153 |
|
4154 |
-
#: extensions/email-notifications/classes/AddNotification.php:
|
4155 |
msgid "Use default email template"
|
4156 |
msgstr ""
|
4157 |
|
4158 |
-
#: extensions/email-notifications/classes/AddNotification.php:
|
4159 |
msgid "Use event specific email template"
|
4160 |
msgstr ""
|
4161 |
|
4162 |
-
#: extensions/email-notifications/classes/AddNotification.php:
|
4163 |
msgid "Name"
|
4164 |
msgstr ""
|
4165 |
|
4166 |
-
#: extensions/email-notifications/classes/AddNotification.php:
|
4167 |
msgid "Title"
|
4168 |
msgstr ""
|
4169 |
|
4170 |
-
#: extensions/email-notifications/classes/AddNotification.php:
|
4171 |
msgid "Email"
|
4172 |
msgstr ""
|
4173 |
|
4174 |
-
#: extensions/email-notifications/classes/AddNotification.php:
|
4175 |
msgid "Mobile Number"
|
4176 |
msgstr ""
|
4177 |
|
4178 |
-
#: extensions/email-notifications/classes/Common.php:
|
4179 |
msgid "The form is not valid. Please reload the page and try again."
|
4180 |
msgstr ""
|
4181 |
|
4182 |
#. translators: Event type
|
4183 |
-
#: extensions/email-notifications/classes/Common.php:
|
4184 |
msgid "%s is not valid"
|
4185 |
msgstr ""
|
4186 |
|
4187 |
-
#: extensions/email-notifications/classes/Common.php:
|
4188 |
msgid "Selected TYPE is not valid."
|
4189 |
msgstr ""
|
4190 |
|
4191 |
-
#: extensions/email-notifications/classes/Common.php:
|
4192 |
msgid "Selected OBJECT is not valid."
|
4193 |
msgstr ""
|
4194 |
|
4195 |
-
#: extensions/email-notifications/classes/Common.php:
|
4196 |
msgid "Selected POST STATUS is not valid."
|
4197 |
msgstr ""
|
4198 |
|
4199 |
-
#: extensions/email-notifications/classes/Common.php:
|
4200 |
msgid "Selected POST TYPE is not valid."
|
4201 |
msgstr ""
|
4202 |
|
4203 |
-
#: extensions/email-notifications/classes/Common.php:
|
4204 |
msgid "The enviroment is not multisite."
|
4205 |
msgstr ""
|
4206 |
|
4207 |
-
#: extensions/email-notifications/classes/Common.php:
|
4208 |
msgid "%s was not found"
|
4209 |
msgstr ""
|
4210 |
|
4211 |
-
#: extensions/email-notifications/classes/Common.php:
|
4212 |
msgid "TIME is not valid."
|
4213 |
msgstr ""
|
4214 |
|
4215 |
-
#: extensions/email-notifications/classes/Common.php:
|
4216 |
msgid "DATE is not valid."
|
4217 |
msgstr ""
|
4218 |
|
4219 |
-
#: extensions/email-notifications/classes/Common.php:
|
4220 |
msgid "The SOURCE IP is not valid. Maximum of 15 characters allowed."
|
4221 |
msgstr ""
|
4222 |
|
4223 |
-
#: extensions/email-notifications/classes/Common.php:
|
4224 |
msgid "The SOURCE IP is not valid."
|
4225 |
msgstr ""
|
4226 |
|
4227 |
-
#: extensions/email-notifications/classes/Common.php:
|
4228 |
msgid "The SOURCE IP fragment is not valid."
|
4229 |
msgstr ""
|
4230 |
|
4231 |
-
#: extensions/email-notifications/classes/Common.php:
|
4232 |
msgid "Selected USER ROLE is not valid."
|
4233 |
msgstr ""
|
4234 |
|
4235 |
-
#: extensions/email-notifications/classes/Common.php:
|
4236 |
msgid "The USERNAME is not valid. Maximum of 50 characters allowed."
|
4237 |
msgstr ""
|
4238 |
|
4239 |
-
#: extensions/email-notifications/classes/Common.php:
|
4240 |
msgid "The USERNAME does not exist."
|
4241 |
msgstr ""
|
4242 |
|
4243 |
-
#: extensions/email-notifications/classes/Common.php:
|
4244 |
msgid "The EVENT ID is not valid."
|
4245 |
msgstr ""
|
4246 |
|
4247 |
-
#: extensions/email-notifications/classes/Common.php:
|
4248 |
msgid "Internal Error. Please reload the page and try again."
|
4249 |
msgstr ""
|
4250 |
|
4251 |
-
#: extensions/email-notifications/classes/Common.php:
|
4252 |
msgid "Title is required."
|
4253 |
msgstr ""
|
4254 |
|
4255 |
-
#: extensions/email-notifications/classes/Common.php:
|
4256 |
msgid "Title is not valid."
|
4257 |
msgstr ""
|
4258 |
|
4259 |
-
#: extensions/email-notifications/classes/Common.php:
|
4260 |
msgid "Please add at least one condition."
|
4261 |
msgstr ""
|
4262 |
|
4263 |
-
#: extensions/email-notifications/classes/Common.php:
|
4264 |
msgid "The form is not valid. Please refresh the page and try again."
|
4265 |
msgstr ""
|
4266 |
|
4267 |
-
#: extensions/email-notifications/classes/Common.php:
|
4268 |
msgid "A trigger's condition must not be longer than 50 characters."
|
4269 |
msgstr ""
|
4270 |
|
4271 |
-
#: extensions/email-notifications/classes/Common.php:
|
4272 |
msgid "Email or Username is not valid."
|
4273 |
msgstr ""
|
4274 |
|
4275 |
-
#: extensions/email-notifications/classes/Common.php:
|
4276 |
msgid "Mobile number is not valid."
|
4277 |
msgstr ""
|
4278 |
|
4279 |
-
#: extensions/email-notifications/classes/Common.php:
|
4280 |
msgid "Email or Username is required."
|
4281 |
msgstr ""
|
4282 |
|
4283 |
-
#: extensions/email-notifications/classes/Common.php:
|
4284 |
msgid "Mobile number is required."
|
4285 |
msgstr ""
|
4286 |
|
4287 |
-
#: extensions/email-notifications/classes/Common.php:
|
4288 |
msgid "Notification could not be saved."
|
4289 |
msgstr ""
|
4290 |
|
4291 |
-
#: extensions/email-notifications/classes/Common.php:
|
4292 |
msgid "Notification successfully saved."
|
4293 |
msgstr ""
|
4294 |
|
4295 |
-
#: extensions/email-notifications/classes/Common.php:
|
4296 |
msgid "Notification {title} on website {site} triggered"
|
4297 |
msgstr ""
|
4298 |
|
4299 |
-
#: extensions/email-notifications/classes/Common.php:
|
4300 |
msgid "Notification <strong>{title}</strong> was triggered. Below are the notification details:"
|
4301 |
msgstr ""
|
4302 |
|
4303 |
-
#: extensions/email-notifications/classes/Common.php:
|
4304 |
msgid "Website"
|
4305 |
msgstr ""
|
4306 |
|
4307 |
-
#: extensions/email-notifications/classes/Common.php:
|
4308 |
msgid "Username"
|
4309 |
msgstr ""
|
4310 |
|
4311 |
-
#: extensions/email-notifications/classes/Common.php:
|
4312 |
msgid "User role"
|
4313 |
msgstr ""
|
4314 |
|
4315 |
-
#: extensions/email-notifications/classes/Common.php:
|
4316 |
msgid "IP address"
|
4317 |
msgstr ""
|
4318 |
|
4319 |
-
#: extensions/email-notifications/classes/Common.php:
|
4320 |
msgid "Event Message"
|
4321 |
msgstr ""
|
4322 |
|
4323 |
-
#: extensions/email-notifications/classes/Common.php:
|
4324 |
msgid "Event generated on"
|
4325 |
msgstr ""
|
4326 |
|
4327 |
-
#: extensions/email-notifications/classes/Common.php:
|
4328 |
msgid "These email notifications are sent with <a href=\"http://wpactivitylog.com\">WP Activity Log</a>, the most comprehensive WordPress activity log plugin solution."
|
4329 |
msgstr ""
|
4330 |
|
4331 |
-
#: extensions/email-notifications/classes/Common.php:
|
4332 |
msgid "User/Role"
|
4333 |
msgstr ""
|
4334 |
|
4335 |
-
#: extensions/email-notifications/classes/Common.php:
|
4336 |
msgid "User Role"
|
4337 |
msgstr ""
|
4338 |
|
4339 |
-
#: extensions/email-notifications/classes/Common.php:
|
4340 |
msgid "Generated On"
|
4341 |
msgstr ""
|
4342 |
|
4343 |
-
#: extensions/email-notifications/classes/Common.php:
|
4344 |
msgid "Monitoring of WordPress and Email Notifications provided by <a href=\"http://wpactivitylog.com\">WP Activity Log, WordPress most comprehensive audit trail plugin</a>."
|
4345 |
msgstr ""
|
4346 |
|
4347 |
-
#: extensions/email-notifications/classes/Common.php:
|
4348 |
msgid "Event"
|
4349 |
msgstr ""
|
4350 |
|
4351 |
-
#: extensions/email-notifications/classes/Common.php:
|
4352 |
msgid "Subject "
|
4353 |
msgstr ""
|
4354 |
|
4355 |
-
#: extensions/email-notifications/classes/Common.php:
|
4356 |
msgid "Body "
|
4357 |
msgstr ""
|
4358 |
|
4359 |
-
#: extensions/email-notifications/classes/Common.php:
|
4360 |
msgid "HTML is accepted. Available template tags:"
|
4361 |
msgstr ""
|
4362 |
|
@@ -4395,15 +4585,15 @@ msgstr ""
|
|
4395 |
msgid "Edit Notification"
|
4396 |
msgstr ""
|
4397 |
|
4398 |
-
#: extensions/email-notifications/classes/EditNotification.php:
|
4399 |
msgid "Add New"
|
4400 |
msgstr ""
|
4401 |
|
4402 |
-
#: extensions/email-notifications/classes/EditNotification.php:
|
4403 |
msgid "You do not have sufficient permissions to access this page. - INVALID NOTIFICATION ID"
|
4404 |
msgstr ""
|
4405 |
|
4406 |
-
#: extensions/email-notifications/classes/EditNotification.php:
|
4407 |
msgid "Specify the email address or WordPress usernames who should receive the notification once the trigger is matched. To specify multiple email addresses or usernames separate them with a comma (,)."
|
4408 |
msgstr ""
|
4409 |
|
@@ -4742,7 +4932,7 @@ msgstr ""
|
|
4742 |
msgid "Search Notifications"
|
4743 |
msgstr ""
|
4744 |
|
4745 |
-
#: extensions/email-notifications/classes/Notifications.php:1811, extensions/reports/classes/HtmlReportGenerator.php:
|
4746 |
msgid "All"
|
4747 |
msgstr ""
|
4748 |
|
@@ -4762,7 +4952,7 @@ msgstr ""
|
|
4762 |
msgid "Apply"
|
4763 |
msgstr ""
|
4764 |
|
4765 |
-
#: extensions/email-notifications/classes/Notifications.php:1846, extensions/email-notifications/classes/Notifications.php:1857, extensions/reports/inc/wsal-reporting-view.inc.php:
|
4766 |
msgid "Select All"
|
4767 |
msgstr ""
|
4768 |
|
@@ -4928,18 +5118,6 @@ msgstr ""
|
|
4928 |
msgid "Unknown notification."
|
4929 |
msgstr ""
|
4930 |
|
4931 |
-
#: extensions/email-notifications/classes/Notifier.php:756, extensions/reports/classes/Common.php:502
|
4932 |
-
msgid "View the Forum in editor"
|
4933 |
-
msgstr ""
|
4934 |
-
|
4935 |
-
#: extensions/email-notifications/classes/Notifier.php:759, extensions/reports/classes/Common.php:505
|
4936 |
-
msgid "View the Topic in editor"
|
4937 |
-
msgstr ""
|
4938 |
-
|
4939 |
-
#: extensions/email-notifications/classes/Notifier.php:941
|
4940 |
-
msgid "Contact us on support@wpsecurityauditlog.com for assistance"
|
4941 |
-
msgstr ""
|
4942 |
-
|
4943 |
#: extensions/email-notifications/classes/SMSProviderSettings.php:118
|
4944 |
msgid "SMS Provider"
|
4945 |
msgstr ""
|
@@ -5294,7 +5472,7 @@ msgid "Are you sure that you want to delete this connection?"
|
|
5294 |
msgstr ""
|
5295 |
|
5296 |
#: extensions/external-db/classes/Connections.php:564, extensions/external-db/classes/Mirroring.php:600
|
5297 |
-
msgid "
|
5298 |
msgstr ""
|
5299 |
|
5300 |
#: extensions/external-db/classes/Connections.php:725
|
@@ -5357,7 +5535,7 @@ msgstr ""
|
|
5357 |
msgid "The WordPress activity log is currently being mirrored to:"
|
5358 |
msgstr ""
|
5359 |
|
5360 |
-
#: extensions/external-db/classes/Mirroring.php:125, extensions/external-db/classes/Mirroring.php:397, extensions/reports/inc/wsal-reporting-view.inc.php:
|
5361 |
msgid "Frequency"
|
5362 |
msgstr ""
|
5363 |
|
@@ -5514,7 +5692,7 @@ msgstr ""
|
|
5514 |
msgid "Are you sure that you want to delete this mirror?"
|
5515 |
msgstr ""
|
5516 |
|
5517 |
-
#: extensions/external-db/classes/Mirroring.php:599, extensions/reports/inc/wsal-reporting-view.inc.php:
|
5518 |
msgid "Select Event Code(s)"
|
5519 |
msgstr ""
|
5520 |
|
@@ -5714,487 +5892,499 @@ msgstr ""
|
|
5714 |
msgid "Mirror not found."
|
5715 |
msgstr ""
|
5716 |
|
5717 |
-
#: extensions/reports/classes/Common.php:
|
5718 |
msgid "Internal error. <code>%s</code> key was not found."
|
5719 |
msgstr ""
|
5720 |
|
5721 |
-
#: extensions/reports/classes/Common.php:
|
5722 |
msgid "Please specify at least one Alert Group or specify an Alert Code."
|
5723 |
msgstr ""
|
5724 |
|
5725 |
-
#: extensions/reports/classes/Common.php:
|
5726 |
msgid "Internal Error: Could not detect the type of the report to generate."
|
5727 |
msgstr ""
|
5728 |
|
5729 |
-
#: extensions/reports/classes/Common.php:
|
5730 |
msgid "There are no alerts that match your filtering criteria. Please try a different set of rules."
|
5731 |
msgstr ""
|
5732 |
|
5733 |
-
#: extensions/reports/classes/Common.php:
|
5734 |
msgid "Error: The <strong>%s</strong> path is not accessible."
|
5735 |
msgstr ""
|
5736 |
|
5737 |
-
#: extensions/reports/classes/Common.php:
|
5738 |
msgid "%1$s - Website %2$s"
|
5739 |
msgstr ""
|
5740 |
|
5741 |
-
#: extensions/reports/classes/Common.php:
|
5742 |
msgid "Week number %1$s - Website %2$s"
|
5743 |
msgstr ""
|
5744 |
|
5745 |
-
#: extensions/reports/classes/Common.php:
|
5746 |
msgid "Month %1$s %2$s- Website %3$s"
|
5747 |
msgstr ""
|
5748 |
|
5749 |
-
#: extensions/reports/classes/Common.php:
|
5750 |
msgid "Quarter %1$s - Website %2$s"
|
5751 |
msgstr ""
|
5752 |
|
5753 |
-
#: extensions/reports/classes/Common.php:
|
5754 |
msgid " - %s Email Report"
|
5755 |
msgstr ""
|
5756 |
|
5757 |
-
#: extensions/reports/classes/Common.php:
|
5758 |
msgid "Internal Error. Could not retrieve the alerts from the main plugin."
|
5759 |
msgstr ""
|
5760 |
|
5761 |
-
#: extensions/reports/classes/HtmlReportGenerator.php:
|
5762 |
msgid "WP Activity Log Reporter"
|
5763 |
msgstr ""
|
5764 |
|
5765 |
-
#: extensions/reports/classes/HtmlReportGenerator.php:
|
5766 |
msgid "Report from"
|
5767 |
msgstr ""
|
5768 |
|
5769 |
-
#: extensions/reports/classes/HtmlReportGenerator.php:
|
5770 |
msgid "website"
|
5771 |
msgstr ""
|
5772 |
|
5773 |
-
#: extensions/reports/classes/HtmlReportGenerator.php:
|
5774 |
msgid "Report Details:"
|
5775 |
msgstr ""
|
5776 |
|
5777 |
-
#: extensions/reports/classes/HtmlReportGenerator.php:
|
5778 |
msgid "Generated on:"
|
5779 |
msgstr ""
|
5780 |
|
5781 |
-
#: extensions/reports/classes/HtmlReportGenerator.php:
|
5782 |
msgid "Generated by:"
|
5783 |
msgstr ""
|
5784 |
|
5785 |
-
#: extensions/reports/classes/HtmlReportGenerator.php:
|
5786 |
msgid "Site(s)"
|
5787 |
msgstr ""
|
5788 |
|
5789 |
-
#: extensions/reports/classes/HtmlReportGenerator.php:
|
5790 |
msgid "User(s)"
|
5791 |
msgstr ""
|
5792 |
|
5793 |
-
#: extensions/reports/classes/HtmlReportGenerator.php:
|
5794 |
msgid "Role(s)"
|
5795 |
msgstr ""
|
5796 |
|
5797 |
-
#: extensions/reports/classes/HtmlReportGenerator.php:
|
5798 |
msgid "IP address(es)"
|
5799 |
msgstr ""
|
5800 |
|
5801 |
-
#: extensions/reports/classes/HtmlReportGenerator.php:
|
5802 |
msgid "Alert Groups"
|
5803 |
msgstr ""
|
5804 |
|
5805 |
-
#: extensions/reports/classes/HtmlReportGenerator.php:
|
5806 |
msgid "Alert Code(s)"
|
5807 |
msgstr ""
|
5808 |
|
5809 |
-
#: extensions/reports/classes/HtmlReportGenerator.php:
|
5810 |
msgid "Start date"
|
5811 |
msgstr ""
|
5812 |
|
5813 |
-
#: extensions/reports/classes/HtmlReportGenerator.php:
|
5814 |
msgid "End date"
|
5815 |
msgstr ""
|
5816 |
|
5817 |
-
#: extensions/reports/classes/HtmlReportGenerator.php:
|
5818 |
msgid "Post Types"
|
5819 |
msgstr ""
|
5820 |
|
5821 |
-
#: extensions/reports/classes/HtmlReportGenerator.php:
|
5822 |
msgid "Post Status"
|
5823 |
msgstr ""
|
5824 |
|
5825 |
-
#: extensions/reports/classes/HtmlReportGenerator.php:
|
5826 |
msgid "From the beginning"
|
5827 |
msgstr ""
|
5828 |
|
5829 |
-
#: extensions/reports/classes/HtmlReportGenerator.php:
|
5830 |
msgid "Criteria"
|
5831 |
msgstr ""
|
5832 |
|
5833 |
-
#: extensions/reports/classes/HtmlReportGenerator.php:
|
5834 |
msgid "Results"
|
5835 |
msgstr ""
|
5836 |
|
5837 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
5838 |
msgid "Invalid Request. Please refresh the page and try again."
|
5839 |
msgstr ""
|
5840 |
|
5841 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
5842 |
msgid "Error (TODO - error message): Please select SITES"
|
5843 |
msgstr ""
|
5844 |
|
5845 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
5846 |
msgid "Error (TODO - error message): Please select USERS"
|
5847 |
msgstr ""
|
5848 |
|
5849 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
5850 |
msgid "Error: Please select at least one role"
|
5851 |
msgstr ""
|
5852 |
|
5853 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
5854 |
msgid "Error: Please select at least one IP address"
|
5855 |
msgstr ""
|
5856 |
|
5857 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
5858 |
msgid "Error: Please select at least one object"
|
5859 |
msgstr ""
|
5860 |
|
5861 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
5862 |
msgid "Error: Please select at least one event object"
|
5863 |
msgstr ""
|
5864 |
|
5865 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
5866 |
msgid "Please select the report format."
|
5867 |
msgstr ""
|
5868 |
|
5869 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
5870 |
msgid "Periodic Report successfully saved."
|
5871 |
msgstr ""
|
5872 |
|
5873 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
5874 |
-
msgid "
|
5875 |
msgstr ""
|
5876 |
|
5877 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5878 |
msgid "Periodic Report successfully Deleted."
|
5879 |
msgstr ""
|
5880 |
|
5881 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
5882 |
msgid "Generate & Configure Periodic Reports"
|
5883 |
msgstr ""
|
5884 |
|
5885 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
5886 |
msgid "Statistics Reports"
|
5887 |
msgstr ""
|
5888 |
|
5889 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
5890 |
msgid "Generate a report"
|
5891 |
msgstr ""
|
5892 |
|
5893 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
5894 |
msgid "Step 1: Select the type of report"
|
5895 |
msgstr ""
|
5896 |
|
5897 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
5898 |
msgid "By Site(s)"
|
5899 |
msgstr ""
|
5900 |
|
5901 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
5902 |
msgid "Specify sites"
|
5903 |
msgstr ""
|
5904 |
|
5905 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
5906 |
msgid "By User(s)"
|
5907 |
msgstr ""
|
5908 |
|
5909 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
5910 |
msgid "All Users"
|
5911 |
msgstr ""
|
5912 |
|
5913 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
5914 |
msgid "Specify users"
|
5915 |
msgstr ""
|
5916 |
|
5917 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
5918 |
msgid "Automated verification of usernames is disabled because you have more than 100 users. The process might require a lot of resources to work with a lot of users. Tick the option below to enable it again."
|
5919 |
msgstr ""
|
5920 |
|
5921 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
5922 |
msgid "Enable Autocomplete"
|
5923 |
msgstr ""
|
5924 |
|
5925 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
5926 |
msgid "By Role(s)"
|
5927 |
msgstr ""
|
5928 |
|
5929 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
5930 |
msgid "All Roles"
|
5931 |
msgstr ""
|
5932 |
|
5933 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
5934 |
msgid "Specify roles"
|
5935 |
msgstr ""
|
5936 |
|
5937 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
5938 |
msgid "By IP Address(es)"
|
5939 |
msgstr ""
|
5940 |
|
5941 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
5942 |
msgid "All IP Addresses"
|
5943 |
msgstr ""
|
5944 |
|
5945 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
5946 |
msgid "Specify IP Addresses"
|
5947 |
msgstr ""
|
5948 |
|
5949 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
5950 |
msgid "By Object(s)"
|
5951 |
msgstr ""
|
5952 |
|
5953 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
5954 |
msgid "All Objects"
|
5955 |
msgstr ""
|
5956 |
|
5957 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
5958 |
msgid "Specify Objects"
|
5959 |
msgstr ""
|
5960 |
|
5961 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
5962 |
msgid "By Event Type(s)"
|
5963 |
msgstr ""
|
5964 |
|
5965 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
5966 |
msgid "All Event Types"
|
5967 |
msgstr ""
|
5968 |
|
5969 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
5970 |
msgid "Specify Event Types"
|
5971 |
msgstr ""
|
5972 |
|
5973 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
5974 |
msgid "By Event Code(s)"
|
5975 |
msgstr ""
|
5976 |
|
5977 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
5978 |
msgid "Posts"
|
5979 |
msgstr ""
|
5980 |
|
5981 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
5982 |
msgid "Post Type"
|
5983 |
msgstr ""
|
5984 |
|
5985 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
5986 |
msgid "Specify Event Codes"
|
5987 |
msgstr ""
|
5988 |
|
5989 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
5990 |
msgid "By the Below Criteria"
|
5991 |
msgstr ""
|
5992 |
|
5993 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
5994 |
msgid "Number & List of unique IP addresses per user"
|
5995 |
msgstr ""
|
5996 |
|
5997 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
5998 |
msgid "Number of Logins per user"
|
5999 |
msgstr ""
|
6000 |
|
6001 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6002 |
msgid "Select site(s)"
|
6003 |
msgstr ""
|
6004 |
|
6005 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6006 |
msgid "Select user(s)"
|
6007 |
msgstr ""
|
6008 |
|
6009 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6010 |
msgid "Select role(s)"
|
6011 |
msgstr ""
|
6012 |
|
6013 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6014 |
msgid "Select IP address(es)"
|
6015 |
msgstr ""
|
6016 |
|
6017 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6018 |
msgid "Select Objects(s)"
|
6019 |
msgstr ""
|
6020 |
|
6021 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6022 |
msgid "Select Type(s)"
|
6023 |
msgstr ""
|
6024 |
|
6025 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6026 |
msgid "Select Post Type(s)"
|
6027 |
msgstr ""
|
6028 |
|
6029 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6030 |
msgid "Select Post Status(es)"
|
6031 |
msgstr ""
|
6032 |
|
6033 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6034 |
msgid "Step 2: Select the date range"
|
6035 |
msgstr ""
|
6036 |
|
6037 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6038 |
msgid "Note: Do not specify any dates if you are creating a scheduled report or if you want to generate a report from when you started the audit trail."
|
6039 |
msgstr ""
|
6040 |
|
6041 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6042 |
msgid "Start Date"
|
6043 |
msgstr ""
|
6044 |
|
6045 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6046 |
msgid "Select start date"
|
6047 |
msgstr ""
|
6048 |
|
6049 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6050 |
msgid "End Date"
|
6051 |
msgstr ""
|
6052 |
|
6053 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6054 |
msgid "Select end date"
|
6055 |
msgstr ""
|
6056 |
|
6057 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6058 |
msgid "Step 3: Select Report Format"
|
6059 |
msgstr ""
|
6060 |
|
6061 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6062 |
msgid "HTML"
|
6063 |
msgstr ""
|
6064 |
|
6065 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6066 |
msgid "CSV"
|
6067 |
msgstr ""
|
6068 |
|
6069 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6070 |
msgid "Step 4: Generate Report Now or Configure Periodic Reports"
|
6071 |
msgstr ""
|
6072 |
|
6073 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6074 |
msgid "Generate Report Now"
|
6075 |
msgstr ""
|
6076 |
|
6077 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6078 |
msgid " Use the buttons below to use the above criteria for a daily, weekly and monthly summary report which is sent automatically via email."
|
6079 |
msgstr ""
|
6080 |
|
6081 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6082 |
msgid "Email address(es)"
|
6083 |
msgstr ""
|
6084 |
|
6085 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6086 |
msgid "Report Name"
|
6087 |
msgstr ""
|
6088 |
|
6089 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6090 |
msgid "Daily"
|
6091 |
msgstr ""
|
6092 |
|
6093 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6094 |
msgid "Weekly"
|
6095 |
msgstr ""
|
6096 |
|
6097 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6098 |
msgid "Monthly"
|
6099 |
msgstr ""
|
6100 |
|
6101 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6102 |
msgid "Quarterly"
|
6103 |
msgstr ""
|
6104 |
|
6105 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6106 |
msgid "Configured Periodic Reports"
|
6107 |
msgstr ""
|
6108 |
|
6109 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6110 |
msgid "Below is the list of configured periodic reports. Click on Modify to load the criteria and configure it above. To save the new criteria as a new report change the report name and save it. Do not change the report name to overwrite the existing periodic report."
|
6111 |
msgstr ""
|
6112 |
|
6113 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6114 |
msgid "Note: Use the Send Now button to generate a report with data from the last 90 days if a quarterly report is configured, 30 days if monthly report is configured and 7 days if weekly report is configured."
|
6115 |
msgstr ""
|
6116 |
|
6117 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6118 |
msgid "Step 1: Choose Date Range"
|
6119 |
msgstr ""
|
6120 |
|
6121 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6122 |
msgid "From"
|
6123 |
msgstr ""
|
6124 |
|
6125 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6126 |
msgid "To"
|
6127 |
msgstr ""
|
6128 |
|
6129 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6130 |
msgid "Step 2: Choose Criteria"
|
6131 |
msgstr ""
|
6132 |
|
6133 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6134 |
msgid "Report for"
|
6135 |
msgstr ""
|
6136 |
|
6137 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6138 |
msgid "Number of logins for user"
|
6139 |
msgstr ""
|
6140 |
|
6141 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6142 |
msgid "Number of logins for users with the role of"
|
6143 |
msgstr ""
|
6144 |
|
6145 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6146 |
msgid "Number of views for user"
|
6147 |
msgstr ""
|
6148 |
|
6149 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6150 |
msgid "Number of views for users with the role of"
|
6151 |
msgstr ""
|
6152 |
|
6153 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6154 |
msgid "Number of published content for user"
|
6155 |
msgstr ""
|
6156 |
|
6157 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6158 |
msgid "Number of published content for users with the role of"
|
6159 |
msgstr ""
|
6160 |
|
6161 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6162 |
msgid "Different IP addresses for Usernames"
|
6163 |
msgstr ""
|
6164 |
|
6165 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6166 |
msgid "List only IP addresses used during login"
|
6167 |
msgstr ""
|
6168 |
|
6169 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6170 |
msgid "If the above option is enabled the report will only include the IP addresses from where the user logged in. If it is disabled it will list all the IP addresses from where the plugin recorded activity originating from the user."
|
6171 |
msgstr ""
|
6172 |
|
6173 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6174 |
msgid "Please specify at least one site"
|
6175 |
msgstr ""
|
6176 |
|
6177 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6178 |
msgid "Please specify at least one user"
|
6179 |
msgstr ""
|
6180 |
|
6181 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6182 |
msgid "Please specify at least one role"
|
6183 |
msgstr ""
|
6184 |
|
6185 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6186 |
msgid "Please specify at least one IP address"
|
6187 |
msgstr ""
|
6188 |
|
6189 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6190 |
msgid "Please specify at least one object"
|
6191 |
msgstr ""
|
6192 |
|
6193 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6194 |
msgid "Please specify at least one event type"
|
6195 |
msgstr ""
|
6196 |
|
6197 |
-
#: extensions/reports/inc/wsal-reporting-view.inc.php:
|
6198 |
msgid "Please specify at least one Alert group or specify an Alert code"
|
6199 |
msgstr ""
|
6200 |
|
@@ -6246,7 +6436,7 @@ msgstr ""
|
|
6246 |
msgid "Filter by username"
|
6247 |
msgstr ""
|
6248 |
|
6249 |
-
#: extensions/search/classes/FilterManager.php:478, extensions/user-sessions/classes/View/Sessions.php:
|
6250 |
msgid "First Name"
|
6251 |
msgstr ""
|
6252 |
|
@@ -6254,7 +6444,7 @@ msgstr ""
|
|
6254 |
msgid "Filter by user first name"
|
6255 |
msgstr ""
|
6256 |
|
6257 |
-
#: extensions/search/classes/FilterManager.php:482, extensions/user-sessions/classes/View/Sessions.php:
|
6258 |
msgid "Last Name"
|
6259 |
msgstr ""
|
6260 |
|
@@ -6322,100 +6512,96 @@ msgstr ""
|
|
6322 |
msgid "Logged In Users"
|
6323 |
msgstr ""
|
6324 |
|
6325 |
-
#: extensions/user-sessions/classes/Views.php:
|
6326 |
msgid "Logging out..."
|
6327 |
msgstr ""
|
6328 |
|
6329 |
-
#: extensions/user-sessions/classes/Views.php:
|
6330 |
msgid "Refreshing..."
|
6331 |
msgstr ""
|
6332 |
|
6333 |
-
#: extensions/user-sessions/classes/Views.php:
|
6334 |
msgid "This could result in loss of unsaved work. Are you sure?"
|
6335 |
msgstr ""
|
6336 |
|
6337 |
#. translators: %s: Total number of users
|
6338 |
-
#: extensions/user-sessions/classes/Views.php:
|
6339 |
-
msgid "out of %s
|
6340 |
msgstr ""
|
6341 |
|
6342 |
-
#: extensions/user-sessions/classes/Views.php:
|
6343 |
msgid "Retrieve user data"
|
6344 |
msgstr ""
|
6345 |
|
6346 |
-
#: extensions/user-sessions/classes/Views.php:
|
6347 |
msgid "Retrieving data"
|
6348 |
msgstr ""
|
6349 |
|
6350 |
-
#: extensions/user-sessions/classes/Views.php:
|
6351 |
msgid "Data retrieved"
|
6352 |
msgstr ""
|
6353 |
|
6354 |
-
#: extensions/user-sessions/classes/Views.php:
|
6355 |
msgid "Event ID: "
|
6356 |
msgstr ""
|
6357 |
|
6358 |
-
#: extensions/user-sessions/classes/Views.php:
|
6359 |
msgid "Object: "
|
6360 |
msgstr ""
|
6361 |
|
6362 |
-
#: extensions/user-sessions/classes/Views.php:
|
6363 |
msgid "Event Type: "
|
6364 |
msgstr ""
|
6365 |
|
6366 |
-
#: extensions/user-sessions/classes/Views.php:
|
6367 |
msgid "Terminate all logged in sessions"
|
6368 |
msgstr ""
|
6369 |
|
6370 |
-
#: extensions/user-sessions/classes/Views.php:
|
6371 |
msgid "This will terminate all users' sessions including yours, which could result in unsaved work. Do you like to proceed?"
|
6372 |
msgstr ""
|
6373 |
|
6374 |
-
#: extensions/user-sessions/classes/Views.php:
|
6375 |
msgid "YES"
|
6376 |
msgstr ""
|
6377 |
|
6378 |
-
#: extensions/user-sessions/classes/Views.php:
|
6379 |
msgid "NO"
|
6380 |
msgstr ""
|
6381 |
|
6382 |
-
#: extensions/user-sessions/classes/Views.php:
|
6383 |
msgid "Terminate All Sessions"
|
6384 |
msgstr ""
|
6385 |
|
6386 |
-
#: extensions/user-sessions/classes/Views.php:
|
6387 |
msgid "Users sessions termination is in progress. Please wait..."
|
6388 |
msgstr ""
|
6389 |
|
6390 |
-
#: extensions/user-sessions/classes/Views.php:
|
6391 |
msgid "You do not have sufficient permissions."
|
6392 |
msgstr ""
|
6393 |
|
6394 |
-
#: extensions/user-sessions/classes/Views.php:
|
6395 |
msgid "No sessions."
|
6396 |
msgstr ""
|
6397 |
|
6398 |
-
#: extensions/user-sessions/classes/Views.php:
|
6399 |
msgid "Session destroyed."
|
6400 |
msgstr ""
|
6401 |
|
6402 |
-
#: extensions/user-sessions/classes/Views.php:
|
6403 |
msgid "User session data is not set."
|
6404 |
msgstr ""
|
6405 |
|
6406 |
-
#: extensions/user-sessions/classes/Views.php:
|
6407 |
msgid "User do not have sufficient permissions."
|
6408 |
msgstr ""
|
6409 |
|
6410 |
-
#: extensions/user-sessions/classes/Views.php:
|
6411 |
-
msgid "Users offset is not set."
|
6412 |
-
msgstr ""
|
6413 |
-
|
6414 |
-
#: extensions/user-sessions/classes/Views.php:554, extensions/user-sessions/classes/Views.php:545
|
6415 |
msgid "Sessions destroyed!"
|
6416 |
msgstr ""
|
6417 |
|
6418 |
-
#: extensions/user-sessions/classes/Views.php:
|
6419 |
msgid "Nonce check failed."
|
6420 |
msgstr ""
|
6421 |
|
@@ -6427,19 +6613,27 @@ msgstr ""
|
|
6427 |
msgid "Reports"
|
6428 |
msgstr ""
|
6429 |
|
6430 |
-
#: extensions/reports/classes/Views/Main.php:
|
6431 |
-
msgid "
|
6432 |
msgstr ""
|
6433 |
|
6434 |
-
#: extensions/reports/classes/Views/Main.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6435 |
msgid "To generate a report or configure automated scheduled report please contact the administrator of this multisite network on "
|
6436 |
msgstr ""
|
6437 |
|
6438 |
-
#: extensions/reports/classes/Views/Main.php:
|
6439 |
msgid "The %s directory which the Reports plugin uses to create reports in was either not found or is not accessible."
|
6440 |
msgstr ""
|
6441 |
|
6442 |
-
#: extensions/reports/classes/Views/Main.php:
|
6443 |
msgid "In order for the plugin to function, the directory %1$s must be created and the plugin should have access to write to this directory, so please configure the following permissions: 0755. If you have any questions or need further assistance please %2$s"
|
6444 |
msgstr ""
|
6445 |
|
@@ -6511,7 +6705,7 @@ msgstr ""
|
|
6511 |
msgid "Select a user role to filter"
|
6512 |
msgstr ""
|
6513 |
|
6514 |
-
#: extensions/user-sessions/classes/Sensors/UserSessionsTracking.php:
|
6515 |
msgid "ERROR: Your session was blocked with the <a href=\"https://en-gb.wordpress.org/plugins/wp-security-audit-log\" target=\"_blank\">WP Activity Log plugin</a> because there is already another user logged in with the same username. Please contact the site administrator for more information."
|
6516 |
msgstr ""
|
6517 |
|
@@ -6523,92 +6717,92 @@ msgstr ""
|
|
6523 |
msgid "User Session Options"
|
6524 |
msgstr ""
|
6525 |
|
6526 |
-
#: extensions/user-sessions/classes/View/Sessions.php:
|
6527 |
msgid "Showing results for "
|
6528 |
msgstr ""
|
6529 |
|
6530 |
-
#: extensions/user-sessions/classes/View/Sessions.php:
|
6531 |
msgid "No search results were found."
|
6532 |
msgstr ""
|
6533 |
|
6534 |
-
#: extensions/user-sessions/classes/View/Sessions.php:
|
6535 |
msgid "Expires"
|
6536 |
msgstr ""
|
6537 |
|
6538 |
-
#: extensions/user-sessions/classes/View/Sessions.php:
|
6539 |
msgid "Source IP"
|
6540 |
msgstr ""
|
6541 |
|
6542 |
-
#: extensions/user-sessions/classes/View/Sessions.php:
|
6543 |
msgid "Last Event"
|
6544 |
msgstr ""
|
6545 |
|
6546 |
-
#: extensions/user-sessions/classes/View/Sessions.php:
|
6547 |
msgid "Actions"
|
6548 |
msgstr ""
|
6549 |
|
6550 |
#. translators: Number of sessions
|
6551 |
-
#: extensions/user-sessions/classes/View/Sessions.php:
|
6552 |
msgid "%s users"
|
6553 |
msgstr ""
|
6554 |
|
6555 |
-
#: extensions/user-sessions/classes/View/Sessions.php:
|
6556 |
msgid "Go to the first page"
|
6557 |
msgstr ""
|
6558 |
|
6559 |
-
#: extensions/user-sessions/classes/View/Sessions.php:
|
6560 |
msgid "Go to the previous page"
|
6561 |
msgstr ""
|
6562 |
|
6563 |
-
#: extensions/user-sessions/classes/View/Sessions.php:
|
6564 |
msgid "of"
|
6565 |
msgstr ""
|
6566 |
|
6567 |
-
#: extensions/user-sessions/classes/View/Sessions.php:
|
6568 |
msgid "Go to the next page"
|
6569 |
msgstr ""
|
6570 |
|
6571 |
-
#: extensions/user-sessions/classes/View/Sessions.php:
|
6572 |
msgid "Go to the last page"
|
6573 |
msgstr ""
|
6574 |
|
6575 |
-
#: extensions/user-sessions/classes/View/Sessions.php:
|
6576 |
msgid "Total number of sessions with Administrator Role: "
|
6577 |
msgstr ""
|
6578 |
|
6579 |
-
#: extensions/user-sessions/classes/View/Sessions.php:
|
6580 |
msgid "Show:"
|
6581 |
msgstr ""
|
6582 |
|
6583 |
-
#: extensions/user-sessions/classes/View/Sessions.php:
|
6584 |
msgid "Network-wide Logins"
|
6585 |
msgstr ""
|
6586 |
|
6587 |
-
#: extensions/user-sessions/classes/View/Sessions.php:
|
6588 |
msgid "Session ID: "
|
6589 |
msgstr ""
|
6590 |
|
6591 |
-
#: extensions/user-sessions/classes/View/Sessions.php:
|
6592 |
msgid "Click the button above to retrieve the users' last event."
|
6593 |
msgstr ""
|
6594 |
|
6595 |
-
#: extensions/user-sessions/classes/View/Sessions.php:
|
6596 |
msgid "Show me this user's events"
|
6597 |
msgstr ""
|
6598 |
|
6599 |
-
#: extensions/user-sessions/classes/View/Sessions.php:
|
6600 |
msgid "Terminate Session"
|
6601 |
msgstr ""
|
6602 |
|
6603 |
-
#: extensions/user-sessions/classes/View/Sessions.php:
|
6604 |
msgid "WP Activity Log keeps its own user session data. This means that the sessions of already logged in users will only show up once they logout and log back in. The same applies to your session."
|
6605 |
msgstr ""
|
6606 |
|
6607 |
-
#: extensions/user-sessions/classes/View/Sessions.php:
|
6608 |
msgid "No logged in sessions meet your search criteria."
|
6609 |
msgstr ""
|
6610 |
|
6611 |
-
#: extensions/user-sessions/classes/View/Sessions.php:
|
6612 |
msgid "User sessions do not exist."
|
6613 |
msgstr ""
|
6614 |
|
16 |
"X-Poedit-SourceCharset: UTF-8\n"
|
17 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
18 |
|
19 |
+
#: defaults.php:70
|
20 |
msgid "Critical severity events."
|
21 |
msgstr ""
|
22 |
|
23 |
+
#: defaults.php:71
|
24 |
msgid "High severity events."
|
25 |
msgstr ""
|
26 |
|
27 |
+
#: defaults.php:72
|
28 |
msgid "Medium severity events."
|
29 |
msgstr ""
|
30 |
|
31 |
+
#: defaults.php:73
|
32 |
msgid "Low severity events."
|
33 |
msgstr ""
|
34 |
|
35 |
+
#: defaults.php:74
|
36 |
msgid "Informational events."
|
37 |
msgstr ""
|
38 |
|
39 |
+
#: defaults.php:79
|
40 |
msgid "Users Logins & Sessions Events"
|
41 |
msgstr ""
|
42 |
|
43 |
+
#: defaults.php:80, extensions/email-notifications/classes/Notifications.php:1255
|
44 |
msgid "User Activity"
|
45 |
msgstr ""
|
46 |
|
47 |
+
#: defaults.php:81, defaults.php:81
|
48 |
msgid "User logged in"
|
49 |
msgstr ""
|
50 |
|
51 |
+
#: defaults.php:82, defaults.php:82
|
52 |
msgid "User logged out"
|
53 |
msgstr ""
|
54 |
|
55 |
+
#: defaults.php:83
|
56 |
msgid "Login failed"
|
57 |
msgstr ""
|
58 |
|
59 |
+
#: defaults.php:83
|
60 |
+
msgid "%Attempts% failed login(s)"
|
61 |
+
msgstr ""
|
62 |
+
|
63 |
+
#: defaults.php:84
|
64 |
msgid "Login failed / non existing user"
|
65 |
msgstr ""
|
66 |
|
67 |
+
#: defaults.php:84
|
68 |
msgid "%Attempts% failed login(s) %LineBreak% %LogFileText%"
|
69 |
msgstr ""
|
70 |
|
71 |
+
#: defaults.php:85
|
72 |
msgid "Login blocked"
|
73 |
msgstr ""
|
74 |
|
75 |
+
#: defaults.php:85
|
76 |
msgid "Login blocked because other session(s) already exist for this user. %LineBreak% IP address: %ClientIP%"
|
77 |
msgstr ""
|
78 |
|
79 |
+
#: defaults.php:86
|
80 |
msgid "User logged in with existing session(s)"
|
81 |
msgstr ""
|
82 |
|
83 |
+
#: defaults.php:86
|
84 |
msgid "User logged in. There are other session(s) using the same username logged in from these IP address(es): %IPAddress%"
|
85 |
msgstr ""
|
86 |
|
87 |
+
#: defaults.php:87
|
88 |
msgid "User logged out all other sessions with the same username"
|
89 |
msgstr ""
|
90 |
|
91 |
+
#: defaults.php:87
|
92 |
msgid "Logged out all other sessions with the same user."
|
93 |
msgstr ""
|
94 |
|
95 |
+
#: defaults.php:88
|
96 |
msgid "User session destroyed and logged out"
|
97 |
msgstr ""
|
98 |
|
99 |
+
#: defaults.php:88
|
100 |
+
msgid "Terminated the session of another user. %LineBreak% User: %TargetUserName% %LineBreak% Role: %TargetUserRole% %LineBreak% Session ID: %TargetSessionID%"
|
101 |
msgstr ""
|
102 |
|
103 |
+
#: defaults.php:89
|
104 |
msgid "Switched to another user"
|
105 |
msgstr ""
|
106 |
|
107 |
+
#: defaults.php:89
|
108 |
msgid "Switched to another user. %LineBreak% User: %TargetUserName% %LineBreak% Role: %TargetUserRole%"
|
109 |
msgstr ""
|
110 |
|
111 |
+
#: defaults.php:90
|
112 |
msgid "User uploaded file from Uploads directory"
|
113 |
msgstr ""
|
114 |
|
115 |
+
#: defaults.php:90, defaults.php:91
|
116 |
msgid "Filename: %FileName% %LineBreak% Directory: %FilePath%"
|
117 |
msgstr ""
|
118 |
|
119 |
+
#: defaults.php:91
|
120 |
msgid "User deleted file from Uploads directory"
|
121 |
msgstr ""
|
122 |
|
123 |
+
#: defaults.php:92
|
124 |
+
msgid "User requested a password reset"
|
125 |
+
msgstr ""
|
126 |
+
|
127 |
+
#: defaults.php:92
|
128 |
+
msgid "User requested a password reset. This does not mean that the password was changed."
|
129 |
+
msgstr ""
|
130 |
+
|
131 |
+
#: defaults.php:96
|
132 |
msgid "Content & Comments"
|
133 |
msgstr ""
|
134 |
|
135 |
+
#: defaults.php:97
|
136 |
msgid "Content"
|
137 |
msgstr ""
|
138 |
|
139 |
+
#: defaults.php:98
|
140 |
msgid "User created a new post and saved it as draft"
|
141 |
msgstr ""
|
142 |
|
143 |
+
#: defaults.php:98
|
144 |
+
msgid "Created the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%"
|
145 |
msgstr ""
|
146 |
|
147 |
+
#: defaults.php:99
|
148 |
msgid "User published a post"
|
149 |
msgstr ""
|
150 |
|
151 |
+
#: defaults.php:99
|
152 |
+
msgid "Published the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%"
|
153 |
msgstr ""
|
154 |
|
155 |
+
#: defaults.php:100
|
156 |
msgid "User modified a post"
|
157 |
msgstr ""
|
158 |
|
159 |
+
#: defaults.php:100
|
160 |
+
msgid "Modified the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%"
|
161 |
msgstr ""
|
162 |
|
163 |
+
#: defaults.php:101
|
164 |
msgid "User permanently deleted a post from the trash"
|
165 |
msgstr ""
|
166 |
|
167 |
+
#: defaults.php:101
|
168 |
+
msgid "Permanently deleted the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus%"
|
169 |
msgstr ""
|
170 |
|
171 |
+
#: defaults.php:102
|
172 |
msgid "User moved a post to the trash"
|
173 |
msgstr ""
|
174 |
|
175 |
+
#: defaults.php:102
|
176 |
+
msgid "Moved the post %PostTitle% to trash %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %PostUrlIfPlublished%"
|
177 |
msgstr ""
|
178 |
|
179 |
+
#: defaults.php:103
|
180 |
msgid "User restored a post from trash"
|
181 |
msgstr ""
|
182 |
|
183 |
+
#: defaults.php:103
|
184 |
+
msgid "Restored the post %PostTitle% from trash %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%"
|
185 |
msgstr ""
|
186 |
|
187 |
+
#: defaults.php:104
|
188 |
msgid "User changed post URL"
|
189 |
msgstr ""
|
190 |
|
191 |
+
#: defaults.php:104
|
192 |
+
msgid "Changed the URL of the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Previous URL: %OldUrl% %LineBreak% New URL: %NewUrl% %LineBreak% %EditorLinkPost%"
|
193 |
msgstr ""
|
194 |
|
195 |
+
#: defaults.php:105
|
196 |
msgid "User changed post author"
|
197 |
msgstr ""
|
198 |
|
199 |
+
#: defaults.php:105
|
200 |
+
msgid "Changed the author of the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Previous author: %OldAuthor% %LineBreak% New author: %NewAuthor% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%."
|
201 |
msgstr ""
|
202 |
|
203 |
+
#: defaults.php:106
|
204 |
msgid "User changed post status"
|
205 |
msgstr ""
|
206 |
|
207 |
+
#: defaults.php:106
|
208 |
+
msgid "Changed the status of the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Previous status: %OldStatus% %LineBreak% New status: %NewStatus% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%"
|
209 |
msgstr ""
|
210 |
|
211 |
+
#: defaults.php:107
|
212 |
msgid "User changed the visibility of a post"
|
213 |
msgstr ""
|
214 |
|
215 |
+
#: defaults.php:107
|
216 |
+
msgid "Changed the visibility of the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Previous visibility status: %OldVisibility% %LineBreak% New visibility status: %NewVisibility% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%"
|
217 |
msgstr ""
|
218 |
|
219 |
+
#: defaults.php:108
|
220 |
msgid "User changed the date of a post"
|
221 |
msgstr ""
|
222 |
|
223 |
+
#: defaults.php:108
|
224 |
+
msgid "Changed the date of the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Previous date: %OldDate% %LineBreak% New date: %NewDate% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%"
|
225 |
msgstr ""
|
226 |
|
227 |
+
#: defaults.php:109
|
228 |
msgid "User changed the parent of a page"
|
229 |
msgstr ""
|
230 |
|
231 |
+
#: defaults.php:109
|
232 |
+
msgid "Changed the parent of the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Previous parent: %OldParentName% %LineBreak% New parent: %NewParentName% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%"
|
233 |
msgstr ""
|
234 |
|
235 |
+
#: defaults.php:110
|
236 |
msgid "User changed the template of a page"
|
237 |
msgstr ""
|
238 |
|
239 |
+
#: defaults.php:110
|
240 |
+
msgid "Changed the template of the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Previous template: %OldTemplate% %LineBreak% New template: %NewTemplate% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%"
|
241 |
msgstr ""
|
242 |
|
243 |
+
#: defaults.php:111
|
244 |
msgid "User set a post as sticky"
|
245 |
msgstr ""
|
246 |
|
247 |
+
#: defaults.php:111
|
248 |
+
msgid "Set the post %PostTitle% as sticky %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%"
|
249 |
msgstr ""
|
250 |
|
251 |
+
#: defaults.php:112
|
252 |
msgid "User removed post from sticky"
|
253 |
msgstr ""
|
254 |
|
255 |
+
#: defaults.php:112
|
256 |
+
msgid "Removed the post %PostTitle% from sticky %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%"
|
257 |
msgstr ""
|
258 |
|
259 |
+
#: defaults.php:113
|
260 |
msgid "User modified the content of a post"
|
261 |
msgstr ""
|
262 |
|
263 |
+
#: defaults.php:113
|
264 |
+
msgid "Modified the content of the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% %RevisionLink% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%"
|
265 |
msgstr ""
|
266 |
|
267 |
+
#: defaults.php:114
|
268 |
msgid "User submitted a post for review"
|
269 |
msgstr ""
|
270 |
|
271 |
+
#: defaults.php:114
|
272 |
+
msgid "Submitted the post %PostTitle% for review %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%"
|
273 |
msgstr ""
|
274 |
|
275 |
+
#: defaults.php:115
|
276 |
msgid "User scheduled a post"
|
277 |
msgstr ""
|
278 |
|
279 |
+
#: defaults.php:115
|
280 |
+
msgid "Scheduled the post %PostTitle% to be published on %PublishingDate% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%"
|
281 |
msgstr ""
|
282 |
|
283 |
+
#: defaults.php:116
|
284 |
msgid "User changed title of a post"
|
285 |
msgstr ""
|
286 |
|
287 |
+
#: defaults.php:116
|
288 |
+
msgid "Changed the title of the post %OldTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% New title: %NewTitle% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%"
|
289 |
msgstr ""
|
290 |
|
291 |
+
#: defaults.php:117
|
292 |
msgid "User opened a post in the editor"
|
293 |
msgstr ""
|
294 |
|
295 |
+
#: defaults.php:117
|
296 |
+
msgid "Opened the post %PostTitle% in the editor %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%"
|
297 |
msgstr ""
|
298 |
|
299 |
+
#: defaults.php:118
|
300 |
msgid "User viewed a post"
|
301 |
msgstr ""
|
302 |
|
303 |
+
#: defaults.php:118
|
304 |
+
msgid "Viewed the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% URL: %PostUrl% %LineBreak% %EditorLinkPost%"
|
305 |
msgstr ""
|
306 |
|
307 |
+
#: defaults.php:119
|
308 |
msgid "User enabled/disabled comments in a post"
|
309 |
msgstr ""
|
310 |
|
311 |
+
#: defaults.php:119
|
312 |
+
msgid "The comments in the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%"
|
313 |
msgstr ""
|
314 |
|
315 |
+
#: defaults.php:120
|
316 |
msgid "User enabled/disabled trackbacks and pingbacks in a post"
|
317 |
msgstr ""
|
318 |
|
319 |
+
#: defaults.php:120
|
320 |
+
msgid "Pingbacks and Trackbacks in the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%"
|
321 |
msgstr ""
|
322 |
|
323 |
+
#: defaults.php:121
|
324 |
+
msgid "User updated the excerpt in a post"
|
325 |
+
msgstr ""
|
326 |
+
|
327 |
+
#: defaults.php:121
|
328 |
+
msgid "The excerpt of the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Previous excerpt entry: %old_post_excerpt% %LineBreak% New excerpt entry: %post_excerpt% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%"
|
329 |
+
msgstr ""
|
330 |
+
|
331 |
+
#: defaults.php:122
|
332 |
+
msgid "User updated the featured image in a post"
|
333 |
+
msgstr ""
|
334 |
+
|
335 |
+
#: defaults.php:122
|
336 |
+
msgid "The featured image of the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Previous image: %previous_image% %LineBreak% New image: %new_image% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%"
|
337 |
+
msgstr ""
|
338 |
+
|
339 |
+
#: defaults.php:125
|
340 |
msgid "Tags"
|
341 |
msgstr ""
|
342 |
|
343 |
+
#: defaults.php:126
|
344 |
msgid "User added post tag"
|
345 |
msgstr ""
|
346 |
|
347 |
+
#: defaults.php:126
|
348 |
msgid "Added tag(s) to the post %PostTitle% %LineBreak% ID: %PostID% %LineBreak% Type: %PostType% %LineBreak% Status: %PostStatus% %LineBreak% Added tag(s): %tag% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%"
|
349 |
msgstr ""
|
350 |
|
351 |
+
#: defaults.php:127
|
352 |
msgid "User removed post tag"
|
353 |
msgstr ""
|
354 |
|
355 |
+
#: defaults.php:127
|
356 |
msgid "Removed tag(s) from the post %PostTitle% %LineBreak% ID: %PostID% %LineBreak% Type: %PostType% %LineBreak% Status: %PostStatus% %LineBreak% Removed tag(s): %tag% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%"
|
357 |
msgstr ""
|
358 |
|
359 |
+
#: defaults.php:128
|
360 |
msgid "User created new tag"
|
361 |
msgstr ""
|
362 |
|
363 |
+
#: defaults.php:128
|
364 |
msgid "Created the tag %TagName% %LineBreak% Slug: %Slug% %LineBreak% %TagLink%"
|
365 |
msgstr ""
|
366 |
|
367 |
+
#: defaults.php:129
|
368 |
msgid "User deleted tag"
|
369 |
msgstr ""
|
370 |
|
371 |
+
#: defaults.php:129
|
372 |
msgid "Deleted the tag %TagName% %LineBreak% Slug: %Slug%"
|
373 |
msgstr ""
|
374 |
|
375 |
+
#: defaults.php:130
|
376 |
msgid "User renamed tag"
|
377 |
msgstr ""
|
378 |
|
379 |
+
#: defaults.php:130
|
380 |
+
msgid "Previous name: %old_name% %LineBreak% New name: %new_name% %LineBreak% Slug: %Slug% %LineBreak% %TagLink%"
|
381 |
msgstr ""
|
382 |
|
383 |
+
#: defaults.php:131
|
384 |
msgid "User changed tag slug"
|
385 |
msgstr ""
|
386 |
|
387 |
+
#: defaults.php:131
|
388 |
msgid "Changed the slug of the tag %tag% %LineBreak% Previous slug: %old_slug% %LineBreak% New slug: %new_slug% %LineBreak% %TagLink%"
|
389 |
msgstr ""
|
390 |
|
391 |
+
#: defaults.php:132
|
392 |
msgid "User changed tag description"
|
393 |
msgstr ""
|
394 |
|
395 |
+
#: defaults.php:132
|
396 |
msgid "Changed the description of the tag %tag% %LineBreak% Slug: %Slug% %LineBreak% Previous description: %old_desc% %LineBreak% New description: %new_desc% %LineBreak% %TagLink%"
|
397 |
msgstr ""
|
398 |
|
399 |
+
#: defaults.php:135
|
400 |
msgid "Categories"
|
401 |
msgstr ""
|
402 |
|
403 |
+
#: defaults.php:136
|
404 |
msgid "User changed post category"
|
405 |
msgstr ""
|
406 |
|
407 |
+
#: defaults.php:136
|
408 |
+
msgid "Changed the category of the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Previous category(ies): %OldCategories% %LineBreak% New category(ies): %NewCategories% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%"
|
409 |
msgstr ""
|
410 |
|
411 |
+
#: defaults.php:137
|
412 |
msgid "User created new category"
|
413 |
msgstr ""
|
414 |
|
415 |
+
#: defaults.php:137
|
416 |
msgid "Created the category %CategoryName% %LineBreak% Slug: %Slug% %LineBreak% %CategoryLink%"
|
417 |
msgstr ""
|
418 |
|
419 |
+
#: defaults.php:138
|
420 |
msgid "User deleted category"
|
421 |
msgstr ""
|
422 |
|
423 |
+
#: defaults.php:138
|
424 |
msgid "Deleted the category %CategoryName% %LineBreak% Slug: %Slug%"
|
425 |
msgstr ""
|
426 |
|
427 |
+
#: defaults.php:139
|
428 |
msgid "Changed the parent of a category"
|
429 |
msgstr ""
|
430 |
|
431 |
+
#: defaults.php:139
|
432 |
msgid "Changed the parent of the category %CategoryName% %LineBreak% Slug: %Slug% %LineBreak% Previous parent: %OldParent% %LineBreak% New parent: %NewParent% %LineBreak% %CategoryLink%"
|
433 |
msgstr ""
|
434 |
|
435 |
+
#: defaults.php:140
|
436 |
msgid "User changed category name"
|
437 |
msgstr ""
|
438 |
|
439 |
+
#: defaults.php:140
|
440 |
+
msgid "Previous name: %old_name% %LineBreak% New name: %new_name% %LineBreak% Slug: %slug% %LineBreak% %cat_link%"
|
441 |
msgstr ""
|
442 |
|
443 |
+
#: defaults.php:141
|
444 |
msgid "User changed category slug"
|
445 |
msgstr ""
|
446 |
|
447 |
+
#: defaults.php:141
|
448 |
msgid "Changed the slug of the category: %CategoryName% %LineBreak% Previous slug: %old_slug% %LineBreak% New slug: %new_slug% %LineBreak% %cat_link%"
|
449 |
msgstr ""
|
450 |
|
451 |
+
#: defaults.php:144
|
452 |
msgid "Custom Fields"
|
453 |
msgstr ""
|
454 |
|
455 |
+
#: defaults.php:145
|
456 |
msgid "User created a custom field for a post"
|
457 |
msgstr ""
|
458 |
|
459 |
+
#: defaults.php:145
|
460 |
+
msgid "Created the new custom field %MetaKey% in the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Custom field value: %MetaValue% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost% %LineBreak% %MetaLink%"
|
461 |
msgstr ""
|
462 |
|
463 |
+
#: defaults.php:146
|
464 |
msgid "User updated a custom field value for a post"
|
465 |
msgstr ""
|
466 |
|
467 |
+
#: defaults.php:146
|
468 |
+
msgid "Modified the value of the custom field %MetaKey% in the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Previous custom field value: %MetaValueOld% %LineBreak% New custom field value: %MetaValueNew% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost% %LineBreak% %MetaLink%."
|
469 |
msgstr ""
|
470 |
|
471 |
+
#: defaults.php:147
|
472 |
msgid "User deleted a custom field from a post"
|
473 |
msgstr ""
|
474 |
|
475 |
+
#: defaults.php:147
|
476 |
+
msgid "Deleted the custom field %MetaKey% from the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%"
|
477 |
msgstr ""
|
478 |
|
479 |
+
#: defaults.php:148
|
480 |
msgid "User updated a custom field name for a post"
|
481 |
msgstr ""
|
482 |
|
483 |
+
#: defaults.php:148
|
484 |
+
msgid "Previous custom field name: %MetaKeyOld% %LineBreak% New custom field name: %MetaKeyNew% %LineBreak% Post: %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%"
|
485 |
msgstr ""
|
486 |
|
487 |
+
#: defaults.php:151
|
488 |
msgid "Custom Fields (ACF)"
|
489 |
msgstr ""
|
490 |
|
491 |
+
#: defaults.php:171
|
492 |
msgid "Comments"
|
493 |
msgstr ""
|
494 |
|
495 |
+
#: defaults.php:172
|
496 |
msgid "User approved a comment"
|
497 |
msgstr ""
|
498 |
|
499 |
+
#: defaults.php:172
|
500 |
+
msgid "Approved the comment posted by %Author% on the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Comment ID: %CommentID% %PostUrlIfPlublished% %LineBreak% %CommentLink%"
|
501 |
msgstr ""
|
502 |
|
503 |
+
#: defaults.php:173
|
504 |
msgid "User unapproved a comment"
|
505 |
msgstr ""
|
506 |
|
507 |
+
#: defaults.php:173
|
508 |
+
msgid "Unapproved the comment posted by %Author% on the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Comment ID: %CommentID% %PostUrlIfPlublished% %LineBreak% %CommentLink%"
|
509 |
msgstr ""
|
510 |
|
511 |
+
#: defaults.php:174
|
512 |
msgid "User replied to a comment"
|
513 |
msgstr ""
|
514 |
|
515 |
+
#: defaults.php:174
|
516 |
+
msgid "Replied to the comment posted by %Author% on the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Comment ID: %CommentID% %PostUrlIfPlublished% %LineBreak% %CommentLink%"
|
517 |
msgstr ""
|
518 |
|
519 |
+
#: defaults.php:175
|
520 |
msgid "User edited a comment"
|
521 |
msgstr ""
|
522 |
|
523 |
+
#: defaults.php:175
|
524 |
+
msgid "Edited the comment posted by %Author% on the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Comment ID: %CommentID% %PostUrlIfPlublished% %LineBreak% %CommentLink%"
|
525 |
msgstr ""
|
526 |
|
527 |
+
#: defaults.php:176
|
528 |
msgid "User marked a comment as Spam"
|
529 |
msgstr ""
|
530 |
|
531 |
+
#: defaults.php:176
|
532 |
+
msgid "Marked the comment posted by %Author% on the post %PostTitle% as spam %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Comment ID: %CommentID% %PostUrlIfPlublished% %LineBreak% %CommentLink%"
|
533 |
msgstr ""
|
534 |
|
535 |
+
#: defaults.php:177
|
536 |
msgid "User marked a comment as Not Spam"
|
537 |
msgstr ""
|
538 |
|
539 |
+
#: defaults.php:177
|
540 |
+
msgid "Marked the comment posted by %Author% on the post %PostTitle% as not spam %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Comment ID: %CommentID% %PostUrlIfPlublished% %LineBreak% %CommentLink%"
|
541 |
msgstr ""
|
542 |
|
543 |
+
#: defaults.php:178
|
544 |
msgid "User moved a comment to trash"
|
545 |
msgstr ""
|
546 |
|
547 |
+
#: defaults.php:178
|
548 |
+
msgid "Moved the comment posted by %Author% on the post %PostTitle% to trash %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Comment ID: %CommentID% %PostUrlIfPlublished% %LineBreak% %CommentLink%"
|
549 |
msgstr ""
|
550 |
|
551 |
+
#: defaults.php:179
|
552 |
msgid "User restored a comment from the trash"
|
553 |
msgstr ""
|
554 |
|
555 |
+
#: defaults.php:179
|
556 |
+
msgid "Restored the comment posted by %Author% on the post %PostTitle% from trash %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Comment ID: %CommentID% %PostUrlIfPlublished% %LineBreak% %CommentLink%"
|
557 |
msgstr ""
|
558 |
|
559 |
+
#: defaults.php:180
|
560 |
msgid "User permanently deleted a comment"
|
561 |
msgstr ""
|
562 |
|
563 |
+
#: defaults.php:180
|
564 |
+
msgid "Permanently deleted the comment posted by %Author% on the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Comment ID: %CommentID% %PostUrlIfPlublished%"
|
565 |
msgstr ""
|
566 |
|
567 |
+
#: defaults.php:181
|
568 |
msgid "User posted a comment"
|
569 |
msgstr ""
|
570 |
|
571 |
+
#: defaults.php:181
|
572 |
+
msgid "Posted a comment on the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Comment ID: %CommentID% %PostUrlIfPlublished% %LineBreak% %CommentLink%"
|
573 |
msgstr ""
|
574 |
|
575 |
+
#: defaults.php:186
|
576 |
msgid "Visitor posted a comment"
|
577 |
msgstr ""
|
578 |
|
579 |
+
#: defaults.php:186
|
580 |
+
msgid "Posted a comment on the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Comment ID: %CommentID% %PostUrlIfPlublished% %LineBreak% %CommentLink%"
|
581 |
+
msgstr ""
|
582 |
+
|
583 |
+
#: defaults.php:192
|
584 |
msgid "Widgets"
|
585 |
msgstr ""
|
586 |
|
587 |
+
#: defaults.php:193
|
588 |
msgid "User added a new widget"
|
589 |
msgstr ""
|
590 |
|
591 |
+
#: defaults.php:193
|
592 |
+
msgid "Added a new %WidgetName% widget in %Sidebar%."
|
593 |
msgstr ""
|
594 |
|
595 |
+
#: defaults.php:194
|
596 |
msgid "User modified a widget"
|
597 |
msgstr ""
|
598 |
|
599 |
+
#: defaults.php:194
|
600 |
msgid "Modified the %WidgetName% widget in %Sidebar%."
|
601 |
msgstr ""
|
602 |
|
603 |
+
#: defaults.php:195
|
604 |
msgid "User deleted widget"
|
605 |
msgstr ""
|
606 |
|
607 |
+
#: defaults.php:195
|
608 |
msgid "Deleted the %WidgetName% widget from %Sidebar%."
|
609 |
msgstr ""
|
610 |
|
611 |
+
#: defaults.php:196
|
612 |
msgid "User moved widget"
|
613 |
msgstr ""
|
614 |
|
615 |
+
#: defaults.php:196
|
616 |
msgid "Moved the %WidgetName% widget %LineBreak% From: %OldSidebar% %LineBreak% To: %NewSidebar%"
|
617 |
msgstr ""
|
618 |
|
619 |
+
#: defaults.php:197
|
620 |
msgid "User changed widget position"
|
621 |
msgstr ""
|
622 |
|
623 |
+
#: defaults.php:197
|
624 |
msgid "Changed the position of the %WidgetName% widget in %Sidebar%."
|
625 |
msgstr ""
|
626 |
|
627 |
+
#: defaults.php:203
|
628 |
msgid "Menus"
|
629 |
msgstr ""
|
630 |
|
631 |
+
#: defaults.php:204
|
632 |
msgid "User created new menu"
|
633 |
msgstr ""
|
634 |
|
635 |
+
#: defaults.php:204
|
636 |
+
msgid "New menu called %MenuName% %MenuUrl%"
|
637 |
msgstr ""
|
638 |
|
639 |
+
#: defaults.php:205
|
640 |
msgid "User added content to a menu"
|
641 |
msgstr ""
|
642 |
|
643 |
+
#: defaults.php:205
|
644 |
+
msgid "Added new item to the menu %MenuName% %LineBreak% Item type: %ContentType% %LineBreak% Item name: %ContentName% %MenuUrl%"
|
645 |
msgstr ""
|
646 |
|
647 |
+
#: defaults.php:206
|
648 |
msgid "User removed content from a menu"
|
649 |
msgstr ""
|
650 |
|
651 |
+
#: defaults.php:206
|
652 |
+
msgid "Removed item from the menu %MenuName% %LineBreak% Item type: %ContentType% %LineBreak% Item name: %ContentName% %MenuUrl%"
|
653 |
msgstr ""
|
654 |
|
655 |
+
#: defaults.php:207
|
656 |
msgid "User deleted menu"
|
657 |
msgstr ""
|
658 |
|
659 |
+
#: defaults.php:207
|
660 |
msgid "Deleted the menu %MenuName%"
|
661 |
msgstr ""
|
662 |
|
663 |
+
#: defaults.php:208
|
664 |
msgid "User changed menu setting"
|
665 |
msgstr ""
|
666 |
|
667 |
+
#: defaults.php:208
|
668 |
+
msgid "The setting in the %MenuName% %LineBreak% Setting: %MenuSetting% %MenuUrl%"
|
669 |
msgstr ""
|
670 |
|
671 |
+
#: defaults.php:209
|
672 |
msgid "User modified content in a menu"
|
673 |
msgstr ""
|
674 |
|
675 |
+
#: defaults.php:209
|
676 |
+
msgid "Modified an item in the menu %MenuName% %LineBreak% Item type: %ContentType% %LineBreak% Item name: %ContentName% %MenuUrl%"
|
677 |
msgstr ""
|
678 |
|
679 |
+
#: defaults.php:210
|
680 |
msgid "User changed name of a menu"
|
681 |
msgstr ""
|
682 |
|
683 |
+
#: defaults.php:210
|
684 |
+
msgid "Previous name: %OldMenuName% %LineBreak% New name: %MenuName% %MenuUrl%"
|
685 |
msgstr ""
|
686 |
|
687 |
+
#: defaults.php:211
|
688 |
msgid "User changed order of the objects in a menu"
|
689 |
msgstr ""
|
690 |
|
691 |
+
#: defaults.php:211
|
692 |
+
msgid "Changed the order of the items in the menu %MenuName% %MenuUrl%"
|
693 |
msgstr ""
|
694 |
|
695 |
+
#: defaults.php:212
|
696 |
msgid "User moved objects as a sub-item"
|
697 |
msgstr ""
|
698 |
|
699 |
+
#: defaults.php:212
|
700 |
+
msgid "Menu name: %MenuName% %LineBreak% Moved item %ItemName% as a sub-item of %ParentName% %MenuUrl%"
|
701 |
msgstr ""
|
702 |
|
703 |
+
#: defaults.php:223
|
704 |
msgid "Custom Post Types"
|
705 |
msgstr ""
|
706 |
|
707 |
+
#: defaults.php:224
|
708 |
msgid "User modified a draft blog post"
|
709 |
msgstr ""
|
710 |
|
711 |
+
#: defaults.php:224
|
712 |
msgid "Modified the draft post with the %PostTitle%. %EditorLinkPost%."
|
713 |
msgstr ""
|
714 |
|
715 |
+
#: defaults.php:225
|
716 |
msgid "User created a new post with custom post type and saved it as draft"
|
717 |
msgstr ""
|
718 |
|
719 |
+
#: defaults.php:225
|
720 |
msgid "Created a new custom post called %PostTitle% of type %PostType%. %EditorLinkPost%."
|
721 |
msgstr ""
|
722 |
|
723 |
+
#: defaults.php:226
|
724 |
msgid "User published a post with custom post type"
|
725 |
msgstr ""
|
726 |
|
727 |
+
#: defaults.php:226
|
728 |
msgid "Published a custom post %PostTitle% of type %PostType%. Post URL is %PostUrl%. %EditorLinkPost%."
|
729 |
msgstr ""
|
730 |
|
731 |
+
#: defaults.php:227
|
732 |
msgid "User modified a post with custom post type"
|
733 |
msgstr ""
|
734 |
|
735 |
+
#: defaults.php:227
|
736 |
msgid "Modified the custom post %PostTitle% of type %PostType%. Post URL is %PostUrl%. %EditorLinkPost%."
|
737 |
msgstr ""
|
738 |
|
739 |
+
#: defaults.php:228
|
740 |
msgid "User modified a draft post with custom post type"
|
741 |
msgstr ""
|
742 |
|
743 |
+
#: defaults.php:228
|
744 |
msgid "Modified the draft custom post %PostTitle% of type is %PostType%. %EditorLinkPost%."
|
745 |
msgstr ""
|
746 |
|
747 |
+
#: defaults.php:229
|
748 |
msgid "User permanently deleted post with custom post type"
|
749 |
msgstr ""
|
750 |
|
751 |
+
#: defaults.php:229
|
752 |
msgid "Permanently Deleted the custom post %PostTitle% of type %PostType%."
|
753 |
msgstr ""
|
754 |
|
755 |
+
#: defaults.php:230
|
756 |
msgid "User moved post with custom post type to trash"
|
757 |
msgstr ""
|
758 |
|
759 |
+
#: defaults.php:230
|
760 |
msgid "Moved the custom post %PostTitle% of type %PostType% to trash. Post URL was %PostUrl%."
|
761 |
msgstr ""
|
762 |
|
763 |
+
#: defaults.php:231
|
764 |
msgid "User restored post with custom post type from trash"
|
765 |
msgstr ""
|
766 |
|
767 |
+
#: defaults.php:231
|
768 |
msgid "The custom post %PostTitle% of type %PostType% has been restored from trash. %EditorLinkPost%."
|
769 |
msgstr ""
|
770 |
|
771 |
+
#: defaults.php:232
|
772 |
msgid "User changed the category of a post with custom post type"
|
773 |
msgstr ""
|
774 |
|
775 |
+
#: defaults.php:232
|
776 |
msgid "Changed the category(ies) of the custom post %PostTitle% of type %PostType% from %OldCategories% to %NewCategories%. %EditorLinkPost%."
|
777 |
msgstr ""
|
778 |
|
779 |
+
#: defaults.php:233
|
780 |
msgid "User changed the URL of a post with custom post type"
|
781 |
msgstr ""
|
782 |
|
783 |
+
#: defaults.php:233
|
784 |
msgid "Changed the URL of the custom post %PostTitle% of type %PostType% from %OldUrl% to %NewUrl%. %EditorLinkPost%."
|
785 |
msgstr ""
|
786 |
|
787 |
+
#: defaults.php:234
|
788 |
msgid "User changed the author or post with custom post type"
|
789 |
msgstr ""
|
790 |
|
791 |
+
#: defaults.php:234
|
792 |
msgid "Changed the author of custom post %PostTitle% of type %PostType% from %OldAuthor% to %NewAuthor%. %EditorLinkPost%."
|
793 |
msgstr ""
|
794 |
|
795 |
+
#: defaults.php:235
|
796 |
msgid "User changed the status of post with custom post type"
|
797 |
msgstr ""
|
798 |
|
799 |
+
#: defaults.php:235
|
800 |
msgid "Changed the status of custom post %PostTitle% of type %PostType% from %OldStatus% to %NewStatus%. %EditorLinkPost%."
|
801 |
msgstr ""
|
802 |
|
803 |
+
#: defaults.php:236
|
804 |
msgid "User changed the visibility of a post with custom post type"
|
805 |
msgstr ""
|
806 |
|
807 |
+
#: defaults.php:236
|
808 |
msgid "Changed the visibility of the custom post %PostTitle% of type %PostType% from %OldVisibility% to %NewVisibility%. %EditorLinkPost%."
|
809 |
msgstr ""
|
810 |
|
811 |
+
#: defaults.php:237
|
812 |
msgid "User changed the date of post with custom post type"
|
813 |
msgstr ""
|
814 |
|
815 |
+
#: defaults.php:237
|
816 |
msgid "Changed the date of the custom post %PostTitle% of type %PostType% from %OldDate% to %NewDate%. %EditorLinkPost%."
|
817 |
msgstr ""
|
818 |
|
819 |
+
#: defaults.php:238
|
820 |
msgid "User created a custom field for a custom post type"
|
821 |
msgstr ""
|
822 |
|
823 |
+
#: defaults.php:239
|
824 |
msgid "User updated a custom field for a custom post type"
|
825 |
msgstr ""
|
826 |
|
827 |
+
#: defaults.php:240
|
828 |
msgid "User deleted a custom field from a custom post type"
|
829 |
msgstr ""
|
830 |
|
831 |
+
#: defaults.php:241
|
832 |
msgid "User updated a custom field name for a custom post type"
|
833 |
msgstr ""
|
834 |
|
835 |
+
#: defaults.php:242
|
836 |
msgid "User modified content for a published custom post type"
|
837 |
msgstr ""
|
838 |
|
839 |
+
#: defaults.php:243
|
840 |
msgid "User modified content for a draft post"
|
841 |
msgstr ""
|
842 |
|
843 |
+
#: defaults.php:244
|
844 |
msgid "User modified content for a draft custom post type"
|
845 |
msgstr ""
|
846 |
|
847 |
+
#: defaults.php:245
|
848 |
msgid "User modified content of a post"
|
849 |
msgstr ""
|
850 |
|
851 |
+
#: defaults.php:246
|
852 |
msgid "User scheduled a custom post type"
|
853 |
msgstr ""
|
854 |
|
855 |
+
#: defaults.php:246
|
856 |
msgid "Scheduled the custom post type %PostTitle% to be published %PublishingDate%. %EditorLinkPost%."
|
857 |
msgstr ""
|
858 |
|
859 |
+
#: defaults.php:247
|
860 |
msgid "User changed title of a custom post type"
|
861 |
msgstr ""
|
862 |
|
863 |
+
#: defaults.php:247
|
864 |
msgid "Changed the title of the custom post %OldTitle% to %NewTitle%. %EditorLinkPost%."
|
865 |
msgstr ""
|
866 |
|
867 |
+
#: defaults.php:248
|
868 |
msgid "User opened a custom post type in the editor"
|
869 |
msgstr ""
|
870 |
|
871 |
+
#: defaults.php:248
|
872 |
msgid "Opened the custom post %PostTitle% of type %PostType% in the editor. View the post: %EditorLinkPost%."
|
873 |
msgstr ""
|
874 |
|
875 |
+
#: defaults.php:249
|
876 |
msgid "User viewed a custom post type"
|
877 |
msgstr ""
|
878 |
|
879 |
+
#: defaults.php:249
|
880 |
msgid "Viewed the custom post %PostTitle% of type %PostType%. View the post: %PostUrl%."
|
881 |
msgstr ""
|
882 |
|
883 |
+
#: defaults.php:250
|
884 |
msgid "A plugin created a custom post"
|
885 |
msgstr ""
|
886 |
|
887 |
+
#: defaults.php:250
|
888 |
msgid "A plugin automatically created the following custom post: %PostTitle%."
|
889 |
msgstr ""
|
890 |
|
891 |
+
#: defaults.php:251
|
892 |
msgid "A plugin deleted a custom post"
|
893 |
msgstr ""
|
894 |
|
895 |
+
#: defaults.php:251
|
896 |
msgid "A plugin automatically deleted the following custom post: %PostTitle%."
|
897 |
msgstr ""
|
898 |
|
899 |
+
#: defaults.php:252
|
900 |
msgid "A plugin modified a custom post"
|
901 |
msgstr ""
|
902 |
|
903 |
+
#: defaults.php:252
|
904 |
msgid "Plugin modified the custom post %PostTitle%. View the post: %EditorLinkPost%."
|
905 |
msgstr ""
|
906 |
|
907 |
+
#: defaults.php:263
|
908 |
msgid "Pages"
|
909 |
msgstr ""
|
910 |
|
911 |
+
#: defaults.php:264
|
912 |
msgid "User created a new WordPress page and saved it as draft"
|
913 |
msgstr ""
|
914 |
|
915 |
+
#: defaults.php:264
|
916 |
msgid "Created a new page called %PostTitle% and saved it as draft. %EditorLinkPage%."
|
917 |
msgstr ""
|
918 |
|
919 |
+
#: defaults.php:265
|
920 |
msgid "User published a WordPress page"
|
921 |
msgstr ""
|
922 |
|
923 |
+
#: defaults.php:265
|
924 |
msgid "Published a page called %PostTitle%. Page URL is %PostUrl%. %EditorLinkPage%."
|
925 |
msgstr ""
|
926 |
|
927 |
+
#: defaults.php:266
|
928 |
msgid "User modified a published WordPress page"
|
929 |
msgstr ""
|
930 |
|
931 |
+
#: defaults.php:266
|
932 |
msgid "Modified the published page %PostTitle%. Page URL is %PostUrl%. %EditorLinkPage%."
|
933 |
msgstr ""
|
934 |
|
935 |
+
#: defaults.php:267
|
936 |
msgid "User modified a draft WordPress page"
|
937 |
msgstr ""
|
938 |
|
939 |
+
#: defaults.php:267
|
940 |
msgid "Modified the draft page %PostTitle%. Page ID is %PostID%. %EditorLinkPage%."
|
941 |
msgstr ""
|
942 |
|
943 |
+
#: defaults.php:268
|
944 |
msgid "User permanently deleted a page from the trash"
|
945 |
msgstr ""
|
946 |
|
947 |
+
#: defaults.php:268
|
948 |
msgid "Permanently deleted the page %PostTitle%."
|
949 |
msgstr ""
|
950 |
|
951 |
+
#: defaults.php:269
|
952 |
msgid "User moved WordPress page to the trash"
|
953 |
msgstr ""
|
954 |
|
955 |
+
#: defaults.php:269
|
956 |
msgid "Moved the page %PostTitle% to trash. Page URL was %PostUrl%."
|
957 |
msgstr ""
|
958 |
|
959 |
+
#: defaults.php:270
|
960 |
msgid "User restored a WordPress page from trash"
|
961 |
msgstr ""
|
962 |
|
963 |
+
#: defaults.php:270
|
964 |
msgid "Page %PostTitle% has been restored from trash. %EditorLinkPage%."
|
965 |
msgstr ""
|
966 |
|
967 |
+
#: defaults.php:271
|
968 |
msgid "User changed page URL"
|
969 |
msgstr ""
|
970 |
|
971 |
+
#: defaults.php:271
|
972 |
msgid "Changed the URL of the page %PostTitle% from %OldUrl% to %NewUrl%. %EditorLinkPage%."
|
973 |
msgstr ""
|
974 |
|
975 |
+
#: defaults.php:272
|
976 |
msgid "User changed page author"
|
977 |
msgstr ""
|
978 |
|
979 |
+
#: defaults.php:272
|
980 |
msgid "Changed the author of the page %PostTitle% from %OldAuthor% to %NewAuthor%. %EditorLinkPage%."
|
981 |
msgstr ""
|
982 |
|
983 |
+
#: defaults.php:273
|
984 |
msgid "User changed page status"
|
985 |
msgstr ""
|
986 |
|
987 |
+
#: defaults.php:273
|
988 |
msgid "Changed the status of the page %PostTitle% from %OldStatus% to %NewStatus%. %EditorLinkPage%."
|
989 |
msgstr ""
|
990 |
|
991 |
+
#: defaults.php:274
|
992 |
msgid "User changed the visibility of a page post"
|
993 |
msgstr ""
|
994 |
|
995 |
+
#: defaults.php:274
|
996 |
msgid "Changed the visibility of the page %PostTitle% from %OldVisibility% to %NewVisibility%. %EditorLinkPage%."
|
997 |
msgstr ""
|
998 |
|
999 |
+
#: defaults.php:275
|
1000 |
msgid "User changed the date of a page post"
|
1001 |
msgstr ""
|
1002 |
|
1003 |
+
#: defaults.php:275
|
1004 |
msgid "Changed the date of the page %PostTitle% from %OldDate% to %NewDate%. %EditorLinkPage%."
|
1005 |
msgstr ""
|
1006 |
|
1007 |
+
#: defaults.php:276
|
1008 |
msgid "User created a custom field for a page"
|
1009 |
msgstr ""
|
1010 |
|
1011 |
+
#: defaults.php:277
|
1012 |
msgid "User updated a custom field value for a page"
|
1013 |
msgstr ""
|
1014 |
|
1015 |
+
#: defaults.php:278
|
1016 |
msgid "User deleted a custom field from a page"
|
1017 |
msgstr ""
|
1018 |
|
1019 |
+
#: defaults.php:279
|
1020 |
msgid "User updated a custom field name for a page"
|
1021 |
msgstr ""
|
1022 |
|
1023 |
+
#: defaults.php:280
|
1024 |
msgid "User modified content for a published page"
|
1025 |
msgstr ""
|
1026 |
|
1027 |
+
#: defaults.php:280
|
1028 |
msgid "Modified the content of the published page %PostTitle%. Page URL is %PostUrl%. %RevisionLink% %EditorLinkPage%."
|
1029 |
msgstr ""
|
1030 |
|
1031 |
+
#: defaults.php:281
|
1032 |
msgid "User modified content for a draft page"
|
1033 |
msgstr ""
|
1034 |
|
1035 |
+
#: defaults.php:282
|
1036 |
msgid "User scheduled a page"
|
1037 |
msgstr ""
|
1038 |
|
1039 |
+
#: defaults.php:283
|
1040 |
msgid "User changed title of a page"
|
1041 |
msgstr ""
|
1042 |
|
1043 |
+
#: defaults.php:284
|
1044 |
msgid "User opened a page in the editor"
|
1045 |
msgstr ""
|
1046 |
|
1047 |
+
#: defaults.php:284
|
1048 |
msgid "Opened the page %PostTitle% in the editor. View the page: %EditorLinkPage%."
|
1049 |
msgstr ""
|
1050 |
|
1051 |
+
#: defaults.php:285
|
1052 |
msgid "User viewed a page"
|
1053 |
msgstr ""
|
1054 |
|
1055 |
+
#: defaults.php:285
|
1056 |
msgid "Viewed the page %PostTitle%. View the page: %PostUrl%."
|
1057 |
msgstr ""
|
1058 |
|
1059 |
+
#: defaults.php:286
|
1060 |
msgid "User disabled Comments/Trackbacks and Pingbacks on a draft post"
|
1061 |
msgstr ""
|
1062 |
|
1063 |
+
#: defaults.php:286
|
1064 |
msgid "Disabled %Type% on the draft post %PostTitle%. View the post: %PostUrl%."
|
1065 |
msgstr ""
|
1066 |
|
1067 |
+
#: defaults.php:287
|
1068 |
msgid "User enabled Comments/Trackbacks and Pingbacks on a draft post"
|
1069 |
msgstr ""
|
1070 |
|
1071 |
+
#: defaults.php:287
|
1072 |
msgid "Enabled %Type% on the draft post %PostTitle%. View the post: %PostUrl%."
|
1073 |
msgstr ""
|
1074 |
|
1075 |
+
#: defaults.php:288
|
1076 |
msgid "User disabled Comments/Trackbacks and Pingbacks on a published page"
|
1077 |
msgstr ""
|
1078 |
|
1079 |
+
#: defaults.php:288
|
1080 |
msgid "Disabled %Type% on the published page %PostTitle%. View the page: %PostUrl%."
|
1081 |
msgstr ""
|
1082 |
|
1083 |
+
#: defaults.php:289
|
1084 |
msgid "User enabled Comments/Trackbacks and Pingbacks on a published page"
|
1085 |
msgstr ""
|
1086 |
|
1087 |
+
#: defaults.php:289
|
1088 |
msgid "Enabled %Type% on the published page %PostTitle%. View the page: %PostUrl%."
|
1089 |
msgstr ""
|
1090 |
|
1091 |
+
#: defaults.php:290
|
1092 |
msgid "User disabled Comments/Trackbacks and Pingbacks on a draft page"
|
1093 |
msgstr ""
|
1094 |
|
1095 |
+
#: defaults.php:290
|
1096 |
msgid "Disabled %Type% on the draft page %PostTitle%. View the page: %PostUrl%."
|
1097 |
msgstr ""
|
1098 |
|
1099 |
+
#: defaults.php:291
|
1100 |
msgid "User enabled Comments/Trackbacks and Pingbacks on a draft page"
|
1101 |
msgstr ""
|
1102 |
|
1103 |
+
#: defaults.php:291
|
1104 |
msgid "Enabled %Type% on the draft page %PostTitle%. View the page: %PostUrl%."
|
1105 |
msgstr ""
|
1106 |
|
1107 |
+
#: defaults.php:292
|
1108 |
msgid "A plugin created a page"
|
1109 |
msgstr ""
|
1110 |
|
1111 |
+
#: defaults.php:292
|
1112 |
msgid "A plugin automatically created the following page: %PostTitle%."
|
1113 |
msgstr ""
|
1114 |
|
1115 |
+
#: defaults.php:293
|
1116 |
msgid "A plugin deleted a page"
|
1117 |
msgstr ""
|
1118 |
|
1119 |
+
#: defaults.php:293
|
1120 |
msgid "A plugin automatically deleted the following page: %PostTitle%."
|
1121 |
msgstr ""
|
1122 |
|
1123 |
+
#: defaults.php:294
|
1124 |
msgid "A plugin modified a page"
|
1125 |
msgstr ""
|
1126 |
|
1127 |
+
#: defaults.php:294
|
1128 |
msgid "Plugin modified the page %PostTitle%. View the page: %EditorLinkPage%."
|
1129 |
msgstr ""
|
1130 |
|
1131 |
+
#: defaults.php:298
|
1132 |
msgid "User Accounts"
|
1133 |
msgstr ""
|
1134 |
|
1135 |
+
#: defaults.php:299
|
1136 |
msgid "User Profiles"
|
1137 |
msgstr ""
|
1138 |
|
1139 |
+
#: defaults.php:300
|
1140 |
msgid "New user was created on WordPress"
|
1141 |
msgstr ""
|
1142 |
|
1143 |
+
#: defaults.php:300
|
1144 |
+
msgid "New user created via registration %LineBreak% User: %NewUserData->Username% %LineBreak% Role: %NewUserData->Roles% %LineBreak% %EditUserLink%"
|
1145 |
+
msgstr ""
|
1146 |
+
|
1147 |
+
#: defaults.php:301
|
1148 |
+
msgid "User created another WordPress user"
|
1149 |
+
msgstr ""
|
1150 |
+
|
1151 |
+
#: defaults.php:301
|
1152 |
+
msgid "New user: %NewUserData->Username% %LineBreak% Role: %NewUserData->Roles% %LineBreak% First name: %NewUserData->FirstName% %LineBreak% Last name: %NewUserData->LastName% %LineBreak% %EditUserLink%"
|
1153 |
+
msgstr ""
|
1154 |
+
|
1155 |
+
#: defaults.php:302
|
1156 |
+
msgid "The role of a user was changed by another WordPress user"
|
1157 |
+
msgstr ""
|
1158 |
+
|
1159 |
+
#: defaults.php:302
|
1160 |
+
msgid "Changed the role of user %TargetUsername% %LineBreak% Previous role: %OldRole% %LineBreak% New role: %NewRole% %LineBreak% First name: %FirstName% %LineBreak% Last name: %LastName% %LineBreak% %EditUserLink%"
|
1161 |
+
msgstr ""
|
1162 |
+
|
1163 |
+
#: defaults.php:303
|
1164 |
+
msgid "User has changed his or her password"
|
1165 |
+
msgstr ""
|
1166 |
+
|
1167 |
+
#: defaults.php:303
|
1168 |
+
msgid "Changed the password %LineBreak% Role: %TargetUserData->Roles% %LineBreak% First name: %TargetUserData->FirstName% %LineBreak% Last name: %TargetUserData->LastName% %LineBreak% %EditUserLink%"
|
1169 |
+
msgstr ""
|
1170 |
+
|
1171 |
#: defaults.php:304
|
1172 |
+
msgid "User changed another user's password"
|
1173 |
+
msgstr ""
|
1174 |
+
|
1175 |
+
#: defaults.php:304
|
1176 |
+
msgid "Changed the password of the user %TargetUserData->Username% %LineBreak% Role: %TargetUserData->Roles% %LineBreak% First name: %TargetUserData->FirstName% %LineBreak% Last name: %TargetUserData->LastName% %LineBreak% %EditUserLink%"
|
1177 |
msgstr ""
|
1178 |
|
1179 |
#: defaults.php:305
|
1180 |
+
msgid "User changed his or her email address"
|
1181 |
msgstr ""
|
1182 |
|
1183 |
#: defaults.php:305
|
1184 |
+
msgid "Changed the email address %LineBreak% Role: %Roles% %LineBreak% First name: %FirstName% %LineBreak% Last name: %LastName% %LineBreak% Previous email address: %OldEmail% %LineBreak% New email address: %NewEmail% %LineBreak% %EditUserLink%"
|
1185 |
msgstr ""
|
1186 |
|
1187 |
#: defaults.php:306
|
1188 |
+
msgid "User changed another user's email address"
|
1189 |
msgstr ""
|
1190 |
|
1191 |
#: defaults.php:306
|
1192 |
+
msgid "Changed the email address of the user %TargetUsername% %LineBreak% Role: %Roles% %LineBreak% First name: %FirstName% %LineBreak% Last name: %LastName% %LineBreak% Previous email address: %OldEmail% %LineBreak% New email address: %NewEmail% %LineBreak% %EditUserLink%"
|
1193 |
msgstr ""
|
1194 |
|
1195 |
#: defaults.php:307
|
1196 |
+
msgid "User was deleted by another user"
|
1197 |
msgstr ""
|
1198 |
|
1199 |
#: defaults.php:307
|
1200 |
+
msgid "User: %TargetUserData->Username% %LineBreak% Role: %TargetUserData->Roles% %LineBreak% First name: %NewUserData->FirstName% %LineBreak% Last name: %NewUserData->LastName%"
|
1201 |
msgstr ""
|
1202 |
|
1203 |
#: defaults.php:308
|
1204 |
+
msgid "User opened the profile page of another user"
|
1205 |
msgstr ""
|
1206 |
|
1207 |
#: defaults.php:308
|
1208 |
+
msgid "The profile page of the user %TargetUsername% %LineBreak% Role: %Roles% %LineBreak% First name: %FirstName% %LineBreak% Last name: %LastName% %LineBreak% %EditUserLink%"
|
1209 |
msgstr ""
|
1210 |
|
1211 |
#: defaults.php:309
|
1212 |
+
msgid "User updated a custom field value for a user"
|
1213 |
msgstr ""
|
1214 |
|
1215 |
#: defaults.php:309
|
1216 |
+
msgid "Changed the value of a custom field in the user profile %TargetUsername% %LineBreak% Role: %Roles% %LineBreak% First name: %FirstName% %LineBreak% Last name: %LastName% %LineBreak% Custom field: %custom_field_name% %LineBreak% Previous value: %old_value% %LineBreak% New value: %new_value% %LineBreak% %EditUserLink%"
|
1217 |
msgstr ""
|
1218 |
|
1219 |
#: defaults.php:310
|
1220 |
+
msgid "User created a custom field value for a user"
|
1221 |
msgstr ""
|
1222 |
|
1223 |
#: defaults.php:310
|
1224 |
+
msgid "Created a new custom field in the user profile %TargetUsername% %LineBreak% Role: %Roles% %LineBreak% First name: %FirstName% %LineBreak% Last name: %LastName% %LineBreak% Custom field: %custom_field_name% %LineBreak% Custom field value: %new_value% %LineBreak% %EditUserLink%"
|
1225 |
msgstr ""
|
1226 |
|
1227 |
#: defaults.php:311
|
1228 |
+
msgid "User changed first name for a user"
|
1229 |
msgstr ""
|
1230 |
|
1231 |
#: defaults.php:311
|
1232 |
+
msgid "Changed the first name of the user %TargetUsername% %LineBreak% Role: %Roles% %LineBreak% Previous name: %old_firstname% %LineBreak% New name: %new_firstname% %LineBreak% Last name: %LastName% %LineBreak% %EditUserLink%"
|
1233 |
msgstr ""
|
1234 |
|
1235 |
#: defaults.php:312
|
1236 |
+
msgid "User changed last name for a user"
|
1237 |
msgstr ""
|
1238 |
|
1239 |
#: defaults.php:312
|
1240 |
+
msgid "Changed the last name of the user %TargetUsername% %LineBreak% Role: %Roles% %LineBreak% First name: %FirstName% %LineBreak% Previous last name: %old_lastname% %LineBreak% New last name: %new_lastname% %LineBreak% %EditUserLink%"
|
1241 |
msgstr ""
|
1242 |
|
1243 |
#: defaults.php:313
|
1244 |
+
msgid "User changed nickname for a user"
|
1245 |
msgstr ""
|
1246 |
|
1247 |
#: defaults.php:313
|
1248 |
+
msgid "Changed the nickname of the user %TargetUsername% %LineBreak% Role: %Roles% %LineBreak% First name: %FirstName% %LineBreak% Last name: %LastName% %LineBreak% Previous nickname: %old_nickname% New nickname: %new_nickname% %LineBreak% %EditUserLink%"
|
1249 |
msgstr ""
|
1250 |
|
1251 |
#: defaults.php:314
|
1252 |
+
msgid "User changed the display name for a user"
|
1253 |
msgstr ""
|
1254 |
|
1255 |
#: defaults.php:314
|
1256 |
+
msgid "Changed the display name of the user %TargetUsername% %LineBreak% Role: %Roles% %LineBreak% First name: %FirstName% %LineBreak% Last name: %LastName% %LineBreak% Previous display name: %old_displayname% %LineBreak% New display name: %new_displayname% %LineBreak% %EditUserLink%"
|
1257 |
msgstr ""
|
1258 |
|
1259 |
+
#: defaults.php:316, defaults.php:317
|
1260 |
+
msgid "User created an application password"
|
|
|
|
|
|
|
|
|
1261 |
msgstr ""
|
1262 |
|
1263 |
#: defaults.php:316
|
1264 |
+
msgid "An application password %LineBreak% Role: %roles% %LineBreak% First name: %firstname% %LineBreak% Last name: %lastname% %LineBreak% Application password friendly name: %friendly_name%"
|
1265 |
msgstr ""
|
1266 |
|
1267 |
+
#: defaults.php:317
|
1268 |
+
msgid "An application password for the user %login% %LineBreak% Role: %roles% %LineBreak% First name: %firstname% %LineBreak% Last name: %lastname% %LineBreak% Application password friendly name: %friendly_name%"
|
1269 |
msgstr ""
|
1270 |
|
1271 |
+
#: defaults.php:319
|
1272 |
+
msgid "User revoked all application passwords"
|
1273 |
msgstr ""
|
1274 |
|
1275 |
+
#: defaults.php:319
|
1276 |
+
msgid "All application passwords %LineBreak% Role: %roles% %LineBreak% First name: %firstname% %LineBreak% Last name: %lastname%"
|
1277 |
msgstr ""
|
1278 |
|
1279 |
+
#: defaults.php:320
|
1280 |
+
msgid "User revoked all application passwords for a user"
|
1281 |
msgstr ""
|
1282 |
|
1283 |
+
#: defaults.php:320
|
1284 |
+
msgid "All application passwords from the user %login% %LineBreak% Role: %roles% %LineBreak% First name: %firstname% %LineBreak% Last name: %lastname%"
|
1285 |
msgstr ""
|
1286 |
|
1287 |
+
#: defaults.php:323
|
1288 |
msgid "Multisite User Profiles"
|
1289 |
msgstr ""
|
1290 |
|
1291 |
+
#: defaults.php:324
|
1292 |
msgid "User granted Super Admin privileges"
|
1293 |
msgstr ""
|
1294 |
|
1295 |
+
#: defaults.php:324
|
1296 |
+
msgid "Granted Super Admin privileges to %TargetUsername% %LineBreak% Role: %Roles% %LineBreak% First name: %FirstName% %LineBreak% Last name: %LastName% %LineBreak% %EditUserLink%"
|
1297 |
msgstr ""
|
1298 |
|
1299 |
+
#: defaults.php:325
|
1300 |
msgid "User revoked from Super Admin privileges"
|
1301 |
msgstr ""
|
1302 |
|
1303 |
+
#: defaults.php:325
|
1304 |
+
msgid "Revoked Super Admin privileges from %TargetUsername% %LineBreak% Role: %Roles% %LineBreak% First name: %FirstName% %LineBreak% Last name: %LastName% %LineBreak% %EditUserLink%"
|
1305 |
msgstr ""
|
1306 |
|
1307 |
+
#: defaults.php:326
|
1308 |
msgid "Existing user added to a site"
|
1309 |
msgstr ""
|
1310 |
|
1311 |
+
#: defaults.php:326
|
1312 |
msgid "Added user %TargetUsername% to site: %SiteName% %LineBreak% Role: %TargetUserRole% %LineBreak% First name: %FirstName% %LineBreak% Last name: %LastName% %LineBreak% %EditUserLink%"
|
1313 |
msgstr ""
|
1314 |
|
1315 |
+
#: defaults.php:327
|
1316 |
msgid "User removed from site"
|
1317 |
msgstr ""
|
1318 |
|
1319 |
+
#: defaults.php:327
|
1320 |
+
msgid "Removed user %TargetUsername% from site: %SiteName% %LineBreak% Site role: %TargetUserRole% %LineBreak% First name: %FirstName% %LineBreak% Last name: %LastName% %LineBreak% %EditUserLink%"
|
1321 |
msgstr ""
|
1322 |
|
1323 |
+
#: defaults.php:328
|
1324 |
msgid "New network user created"
|
1325 |
msgstr ""
|
1326 |
|
1327 |
+
#: defaults.php:328
|
1328 |
msgid "Created a new network user %NewUserData->Username% %LineBreak% First name: %NewUserData->FirstName% %LineBreak% Last name: %NewUserData->LastName% %LineBreak% %EditUserLink%"
|
1329 |
msgstr ""
|
1330 |
|
1331 |
+
#: defaults.php:332
|
1332 |
msgid "Plugins & Themes"
|
1333 |
msgstr ""
|
1334 |
|
1335 |
+
#: defaults.php:333, classes/AuditLogGridView.php:463, classes/AuditLogListView.php:490
|
1336 |
msgid "Plugins"
|
1337 |
msgstr ""
|
1338 |
|
1339 |
+
#: defaults.php:334
|
1340 |
msgid "User installed a plugin"
|
1341 |
msgstr ""
|
1342 |
|
1343 |
+
#: defaults.php:334
|
1344 |
+
msgid "Name: %Plugin->Name% %LineBreak% Version: %Plugin->Version% %LineBreak% Install location: %Plugin->plugin_dir_path%"
|
1345 |
msgstr ""
|
1346 |
|
1347 |
+
#: defaults.php:335
|
1348 |
msgid "User activated a WordPress plugin"
|
1349 |
msgstr ""
|
1350 |
|
1351 |
+
#: defaults.php:335, defaults.php:336, defaults.php:337
|
1352 |
+
msgid "Name: %PluginData->Name% %LineBreak% Version: %PluginData->Version% %LineBreak% Install location: %PluginFile%"
|
1353 |
msgstr ""
|
1354 |
|
1355 |
+
#: defaults.php:336
|
1356 |
msgid "User deactivated a WordPress plugin"
|
1357 |
msgstr ""
|
1358 |
|
1359 |
+
#: defaults.php:337
|
1360 |
msgid "User uninstalled a plugin"
|
1361 |
msgstr ""
|
1362 |
|
1363 |
+
#: defaults.php:338
|
1364 |
msgid "User upgraded a plugin"
|
1365 |
msgstr ""
|
1366 |
|
1367 |
+
#: defaults.php:338
|
1368 |
+
msgid "Name: %PluginData->Name% %LineBreak% Updated version: %PluginData->Version% %LineBreak% Install location: %PluginFile%"
|
1369 |
+
msgstr ""
|
1370 |
+
|
1371 |
+
#: defaults.php:339
|
1372 |
msgid "Plugin created table"
|
1373 |
msgstr ""
|
1374 |
|
1375 |
+
#: defaults.php:339
|
1376 |
+
msgid "Plugin created this table in the database %LineBreak% Table: %TableNames% %LineBreak% Plugin: %Plugin->Name%"
|
1377 |
msgstr ""
|
1378 |
|
1379 |
+
#: defaults.php:340
|
1380 |
msgid "Plugin modified table structure"
|
1381 |
msgstr ""
|
1382 |
|
1383 |
+
#: defaults.php:340
|
1384 |
+
msgid "Plugin modified the structure of this table %LineBreak% Table: %TableNames% %LineBreak% Plugin: %Plugin->Name%"
|
1385 |
msgstr ""
|
1386 |
|
1387 |
+
#: defaults.php:341
|
1388 |
msgid "Plugin deleted table"
|
1389 |
msgstr ""
|
1390 |
|
1391 |
+
#: defaults.php:341
|
1392 |
+
msgid "Plugin deleted this table from the database %LineBreak% Table: %TableNames% %LineBreak% Plugin: %Plugin->Name%"
|
1393 |
msgstr ""
|
1394 |
|
1395 |
+
#: defaults.php:342
|
1396 |
msgid "A plugin created a post"
|
1397 |
msgstr ""
|
1398 |
|
1399 |
+
#: defaults.php:342
|
1400 |
+
msgid "Plugin created the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Plugin: %PluginName% %LineBreak% %EditorLinkPage%"
|
1401 |
msgstr ""
|
1402 |
|
1403 |
+
#: defaults.php:343
|
1404 |
msgid "A plugin deleted a post"
|
1405 |
msgstr ""
|
1406 |
|
1407 |
+
#: defaults.php:343
|
1408 |
+
msgid "Plugin deleted the post %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post type: %PostType% %LineBreak% Post status: %PostStatus% %LineBreak% Plugin: %PluginName%"
|
1409 |
msgstr ""
|
1410 |
|
1411 |
+
#: defaults.php:344
|
1412 |
msgid "User changed a file using the plugin editor"
|
1413 |
msgstr ""
|
1414 |
|
1415 |
+
#: defaults.php:344
|
1416 |
msgid "Modified a file with the plugin editor %LineBreak% File: %File%"
|
1417 |
msgstr ""
|
1418 |
|
1419 |
+
#: defaults.php:347
|
1420 |
msgid "Themes"
|
1421 |
msgstr ""
|
1422 |
|
1423 |
+
#: defaults.php:348
|
1424 |
msgid "User installed a theme"
|
1425 |
msgstr ""
|
1426 |
|
1427 |
+
#: defaults.php:348, defaults.php:349, defaults.php:350
|
1428 |
+
msgid "Name: %Theme->Name% %LineBreak% Version: %Theme->Version% %LineBreak% Install location: %Theme->get_template_directory%"
|
1429 |
msgstr ""
|
1430 |
|
1431 |
+
#: defaults.php:349
|
1432 |
msgid "User activated a theme"
|
1433 |
msgstr ""
|
1434 |
|
1435 |
+
#: defaults.php:350
|
|
|
|
|
|
|
|
|
1436 |
msgid "User uninstalled a theme"
|
1437 |
msgstr ""
|
1438 |
|
1439 |
+
#: defaults.php:351
|
1440 |
msgid "Theme created tables"
|
1441 |
msgstr ""
|
1442 |
|
1443 |
+
#: defaults.php:351
|
1444 |
+
msgid "Theme created this table in the database %LineBreak% Table: %TableNames% %LineBreak% Theme: %Theme->Name%"
|
1445 |
msgstr ""
|
1446 |
|
1447 |
+
#: defaults.php:352
|
1448 |
msgid "Theme modified tables structure"
|
1449 |
msgstr ""
|
1450 |
|
1451 |
+
#: defaults.php:352
|
1452 |
+
msgid "Theme modified the structure of this database table %LineBreak% Table: %TableNames% %LineBreak% Theme: %Theme->Name%"
|
1453 |
msgstr ""
|
1454 |
|
1455 |
+
#: defaults.php:353
|
1456 |
msgid "Theme deleted tables"
|
1457 |
msgstr ""
|
1458 |
|
1459 |
+
#: defaults.php:353
|
1460 |
+
msgid "Theme deleted this table from the database %LineBreak% Tables: %TableNames% %LineBreak% Theme: %Theme->Name%"
|
1461 |
msgstr ""
|
1462 |
|
1463 |
+
#: defaults.php:354
|
1464 |
msgid "User updated a theme"
|
1465 |
msgstr ""
|
1466 |
|
1467 |
+
#: defaults.php:354
|
1468 |
+
msgid "Name: %Theme->Name% %LineBreak% New version: %Theme->Version% %LineBreak% Install location: %Theme->get_template_directory%"
|
1469 |
msgstr ""
|
1470 |
|
1471 |
+
#: defaults.php:355
|
1472 |
msgid "User changed a file using the theme editor"
|
1473 |
msgstr ""
|
1474 |
|
1475 |
+
#: defaults.php:355
|
1476 |
msgid "Modified a file with the theme editor %LineBreak% File: %Theme%/%File%"
|
1477 |
msgstr ""
|
1478 |
|
1479 |
+
#: defaults.php:358
|
1480 |
msgid "Themes on Multisite"
|
1481 |
msgstr ""
|
1482 |
|
1483 |
+
#: defaults.php:359
|
1484 |
msgid "Activated theme on network"
|
1485 |
msgstr ""
|
1486 |
|
1487 |
+
#: defaults.php:359
|
1488 |
+
msgid "Network activated the theme %Theme->Name% %LineBreak% Version: %Theme->Version% %LineBreak% Install location: %Theme->get_template_directory%"
|
1489 |
msgstr ""
|
1490 |
|
1491 |
+
#: defaults.php:360
|
1492 |
msgid "Deactivated theme from network"
|
1493 |
msgstr ""
|
1494 |
|
1495 |
+
#: defaults.php:360
|
1496 |
+
msgid "Network deactivated the theme %Theme->Name% %LineBreak% Version: %Theme->Version% %LineBreak% Install location: %Theme->get_template_directory%"
|
1497 |
msgstr ""
|
1498 |
|
1499 |
+
#: defaults.php:363
|
1500 |
msgid "Database Events"
|
1501 |
msgstr ""
|
1502 |
|
1503 |
+
#: defaults.php:364
|
1504 |
msgid "Unknown component created tables"
|
1505 |
msgstr ""
|
1506 |
|
1507 |
+
#: defaults.php:364
|
1508 |
msgid "An unknown component created these tables in the database %LineBreak% Tables: %TableNames%"
|
1509 |
msgstr ""
|
1510 |
|
1511 |
+
#: defaults.php:365
|
1512 |
msgid "Unknown component modified tables structure"
|
1513 |
msgstr ""
|
1514 |
|
1515 |
+
#: defaults.php:365
|
1516 |
msgid "An unknown component modified the structure of these database tables %LineBreak% Tables: %TableNames%"
|
1517 |
msgstr ""
|
1518 |
|
1519 |
+
#: defaults.php:366
|
1520 |
msgid "Unknown component deleted tables"
|
1521 |
msgstr ""
|
1522 |
|
1523 |
+
#: defaults.php:366
|
1524 |
msgid "An unknown component deleted these tables from the database %LineBreak% Tables: %TableNames%"
|
1525 |
msgstr ""
|
1526 |
|
1527 |
+
#: defaults.php:367
|
1528 |
msgid "WordPress created tables"
|
1529 |
msgstr ""
|
1530 |
|
1531 |
+
#: defaults.php:367
|
1532 |
msgid "WordPress created these tables in the database %LineBreak% Tables: %TableNames%"
|
1533 |
msgstr ""
|
1534 |
|
1535 |
+
#: defaults.php:368
|
1536 |
msgid "WordPress modified tables structure"
|
1537 |
msgstr ""
|
1538 |
|
1539 |
+
#: defaults.php:368
|
1540 |
msgid "WordPress modified the structure of these database tables %LineBreak% Tables: %TableNames%"
|
1541 |
msgstr ""
|
1542 |
|
1543 |
+
#: defaults.php:369
|
1544 |
msgid "WordPress deleted tables"
|
1545 |
msgstr ""
|
1546 |
|
1547 |
+
#: defaults.php:369
|
1548 |
msgid "WordPress deleted these tables from the database %LineBreak% Tables: %TableNames%"
|
1549 |
msgstr ""
|
1550 |
|
1551 |
+
#: defaults.php:373
|
1552 |
msgid "WordPress & System"
|
1553 |
msgstr ""
|
1554 |
|
1555 |
+
#: defaults.php:374, classes/AlertManager.php:1153, classes/AlertManager.php:1944, classes/AuditLogGridView.php:469, classes/AuditLogListView.php:498, extensions/email-notifications/classes/DailyNotification.php:241, extensions/email-notifications/classes/Notifier.php:635, extensions/reports/classes/Common.php:500
|
1556 |
msgid "System"
|
1557 |
msgstr ""
|
1558 |
|
1559 |
+
#: defaults.php:375
|
1560 |
msgid "Unknown Error"
|
1561 |
msgstr ""
|
1562 |
|
1563 |
+
#: defaults.php:375
|
1564 |
msgid "An unexpected error has occurred ."
|
1565 |
msgstr ""
|
1566 |
|
1567 |
+
#: defaults.php:376
|
1568 |
msgid "PHP error"
|
1569 |
msgstr ""
|
1570 |
|
1571 |
+
#: defaults.php:376, defaults.php:377, defaults.php:378, defaults.php:379, defaults.php:380
|
1572 |
msgid "%Message%."
|
1573 |
msgstr ""
|
1574 |
|
1575 |
+
#: defaults.php:377
|
1576 |
msgid "PHP warning"
|
1577 |
msgstr ""
|
1578 |
|
1579 |
+
#: defaults.php:378
|
1580 |
msgid "PHP notice"
|
1581 |
msgstr ""
|
1582 |
|
1583 |
+
#: defaults.php:379
|
1584 |
msgid "PHP exception"
|
1585 |
msgstr ""
|
1586 |
|
1587 |
+
#: defaults.php:380
|
1588 |
msgid "PHP shutdown error"
|
1589 |
msgstr ""
|
1590 |
|
1591 |
+
#: defaults.php:381
|
1592 |
msgid "WordPress was updated"
|
1593 |
msgstr ""
|
1594 |
|
1595 |
+
#: defaults.php:381
|
1596 |
msgid "Updated WordPress %LineBreak% Previous version: %OldVersion% %LineBreak% New version: %NewVersion%"
|
1597 |
msgstr ""
|
1598 |
|
1599 |
+
#: defaults.php:389
|
1600 |
msgid "Advertising Extensions"
|
1601 |
msgstr ""
|
1602 |
|
1603 |
+
#: defaults.php:389
|
1604 |
msgid "%PromoName% %PromoMessage%"
|
1605 |
msgstr ""
|
1606 |
|
1607 |
+
#: defaults.php:392
|
1608 |
msgid "Activity log plugin"
|
1609 |
msgstr ""
|
1610 |
|
1611 |
+
#: defaults.php:393
|
1612 |
msgid "Events automatically pruned by system"
|
1613 |
msgstr ""
|
1614 |
|
1615 |
+
#: defaults.php:393
|
1616 |
+
msgid "System automatically deleted %EventCount% events"
|
1617 |
msgstr ""
|
1618 |
|
1619 |
+
#: defaults.php:394
|
1620 |
msgid "Reset the plugin's settings to default"
|
1621 |
msgstr ""
|
1622 |
|
1623 |
+
#: defaults.php:394
|
1624 |
+
msgid "Reset the activity log plugin's settings to default"
|
1625 |
msgstr ""
|
1626 |
|
1627 |
+
#: defaults.php:395, defaults.php:395
|
1628 |
msgid "Purged the activity log"
|
1629 |
msgstr ""
|
1630 |
|
1631 |
+
#: defaults.php:396
|
1632 |
msgid "Some WP Activity Log plugin settings on this site were propagated and overridden from the MainWP dashboard"
|
1633 |
msgstr ""
|
1634 |
|
1635 |
+
#: defaults.php:396
|
1636 |
msgid "Some WP Activity Log plugin settings on this site were propagated and overridden from the MainWP dashboard."
|
1637 |
msgstr ""
|
1638 |
|
1639 |
+
#: defaults.php:399
|
1640 |
msgid "WordPress Site Settings"
|
1641 |
msgstr ""
|
1642 |
|
1643 |
+
#: defaults.php:400
|
1644 |
msgid "Option Anyone Can Register in WordPress settings changed"
|
1645 |
msgstr ""
|
1646 |
|
1647 |
+
#: defaults.php:400
|
1648 |
+
msgid "The <strong>Membership</strong> setting <strong>Anyone can register</strong>"
|
1649 |
msgstr ""
|
1650 |
|
1651 |
+
#: defaults.php:401
|
1652 |
msgid "New User Default Role changed"
|
1653 |
msgstr ""
|
1654 |
|
1655 |
+
#: defaults.php:401
|
1656 |
+
msgid "Changed the <strong>New user default role</strong> WordPress setting %LineBreak% Previous role: %OldRole% %LineBreak% New role: %NewRole%"
|
1657 |
msgstr ""
|
1658 |
|
1659 |
+
#: defaults.php:402
|
1660 |
msgid "WordPress Administrator Notification email changed"
|
1661 |
msgstr ""
|
1662 |
|
1663 |
+
#: defaults.php:402
|
1664 |
+
msgid "Change the <strong>Administrator email address</strong> in the WordPress settings %LineBreak% Previous address %OldEmail% %LineBreak% New address: %NewEmail%"
|
1665 |
msgstr ""
|
1666 |
|
1667 |
+
#: defaults.php:403
|
1668 |
msgid "User changes the WordPress Permalinks"
|
1669 |
msgstr ""
|
1670 |
|
1671 |
+
#: defaults.php:403
|
1672 |
msgid "Changed the WordPress permalinks %LineBreak% Previous permalinks: %OldPattern% %LineBreak% New permalinks: %NewPattern%"
|
1673 |
msgstr ""
|
1674 |
|
1675 |
+
#: defaults.php:404
|
1676 |
msgid "Enabled/Disabled the option Discourage search engines from indexing this site"
|
1677 |
msgstr ""
|
1678 |
|
1679 |
+
#: defaults.php:404
|
1680 |
+
msgid "The <strong>Search engine visibility</strong> in the WordPess settings (Discourage search engines from indexing this site)"
|
1681 |
msgstr ""
|
1682 |
|
1683 |
+
#: defaults.php:405
|
1684 |
msgid "Enabled/Disabled comments on all the website"
|
1685 |
msgstr ""
|
1686 |
|
1687 |
+
#: defaults.php:405
|
1688 |
msgid "Comments on the website"
|
1689 |
msgstr ""
|
1690 |
|
1691 |
+
#: defaults.php:407
|
1692 |
msgid "Enabled/Disabled the option Comment author must fill out name and email"
|
1693 |
msgstr ""
|
1694 |
|
1695 |
+
#: defaults.php:407
|
1696 |
+
msgid "The WordPress setting <strong>Comment author must fill out name and email</strong>"
|
1697 |
msgstr ""
|
1698 |
|
1699 |
+
#: defaults.php:408
|
1700 |
msgid "Enabled/Disabled the option Users must be logged in and registered to comment"
|
1701 |
msgstr ""
|
1702 |
|
1703 |
+
#: defaults.php:408
|
1704 |
+
msgid "The WordPress setting <strong>Users must be registered and logged in to comment</strong>"
|
1705 |
msgstr ""
|
1706 |
|
1707 |
+
#: defaults.php:409
|
1708 |
msgid "Enabled/Disabled the option to automatically close comments"
|
1709 |
msgstr ""
|
1710 |
|
1711 |
+
#: defaults.php:409
|
1712 |
+
msgid "The WordPress setting <strong>Automatically close comments after %Value% days</strong>"
|
1713 |
+
msgstr ""
|
1714 |
+
|
1715 |
+
#: defaults.php:410
|
1716 |
+
msgid "Changed the value of the option Automatically close comments"
|
1717 |
+
msgstr ""
|
1718 |
+
|
1719 |
+
#: defaults.php:410
|
1720 |
+
msgid "Changed the value of the WordPress setting to <strong>Automatically close comments after a number of days</strong> %LineBreak% Previous value: %OldValue% %LineBreak% New value: %NewValue%"
|
1721 |
+
msgstr ""
|
1722 |
+
|
1723 |
+
#: defaults.php:411
|
1724 |
+
msgid "Enabled/Disabled the option for comments to be manually approved"
|
1725 |
+
msgstr ""
|
1726 |
+
|
1727 |
+
#: defaults.php:411
|
1728 |
+
msgid "The WordPress setting <strong>Comments must be manualy approved</strong>"
|
1729 |
+
msgstr ""
|
1730 |
+
|
1731 |
+
#: defaults.php:412
|
1732 |
+
msgid "Enabled/Disabled the option for an author to have previously approved comments for the comments to appear"
|
1733 |
+
msgstr ""
|
1734 |
+
|
1735 |
+
#: defaults.php:412
|
1736 |
+
msgid "The WordPress setting <strong>Comment author must have a previously approved comment</strong>"
|
1737 |
+
msgstr ""
|
1738 |
+
|
1739 |
+
#: defaults.php:413
|
1740 |
+
msgid "Changed the number of links that a comment must have to be held in the queue"
|
1741 |
+
msgstr ""
|
1742 |
+
|
1743 |
+
#: defaults.php:413
|
1744 |
+
msgid "Changed the WordPress setting <strong>Hold a comment in the queue if it contains links</strong> %LineBreak% Previous value: %OldValue% %LineBreak% New value: %NewValue%"
|
1745 |
+
msgstr ""
|
1746 |
+
|
1747 |
+
#: defaults.php:414
|
1748 |
+
msgid "Modified the list of keywords for comments moderation"
|
1749 |
+
msgstr ""
|
1750 |
+
|
1751 |
+
#: defaults.php:414
|
1752 |
+
msgid "Modified the list of keywords for comments medoration in WordPress"
|
1753 |
+
msgstr ""
|
1754 |
+
|
1755 |
+
#: defaults.php:415
|
1756 |
+
msgid "Modified the list of keywords for comments blacklisting"
|
1757 |
+
msgstr ""
|
1758 |
+
|
1759 |
+
#: defaults.php:415
|
1760 |
+
msgid "Modified the list of <strong>Disallowed comment keys</strong> (keywords) for comments blacklisting in WordPress"
|
1761 |
+
msgstr ""
|
1762 |
+
|
1763 |
+
#: defaults.php:416
|
1764 |
+
msgid "Option WordPress Address (URL) in WordPress settings changed"
|
1765 |
+
msgstr ""
|
1766 |
+
|
1767 |
+
#: defaults.php:416
|
1768 |
+
msgid "Changed the <strong>WordPress address (URL)</strong> %LineBreak% Previous URL: %old_url% %LineBreak% New URL: %new_url%"
|
1769 |
+
msgstr ""
|
1770 |
+
|
1771 |
+
#: defaults.php:417
|
1772 |
+
msgid "Option Site Address (URL) in WordPress settings changed"
|
1773 |
msgstr ""
|
1774 |
|
1775 |
+
#: defaults.php:417
|
1776 |
+
msgid "Changed the <strong>Site address (URL)</strong> %LineBreak% Previous URL: %old_url% %LineBreak% New URL: %new_url%"
|
1777 |
msgstr ""
|
1778 |
|
1779 |
+
#: defaults.php:419
|
1780 |
+
msgid "Option Your homepage displays in WordPress settings changed"
|
1781 |
msgstr ""
|
1782 |
|
1783 |
+
#: defaults.php:419
|
1784 |
+
msgid "The <strong>Your homepage displays</strong> in the WordPress settings %LineBreak% Previous setting: %old_homepage% %LineBreak% New setting: %new_homepage%"
|
1785 |
msgstr ""
|
1786 |
|
1787 |
+
#: defaults.php:420
|
1788 |
+
msgid "Option homepage in WordPress settings changed"
|
1789 |
msgstr ""
|
1790 |
|
1791 |
+
#: defaults.php:420
|
1792 |
+
msgid "Changed the <strong>Homepage</strong> in the WordPress settings %LineBreak% Previous page: %old_page% %LineBreak% New page: %new_page%"
|
1793 |
msgstr ""
|
1794 |
|
1795 |
+
#: defaults.php:421
|
1796 |
+
msgid "Option posts page in WordPress settings changed"
|
1797 |
msgstr ""
|
1798 |
|
1799 |
+
#: defaults.php:421
|
1800 |
+
msgid "Changed the <strong>Posts page</strong> in the WordPress settings %LineBreak% Previous page: %old_page% %LineBreak% New setting: %new_page%"
|
1801 |
msgstr ""
|
1802 |
|
1803 |
+
#: defaults.php:423
|
1804 |
+
msgid "Option Timezone in WordPress settings changed"
|
1805 |
msgstr ""
|
1806 |
|
1807 |
+
#: defaults.php:423
|
1808 |
+
msgid "The <strong>Timezone</strong> in the WordPress settings %LineBreak% Previous timezone: %old_timezone% %LineBreak% New timezone: %new_timezone%"
|
1809 |
msgstr ""
|
1810 |
|
1811 |
+
#: defaults.php:424
|
1812 |
+
msgid "Option Date format in WordPress settings changed"
|
1813 |
msgstr ""
|
1814 |
|
1815 |
+
#: defaults.php:424
|
1816 |
+
msgid "The <strong>Date format</strong> in the WordPress settings %LineBreak% Previous format: %old_date_format% %LineBreak% New format: %new_date_format%"
|
1817 |
msgstr ""
|
1818 |
|
1819 |
+
#: defaults.php:425
|
1820 |
+
msgid "Option Time format in WordPress settings changed"
|
1821 |
msgstr ""
|
1822 |
|
1823 |
+
#: defaults.php:425
|
1824 |
+
msgid "The <strong>Time format</strong> in the WordPress settings %LineBreak% Previous format: %old_time_format% %LineBreak% New format: %new_time_format%"
|
1825 |
msgstr ""
|
1826 |
|
1827 |
+
#: defaults.php:427
|
1828 |
+
msgid "Option Automatic updates setting changed"
|
1829 |
msgstr ""
|
1830 |
|
1831 |
+
#: defaults.php:427
|
1832 |
+
msgid "The <strong>Automatic updates</strong> in the WordPress settings %LineBreak% %updates_status%"
|
1833 |
msgstr ""
|
1834 |
|
1835 |
+
#: defaults.php:431
|
1836 |
msgid "Multisite Network Sites"
|
1837 |
msgstr ""
|
1838 |
|
1839 |
+
#: defaults.php:432
|
1840 |
msgid "MultiSite"
|
1841 |
msgstr ""
|
1842 |
|
1843 |
+
#: defaults.php:433
|
1844 |
msgid "New site added on the network"
|
1845 |
msgstr ""
|
1846 |
|
1847 |
+
#: defaults.php:433
|
1848 |
msgid "New site on the network: %SiteName% %LineBreak% URL: %BlogURL%"
|
1849 |
msgstr ""
|
1850 |
|
1851 |
+
#: defaults.php:434
|
1852 |
msgid "Existing site archived"
|
1853 |
msgstr ""
|
1854 |
|
1855 |
+
#: defaults.php:434
|
1856 |
msgid "Archived the site: %SiteName% %LineBreak% URL: %BlogURL%"
|
1857 |
msgstr ""
|
1858 |
|
1859 |
+
#: defaults.php:435
|
1860 |
msgid "Archived site has been unarchived"
|
1861 |
msgstr ""
|
1862 |
|
1863 |
+
#: defaults.php:435
|
1864 |
msgid "Unarchived the site: %SiteName% %LineBreak% URL: %BlogURL%"
|
1865 |
msgstr ""
|
1866 |
|
1867 |
+
#: defaults.php:436
|
1868 |
msgid "Deactivated site has been activated"
|
1869 |
msgstr ""
|
1870 |
|
1871 |
+
#: defaults.php:436
|
1872 |
msgid "Activated the site: %SiteName% %LineBreak% URL: %BlogURL%"
|
1873 |
msgstr ""
|
1874 |
|
1875 |
+
#: defaults.php:437
|
1876 |
msgid "Site has been deactivated"
|
1877 |
msgstr ""
|
1878 |
|
1879 |
+
#: defaults.php:437
|
1880 |
msgid "Deactivated the site: %SiteName% %LineBreak% URL: %BlogURL%"
|
1881 |
msgstr ""
|
1882 |
|
1883 |
+
#: defaults.php:438
|
1884 |
msgid "Existing site deleted from network"
|
1885 |
msgstr ""
|
1886 |
|
1887 |
+
#: defaults.php:438
|
1888 |
msgid "The site: %SiteName% %LineBreak% URL: %BlogURL%"
|
1889 |
msgstr ""
|
1890 |
|
1891 |
+
#: defaults.php:439
|
1892 |
+
msgid "Allow site administrators to add new users to their sites settings changed"
|
1893 |
+
msgstr ""
|
1894 |
+
|
1895 |
+
#: defaults.php:439
|
1896 |
+
msgid "The network setting <strong>Allow site administrators to add new users to their sites</strong>"
|
1897 |
+
msgstr ""
|
1898 |
+
|
1899 |
+
#: defaults.php:440
|
1900 |
+
msgid "Site upload space settings changed"
|
1901 |
+
msgstr ""
|
1902 |
+
|
1903 |
+
#: defaults.php:440
|
1904 |
+
msgid "The network setting <strong>Site upload space</strong> (to limit space allocated for each site's upload directory)"
|
1905 |
+
msgstr ""
|
1906 |
+
|
1907 |
+
#: defaults.php:441
|
1908 |
+
msgid "Site upload space file size settings changed"
|
1909 |
+
msgstr ""
|
1910 |
+
|
1911 |
+
#: defaults.php:441
|
1912 |
+
msgid "The file size in the <strong>Site upload space</strong> network setting %LineBreak% Previous size (MB): %old_value% %LineBreak%New size (MB): %new_value%"
|
1913 |
+
msgstr ""
|
1914 |
+
|
1915 |
+
#: defaults.php:442
|
1916 |
+
msgid "Site Upload file types settings changed"
|
1917 |
+
msgstr ""
|
1918 |
+
|
1919 |
+
#: defaults.php:442
|
1920 |
+
msgid "The network setting <strong>Upload file types</strong> (list of allowed file types) %LineBreak% Previous value: %old_value% %LineBreak% New value: %new_value%"
|
1921 |
+
msgstr ""
|
1922 |
+
|
1923 |
+
#: defaults.php:443
|
1924 |
+
msgid "Site Max upload file size settings changed"
|
1925 |
+
msgstr ""
|
1926 |
+
|
1927 |
+
#: defaults.php:443
|
1928 |
+
msgid "Changed the <strong>Max upload file size</strong> network setting %LineBreak% Previous size (KB): %old_value% %LineBreak% New size (KB): %new_value%"
|
1929 |
+
msgstr ""
|
1930 |
+
|
1931 |
+
#: defaults.php:444
|
1932 |
msgid "Allow new registrations settings changed"
|
1933 |
msgstr ""
|
1934 |
|
1935 |
+
#: defaults.php:444
|
1936 |
msgid "Changed the <strong>Allow new registrations</strong> settings %LineBreak% Previous setting: %previous_setting% %LineBreak% New setting: %new_setting%"
|
1937 |
msgstr ""
|
1938 |
|
1939 |
+
#: defaults.php:453, classes/Views/Settings.php:99
|
1940 |
msgid "File Changes"
|
1941 |
msgstr ""
|
1942 |
|
1943 |
+
#: defaults.php:454
|
1944 |
msgid "Monitor File Changes"
|
1945 |
msgstr ""
|
1946 |
|
1947 |
+
#: defaults.php:455
|
1948 |
msgid "Dummy"
|
1949 |
msgstr ""
|
1950 |
|
1951 |
#. translators: Username
|
1952 |
#. translators: Username
|
1953 |
+
#: wp-security-audit-log.php:908, wp-security-audit-log.php:935
|
1954 |
msgid "Hey %1$s"
|
1955 |
msgstr ""
|
1956 |
|
1957 |
+
#: wp-security-audit-log.php:909
|
1958 |
msgid "Never miss an important update! Opt-in to our security and feature updates notifications, and non-sensitive diagnostic tracking with freemius.com."
|
1959 |
msgstr ""
|
1960 |
|
1961 |
+
#: wp-security-audit-log.php:910, wp-security-audit-log.php:938
|
1962 |
msgid "Note: "
|
1963 |
msgstr ""
|
1964 |
|
1965 |
+
#: wp-security-audit-log.php:911, wp-security-audit-log.php:939
|
1966 |
msgid "NO ACTIVITY LOG ACTIVITY & DATA IS SENT BACK TO OUR SERVERS."
|
1967 |
msgstr ""
|
1968 |
|
1969 |
#. translators: 1: Plugin name. 2: Freemius link.
|
1970 |
+
#: wp-security-audit-log.php:937
|
1971 |
msgid "Please help us improve %2$s! If you opt-in, some non-sensitive data about your usage of %2$s will be sent to %5$s, a diagnostic tracking service we use. If you skip this, that's okay! %2$s will still work just fine."
|
1972 |
msgstr ""
|
1973 |
|
1974 |
#. translators: Plugin name
|
1975 |
+
#: wp-security-audit-log.php:959
|
1976 |
msgid "Get a free 7-day trial of the premium edition of %s. No credit card required, no commitments!"
|
1977 |
msgstr ""
|
1978 |
|
1979 |
+
#: wp-security-audit-log.php:960, classes/AlertManager.php:1171, extensions/external-db/classes/Connections.php:173
|
1980 |
msgid "WP Activity Log"
|
1981 |
msgstr ""
|
1982 |
|
1983 |
+
#: wp-security-audit-log.php:964
|
1984 |
msgid "Start free trial"
|
1985 |
msgstr ""
|
1986 |
|
1987 |
+
#: wp-security-audit-log.php:1032
|
1988 |
msgid "You need to activate the licence key to use WP Activity Log Premium. %2$s"
|
1989 |
msgstr ""
|
1990 |
|
1991 |
+
#: wp-security-audit-log.php:1033
|
1992 |
msgid "Activate the licence key now"
|
1993 |
msgstr ""
|
1994 |
|
1995 |
#. translators: Number of sites
|
1996 |
+
#: wp-security-audit-log.php:1055
|
1997 |
msgid "The license is limited to %s sub-sites. You need to upgrade your license to cover all the sub-sites on this network."
|
1998 |
msgstr ""
|
1999 |
|
2000 |
+
#: wp-security-audit-log.php:1051
|
2001 |
+
msgid "%s You need to renew your license to continue using premium features."
|
2002 |
+
msgstr ""
|
2003 |
+
|
2004 |
+
#: wp-security-audit-log.php:1163
|
2005 |
msgid "Error: You do not have sufficient permissions to disable this custom field."
|
2006 |
msgstr ""
|
2007 |
|
2008 |
+
#: wp-security-audit-log.php:1198
|
2009 |
msgid "Custom Field <strong>%1$s</strong> is no longer being monitored.<br />Enable the monitoring of this custom field again from the"
|
2010 |
msgstr ""
|
2011 |
|
2012 |
+
#: wp-security-audit-log.php:1201
|
2013 |
msgid "Excluded Objects"
|
2014 |
msgstr ""
|
2015 |
|
2016 |
+
#: wp-security-audit-log.php:1202
|
2017 |
msgid " tab in the plugin settings"
|
2018 |
msgstr ""
|
2019 |
|
2020 |
+
#: wp-security-audit-log.php:1215
|
2021 |
msgid "Error: You do not have sufficient permissions to disable this alert."
|
2022 |
msgstr ""
|
2023 |
|
2024 |
+
#: wp-security-audit-log.php:1239
|
2025 |
msgid "Alert %1$s is no longer being monitored.<br /> %2$s"
|
2026 |
msgstr ""
|
2027 |
|
2028 |
+
#: wp-security-audit-log.php:1239
|
2029 |
msgid "You can enable this alert again from the Enable/Disable Alerts node in the plugin menu."
|
2030 |
msgstr ""
|
2031 |
|
2032 |
+
#: wp-security-audit-log.php:1264, classes/Views/SetupWizard.php:270
|
2033 |
msgid "Installing, please wait"
|
2034 |
msgstr ""
|
2035 |
|
2036 |
+
#: wp-security-audit-log.php:1265, classes/Views/SetupWizard.php:271
|
2037 |
msgid "Already installed"
|
2038 |
msgstr ""
|
2039 |
|
2040 |
+
#: wp-security-audit-log.php:1266, classes/Utilities/PluginInstallAndActivate.php:108, classes/Views/SetupWizard.php:272, classes/Views/SetupWizard.php:836
|
2041 |
msgid "Extension installed"
|
2042 |
msgstr ""
|
2043 |
|
2044 |
+
#: wp-security-audit-log.php:1267, classes/Views/SetupWizard.php:273
|
2045 |
msgid "Extension activated"
|
2046 |
msgstr ""
|
2047 |
|
2048 |
+
#: wp-security-audit-log.php:1268, classes/Views/SetupWizard.php:274
|
2049 |
msgid "Install failed"
|
2050 |
msgstr ""
|
2051 |
|
2052 |
#. translators: %s: PHP Version
|
2053 |
+
#: wp-security-audit-log.php:1319
|
2054 |
msgid "You are using a version of PHP that is older than %s, which is no longer supported."
|
2055 |
msgstr ""
|
2056 |
|
2057 |
+
#: wp-security-audit-log.php:1321
|
2058 |
msgid "Contact us on <a href=\"mailto:plugins@wpwhitesecurity.com\">plugins@wpwhitesecurity.com</a> to help you switch the version of PHP you are using."
|
2059 |
msgstr ""
|
2060 |
|
2061 |
#. translators: %s: Activity Log for MainWP plugin hyperlink
|
2062 |
+
#: wp-security-audit-log.php:1326
|
2063 |
msgid "Please install the %s plugin on the MainWP dashboard."
|
2064 |
msgstr ""
|
2065 |
|
2066 |
+
#: wp-security-audit-log.php:1326
|
2067 |
msgid "Activity Log for MainWP"
|
2068 |
msgstr ""
|
2069 |
|
2070 |
#. translators: %s: Getting started guide hyperlink
|
2071 |
+
#: wp-security-audit-log.php:1328
|
2072 |
msgid "The WP Activity Log should be installed on the child sites only. Refer to the %s for more information."
|
2073 |
msgstr ""
|
2074 |
|
2075 |
+
#: wp-security-audit-log.php:1328
|
2076 |
msgid "getting started guide"
|
2077 |
msgstr ""
|
2078 |
|
2079 |
+
#: wp-security-audit-log.php:1905
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2080 |
msgid "For security and auditing purposes, a record of all of your logged-in actions and changes within the WordPress dashboard will be recorded in an activity log with the <a href=\"https://wpactivitylog.com/\" target=\"_blank\">WP Activity Log plugin</a>. The audit log also includes the IP address where you accessed this site from."
|
2081 |
msgstr ""
|
2082 |
|
2083 |
+
#: wp-security-audit-log.php:1924
|
2084 |
msgid "Every 6 hours"
|
2085 |
msgstr ""
|
2086 |
|
2087 |
+
#: wp-security-audit-log.php:1928
|
2088 |
msgid "Every 45 minutes"
|
2089 |
msgstr ""
|
2090 |
|
2091 |
+
#: wp-security-audit-log.php:1932
|
2092 |
msgid "Every 30 minutes"
|
2093 |
msgstr ""
|
2094 |
|
2095 |
+
#: wp-security-audit-log.php:1936
|
2096 |
msgid "Every 15 minutes"
|
2097 |
msgstr ""
|
2098 |
|
2099 |
+
#: wp-security-audit-log.php:1940
|
2100 |
msgid "Every 10 minutes"
|
2101 |
msgstr ""
|
2102 |
|
2103 |
+
#: wp-security-audit-log.php:1944
|
2104 |
msgid "Every 1 minute"
|
2105 |
msgstr ""
|
2106 |
|
2107 |
#. translators: 1. Deprecated method name 2. Version since deprecated
|
2108 |
+
#: wp-security-audit-log.php:1958
|
2109 |
msgid "Method %1$s is deprecated since version %2$s!"
|
2110 |
msgstr ""
|
2111 |
|
2112 |
#. translators: Event ID
|
2113 |
+
#: classes/AlertManager.php:400
|
2114 |
msgid "Event with code %d has not be registered."
|
2115 |
msgstr ""
|
2116 |
|
2117 |
#. translators: Event ID
|
2118 |
+
#: classes/AlertManager.php:462
|
2119 |
msgid "Event %s already registered with WP Activity Log."
|
2120 |
msgstr ""
|
2121 |
|
2122 |
+
#: classes/AlertManager.php:537
|
2123 |
msgid "You have custom events that are using the same ID or IDs which are already registered in the plugin, so they have been disabled."
|
2124 |
msgstr ""
|
2125 |
|
2126 |
#. translators: 1.CSS classes, 2. Notice, 3. Contact us link
|
2127 |
+
#: classes/AlertManager.php:540
|
2128 |
msgid "%4$s to help you solve this issue."
|
2129 |
msgstr ""
|
2130 |
|
2131 |
+
#: classes/AlertManager.php:542
|
2132 |
msgid "ERROR:"
|
2133 |
msgstr ""
|
2134 |
|
2135 |
+
#: classes/AlertManager.php:544
|
2136 |
msgid "Contact us"
|
2137 |
msgstr ""
|
2138 |
|
2139 |
+
#: classes/AlertManager.php:1152, classes/AuditLogListView.php:299, classes/AuditLogListView.php:333, classes/WidgetManager.php:76, classes/Views/Settings.php:1090, extensions/search/classes/Filters/UserNameFilter.php:44, extensions/user-sessions/classes/View/Sessions.php:138
|
2140 |
msgid "User"
|
2141 |
msgstr ""
|
2142 |
|
2143 |
+
#: classes/AlertManager.php:1154, classes/AuditLogGridView.php:460, classes/AuditLogListView.php:486
|
2144 |
msgid "Plugin"
|
2145 |
msgstr ""
|
2146 |
|
2147 |
+
#: classes/AlertManager.php:1155
|
2148 |
msgid "Database"
|
2149 |
msgstr ""
|
2150 |
|
2151 |
+
#: classes/AlertManager.php:1156
|
2152 |
msgid "Post"
|
2153 |
msgstr ""
|
2154 |
|
2155 |
+
#: classes/AlertManager.php:1157, classes/AlertManager.php:1161
|
2156 |
msgid "File"
|
2157 |
msgstr ""
|
2158 |
|
2159 |
+
#: classes/AlertManager.php:1158
|
2160 |
msgid "Tag"
|
2161 |
msgstr ""
|
2162 |
|
2163 |
+
#: classes/AlertManager.php:1159
|
2164 |
msgid "Comment"
|
2165 |
msgstr ""
|
2166 |
|
2167 |
+
#: classes/AlertManager.php:1160
|
2168 |
msgid "Setting"
|
2169 |
msgstr ""
|
2170 |
|
2171 |
+
#: classes/AlertManager.php:1162
|
2172 |
msgid "System Setting"
|
2173 |
msgstr ""
|
2174 |
|
2175 |
+
#: classes/AlertManager.php:1163
|
2176 |
msgid "MainWP Network"
|
2177 |
msgstr ""
|
2178 |
|
2179 |
+
#: classes/AlertManager.php:1164
|
2180 |
msgid "MainWP"
|
2181 |
msgstr ""
|
2182 |
|
2183 |
+
#: classes/AlertManager.php:1165
|
2184 |
msgid "Category"
|
2185 |
msgstr ""
|
2186 |
|
2187 |
+
#: classes/AlertManager.php:1166
|
2188 |
msgid "Custom Field"
|
2189 |
msgstr ""
|
2190 |
|
2191 |
+
#: classes/AlertManager.php:1167
|
2192 |
msgid "Widget"
|
2193 |
msgstr ""
|
2194 |
|
2195 |
+
#: classes/AlertManager.php:1168
|
2196 |
msgid "Menu"
|
2197 |
msgstr ""
|
2198 |
|
2199 |
+
#: classes/AlertManager.php:1169
|
2200 |
msgid "Theme"
|
2201 |
msgstr ""
|
2202 |
|
2203 |
+
#: classes/AlertManager.php:1170
|
2204 |
msgid "Activity log"
|
2205 |
msgstr ""
|
2206 |
|
2207 |
+
#: classes/AlertManager.php:1172
|
2208 |
msgid "Multisite Network"
|
2209 |
msgstr ""
|
2210 |
|
2211 |
+
#: classes/AlertManager.php:1173, extensions/email-notifications/classes/Common.php:1124, extensions/search/classes/Filters/IpFilter.php:87, extensions/user-sessions/classes/View/Sessions.php:298
|
2212 |
msgid "IP Address"
|
2213 |
msgstr ""
|
2214 |
|
2215 |
+
#: classes/AlertManager.php:1189
|
2216 |
msgid "unknown object"
|
2217 |
msgstr ""
|
2218 |
|
2219 |
+
#: classes/AlertManager.php:1226
|
2220 |
msgid "Login"
|
2221 |
msgstr ""
|
2222 |
|
2223 |
+
#: classes/AlertManager.php:1227
|
2224 |
msgid "Logout"
|
2225 |
msgstr ""
|
2226 |
|
2227 |
+
#: classes/AlertManager.php:1228
|
2228 |
msgid "Installed"
|
2229 |
msgstr ""
|
2230 |
|
2231 |
+
#: classes/AlertManager.php:1229
|
2232 |
msgid "Activated"
|
2233 |
msgstr ""
|
2234 |
|
2235 |
+
#: classes/AlertManager.php:1230
|
2236 |
msgid "Deactivated"
|
2237 |
msgstr ""
|
2238 |
|
2239 |
+
#: classes/AlertManager.php:1231
|
2240 |
msgid "Uninstalled"
|
2241 |
msgstr ""
|
2242 |
|
2243 |
+
#: classes/AlertManager.php:1232
|
2244 |
msgid "Updated"
|
2245 |
msgstr ""
|
2246 |
|
2247 |
+
#: classes/AlertManager.php:1233, extensions/user-sessions/classes/View/Sessions.php:145
|
2248 |
msgid "Created"
|
2249 |
msgstr ""
|
2250 |
|
2251 |
+
#: classes/AlertManager.php:1234
|
2252 |
msgid "Modified"
|
2253 |
msgstr ""
|
2254 |
|
2255 |
+
#: classes/AlertManager.php:1235, extensions/search/search-init.php:301
|
2256 |
msgid "Deleted"
|
2257 |
msgstr ""
|
2258 |
|
2259 |
+
#: classes/AlertManager.php:1236
|
2260 |
msgid "Published"
|
2261 |
msgstr ""
|
2262 |
|
2263 |
+
#: classes/AlertManager.php:1237
|
2264 |
msgid "Approved"
|
2265 |
msgstr ""
|
2266 |
|
2267 |
+
#: classes/AlertManager.php:1238
|
2268 |
msgid "Unapproved"
|
2269 |
msgstr ""
|
2270 |
|
2271 |
+
#: classes/AlertManager.php:1239
|
2272 |
msgid "Enabled"
|
2273 |
msgstr ""
|
2274 |
|
2275 |
+
#: classes/AlertManager.php:1240, extensions/email-notifications/classes/Notifications.php:1812
|
2276 |
msgid "Disabled"
|
2277 |
msgstr ""
|
2278 |
|
2279 |
+
#: classes/AlertManager.php:1241
|
2280 |
msgid "Added"
|
2281 |
msgstr ""
|
2282 |
|
2283 |
+
#: classes/AlertManager.php:1242
|
2284 |
msgid "Failed Login"
|
2285 |
msgstr ""
|
2286 |
|
2287 |
+
#: classes/AlertManager.php:1243
|
2288 |
msgid "Blocked"
|
2289 |
msgstr ""
|
2290 |
|
2291 |
+
#: classes/AlertManager.php:1244
|
2292 |
msgid "Uploaded"
|
2293 |
msgstr ""
|
2294 |
|
2295 |
+
#: classes/AlertManager.php:1245
|
2296 |
msgid "Restored"
|
2297 |
msgstr ""
|
2298 |
|
2299 |
+
#: classes/AlertManager.php:1246
|
2300 |
msgid "Opened"
|
2301 |
msgstr ""
|
2302 |
|
2303 |
+
#: classes/AlertManager.php:1247
|
2304 |
msgid "Viewed"
|
2305 |
msgstr ""
|
2306 |
|
2307 |
+
#: classes/AlertManager.php:1248
|
2308 |
msgid "Started"
|
2309 |
msgstr ""
|
2310 |
|
2311 |
+
#: classes/AlertManager.php:1249
|
2312 |
msgid "Stopped"
|
2313 |
msgstr ""
|
2314 |
|
2315 |
+
#: classes/AlertManager.php:1250
|
2316 |
msgid "Removed"
|
2317 |
msgstr ""
|
2318 |
|
2319 |
+
#: classes/AlertManager.php:1251
|
2320 |
msgid "Unblocked"
|
2321 |
msgstr ""
|
2322 |
|
2323 |
+
#: classes/AlertManager.php:1252
|
2324 |
msgid "Renamed"
|
2325 |
msgstr ""
|
2326 |
|
2327 |
+
#: classes/AlertManager.php:1253
|
2328 |
msgid "Duplicated"
|
2329 |
msgstr ""
|
2330 |
|
2331 |
+
#: classes/AlertManager.php:1254
|
2332 |
+
msgid "Submitted"
|
2333 |
+
msgstr ""
|
2334 |
+
|
2335 |
+
#: classes/AlertManager.php:1255
|
2336 |
+
msgid "Revoked"
|
2337 |
+
msgstr ""
|
2338 |
+
|
2339 |
+
#: classes/AlertManager.php:1272
|
2340 |
msgid "unknown type"
|
2341 |
msgstr ""
|
2342 |
|
2343 |
+
#: classes/AlertManager.php:1903, classes/ConstantManager.php:146, extensions/external-db/classes/Common.php:661, extensions/external-db/classes/Common.php:902
|
2344 |
msgid "Unknown error code."
|
2345 |
msgstr ""
|
2346 |
|
2347 |
+
#: classes/AlertManager.php:1922, classes/AlertManager.php:1910, extensions/reports/classes/Common.php:480, extensions/reports/classes/Common.php:470
|
2348 |
msgid "Unknown Site"
|
2349 |
msgstr ""
|
2350 |
|
2351 |
+
#: classes/AuditLogGridView.php:104, classes/AuditLogListView.php:104
|
2352 |
msgid "No events so far."
|
2353 |
msgstr ""
|
2354 |
|
2355 |
+
#: classes/AuditLogGridView.php:141, classes/AuditLogListView.php:148
|
2356 |
msgid "List View"
|
2357 |
msgstr ""
|
2358 |
|
2359 |
+
#: classes/AuditLogGridView.php:142, classes/AuditLogListView.php:149
|
2360 |
msgid "Grid View"
|
2361 |
msgstr ""
|
2362 |
|
2363 |
+
#: classes/AuditLogGridView.php:167, classes/AuditLogListView.php:174
|
2364 |
msgid "Show "
|
2365 |
msgstr ""
|
2366 |
|
2367 |
+
#: classes/AuditLogGridView.php:175, classes/AuditLogListView.php:182
|
2368 |
msgid " Items"
|
2369 |
msgstr ""
|
2370 |
|
2371 |
+
#: classes/AuditLogGridView.php:182, classes/AuditLogListView.php:189
|
2372 |
msgid "— End of Activity Log —"
|
2373 |
msgstr ""
|
2374 |
|
2375 |
+
#: classes/AuditLogGridView.php:203, classes/AuditLogListView.php:210, classes/Views/AuditLog.php:624, extensions/reports/inc/wsal-reporting-view.inc.php:610
|
2376 |
msgid "All Sites"
|
2377 |
msgstr ""
|
2378 |
|
2379 |
+
#: classes/AuditLogGridView.php:231, classes/AuditLogListView.php:239
|
2380 |
msgid "Live Database"
|
2381 |
msgstr ""
|
2382 |
|
2383 |
+
#: classes/AuditLogGridView.php:234, classes/AuditLogListView.php:242
|
2384 |
msgid "Archive Database"
|
2385 |
msgstr ""
|
2386 |
|
2387 |
+
#: classes/AuditLogGridView.php:288, classes/AuditLogGridView.php:312, classes/AuditLogListView.php:296, classes/AuditLogListView.php:324
|
2388 |
msgid "ID"
|
2389 |
msgstr ""
|
2390 |
|
2391 |
+
#: classes/AuditLogGridView.php:289, classes/AuditLogGridView.php:315, classes/AuditLogListView.php:297, classes/AuditLogListView.php:327, classes/Views/Settings.php:1086, classes/Views/ToggleAlerts.php:297, extensions/search/classes/Filters/CodeFilter.php:38, extensions/search/classes/Filters/CodeFilter.php:64
|
2392 |
msgid "Severity"
|
2393 |
msgstr ""
|
2394 |
|
2395 |
+
#: classes/AuditLogGridView.php:290, extensions/search/classes/Filters/CodeFilter.php:71
|
2396 |
msgid "Info"
|
2397 |
msgstr ""
|
2398 |
|
2399 |
+
#: classes/AuditLogGridView.php:295, classes/AuditLogListView.php:307, classes/AuditLogListView.php:339, extensions/email-notifications/classes/Common.php:1122, extensions/email-notifications/classes/Common.php:1182, extensions/search/classes/Filters/SiteFilter.php:29
|
2400 |
msgid "Site"
|
2401 |
msgstr ""
|
2402 |
|
2403 |
+
#: classes/AuditLogGridView.php:298, classes/AuditLogGridView.php:321, classes/AuditLogListView.php:310, classes/AuditLogListView.php:348, extensions/email-notifications/classes/Common.php:1126, extensions/email-notifications/classes/Common.php:1156
|
2404 |
msgid "Message"
|
2405 |
msgstr ""
|
2406 |
|
2407 |
+
#: classes/AuditLogGridView.php:318
|
2408 |
msgid "Grid"
|
2409 |
msgstr ""
|
2410 |
|
2411 |
+
#: classes/AuditLogGridView.php:386, classes/AuditLogListView.php:430
|
2412 |
msgid "Disable this type of events."
|
2413 |
msgstr ""
|
2414 |
|
2415 |
+
#: classes/AuditLogGridView.php:414, classes/AuditLogGridView.php:418, classes/AuditLogGridView.php:457, classes/AuditLogListView.php:441, classes/AuditLogListView.php:482
|
2416 |
msgid "Unknown"
|
2417 |
msgstr ""
|
2418 |
|
2419 |
+
#: classes/AuditLogGridView.php:466, classes/AuditLogListView.php:494
|
2420 |
msgid "Unregistered user"
|
2421 |
msgstr ""
|
2422 |
|
2423 |
+
#: classes/AuditLogGridView.php:442, classes/AuditLogListView.php:467
|
2424 |
msgid "Show me all activity by this User"
|
2425 |
msgstr ""
|
2426 |
|
2427 |
+
#: classes/AuditLogGridView.php:503, classes/AuditLogGridView.php:516, classes/AuditLogListView.php:530, classes/AuditLogListView.php:543
|
2428 |
msgid "Show me all activity originating from this IP Address"
|
2429 |
msgstr ""
|
2430 |
|
2431 |
+
#: classes/AuditLogGridView.php:573, classes/AuditLogListView.php:572
|
2432 |
msgid "View all details of this change"
|
2433 |
msgstr ""
|
2434 |
|
2435 |
+
#: classes/AuditLogGridView.php:574, classes/AuditLogListView.php:573
|
2436 |
msgid "Alert Data Inspector"
|
2437 |
msgstr ""
|
2438 |
|
2439 |
+
#: classes/AuditLogListView.php:298, classes/AuditLogListView.php:330, extensions/search/classes/Filters/DateFilter.php:27
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2440 |
msgid "Date"
|
2441 |
msgstr ""
|
2442 |
|
2443 |
+
#: classes/AuditLogListView.php:300, classes/AuditLogListView.php:336, extensions/search/classes/Filters/IpFilter.php:45
|
2444 |
msgid "IP"
|
2445 |
msgstr ""
|
2446 |
|
2447 |
+
#: classes/AuditLogListView.php:301, classes/AuditLogListView.php:342, classes/WidgetManager.php:77, extensions/email-notifications/classes/Common.php:1095, extensions/search/classes/Filters/ObjectFilter.php:29, extensions/search/classes/Filters/ObjectFilter.php:53
|
2448 |
msgid "Object"
|
2449 |
msgstr ""
|
2450 |
|
2451 |
+
#: classes/AuditLogListView.php:302, classes/AuditLogListView.php:345, classes/WidgetManager.php:78, extensions/email-notifications/classes/Common.php:1096, extensions/search/classes/Filters/EventTypeFilter.php:29, extensions/search/classes/Filters/EventTypeFilter.php:53
|
2452 |
msgid "Event Type"
|
2453 |
msgstr ""
|
2454 |
|
2455 |
+
#: classes/AuditLogListView.php:409
|
2456 |
msgid "Click to toggle."
|
2457 |
msgstr ""
|
2458 |
|
2459 |
+
#: classes/AuditLogListView.php:414, classes/Models/Occurrence.php:83
|
2460 |
msgid "Alert message not found."
|
2461 |
msgstr ""
|
2462 |
|
2463 |
+
#: classes/AuditLogListView.php:415, classes/Models/Occurrence.php:84
|
2464 |
msgid "Alert description not found."
|
2465 |
msgstr ""
|
2466 |
|
2467 |
+
#: classes/ConstantManager.php:166, classes/Views/ToggleAlerts.php:442
|
2468 |
msgid "Informational"
|
2469 |
msgstr ""
|
2470 |
|
2471 |
+
#: classes/ConstantManager.php:164, classes/Views/ToggleAlerts.php:440, extensions/search/classes/Filters/CodeFilter.php:70
|
2472 |
msgid "Low"
|
2473 |
msgstr ""
|
2474 |
|
2475 |
+
#: classes/ConstantManager.php:162, classes/Views/ToggleAlerts.php:438, extensions/search/classes/Filters/CodeFilter.php:69
|
2476 |
msgid "Medium"
|
2477 |
msgstr ""
|
2478 |
|
2479 |
+
#: classes/ConstantManager.php:160, classes/Views/ToggleAlerts.php:436, extensions/search/classes/Filters/CodeFilter.php:68
|
2480 |
msgid "High"
|
2481 |
msgstr ""
|
2482 |
|
2483 |
+
#: classes/ConstantManager.php:158, classes/ConstantManager.php:152, classes/Views/ToggleAlerts.php:434, classes/Views/ToggleAlerts.php:428, extensions/search/classes/Filters/CodeFilter.php:67
|
2484 |
msgid "Critical"
|
2485 |
msgstr ""
|
2486 |
|
2487 |
+
#: classes/ConstantManager.php:156, classes/Views/ToggleAlerts.php:444, classes/Views/ToggleAlerts.php:432
|
2488 |
msgid "Notification"
|
2489 |
msgstr ""
|
2490 |
|
2491 |
+
#: classes/ConstantManager.php:154, classes/Views/ToggleAlerts.php:430
|
2492 |
msgid "Warning"
|
2493 |
msgstr ""
|
2494 |
|
2495 |
+
#: classes/Settings.php:355
|
2496 |
msgid "This function is deprecated"
|
2497 |
msgstr ""
|
2498 |
|
2499 |
+
#: classes/Settings.php:1479
|
2500 |
msgid "View the content changes"
|
2501 |
msgstr ""
|
2502 |
|
2503 |
+
#: classes/Settings.php:1489
|
2504 |
+
msgid "View page in the editor"
|
2505 |
+
msgstr ""
|
2506 |
+
|
2507 |
+
#: classes/Settings.php:1504
|
2508 |
msgid "View post in the editor"
|
2509 |
msgstr ""
|
2510 |
|
2511 |
+
#: classes/Settings.php:1517
|
2512 |
msgid "View Order"
|
2513 |
msgstr ""
|
2514 |
|
2515 |
+
#: classes/Settings.php:1532
|
2516 |
msgid "View category"
|
2517 |
msgstr ""
|
2518 |
|
2519 |
+
#: classes/Settings.php:1548
|
2520 |
msgid "View tag"
|
2521 |
msgstr ""
|
2522 |
|
2523 |
+
#: classes/Settings.php:1553
|
2524 |
msgid "User profile page"
|
2525 |
msgstr ""
|
2526 |
|
2527 |
+
#: classes/Settings.php:1631, classes/Settings.php:1631
|
2528 |
+
msgid "View Menu"
|
2529 |
msgstr ""
|
2530 |
|
2531 |
+
#: classes/Settings.php:1651, classes/Settings.php:1651
|
2532 |
+
msgid "Download the log file."
|
2533 |
+
msgstr ""
|
2534 |
+
|
2535 |
+
#: classes/Settings.php:1677
|
2536 |
+
msgid "published"
|
2537 |
+
msgstr ""
|
2538 |
+
|
2539 |
+
#. translators: Mailto link for support.
|
2540 |
+
#: classes/Settings.php:1707, classes/Settings.php:1710
|
2541 |
+
msgid "Contact us on %s for assistance"
|
2542 |
msgstr ""
|
2543 |
|
2544 |
+
#: classes/Settings.php:1725, classes/Settings.php:1728
|
2545 |
msgid "plugin settings"
|
2546 |
msgstr ""
|
2547 |
|
2548 |
+
#: classes/Settings.php:1731
|
2549 |
+
msgid "Increase maximum file size limit"
|
2550 |
+
msgstr ""
|
2551 |
+
|
2552 |
+
#: classes/Settings.php:1739, classes/Settings.php:1742
|
2553 |
msgid "contact our support"
|
2554 |
msgstr ""
|
2555 |
|
2556 |
+
#: classes/Settings.php:1745
|
2557 |
+
msgid "Contact Support"
|
2558 |
+
msgstr ""
|
2559 |
+
|
2560 |
+
#: classes/Settings.php:2055
|
2561 |
msgid "Root directory of WordPress (excluding sub directories)"
|
2562 |
msgstr ""
|
2563 |
|
2564 |
+
#: classes/Settings.php:2056
|
2565 |
msgid "WP Admin directory (/wp-admin/)"
|
2566 |
msgstr ""
|
2567 |
|
2568 |
+
#: classes/Settings.php:2057
|
2569 |
msgid "WP Includes directory (/wp-includes/)"
|
2570 |
msgstr ""
|
2571 |
|
2572 |
+
#: classes/Settings.php:2058
|
2573 |
msgid "/wp-content/ directory (excluding plugins, themes & uploads directories)"
|
2574 |
msgstr ""
|
2575 |
|
2576 |
+
#: classes/Settings.php:2059
|
2577 |
msgid "Themes directory (/wp-content/themes/)"
|
2578 |
msgstr ""
|
2579 |
|
2580 |
+
#: classes/Settings.php:2060
|
2581 |
msgid "Plugins directory (/wp-content/plugins/)"
|
2582 |
msgstr ""
|
2583 |
|
2584 |
+
#: classes/Settings.php:2061
|
2585 |
msgid "Uploads directory (/wp-content/uploads/)"
|
2586 |
msgstr ""
|
2587 |
|
2588 |
+
#: classes/Settings.php:2066
|
2589 |
msgid "Uploads directory of all sub sites on this network (/wp-content/sites/*)"
|
2590 |
msgstr ""
|
2591 |
|
2601 |
msgid "Latest Events"
|
2602 |
msgstr ""
|
2603 |
|
2604 |
+
#: classes/WidgetManager.php:79, classes/Views/ToggleAlerts.php:298
|
2605 |
msgid "Description"
|
2606 |
msgstr ""
|
2607 |
|
2635 |
msgid "This type of activity / change is no longer monitored. You can create your own custom event IDs to keep a log of such change. Read more about custom events %1$shere%2$s."
|
2636 |
msgstr ""
|
2637 |
|
2638 |
+
#: classes/Sensors/Content.php:712
|
2639 |
+
msgid "Default template"
|
2640 |
+
msgstr ""
|
2641 |
+
|
2642 |
+
#: classes/Sensors/Content.php:713
|
2643 |
+
msgid "Default"
|
2644 |
+
msgstr ""
|
2645 |
+
|
2646 |
+
#: classes/Sensors/Content.php:765
|
2647 |
+
msgid "No previous image"
|
2648 |
+
msgstr ""
|
2649 |
+
|
2650 |
+
#: classes/Sensors/Content.php:766
|
2651 |
+
msgid "No image"
|
2652 |
+
msgstr ""
|
2653 |
+
|
2654 |
+
#: classes/Sensors/Content.php:1111, classes/Sensors/Content.php:1119
|
2655 |
msgid "Public"
|
2656 |
msgstr ""
|
2657 |
|
2658 |
+
#: classes/Sensors/Content.php:1109, classes/Sensors/Content.php:1117
|
2659 |
msgid "Private"
|
2660 |
msgstr ""
|
2661 |
|
2662 |
+
#: classes/Sensors/Content.php:1107, classes/Sensors/Content.php:1115
|
2663 |
msgid "Password Protected"
|
2664 |
msgstr ""
|
2665 |
|
2666 |
+
#: classes/Sensors/Content.php:1282
|
2667 |
msgid "no tags"
|
2668 |
msgstr ""
|
2669 |
|
2670 |
+
#: classes/Sensors/Multisite.php:80
|
2671 |
+
msgid "disabled"
|
2672 |
+
msgstr ""
|
2673 |
+
|
2674 |
+
#: classes/Sensors/Multisite.php:81
|
2675 |
+
msgid "user accounts only"
|
2676 |
+
msgstr ""
|
2677 |
+
|
2678 |
+
#: classes/Sensors/Multisite.php:82
|
2679 |
+
msgid "users can register new sites"
|
2680 |
+
msgstr ""
|
2681 |
+
|
2682 |
+
#: classes/Sensors/Multisite.php:83
|
2683 |
+
msgid "sites & users can be registered"
|
2684 |
+
msgstr ""
|
2685 |
+
|
2686 |
+
#: classes/Sensors/System.php:175, classes/Sensors/System.php:176
|
2687 |
+
msgid "latest posts"
|
2688 |
+
msgstr ""
|
2689 |
+
|
2690 |
+
#: classes/Sensors/System.php:175, classes/Sensors/System.php:176
|
2691 |
+
msgid "static page"
|
2692 |
+
msgstr ""
|
2693 |
+
|
2694 |
+
#: classes/Sensors/System.php:355
|
2695 |
+
msgid "automatically update to all new versions of WordPress"
|
2696 |
+
msgstr ""
|
2697 |
+
|
2698 |
+
#: classes/Sensors/System.php:355
|
2699 |
+
msgid "automatically update maintenance and security releases only"
|
2700 |
+
msgstr ""
|
2701 |
+
|
2702 |
#: classes/ThirdPartyExtensions/BBPressExtension.php:29
|
2703 |
msgid "BBPress"
|
2704 |
msgstr ""
|
2724 |
msgstr ""
|
2725 |
|
2726 |
#. translators: %s: Home URL
|
2727 |
+
#: classes/Utilities/Emailer.php:54
|
2728 |
msgid "WP Activity Log plugin disabled on %s"
|
2729 |
msgstr ""
|
2730 |
|
2731 |
+
#: classes/Utilities/Emailer.php:57
|
2732 |
msgid "Hello admin,"
|
2733 |
msgstr ""
|
2734 |
|
2735 |
#. translators: 1. User display name, 2. Home URL, 3. Date and time
|
2736 |
+
#: classes/Utilities/Emailer.php:62
|
2737 |
msgid "This is a notification to let you know that the user %1$s has deactivated the plugin WP Activity Log on the website %2$s on %3$s."
|
2738 |
msgstr ""
|
2739 |
|
2741 |
msgid "WP Activity Log can keep a log of changes done on other plugins. Install the relevant extension from the below list to keep a log of changes done on that plugin."
|
2742 |
msgstr ""
|
2743 |
|
2744 |
+
#: classes/Utilities/PluginInstallAndActivate.php:101, classes/Views/SetupWizard.php:829
|
2745 |
msgid "Extension for "
|
2746 |
msgstr ""
|
2747 |
|
2748 |
+
#: classes/Utilities/PluginInstallAndActivate.php:110, classes/Views/SetupWizard.php:838
|
2749 |
msgid "Install Extension"
|
2750 |
msgstr ""
|
2751 |
|
2752 |
+
#: classes/Utilities/PluginInstallAndActivate.php:106, classes/Views/SetupWizard.php:834
|
2753 |
msgid "Extension installed, activate now?"
|
2754 |
msgstr ""
|
2755 |
|
2845 |
msgid "Log Viewer"
|
2846 |
msgstr ""
|
2847 |
|
2848 |
+
#: classes/Views/AuditLog.php:540, classes/Views/Settings.php:326, classes/Views/ToggleAlerts.php:109, extensions/email-notifications/classes/AddNotification.php:227, extensions/email-notifications/classes/AddNotification.php:260, extensions/email-notifications/classes/EditNotification.php:232, extensions/email-notifications/classes/EditNotification.php:240, extensions/email-notifications/classes/EditNotification.php:236, extensions/email-notifications/classes/EditNotification.php:245, extensions/email-notifications/classes/EditNotification.php:273, extensions/external-db/classes/Settings.php:421
|
2849 |
msgid "You do not have sufficient permissions to access this page."
|
2850 |
msgstr ""
|
2851 |
|
2853 |
msgid "Thank you for installing WP Activity Log. Do you want to run the wizard to configure the basic plugin settings?"
|
2854 |
msgstr ""
|
2855 |
|
2856 |
+
#: classes/Views/AuditLog.php:591, classes/Views/Settings.php:527, classes/Views/Settings.php:554, classes/Views/Settings.php:620, classes/Views/Settings.php:678, classes/Views/Settings.php:1122, classes/Views/Settings.php:1383, classes/Views/Settings.php:1424, classes/Views/Settings.php:1455, classes/Views/SetupWizard.php:562
|
2857 |
msgid "Yes"
|
2858 |
msgstr ""
|
2859 |
|
2860 |
+
#: classes/Views/AuditLog.php:592, classes/Views/Settings.php:532, classes/Views/Settings.php:559, classes/Views/Settings.php:650, classes/Views/Settings.php:688, classes/Views/Settings.php:1127, classes/Views/Settings.php:1390, classes/Views/Settings.php:1431, classes/Views/Settings.php:1456, classes/Views/SetupWizard.php:567
|
2861 |
msgid "No"
|
2862 |
msgstr ""
|
2863 |
|
2869 |
msgid "No Results"
|
2870 |
msgstr ""
|
2871 |
|
2872 |
+
#: classes/Views/AuditLog.php:795, classes/Views/AuditLog.php:838, classes/Views/AuditLog.php:1108, classes/Views/AuditLog.php:1170, classes/Views/AuditLog.php:1223, classes/Views/Settings.php:235, classes/Views/Settings.php:1598, classes/Views/Settings.php:1626, classes/Views/Settings.php:1656, classes/Views/SetupWizard.php:96, extensions/search/search-init.php:399, extensions/search/search-init.php:447, extensions/email-notifications/classes/Notifications.php:492, extensions/external-db/classes/Connections.php:753, extensions/external-db/classes/Connections.php:787, extensions/external-db/classes/Connections.php:980, extensions/external-db/classes/Settings.php:312, extensions/external-db/classes/Settings.php:386, extensions/external-db/classes/Settings.php:1049, extensions/external-db/classes/Settings.php:1324, extensions/external-db/classes/Settings.php:1376, extensions/external-db/classes/Settings.php:1409, extensions/user-sessions/classes/Views.php:516, extensions/reports/classes/Views/Main.php:707
|
2873 |
msgid "Nonce verification failed."
|
2874 |
msgstr ""
|
2875 |
|
3014 |
msgid "Configure an unlimited number of connections to different databases and third party services."
|
3015 |
msgstr ""
|
3016 |
|
3017 |
+
#: classes/Views/Help.php:62, classes/Views/Help.php:110
|
3018 |
msgid "Help"
|
3019 |
msgstr ""
|
3020 |
|
3021 |
+
#: classes/Views/Help.php:68, classes/Views/Help.php:238
|
3022 |
+
msgid "Contact Us"
|
3023 |
+
msgstr ""
|
3024 |
+
|
3025 |
+
#: classes/Views/Help.php:74, classes/Views/Help.php:260
|
3026 |
msgid "System Info"
|
3027 |
msgstr ""
|
3028 |
|
3029 |
+
#: classes/Views/Help.php:124
|
3030 |
+
msgid "Help & Contact Us"
|
3031 |
+
msgstr ""
|
3032 |
+
|
3033 |
+
#: classes/Views/Help.php:183
|
3034 |
msgid "Getting Started"
|
3035 |
msgstr ""
|
3036 |
|
3037 |
+
#: classes/Views/Help.php:184
|
3038 |
msgid "Getting started with WP Activity Log is really easy; once the plugin is installed it will automatically keep a log of everything that is happening on your website and you do not need to do anything. Watch the video below for a quick overview of the plugin."
|
3039 |
msgstr ""
|
3040 |
|
3041 |
+
#: classes/Views/Help.php:188
|
3042 |
msgid "Plugin Support"
|
3043 |
msgstr ""
|
3044 |
|
3045 |
+
#: classes/Views/Help.php:190
|
3046 |
msgid "Have you encountered or noticed any issues while using WP Activity Log plugin?"
|
3047 |
msgstr ""
|
3048 |
|
3049 |
+
#: classes/Views/Help.php:191
|
3050 |
msgid "Or you want to report something to us? Click any of the options below to post on the plugin's forum or contact our support directly."
|
3051 |
msgstr ""
|
3052 |
|
3053 |
+
#: classes/Views/Help.php:193
|
3054 |
msgid "Free Support Forum"
|
3055 |
msgstr ""
|
3056 |
|
3057 |
+
#: classes/Views/Help.php:195
|
3058 |
msgid "Free Support Email"
|
3059 |
msgstr ""
|
3060 |
|
3061 |
+
#: classes/Views/Help.php:199
|
3062 |
msgid "Plugin Documentation"
|
3063 |
msgstr ""
|
3064 |
|
3065 |
+
#: classes/Views/Help.php:201
|
3066 |
msgid "For more technical information about the WP Activity Log plugin please visit the plugin’s knowledge base."
|
3067 |
msgstr ""
|
3068 |
|
3069 |
+
#: classes/Views/Help.php:202
|
3070 |
msgid "Refer to the list of WordPress security events for a complete list of Events and IDs that the plugin uses to keep a log of all the changes in the WordPress activity log."
|
3071 |
msgstr ""
|
3072 |
|
3073 |
+
#: classes/Views/Help.php:204
|
3074 |
msgid "Plugin Website"
|
3075 |
msgstr ""
|
3076 |
|
3077 |
+
#: classes/Views/Help.php:206
|
3078 |
msgid "Knowledge Base"
|
3079 |
msgstr ""
|
3080 |
|
3081 |
+
#: classes/Views/Help.php:208
|
3082 |
msgid "List of activity logs event IDs"
|
3083 |
msgstr ""
|
3084 |
|
3085 |
+
#: classes/Views/Help.php:212
|
3086 |
msgid "Rate WP Activity Log"
|
3087 |
msgstr ""
|
3088 |
|
3089 |
+
#: classes/Views/Help.php:214
|
3090 |
msgid "We work really hard to deliver a plugin that enables you to keep a record of all the changes that are happening on your WordPress."
|
3091 |
msgstr ""
|
3092 |
|
3093 |
+
#: classes/Views/Help.php:215
|
3094 |
msgid "It takes thousands of man-hours every year and endless amount of dedication to research, develop and maintain the free edition of WP Activity Log."
|
3095 |
msgstr ""
|
3096 |
|
3097 |
+
#: classes/Views/Help.php:216
|
3098 |
msgid "Therefore if you like what you see, and find WP Activity Log useful we ask you nothing more than to please rate our plugin."
|
3099 |
msgstr ""
|
3100 |
|
3101 |
+
#: classes/Views/Help.php:217
|
3102 |
msgid "We appreciate every star!"
|
3103 |
msgstr ""
|
3104 |
|
3105 |
+
#: classes/Views/Help.php:227
|
3106 |
msgid "Rate Plugin"
|
3107 |
msgstr ""
|
3108 |
|
3109 |
+
#: classes/Views/Help.php:278
|
3110 |
msgid "Enforce strong password policies on WordPress"
|
3111 |
msgstr ""
|
3112 |
|
3113 |
+
#: classes/Views/Help.php:284
|
3114 |
msgid "Automatically identify unauthorized file changes on WordPress"
|
3115 |
msgstr ""
|
3116 |
|
3117 |
+
#: classes/Views/Help.php:290
|
3118 |
msgid "Add an extra layer of security to your login pages with 2FA & require your users to use it."
|
3119 |
msgstr ""
|
3120 |
|
3121 |
+
#: classes/Views/Help.php:296
|
3122 |
msgid "See the child sites activity logs from the central MainWP dashboard"
|
3123 |
msgstr ""
|
3124 |
|
3125 |
+
#: classes/Views/Help.php:302
|
3126 |
msgid "Our other WordPress plugins"
|
3127 |
msgstr ""
|
3128 |
|
3129 |
+
#: classes/Views/Help.php:313
|
3130 |
msgid "LEARN MORE"
|
3131 |
msgstr ""
|
3132 |
|
3298 |
msgid "Unknown settings tab."
|
3299 |
msgstr ""
|
3300 |
|
3301 |
+
#: classes/Views/Settings.php:220, classes/Views/Settings.php:1686, classes/Views/Settings.php:1709, classes/Views/SetupWizard.php:83, extensions/email-notifications/classes/Notifications.php:117, extensions/external-db/classes/Connections.php:738, extensions/external-db/classes/Connections.php:772, extensions/external-db/classes/Connections.php:970, extensions/external-db/classes/Settings.php:282, extensions/external-db/classes/Settings.php:373, extensions/external-db/classes/Settings.php:1036, extensions/external-db/classes/Settings.php:1277, extensions/external-db/classes/Settings.php:1341, extensions/external-db/classes/Settings.php:1393
|
3302 |
msgid "Access Denied."
|
3303 |
msgstr ""
|
3304 |
|
3306 |
msgid "Invalid input."
|
3307 |
msgstr ""
|
3308 |
|
3309 |
+
#: classes/Views/Settings.php:342, classes/Views/ToggleAlerts.php:126, extensions/external-db/classes/Settings.php:432
|
3310 |
msgid "Settings have been saved."
|
3311 |
msgstr ""
|
3312 |
|
3314 |
msgid "Message sent successfully."
|
3315 |
msgstr ""
|
3316 |
|
3317 |
+
#: classes/Views/Settings.php:348, classes/Views/ToggleAlerts.php:132, extensions/external-db/classes/Settings.php:437, extensions/user-sessions/classes/View/Sessions.php:130
|
3318 |
msgid "Error: "
|
3319 |
msgstr ""
|
3320 |
|
3551 |
msgstr ""
|
3552 |
|
3553 |
#: classes/Views/Settings.php:878
|
3554 |
+
msgid "By default all installed plugins are listed in the plugins page. Set this option to Yes remove WP Activity Log from the list of installed plugins for users who are unable to access the WP Activity Log settings."
|
3555 |
msgstr ""
|
3556 |
|
3557 |
#: classes/Views/Settings.php:882
|
3659 |
msgid "Date & Time"
|
3660 |
msgstr ""
|
3661 |
|
3662 |
+
#: classes/Views/Settings.php:1084, extensions/email-notifications/classes/Common.php:1091, extensions/email-notifications/classes/Common.php:1125, extensions/email-notifications/classes/Common.php:1153, extensions/search/classes/Filters/AlertFilter.php:26, extensions/search/classes/Filters/AlertFilter.php:51
|
3663 |
msgid "Event ID"
|
3664 |
msgstr ""
|
3665 |
|
3683 |
msgid "Website File Changes plugin settings"
|
3684 |
msgstr ""
|
3685 |
|
3686 |
+
#: classes/Views/Settings.php:1176, classes/Views/ToggleAlerts.php:521
|
3687 |
msgid "Website File Changes Monitor"
|
3688 |
msgstr ""
|
3689 |
|
3690 |
+
#: classes/Views/Settings.php:1177, classes/Views/ToggleAlerts.php:522
|
3691 |
msgid "To keep a log of file changes please install Website File Changes Monitor, a plugin which is also developed by us."
|
3692 |
msgstr ""
|
3693 |
|
3694 |
+
#: classes/Views/Settings.php:1178, classes/Views/ToggleAlerts.php:523
|
3695 |
msgid "Install plugin now"
|
3696 |
msgstr ""
|
3697 |
|
3698 |
+
#: classes/Views/Settings.php:1178, classes/Views/ToggleAlerts.php:523
|
3699 |
msgid "Learn More"
|
3700 |
msgstr ""
|
3701 |
|
3702 |
+
#: classes/Views/Settings.php:1206
|
3703 |
msgid "By default the plugin keeps a log of all user changes done on your WordPress website. Use the setting below to exclude any objects from the activity log. When an object is excluded from the activity log, any event in which that object is referred will not be logged in the activity log."
|
3704 |
msgstr ""
|
3705 |
|
3706 |
+
#: classes/Views/Settings.php:1210
|
3707 |
msgid "Exclude Users:"
|
3708 |
msgstr ""
|
3709 |
|
3710 |
+
#: classes/Views/Settings.php:1231
|
3711 |
msgid "Exclude Roles:"
|
3712 |
msgstr ""
|
3713 |
|
3714 |
+
#: classes/Views/Settings.php:1252
|
3715 |
msgid "Exclude IP Address(es):"
|
3716 |
msgstr ""
|
3717 |
|
3718 |
+
#: classes/Views/Settings.php:1268
|
3719 |
msgid "You can exclude an individual IP address or a range of IP addresses. To exclude a range use the following format: [first IP]-[last octet of the last IP]. Example: 172.16.180.6-127."
|
3720 |
msgstr ""
|
3721 |
|
3722 |
+
#: classes/Views/Settings.php:1274
|
3723 |
msgid "Exclude Post Type:"
|
3724 |
msgstr ""
|
3725 |
|
3726 |
+
#: classes/Views/Settings.php:1290
|
3727 |
msgid "WordPress has the post and page post types by default though your website might use more post types (custom post types). You can exclude all post types, including the default WordPress ones."
|
3728 |
msgstr ""
|
3729 |
|
3730 |
+
#: classes/Views/Settings.php:1296
|
3731 |
msgid "Exclude Custom Fields:"
|
3732 |
msgstr ""
|
3733 |
|
3734 |
+
#: classes/Views/Settings.php:1312
|
3735 |
msgid "You can use the * wildcard to exclude multiple matching custom fields. For example to exclude all custom fields starting with wp123 enter wp123*"
|
3736 |
msgstr ""
|
3737 |
|
3738 |
+
#: classes/Views/Settings.php:1342
|
3739 |
msgid "These settings are for advanced users."
|
3740 |
msgstr ""
|
3741 |
|
3742 |
+
#: classes/Views/Settings.php:1343
|
3743 |
msgid "If you have any questions <a href=\"https://wpactivitylog.com/contact/?utm_source=plugin&utm_medium=referral&utm_campaign=WSAL&utm_content=settings+pages\" target=\"_blank\">contact us</a>."
|
3744 |
msgstr ""
|
3745 |
|
3746 |
+
#: classes/Views/Settings.php:1346
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3747 |
msgid "Reset plugin settings to default"
|
3748 |
msgstr ""
|
3749 |
|
3750 |
+
#: classes/Views/Settings.php:1347
|
3751 |
msgid "Use this button to <em>factory reset</em> the plugin. This means that all the configured settings will be reset to default and all email notifications, scheduled reports, external database / third party services connections, archiving and mirroring rule will be deleted. NOTE: the activity log data will not be purged. Use the setting below to purge the activity log."
|
3752 |
msgstr ""
|
3753 |
|
3754 |
+
#: classes/Views/Settings.php:1351
|
3755 |
msgid "Reset Settings"
|
3756 |
msgstr ""
|
3757 |
|
3758 |
+
#: classes/Views/Settings.php:1353
|
3759 |
msgid "RESET"
|
3760 |
msgstr ""
|
3761 |
|
3762 |
+
#: classes/Views/Settings.php:1359
|
3763 |
msgid "Purge the WordPress activity log"
|
3764 |
msgstr ""
|
3765 |
|
3766 |
+
#: classes/Views/Settings.php:1360
|
3767 |
msgid "Click the Purge button below to delete all the data from the WordPress activity log and start afresh."
|
3768 |
msgstr ""
|
3769 |
|
3770 |
+
#: classes/Views/Settings.php:1364
|
3771 |
msgid "Purge Activity Log"
|
3772 |
msgstr ""
|
3773 |
|
3774 |
+
#: classes/Views/Settings.php:1366
|
3775 |
msgid "PURGE"
|
3776 |
msgstr ""
|
3777 |
|
3778 |
+
#: classes/Views/Settings.php:1373
|
3779 |
msgid "MainWP Child Site Stealth Mode"
|
3780 |
msgstr ""
|
3781 |
|
3782 |
+
#: classes/Views/Settings.php:1374
|
3783 |
msgid "This option is enabled automatically when the plugin detects the MainWP Child plugin on the site. When this setting is enabled plugin access is restricted to the administrator who installs the plugin, the plugin is not shown in the list of installed plugins and no admin notifications are shown. Disable this option to change the plugin to the default setup."
|
3784 |
msgstr ""
|
3785 |
|
3786 |
+
#: classes/Views/Settings.php:1378
|
3787 |
msgid "Enable MainWP Child Site Stealth Mode"
|
3788 |
msgstr ""
|
3789 |
|
3790 |
+
#: classes/Views/Settings.php:1398
|
3791 |
msgid "Admin blocking plugins support"
|
3792 |
msgstr ""
|
3793 |
|
3794 |
+
#: classes/Views/Settings.php:1403
|
3795 |
msgid "Enable early plugin loading on sites that use admin blocking plugins"
|
3796 |
msgstr ""
|
3797 |
|
3798 |
+
#: classes/Views/Settings.php:1412
|
3799 |
msgid "Do you want to delete the plugin data from the database upon uninstall?"
|
3800 |
msgstr ""
|
3801 |
|
3802 |
+
#: classes/Views/Settings.php:1413
|
3803 |
msgid "The plugin saves the activity log data and settings in the WordPress database. By default upon uninstalling the plugin the data is kept in the database so if it is installed again, you can still access the data. If the data is deleted it is not possible to recover it so you won't be able to access it again even when you reinstall the plugin."
|
3804 |
msgstr ""
|
3805 |
|
3806 |
+
#: classes/Views/Settings.php:1417
|
3807 |
msgid "Remove Data on Uninstall"
|
3808 |
msgstr ""
|
3809 |
|
3810 |
+
#: classes/Views/Settings.php:1442
|
3811 |
msgid "Are you sure you want to reset all the plugin settings to default? This action cannot be undone."
|
3812 |
msgstr ""
|
3813 |
|
3814 |
+
#: classes/Views/Settings.php:1452
|
3815 |
msgid "Are you sure you want to purge all the activity log data?"
|
3816 |
msgstr ""
|
3817 |
|
3818 |
+
#: classes/Views/Settings.php:1476
|
3819 |
msgid "MainWP Child plugin is not active on this website."
|
3820 |
msgstr ""
|
3821 |
|
3822 |
+
#: classes/Views/Settings.php:1557
|
|
|
|
|
|
|
|
|
3823 |
msgid "The specified value is not a valid URL!"
|
3824 |
msgstr ""
|
3825 |
|
3826 |
+
#: classes/Views/Settings.php:1558
|
3827 |
msgid "The specified value is not a valid post type!"
|
3828 |
msgstr ""
|
3829 |
|
3830 |
+
#: classes/Views/Settings.php:1559
|
3831 |
msgid "The specified value is not a valid IP address!"
|
3832 |
msgstr ""
|
3833 |
|
3834 |
+
#: classes/Views/Settings.php:1560
|
3835 |
msgid "The specified value is not a user nor a role!"
|
3836 |
msgstr ""
|
3837 |
|
3838 |
+
#: classes/Views/Settings.php:1561
|
3839 |
msgid "Filename cannot be added because it contains invalid characters."
|
3840 |
msgstr ""
|
3841 |
|
3842 |
+
#: classes/Views/Settings.php:1562
|
3843 |
msgid "File extension cannot be added because it contains invalid characters."
|
3844 |
msgstr ""
|
3845 |
|
3846 |
+
#: classes/Views/Settings.php:1563
|
3847 |
msgid "Directory cannot be added because it contains invalid characters."
|
3848 |
msgstr ""
|
3849 |
|
3850 |
+
#: classes/Views/Settings.php:1564
|
3851 |
msgid "Please save any changes before switching tabs."
|
3852 |
msgstr ""
|
3853 |
|
3854 |
+
#: classes/Views/Settings.php:1692, classes/Views/Settings.php:1715
|
3855 |
msgid "Nonce Verification Failed."
|
3856 |
msgstr ""
|
3857 |
|
3858 |
+
#: classes/Views/Settings.php:1700
|
3859 |
msgid "Plugin settings have been reset."
|
3860 |
msgstr ""
|
3861 |
|
3862 |
+
#: classes/Views/Settings.php:1726
|
3863 |
msgid "Reset query failed."
|
3864 |
msgstr ""
|
3865 |
|
3866 |
+
#: classes/Views/Settings.php:1724
|
3867 |
msgid "Tables has been reset."
|
3868 |
msgstr ""
|
3869 |
|
3870 |
+
#: classes/Views/Settings.php:1739
|
3871 |
msgid "Activity log retention"
|
3872 |
msgstr ""
|
3873 |
|
3874 |
+
#: classes/Views/Settings.php:1745
|
3875 |
msgid "Keep all data"
|
3876 |
msgstr ""
|
3877 |
|
3878 |
+
#: classes/Views/Settings.php:1772
|
3879 |
msgid "Delete events older than"
|
3880 |
msgstr ""
|
3881 |
|
3882 |
+
#: classes/Views/Settings.php:1780
|
3883 |
msgid "Months"
|
3884 |
msgstr ""
|
3885 |
|
3886 |
+
#: classes/Views/Settings.php:1781
|
3887 |
msgid "Years"
|
3888 |
msgstr ""
|
3889 |
|
3890 |
+
#: classes/Views/Settings.php:1789
|
3891 |
msgid "The next scheduled purging of activity log data that is older than "
|
3892 |
msgstr ""
|
3893 |
|
3894 |
+
#: classes/Views/Settings.php:1796
|
3895 |
msgid "You can run the purging process now by clicking the button below."
|
3896 |
msgstr ""
|
3897 |
|
3898 |
+
#: classes/Views/Settings.php:1800
|
3899 |
msgid "Purge Old Data"
|
3900 |
msgstr ""
|
3901 |
|
4068 |
msgid "Enable/Disable Events"
|
4069 |
msgstr ""
|
4070 |
|
4071 |
+
#: classes/Views/ToggleAlerts.php:158
|
|
|
|
|
|
|
|
|
4072 |
msgid "Basic"
|
4073 |
msgstr ""
|
4074 |
|
4075 |
+
#: classes/Views/ToggleAlerts.php:159
|
4076 |
msgid "Geek"
|
4077 |
msgstr ""
|
4078 |
|
4079 |
+
#: classes/Views/ToggleAlerts.php:160
|
4080 |
msgid "Custom"
|
4081 |
msgstr ""
|
4082 |
|
4083 |
+
#: classes/Views/ToggleAlerts.php:179
|
4084 |
+
msgid "Log Level: "
|
4085 |
+
msgstr ""
|
4086 |
+
|
4087 |
+
#: classes/Views/ToggleAlerts.php:186
|
4088 |
msgid "Use the Log level drop down menu above to use one of our preset log levels. Alternatively you can enable or disable any of the individual events from the below tabs. Refer to <a href=\"https://wpactivitylog.com/support/kb/list-wordpress-activity-log-event-ids/\" target=\"_blank\">the complete list of WordPress activity log event IDs</a> for reference on all the events the plugin can keep a log of."
|
4089 |
msgstr ""
|
4090 |
|
4091 |
+
#: classes/Views/ToggleAlerts.php:196
|
4092 |
msgid "Third party plugins"
|
4093 |
msgstr ""
|
4094 |
|
4095 |
+
#: classes/Views/ToggleAlerts.php:296
|
4096 |
msgid "Code"
|
4097 |
msgstr ""
|
4098 |
|
4099 |
+
#: classes/Views/ToggleAlerts.php:339
|
4100 |
msgid "Logins & Logouts"
|
4101 |
msgstr ""
|
4102 |
|
4103 |
+
#: classes/Views/ToggleAlerts.php:332
|
4104 |
msgid "Your website is a single site so the multisite events have been disabled."
|
4105 |
msgstr ""
|
4106 |
|
4107 |
+
#: classes/Views/ToggleAlerts.php:312
|
4108 |
msgid "The plugin WooCommerce is not installed on your website so these events have been disabled."
|
4109 |
msgstr ""
|
4110 |
|
4111 |
+
#: classes/Views/ToggleAlerts.php:319
|
4112 |
msgid "Products"
|
4113 |
msgstr ""
|
4114 |
|
4115 |
+
#: classes/Views/ToggleAlerts.php:325
|
4116 |
msgid "Post Changes"
|
4117 |
msgstr ""
|
4118 |
|
4119 |
+
#: classes/Views/ToggleAlerts.php:305
|
4120 |
msgid "<strong>Note:</strong> Post refers to any type of content, i.e. blog post, page or a post with a custom post type."
|
4121 |
msgstr ""
|
4122 |
|
4123 |
+
#: classes/Views/ToggleAlerts.php:362
|
4124 |
msgid "Not Implemented"
|
4125 |
msgstr ""
|
4126 |
|
4127 |
+
#: classes/Views/ToggleAlerts.php:365
|
4128 |
msgid "Not Available"
|
4129 |
msgstr ""
|
4130 |
|
4131 |
+
#: classes/Views/ToggleAlerts.php:380
|
4132 |
+
msgid "User Logins/Logouts"
|
4133 |
+
msgstr ""
|
4134 |
+
|
4135 |
+
#: classes/Views/ToggleAlerts.php:383
|
4136 |
msgid "User Sessions"
|
4137 |
msgstr ""
|
4138 |
|
4139 |
+
#: classes/Views/ToggleAlerts.php:386
|
4140 |
msgid "Files"
|
4141 |
msgstr ""
|
4142 |
|
4143 |
+
#: classes/Views/ToggleAlerts.php:389
|
4144 |
msgid "Post Settings"
|
4145 |
msgstr ""
|
4146 |
|
4147 |
+
#: classes/Views/ToggleAlerts.php:459
|
|
|
|
|
|
|
|
|
4148 |
msgid "Keep a log when a visitor registers a user on the website. Only enable this if you allow visitors to register as users on your website. User registration is disabled by default in WordPress."
|
4149 |
msgstr ""
|
4150 |
|
4151 |
+
#: classes/Views/ToggleAlerts.php:473, classes/Views/ToggleAlerts.php:486
|
4152 |
msgid "Number of login attempts to log. Enter 0 to log all failed login attempts. (By default the plugin only logs up to 10 failed login because the process can be very resource intensive in case of a brute force attack)"
|
4153 |
msgstr ""
|
4154 |
|
4155 |
+
#: classes/Views/ToggleAlerts.php:501
|
4156 |
+
msgid "Keep a log of user log in activity on custom login forms (such as WooCommerce & membership plugins)"
|
4157 |
+
msgstr ""
|
4158 |
+
|
4159 |
+
#: classes/Views/ToggleAlerts.php:547
|
4160 |
msgid "Save Changes"
|
4161 |
msgstr ""
|
4162 |
|
4163 |
+
#: classes/Views/ToggleAlerts.php:554
|
4164 |
msgid "Log Level Updated"
|
4165 |
msgstr ""
|
4166 |
|
4167 |
#. translators: Alerts log level.
|
4168 |
+
#: classes/Views/ToggleAlerts.php:558
|
4169 |
msgid "The %s log level has been successfully loaded and applied."
|
4170 |
msgstr ""
|
4171 |
|
4172 |
+
#: classes/Views/ToggleAlerts.php:562, extensions/email-notifications/classes/Notifications.php:292, extensions/email-notifications/classes/Notifications.php:882, extensions/email-notifications/classes/Notifications.php:1926
|
4173 |
msgid "OK"
|
4174 |
msgstr ""
|
4175 |
|
4176 |
+
#: classes/Views/ToggleAlerts.php:577
|
4177 |
msgid "Enable File Integrity Scanner"
|
4178 |
msgstr ""
|
4179 |
|
4180 |
+
#: classes/Views/ToggleAlerts.php:579
|
4181 |
msgid "The file integrity scanner is switched off. To enable this event it has to be switched on."
|
4182 |
msgstr ""
|
4183 |
|
4184 |
+
#: classes/Views/ToggleAlerts.php:583
|
4185 |
msgid "SWITCH ON"
|
4186 |
msgstr ""
|
4187 |
|
4188 |
+
#: classes/Views/ToggleAlerts.php:584
|
4189 |
msgid "DISABLE EVENT"
|
4190 |
msgstr ""
|
4191 |
|
4193 |
msgid "An identical search filter already exists."
|
4194 |
msgstr ""
|
4195 |
|
4196 |
+
#: extensions/search/search-init.php:218, extensions/search/search-init.php:292, extensions/user-sessions/classes/View/Sessions.php:313
|
4197 |
msgid "Search"
|
4198 |
msgstr ""
|
4199 |
|
4200 |
+
#: extensions/search/search-init.php:293
|
4201 |
msgid "- Use the free-text search to search for text in the event's message.<br>- To search for a particular Event ID, user, IP address, Post ID or Type or use date ranges, use the filters."
|
4202 |
msgstr ""
|
4203 |
|
4204 |
+
#: extensions/search/search-init.php:294
|
4205 |
msgid "Clear Search Results"
|
4206 |
msgstr ""
|
4207 |
|
4208 |
+
#: extensions/search/search-init.php:295
|
4209 |
msgid "Nothing found!"
|
4210 |
msgstr ""
|
4211 |
|
4212 |
+
#: extensions/search/search-init.php:296
|
4213 |
msgid "Load"
|
4214 |
msgstr ""
|
4215 |
|
4216 |
+
#: extensions/search/search-init.php:297
|
4217 |
msgid "Loading..."
|
4218 |
msgstr ""
|
4219 |
|
4220 |
+
#: extensions/search/search-init.php:298
|
4221 |
msgid "Load & Run"
|
4222 |
msgstr ""
|
4223 |
|
4224 |
+
#: extensions/search/search-init.php:299, extensions/email-notifications/classes/NotificationBuilder.php:76, extensions/email-notifications/classes/Notifications.php:1836, extensions/email-notifications/classes/Notifications.php:1899, extensions/email-notifications/classes/Notifications.php:1914, extensions/external-db/classes/Connections.php:144, extensions/external-db/classes/Mirroring.php:204
|
4225 |
msgid "Delete"
|
4226 |
msgstr ""
|
4227 |
|
4228 |
+
#: extensions/search/search-init.php:300, extensions/external-db/classes/Connections.php:556, extensions/external-db/classes/Mirroring.php:589
|
4229 |
msgid "Deleting..."
|
4230 |
msgstr ""
|
4231 |
|
4232 |
+
#: extensions/search/search-init.php:302, extensions/search/classes/FilterManager.php:383
|
4233 |
msgid "Load Search & Filters"
|
4234 |
msgstr ""
|
4235 |
|
4236 |
+
#: extensions/search/search-init.php:303
|
4237 |
msgid "* Invalid IP"
|
4238 |
msgstr ""
|
4239 |
|
4240 |
+
#: extensions/search/search-init.php:304, extensions/search/classes/FilterManager.php:386
|
4241 |
msgid "Remove"
|
4242 |
msgstr ""
|
4243 |
|
4244 |
+
#: extensions/search/search-init.php:305
|
4245 |
msgid "Close Filters"
|
4246 |
msgstr ""
|
4247 |
|
4248 |
+
#: extensions/search/search-init.php:306, extensions/search/classes/FilterManager.php:411
|
4249 |
msgid "Filter View"
|
4250 |
msgstr ""
|
4251 |
|
4252 |
#. translators: both placeholders are html formatting strings for itallics
|
4253 |
+
#: extensions/search/search-init.php:309
|
4254 |
msgid "Click the %1$sSearch%2$s button to apply the filters. Click the %1$sClear Search Results%2$s button to reset the search and filters."
|
4255 |
msgstr ""
|
4256 |
|
4257 |
+
#: extensions/search/search-init.php:355
|
4258 |
msgid "Widget could not be found."
|
4259 |
msgstr ""
|
4260 |
|
4261 |
+
#: extensions/search/search-init.php:426, extensions/search/search-init.php:496
|
4262 |
msgid "No saved search found."
|
4263 |
msgstr ""
|
4264 |
|
4265 |
+
#: extensions/search/search-init.php:418
|
4266 |
msgid "Saved searches found."
|
4267 |
msgstr ""
|
4268 |
|
4269 |
+
#: extensions/search/search-init.php:460
|
4270 |
msgid "Search name not specified."
|
4271 |
msgstr ""
|
4272 |
|
4273 |
+
#: extensions/search/search-init.php:487
|
4274 |
msgid "Saved search not found."
|
4275 |
msgstr ""
|
4276 |
|
4277 |
+
#: extensions/search/search-init.php:479
|
4278 |
msgid "Saved search deleted."
|
4279 |
msgstr ""
|
4280 |
|
4302 |
msgid "Add notification"
|
4303 |
msgstr ""
|
4304 |
|
4305 |
+
#: extensions/email-notifications/classes/AddNotification.php:217, extensions/email-notifications/classes/EditNotification.php:222
|
4306 |
msgid "Back"
|
4307 |
msgstr ""
|
4308 |
|
4309 |
+
#: extensions/email-notifications/classes/AddNotification.php:233
|
4310 |
msgid "You have reached the maximum number of notifications you can add."
|
4311 |
msgstr ""
|
4312 |
|
4319 |
#. translators: Twilio settings hyperlink.
|
4320 |
#. translators: Twilio settings hyperlink.
|
4321 |
#. translators: Twilio settings hyperlink.
|
4322 |
+
#: extensions/email-notifications/classes/AddNotification.php:278, extensions/email-notifications/classes/EditNotification.php:330, extensions/email-notifications/classes/Notifications.php:816, extensions/email-notifications/classes/Notifications.php:930, extensions/email-notifications/classes/Notifications.php:1251, extensions/email-notifications/classes/Notifications.php:1415, extensions/email-notifications/classes/Notifications.php:1509, extensions/email-notifications/classes/Notifications.php:1675, extensions/email-notifications/classes/SMSProviderSettings.php:237
|
4323 |
msgid "Click %s to configure Twilio integration for SMS notifications."
|
4324 |
msgstr ""
|
4325 |
|
4326 |
+
#: extensions/email-notifications/classes/AddNotification.php:278, extensions/email-notifications/classes/EditNotification.php:330, extensions/email-notifications/classes/Notifications.php:816, extensions/email-notifications/classes/Notifications.php:930, extensions/email-notifications/classes/Notifications.php:1251, extensions/email-notifications/classes/Notifications.php:1415, extensions/email-notifications/classes/Notifications.php:1509, extensions/email-notifications/classes/Notifications.php:1675, extensions/email-notifications/classes/SMSProviderSettings.php:237
|
4327 |
msgid "here"
|
4328 |
msgstr ""
|
4329 |
|
4330 |
#. translators: Trigger groups documentation hyperlink
|
4331 |
#. translators: Trigger groups documentation hyperlink
|
4332 |
+
#: extensions/email-notifications/classes/AddNotification.php:286, extensions/email-notifications/classes/EditNotification.php:338
|
4333 |
msgid "Trigger groups documentation"
|
4334 |
msgstr ""
|
4335 |
|
4336 |
+
#: extensions/email-notifications/classes/AddNotification.php:291, extensions/email-notifications/classes/EditNotification.php:343
|
4337 |
msgid "Triggers"
|
4338 |
msgstr ""
|
4339 |
|
4340 |
+
#: extensions/email-notifications/classes/AddNotification.php:292, extensions/email-notifications/classes/EditNotification.php:344
|
4341 |
msgid "Add Trigger"
|
4342 |
msgstr ""
|
4343 |
|
4344 |
+
#: extensions/email-notifications/classes/AddNotification.php:306, extensions/email-notifications/classes/EditNotification.php:387
|
4345 |
msgid "Use default email template"
|
4346 |
msgstr ""
|
4347 |
|
4348 |
+
#: extensions/email-notifications/classes/AddNotification.php:311, extensions/email-notifications/classes/EditNotification.php:396
|
4349 |
msgid "Use event specific email template"
|
4350 |
msgstr ""
|
4351 |
|
4352 |
+
#: extensions/email-notifications/classes/AddNotification.php:336, extensions/email-notifications/classes/EditNotification.php:429, extensions/external-db/classes/Connections.php:95, extensions/external-db/classes/Mirroring.php:123
|
4353 |
msgid "Name"
|
4354 |
msgstr ""
|
4355 |
|
4356 |
+
#: extensions/email-notifications/classes/AddNotification.php:337, extensions/email-notifications/classes/EditNotification.php:430, extensions/email-notifications/classes/Notifications.php:1849, extensions/email-notifications/classes/Notifications.php:1860
|
4357 |
msgid "Title"
|
4358 |
msgstr ""
|
4359 |
|
4360 |
+
#: extensions/email-notifications/classes/AddNotification.php:345, extensions/email-notifications/classes/EditNotification.php:438, extensions/email-notifications/classes/Notifications.php:947, extensions/email-notifications/classes/Notifications.php:970, extensions/email-notifications/classes/Notifications.php:987, extensions/email-notifications/classes/Notifications.php:1011, extensions/email-notifications/classes/Notifications.php:1033, extensions/email-notifications/classes/Notifications.php:1046, extensions/email-notifications/classes/Notifications.php:1059, extensions/email-notifications/classes/Notifications.php:1072, extensions/email-notifications/classes/Notifications.php:1085, extensions/email-notifications/classes/Notifications.php:1098, extensions/email-notifications/classes/Notifications.php:1122, extensions/email-notifications/classes/Notifications.php:1137, extensions/email-notifications/classes/Notifications.php:1152, extensions/email-notifications/classes/Notifications.php:1167, extensions/email-notifications/classes/Notifications.php:1182, extensions/email-notifications/classes/Notifications.php:1204, extensions/email-notifications/classes/Notifications.php:1269, extensions/email-notifications/classes/Notifications.php:1284, extensions/email-notifications/classes/Notifications.php:1299, extensions/email-notifications/classes/Notifications.php:1323, extensions/email-notifications/classes/Notifications.php:1338, extensions/email-notifications/classes/Notifications.php:1353, extensions/email-notifications/classes/Notifications.php:1368, extensions/email-notifications/classes/Notifications.php:1430, extensions/email-notifications/classes/Notifications.php:1445, extensions/email-notifications/classes/Notifications.php:1460, extensions/email-notifications/classes/Notifications.php:1524, extensions/email-notifications/classes/Notifications.php:1541, extensions/email-notifications/classes/Notifications.php:1558, extensions/email-notifications/classes/Notifications.php:1575, extensions/email-notifications/classes/Notifications.php:1592, extensions/email-notifications/classes/Notifications.php:1609, extensions/email-notifications/classes/Notifications.php:1626, extensions/email-notifications/classes/Notifications.php:1692, extensions/email-notifications/classes/Notifications.php:1709, extensions/email-notifications/classes/Notifications.php:1726, extensions/email-notifications/classes/Notifications.php:1743, extensions/user-sessions/classes/View/Sessions.php:295
|
4361 |
msgid "Email"
|
4362 |
msgstr ""
|
4363 |
|
4364 |
+
#: extensions/email-notifications/classes/AddNotification.php:351, extensions/email-notifications/classes/EditNotification.php:444, extensions/email-notifications/classes/Notifications.php:973, extensions/email-notifications/classes/Notifications.php:990, extensions/email-notifications/classes/Notifications.php:1014, extensions/email-notifications/classes/Notifications.php:1036, extensions/email-notifications/classes/Notifications.php:1049, extensions/email-notifications/classes/Notifications.php:1062, extensions/email-notifications/classes/Notifications.php:1075, extensions/email-notifications/classes/Notifications.php:1088, extensions/email-notifications/classes/Notifications.php:1101, extensions/email-notifications/classes/Notifications.php:1125, extensions/email-notifications/classes/Notifications.php:1140, extensions/email-notifications/classes/Notifications.php:1155, extensions/email-notifications/classes/Notifications.php:1170, extensions/email-notifications/classes/Notifications.php:1185, extensions/email-notifications/classes/Notifications.php:1207, extensions/email-notifications/classes/Notifications.php:1272, extensions/email-notifications/classes/Notifications.php:1287, extensions/email-notifications/classes/Notifications.php:1302, extensions/email-notifications/classes/Notifications.php:1326, extensions/email-notifications/classes/Notifications.php:1341, extensions/email-notifications/classes/Notifications.php:1356, extensions/email-notifications/classes/Notifications.php:1371, extensions/email-notifications/classes/Notifications.php:1433, extensions/email-notifications/classes/Notifications.php:1448, extensions/email-notifications/classes/Notifications.php:1463, extensions/email-notifications/classes/Notifications.php:1527, extensions/email-notifications/classes/Notifications.php:1544, extensions/email-notifications/classes/Notifications.php:1561, extensions/email-notifications/classes/Notifications.php:1578, extensions/email-notifications/classes/Notifications.php:1595, extensions/email-notifications/classes/Notifications.php:1612, extensions/email-notifications/classes/Notifications.php:1629, extensions/email-notifications/classes/Notifications.php:1695, extensions/email-notifications/classes/Notifications.php:1712, extensions/email-notifications/classes/Notifications.php:1729, extensions/email-notifications/classes/Notifications.php:1746
|
4365 |
msgid "Mobile Number"
|
4366 |
msgstr ""
|
4367 |
|
4368 |
+
#: extensions/email-notifications/classes/Common.php:359, extensions/email-notifications/classes/Common.php:424
|
4369 |
msgid "The form is not valid. Please reload the page and try again."
|
4370 |
msgstr ""
|
4371 |
|
4372 |
#. translators: Event type
|
4373 |
+
#: extensions/email-notifications/classes/Common.php:561, extensions/email-notifications/classes/Common.php:551, extensions/email-notifications/classes/Common.php:537, extensions/email-notifications/classes/Common.php:524, extensions/email-notifications/classes/Common.php:501, extensions/email-notifications/classes/Common.php:481, extensions/email-notifications/classes/Common.php:402
|
4374 |
msgid "%s is not valid"
|
4375 |
msgstr ""
|
4376 |
|
4377 |
+
#: extensions/email-notifications/classes/Common.php:567
|
4378 |
msgid "Selected TYPE is not valid."
|
4379 |
msgstr ""
|
4380 |
|
4381 |
+
#: extensions/email-notifications/classes/Common.php:557
|
4382 |
msgid "Selected OBJECT is not valid."
|
4383 |
msgstr ""
|
4384 |
|
4385 |
+
#: extensions/email-notifications/classes/Common.php:546
|
4386 |
msgid "Selected POST STATUS is not valid."
|
4387 |
msgstr ""
|
4388 |
|
4389 |
+
#: extensions/email-notifications/classes/Common.php:533
|
4390 |
msgid "Selected POST TYPE is not valid."
|
4391 |
msgstr ""
|
4392 |
|
4393 |
+
#: extensions/email-notifications/classes/Common.php:512
|
4394 |
msgid "The enviroment is not multisite."
|
4395 |
msgstr ""
|
4396 |
|
4397 |
+
#: extensions/email-notifications/classes/Common.php:518, extensions/email-notifications/classes/Common.php:495
|
4398 |
msgid "%s was not found"
|
4399 |
msgstr ""
|
4400 |
|
4401 |
+
#: extensions/email-notifications/classes/Common.php:468, extensions/email-notifications/classes/Common.php:474
|
4402 |
msgid "TIME is not valid."
|
4403 |
msgstr ""
|
4404 |
|
4405 |
+
#: extensions/email-notifications/classes/Common.php:459
|
4406 |
msgid "DATE is not valid."
|
4407 |
msgstr ""
|
4408 |
|
4409 |
+
#: extensions/email-notifications/classes/Common.php:418
|
4410 |
msgid "The SOURCE IP is not valid. Maximum of 15 characters allowed."
|
4411 |
msgstr ""
|
4412 |
|
4413 |
+
#: extensions/email-notifications/classes/Common.php:433
|
4414 |
msgid "The SOURCE IP is not valid."
|
4415 |
msgstr ""
|
4416 |
|
4417 |
+
#: extensions/email-notifications/classes/Common.php:442
|
4418 |
msgid "The SOURCE IP fragment is not valid."
|
4419 |
msgstr ""
|
4420 |
|
4421 |
+
#: extensions/email-notifications/classes/Common.php:411
|
4422 |
msgid "Selected USER ROLE is not valid."
|
4423 |
msgstr ""
|
4424 |
|
4425 |
+
#: extensions/email-notifications/classes/Common.php:392
|
4426 |
msgid "The USERNAME is not valid. Maximum of 50 characters allowed."
|
4427 |
msgstr ""
|
4428 |
|
4429 |
+
#: extensions/email-notifications/classes/Common.php:398
|
4430 |
msgid "The USERNAME does not exist."
|
4431 |
msgstr ""
|
4432 |
|
4433 |
+
#: extensions/email-notifications/classes/Common.php:370, extensions/email-notifications/classes/Common.php:385
|
4434 |
msgid "The EVENT ID is not valid."
|
4435 |
msgstr ""
|
4436 |
|
4437 |
+
#: extensions/email-notifications/classes/Common.php:376
|
4438 |
msgid "Internal Error. Please reload the page and try again."
|
4439 |
msgstr ""
|
4440 |
|
4441 |
+
#: extensions/email-notifications/classes/Common.php:792, extensions/email-notifications/classes/Common.php:820, extensions/email-notifications/classes/Common.php:822
|
4442 |
msgid "Title is required."
|
4443 |
msgstr ""
|
4444 |
|
4445 |
+
#: extensions/email-notifications/classes/Common.php:829
|
4446 |
msgid "Title is not valid."
|
4447 |
msgstr ""
|
4448 |
|
4449 |
+
#: extensions/email-notifications/classes/Common.php:839
|
4450 |
msgid "Please add at least one condition."
|
4451 |
msgstr ""
|
4452 |
|
4453 |
+
#: extensions/email-notifications/classes/Common.php:887, extensions/email-notifications/classes/Common.php:893, extensions/email-notifications/classes/Common.php:898
|
4454 |
msgid "The form is not valid. Please refresh the page and try again."
|
4455 |
msgstr ""
|
4456 |
|
4457 |
+
#: extensions/email-notifications/classes/Common.php:907
|
4458 |
msgid "A trigger's condition must not be longer than 50 characters."
|
4459 |
msgstr ""
|
4460 |
|
4461 |
+
#: extensions/email-notifications/classes/Common.php:943
|
4462 |
msgid "Email or Username is not valid."
|
4463 |
msgstr ""
|
4464 |
|
4465 |
+
#: extensions/email-notifications/classes/Common.php:950
|
4466 |
msgid "Mobile number is not valid."
|
4467 |
msgstr ""
|
4468 |
|
4469 |
+
#: extensions/email-notifications/classes/Common.php:937
|
4470 |
msgid "Email or Username is required."
|
4471 |
msgstr ""
|
4472 |
|
4473 |
+
#: extensions/email-notifications/classes/Common.php:938
|
4474 |
msgid "Mobile number is required."
|
4475 |
msgstr ""
|
4476 |
|
4477 |
+
#: extensions/email-notifications/classes/Common.php:1002, extensions/email-notifications/classes/Notifications.php:582
|
4478 |
msgid "Notification could not be saved."
|
4479 |
msgstr ""
|
4480 |
|
4481 |
+
#: extensions/email-notifications/classes/Common.php:1009, extensions/email-notifications/classes/Notifications.php:641
|
4482 |
msgid "Notification successfully saved."
|
4483 |
msgstr ""
|
4484 |
|
4485 |
+
#: extensions/email-notifications/classes/Common.php:1087, extensions/email-notifications/classes/Common.php:1150
|
4486 |
msgid "Notification {title} on website {site} triggered"
|
4487 |
msgstr ""
|
4488 |
|
4489 |
+
#: extensions/email-notifications/classes/Common.php:1088, extensions/email-notifications/classes/Common.php:1151
|
4490 |
msgid "Notification <strong>{title}</strong> was triggered. Below are the notification details:"
|
4491 |
msgstr ""
|
4492 |
|
4493 |
+
#: extensions/email-notifications/classes/Common.php:1090
|
4494 |
msgid "Website"
|
4495 |
msgstr ""
|
4496 |
|
4497 |
+
#: extensions/email-notifications/classes/Common.php:1092, extensions/email-notifications/classes/Common.php:1154, extensions/search/classes/FilterManager.php:474, extensions/user-sessions/classes/View/Sessions.php:140, extensions/user-sessions/classes/View/Sessions.php:294
|
4498 |
msgid "Username"
|
4499 |
msgstr ""
|
4500 |
|
4501 |
+
#: extensions/email-notifications/classes/Common.php:1093
|
4502 |
msgid "User role"
|
4503 |
msgstr ""
|
4504 |
|
4505 |
+
#: extensions/email-notifications/classes/Common.php:1094
|
4506 |
msgid "IP address"
|
4507 |
msgstr ""
|
4508 |
|
4509 |
+
#: extensions/email-notifications/classes/Common.php:1097
|
4510 |
msgid "Event Message"
|
4511 |
msgstr ""
|
4512 |
|
4513 |
+
#: extensions/email-notifications/classes/Common.php:1098
|
4514 |
msgid "Event generated on"
|
4515 |
msgstr ""
|
4516 |
|
4517 |
+
#: extensions/email-notifications/classes/Common.php:1100
|
4518 |
msgid "These email notifications are sent with <a href=\"http://wpactivitylog.com\">WP Activity Log</a>, the most comprehensive WordPress activity log plugin solution."
|
4519 |
msgstr ""
|
4520 |
|
4521 |
+
#: extensions/email-notifications/classes/Common.php:1123, extensions/email-notifications/classes/Common.php:1183
|
4522 |
msgid "User/Role"
|
4523 |
msgstr ""
|
4524 |
|
4525 |
+
#: extensions/email-notifications/classes/Common.php:1155, extensions/search/classes/FilterManager.php:486, extensions/search/classes/Filters/userrolefilter.php:49, extensions/search/classes/Filters/userrolefilter.php:87, extensions/user-sessions/classes/View/Sessions.php:299
|
4526 |
msgid "User Role"
|
4527 |
msgstr ""
|
4528 |
|
4529 |
+
#: extensions/email-notifications/classes/Common.php:1157
|
4530 |
msgid "Generated On"
|
4531 |
msgstr ""
|
4532 |
|
4533 |
+
#: extensions/email-notifications/classes/Common.php:1159
|
4534 |
msgid "Monitoring of WordPress and Email Notifications provided by <a href=\"http://wpactivitylog.com\">WP Activity Log, WordPress most comprehensive audit trail plugin</a>."
|
4535 |
msgstr ""
|
4536 |
|
4537 |
+
#: extensions/email-notifications/classes/Common.php:1184
|
4538 |
msgid "Event"
|
4539 |
msgstr ""
|
4540 |
|
4541 |
+
#: extensions/email-notifications/classes/Common.php:1199
|
4542 |
msgid "Subject "
|
4543 |
msgstr ""
|
4544 |
|
4545 |
+
#: extensions/email-notifications/classes/Common.php:1208
|
4546 |
msgid "Body "
|
4547 |
msgstr ""
|
4548 |
|
4549 |
+
#: extensions/email-notifications/classes/Common.php:1211
|
4550 |
msgid "HTML is accepted. Available template tags:"
|
4551 |
msgstr ""
|
4552 |
|
4585 |
msgid "Edit Notification"
|
4586 |
msgstr ""
|
4587 |
|
4588 |
+
#: extensions/email-notifications/classes/EditNotification.php:221, extensions/email-notifications/classes/Notifications.php:1798
|
4589 |
msgid "Add New"
|
4590 |
msgstr ""
|
4591 |
|
4592 |
+
#: extensions/email-notifications/classes/EditNotification.php:252
|
4593 |
msgid "You do not have sufficient permissions to access this page. - INVALID NOTIFICATION ID"
|
4594 |
msgstr ""
|
4595 |
|
4596 |
+
#: extensions/email-notifications/classes/EditNotification.php:448
|
4597 |
msgid "Specify the email address or WordPress usernames who should receive the notification once the trigger is matched. To specify multiple email addresses or usernames separate them with a comma (,)."
|
4598 |
msgstr ""
|
4599 |
|
4932 |
msgid "Search Notifications"
|
4933 |
msgstr ""
|
4934 |
|
4935 |
+
#: extensions/email-notifications/classes/Notifications.php:1811, extensions/reports/classes/HtmlReportGenerator.php:148, extensions/reports/classes/HtmlReportGenerator.php:152, extensions/user-sessions/classes/View/Options/Policies.php:24
|
4936 |
msgid "All"
|
4937 |
msgstr ""
|
4938 |
|
4952 |
msgid "Apply"
|
4953 |
msgstr ""
|
4954 |
|
4955 |
+
#: extensions/email-notifications/classes/Notifications.php:1846, extensions/email-notifications/classes/Notifications.php:1857, extensions/reports/inc/wsal-reporting-view.inc.php:744
|
4956 |
msgid "Select All"
|
4957 |
msgstr ""
|
4958 |
|
5118 |
msgid "Unknown notification."
|
5119 |
msgstr ""
|
5120 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5121 |
#: extensions/email-notifications/classes/SMSProviderSettings.php:118
|
5122 |
msgid "SMS Provider"
|
5123 |
msgstr ""
|
5472 |
msgstr ""
|
5473 |
|
5474 |
#: extensions/external-db/classes/Connections.php:564, extensions/external-db/classes/Mirroring.php:600
|
5475 |
+
msgid "Configure and create connection"
|
5476 |
msgstr ""
|
5477 |
|
5478 |
#: extensions/external-db/classes/Connections.php:725
|
5535 |
msgid "The WordPress activity log is currently being mirrored to:"
|
5536 |
msgstr ""
|
5537 |
|
5538 |
+
#: extensions/external-db/classes/Mirroring.php:125, extensions/external-db/classes/Mirroring.php:397, extensions/reports/inc/wsal-reporting-view.inc.php:1432
|
5539 |
msgid "Frequency"
|
5540 |
msgstr ""
|
5541 |
|
5692 |
msgid "Are you sure that you want to delete this mirror?"
|
5693 |
msgstr ""
|
5694 |
|
5695 |
+
#: extensions/external-db/classes/Mirroring.php:599, extensions/reports/inc/wsal-reporting-view.inc.php:996
|
5696 |
msgid "Select Event Code(s)"
|
5697 |
msgstr ""
|
5698 |
|
5892 |
msgid "Mirror not found."
|
5893 |
msgstr ""
|
5894 |
|
5895 |
+
#: extensions/reports/classes/Common.php:562, extensions/reports/classes/Common.php:557
|
5896 |
msgid "Internal error. <code>%s</code> key was not found."
|
5897 |
msgstr ""
|
5898 |
|
5899 |
+
#: extensions/reports/classes/Common.php:589, extensions/reports/classes/Common.php:1417
|
5900 |
msgid "Please specify at least one Alert Group or specify an Alert Code."
|
5901 |
msgstr ""
|
5902 |
|
5903 |
+
#: extensions/reports/classes/Common.php:594
|
5904 |
msgid "Internal Error: Could not detect the type of the report to generate."
|
5905 |
msgstr ""
|
5906 |
|
5907 |
+
#: extensions/reports/classes/Common.php:704, extensions/reports/classes/Common.php:738, extensions/reports/classes/Common.php:786, extensions/reports/classes/Common.php:804, extensions/reports/classes/Common.php:1617
|
5908 |
msgid "There are no alerts that match your filtering criteria. Please try a different set of rules."
|
5909 |
msgstr ""
|
5910 |
|
5911 |
+
#: extensions/reports/classes/Common.php:789, extensions/reports/classes/Common.php:807, extensions/reports/classes/Common.php:1620
|
5912 |
msgid "Error: The <strong>%s</strong> path is not accessible."
|
5913 |
msgstr ""
|
5914 |
|
5915 |
+
#: extensions/reports/classes/Common.php:1071, extensions/reports/classes/Common.php:1518
|
5916 |
msgid "%1$s - Website %2$s"
|
5917 |
msgstr ""
|
5918 |
|
5919 |
+
#: extensions/reports/classes/Common.php:1074, extensions/reports/classes/Common.php:1521
|
5920 |
msgid "Week number %1$s - Website %2$s"
|
5921 |
msgstr ""
|
5922 |
|
5923 |
+
#: extensions/reports/classes/Common.php:1077, extensions/reports/classes/Common.php:1524
|
5924 |
msgid "Month %1$s %2$s- Website %3$s"
|
5925 |
msgstr ""
|
5926 |
|
5927 |
+
#: extensions/reports/classes/Common.php:1080, extensions/reports/classes/Common.php:1527
|
5928 |
msgid "Quarter %1$s - Website %2$s"
|
5929 |
msgstr ""
|
5930 |
|
5931 |
+
#: extensions/reports/classes/Common.php:1095, extensions/reports/classes/Common.php:1536
|
5932 |
msgid " - %s Email Report"
|
5933 |
msgstr ""
|
5934 |
|
5935 |
+
#: extensions/reports/classes/Common.php:1389
|
5936 |
msgid "Internal Error. Could not retrieve the alerts from the main plugin."
|
5937 |
msgstr ""
|
5938 |
|
5939 |
+
#: extensions/reports/classes/HtmlReportGenerator.php:83, extensions/reports/classes/HtmlReportGenerator.php:331
|
5940 |
msgid "WP Activity Log Reporter"
|
5941 |
msgstr ""
|
5942 |
|
5943 |
+
#: extensions/reports/classes/HtmlReportGenerator.php:116
|
5944 |
msgid "Report from"
|
5945 |
msgstr ""
|
5946 |
|
5947 |
+
#: extensions/reports/classes/HtmlReportGenerator.php:116
|
5948 |
msgid "website"
|
5949 |
msgstr ""
|
5950 |
|
5951 |
+
#: extensions/reports/classes/HtmlReportGenerator.php:123, extensions/reports/classes/HtmlReportGenerator.php:340
|
5952 |
msgid "Report Details:"
|
5953 |
msgstr ""
|
5954 |
|
5955 |
+
#: extensions/reports/classes/HtmlReportGenerator.php:124, extensions/reports/classes/HtmlReportGenerator.php:341
|
5956 |
msgid "Generated on:"
|
5957 |
msgstr ""
|
5958 |
|
5959 |
+
#: extensions/reports/classes/HtmlReportGenerator.php:125, extensions/reports/classes/HtmlReportGenerator.php:342
|
5960 |
msgid "Generated by:"
|
5961 |
msgstr ""
|
5962 |
|
5963 |
+
#: extensions/reports/classes/HtmlReportGenerator.php:131
|
5964 |
msgid "Site(s)"
|
5965 |
msgstr ""
|
5966 |
|
5967 |
+
#: extensions/reports/classes/HtmlReportGenerator.php:132
|
5968 |
msgid "User(s)"
|
5969 |
msgstr ""
|
5970 |
|
5971 |
+
#: extensions/reports/classes/HtmlReportGenerator.php:133
|
5972 |
msgid "Role(s)"
|
5973 |
msgstr ""
|
5974 |
|
5975 |
+
#: extensions/reports/classes/HtmlReportGenerator.php:134
|
5976 |
msgid "IP address(es)"
|
5977 |
msgstr ""
|
5978 |
|
5979 |
+
#: extensions/reports/classes/HtmlReportGenerator.php:135
|
5980 |
msgid "Alert Groups"
|
5981 |
msgstr ""
|
5982 |
|
5983 |
+
#: extensions/reports/classes/HtmlReportGenerator.php:136, extensions/reports/classes/HtmlReportGenerator.php:346
|
5984 |
msgid "Alert Code(s)"
|
5985 |
msgstr ""
|
5986 |
|
5987 |
+
#: extensions/reports/classes/HtmlReportGenerator.php:137, extensions/reports/classes/HtmlReportGenerator.php:347
|
5988 |
msgid "Start date"
|
5989 |
msgstr ""
|
5990 |
|
5991 |
+
#: extensions/reports/classes/HtmlReportGenerator.php:138, extensions/reports/classes/HtmlReportGenerator.php:348
|
5992 |
msgid "End date"
|
5993 |
msgstr ""
|
5994 |
|
5995 |
+
#: extensions/reports/classes/HtmlReportGenerator.php:139
|
5996 |
msgid "Post Types"
|
5997 |
msgstr ""
|
5998 |
|
5999 |
+
#: extensions/reports/classes/HtmlReportGenerator.php:140, extensions/reports/inc/wsal-reporting-view.inc.php:778, extensions/search/classes/FilterManager.php:494, extensions/search/classes/Filters/poststatusfilter.php:47, extensions/search/classes/Filters/poststatusfilter.php:82
|
6000 |
msgid "Post Status"
|
6001 |
msgstr ""
|
6002 |
|
6003 |
+
#: extensions/reports/classes/HtmlReportGenerator.php:149, extensions/reports/classes/HtmlReportGenerator.php:317
|
6004 |
msgid "From the beginning"
|
6005 |
msgstr ""
|
6006 |
|
6007 |
+
#: extensions/reports/classes/HtmlReportGenerator.php:194, extensions/reports/classes/HtmlReportGenerator.php:343
|
6008 |
msgid "Criteria"
|
6009 |
msgstr ""
|
6010 |
|
6011 |
+
#: extensions/reports/classes/HtmlReportGenerator.php:359
|
6012 |
msgid "Results"
|
6013 |
msgstr ""
|
6014 |
|
6015 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:197
|
6016 |
msgid "Invalid Request. Please refresh the page and try again."
|
6017 |
msgstr ""
|
6018 |
|
6019 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:210
|
6020 |
msgid "Error (TODO - error message): Please select SITES"
|
6021 |
msgstr ""
|
6022 |
|
6023 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:231
|
6024 |
msgid "Error (TODO - error message): Please select USERS"
|
6025 |
msgstr ""
|
6026 |
|
6027 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:273
|
6028 |
msgid "Error: Please select at least one role"
|
6029 |
msgstr ""
|
6030 |
|
6031 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:320
|
6032 |
msgid "Error: Please select at least one IP address"
|
6033 |
msgstr ""
|
6034 |
|
6035 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:338
|
6036 |
msgid "Error: Please select at least one object"
|
6037 |
msgstr ""
|
6038 |
|
6039 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:355
|
6040 |
msgid "Error: Please select at least one event object"
|
6041 |
msgstr ""
|
6042 |
|
6043 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:440
|
6044 |
msgid "Please select the report format."
|
6045 |
msgstr ""
|
6046 |
|
6047 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:499
|
6048 |
msgid "Periodic Report successfully saved."
|
6049 |
msgstr ""
|
6050 |
|
6051 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:462, extensions/reports/inc/wsal-reporting-view.inc.php:518
|
6052 |
+
msgid "Loading"
|
6053 |
msgstr ""
|
6054 |
|
6055 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:463, extensions/reports/inc/wsal-reporting-view.inc.php:519
|
6056 |
+
msgid " Generating report. Please do not close this window."
|
6057 |
+
msgstr ""
|
6058 |
+
|
6059 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:467, extensions/reports/inc/wsal-reporting-view.inc.php:523
|
6060 |
+
msgid "Searching events, "
|
6061 |
+
msgstr ""
|
6062 |
+
|
6063 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:467, extensions/reports/inc/wsal-reporting-view.inc.php:523
|
6064 |
+
msgid " currently found."
|
6065 |
+
msgstr ""
|
6066 |
+
|
6067 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:545
|
6068 |
msgid "Periodic Report successfully Deleted."
|
6069 |
msgstr ""
|
6070 |
|
6071 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:576
|
6072 |
msgid "Generate & Configure Periodic Reports"
|
6073 |
msgstr ""
|
6074 |
|
6075 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:577
|
6076 |
msgid "Statistics Reports"
|
6077 |
msgstr ""
|
6078 |
|
6079 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:597
|
6080 |
msgid "Generate a report"
|
6081 |
msgstr ""
|
6082 |
|
6083 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:600
|
6084 |
msgid "Step 1: Select the type of report"
|
6085 |
msgstr ""
|
6086 |
|
6087 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:606
|
6088 |
msgid "By Site(s)"
|
6089 |
msgstr ""
|
6090 |
|
6091 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:614
|
6092 |
msgid "Specify sites"
|
6093 |
msgstr ""
|
6094 |
|
6095 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:622
|
6096 |
msgid "By User(s)"
|
6097 |
msgstr ""
|
6098 |
|
6099 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:626
|
6100 |
msgid "All Users"
|
6101 |
msgstr ""
|
6102 |
|
6103 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:630
|
6104 |
msgid "Specify users"
|
6105 |
msgstr ""
|
6106 |
|
6107 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:654
|
6108 |
msgid "Automated verification of usernames is disabled because you have more than 100 users. The process might require a lot of resources to work with a lot of users. Tick the option below to enable it again."
|
6109 |
msgstr ""
|
6110 |
|
6111 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:659
|
6112 |
msgid "Enable Autocomplete"
|
6113 |
msgstr ""
|
6114 |
|
6115 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:668
|
6116 |
msgid "By Role(s)"
|
6117 |
msgstr ""
|
6118 |
|
6119 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:672
|
6120 |
msgid "All Roles"
|
6121 |
msgstr ""
|
6122 |
|
6123 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:676
|
6124 |
msgid "Specify roles"
|
6125 |
msgstr ""
|
6126 |
|
6127 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:684
|
6128 |
msgid "By IP Address(es)"
|
6129 |
msgstr ""
|
6130 |
|
6131 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:688
|
6132 |
msgid "All IP Addresses"
|
6133 |
msgstr ""
|
6134 |
|
6135 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:692
|
6136 |
msgid "Specify IP Addresses"
|
6137 |
msgstr ""
|
6138 |
|
6139 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:700
|
6140 |
msgid "By Object(s)"
|
6141 |
msgstr ""
|
6142 |
|
6143 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:704
|
6144 |
msgid "All Objects"
|
6145 |
msgstr ""
|
6146 |
|
6147 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:708
|
6148 |
msgid "Specify Objects"
|
6149 |
msgstr ""
|
6150 |
|
6151 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:716
|
6152 |
msgid "By Event Type(s)"
|
6153 |
msgstr ""
|
6154 |
|
6155 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:720
|
6156 |
msgid "All Event Types"
|
6157 |
msgstr ""
|
6158 |
|
6159 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:724
|
6160 |
msgid "Specify Event Types"
|
6161 |
msgstr ""
|
6162 |
|
6163 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:732
|
6164 |
msgid "By Event Code(s)"
|
6165 |
msgstr ""
|
6166 |
|
6167 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:764
|
6168 |
msgid "Posts"
|
6169 |
msgstr ""
|
6170 |
|
6171 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:770, extensions/search/classes/FilterManager.php:498, extensions/search/classes/Filters/posttypefilter.php:85
|
6172 |
msgid "Post Type"
|
6173 |
msgstr ""
|
6174 |
|
6175 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:792
|
6176 |
msgid "Specify Event Codes"
|
6177 |
msgstr ""
|
6178 |
|
6179 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:800
|
6180 |
msgid "By the Below Criteria"
|
6181 |
msgstr ""
|
6182 |
|
6183 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:805
|
6184 |
msgid "Number & List of unique IP addresses per user"
|
6185 |
msgstr ""
|
6186 |
|
6187 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:810
|
6188 |
msgid "Number of Logins per user"
|
6189 |
msgstr ""
|
6190 |
|
6191 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:844
|
6192 |
msgid "Select site(s)"
|
6193 |
msgstr ""
|
6194 |
|
6195 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:866
|
6196 |
msgid "Select user(s)"
|
6197 |
msgstr ""
|
6198 |
|
6199 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:908
|
6200 |
msgid "Select role(s)"
|
6201 |
msgstr ""
|
6202 |
|
6203 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:930
|
6204 |
msgid "Select IP address(es)"
|
6205 |
msgstr ""
|
6206 |
|
6207 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:952
|
6208 |
msgid "Select Objects(s)"
|
6209 |
msgstr ""
|
6210 |
|
6211 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:974
|
6212 |
msgid "Select Type(s)"
|
6213 |
msgstr ""
|
6214 |
|
6215 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1026
|
6216 |
msgid "Select Post Type(s)"
|
6217 |
msgstr ""
|
6218 |
|
6219 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1056
|
6220 |
msgid "Select Post Status(es)"
|
6221 |
msgstr ""
|
6222 |
|
6223 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1359
|
6224 |
msgid "Step 2: Select the date range"
|
6225 |
msgstr ""
|
6226 |
|
6227 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1361
|
6228 |
msgid "Note: Do not specify any dates if you are creating a scheduled report or if you want to generate a report from when you started the audit trail."
|
6229 |
msgstr ""
|
6230 |
|
6231 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1366
|
6232 |
msgid "Start Date"
|
6233 |
msgstr ""
|
6234 |
|
6235 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1369, extensions/reports/inc/wsal-reporting-view.inc.php:1508
|
6236 |
msgid "Select start date"
|
6237 |
msgstr ""
|
6238 |
|
6239 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1375
|
6240 |
msgid "End Date"
|
6241 |
msgstr ""
|
6242 |
|
6243 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1378, extensions/reports/inc/wsal-reporting-view.inc.php:1517
|
6244 |
msgid "Select end date"
|
6245 |
msgstr ""
|
6246 |
|
6247 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1392, extensions/reports/inc/wsal-reporting-view.inc.php:1601
|
6248 |
msgid "Step 3: Select Report Format"
|
6249 |
msgstr ""
|
6250 |
|
6251 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1399, extensions/reports/inc/wsal-reporting-view.inc.php:1607
|
6252 |
msgid "HTML"
|
6253 |
msgstr ""
|
6254 |
|
6255 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1404, extensions/reports/inc/wsal-reporting-view.inc.php:1611
|
6256 |
msgid "CSV"
|
6257 |
msgstr ""
|
6258 |
|
6259 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1411
|
6260 |
msgid "Step 4: Generate Report Now or Configure Periodic Reports"
|
6261 |
msgstr ""
|
6262 |
|
6263 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1414
|
6264 |
msgid "Generate Report Now"
|
6265 |
msgstr ""
|
6266 |
|
6267 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1417
|
6268 |
msgid " Use the buttons below to use the above criteria for a daily, weekly and monthly summary report which is sent automatically via email."
|
6269 |
msgstr ""
|
6270 |
|
6271 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1420
|
6272 |
msgid "Email address(es)"
|
6273 |
msgstr ""
|
6274 |
|
6275 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1426
|
6276 |
msgid "Report Name"
|
6277 |
msgstr ""
|
6278 |
|
6279 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1434
|
6280 |
msgid "Daily"
|
6281 |
msgstr ""
|
6282 |
|
6283 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1435
|
6284 |
msgid "Weekly"
|
6285 |
msgstr ""
|
6286 |
|
6287 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1436
|
6288 |
msgid "Monthly"
|
6289 |
msgstr ""
|
6290 |
|
6291 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1437
|
6292 |
msgid "Quarterly"
|
6293 |
msgstr ""
|
6294 |
|
6295 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1450
|
6296 |
msgid "Configured Periodic Reports"
|
6297 |
msgstr ""
|
6298 |
|
6299 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1453
|
6300 |
msgid "Below is the list of configured periodic reports. Click on Modify to load the criteria and configure it above. To save the new criteria as a new report change the report name and save it. Do not change the report name to overwrite the existing periodic report."
|
6301 |
msgstr ""
|
6302 |
|
6303 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1456
|
6304 |
msgid "Note: Use the Send Now button to generate a report with data from the last 90 days if a quarterly report is configured, 30 days if monthly report is configured and 7 days if weekly report is configured."
|
6305 |
msgstr ""
|
6306 |
|
6307 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1501
|
6308 |
msgid "Step 1: Choose Date Range"
|
6309 |
msgstr ""
|
6310 |
|
6311 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1505, extensions/search/classes/Filters/DateFilter.php:55
|
6312 |
msgid "From"
|
6313 |
msgstr ""
|
6314 |
|
6315 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1514
|
6316 |
msgid "To"
|
6317 |
msgstr ""
|
6318 |
|
6319 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1530
|
6320 |
msgid "Step 2: Choose Criteria"
|
6321 |
msgstr ""
|
6322 |
|
6323 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1533
|
6324 |
msgid "Report for"
|
6325 |
msgstr ""
|
6326 |
|
6327 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1538
|
6328 |
msgid "Number of logins for user"
|
6329 |
msgstr ""
|
6330 |
|
6331 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1543
|
6332 |
msgid "Number of logins for users with the role of"
|
6333 |
msgstr ""
|
6334 |
|
6335 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1548
|
6336 |
msgid "Number of views for user"
|
6337 |
msgstr ""
|
6338 |
|
6339 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1553
|
6340 |
msgid "Number of views for users with the role of"
|
6341 |
msgstr ""
|
6342 |
|
6343 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1558
|
6344 |
msgid "Number of published content for user"
|
6345 |
msgstr ""
|
6346 |
|
6347 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1563
|
6348 |
msgid "Number of published content for users with the role of"
|
6349 |
msgstr ""
|
6350 |
|
6351 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1568
|
6352 |
msgid "Different IP addresses for Usernames"
|
6353 |
msgstr ""
|
6354 |
|
6355 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1573
|
6356 |
msgid "List only IP addresses used during login"
|
6357 |
msgstr ""
|
6358 |
|
6359 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1575
|
6360 |
msgid "If the above option is enabled the report will only include the IP addresses from where the user logged in. If it is disabled it will list all the IP addresses from where the plugin recorded activity originating from the user."
|
6361 |
msgstr ""
|
6362 |
|
6363 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1634
|
6364 |
msgid "Please specify at least one site"
|
6365 |
msgstr ""
|
6366 |
|
6367 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1643
|
6368 |
msgid "Please specify at least one user"
|
6369 |
msgstr ""
|
6370 |
|
6371 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1652
|
6372 |
msgid "Please specify at least one role"
|
6373 |
msgstr ""
|
6374 |
|
6375 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1661
|
6376 |
msgid "Please specify at least one IP address"
|
6377 |
msgstr ""
|
6378 |
|
6379 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1670
|
6380 |
msgid "Please specify at least one object"
|
6381 |
msgstr ""
|
6382 |
|
6383 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1679
|
6384 |
msgid "Please specify at least one event type"
|
6385 |
msgstr ""
|
6386 |
|
6387 |
+
#: extensions/reports/inc/wsal-reporting-view.inc.php:1688
|
6388 |
msgid "Please specify at least one Alert group or specify an Alert code"
|
6389 |
msgstr ""
|
6390 |
|
6436 |
msgid "Filter by username"
|
6437 |
msgstr ""
|
6438 |
|
6439 |
+
#: extensions/search/classes/FilterManager.php:478, extensions/user-sessions/classes/View/Sessions.php:296
|
6440 |
msgid "First Name"
|
6441 |
msgstr ""
|
6442 |
|
6444 |
msgid "Filter by user first name"
|
6445 |
msgstr ""
|
6446 |
|
6447 |
+
#: extensions/search/classes/FilterManager.php:482, extensions/user-sessions/classes/View/Sessions.php:297
|
6448 |
msgid "Last Name"
|
6449 |
msgstr ""
|
6450 |
|
6512 |
msgid "Logged In Users"
|
6513 |
msgstr ""
|
6514 |
|
6515 |
+
#: extensions/user-sessions/classes/Views.php:187
|
6516 |
msgid "Logging out..."
|
6517 |
msgstr ""
|
6518 |
|
6519 |
+
#: extensions/user-sessions/classes/Views.php:188
|
6520 |
msgid "Refreshing..."
|
6521 |
msgstr ""
|
6522 |
|
6523 |
+
#: extensions/user-sessions/classes/Views.php:189
|
6524 |
msgid "This could result in loss of unsaved work. Are you sure?"
|
6525 |
msgstr ""
|
6526 |
|
6527 |
#. translators: %s: Total number of users
|
6528 |
+
#: extensions/user-sessions/classes/Views.php:191
|
6529 |
+
msgid "out of %s user sessions terminated."
|
6530 |
msgstr ""
|
6531 |
|
6532 |
+
#: extensions/user-sessions/classes/Views.php:193, extensions/user-sessions/classes/View/Sessions.php:80
|
6533 |
msgid "Retrieve user data"
|
6534 |
msgstr ""
|
6535 |
|
6536 |
+
#: extensions/user-sessions/classes/Views.php:194
|
6537 |
msgid "Retrieving data"
|
6538 |
msgstr ""
|
6539 |
|
6540 |
+
#: extensions/user-sessions/classes/Views.php:195
|
6541 |
msgid "Data retrieved"
|
6542 |
msgstr ""
|
6543 |
|
6544 |
+
#: extensions/user-sessions/classes/Views.php:196
|
6545 |
msgid "Event ID: "
|
6546 |
msgstr ""
|
6547 |
|
6548 |
+
#: extensions/user-sessions/classes/Views.php:197
|
6549 |
msgid "Object: "
|
6550 |
msgstr ""
|
6551 |
|
6552 |
+
#: extensions/user-sessions/classes/Views.php:198
|
6553 |
msgid "Event Type: "
|
6554 |
msgstr ""
|
6555 |
|
6556 |
+
#: extensions/user-sessions/classes/Views.php:259
|
6557 |
msgid "Terminate all logged in sessions"
|
6558 |
msgstr ""
|
6559 |
|
6560 |
+
#: extensions/user-sessions/classes/Views.php:260
|
6561 |
msgid "This will terminate all users' sessions including yours, which could result in unsaved work. Do you like to proceed?"
|
6562 |
msgstr ""
|
6563 |
|
6564 |
+
#: extensions/user-sessions/classes/Views.php:271
|
6565 |
msgid "YES"
|
6566 |
msgstr ""
|
6567 |
|
6568 |
+
#: extensions/user-sessions/classes/Views.php:272
|
6569 |
msgid "NO"
|
6570 |
msgstr ""
|
6571 |
|
6572 |
+
#: extensions/user-sessions/classes/Views.php:284
|
6573 |
msgid "Terminate All Sessions"
|
6574 |
msgstr ""
|
6575 |
|
6576 |
+
#: extensions/user-sessions/classes/Views.php:404
|
6577 |
msgid "Users sessions termination is in progress. Please wait..."
|
6578 |
msgstr ""
|
6579 |
|
6580 |
+
#: extensions/user-sessions/classes/Views.php:431, extensions/reports/classes/Views/Main.php:692
|
6581 |
msgid "You do not have sufficient permissions."
|
6582 |
msgstr ""
|
6583 |
|
6584 |
+
#: extensions/user-sessions/classes/Views.php:457
|
6585 |
msgid "No sessions."
|
6586 |
msgstr ""
|
6587 |
|
6588 |
+
#: extensions/user-sessions/classes/Views.php:482
|
6589 |
msgid "Session destroyed."
|
6590 |
msgstr ""
|
6591 |
|
6592 |
+
#: extensions/user-sessions/classes/Views.php:490
|
6593 |
msgid "User session data is not set."
|
6594 |
msgstr ""
|
6595 |
|
6596 |
+
#: extensions/user-sessions/classes/Views.php:506, extensions/user-sessions/classes/Views.php:580
|
6597 |
msgid "User do not have sufficient permissions."
|
6598 |
msgstr ""
|
6599 |
|
6600 |
+
#: extensions/user-sessions/classes/Views.php:559
|
|
|
|
|
|
|
|
|
6601 |
msgid "Sessions destroyed!"
|
6602 |
msgstr ""
|
6603 |
|
6604 |
+
#: extensions/user-sessions/classes/Views.php:590
|
6605 |
msgid "Nonce check failed."
|
6606 |
msgstr ""
|
6607 |
|
6613 |
msgid "Reports"
|
6614 |
msgstr ""
|
6615 |
|
6616 |
+
#: extensions/reports/classes/Views/Main.php:203
|
6617 |
+
msgid "Process completed."
|
6618 |
msgstr ""
|
6619 |
|
6620 |
+
#: extensions/reports/classes/Views/Main.php:206
|
6621 |
+
msgid "There are no alerts that match your filtering criteria."
|
6622 |
+
msgstr ""
|
6623 |
+
|
6624 |
+
#: extensions/reports/classes/Views/Main.php:617
|
6625 |
+
msgid " Generating reports. Please do not close this window."
|
6626 |
+
msgstr ""
|
6627 |
+
|
6628 |
+
#: extensions/reports/classes/Views/Main.php:630
|
6629 |
msgid "To generate a report or configure automated scheduled report please contact the administrator of this multisite network on "
|
6630 |
msgstr ""
|
6631 |
|
6632 |
+
#: extensions/reports/classes/Views/Main.php:648
|
6633 |
msgid "The %s directory which the Reports plugin uses to create reports in was either not found or is not accessible."
|
6634 |
msgstr ""
|
6635 |
|
6636 |
+
#: extensions/reports/classes/Views/Main.php:652
|
6637 |
msgid "In order for the plugin to function, the directory %1$s must be created and the plugin should have access to write to this directory, so please configure the following permissions: 0755. If you have any questions or need further assistance please %2$s"
|
6638 |
msgstr ""
|
6639 |
|
6705 |
msgid "Select a user role to filter"
|
6706 |
msgstr ""
|
6707 |
|
6708 |
+
#: extensions/user-sessions/classes/Sensors/UserSessionsTracking.php:307, extensions/user-sessions/classes/View/Options/Policies.php:234
|
6709 |
msgid "ERROR: Your session was blocked with the <a href=\"https://en-gb.wordpress.org/plugins/wp-security-audit-log\" target=\"_blank\">WP Activity Log plugin</a> because there is already another user logged in with the same username. Please contact the site administrator for more information."
|
6710 |
msgstr ""
|
6711 |
|
6717 |
msgid "User Session Options"
|
6718 |
msgstr ""
|
6719 |
|
6720 |
+
#: extensions/user-sessions/classes/View/Sessions.php:120
|
6721 |
msgid "Showing results for "
|
6722 |
msgstr ""
|
6723 |
|
6724 |
+
#: extensions/user-sessions/classes/View/Sessions.php:112
|
6725 |
msgid "No search results were found."
|
6726 |
msgstr ""
|
6727 |
|
6728 |
+
#: extensions/user-sessions/classes/View/Sessions.php:146
|
6729 |
msgid "Expires"
|
6730 |
msgstr ""
|
6731 |
|
6732 |
+
#: extensions/user-sessions/classes/View/Sessions.php:147
|
6733 |
msgid "Source IP"
|
6734 |
msgstr ""
|
6735 |
|
6736 |
+
#: extensions/user-sessions/classes/View/Sessions.php:148
|
6737 |
msgid "Last Event"
|
6738 |
msgstr ""
|
6739 |
|
6740 |
+
#: extensions/user-sessions/classes/View/Sessions.php:149, extensions/user-sessions/classes/View/Sessions.php:465
|
6741 |
msgid "Actions"
|
6742 |
msgstr ""
|
6743 |
|
6744 |
#. translators: Number of sessions
|
6745 |
+
#: extensions/user-sessions/classes/View/Sessions.php:267
|
6746 |
msgid "%s users"
|
6747 |
msgstr ""
|
6748 |
|
6749 |
+
#: extensions/user-sessions/classes/View/Sessions.php:272
|
6750 |
msgid "Go to the first page"
|
6751 |
msgstr ""
|
6752 |
|
6753 |
+
#: extensions/user-sessions/classes/View/Sessions.php:273
|
6754 |
msgid "Go to the previous page"
|
6755 |
msgstr ""
|
6756 |
|
6757 |
+
#: extensions/user-sessions/classes/View/Sessions.php:275
|
6758 |
msgid "of"
|
6759 |
msgstr ""
|
6760 |
|
6761 |
+
#: extensions/user-sessions/classes/View/Sessions.php:277
|
6762 |
msgid "Go to the next page"
|
6763 |
msgstr ""
|
6764 |
|
6765 |
+
#: extensions/user-sessions/classes/View/Sessions.php:278
|
6766 |
msgid "Go to the last page"
|
6767 |
msgstr ""
|
6768 |
|
6769 |
+
#: extensions/user-sessions/classes/View/Sessions.php:287
|
6770 |
msgid "Total number of sessions with Administrator Role: "
|
6771 |
msgstr ""
|
6772 |
|
6773 |
+
#: extensions/user-sessions/classes/View/Sessions.php:330
|
6774 |
msgid "Show:"
|
6775 |
msgstr ""
|
6776 |
|
6777 |
+
#: extensions/user-sessions/classes/View/Sessions.php:339
|
6778 |
msgid "Network-wide Logins"
|
6779 |
msgstr ""
|
6780 |
|
6781 |
+
#: extensions/user-sessions/classes/View/Sessions.php:439
|
6782 |
msgid "Session ID: "
|
6783 |
msgstr ""
|
6784 |
|
6785 |
+
#: extensions/user-sessions/classes/View/Sessions.php:456
|
6786 |
msgid "Click the button above to retrieve the users' last event."
|
6787 |
msgstr ""
|
6788 |
|
6789 |
+
#: extensions/user-sessions/classes/View/Sessions.php:476
|
6790 |
msgid "Show me this user's events"
|
6791 |
msgstr ""
|
6792 |
|
6793 |
+
#: extensions/user-sessions/classes/View/Sessions.php:492
|
6794 |
msgid "Terminate Session"
|
6795 |
msgstr ""
|
6796 |
|
6797 |
+
#: extensions/user-sessions/classes/View/Sessions.php:384
|
6798 |
msgid "WP Activity Log keeps its own user session data. This means that the sessions of already logged in users will only show up once they logout and log back in. The same applies to your session."
|
6799 |
msgstr ""
|
6800 |
|
6801 |
+
#: extensions/user-sessions/classes/View/Sessions.php:376
|
6802 |
msgid "No logged in sessions meet your search criteria."
|
6803 |
msgstr ""
|
6804 |
|
6805 |
+
#: extensions/user-sessions/classes/View/Sessions.php:669
|
6806 |
msgid "User sessions do not exist."
|
6807 |
msgstr ""
|
6808 |
|
@@ -4,9 +4,9 @@ Plugin URI: https://wpactivitylog.com
|
|
4 |
License: GPLv3
|
5 |
License URI: https://www.gnu.org/licenses/gpl.html
|
6 |
Tags: activity log, wordpress activity logs, security audit log, audit log, user tracking, security event log, audit trail, wordpress security monitor, wordpress admin, wordpress admin monitoring, user activity, admin, multisite, SMS alerts, wordpress monitoring, email notification, wordpress email alerts, tracking, user tracking, user activity report, wordpress audit trail
|
7 |
-
Requires at least:
|
8 |
Tested up to: 5.6
|
9 |
-
Stable tag: 4.
|
10 |
Requires PHP: 5.5
|
11 |
|
12 |
The #1 user-rated activity log plugin. Keep a comprehensive log of the changes that happen on your site with this easy to use plugin.
|
@@ -26,7 +26,9 @@ Keep an [activity log](https://wpactivitylog.com/wordpress-activity-log/?utm_sou
|
|
26 |
|
27 |
[WP Activity Log](https://wpactivitylog.com/?utm_source=wordpress.org&utm_medium=referral&utm_campaign=WSAL&utm_content=plugin+repos+description) is the most comprehensive real time user activity and monitoring log plugin. It helps thousands of WordPress administrators and security professionals keep an eye on what is happening on their websites. It is also the most highly rated WordPress activity log plugin and have been featured on popular sites such as GoDaddy, Kinsta and WPBeginner.
|
28 |
|
29 |
-
[youtube https://www.youtube.com/watch?v=
|
|
|
|
|
30 |
|
31 |
> <strong>Note</strong>: The WordPress activity log is FREE. Features such as reports, email notifications, SMS alerts, search and many others are available in the <Strong>[Premium Edition](https://wpactivitylog.com/features/?utm_source=wordpress.org&utm_medium=referral&utm_campaign=WSAL&utm_content=plugin+repos+description)</strong>.
|
32 |
>
|
@@ -206,9 +208,83 @@ Please refer to our [support pages](https://wpactivitylog.com/support/?utm_sourc
|
|
206 |
|
207 |
== Changelog ==
|
208 |
|
209 |
-
= 4.
|
210 |
-
|
211 |
-
|
212 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
213 |
|
214 |
Refer to the [complete plugin changelog](https://wpactivitylog.com/support/kb/plugin-changelog/?utm_source=wordpress.org&utm_medium=referral&utm_campaign=WSAL&utm_content=plugin+repos+description) for more detailed information about what was new, improved and fixed in previous versions of the WP Activity Log plugin.
|
4 |
License: GPLv3
|
5 |
License URI: https://www.gnu.org/licenses/gpl.html
|
6 |
Tags: activity log, wordpress activity logs, security audit log, audit log, user tracking, security event log, audit trail, wordpress security monitor, wordpress admin, wordpress admin monitoring, user activity, admin, multisite, SMS alerts, wordpress monitoring, email notification, wordpress email alerts, tracking, user tracking, user activity report, wordpress audit trail
|
7 |
+
Requires at least: 4.4
|
8 |
Tested up to: 5.6
|
9 |
+
Stable tag: 4.2.0
|
10 |
Requires PHP: 5.5
|
11 |
|
12 |
The #1 user-rated activity log plugin. Keep a comprehensive log of the changes that happen on your site with this easy to use plugin.
|
26 |
|
27 |
[WP Activity Log](https://wpactivitylog.com/?utm_source=wordpress.org&utm_medium=referral&utm_campaign=WSAL&utm_content=plugin+repos+description) is the most comprehensive real time user activity and monitoring log plugin. It helps thousands of WordPress administrators and security professionals keep an eye on what is happening on their websites. It is also the most highly rated WordPress activity log plugin and have been featured on popular sites such as GoDaddy, Kinsta and WPBeginner.
|
28 |
|
29 |
+
[youtube https://www.youtube.com/watch?v=pgFEMIvKFTA]
|
30 |
+
|
31 |
+
<a href="https://wpactivitylog.com/features/?utm_source=wordpress.org&utm_medium=referral&utm_campaign=WSAL&utm_content=plugin+repos+description" target="_blank">Benefits & features</a> | <a href="https://wpactivitylog.com/why-wp-activity-log/?utm_source=wordpress.org&utm_medium=referral&utm_campaign=WSAL&utm_content=plugin+repos+description" target="_blank">Why choose WP Activity Log</a> | <a href="https://wpactivitylog.com/support/kb/getting-started-wp-activity-log/?utm_source=wordpress.org&utm_medium=referral&utm_campaign=WSAL&utm_content=plugin+repos+description" target="_blank">Getting started</a>
|
32 |
|
33 |
> <strong>Note</strong>: The WordPress activity log is FREE. Features such as reports, email notifications, SMS alerts, search and many others are available in the <Strong>[Premium Edition](https://wpactivitylog.com/features/?utm_source=wordpress.org&utm_medium=referral&utm_campaign=WSAL&utm_content=plugin+repos+description)</strong>.
|
34 |
>
|
208 |
|
209 |
== Changelog ==
|
210 |
|
211 |
+
= 4.2.0 (2021-02-11) =
|
212 |
+
|
213 |
+
Release notes: [WP Activity Log 4.2: Support for all date & time formats & other major updates](https://wpactivitylog.com/wsal-4-2-0/)
|
214 |
+
|
215 |
+
**New features**
|
216 |
+
* New date & time module that supports any type of date and time format that WordPress supports.
|
217 |
+
* An all new activity log dashboard widget.
|
218 |
+
* Added activity log coverage for several new WordPress settings, including automatic updates settings, date and time settings and application passwords.
|
219 |
+
|
220 |
+
**Improved activity log coverage**
|
221 |
+
* **New event IDs for changes in posts**
|
222 |
+
* ID 2129: User added / changed / removed a post's excerpt
|
223 |
+
* ID 2130: User added / changed / removed a post's featured image
|
224 |
+
|
225 |
+
* **New event IDs for changes in WordPress settings**
|
226 |
+
* ID 6035: Changed the "Your homepage displays" WordPress setting
|
227 |
+
* ID 6036: Changed the homepage in the WordPress setting
|
228 |
+
* ID 6037: Changed the posts page in the WordPress settings
|
229 |
+
* ID 6040: Changed the Timezone in the WordPress settings
|
230 |
+
* ID 6041: Changed the Date format in the WordPress settings
|
231 |
+
* ID 6042: Changed the Time format in the WordPress settings
|
232 |
+
* ID 6044: User changed the WordPress automatic update settings
|
233 |
+
|
234 |
+
* **New event IDs for application passwords**
|
235 |
+
* ID 4025: User added / removed application password from own profile
|
236 |
+
* ID 4026: User added / removed application password from another user's profile
|
237 |
+
* ID 4027: User revoked all application passwords from own profile
|
238 |
+
* ID 4028: User revoked all application passwords from another user's profile
|
239 |
+
|
240 |
+
* **New event IDs for multisite network settings**
|
241 |
+
* ID 7007: The setting Allow site administrators to add new users to their site was enabled / disabled
|
242 |
+
* ID 7008: The value of the Site upload space setting was changed
|
243 |
+
* ID 7009: The value of the file size allowed in the site upload space setting was changed
|
244 |
+
* ID 7010: Changed the list of allowed file types on the network
|
245 |
+
* ID 7011: Changed the value of the maximum upload file size network setting
|
246 |
+
|
247 |
+
* **Other new event IDs**
|
248 |
+
* ID 1010: User requested a password reset.
|
249 |
+
|
250 |
+
**Improvements**
|
251 |
+
* Improved coverage of users logins, logout and failed logins activity on custom login pages.
|
252 |
+
* Standardized the text, format and metadata formatting of all the activity log events.
|
253 |
+
* Drastically improved the coverage of the activity logs sensors with a number of new event IDs.
|
254 |
+
* Redesigned the [activity logs extension](https://wpactivitylog.com/extensions/) UI.
|
255 |
+
* Support for URL rewrites and page names (correct page title reported even if the page is a URL rewrite).
|
256 |
+
* Default [activity log SMS notifications](https://wpactivitylog.com/features/email-sms-notifications-wordpress-activity-log/) template updated.
|
257 |
+
* Plugins version numbers are now reported in the activity log (for example when a plugin is updated).
|
258 |
+
* Users who hide the plugin from plugins page now get a notification when a plugin update is available.
|
259 |
+
* Consolidated the code that generates the activity log messages.
|
260 |
+
* Merged the Help and Contact us pages in the plugin menu.
|
261 |
+
* Improved the Reports filters queries to address timeout issues on very big websites.
|
262 |
+
* Replaced the "SHOW TABLES" queries for much better plugin performance.
|
263 |
+
* Removed the "/uploads/wp-activity-log/" directory in the free edition. This is only required in premium edition.
|
264 |
+
* Support for CloudFlare HTTP headers - plugin reports correct IP when behind CloudFlare CDN or firewall (more info on firewalls support)[https://wpactivitylog.com/support/kb/support-reverse-proxies-web-application-firewalls/].
|
265 |
+
* Reports, Email & SMS notifications and other modules now fully support metadata which contains the space character. For example the user role Shop Manager.
|
266 |
+
* Remove support for custom sensors. Custom event IDs in activity log now only supported via [activity log extension plugin](https://wpactivitylog.com/support/kb/create-custom-events-wordpress-activity-log/).
|
267 |
+
* Completely removed the code of the old promotional events (stopped using them in 2017).
|
268 |
+
* Removed the request log file setting. The request log file can now be enabled via a [filter](https://wpactivitylog.com/support/kb/list-hooks/).
|
269 |
+
* Removed the working directory location setting from plugin settings. Instead introduced a new wp-config.php constant: WSAL_WORKING_DIR_PATH
|
270 |
+
* Plugin now using WP_CONTENT_DIR instead of ABSPATH were applicable (better supported by WordPress specific web hosts).
|
271 |
+
* Added event text to event IDs 1001 and 1001.
|
272 |
+
* The system information file now also includes all of the plugin's settings saved in the wp_options table.
|
273 |
+
* Simplified the process that retrieves filnames.
|
274 |
+
* Several under the hood performance improvements (removed obsolete code, improved sensors etc)
|
275 |
+
|
276 |
+
**Bug fixes**
|
277 |
+
* Event ID 1000 (user login) still logged when IP address is excluded.
|
278 |
+
* Change in page template was not being logged with event ID 2048.
|
279 |
+
* Event ID 2002 was not always reported in some edge cases.
|
280 |
+
* Plugin's directory in uploads was not being created when website was hosted on Flywheel and WordPress.com.
|
281 |
+
* Date & time were missing in CSV reports when using some specific date and time formats in WordPress.
|
282 |
+
* Super admin role was also shown for administrators on single site setup.
|
283 |
+
* Plugin was not showing the correct total of sessions when deleting all sessions.
|
284 |
+
* Plugin was generating a PHP error when a network site was deleted.
|
285 |
+
* No event was being reported when installing [activity log extensions for third party plugins](https://wpactivitylog.com/extensions/).
|
286 |
+
* Plugin installation was not running correctly when installed alongside the [Website File Changes Monitor plugin](https://www.wpwhitesecurity.com/wordpress-plugins/website-file-changes-monitor/).
|
287 |
+
* The setting to configure the number of failed logins to keep a log of was reset to default each time the settings page was saved.
|
288 |
+
* Wrong variable was used in licensing notifications, resulting in misleading error responses when license failed to activate.
|
289 |
|
290 |
Refer to the [complete plugin changelog](https://wpactivitylog.com/support/kb/plugin-changelog/?utm_source=wordpress.org&utm_medium=referral&utm_campaign=WSAL&utm_content=plugin+repos+description) for more detailed information about what was new, improved and fixed in previous versions of the WP Activity Log plugin.
|
@@ -3954,7 +3954,7 @@
|
|
3954 |
if ( $is_connected ) {
|
3955 |
FS_GDPR_Manager::instance()->store_is_required( $pong->is_gdpr_required );
|
3956 |
}
|
3957 |
-
|
3958 |
$this->store_connectivity_info( $pong, $is_connected );
|
3959 |
|
3960 |
return $this->_has_api_connection;
|
@@ -8222,7 +8222,7 @@
|
|
8222 |
$parent_licenses_endpoint = "/plugins/{$this->get_id()}/parent_licenses.json?filter=activatable";
|
8223 |
|
8224 |
$fs = $this;
|
8225 |
-
|
8226 |
if ( $this->is_addon() ) {
|
8227 |
$parent_instance = $this->get_parent_instance();
|
8228 |
|
@@ -9881,7 +9881,7 @@
|
|
9881 |
|
9882 |
if ( is_object( $fs ) ) {
|
9883 |
$fs->remove_sdk_reference();
|
9884 |
-
|
9885 |
self::require_plugin_essentials();
|
9886 |
|
9887 |
if ( is_plugin_active( $fs->_free_plugin_basename ) ||
|
@@ -10446,7 +10446,7 @@
|
|
10446 |
if ( fs_starts_with( $option_name, WP_FS__MODULE_TYPE_THEME . '_' ) ) {
|
10447 |
$option_name = str_replace( WP_FS__MODULE_TYPE_THEME . '_', '', $option_name );
|
10448 |
}
|
10449 |
-
|
10450 |
switch ( $option_name ) {
|
10451 |
case 'plugins':
|
10452 |
case 'themes':
|
@@ -12945,7 +12945,7 @@
|
|
12945 |
// Subscription cancellation dialog box is currently not supported for multisite networks.
|
12946 |
return array();
|
12947 |
}
|
12948 |
-
|
12949 |
if ( $this->is_whitelabeled() ) {
|
12950 |
return array();
|
12951 |
}
|
@@ -13045,7 +13045,7 @@
|
|
13045 |
! $this->is_premium() &&
|
13046 |
/**
|
13047 |
* Also handle the case when an upgrade was made using the free version.
|
13048 |
-
*
|
13049 |
* @author Leo Fajardo (@leorw)
|
13050 |
* @since 2.3.2
|
13051 |
*/
|
@@ -13272,7 +13272,7 @@
|
|
13272 |
*/
|
13273 |
function _activate_license_ajax_action() {
|
13274 |
$this->_logger->entrance();
|
13275 |
-
|
13276 |
$this->check_ajax_referer( 'activate_license' );
|
13277 |
|
13278 |
$license_key = trim( fs_request_get( 'license_key' ) );
|
@@ -13342,7 +13342,7 @@
|
|
13342 |
foreach ( $installs_info_by_slug_map as $slug => $install_info ) {
|
13343 |
$install_ids[ $slug ] = $install_info['install']->id;
|
13344 |
}
|
13345 |
-
|
13346 |
$params['install_ids'] = implode( ',', array_values( $install_ids ) );
|
13347 |
|
13348 |
$install = $this->get_api_site_scope()->call( $this->add_show_pending( '/' ), 'put', $params );
|
@@ -13435,7 +13435,7 @@
|
|
13435 |
*
|
13436 |
* @author Vova Feldman (@svovaf)
|
13437 |
* @since 2.3.0
|
13438 |
-
*
|
13439 |
* @param string $license_key
|
13440 |
* @param null|bool $is_marketing_allowed
|
13441 |
* @param null|number $plugin_id
|
3954 |
if ( $is_connected ) {
|
3955 |
FS_GDPR_Manager::instance()->store_is_required( $pong->is_gdpr_required );
|
3956 |
}
|
3957 |
+
|
3958 |
$this->store_connectivity_info( $pong, $is_connected );
|
3959 |
|
3960 |
return $this->_has_api_connection;
|
8222 |
$parent_licenses_endpoint = "/plugins/{$this->get_id()}/parent_licenses.json?filter=activatable";
|
8223 |
|
8224 |
$fs = $this;
|
8225 |
+
|
8226 |
if ( $this->is_addon() ) {
|
8227 |
$parent_instance = $this->get_parent_instance();
|
8228 |
|
9881 |
|
9882 |
if ( is_object( $fs ) ) {
|
9883 |
$fs->remove_sdk_reference();
|
9884 |
+
|
9885 |
self::require_plugin_essentials();
|
9886 |
|
9887 |
if ( is_plugin_active( $fs->_free_plugin_basename ) ||
|
10446 |
if ( fs_starts_with( $option_name, WP_FS__MODULE_TYPE_THEME . '_' ) ) {
|
10447 |
$option_name = str_replace( WP_FS__MODULE_TYPE_THEME . '_', '', $option_name );
|
10448 |
}
|
10449 |
+
|
10450 |
switch ( $option_name ) {
|
10451 |
case 'plugins':
|
10452 |
case 'themes':
|
12945 |
// Subscription cancellation dialog box is currently not supported for multisite networks.
|
12946 |
return array();
|
12947 |
}
|
12948 |
+
|
12949 |
if ( $this->is_whitelabeled() ) {
|
12950 |
return array();
|
12951 |
}
|
13045 |
! $this->is_premium() &&
|
13046 |
/**
|
13047 |
* Also handle the case when an upgrade was made using the free version.
|
13048 |
+
*
|
13049 |
* @author Leo Fajardo (@leorw)
|
13050 |
* @since 2.3.2
|
13051 |
*/
|
13272 |
*/
|
13273 |
function _activate_license_ajax_action() {
|
13274 |
$this->_logger->entrance();
|
13275 |
+
|
13276 |
$this->check_ajax_referer( 'activate_license' );
|
13277 |
|
13278 |
$license_key = trim( fs_request_get( 'license_key' ) );
|
13342 |
foreach ( $installs_info_by_slug_map as $slug => $install_info ) {
|
13343 |
$install_ids[ $slug ] = $install_info['install']->id;
|
13344 |
}
|
13345 |
+
|
13346 |
$params['install_ids'] = implode( ',', array_values( $install_ids ) );
|
13347 |
|
13348 |
$install = $this->get_api_site_scope()->call( $this->add_show_pending( '/' ), 'put', $params );
|
13435 |
*
|
13436 |
* @author Vova Feldman (@svovaf)
|
13437 |
* @since 2.3.0
|
13438 |
+
*
|
13439 |
* @param string $license_key
|
13440 |
* @param null|bool $is_marketing_allowed
|
13441 |
* @param null|number $plugin_id
|
@@ -125,4 +125,4 @@
|
|
125 |
'module_slug' => $slug,
|
126 |
'module_version' => $fs->get_plugin_version(),
|
127 |
);
|
128 |
-
fs_require_template( 'powered-by.php', $params );
|
125 |
'module_slug' => $slug,
|
126 |
'module_version' => $fs->get_plugin_version(),
|
127 |
);
|
128 |
+
fs_require_template( 'powered-by.php', $params );
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Nothing to see here.
|
4 |
+
*/
|
@@ -4,7 +4,7 @@
|
|
4 |
* Plugin URI: http://wpactivitylog.com/
|
5 |
* Description: Identify WordPress security issues before they become a problem. Keep track of everything happening on your WordPress including WordPress users activity. Similar to Windows Event Log and Linux Syslog, WP Activity Log generates a security alert for everything that happens on your WordPress blogs and websites. Use the Activity log viewer included in the plugin to see all the security alerts.
|
6 |
* Author: WP White Security
|
7 |
-
* Version: 4.
|
8 |
* Text Domain: wp-security-audit-log
|
9 |
* Author URI: http://www.wpwhitesecurity.com/
|
10 |
* License: GPL2
|
@@ -47,7 +47,7 @@ if ( ! function_exists( 'wsal_freemius' ) ) {
|
|
47 |
*
|
48 |
* @var string
|
49 |
*/
|
50 |
-
public $version = '4.
|
51 |
|
52 |
/**
|
53 |
* Plugin constants.
|
@@ -498,7 +498,7 @@ if ( ! function_exists( 'wsal_freemius' ) ) {
|
|
498 |
$bbpress_addon = new WSAL_BBPressExtension;
|
499 |
$wpforms_addon = new WSAL_WPFormsExtension;
|
500 |
// Comment out till ready.
|
501 |
-
|
502 |
}
|
503 |
|
504 |
// Extensions which are both admin and frontend based.
|
@@ -661,6 +661,7 @@ if ( ! function_exists( 'wsal_freemius' ) ) {
|
|
661 |
wsal_freemius()->add_filter( 'plugin_icon', function( $plugin_icon) {
|
662 |
return WSAL_BASE_DIR . 'img/wsal-logo@2x.png';
|
663 |
} );
|
|
|
664 |
}
|
665 |
}
|
666 |
}
|
@@ -1044,7 +1045,12 @@ if ( ! function_exists( 'wsal_freemius' ) ) {
|
|
1044 |
$site_count = null;
|
1045 |
preg_match( '!\d+!', $error, $site_count );
|
1046 |
|
1047 |
-
|
|
|
|
|
|
|
|
|
|
|
1048 |
/* Translators: Number of sites */
|
1049 |
$error = sprintf( esc_html__( 'The license is limited to %s sub-sites. You need to upgrade your license to cover all the sub-sites on this network.', 'wp-security-audit-log' ), $site_count[0] );
|
1050 |
}
|
@@ -1106,8 +1112,6 @@ if ( ! function_exists( 'wsal_freemius' ) ) {
|
|
1106 |
$this->Update( $old_version, $new_version );
|
1107 |
}
|
1108 |
|
1109 |
-
// Generate index.php for uploads directory.
|
1110 |
-
$this->settings()->generate_index_files();
|
1111 |
}
|
1112 |
|
1113 |
/**
|
@@ -1338,8 +1342,8 @@ if ( ! function_exists( 'wsal_freemius' ) ) {
|
|
1338 |
$this->setup();
|
1339 |
$this->init();
|
1340 |
|
1341 |
-
//
|
1342 |
-
|
1343 |
|
1344 |
// On first install this won't be loaded because not premium, add it
|
1345 |
// now so it installs.
|
@@ -1347,23 +1351,20 @@ if ( ! function_exists( 'wsal_freemius' ) ) {
|
|
1347 |
|
1348 |
// run any installs.
|
1349 |
self::getConnector()->installAll();
|
|
|
|
|
1350 |
|
1351 |
-
|
1352 |
-
|
1353 |
-
|
1354 |
-
|
1355 |
-
|
1356 |
-
$this->settings()->SwitchToArchiveDB();
|
1357 |
-
self::getConnector()->getAdapter( 'Occurrence' )->create_indexes();
|
1358 |
-
self::getConnector()->getAdapter( 'Meta' )->create_indexes();
|
1359 |
-
}
|
1360 |
-
}
|
1361 |
|
1362 |
// If system already installed, do updates now (if any).
|
1363 |
$old_version = $this->GetOldVersion();
|
1364 |
$new_version = $this->GetNewVersion();
|
1365 |
|
1366 |
-
if ( $
|
1367 |
$this->Update( $old_version, $new_version );
|
1368 |
}
|
1369 |
|
@@ -1379,25 +1380,8 @@ if ( ! function_exists( 'wsal_freemius' ) ) {
|
|
1379 |
// Run on each install to check MainWP Child plugin.
|
1380 |
$this->settings()->set_mainwp_child_stealth_mode();
|
1381 |
|
1382 |
-
//
|
1383 |
-
|
1384 |
-
?>
|
1385 |
-
<html>
|
1386 |
-
<head><style>body{margin:0;}.warn-icon-tri{top:7px;left:5px;position:absolute;border-left:16px solid #FFF;border-right:16px solid #FFF;border-bottom:28px solid #C33;height:3px;width:4px}.warn-icon-chr{top:10px;left:18px;position:absolute;color:#FFF;font:26px Georgia}.warn-icon-cir{top:4px;left:0;position:absolute;overflow:hidden;border:6px solid #FFF;border-radius:32px;width:34px;height:34px}.warn-wrap{position:relative;color:#A00;font-size:13px;font-family:sans-serif;padding:6px 48px;line-height:1.4;}.warn-wrap a,.warn-wrap a:hover{color:#F56}</style></head>
|
1387 |
-
<body>
|
1388 |
-
<div class="warn-wrap">
|
1389 |
-
<div class="warn-icon-tri"></div><div class="warn-icon-chr">!</div><div class="warn-icon-cir"></div>
|
1390 |
-
<?php esc_html_e( 'This plugin uses 3 tables in the WordPress database to store the activity log and settings. It seems that these tables were not created.', 'wp-security-audit-log' ); ?>
|
1391 |
-
<br />
|
1392 |
-
<?php esc_html_e( 'This could happen because the database user does not have the right privileges to create the tables in the database. We recommend you to update the privileges and try enabling the plugin again.', 'wp-security-audit-log' ); ?>
|
1393 |
-
<br />
|
1394 |
-
<?php /* Translators: %s: Support Hyperlink */ echo sprintf( esc_html__( 'If after doing so you still have issues, please send us an email on %s for assistance.', 'wp-security-audit-log' ), '<a href="mailto:support@wpsecurityauditlog.com" target="_blank">' . esc_html__( 'support@wpsecurityauditlog.com', 'wp-security-audit-log' ) . '</a>' ); ?>
|
1395 |
-
</div>
|
1396 |
-
</body>
|
1397 |
-
</html>
|
1398 |
-
<?php
|
1399 |
-
die( 1 );
|
1400 |
-
endif;
|
1401 |
}
|
1402 |
|
1403 |
/**
|
@@ -1412,6 +1396,12 @@ if ( ! function_exists( 'wsal_freemius' ) ) {
|
|
1412 |
// Update version in db.
|
1413 |
$this->SetGlobalSetting( 'version', $new_version );
|
1414 |
|
|
|
|
|
|
|
|
|
|
|
|
|
1415 |
// Do version-to-version specific changes.
|
1416 |
if ( '0.0.0' !== $old_version && -1 === version_compare( $old_version, $new_version ) ) {
|
1417 |
// Dismiss privacy notice.
|
@@ -1483,6 +1473,13 @@ if ( ! function_exists( 'wsal_freemius' ) ) {
|
|
1483 |
wp_unschedule_event($schedule_time, 'wsal_log_files_pruning', [] );
|
1484 |
}
|
1485 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1486 |
}
|
1487 |
}
|
1488 |
|
@@ -1573,16 +1570,18 @@ if ( ! function_exists( 'wsal_freemius' ) ) {
|
|
1573 |
* @internal
|
1574 |
*/
|
1575 |
public function HidePlugin() {
|
1576 |
-
$
|
1577 |
-
|
1578 |
-
|
1579 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1580 |
}
|
1581 |
-
?>
|
1582 |
-
<style type="text/css">
|
1583 |
-
<?php echo rtrim( $selectr, ', ' ); ?> { display: none; }
|
1584 |
-
</style>
|
1585 |
-
<?php
|
1586 |
}
|
1587 |
|
1588 |
/**
|
@@ -2040,6 +2039,21 @@ if ( ! function_exists( 'wsal_freemius' ) ) {
|
|
2040 |
return $plugins;
|
2041 |
}
|
2042 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2043 |
/**
|
2044 |
* Temporary autoloader for WSAL classes that somehow bypassed regular means of including
|
2045 |
* them during the plugin runtime.
|
4 |
* Plugin URI: http://wpactivitylog.com/
|
5 |
* Description: Identify WordPress security issues before they become a problem. Keep track of everything happening on your WordPress including WordPress users activity. Similar to Windows Event Log and Linux Syslog, WP Activity Log generates a security alert for everything that happens on your WordPress blogs and websites. Use the Activity log viewer included in the plugin to see all the security alerts.
|
6 |
* Author: WP White Security
|
7 |
+
* Version: 4.2.0
|
8 |
* Text Domain: wp-security-audit-log
|
9 |
* Author URI: http://www.wpwhitesecurity.com/
|
10 |
* License: GPL2
|
47 |
*
|
48 |
* @var string
|
49 |
*/
|
50 |
+
public $version = '4.2.0';
|
51 |
|
52 |
/**
|
53 |
* Plugin constants.
|
498 |
$bbpress_addon = new WSAL_BBPressExtension;
|
499 |
$wpforms_addon = new WSAL_WPFormsExtension;
|
500 |
// Comment out till ready.
|
501 |
+
$gravityforms_addon = new WSAL_GravityFormsExtension;
|
502 |
}
|
503 |
|
504 |
// Extensions which are both admin and frontend based.
|
661 |
wsal_freemius()->add_filter( 'plugin_icon', function( $plugin_icon) {
|
662 |
return WSAL_BASE_DIR . 'img/wsal-logo@2x.png';
|
663 |
} );
|
664 |
+
wsal_freemius()->add_action( 'is_submenu_visible', array( $this, 'hide_freemius_submenu_items' ), 10, 2 );
|
665 |
}
|
666 |
}
|
667 |
}
|
1045 |
$site_count = null;
|
1046 |
preg_match( '!\d+!', $error, $site_count );
|
1047 |
|
1048 |
+
// Check if this is an expired error.
|
1049 |
+
if ( strpos( $error, 'expired' ) !== false ) {
|
1050 |
+
/* Translators: Expired message and time */
|
1051 |
+
$error = sprintf( esc_html__( '%s You need to renew your license to continue using premium features.', 'wp-security-audit-log' ), preg_replace('/\([^)]+\)/','', $error ) );
|
1052 |
+
}
|
1053 |
+
elseif ( ! empty( $site_count[0] ) ) {
|
1054 |
/* Translators: Number of sites */
|
1055 |
$error = sprintf( esc_html__( 'The license is limited to %s sub-sites. You need to upgrade your license to cover all the sub-sites on this network.', 'wp-security-audit-log' ), $site_count[0] );
|
1056 |
}
|
1112 |
$this->Update( $old_version, $new_version );
|
1113 |
}
|
1114 |
|
|
|
|
|
1115 |
}
|
1116 |
|
1117 |
/**
|
1342 |
$this->setup();
|
1343 |
$this->init();
|
1344 |
|
1345 |
+
// disable database sensor during the creation of tables
|
1346 |
+
WSAL_Sensors_Database::$enabled = false;
|
1347 |
|
1348 |
// On first install this won't be loaded because not premium, add it
|
1349 |
// now so it installs.
|
1351 |
|
1352 |
// run any installs.
|
1353 |
self::getConnector()->installAll();
|
1354 |
+
self::getConnector()->getAdapter( 'Occurrence' )->create_indexes();
|
1355 |
+
self::getConnector()->getAdapter( 'Meta' )->create_indexes();
|
1356 |
|
1357 |
+
if ( $this->settings()->IsArchivingEnabled() ) {
|
1358 |
+
$this->settings()->SwitchToArchiveDB();
|
1359 |
+
self::getConnector()->getAdapter( 'Occurrence' )->create_indexes();
|
1360 |
+
self::getConnector()->getAdapter( 'Meta' )->create_indexes();
|
1361 |
+
}
|
|
|
|
|
|
|
|
|
|
|
1362 |
|
1363 |
// If system already installed, do updates now (if any).
|
1364 |
$old_version = $this->GetOldVersion();
|
1365 |
$new_version = $this->GetNewVersion();
|
1366 |
|
1367 |
+
if ( $old_version !== $new_version ) {
|
1368 |
$this->Update( $old_version, $new_version );
|
1369 |
}
|
1370 |
|
1380 |
// Run on each install to check MainWP Child plugin.
|
1381 |
$this->settings()->set_mainwp_child_stealth_mode();
|
1382 |
|
1383 |
+
// re-enable the database sensor after the tables are created
|
1384 |
+
WSAL_Sensors_Database::$enabled = true;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1385 |
}
|
1386 |
|
1387 |
/**
|
1396 |
// Update version in db.
|
1397 |
$this->SetGlobalSetting( 'version', $new_version );
|
1398 |
|
1399 |
+
if ( '0.0.0' === $old_version ) {
|
1400 |
+
// set some initial plugins settings (only the ones that bypass the regular settings retrieval at some
|
1401 |
+
// point) - e.g. disabled events
|
1402 |
+
$this->SetGlobalSetting( 'disabled-alerts', implode( ',', $this->settings()->always_disabled_alerts ) );
|
1403 |
+
}
|
1404 |
+
|
1405 |
// Do version-to-version specific changes.
|
1406 |
if ( '0.0.0' !== $old_version && -1 === version_compare( $old_version, $new_version ) ) {
|
1407 |
// Dismiss privacy notice.
|
1473 |
wp_unschedule_event($schedule_time, 'wsal_log_files_pruning', [] );
|
1474 |
}
|
1475 |
}
|
1476 |
+
|
1477 |
+
if ( version_compare( $new_version, '4.2.0', '>=' ) ) {
|
1478 |
+
// delete custom logging dir path from the settings
|
1479 |
+
$this->DeleteSettingByName( WpSecurityAuditLog::OPTIONS_PREFIX . 'custom-logging-dir' );
|
1480 |
+
// delete dev options from the settings
|
1481 |
+
$this->DeleteSettingByName( WpSecurityAuditLog::OPTIONS_PREFIX . 'dev-options' );
|
1482 |
+
}
|
1483 |
}
|
1484 |
}
|
1485 |
|
1570 |
* @internal
|
1571 |
*/
|
1572 |
public function HidePlugin() {
|
1573 |
+
if ( ! $this->_settings->CurrentUserCan( 'view' ) ) {
|
1574 |
+
$selectr = '';
|
1575 |
+
$plugins = array( 'wp-security-audit-log', 'wp-security-audit-log-premium' );
|
1576 |
+
foreach ( $plugins as $value ) {
|
1577 |
+
$selectr .= '.wp-list-table.plugins tr[data-slug="' . $value . '"], ';
|
1578 |
+
}
|
1579 |
+
?>
|
1580 |
+
<style type="text/css">
|
1581 |
+
<?php echo rtrim( $selectr, ', ' ); ?> { display: none; }
|
1582 |
+
</style>
|
1583 |
+
<?php
|
1584 |
}
|
|
|
|
|
|
|
|
|
|
|
1585 |
}
|
1586 |
|
1587 |
/**
|
2039 |
return $plugins;
|
2040 |
}
|
2041 |
|
2042 |
+
/**
|
2043 |
+
* Use filter to hide freemius submenu items.
|
2044 |
+
*
|
2045 |
+
* @param boolean $is_visible Default visibility.
|
2046 |
+
* @param string $submenu_id Menu slug.
|
2047 |
+
*
|
2048 |
+
* @return boolean New visibility.
|
2049 |
+
*/
|
2050 |
+
public function hide_freemius_submenu_items( $is_visible, $submenu_id ) {
|
2051 |
+
if ( 'contact' === $submenu_id ) {
|
2052 |
+
$is_visible = false;
|
2053 |
+
}
|
2054 |
+
return $is_visible;
|
2055 |
+
}
|
2056 |
+
|
2057 |
/**
|
2058 |
* Temporary autoloader for WSAL classes that somehow bypassed regular means of including
|
2059 |
* them during the plugin runtime.
|