Version Description
(2017-02-08) =
-
New Features
- Audit trail for WooCommerce Store and Products.
- New Hover over functionality to disable alerts with a single click.
-
New WooCommerce Audit Trail Alerts
- Refer to the Audit trail WooCommerce Alerts List for a complete list of alerts the plugin uses to keep a record of changes in the WooCommerce store and products.
-
Plugin Improvements
- Improved severity of alerts and added severity description on hover over.
- Removed all code related to PHP error monitoring, which is no longer used (code spring cleaning).
-
Bug Fixes
- Fixed an issue in which 404 logs where still being generated when the logs option was disabled but alert 6007 was enabled.
Download this release
Release Info
Developer | WPWhiteSecurity |
Plugin | WP Security Audit Log |
Version | 2.6 |
Comparing to | |
See all releases |
Code changes from version 2.5.9.2 to 2.6
- classes/Adapters/MySQL/MetaAdapter.php +4 -3
- classes/AuditLogListView.php +12 -3
- classes/EDD_SL_Plugin_Updater.php +157 -157
- classes/Sensors/BBPress.php +0 -2
- classes/Sensors/Content.php +15 -8
- classes/Sensors/PluginsThemes.php +34 -7
- classes/Sensors/System.php +2 -2
- classes/Sensors/WooCommerce.php +844 -0
- classes/Views/AuditLog.php +4 -1
- classes/Views/ToggleAlerts.php +11 -2
- css/auditlog.css +62 -8
- css/darktooltip.css +129 -0
- css/modal-bg.png +0 -0
- defaults.php +40 -1
- js/auditlog.js +30 -0
- js/jquery.darktooltip.js +265 -0
- languages/wp-security-audit-log.pot +594 -213
- readme.txt +23 -5
- wp-security-audit-log.php +22 -2
classes/Adapters/MySQL/MetaAdapter.php
CHANGED
@@ -40,14 +40,15 @@ class WSAL_Adapters_MySQL_Meta extends WSAL_Adapters_MySQL_ActiveRecord implemen
|
|
40 |
return $this->Load('occurrence_id = %d AND name = %s', array($occurenceId, $metaName));
|
41 |
}
|
42 |
|
43 |
-
public function GetMatchingIPs()
|
44 |
{
|
45 |
$_wpdb = $this->connection;
|
46 |
-
$
|
|
|
|
|
47 |
foreach ($ips as $key => $ip) {
|
48 |
$ips[$key] = str_replace('"', '', $ip);
|
49 |
}
|
50 |
return array_unique($ips);
|
51 |
}
|
52 |
-
|
53 |
}
|
40 |
return $this->Load('occurrence_id = %d AND name = %s', array($occurenceId, $metaName));
|
41 |
}
|
42 |
|
43 |
+
public function GetMatchingIPs($limit = null)
|
44 |
{
|
45 |
$_wpdb = $this->connection;
|
46 |
+
$sql = "SELECT DISTINCT value FROM {$this->GetTable()} WHERE name = \"ClientIP\"";
|
47 |
+
if (!is_null($limit)) $sql .= ' LIMIT ' . $limit;
|
48 |
+
$ips = $_wpdb->get_col($sql);
|
49 |
foreach ($ips as $key => $ip) {
|
50 |
$ips[$key] = str_replace('"', '', $ip);
|
51 |
}
|
52 |
return array_unique($ips);
|
53 |
}
|
|
|
54 |
}
|
classes/AuditLogListView.php
CHANGED
@@ -210,14 +210,23 @@ class WSAL_AuditLogListView extends WP_List_Table
|
|
210 |
. ($item->is_read ? 'old' : 'new')
|
211 |
. '" title="' . __('Click to toggle.', 'wp-security-audit-log') . '"></span>';
|
212 |
case 'type':
|
213 |
-
|
|
|
|
|
214 |
case 'code':
|
215 |
$code = $this->_plugin->alerts->GetAlert($item->alert_id);
|
216 |
$code = $code ? $code->code : 0;
|
217 |
$const = (object)array('name' => 'E_UNKNOWN', 'value' => 0, 'description' => __('Unknown error code.', 'wp-security-audit-log'));
|
218 |
$const = $this->_plugin->constants->GetConstantBy('value', $code, $const);
|
219 |
-
|
220 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
221 |
case 'crtd':
|
222 |
return $item->created_on ? (
|
223 |
str_replace(
|
210 |
. ($item->is_read ? 'old' : 'new')
|
211 |
. '" title="' . __('Click to toggle.', 'wp-security-audit-log') . '"></span>';
|
212 |
case 'type':
|
213 |
+
$code = $this->_plugin->alerts->GetAlert($item->alert_id);
|
214 |
+
return '<span class="log-disable" data-tooltip="'. __('Disable this type of alerts.', 'wp-security-audit-log').'<br>'.$item->alert_id.' - '.esc_html($code->desc).'" data-alert-id="'.$item->alert_id.'">'
|
215 |
+
. str_pad($item->alert_id, 4, '0', STR_PAD_LEFT) . ' </span>';
|
216 |
case 'code':
|
217 |
$code = $this->_plugin->alerts->GetAlert($item->alert_id);
|
218 |
$code = $code ? $code->code : 0;
|
219 |
$const = (object)array('name' => 'E_UNKNOWN', 'value' => 0, 'description' => __('Unknown error code.', 'wp-security-audit-log'));
|
220 |
$const = $this->_plugin->constants->GetConstantBy('value', $code, $const);
|
221 |
+
if ($const->name == 'E_CRITICAL') {
|
222 |
+
$const->name = 'Critical';
|
223 |
+
} else if ($const->name == 'E_WARNING') {
|
224 |
+
$const->name = 'Warning';
|
225 |
+
} else if ($const->name == 'E_NOTICE') {
|
226 |
+
$const->name = 'Notification';
|
227 |
+
}
|
228 |
+
return '<a class="tooltip" href="#" data-tooltip="'. esc_html($const->name) .'"><span class="log-type log-type-'. $const->value
|
229 |
+
.'"></span></a>';
|
230 |
case 'crtd':
|
231 |
return $item->created_on ? (
|
232 |
str_replace(
|
classes/EDD_SL_Plugin_Updater.php
CHANGED
@@ -10,161 +10,161 @@
|
|
10 |
* @version 1.2
|
11 |
*/
|
12 |
class EDD_SL_Plugin_Updater {
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
}
|
10 |
* @version 1.2
|
11 |
*/
|
12 |
class EDD_SL_Plugin_Updater {
|
13 |
+
private $api_url = '';
|
14 |
+
private $api_data = array();
|
15 |
+
private $name = '';
|
16 |
+
private $slug = '';
|
17 |
+
private $do_check = false;
|
18 |
+
|
19 |
+
/**
|
20 |
+
* Class constructor.
|
21 |
+
*
|
22 |
+
* @uses plugin_basename()
|
23 |
+
* @uses hook()
|
24 |
+
*
|
25 |
+
* @param string $_api_url The URL pointing to the custom API endpoint.
|
26 |
+
* @param string $_plugin_file Path to the plugin file.
|
27 |
+
* @param array $_api_data Optional data to send with API calls.
|
28 |
+
* @return void
|
29 |
+
*/
|
30 |
+
function __construct( $_api_url, $_plugin_file, $_api_data = null ) {
|
31 |
+
$this->api_url = trailingslashit( $_api_url );
|
32 |
+
$this->api_data = urlencode_deep( $_api_data );
|
33 |
+
$this->name = plugin_basename( $_plugin_file );
|
34 |
+
$this->slug = basename( $_plugin_file, '.php');
|
35 |
+
$this->version = $_api_data['version'];
|
36 |
+
|
37 |
+
// Set up hooks.
|
38 |
+
$this->hook();
|
39 |
+
}
|
40 |
+
|
41 |
+
/**
|
42 |
+
* Set up WordPress filters to hook into WP's update process.
|
43 |
+
*
|
44 |
+
* @uses add_filter()
|
45 |
+
*
|
46 |
+
* @return void
|
47 |
+
*/
|
48 |
+
private function hook() {
|
49 |
+
add_filter( 'pre_set_site_transient_update_plugins', array( $this, 'pre_set_site_transient_update_plugins_filter' ) );
|
50 |
+
add_filter( 'plugins_api', array( $this, 'plugins_api_filter' ), 10, 3 );
|
51 |
+
add_filter( 'http_request_args', array( $this, 'http_request_args' ), 10, 2 );
|
52 |
+
}
|
53 |
+
|
54 |
+
/**
|
55 |
+
* Check for Updates at the defined API endpoint and modify the update array.
|
56 |
+
*
|
57 |
+
* This function dives into the update API just when WordPress creates its update array,
|
58 |
+
* then adds a custom API call and injects the custom plugin data retrieved from the API.
|
59 |
+
* It is reassembled from parts of the native WordPress plugin update code.
|
60 |
+
* See wp-includes/update.php line 121 for the original wp_update_plugins() function.
|
61 |
+
*
|
62 |
+
* @uses api_request()
|
63 |
+
*
|
64 |
+
* @param array $_transient_data Update array build by WordPress.
|
65 |
+
* @return array Modified update array with custom plugin data.
|
66 |
+
*/
|
67 |
+
function pre_set_site_transient_update_plugins_filter( $_transient_data ) {
|
68 |
+
|
69 |
+
if( empty( $_transient_data ) || ! $this->do_check ) {
|
70 |
+
|
71 |
+
// This ensures that the custom API request only runs on the second time that WP fires the update check
|
72 |
+
$this->do_check = true;
|
73 |
+
|
74 |
+
return $_transient_data;
|
75 |
+
}
|
76 |
+
|
77 |
+
$to_send = array( 'slug' => $this->slug );
|
78 |
+
|
79 |
+
$api_response = $this->api_request( 'plugin_latest_version', $to_send );
|
80 |
+
|
81 |
+
if( false !== $api_response && is_object( $api_response ) && isset( $api_response->new_version ) ) {
|
82 |
+
|
83 |
+
if( version_compare( $this->version, $api_response->new_version, '<' ) ) {
|
84 |
+
$_transient_data->response[$this->name] = $api_response;
|
85 |
+
}
|
86 |
+
}
|
87 |
+
return $_transient_data;
|
88 |
+
}
|
89 |
+
|
90 |
+
|
91 |
+
/**
|
92 |
+
* Updates information on the "View version x.x details" page with custom data.
|
93 |
+
*
|
94 |
+
* @uses api_request()
|
95 |
+
*
|
96 |
+
* @param mixed $_data
|
97 |
+
* @param string $_action
|
98 |
+
* @param object $_args
|
99 |
+
* @return object $_data
|
100 |
+
*/
|
101 |
+
function plugins_api_filter( $_data, $_action = '', $_args = null ) {
|
102 |
+
if ( ( $_action != 'plugin_information' ) || !isset( $_args->slug ) || ( $_args->slug != $this->slug ) ) return $_data;
|
103 |
+
|
104 |
+
$to_send = array( 'slug' => $this->slug );
|
105 |
+
|
106 |
+
$api_response = $this->api_request( 'plugin_information', $to_send );
|
107 |
+
if ( false !== $api_response ) $_data = $api_response;
|
108 |
+
|
109 |
+
return $_data;
|
110 |
+
}
|
111 |
+
|
112 |
+
|
113 |
+
/**
|
114 |
+
* Disable SSL verification in order to prevent download update failures
|
115 |
+
*
|
116 |
+
* @param array $args
|
117 |
+
* @param string $url
|
118 |
+
* @return object $array
|
119 |
+
*/
|
120 |
+
function http_request_args( $args, $url ) {
|
121 |
+
// If it is an https request and we are performing a package download, disable ssl verification
|
122 |
+
if( strpos( $url, 'https://' ) !== false && strpos( $url, 'edd_action=package_download' ) ) {
|
123 |
+
$args['sslverify'] = false;
|
124 |
+
}
|
125 |
+
return $args;
|
126 |
+
}
|
127 |
+
|
128 |
+
/**
|
129 |
+
* Calls the API and, if successfull, returns the object delivered by the API.
|
130 |
+
*
|
131 |
+
* @uses get_bloginfo()
|
132 |
+
* @uses wp_remote_post()
|
133 |
+
* @uses is_wp_error()
|
134 |
+
*
|
135 |
+
* @param string $_action The requested action.
|
136 |
+
* @param array $_data Parameters for the API action.
|
137 |
+
* @return false||object
|
138 |
+
*/
|
139 |
+
private function api_request( $_action, $_data ) {
|
140 |
+
|
141 |
+
global $wp_version;
|
142 |
+
|
143 |
+
$data = array_merge( $this->api_data, $_data );
|
144 |
+
|
145 |
+
if( $data['slug'] != $this->slug )
|
146 |
+
return;
|
147 |
+
|
148 |
+
if( empty( $data['license'] ) )
|
149 |
+
return;
|
150 |
+
|
151 |
+
$api_params = array(
|
152 |
+
'edd_action' => 'get_version',
|
153 |
+
'license' => $data['license'],
|
154 |
+
'name' => $data['item_name'],
|
155 |
+
'slug' => $this->slug,
|
156 |
+
'author' => $data['author'],
|
157 |
+
'url' => home_url()
|
158 |
+
);
|
159 |
+
$request = wp_remote_post( $this->api_url, array( 'timeout' => 15, 'sslverify' => false, 'body' => $api_params ) );
|
160 |
+
|
161 |
+
if ( ! is_wp_error( $request ) ):
|
162 |
+
$request = json_decode( wp_remote_retrieve_body( $request ) );
|
163 |
+
if( $request && isset( $request->sections ) )
|
164 |
+
$request->sections = maybe_unserialize( $request->sections );
|
165 |
+
return $request;
|
166 |
+
else:
|
167 |
+
return false;
|
168 |
+
endif;
|
169 |
+
}
|
170 |
}
|
classes/Sensors/BBPress.php
CHANGED
@@ -4,7 +4,6 @@
|
|
4 |
*/
|
5 |
class WSAL_Sensors_BBPress extends WSAL_AbstractSensor
|
6 |
{
|
7 |
-
protected $_OldPost = null;
|
8 |
protected $_OldLink = null;
|
9 |
|
10 |
public function HookEvents()
|
@@ -33,7 +32,6 @@ class WSAL_Sensors_BBPress extends WSAL_AbstractSensor
|
|
33 |
&& !(isset($_POST['action']) && $_POST['action'] == 'autosave')
|
34 |
) {
|
35 |
$postID = intval($_POST['post_ID']);
|
36 |
-
$this->_OldPost = get_post($postID);
|
37 |
$this->_OldLink = get_permalink($postID);
|
38 |
}
|
39 |
}
|
4 |
*/
|
5 |
class WSAL_Sensors_BBPress extends WSAL_AbstractSensor
|
6 |
{
|
|
|
7 |
protected $_OldLink = null;
|
8 |
|
9 |
public function HookEvents()
|
32 |
&& !(isset($_POST['action']) && $_POST['action'] == 'autosave')
|
33 |
) {
|
34 |
$postID = intval($_POST['post_ID']);
|
|
|
35 |
$this->_OldLink = get_permalink($postID);
|
36 |
}
|
37 |
}
|
classes/Sensors/Content.php
CHANGED
@@ -111,7 +111,7 @@ class WSAL_Sensors_Content extends WSAL_AbstractSensor
|
|
111 |
));
|
112 |
// run checks
|
113 |
if ($this->_OldPost) {
|
114 |
-
if ($this->
|
115 |
return;
|
116 |
}
|
117 |
if ($oldStatus == 'auto-draft' || $original == 'auto-draft') {
|
@@ -207,7 +207,7 @@ class WSAL_Sensors_Content extends WSAL_AbstractSensor
|
|
207 |
public function EventPostDeleted($post_id)
|
208 |
{
|
209 |
$post = get_post($post_id);
|
210 |
-
if ($this->
|
211 |
return;
|
212 |
}
|
213 |
$WPActions = array('delete');
|
@@ -233,7 +233,7 @@ class WSAL_Sensors_Content extends WSAL_AbstractSensor
|
|
233 |
public function EventPostTrashed($post_id)
|
234 |
{
|
235 |
$post = get_post($post_id);
|
236 |
-
if ($this->
|
237 |
return;
|
238 |
}
|
239 |
$event = $this->GetEventTypeForPostType($post, 2012, 2013, 2034);
|
@@ -250,7 +250,7 @@ class WSAL_Sensors_Content extends WSAL_AbstractSensor
|
|
250 |
public function EventPostUntrashed($post_id)
|
251 |
{
|
252 |
$post = get_post($post_id);
|
253 |
-
if ($this->
|
254 |
return;
|
255 |
}
|
256 |
$event = $this->GetEventTypeForPostType($post, 2014, 2015, 2035);
|
@@ -490,7 +490,7 @@ class WSAL_Sensors_Content extends WSAL_AbstractSensor
|
|
490 |
|
491 |
public function CheckModificationChange($post_ID, $oldpost, $newpost)
|
492 |
{
|
493 |
-
if ($this->
|
494 |
return;
|
495 |
}
|
496 |
$changes = $this->CheckTitleChange($oldpost, $newpost);
|
@@ -638,15 +638,16 @@ class WSAL_Sensors_Content extends WSAL_AbstractSensor
|
|
638 |
}
|
639 |
|
640 |
/**
|
641 |
-
* Ignore post from BBPress Plugin
|
642 |
-
* Triggered on the
|
643 |
*/
|
644 |
-
private function
|
645 |
{
|
646 |
switch ($post->post_type) {
|
647 |
case 'forum':
|
648 |
case 'topic':
|
649 |
case 'reply':
|
|
|
650 |
return true;
|
651 |
default:
|
652 |
return false;
|
@@ -681,6 +682,9 @@ class WSAL_Sensors_Content extends WSAL_AbstractSensor
|
|
681 |
{
|
682 |
if (is_user_logged_in()) {
|
683 |
if (!is_admin()) {
|
|
|
|
|
|
|
684 |
$currentPath = $_SERVER["REQUEST_URI"];
|
685 |
if (!empty($_SERVER["HTTP_REFERER"])
|
686 |
&& strpos($_SERVER["HTTP_REFERER"], $currentPath) !== false) {
|
@@ -707,6 +711,9 @@ class WSAL_Sensors_Content extends WSAL_AbstractSensor
|
|
707 |
{
|
708 |
if (is_user_logged_in()) {
|
709 |
if (is_admin()) {
|
|
|
|
|
|
|
710 |
$currentPath = $_SERVER["SCRIPT_NAME"] . "?post=" . $post->ID;
|
711 |
if (!empty($_SERVER["HTTP_REFERER"])
|
712 |
&& strpos($_SERVER["HTTP_REFERER"], $currentPath) !== false) {
|
111 |
));
|
112 |
// run checks
|
113 |
if ($this->_OldPost) {
|
114 |
+
if ($this->CheckOtherSensors($this->_OldPost)) {
|
115 |
return;
|
116 |
}
|
117 |
if ($oldStatus == 'auto-draft' || $original == 'auto-draft') {
|
207 |
public function EventPostDeleted($post_id)
|
208 |
{
|
209 |
$post = get_post($post_id);
|
210 |
+
if ($this->CheckOtherSensors($post)) {
|
211 |
return;
|
212 |
}
|
213 |
$WPActions = array('delete');
|
233 |
public function EventPostTrashed($post_id)
|
234 |
{
|
235 |
$post = get_post($post_id);
|
236 |
+
if ($this->CheckOtherSensors($post)) {
|
237 |
return;
|
238 |
}
|
239 |
$event = $this->GetEventTypeForPostType($post, 2012, 2013, 2034);
|
250 |
public function EventPostUntrashed($post_id)
|
251 |
{
|
252 |
$post = get_post($post_id);
|
253 |
+
if ($this->CheckOtherSensors($post)) {
|
254 |
return;
|
255 |
}
|
256 |
$event = $this->GetEventTypeForPostType($post, 2014, 2015, 2035);
|
490 |
|
491 |
public function CheckModificationChange($post_ID, $oldpost, $newpost)
|
492 |
{
|
493 |
+
if ($this->CheckOtherSensors($oldpost)) {
|
494 |
return;
|
495 |
}
|
496 |
$changes = $this->CheckTitleChange($oldpost, $newpost);
|
638 |
}
|
639 |
|
640 |
/**
|
641 |
+
* Ignore post from BBPress, WooCommerce Plugin
|
642 |
+
* Triggered on the Sensors
|
643 |
*/
|
644 |
+
private function CheckOtherSensors($post)
|
645 |
{
|
646 |
switch ($post->post_type) {
|
647 |
case 'forum':
|
648 |
case 'topic':
|
649 |
case 'reply':
|
650 |
+
case 'product':
|
651 |
return true;
|
652 |
default:
|
653 |
return false;
|
682 |
{
|
683 |
if (is_user_logged_in()) {
|
684 |
if (!is_admin()) {
|
685 |
+
if ($this->CheckOtherSensors($post)) {
|
686 |
+
return;
|
687 |
+
}
|
688 |
$currentPath = $_SERVER["REQUEST_URI"];
|
689 |
if (!empty($_SERVER["HTTP_REFERER"])
|
690 |
&& strpos($_SERVER["HTTP_REFERER"], $currentPath) !== false) {
|
711 |
{
|
712 |
if (is_user_logged_in()) {
|
713 |
if (is_admin()) {
|
714 |
+
if ($this->CheckOtherSensors($post)) {
|
715 |
+
return;
|
716 |
+
}
|
717 |
$currentPath = $_SERVER["SCRIPT_NAME"] . "?post=" . $post->ID;
|
718 |
if (!empty($_SERVER["HTTP_REFERER"])
|
719 |
&& strpos($_SERVER["HTTP_REFERER"], $currentPath) !== false) {
|
classes/Sensors/PluginsThemes.php
CHANGED
@@ -253,18 +253,33 @@ class WSAL_Sensors_PluginsThemes extends WSAL_AbstractSensor
|
|
253 |
));
|
254 |
}
|
255 |
|
|
|
|
|
|
|
256 |
public function EventPluginPostCreate($insert, $post)
|
257 |
{
|
258 |
$WPActions = array('editpost', 'heartbeat', 'inline-save', 'trash', 'untrash');
|
259 |
if (isset($_REQUEST['action']) && !in_array($_REQUEST['action'], $WPActions)) {
|
260 |
if (!in_array($post->post_type, array('attachment', 'revision', 'nav_menu_item'))) {
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
268 |
}
|
269 |
}
|
270 |
}
|
@@ -307,4 +322,16 @@ class WSAL_Sensors_PluginsThemes extends WSAL_AbstractSensor
|
|
307 |
return $typeCustom;
|
308 |
}
|
309 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
310 |
}
|
253 |
));
|
254 |
}
|
255 |
|
256 |
+
/**
|
257 |
+
* Used even for modified post
|
258 |
+
*/
|
259 |
public function EventPluginPostCreate($insert, $post)
|
260 |
{
|
261 |
$WPActions = array('editpost', 'heartbeat', 'inline-save', 'trash', 'untrash');
|
262 |
if (isset($_REQUEST['action']) && !in_array($_REQUEST['action'], $WPActions)) {
|
263 |
if (!in_array($post->post_type, array('attachment', 'revision', 'nav_menu_item'))) {
|
264 |
+
// if the plugin modify the post
|
265 |
+
if (strpos($_REQUEST['action'], 'edit') !== false) {
|
266 |
+
$event = $this->GetEventTypeForPostType($post, 2106, 2107, 2108);
|
267 |
+
$editorLink = $this->GetEditorLink($post);
|
268 |
+
$this->plugin->alerts->Trigger($event, array(
|
269 |
+
'PostID' => $post->ID,
|
270 |
+
'PostType' => $post->post_type,
|
271 |
+
'PostTitle' => $post->post_title,
|
272 |
+
$editorLink['name'] => $editorLink['value']
|
273 |
+
));
|
274 |
+
} else {
|
275 |
+
$event = $this->GetEventTypeForPostType($post, 5019, 5020, 5021);
|
276 |
+
$this->plugin->alerts->Trigger($event, array(
|
277 |
+
'PostID' => $post->ID,
|
278 |
+
'PostType' => $post->post_type,
|
279 |
+
'PostTitle' => $post->post_title,
|
280 |
+
'Username' => 'Plugins'
|
281 |
+
));
|
282 |
+
}
|
283 |
}
|
284 |
}
|
285 |
}
|
322 |
return $typeCustom;
|
323 |
}
|
324 |
}
|
325 |
+
|
326 |
+
private function GetEditorLink($post)
|
327 |
+
{
|
328 |
+
$name = 'EditorLink';
|
329 |
+
$name .= ($post->post_type == 'page') ? 'Page' : 'Post' ;
|
330 |
+
$value = get_edit_post_link($post->ID);
|
331 |
+
$aLink = array(
|
332 |
+
'name' => $name,
|
333 |
+
'value' => $value,
|
334 |
+
);
|
335 |
+
return $aLink;
|
336 |
+
}
|
337 |
}
|
classes/Sensors/System.php
CHANGED
@@ -295,7 +295,7 @@ class WSAL_Sensors_System extends WSAL_AbstractSensor
|
|
295 |
*/
|
296 |
public function LogFilesPruning()
|
297 |
{
|
298 |
-
if ($this->plugin->GetGlobalOption('purge-404-log',
|
299 |
$upload_dir = wp_upload_dir();
|
300 |
$uploadsDirPath = trailingslashit($upload_dir['basedir']).'wp-security-audit-log/404s/';
|
301 |
if (is_dir($uploadsDirPath)) {
|
@@ -324,7 +324,7 @@ class WSAL_Sensors_System extends WSAL_AbstractSensor
|
|
324 |
private function WriteLog($attempts, $ip, $username = '')
|
325 |
{
|
326 |
$nameFile = null;
|
327 |
-
if ($this->plugin->GetGlobalOption('log-404',
|
328 |
// Request URL
|
329 |
$url = $_SERVER["HTTP_HOST"] . $_SERVER['REQUEST_URI'];
|
330 |
// Create/Append to the log file
|
295 |
*/
|
296 |
public function LogFilesPruning()
|
297 |
{
|
298 |
+
if ($this->plugin->GetGlobalOption('purge-404-log', 'off') == 'on') {
|
299 |
$upload_dir = wp_upload_dir();
|
300 |
$uploadsDirPath = trailingslashit($upload_dir['basedir']).'wp-security-audit-log/404s/';
|
301 |
if (is_dir($uploadsDirPath)) {
|
324 |
private function WriteLog($attempts, $ip, $username = '')
|
325 |
{
|
326 |
$nameFile = null;
|
327 |
+
if ($this->plugin->GetGlobalOption('log-404', 'off') == 'on') {
|
328 |
// Request URL
|
329 |
$url = $_SERVER["HTTP_HOST"] . $_SERVER['REQUEST_URI'];
|
330 |
// Create/Append to the log file
|
classes/Sensors/WooCommerce.php
ADDED
@@ -0,0 +1,844 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Support for WooCommerce Plugin
|
4 |
+
*/
|
5 |
+
class WSAL_Sensors_WooCommerce extends WSAL_AbstractSensor
|
6 |
+
{
|
7 |
+
protected $_OldPost = null;
|
8 |
+
protected $_OldLink = null;
|
9 |
+
protected $_OldCats = null;
|
10 |
+
protected $_OldData = null;
|
11 |
+
protected $_OldStockStatus = null;
|
12 |
+
protected $_OldFileNames = array();
|
13 |
+
protected $_OldFileUrls = array();
|
14 |
+
|
15 |
+
public function HookEvents()
|
16 |
+
{
|
17 |
+
if (current_user_can("edit_posts")) {
|
18 |
+
add_action('admin_init', array($this, 'EventAdminInit'));
|
19 |
+
}
|
20 |
+
add_action('post_updated', array($this, 'EventChanged'), 10, 3);
|
21 |
+
add_action('delete_post', array($this, 'EventDeleted'), 10, 1);
|
22 |
+
add_action('wp_trash_post', array($this, 'EventTrashed'), 10, 1);
|
23 |
+
add_action('untrash_post', array($this, 'EventUntrashed'));
|
24 |
+
|
25 |
+
add_action('create_product_cat', array($this, 'EventCategoryCreation'), 10, 1);
|
26 |
+
// add_action('edit_product_cat', array($this, 'EventCategoryChanged'), 10, 1);
|
27 |
+
}
|
28 |
+
|
29 |
+
public function EventAdminInit()
|
30 |
+
{
|
31 |
+
// load old data, if applicable
|
32 |
+
$this->RetrieveOldData();
|
33 |
+
$this->CheckSettingsChange();
|
34 |
+
}
|
35 |
+
|
36 |
+
protected function RetrieveOldData()
|
37 |
+
{
|
38 |
+
if (isset($_POST) && isset($_POST['post_ID'])
|
39 |
+
&& !(defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
|
40 |
+
&& !(isset($_POST['action']) && $_POST['action'] == 'autosave')
|
41 |
+
) {
|
42 |
+
$postID = intval($_POST['post_ID']);
|
43 |
+
$this->_OldPost = get_post($postID);
|
44 |
+
$this->_OldLink = get_post_permalink($postID, false, true);
|
45 |
+
$this->_OldCats = $this->GetProductCategories($this->_OldPost);
|
46 |
+
$this->_OldData = $this->GetProductData($this->_OldPost);
|
47 |
+
$this->_OldStockStatus = get_post_meta($postID, '_stock_status', true);
|
48 |
+
|
49 |
+
$oldDownloadableFiles = get_post_meta($postID, '_downloadable_files', true);
|
50 |
+
if (!empty($oldDownloadableFiles)) {
|
51 |
+
foreach ($oldDownloadableFiles as $file) {
|
52 |
+
array_push($this->_OldFileNames, $file['name']);
|
53 |
+
array_push($this->_OldFileUrls, $file['file']);
|
54 |
+
}
|
55 |
+
}
|
56 |
+
}
|
57 |
+
}
|
58 |
+
|
59 |
+
public function EventChanged($post_ID, $newpost, $oldpost)
|
60 |
+
{
|
61 |
+
if ($this->CheckWooCommerce($oldpost)) {
|
62 |
+
$changes = 0 + $this->EventCreation($oldpost, $newpost);
|
63 |
+
if (!$changes) {
|
64 |
+
// Change Categories
|
65 |
+
$changes = $this->CheckCategoriesChange($this->_OldCats, $this->GetProductCategories($newpost), $oldpost, $newpost);
|
66 |
+
}
|
67 |
+
if (!$changes) {
|
68 |
+
// Change Short description, Text, URL, Product Data, Date, Visibility, etc.
|
69 |
+
$changes = 0
|
70 |
+
+ $this->CheckShortDescriptionChange($oldpost, $newpost)
|
71 |
+
+ $this->CheckTextChange($oldpost, $newpost)
|
72 |
+
+ $this->CheckProductDataChange($this->_OldData, $newpost)
|
73 |
+
+ $this->CheckDateChange($oldpost, $newpost)
|
74 |
+
+ $this->CheckVisibilityChange($oldpost)
|
75 |
+
+ $this->CheckStatusChange($oldpost, $newpost)
|
76 |
+
+ $this->CheckPriceChange($oldpost)
|
77 |
+
+ $this->CheckSKUChange($oldpost)
|
78 |
+
+ $this->CheckStockStatusChange($oldpost)
|
79 |
+
+ $this->CheckStockQuantityChange($oldpost)
|
80 |
+
+ $this->CheckTypeChange($oldpost, $newpost)
|
81 |
+
+ $this->CheckWeightChange($oldpost)
|
82 |
+
+ $this->CheckDimensionsChange($oldpost)
|
83 |
+
+ $this->CheckDownloadableFileChange($oldpost)
|
84 |
+
;
|
85 |
+
}
|
86 |
+
if (!$changes) {
|
87 |
+
// Change Permalink
|
88 |
+
$changes = $this->CheckPermalinkChange($this->_OldLink, get_post_permalink($post_ID, false, true), $newpost);
|
89 |
+
}
|
90 |
+
if (!$changes) {
|
91 |
+
// if no one of the above changes happen
|
92 |
+
$this->CheckModifyChange($oldpost, $newpost);
|
93 |
+
}
|
94 |
+
}
|
95 |
+
}
|
96 |
+
|
97 |
+
/**
|
98 |
+
* Trigger events 9000, 9001
|
99 |
+
*/
|
100 |
+
private function EventCreation($old_post, $new_post)
|
101 |
+
{
|
102 |
+
$original = isset($_POST['original_post_status']) ? $_POST['original_post_status'] : '';
|
103 |
+
if ($original == 'draft' && $new_post->post_status == 'draft') {
|
104 |
+
return 0;
|
105 |
+
}
|
106 |
+
if ($old_post->post_status == 'draft' || $original == 'auto-draft') {
|
107 |
+
if ($old_post->post_type == 'product') {
|
108 |
+
$editorLink = $this->GetEditorLink($new_post);
|
109 |
+
if ($new_post->post_status == 'draft') {
|
110 |
+
$this->plugin->alerts->Trigger(9000, array(
|
111 |
+
'ProductTitle' => $new_post->post_title,
|
112 |
+
$editorLink['name'] => $editorLink['value']
|
113 |
+
));
|
114 |
+
return 1;
|
115 |
+
} else if ($new_post->post_status == 'publish') {
|
116 |
+
$this->plugin->alerts->Trigger(9001, array(
|
117 |
+
'ProductTitle' => $new_post->post_title,
|
118 |
+
'ProductUrl' => get_post_permalink($new_post->ID),
|
119 |
+
$editorLink['name'] => $editorLink['value']
|
120 |
+
));
|
121 |
+
return 1;
|
122 |
+
}
|
123 |
+
}
|
124 |
+
}
|
125 |
+
return 0;
|
126 |
+
}
|
127 |
+
|
128 |
+
/**
|
129 |
+
* Trigger events 9002
|
130 |
+
*/
|
131 |
+
public function EventCategoryCreation($term_id = null)
|
132 |
+
{
|
133 |
+
$term = get_term($term_id);
|
134 |
+
if (!empty($term)) {
|
135 |
+
$this->plugin->alerts->Trigger(9002, array(
|
136 |
+
'CategoryName' => $term->name,
|
137 |
+
'Slug' => $term->slug
|
138 |
+
));
|
139 |
+
}
|
140 |
+
}
|
141 |
+
|
142 |
+
/**
|
143 |
+
* Not implemented
|
144 |
+
*/
|
145 |
+
public function EventCategoryChanged($term_id = null)
|
146 |
+
{
|
147 |
+
$old_term = get_term($term_id);
|
148 |
+
if (isset($_POST['taxonomy'])) {
|
149 |
+
// new $term in $_POST
|
150 |
+
}
|
151 |
+
}
|
152 |
+
|
153 |
+
/**
|
154 |
+
* Trigger events 9003
|
155 |
+
*/
|
156 |
+
protected function CheckCategoriesChange($oldCats, $newCats, $oldpost, $newpost)
|
157 |
+
{
|
158 |
+
if ($newpost->post_status == 'trash' || $oldpost->post_status == 'trash') {
|
159 |
+
return 0;
|
160 |
+
}
|
161 |
+
$oldCats = is_array($oldCats) ? implode(', ', $oldCats) : $oldCats;
|
162 |
+
$newCats = is_array($newCats) ? implode(', ', $newCats) : $newCats;
|
163 |
+
if ($oldCats != $newCats) {
|
164 |
+
$editorLink = $this->GetEditorLink($newpost);
|
165 |
+
$this->plugin->alerts->Trigger(9003, array(
|
166 |
+
'ProductTitle' => $newpost->post_title,
|
167 |
+
'OldCategories' => $oldCats ? $oldCats : 'no categories',
|
168 |
+
'NewCategories' => $newCats ? $newCats : 'no categories',
|
169 |
+
$editorLink['name'] => $editorLink['value']
|
170 |
+
));
|
171 |
+
return 1;
|
172 |
+
}
|
173 |
+
return 0;
|
174 |
+
}
|
175 |
+
|
176 |
+
/**
|
177 |
+
* Trigger events 9004
|
178 |
+
*/
|
179 |
+
protected function CheckShortDescriptionChange($oldpost, $newpost)
|
180 |
+
{
|
181 |
+
if ($oldpost->post_status == 'auto-draft') {
|
182 |
+
return 0;
|
183 |
+
}
|
184 |
+
if ($oldpost->post_excerpt != $newpost->post_excerpt) {
|
185 |
+
$editorLink = $this->GetEditorLink($oldpost);
|
186 |
+
$this->plugin->alerts->Trigger(9004, array(
|
187 |
+
'ProductTitle' => $oldpost->post_title,
|
188 |
+
$editorLink['name'] => $editorLink['value']
|
189 |
+
));
|
190 |
+
return 1;
|
191 |
+
}
|
192 |
+
return 0;
|
193 |
+
}
|
194 |
+
|
195 |
+
/**
|
196 |
+
* Trigger events 9005
|
197 |
+
*/
|
198 |
+
protected function CheckTextChange($oldpost, $newpost)
|
199 |
+
{
|
200 |
+
if ($oldpost->post_status == 'auto-draft') {
|
201 |
+
return 0;
|
202 |
+
}
|
203 |
+
if ($oldpost->post_content != $newpost->post_content) {
|
204 |
+
$editorLink = $this->GetEditorLink($oldpost);
|
205 |
+
$this->plugin->alerts->Trigger(9005, array(
|
206 |
+
'ProductTitle' => $oldpost->post_title,
|
207 |
+
$editorLink['name'] => $editorLink['value']
|
208 |
+
));
|
209 |
+
return 1;
|
210 |
+
}
|
211 |
+
return 0;
|
212 |
+
}
|
213 |
+
|
214 |
+
/**
|
215 |
+
* Trigger events 9006
|
216 |
+
*/
|
217 |
+
protected function CheckPermalinkChange($oldLink, $newLink, $post)
|
218 |
+
{
|
219 |
+
if (($oldLink && $newLink) && ($oldLink != $newLink)) {
|
220 |
+
$editorLink = $this->GetEditorLink($post);
|
221 |
+
$this->plugin->alerts->Trigger(9006, array(
|
222 |
+
'ProductTitle' => $post->post_title,
|
223 |
+
'OldUrl' => $oldLink,
|
224 |
+
'NewUrl' => $newLink,
|
225 |
+
$editorLink['name'] => $editorLink['value']
|
226 |
+
));
|
227 |
+
return 1;
|
228 |
+
}
|
229 |
+
return 0;
|
230 |
+
}
|
231 |
+
|
232 |
+
/**
|
233 |
+
* Trigger events 9007
|
234 |
+
*/
|
235 |
+
protected function CheckProductDataChange($oldData, $post)
|
236 |
+
{
|
237 |
+
if (isset($_POST['product-type'])) {
|
238 |
+
$oldData = is_array($oldData) ? implode(', ', $oldData) : $oldData;
|
239 |
+
$newData = $_POST['product-type'];
|
240 |
+
if ($oldData != $newData) {
|
241 |
+
$editorLink = $this->GetEditorLink($post);
|
242 |
+
$this->plugin->alerts->Trigger(9007, array(
|
243 |
+
'ProductTitle' => $post->post_title,
|
244 |
+
$editorLink['name'] => $editorLink['value']
|
245 |
+
));
|
246 |
+
return 1;
|
247 |
+
}
|
248 |
+
}
|
249 |
+
return 0;
|
250 |
+
}
|
251 |
+
|
252 |
+
/**
|
253 |
+
* Trigger events 9008
|
254 |
+
*/
|
255 |
+
protected function CheckDateChange($oldpost, $newpost)
|
256 |
+
{
|
257 |
+
if ($oldpost->post_status == 'draft' || $oldpost->post_status == 'auto-draft') {
|
258 |
+
return 0;
|
259 |
+
}
|
260 |
+
$from = strtotime($oldpost->post_date);
|
261 |
+
$to = strtotime($newpost->post_date);
|
262 |
+
if ($from != $to) {
|
263 |
+
$editorLink = $this->GetEditorLink($oldpost);
|
264 |
+
$this->plugin->alerts->Trigger(9008, array(
|
265 |
+
'ProductTitle' => $oldpost->post_title,
|
266 |
+
'OldDate' => $oldpost->post_date,
|
267 |
+
'NewDate' => $newpost->post_date,
|
268 |
+
$editorLink['name'] => $editorLink['value']
|
269 |
+
));
|
270 |
+
return 1;
|
271 |
+
}
|
272 |
+
return 0;
|
273 |
+
}
|
274 |
+
|
275 |
+
/**
|
276 |
+
* Trigger events 9009
|
277 |
+
*/
|
278 |
+
protected function CheckVisibilityChange($oldpost)
|
279 |
+
{
|
280 |
+
$oldVisibility = isset($_POST['hidden_post_visibility']) ? $_POST['hidden_post_visibility'] : null;
|
281 |
+
$newVisibility = isset($_POST['visibility']) ? $_POST['visibility'] : null;
|
282 |
+
|
283 |
+
if ($oldVisibility == 'password') {
|
284 |
+
$oldVisibility = __('Password Protected', 'wp-security-audit-log');
|
285 |
+
} else {
|
286 |
+
$oldVisibility = ucfirst($oldVisibility);
|
287 |
+
}
|
288 |
+
|
289 |
+
if ($newVisibility == 'password') {
|
290 |
+
$newVisibility = __('Password Protected', 'wp-security-audit-log');
|
291 |
+
} else {
|
292 |
+
$newVisibility = ucfirst($newVisibility);
|
293 |
+
}
|
294 |
+
|
295 |
+
if (($oldVisibility && $newVisibility) && ($oldVisibility != $newVisibility)) {
|
296 |
+
$editorLink = $this->GetEditorLink($oldpost);
|
297 |
+
$this->plugin->alerts->Trigger(9009, array(
|
298 |
+
'ProductTitle' => $oldpost->post_title,
|
299 |
+
'OldVisibility' => $oldVisibility,
|
300 |
+
'NewVisibility' => $newVisibility,
|
301 |
+
$editorLink['name'] => $editorLink['value']
|
302 |
+
));
|
303 |
+
return 1;
|
304 |
+
}
|
305 |
+
return 0;
|
306 |
+
}
|
307 |
+
|
308 |
+
/**
|
309 |
+
* Trigger events 9010, 9011
|
310 |
+
*/
|
311 |
+
protected function CheckModifyChange($oldpost, $newpost)
|
312 |
+
{
|
313 |
+
if ($newpost->post_status == 'trash') {
|
314 |
+
return 0;
|
315 |
+
}
|
316 |
+
$editorLink = $this->GetEditorLink($oldpost);
|
317 |
+
if ($oldpost->post_status == 'publish') {
|
318 |
+
$this->plugin->alerts->Trigger(9010, array(
|
319 |
+
'ProductTitle' => $oldpost->post_title,
|
320 |
+
'ProductUrl' => get_post_permalink($oldpost->ID),
|
321 |
+
$editorLink['name'] => $editorLink['value']
|
322 |
+
));
|
323 |
+
} else if ($oldpost->post_status == 'draft') {
|
324 |
+
$this->plugin->alerts->Trigger(9011, array(
|
325 |
+
'ProductTitle' => $oldpost->post_title,
|
326 |
+
$editorLink['name'] => $editorLink['value']
|
327 |
+
));
|
328 |
+
}
|
329 |
+
}
|
330 |
+
|
331 |
+
/**
|
332 |
+
* Moved to Trash 9012
|
333 |
+
*/
|
334 |
+
public function EventTrashed($post_id)
|
335 |
+
{
|
336 |
+
$post = get_post($post_id);
|
337 |
+
if ($this->CheckWooCommerce($post)) {
|
338 |
+
$this->plugin->alerts->Trigger(9012, array(
|
339 |
+
'ProductTitle' => $post->post_title,
|
340 |
+
'ProductUrl' => get_post_permalink($post->ID)
|
341 |
+
));
|
342 |
+
}
|
343 |
+
}
|
344 |
+
|
345 |
+
/**
|
346 |
+
* Permanently deleted 9013
|
347 |
+
*/
|
348 |
+
public function EventDeleted($post_id)
|
349 |
+
{
|
350 |
+
$post = get_post($post_id);
|
351 |
+
if ($this->CheckWooCommerce($post)) {
|
352 |
+
$this->plugin->alerts->Trigger(9013, array(
|
353 |
+
'ProductTitle' => $post->post_title
|
354 |
+
));
|
355 |
+
}
|
356 |
+
}
|
357 |
+
|
358 |
+
/**
|
359 |
+
* Restored from Trash 9014
|
360 |
+
*/
|
361 |
+
public function EventUntrashed($post_id)
|
362 |
+
{
|
363 |
+
$post = get_post($post_id);
|
364 |
+
if ($this->CheckWooCommerce($post)) {
|
365 |
+
$editorLink = $this->GetEditorLink($post);
|
366 |
+
$this->plugin->alerts->Trigger(9014, array(
|
367 |
+
'ProductTitle' => $post->post_title,
|
368 |
+
$editorLink['name'] => $editorLink['value']
|
369 |
+
));
|
370 |
+
}
|
371 |
+
}
|
372 |
+
|
373 |
+
/**
|
374 |
+
* Trigger events 9015
|
375 |
+
*/
|
376 |
+
protected function CheckStatusChange($oldpost, $newpost)
|
377 |
+
{
|
378 |
+
if ($oldpost->post_status == 'draft' || $oldpost->post_status == 'auto-draft') {
|
379 |
+
return 0;
|
380 |
+
}
|
381 |
+
if ($oldpost->post_status != $newpost->post_status) {
|
382 |
+
if ($oldpost->post_status != 'trash' && $newpost->post_status != 'trash') {
|
383 |
+
$editorLink = $this->GetEditorLink($oldpost);
|
384 |
+
$this->plugin->alerts->Trigger(9015, array(
|
385 |
+
'ProductTitle' => $oldpost->post_title,
|
386 |
+
'OldStatus' => $oldpost->post_status,
|
387 |
+
'NewStatus' => $newpost->post_status,
|
388 |
+
$editorLink['name'] => $editorLink['value']
|
389 |
+
));
|
390 |
+
return 1;
|
391 |
+
}
|
392 |
+
}
|
393 |
+
return 0;
|
394 |
+
}
|
395 |
+
|
396 |
+
/**
|
397 |
+
* Trigger events 9016
|
398 |
+
*/
|
399 |
+
protected function CheckPriceChange($oldpost)
|
400 |
+
{
|
401 |
+
$result = 0;
|
402 |
+
$oldPrice = get_post_meta($oldpost->ID, '_regular_price', true);
|
403 |
+
$oldSalePrice = get_post_meta($oldpost->ID, '_sale_price', true);
|
404 |
+
$newPrice = isset($_POST['_regular_price']) ? $_POST['_regular_price'] : null;
|
405 |
+
$newSalePrice = isset($_POST['_sale_price']) ? $_POST['_sale_price'] : null;
|
406 |
+
|
407 |
+
if (($newPrice) && ($oldPrice != $newPrice)) {
|
408 |
+
$result = $this->EventPrice($oldpost, 'Regular price', $oldPrice, $newPrice);
|
409 |
+
}
|
410 |
+
if (($newSalePrice) && ($oldSalePrice != $newSalePrice)) {
|
411 |
+
$result = $this->EventPrice($oldpost, 'Sale price', $oldSalePrice, $newSalePrice);
|
412 |
+
}
|
413 |
+
return $result;
|
414 |
+
}
|
415 |
+
|
416 |
+
/**
|
417 |
+
* Group the Price changes in one function
|
418 |
+
*/
|
419 |
+
private function EventPrice($oldpost, $type, $oldPrice, $newPrice)
|
420 |
+
{
|
421 |
+
$currency = $this->GetCurrencySymbol($this->GetConfig('currency'));
|
422 |
+
$editorLink = $this->GetEditorLink($oldpost);
|
423 |
+
$this->plugin->alerts->Trigger(9016, array(
|
424 |
+
'ProductTitle' => $oldpost->post_title,
|
425 |
+
'PriceType' => $type,
|
426 |
+
'OldPrice' => (!empty($oldPrice) ? $currency.$oldPrice : 0),
|
427 |
+
'NewPrice' => $currency.$newPrice,
|
428 |
+
$editorLink['name'] => $editorLink['value']
|
429 |
+
));
|
430 |
+
return 1;
|
431 |
+
}
|
432 |
+
|
433 |
+
/**
|
434 |
+
* Trigger events 9017
|
435 |
+
*/
|
436 |
+
protected function CheckSKUChange($oldpost)
|
437 |
+
{
|
438 |
+
$oldSku = get_post_meta($oldpost->ID, '_sku', true);
|
439 |
+
$newSku = isset($_POST['_sku']) ? $_POST['_sku'] : null;
|
440 |
+
|
441 |
+
if (($newSku) && ($oldSku != $newSku)) {
|
442 |
+
$editorLink = $this->GetEditorLink($oldpost);
|
443 |
+
$this->plugin->alerts->Trigger(9017, array(
|
444 |
+
'ProductTitle' => $oldpost->post_title,
|
445 |
+
'OldSku' => (!empty($oldSku) ? $oldSku : 0),
|
446 |
+
'NewSku' => $newSku,
|
447 |
+
$editorLink['name'] => $editorLink['value']
|
448 |
+
));
|
449 |
+
return 1;
|
450 |
+
}
|
451 |
+
return 0;
|
452 |
+
}
|
453 |
+
|
454 |
+
/**
|
455 |
+
* Trigger events 9018
|
456 |
+
*/
|
457 |
+
protected function CheckStockStatusChange($oldpost)
|
458 |
+
{
|
459 |
+
$oldStatus = $this->_OldStockStatus;
|
460 |
+
$newStatus = isset($_POST['_stock_status']) ? $_POST['_stock_status'] : null;
|
461 |
+
|
462 |
+
if (($oldStatus && $newStatus) && ($oldStatus != $newStatus)) {
|
463 |
+
$editorLink = $this->GetEditorLink($oldpost);
|
464 |
+
$this->plugin->alerts->Trigger(9018, array(
|
465 |
+
'ProductTitle' => $oldpost->post_title,
|
466 |
+
'OldStatus' => $this->GetStockStatusName($oldStatus),
|
467 |
+
'NewStatus' => $this->GetStockStatusName($newStatus),
|
468 |
+
$editorLink['name'] => $editorLink['value']
|
469 |
+
));
|
470 |
+
return 1;
|
471 |
+
}
|
472 |
+
return 0;
|
473 |
+
}
|
474 |
+
|
475 |
+
/**
|
476 |
+
* Trigger events 9019
|
477 |
+
*/
|
478 |
+
protected function CheckStockQuantityChange($oldpost)
|
479 |
+
{
|
480 |
+
$oldValue = get_post_meta($oldpost->ID, '_stock', true);
|
481 |
+
$newValue = isset($_POST['_stock']) ? $_POST['_stock'] : null;
|
482 |
+
|
483 |
+
if (($newValue) && ($oldValue != $newValue)) {
|
484 |
+
$editorLink = $this->GetEditorLink($oldpost);
|
485 |
+
$this->plugin->alerts->Trigger(9019, array(
|
486 |
+
'ProductTitle' => $oldpost->post_title,
|
487 |
+
'OldValue' => (!empty($oldValue) ? $oldValue : 0),
|
488 |
+
'NewValue' => $newValue,
|
489 |
+
$editorLink['name'] => $editorLink['value']
|
490 |
+
));
|
491 |
+
return 1;
|
492 |
+
}
|
493 |
+
return 0;
|
494 |
+
}
|
495 |
+
|
496 |
+
/**
|
497 |
+
* Trigger events 9020
|
498 |
+
*/
|
499 |
+
protected function CheckTypeChange($oldpost, $newpost)
|
500 |
+
{
|
501 |
+
$result = 0;
|
502 |
+
if ($oldpost->post_status != 'trash' && $newpost->post_status != 'trash') {
|
503 |
+
$oldVirtual = get_post_meta($oldpost->ID, '_virtual', true);
|
504 |
+
$newVirtual = isset($_POST['_virtual']) ? 'yes' : 'no';
|
505 |
+
$oldDownloadable = get_post_meta($oldpost->ID, '_downloadable', true);
|
506 |
+
$newDownloadable = isset($_POST['_downloadable']) ? 'yes' : 'no';
|
507 |
+
|
508 |
+
if (($oldVirtual && $newVirtual) && ($oldVirtual != $newVirtual)) {
|
509 |
+
$type = ($newVirtual == 'no') ? 'Non Virtual' : 'Virtual';
|
510 |
+
$result = $this->EventType($oldpost, $type);
|
511 |
+
}
|
512 |
+
if (($oldDownloadable && $newDownloadable) && ($oldDownloadable != $newDownloadable)) {
|
513 |
+
$type = ($newDownloadable == 'no') ? 'Non Downloadable' : 'Downloadable';
|
514 |
+
$result = $this->EventType($oldpost, $type);
|
515 |
+
}
|
516 |
+
}
|
517 |
+
return $result;
|
518 |
+
}
|
519 |
+
|
520 |
+
/**
|
521 |
+
* Group the Type changes in one function
|
522 |
+
*/
|
523 |
+
private function EventType($oldpost, $type)
|
524 |
+
{
|
525 |
+
$editorLink = $this->GetEditorLink($oldpost);
|
526 |
+
$this->plugin->alerts->Trigger(9020, array(
|
527 |
+
'ProductTitle' => $oldpost->post_title,
|
528 |
+
'Type' => $type,
|
529 |
+
$editorLink['name'] => $editorLink['value']
|
530 |
+
));
|
531 |
+
return 1;
|
532 |
+
}
|
533 |
+
|
534 |
+
/**
|
535 |
+
* Trigger events 9021
|
536 |
+
*/
|
537 |
+
protected function CheckWeightChange($oldpost)
|
538 |
+
{
|
539 |
+
$oldWeight = get_post_meta($oldpost->ID, '_weight', true);
|
540 |
+
$newWeight = isset($_POST['_weight']) ? $_POST['_weight'] : null;
|
541 |
+
|
542 |
+
if (($newWeight) && ($oldWeight != $newWeight)) {
|
543 |
+
$editorLink = $this->GetEditorLink($oldpost);
|
544 |
+
$this->plugin->alerts->Trigger(9021, array(
|
545 |
+
'ProductTitle' => $oldpost->post_title,
|
546 |
+
'OldWeight' => (!empty($oldWeight) ? $oldWeight : 0),
|
547 |
+
'NewWeight' => $newWeight,
|
548 |
+
$editorLink['name'] => $editorLink['value']
|
549 |
+
));
|
550 |
+
return 1;
|
551 |
+
}
|
552 |
+
return 0;
|
553 |
+
}
|
554 |
+
|
555 |
+
/**
|
556 |
+
* Trigger events 9022
|
557 |
+
*/
|
558 |
+
protected function CheckDimensionsChange($oldpost)
|
559 |
+
{
|
560 |
+
$result = 0;
|
561 |
+
$oldLength = get_post_meta($oldpost->ID, '_length', true);
|
562 |
+
$newLength = isset($_POST['_length']) ? $_POST['_length'] : null;
|
563 |
+
$oldWidth = get_post_meta($oldpost->ID, '_width', true);
|
564 |
+
$newWidth = isset($_POST['_width']) ? $_POST['_width'] : null;
|
565 |
+
$oldHeight = get_post_meta($oldpost->ID, '_height', true);
|
566 |
+
$newHeight = isset($_POST['_height']) ? $_POST['_height'] : null;
|
567 |
+
|
568 |
+
if (($newLength) && ($oldLength != $newLength)) {
|
569 |
+
$result = $this->EventDimension($oldpost, 'Length', $oldLength, $newLength);
|
570 |
+
}
|
571 |
+
if (($newWidth) && ($oldWidth != $newWidth)) {
|
572 |
+
$result = $this->EventDimension($oldpost, 'Width', $oldWidth, $newWidth);
|
573 |
+
}
|
574 |
+
if (($newHeight) && ($oldHeight != $newHeight)) {
|
575 |
+
$result = $this->EventDimension($oldpost, 'Height', $oldHeight, $newHeight);
|
576 |
+
}
|
577 |
+
return $result;
|
578 |
+
}
|
579 |
+
|
580 |
+
/**
|
581 |
+
* Group the Dimension changes in one function
|
582 |
+
*/
|
583 |
+
private function EventDimension($oldpost, $type, $oldDimension, $newDimension)
|
584 |
+
{
|
585 |
+
$dimension_unit = $this->GetConfig('dimension_unit');
|
586 |
+
$editorLink = $this->GetEditorLink($oldpost);
|
587 |
+
$this->plugin->alerts->Trigger(9022, array(
|
588 |
+
'ProductTitle' => $oldpost->post_title,
|
589 |
+
'DimensionType' => $type,
|
590 |
+
'OldDimension' => (!empty($oldDimension) ? $dimension_unit.' '.$oldDimension : 0),
|
591 |
+
'NewDimension' => $dimension_unit.' '.$newDimension,
|
592 |
+
$editorLink['name'] => $editorLink['value']
|
593 |
+
));
|
594 |
+
return 1;
|
595 |
+
}
|
596 |
+
|
597 |
+
/**
|
598 |
+
* Trigger events 9023, 9024, 9025, 9026
|
599 |
+
*/
|
600 |
+
protected function CheckDownloadableFileChange($oldpost)
|
601 |
+
{
|
602 |
+
$result = 0;
|
603 |
+
$isUrlChanged = false;
|
604 |
+
$isNameChanged = false;
|
605 |
+
$newFileNames = !empty($_POST['_wc_file_names']) ? $_POST['_wc_file_names'] : array();
|
606 |
+
$newFileUrls = !empty($_POST['_wc_file_urls']) ? $_POST['_wc_file_urls'] : array();
|
607 |
+
$editorLink = $this->GetEditorLink($oldpost);
|
608 |
+
|
609 |
+
$addedUrls = array_diff($newFileUrls, $this->_OldFileUrls);
|
610 |
+
// Added files to the product
|
611 |
+
if (count($addedUrls) > 0) {
|
612 |
+
// if the file has only changed URL
|
613 |
+
if (count($newFileUrls) == count($this->_OldFileUrls)) {
|
614 |
+
$isUrlChanged = true;
|
615 |
+
} else {
|
616 |
+
foreach ($addedUrls as $key => $url) {
|
617 |
+
$this->plugin->alerts->Trigger(9023, array(
|
618 |
+
'ProductTitle' => $oldpost->post_title,
|
619 |
+
'FileName' => $newFileNames[$key],
|
620 |
+
'FileUrl' => $url,
|
621 |
+
$editorLink['name'] => $editorLink['value']
|
622 |
+
));
|
623 |
+
}
|
624 |
+
$result = 1;
|
625 |
+
}
|
626 |
+
}
|
627 |
+
|
628 |
+
$removedUrls = array_diff($this->_OldFileUrls, $newFileUrls);
|
629 |
+
// Removed files from the product
|
630 |
+
if (count($removedUrls) > 0) {
|
631 |
+
// if the file has only changed URL
|
632 |
+
if (count($newFileUrls) == count($this->_OldFileUrls)) {
|
633 |
+
$isUrlChanged = true;
|
634 |
+
} else {
|
635 |
+
foreach ($removedUrls as $key => $url) {
|
636 |
+
$this->plugin->alerts->Trigger(9024, array(
|
637 |
+
'ProductTitle' => $oldpost->post_title,
|
638 |
+
'FileName' => $this->_OldFileNames[$key],
|
639 |
+
'FileUrl' => $url,
|
640 |
+
$editorLink['name'] => $editorLink['value']
|
641 |
+
));
|
642 |
+
}
|
643 |
+
$result = 1;
|
644 |
+
}
|
645 |
+
}
|
646 |
+
|
647 |
+
$addedNames = array_diff($newFileNames, $this->_OldFileNames);
|
648 |
+
if (count($addedNames) > 0) {
|
649 |
+
// if the file has only changed Name
|
650 |
+
if (count($newFileNames) == count($this->_OldFileNames)) {
|
651 |
+
foreach ($addedNames as $key => $name) {
|
652 |
+
$this->plugin->alerts->Trigger(9025, array(
|
653 |
+
'ProductTitle' => $oldpost->post_title,
|
654 |
+
'OldName' => $this->_OldFileNames[$key],
|
655 |
+
'NewName' => $name,
|
656 |
+
$editorLink['name'] => $editorLink['value']
|
657 |
+
));
|
658 |
+
}
|
659 |
+
$result = 1;
|
660 |
+
}
|
661 |
+
}
|
662 |
+
|
663 |
+
if ($isUrlChanged) {
|
664 |
+
foreach ($addedUrls as $key => $url) {
|
665 |
+
$this->plugin->alerts->Trigger(9026, array(
|
666 |
+
'ProductTitle' => $oldpost->post_title,
|
667 |
+
'FileName' => $newFileNames[$key],
|
668 |
+
'OldUrl' => $removedUrls[$key],
|
669 |
+
'NewUrl' => $url,
|
670 |
+
$editorLink['name'] => $editorLink['value']
|
671 |
+
));
|
672 |
+
}
|
673 |
+
$result = 1;
|
674 |
+
}
|
675 |
+
return $result;
|
676 |
+
}
|
677 |
+
|
678 |
+
/**
|
679 |
+
* Trigger events Settings: 9027, 9028, 9029, 9030, 9031, 9032, 9033
|
680 |
+
*/
|
681 |
+
protected function CheckSettingsChange()
|
682 |
+
{
|
683 |
+
if (isset($_GET['page']) && $_GET['page'] == 'wc-settings') {
|
684 |
+
if (isset($_GET['tab']) && $_GET['tab'] == 'products') {
|
685 |
+
if (isset($_POST['woocommerce_weight_unit'])) {
|
686 |
+
$oldUnit = $this->GetConfig('weight_unit');
|
687 |
+
$newUnit = $_POST['woocommerce_weight_unit'];
|
688 |
+
if ($oldUnit != $newUnit) {
|
689 |
+
$this->plugin->alerts->Trigger(9027, array(
|
690 |
+
'OldUnit' => $oldUnit,
|
691 |
+
'NewUnit' => $newUnit
|
692 |
+
));
|
693 |
+
}
|
694 |
+
}
|
695 |
+
if (isset($_POST['woocommerce_dimension_unit'])) {
|
696 |
+
$oldUnit = $this->GetConfig('dimension_unit');
|
697 |
+
$newUnit = $_POST['woocommerce_dimension_unit'];
|
698 |
+
if ($oldUnit != $newUnit) {
|
699 |
+
$this->plugin->alerts->Trigger(9028, array(
|
700 |
+
'OldUnit' => $oldUnit,
|
701 |
+
'NewUnit' => $newUnit
|
702 |
+
));
|
703 |
+
}
|
704 |
+
}
|
705 |
+
} else if (isset($_GET['tab']) && $_GET['tab'] == 'checkout') {
|
706 |
+
if (!empty($_POST)) {
|
707 |
+
$oldEnableCoupons = $this->GetConfig('enable_coupons');
|
708 |
+
$newEnableCoupons = isset($_POST['woocommerce_enable_coupons']) ? 'yes' : 'no';
|
709 |
+
if ($oldEnableCoupons != $newEnableCoupons) {
|
710 |
+
$status = ($newEnableCoupons == 'yes') ? 'Enabled' : 'Disabled';
|
711 |
+
$this->plugin->alerts->Trigger(9032, array(
|
712 |
+
'Status' => $status,
|
713 |
+
));
|
714 |
+
}
|
715 |
+
$oldEnableGuestCheckout = $this->GetConfig('enable_guest_checkout');
|
716 |
+
$newEnableGuestCheckout = isset($_POST['woocommerce_enable_guest_checkout']) ? 'yes' : 'no';
|
717 |
+
if ($oldEnableGuestCheckout != $newEnableGuestCheckout) {
|
718 |
+
$status = ($newEnableGuestCheckout == 'yes') ? 'Enabled' : 'Disabled';
|
719 |
+
$this->plugin->alerts->Trigger(9033, array(
|
720 |
+
'Status' => $status,
|
721 |
+
));
|
722 |
+
}
|
723 |
+
}
|
724 |
+
} else {
|
725 |
+
if (isset($_POST['woocommerce_default_country'])) {
|
726 |
+
$oldLocation = $this->GetConfig('default_country');
|
727 |
+
$newLocation = $_POST['woocommerce_default_country'];
|
728 |
+
if ($oldLocation != $newLocation) {
|
729 |
+
$this->plugin->alerts->Trigger(9029, array(
|
730 |
+
'OldLocation' => $oldLocation,
|
731 |
+
'NewLocation' => $newLocation
|
732 |
+
));
|
733 |
+
}
|
734 |
+
$oldCalcTaxes = $this->GetConfig('calc_taxes');
|
735 |
+
$newCalcTaxes = isset($_POST['woocommerce_calc_taxes']) ? 'yes' : 'no';
|
736 |
+
if ($oldCalcTaxes != $newCalcTaxes) {
|
737 |
+
$status = ($newCalcTaxes == 'yes') ? 'Enabled' : 'Disabled';
|
738 |
+
$this->plugin->alerts->Trigger(9030, array(
|
739 |
+
'Status' => $status,
|
740 |
+
));
|
741 |
+
}
|
742 |
+
}
|
743 |
+
if (isset($_POST['woocommerce_currency'])) {
|
744 |
+
$oldCurrency = $this->GetConfig('currency');
|
745 |
+
$newCurrency = $_POST['woocommerce_currency'];
|
746 |
+
if ($oldCurrency != $newCurrency) {
|
747 |
+
$this->plugin->alerts->Trigger(9031, array(
|
748 |
+
'OldCurrency' => $oldCurrency,
|
749 |
+
'NewCurrency' => $newCurrency
|
750 |
+
));
|
751 |
+
}
|
752 |
+
}
|
753 |
+
}
|
754 |
+
}
|
755 |
+
}
|
756 |
+
|
757 |
+
private function GetStockStatusName($slug)
|
758 |
+
{
|
759 |
+
if ($slug == 'instock') {
|
760 |
+
return __('In stock', 'wp-security-audit-log');
|
761 |
+
} else if ($slug == 'outofstock') {
|
762 |
+
return __('Out of stock', 'wp-security-audit-log');
|
763 |
+
}
|
764 |
+
}
|
765 |
+
|
766 |
+
protected function GetProductCategories($post)
|
767 |
+
{
|
768 |
+
return wp_get_post_terms($post->ID, 'product_cat', array("fields" => "names"));
|
769 |
+
}
|
770 |
+
|
771 |
+
protected function GetProductData($post)
|
772 |
+
{
|
773 |
+
return wp_get_post_terms($post->ID, 'product_type', array("fields" => "names"));
|
774 |
+
}
|
775 |
+
|
776 |
+
/**
|
777 |
+
* Get the config setting
|
778 |
+
* @param string $option_name
|
779 |
+
*/
|
780 |
+
private function GetConfig($option_name)
|
781 |
+
{
|
782 |
+
$fn = $this->IsMultisite() ? 'get_site_option' : 'get_option';
|
783 |
+
return $fn('woocommerce_' . $option_name);
|
784 |
+
}
|
785 |
+
|
786 |
+
private function CheckWooCommerce($post)
|
787 |
+
{
|
788 |
+
switch ($post->post_type) {
|
789 |
+
case 'product':
|
790 |
+
return true;
|
791 |
+
default:
|
792 |
+
return false;
|
793 |
+
}
|
794 |
+
}
|
795 |
+
|
796 |
+
private function GetEditorLink($post)
|
797 |
+
{
|
798 |
+
$name = 'EditorLinkProduct';
|
799 |
+
$value = get_edit_post_link($post->ID);
|
800 |
+
$aLink = array(
|
801 |
+
'name' => $name,
|
802 |
+
'value' => $value,
|
803 |
+
);
|
804 |
+
return $aLink;
|
805 |
+
}
|
806 |
+
|
807 |
+
/**
|
808 |
+
* Get Currency symbol.
|
809 |
+
* @param string $currency (default: '')
|
810 |
+
* @return string
|
811 |
+
*/
|
812 |
+
private function GetCurrencySymbol($currency = '')
|
813 |
+
{
|
814 |
+
$symbols = array(
|
815 |
+
'AED' => 'د.إ','AFN' => '؋','ALL' => 'L','AMD' => 'AMD','ANG' => 'ƒ','AOA' => 'Kz','ARS' => '$',
|
816 |
+
'AUD' => '$','AWG' => 'ƒ','AZN' => 'AZN','BAM' => 'KM','BBD' => '$','BDT' => '৳ ','BGN' => 'лв.',
|
817 |
+
'BHD' => '.د.ب','BIF' => 'Fr','BMD' => '$','BND' => '$','BOB' => 'Bs.','BRL' => 'R$','BSD' => '$',
|
818 |
+
'BTC' => '฿','BTN' => 'Nu.','BWP' => 'P','BYR' => 'Br','BZD' => '$','CAD' => '$','CDF' => 'Fr','CHF' => 'CHF',
|
819 |
+
'CLP' => '$','CNY' => '¥','COP' => '$','CRC' => '₡','CUC' => '$','CUP' => '$','CVE' => '$',
|
820 |
+
'CZK' => 'Kč','DJF' => 'Fr','DKK' => 'DKK','DOP' => 'RD$','DZD' => 'د.ج','EGP' => 'EGP','ERN' => 'Nfk',
|
821 |
+
'ETB' => 'Br','EUR' => '€','FJD' => '$','FKP' => '£','GBP' => '£','GEL' => 'ლ','GGP' => '£',
|
822 |
+
'GHS' => '₵','GIP' => '£','GMD' => 'D','GNF' => 'Fr','GTQ' => 'Q','GYD' => '$','HKD' => '$','HNL' => 'L',
|
823 |
+
'HRK' => 'Kn','HTG' => 'G','HUF' => 'Ft','IDR' => 'Rp','ILS' => '₪','IMP' => '£','INR' => '₹',
|
824 |
+
'IQD' => 'ع.د','IRR' => '﷼','ISK' => 'kr.','JEP' => '£','JMD' => '$','JOD' => 'د.ا',
|
825 |
+
'JPY' => '¥','KES' => 'KSh','KGS' => 'сом','KHR' => '៛','KMF' => 'Fr','KPW' => '₩','KRW' => '₩',
|
826 |
+
'KWD' => 'د.ك','KYD' => '$','KZT' => 'KZT','LAK' => '₭','LBP' => 'ل.ل','LKR' => 'රු',
|
827 |
+
'LRD' => '$','LSL' => 'L','LYD' => 'ل.د','MAD' => 'د. م.','MAD' => 'د.م.','MDL' => 'L','MGA' => 'Ar',
|
828 |
+
'MKD' => 'ден','MMK' => 'Ks','MNT' => '₮','MOP' => 'P','MRO' => 'UM','MUR' => '₨','MVR' => '.ރ',
|
829 |
+
'MWK' => 'MK','MXN' => '$','MYR' => 'RM','MZN' => 'MT','NAD' => '$','NGN' => '₦','NIO' => 'C$',
|
830 |
+
'NOK' => 'kr','NPR' => '₨','NZD' => '$','OMR' => 'ر.ع.','PAB' => 'B/.','PEN' => 'S/.',
|
831 |
+
'PGK' => 'K','PHP' => '₱','PKR' => '₨','PLN' => 'zł','PRB' => 'р.','PYG' => '₲','QAR' => 'ر.ق',
|
832 |
+
'RMB' => '¥','RON' => 'lei','RSD' => 'дин.','RUB' => '₽','RWF' => 'Fr','SAR' => 'ر.س',
|
833 |
+
'SBD' => '$','SCR' => '₨','SDG' => 'ج.س.','SEK' => 'kr','SGD' => '$','SHP' => '£','SLL' => 'Le',
|
834 |
+
'SOS' => 'Sh','SRD' => '$','SSP' => '£','STD' => 'Db','SYP' => 'ل.س','SZL' => 'L','THB' => '฿',
|
835 |
+
'TJS' => 'ЅМ','TMT' => 'm','TND' => 'د.ت','TOP' => 'T$','TRY' => '₺','TTD' => '$',
|
836 |
+
'TWD' => 'NT$','TZS' => 'Sh','UAH' => '₴','UGX' => 'UGX','USD' => '$','UYU' => '$','UZS' => 'UZS',
|
837 |
+
'VEF' => 'Bs F','VND' => '₫','VUV' => 'Vt','WST' => 'T','XAF' => 'Fr','XCD' => '$','XOF' => 'Fr','XPF' => 'Fr',
|
838 |
+
'YER' => '﷼','ZAR' => 'R','ZMW' => 'ZK',
|
839 |
+
);
|
840 |
+
$currency_symbol = isset($symbols[$currency]) ? $symbols[ $currency ] : '';
|
841 |
+
|
842 |
+
return $currency_symbol;
|
843 |
+
}
|
844 |
+
}
|
classes/Views/AuditLog.php
CHANGED
@@ -109,7 +109,8 @@ class WSAL_Views_AuditLog extends WSAL_AbstractView {
|
|
109 |
),
|
110 |
)); ?>);
|
111 |
});
|
112 |
-
</script
|
|
|
113 |
}
|
114 |
|
115 |
public function AjaxInspector() {
|
@@ -209,6 +210,7 @@ class WSAL_Views_AuditLog extends WSAL_AbstractView {
|
|
209 |
|
210 |
public function Header() {
|
211 |
add_thickbox();
|
|
|
212 |
wp_enqueue_style(
|
213 |
'auditlog',
|
214 |
$this->_plugin->GetBaseUrl() . '/css/auditlog.css',
|
@@ -219,6 +221,7 @@ class WSAL_Views_AuditLog extends WSAL_AbstractView {
|
|
219 |
|
220 |
public function Footer() {
|
221 |
wp_enqueue_script('jquery');
|
|
|
222 |
wp_enqueue_script('suggest');
|
223 |
wp_enqueue_script(
|
224 |
'auditlog',
|
109 |
),
|
110 |
)); ?>);
|
111 |
});
|
112 |
+
</script>
|
113 |
+
<?php
|
114 |
}
|
115 |
|
116 |
public function AjaxInspector() {
|
210 |
|
211 |
public function Header() {
|
212 |
add_thickbox();
|
213 |
+
wp_enqueue_style('darktooltip', $this->_plugin->GetBaseUrl() . '/css/darktooltip.css', array(), '');
|
214 |
wp_enqueue_style(
|
215 |
'auditlog',
|
216 |
$this->_plugin->GetBaseUrl() . '/css/auditlog.css',
|
221 |
|
222 |
public function Footer() {
|
223 |
wp_enqueue_script('jquery');
|
224 |
+
wp_enqueue_script('darktooltip', $this->_plugin->GetBaseUrl() . '/js/jquery.darktooltip.js', array('jquery'), '');
|
225 |
wp_enqueue_script('suggest');
|
226 |
wp_enqueue_script(
|
227 |
'auditlog',
|
classes/Views/ToggleAlerts.php
CHANGED
@@ -101,12 +101,12 @@ class WSAL_Views_ToggleAlerts extends WSAL_AbstractView
|
|
101 |
$purge_log = $this->_plugin->GetGlobalOption('purge-404-log');
|
102 |
?><tr>
|
103 |
<td></td>
|
104 |
-
<td><input name="log_404" type="checkbox" value="1" <?php if ($log_404 == 'on') echo 'checked="checked"'; ?>></td>
|
105 |
<td colspan="2"><?php _e('Capture 404 requests to file (the log file are created in the /wp-content/uploads/wp-security-audit-log/404s/ directory)', 'wp-security-audit-log'); ?></td>
|
106 |
</tr>
|
107 |
<tr>
|
108 |
<td></td>
|
109 |
-
<td><input name="purge_log" type="checkbox" value="1" <?php if ($purge_log == 'on') echo 'checked="checked"'; ?>></td>
|
110 |
<td colspan="2"><?php _e('Purge log files older than one month', 'wp-security-audit-log'); ?></td>
|
111 |
</tr><?php
|
112 |
}
|
@@ -159,6 +159,15 @@ class WSAL_Views_ToggleAlerts extends WSAL_AbstractView
|
|
159 |
}else{
|
160 |
jQuery('#wsal-tabs>a:first').click();
|
161 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
162 |
});
|
163 |
</script><?php
|
164 |
}
|
101 |
$purge_log = $this->_plugin->GetGlobalOption('purge-404-log');
|
102 |
?><tr>
|
103 |
<td></td>
|
104 |
+
<td><input name="log_404" type="checkbox" class="check_log" value="1" <?php if ($log_404 == 'on') echo 'checked="checked"'; ?>></td>
|
105 |
<td colspan="2"><?php _e('Capture 404 requests to file (the log file are created in the /wp-content/uploads/wp-security-audit-log/404s/ directory)', 'wp-security-audit-log'); ?></td>
|
106 |
</tr>
|
107 |
<tr>
|
108 |
<td></td>
|
109 |
+
<td><input name="purge_log" type="checkbox" class="check_log" value="1" <?php if ($purge_log == 'on') echo 'checked="checked"'; ?>></td>
|
110 |
<td colspan="2"><?php _e('Purge log files older than one month', 'wp-security-audit-log'); ?></td>
|
111 |
</tr><?php
|
112 |
}
|
159 |
}else{
|
160 |
jQuery('#wsal-tabs>a:first').click();
|
161 |
}
|
162 |
+
// Specific for alert 6007
|
163 |
+
jQuery("input[value=6007]").on("change", function(){
|
164 |
+
var check = jQuery("input[value=6007]").is(":checked");
|
165 |
+
if(check) {
|
166 |
+
jQuery(".check_log").attr ( "checked" ,"checked" );
|
167 |
+
} else {
|
168 |
+
jQuery(".check_log").removeAttr('checked');
|
169 |
+
}
|
170 |
+
});
|
171 |
});
|
172 |
</script><?php
|
173 |
}
|
css/auditlog.css
CHANGED
@@ -19,12 +19,20 @@
|
|
19 |
}
|
20 |
|
21 |
.column-read,
|
22 |
-
.column-type,
|
23 |
-
.column-code,
|
24 |
.column-more,
|
|
|
25 |
.column-data {
|
26 |
width: 70px;
|
27 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
28 |
|
29 |
.column-crtd {
|
30 |
width: 125px;
|
@@ -120,15 +128,17 @@ td.column-user {
|
|
120 |
.log-type-64:after,
|
121 |
.log-type-256:after,
|
122 |
.log-type-4096:after,
|
123 |
-
.log-type-E_CRITICAL:after
|
124 |
-
|
|
|
125 |
|
126 |
/* warnings */
|
127 |
.log-type-2:after,
|
128 |
.log-type-32:after,
|
129 |
.log-type-128:after,
|
130 |
-
.log-type-512:after
|
131 |
-
|
|
|
132 |
|
133 |
/* notices/strict/deprecation */
|
134 |
.log-type-8:after,
|
@@ -136,8 +146,13 @@ td.column-user {
|
|
136 |
.log-type-2048:after,
|
137 |
.log-type-8192:after,
|
138 |
.log-type-16384:after,
|
139 |
-
.log-type-E_DEBUG:after
|
140 |
-
|
|
|
|
|
|
|
|
|
|
|
141 |
|
142 |
/* search box */
|
143 |
.wsal-ssas-dd {
|
@@ -182,3 +197,42 @@ td.column-user {
|
|
182 |
text-decoration: none;
|
183 |
float: right;
|
184 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
}
|
20 |
|
21 |
.column-read,
|
|
|
|
|
22 |
.column-more,
|
23 |
+
.column-type,
|
24 |
.column-data {
|
25 |
width: 70px;
|
26 |
}
|
27 |
+
.column-code {
|
28 |
+
width: 50px;
|
29 |
+
}
|
30 |
+
td.code.column-code a{
|
31 |
+
display: block;
|
32 |
+
}
|
33 |
+
.column-disable {
|
34 |
+
width: 50px;
|
35 |
+
}
|
36 |
|
37 |
.column-crtd {
|
38 |
width: 125px;
|
128 |
.log-type-64:after,
|
129 |
.log-type-256:after,
|
130 |
.log-type-4096:after,
|
131 |
+
.log-type-E_CRITICAL:after {
|
132 |
+
background: #c9302c; content: "!";
|
133 |
+
}
|
134 |
|
135 |
/* warnings */
|
136 |
.log-type-2:after,
|
137 |
.log-type-32:after,
|
138 |
.log-type-128:after,
|
139 |
+
.log-type-512:after {
|
140 |
+
background: #ec971f; content: "!";
|
141 |
+
}
|
142 |
|
143 |
/* notices/strict/deprecation */
|
144 |
.log-type-8:after,
|
146 |
.log-type-2048:after,
|
147 |
.log-type-8192:after,
|
148 |
.log-type-16384:after,
|
149 |
+
.log-type-E_DEBUG:after {
|
150 |
+
background: #ec0; content: "i";
|
151 |
+
}
|
152 |
+
|
153 |
+
.log-disable .disable {
|
154 |
+
margin-left: 12px;
|
155 |
+
}
|
156 |
|
157 |
/* search box */
|
158 |
.wsal-ssas-dd {
|
197 |
text-decoration: none;
|
198 |
float: right;
|
199 |
}
|
200 |
+
|
201 |
+
.dashicons-dismiss:hover {
|
202 |
+
color:#c00
|
203 |
+
}
|
204 |
+
.dark-tooltip.small{
|
205 |
+
margin-left: 10px;
|
206 |
+
font-size:13px;
|
207 |
+
padding:5px 10px;
|
208 |
+
max-width:150px;
|
209 |
+
-webkit-border-radius: 3px;
|
210 |
+
-moz-border-radius: 3px;
|
211 |
+
border-radius: 3px;
|
212 |
+
}
|
213 |
+
.dark-tooltip.medium{
|
214 |
+
margin-left: -15px;
|
215 |
+
font-size:13px;
|
216 |
+
padding:5px 10px;
|
217 |
+
max-width:150px;
|
218 |
+
-webkit-border-radius: 3px;
|
219 |
+
-moz-border-radius: 3px;
|
220 |
+
border-radius: 3px;
|
221 |
+
}
|
222 |
+
.dark-tooltip.west.medium .tip{ border-width: 5px 7px 5px 0; margin-left:-7px; margin-top:-5px;}
|
223 |
+
.dark-tooltip ul.confirm{ list-style-type:none;margin-top:5px;display:inline-block;margin:0 auto;}
|
224 |
+
.dark-tooltip ul.confirm li{
|
225 |
+
padding:5px 10px;
|
226 |
+
float:left;
|
227 |
+
margin:5px 5px 0 0;
|
228 |
+
min-width:20px;
|
229 |
+
-webkit-border-radius:3px;
|
230 |
+
-moz-border-radius:3px;
|
231 |
+
-o-border-radius:3px;
|
232 |
+
border-radius:3px;
|
233 |
+
}
|
234 |
+
.dark-tooltip.dark ul.confirm li{ background-color:#0085ba;}
|
235 |
+
.dark-tooltip.dark ul.confirm li:hover{ background-color:#008ec2; cursor: pointer;}
|
236 |
+
.dark-tooltip.dark ul.confirm li:last-child {
|
237 |
+
display: none;
|
238 |
+
}
|
css/darktooltip.css
ADDED
@@ -0,0 +1,129 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.dark-tooltip{ display:none; position:absolute; z-index:99; text-decoration:none; font-weight:normal; height:auto; top:0; left:0;}
|
2 |
+
|
3 |
+
.dark-tooltip.small{ padding:4px; font-size:12px; max-width:150px; -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; }
|
4 |
+
.dark-tooltip.medium{ padding:10px; font-size:14px; max-width:200px; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px;}
|
5 |
+
.dark-tooltip.large{ padding:16px; font-size:16px; max-width:250px; -webkit-border-radius: 6px; -moz-border-radius: 6px; border-radius: 6px; }
|
6 |
+
|
7 |
+
/* Tips */
|
8 |
+
.dark-tooltip .tip{ transform: scale(1.01); -webkit-transform: scale(1.01); transform: scale(1.01); content: ""; position: absolute; width:0; height:0; border-style: solid; line-height: 0px; }
|
9 |
+
|
10 |
+
.dark-tooltip.south .tip{ left:50%; top:100%;}
|
11 |
+
.dark-tooltip.west .tip{ left:0; top:50%;}
|
12 |
+
.dark-tooltip.north .tip{ left:50%; top:0; }
|
13 |
+
.dark-tooltip.east .tip{ left:100%; top:50%;}
|
14 |
+
|
15 |
+
.dark-tooltip.south.small .tip{ border-width: 7px 5px 0 5px; margin-left:-5px;}
|
16 |
+
.dark-tooltip.south.medium .tip{ border-width: 8px 6px 0 6px; margin-left:-6px;}
|
17 |
+
.dark-tooltip.south.large .tip{ border-width: 14px 12px 0 12px; margin-left:-12px;}
|
18 |
+
|
19 |
+
.dark-tooltip.west.small .tip{ border-width: 5px 7px 5px 0; margin-left:-7px; margin-top:-5px;}
|
20 |
+
.dark-tooltip.west.medium .tip{ border-width: 6px 8px 6px 0; margin-left:-8px; margin-top:-6px;}
|
21 |
+
.dark-tooltip.west.large .tip{ border-width: 12px 14px 12px 0; margin-left:-14px; margin-top:-12px;}
|
22 |
+
|
23 |
+
.dark-tooltip.north.small .tip{ border-width: 0 5px 7px 5px; margin-left:-5px; margin-top:-7px;}
|
24 |
+
.dark-tooltip.north.medium .tip{ border-width: 0 6px 8px 6px; margin-left:-6px; margin-top:-8px;}
|
25 |
+
.dark-tooltip.north.large .tip{ border-width: 0 12px 14px 12px; margin-left:-12px; margin-top:-14px;}
|
26 |
+
|
27 |
+
.dark-tooltip.east.small .tip{ border-width: 5px 0 5px 7px; margin-top:-5px;}
|
28 |
+
.dark-tooltip.east.medium .tip{ border-width: 6px 0 6px 8px; margin-top:-6px;}
|
29 |
+
.dark-tooltip.east.large .tip{ border-width: 12px 0 12px 14px; margin-top:-12px;}
|
30 |
+
|
31 |
+
/* confirm */
|
32 |
+
.dark-tooltip ul.confirm{ list-style-type:none;margin-top:5px;display:inline-block;margin:0 auto; }
|
33 |
+
.dark-tooltip ul.confirm li{ padding:10px;float:left;margin:5px;min-width:25px;-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px;border-radius:3px;}
|
34 |
+
|
35 |
+
/* themes */
|
36 |
+
.dark-tooltip.dark{ background-color:#1B1E24; color:#fff; }
|
37 |
+
.dark-tooltip.light{ background-color:#ebedf3; color:#1B1E24; }
|
38 |
+
|
39 |
+
.dark-tooltip.dark.south .tip{ border-color: #1B1E24 transparent transparent transparent; _border-color: #1B1E24 #000000 #000000 #000000; _filter: progid:DXImageTransform.Microsoft.Chroma(color='#000000'); }
|
40 |
+
.dark-tooltip.dark.west .tip{ border-color: transparent #1B1E24 transparent transparent; _border-color: #000000 #1B1E24 #000000 #000000; _filter: progid:DXImageTransform.Microsoft.Chroma(color='#000000'); }
|
41 |
+
.dark-tooltip.dark.north .tip{ border-color: transparent transparent #1B1E24 transparent; _border-color: #000000 #000000 #1B1E24 #000000; _filter: progid:DXImageTransform.Microsoft.Chroma(color='#000000'); }
|
42 |
+
.dark-tooltip.dark.east .tip{ border-color: transparent transparent transparent #1B1E24; _border-color: #000000 #000000 #000000 #1B1E24; _filter: progid:DXImageTransform.Microsoft.Chroma(color='#000000'); }
|
43 |
+
|
44 |
+
.dark-tooltip.light.south .tip{ border-color: #ebedf3 transparent transparent transparent; _border-color: #ebedf3 #000000 #000000 #000000; _filter: progid:DXImageTransform.Microsoft.Chroma(color='#000000'); }
|
45 |
+
.dark-tooltip.light.west .tip{ border-color: transparent #ebedf3 transparent transparent; _border-color: #000000 #ebedf3 #000000 #000000; _filter: progid:DXImageTransform.Microsoft.Chroma(color='#000000'); }
|
46 |
+
.dark-tooltip.light.north .tip{ border-color: transparent transparent #ebedf3 transparent; _border-color: #000000 #000000 #ebedf3 #000000; _filter: progid:DXImageTransform.Microsoft.Chroma(color='#000000'); }
|
47 |
+
.dark-tooltip.light.east .tip{ border-color: transparent transparent transparent #ebedf3; _border-color:#000000 #000000 #000000 #ebedf3 ; _filter: progid:DXImageTransform.Microsoft.Chroma(color='#000000'); }
|
48 |
+
|
49 |
+
.dark-tooltip.dark ul.confirm li{ background-color:#416E85;}
|
50 |
+
.dark-tooltip.dark ul.confirm li:hover{ background-color:#417E85;}
|
51 |
+
|
52 |
+
.dark-tooltip.light ul.confirm li{ background-color:#C1DBDB;}
|
53 |
+
.dark-tooltip.light ul.confirm li:hover{ background-color:#DCE8E8;}
|
54 |
+
|
55 |
+
/* Animations */
|
56 |
+
.animated{
|
57 |
+
-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;-ms-animation-fill-mode:both;-o-animation-fill-mode:both;animation-fill-mode:both;
|
58 |
+
-webkit-animation-duration:.5s;-moz-animation-duration:.5s;-ms-animation-duration:.5s;-o-animation-duration:.5s;animation-duration:.5s;
|
59 |
+
}
|
60 |
+
@-webkit-keyframes flipInUp {
|
61 |
+
0% { -webkit-transform: perspective(400px) rotateX(-90deg); opacity: 0;}
|
62 |
+
40% { -webkit-transform: perspective(400px) rotateX(5deg);}
|
63 |
+
70% { -webkit-transform: perspective(400px) rotateX(-5deg);}
|
64 |
+
100% { -webkit-transform: perspective(400px) rotateX(0deg); opacity: 1;}
|
65 |
+
}
|
66 |
+
@-moz-keyframes flipInUp {
|
67 |
+
0% {transform: perspective(400px) rotateX(-90deg);opacity: 0;}
|
68 |
+
40% {transform: perspective(400px) rotateX(5deg);}
|
69 |
+
70% {transform: perspective(400px) rotateX(-5deg);}
|
70 |
+
100% {transform: perspective(400px) rotateX(0deg);opacity: 1;}
|
71 |
+
}
|
72 |
+
@-o-keyframes flipInUp {
|
73 |
+
0% {-o-transform: perspective(400px) rotateX(-90deg);opacity: 0;}
|
74 |
+
40% {-o-transform: perspective(400px) rotateX(5deg);}
|
75 |
+
70% {-o-transform: perspective(400px) rotateX(-5deg);}
|
76 |
+
100% {-o-transform: perspective(400px) rotateX(0deg);opacity: 1;}
|
77 |
+
}
|
78 |
+
@keyframes flipInUp {
|
79 |
+
0% {transform: perspective(400px) rotateX(-90deg);opacity: 0;}
|
80 |
+
40% {transform: perspective(400px) rotateX(5deg);}
|
81 |
+
70% {transform: perspective(400px) rotateX(-5deg);}
|
82 |
+
100% {transform: perspective(400px) rotateX(0deg);opacity: 1;}
|
83 |
+
}
|
84 |
+
@-webkit-keyframes flipInRight {
|
85 |
+
0% { -webkit-transform: perspective(400px) rotateY(-90deg); opacity: 0;}
|
86 |
+
40% { -webkit-transform: perspective(400px) rotateY(5deg);}
|
87 |
+
70% { -webkit-transform: perspective(400px) rotateY(-5deg);}
|
88 |
+
100% { -webkit-transform: perspective(400px) rotateY(0deg); opacity: 1;}
|
89 |
+
}
|
90 |
+
@-moz-keyframes flipInRight {
|
91 |
+
0% {transform: perspective(400px) rotateY(-90deg);opacity: 0;}
|
92 |
+
40% {transform: perspective(400px) rotateY(5deg);}
|
93 |
+
70% {transform: perspective(400px) rotateY(-5deg);}
|
94 |
+
100% {transform: perspective(400px) rotateY(0deg);opacity: 1;}
|
95 |
+
}
|
96 |
+
@-o-keyframes flipInRight {
|
97 |
+
0% {-o-transform: perspective(400px) rotateY(-90deg);opacity: 0;}
|
98 |
+
40% {-o-transform: perspective(400px) rotateY(5deg);}
|
99 |
+
70% {-o-transform: perspective(400px) rotateY(-5deg);}
|
100 |
+
100% {-o-transform: perspective(400px) rotateY(0deg);opacity: 1;}
|
101 |
+
}
|
102 |
+
@keyframes flipInRight {
|
103 |
+
0% {transform: perspective(400px) rotateY(-90deg);opacity: 0;}
|
104 |
+
40% {transform: perspective(400px) rotateY(5deg);}
|
105 |
+
70% {transform: perspective(400px) rotateY(-5deg);}
|
106 |
+
100% {transform: perspective(400px) rotateY(0deg);opacity: 1;}
|
107 |
+
}
|
108 |
+
.flipIn { -webkit-backface-visibility: visible !important; -moz-backface-visibility: visible !important; -o-backface-visibility: visible !important; backface-visibility: visible !important}
|
109 |
+
.flipIn.south, .flipIn.north { -webkit-animation-name: flipInUp; -moz-animation-name: flipInUp; -o-animation-name: flipInUp; animation-name: flipInUp; }
|
110 |
+
.flipIn.west, .flipIn.east { -webkit-animation-name: flipInRight; -moz-animation-name: flipInRight; -o-animation-name: flipInRight; animation-name: flipInRight; }
|
111 |
+
|
112 |
+
@-webkit-keyframes fadeIn { 0% {opacity: 0;} 100% {opacity: 1;}}
|
113 |
+
@-moz-keyframes fadeIn { 0% {opacity: 0;} 100% {opacity: 1;}}
|
114 |
+
@-o-keyframes fadeIn {0% {opacity: 0;}100% {opacity: 1;}}
|
115 |
+
@keyframes fadeIn {0% {opacity: 0;}100% {opacity: 1;}}
|
116 |
+
|
117 |
+
.fadeIn{-webkit-animation-name: fadeIn; -moz-animation-name: fadeIn; -o-animation-name: fadeIn; animation-name: fadeIn;}
|
118 |
+
|
119 |
+
/* Modal */
|
120 |
+
.darktooltip-modal-layer{
|
121 |
+
position: fixed;
|
122 |
+
top: 0;
|
123 |
+
left: 0;
|
124 |
+
width: 100%;
|
125 |
+
height: 100%;
|
126 |
+
background-image: url('./modal-bg.png');
|
127 |
+
opacity: .7;
|
128 |
+
display: none;
|
129 |
+
}
|
css/modal-bg.png
ADDED
Binary file
|
defaults.php
CHANGED
@@ -181,7 +181,10 @@ function wsaldefaults_wsal_init(WpSecurityAuditLog $wsal)
|
|
181 |
array(5027, E_CRITICAL, __('A plugin deleted a custom post', 'wp-security-audit-log'), __('A plugin automatically deleted the following custom post: %PostTitle%.', 'wp-security-audit-log')),
|
182 |
array(5031, E_WARNING, __('User updated a theme', 'wp-security-audit-log'), __('Updated the theme "%Theme->Name%" installed in %Theme->get_template_directory%.', 'wp-security-audit-log')),
|
183 |
array(2046, E_CRITICAL, __('User changed a file using the theme editor', 'wp-security-audit-log'), __('Modified %File% with the Theme Editor.', 'wp-security-audit-log')),
|
184 |
-
array(2051, E_CRITICAL, __('User changed a file using the plugin editor', 'wp-security-audit-log'), __('Modified %File% with the Plugin Editor.', 'wp-security-audit-log'))
|
|
|
|
|
|
|
185 |
),
|
186 |
__('System Activity', 'wp-security-audit-log') => array(
|
187 |
array(0000, E_CRITICAL, __('Unknown Error', 'wp-security-audit-log'), __('An unexpected error has occurred .', 'wp-security-audit-log')),
|
@@ -273,6 +276,42 @@ function wsaldefaults_wsal_init(WpSecurityAuditLog $wsal)
|
|
273 |
array(2097, E_NOTICE, __('User restored a comment from the trash', 'wp-security-audit-log'), __('Restored the comment posted in response to the post %PostTitle% by %Author% on %CommentLink% from the trash.', 'wp-security-audit-log')),
|
274 |
array(2098, E_NOTICE, __('User permanently deleted a comment', 'wp-security-audit-log'), __('Permanently deleted the comment posted in response to the post %PostTitle% by %Author% on %Date%.', 'wp-security-audit-log')),
|
275 |
array(2099, E_NOTICE, __('User posted a comment', 'wp-security-audit-log'), __('%CommentMsg% on %CommentLink%.', 'wp-security-audit-log'))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
276 |
)
|
277 |
));
|
278 |
// Load Custom alerts
|
181 |
array(5027, E_CRITICAL, __('A plugin deleted a custom post', 'wp-security-audit-log'), __('A plugin automatically deleted the following custom post: %PostTitle%.', 'wp-security-audit-log')),
|
182 |
array(5031, E_WARNING, __('User updated a theme', 'wp-security-audit-log'), __('Updated the theme "%Theme->Name%" installed in %Theme->get_template_directory%.', 'wp-security-audit-log')),
|
183 |
array(2046, E_CRITICAL, __('User changed a file using the theme editor', 'wp-security-audit-log'), __('Modified %File% with the Theme Editor.', 'wp-security-audit-log')),
|
184 |
+
array(2051, E_CRITICAL, __('User changed a file using the plugin editor', 'wp-security-audit-log'), __('Modified %File% with the Plugin Editor.', 'wp-security-audit-log')),
|
185 |
+
array(2106, E_NOTICE, __('A plugin modified a post', 'wp-security-audit-log'), __('Plugin modified the post %PostTitle%. View the post: %EditorLinkPost%.', 'wp-security-audit-log')),
|
186 |
+
array(2107, E_NOTICE, __('A plugin modified a page', 'wp-security-audit-log'), __('Plugin modified the page %PostTitle%. View the page: %EditorLinkPage%.', 'wp-security-audit-log')),
|
187 |
+
array(2108, E_NOTICE, __('A plugin modified a custom post', 'wp-security-audit-log'), __('Plugin modified the custom post %PostTitle%. View the post: %EditorLinkPost%.', 'wp-security-audit-log'))
|
188 |
),
|
189 |
__('System Activity', 'wp-security-audit-log') => array(
|
190 |
array(0000, E_CRITICAL, __('Unknown Error', 'wp-security-audit-log'), __('An unexpected error has occurred .', 'wp-security-audit-log')),
|
276 |
array(2097, E_NOTICE, __('User restored a comment from the trash', 'wp-security-audit-log'), __('Restored the comment posted in response to the post %PostTitle% by %Author% on %CommentLink% from the trash.', 'wp-security-audit-log')),
|
277 |
array(2098, E_NOTICE, __('User permanently deleted a comment', 'wp-security-audit-log'), __('Permanently deleted the comment posted in response to the post %PostTitle% by %Author% on %Date%.', 'wp-security-audit-log')),
|
278 |
array(2099, E_NOTICE, __('User posted a comment', 'wp-security-audit-log'), __('%CommentMsg% on %CommentLink%.', 'wp-security-audit-log'))
|
279 |
+
),
|
280 |
+
__('WooCommerce', 'wp-security-audit-log') => array(
|
281 |
+
array(9000, E_NOTICE, __('User created a new product', 'wp-security-audit-log'), __('Created a new product called %ProductTitle% and saved it as draft. View the product: %EditorLinkProduct%.', 'wp-security-audit-log')),
|
282 |
+
array(9001, E_NOTICE, __('User published a product', 'wp-security-audit-log'), __('Published a product called %ProductTitle%. Product URL is %ProductUrl%. View the product: %EditorLinkProduct%.', 'wp-security-audit-log')),
|
283 |
+
array(9002, E_NOTICE, __('User created a new product category', 'wp-security-audit-log'), __('Created a new product category called %CategoryName% in WooCommerce. Product category slug is %Slug%.', 'wp-security-audit-log')),
|
284 |
+
array(9003, E_NOTICE, __('User changed the category of a product', 'wp-security-audit-log'), __('Changed the category of the product %ProductTitle% from %OldCategories% to %NewCategories%. View the product: %EditorLinkProduct%.', 'wp-security-audit-log')),
|
285 |
+
array(9004, E_NOTICE, __('User modified the short description of a product', 'wp-security-audit-log'), __('Modified the short description of the product %ProductTitle%. View the product: %EditorLinkProduct%.', 'wp-security-audit-log')),
|
286 |
+
array(9005, E_NOTICE, __('User modified the text of a product', 'wp-security-audit-log'), __('Modified the text of the product %ProductTitle%. View the product: %EditorLinkProduct%.', 'wp-security-audit-log')),
|
287 |
+
array(9006, E_NOTICE, __('User changed the URL of a product', 'wp-security-audit-log'), __('Changed the URL of the product %ProductTitle% from %OldUrl% to %NewUrl%. View the product: %EditorLinkProduct%.', 'wp-security-audit-log')),
|
288 |
+
array(9007, E_NOTICE, __('User changed the Product Data of a product', 'wp-security-audit-log'), __('Changed the Product Data of the product %ProductTitle%. View the product: %EditorLinkProduct%.', 'wp-security-audit-log')),
|
289 |
+
array(9008, E_NOTICE, __('User changed the date of a product', 'wp-security-audit-log'), __('Changed the date of the product %ProductTitle% from %OldDate% to %NewDate%. View the product: %EditorLinkProduct%.', 'wp-security-audit-log')),
|
290 |
+
array(9009, E_NOTICE, __('User changed the visibility of a product', 'wp-security-audit-log'), __('Changed the visibility of the product %ProductTitle% from %OldVisibility% to %NewVisibility%. View the product: %EditorLinkProduct%.', 'wp-security-audit-log')),
|
291 |
+
array(9010, E_NOTICE, __('User modified the published product', 'wp-security-audit-log'), __('Modified the published product %ProductTitle%. Product URL is %ProductUrl%. View the product: %EditorLinkProduct%.', 'wp-security-audit-log')),
|
292 |
+
array(9011, E_NOTICE, __('User modified the draft product', 'wp-security-audit-log'), __('Modified the draft product %ProductTitle%. View the product: %EditorLinkProduct%.', 'wp-security-audit-log')),
|
293 |
+
array(9012, E_WARNING, __('User moved a product to trash', 'wp-security-audit-log'), __('Moved the product %ProductTitle% to trash. Product URL was %ProductUrl%.', 'wp-security-audit-log')),
|
294 |
+
array(9013, E_WARNING, __('User permanently deleted a product', 'wp-security-audit-log'), __('Permanently deleted the product %ProductTitle%.', 'wp-security-audit-log')),
|
295 |
+
array(9014, E_CRITICAL, __('User restored a product from the trash', 'wp-security-audit-log'), __('Product %ProductTitle% has been restored from trash. View product: %EditorLinkProduct%.', 'wp-security-audit-log')),
|
296 |
+
array(9015, E_NOTICE, __('User changed status of a product', 'wp-security-audit-log'), __('Changed the status of the product %ProductTitle% from %OldStatus% to %NewStatus%. View the product: %EditorLinkProduct%.', 'wp-security-audit-log')),
|
297 |
+
array(9016, E_WARNING, __('User changed type of a price', 'wp-security-audit-log'), __('Changed the %PriceType% of the product %ProductTitle% from %OldPrice% to %NewPrice%. View the product: %EditorLinkProduct%.', 'wp-security-audit-log')),
|
298 |
+
array(9017, E_WARNING, __('User changed the SKU of a product', 'wp-security-audit-log'), __('Changed the SKU of the product %ProductTitle% from %OldSku% to %NewSku%. View the product: %EditorLinkProduct%.', 'wp-security-audit-log')),
|
299 |
+
array(9018, E_CRITICAL, __('User changed the stock status of a product', 'wp-security-audit-log'), __('Changed the stock status of the product %ProductTitle% from %OldStatus% to %NewStatus%. View the product: %EditorLinkProduct%.', 'wp-security-audit-log')),
|
300 |
+
array(9019, E_WARNING, __('User changed the stock quantity', 'wp-security-audit-log'), __('Changed the stock quantity from %OldValue% to %NewValue%. View the product: %EditorLinkProduct%', 'wp-security-audit-log')),
|
301 |
+
array(9020, E_WARNING, __('User set a product type', 'wp-security-audit-log'), __('Set the product %ProductTitle% as %Type%. View the product: %EditorLinkProduct%.', 'wp-security-audit-log')),
|
302 |
+
array(9021, E_WARNING, __('User changed the weight of a product', 'wp-security-audit-log'), __('Changed the weight of the product %ProductTitle% from %OldWeight% to %NewWeight%. View the product: %EditorLinkProduct%.', 'wp-security-audit-log')),
|
303 |
+
array(9022, E_WARNING, __('User changed the dimensions of a product', 'wp-security-audit-log'), __('Changed the %DimensionType% dimensions of the product %ProductTitle% from %OldDimension% to %NewDimension%. View the product: %EditorLinkProduct%.', 'wp-security-audit-log')),
|
304 |
+
array(9023, E_WARNING, __('User added the Downloadable File to a product', 'wp-security-audit-log'), __('Added the Downloadable File %FileName% with File URL %FileUrl% to the product %ProductTitle%. View the product: %EditorLinkProduct%.', 'wp-security-audit-log')),
|
305 |
+
array(9024, E_WARNING, __('User Removed the Downloadable File from a product', 'wp-security-audit-log'), __('Removed the Downloadable File %FileName% with File URL %FileUrl% from the product %ProductTitle%. View the product: %EditorLinkProduct%.', 'wp-security-audit-log')),
|
306 |
+
array(9025, E_WARNING, __('User changed the name of a Downloadable File in a product', 'wp-security-audit-log'), __('Changed the name of a Downloadable File from %OldName% to %NewName% in product %ProductTitle%. View the product: %EditorLinkProduct%.', 'wp-security-audit-log')),
|
307 |
+
array(9026, E_WARNING, __('User changed the URL of the Downloadable File in a product', 'wp-security-audit-log'), __('Changed the URL of the Downloadable File %FileName% from %OldUrl% to %NewUrl% in product %ProductTitle%. View the product: %EditorLinkProduct%.', 'wp-security-audit-log')),
|
308 |
+
array(9027, E_WARNING, __('User changed the Weight Unit', 'wp-security-audit-log'), __('Changed the Weight Unit from %OldUnit% to %NewUnit% in WooCommerce.', 'wp-security-audit-log')),
|
309 |
+
array(9028, E_WARNING, __('User changed the Dimensions Unit', 'wp-security-audit-log'), __('Changed the Dimensions Unit from %OldUnit% to %NewUnit% in WooCommerce.', 'wp-security-audit-log')),
|
310 |
+
array(9029, E_CRITICAL, __('User changed the Base Location', 'wp-security-audit-log'), __('Changed the Base Location from %OldLocation% to %NewLocation% in WooCommerce.', 'wp-security-audit-log')),
|
311 |
+
array(9030, E_CRITICAL, __('User Enabled/Disabled taxes', 'wp-security-audit-log'), __('%Status% taxes in the WooCommerce store.', 'wp-security-audit-log')),
|
312 |
+
array(9031, E_CRITICAL, __('User changed the currency', 'wp-security-audit-log'), __('Changed the currency from %OldCurrency% to %NewCurrency% in WooCommerce.', 'wp-security-audit-log')),
|
313 |
+
array(9032, E_CRITICAL, __('User Enabled/Disabled the use of coupons during checkout', 'wp-security-audit-log'), __('%Status% the use of coupons during checkout in WooCommerce.', 'wp-security-audit-log')),
|
314 |
+
array(9033, E_CRITICAL, __('User Enabled/Disabled guest checkout', 'wp-security-audit-log'), __('%Status% guest checkout in WooCommerce.', 'wp-security-audit-log'))
|
315 |
)
|
316 |
));
|
317 |
// Load Custom alerts
|
js/auditlog.js
CHANGED
@@ -19,6 +19,23 @@ window['WsalAuditLogRefreshed'] = function(){
|
|
19 |
jQuery('<input type="hidden" name="paged"/>').val(paged)
|
20 |
).submit();
|
21 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
22 |
};
|
23 |
|
24 |
function WsalAuditLogInit(_WsalData){
|
@@ -163,3 +180,16 @@ function WsalDBChange(value){
|
|
163 |
}
|
164 |
});
|
165 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
jQuery('<input type="hidden" name="paged"/>').val(paged)
|
20 |
).submit();
|
21 |
});
|
22 |
+
// tooltip Confirm disable alert
|
23 |
+
jQuery('.log-disable').darkTooltip({
|
24 |
+
animation: 'fadeIn',
|
25 |
+
size: 'small',
|
26 |
+
gravity: 'west',
|
27 |
+
confirm: true,
|
28 |
+
yes: 'Disable',
|
29 |
+
onYes: function(elem){
|
30 |
+
WsalDisableByCode(elem.attr('data-alert-id'))
|
31 |
+
}
|
32 |
+
});
|
33 |
+
// tooltip severity type
|
34 |
+
jQuery('.tooltip').darkTooltip({
|
35 |
+
animation: 'fadeIn',
|
36 |
+
gravity: 'west',
|
37 |
+
size: 'medium'
|
38 |
+
});
|
39 |
};
|
40 |
|
41 |
function WsalAuditLogInit(_WsalData){
|
180 |
}
|
181 |
});
|
182 |
}
|
183 |
+
|
184 |
+
function WsalDisableByCode(code){
|
185 |
+
jQuery.ajax({
|
186 |
+
type: 'POST',
|
187 |
+
url: ajaxurl,
|
188 |
+
async: true,
|
189 |
+
data: { action: 'AjaxDisableByCode', code: code },
|
190 |
+
success: function(data) {
|
191 |
+
var notice = jQuery('<div class="updated" data-notice-name="disabled"></div>').html(data);
|
192 |
+
jQuery("h2:first").after(notice);
|
193 |
+
}
|
194 |
+
});
|
195 |
+
}
|
js/jquery.darktooltip.js
ADDED
@@ -0,0 +1,265 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
* DarkTooltip v0.4.0
|
3 |
+
* Simple customizable tooltip with confirm option and 3d effects
|
4 |
+
* (c)2014 Rubén Torres - rubentdlh@gmail.com
|
5 |
+
* Released under the MIT license
|
6 |
+
*/
|
7 |
+
|
8 |
+
(function($) {
|
9 |
+
|
10 |
+
function DarkTooltip(element, options){
|
11 |
+
this.bearer = element;
|
12 |
+
this.options = options;
|
13 |
+
this.hideEvent;
|
14 |
+
this.mouseOverMode=(this.options.trigger == "hover" || this.options.trigger == "mouseover" || this.options.trigger == "onmouseover");
|
15 |
+
}
|
16 |
+
|
17 |
+
DarkTooltip.prototype = {
|
18 |
+
|
19 |
+
show: function(){
|
20 |
+
var dt = this;
|
21 |
+
if(this.options.modal){
|
22 |
+
this.modalLayer.css('display', 'block');
|
23 |
+
}
|
24 |
+
//Close all other tooltips
|
25 |
+
this.tooltip.css('display', 'block');
|
26 |
+
//Set event to prevent tooltip from closig when mouse is over the tooltip
|
27 |
+
if(dt.mouseOverMode){
|
28 |
+
this.tooltip.mouseover( function(){
|
29 |
+
clearTimeout(dt.hideEvent);
|
30 |
+
});
|
31 |
+
this.tooltip.mouseout( function(){
|
32 |
+
clearTimeout(dt.hideEvent);
|
33 |
+
dt.hide();
|
34 |
+
});
|
35 |
+
}
|
36 |
+
},
|
37 |
+
|
38 |
+
hide: function(){
|
39 |
+
var dt=this;
|
40 |
+
this.hideEvent = setTimeout( function(){
|
41 |
+
dt.tooltip.hide();
|
42 |
+
}, 100);
|
43 |
+
if(dt.options.modal){
|
44 |
+
dt.modalLayer.hide();
|
45 |
+
}
|
46 |
+
this.options.onClose();
|
47 |
+
},
|
48 |
+
|
49 |
+
toggle: function(){
|
50 |
+
if(this.tooltip.is(":visible")){
|
51 |
+
this.hide();
|
52 |
+
}else{
|
53 |
+
this.show();
|
54 |
+
}
|
55 |
+
},
|
56 |
+
|
57 |
+
addAnimation: function(){
|
58 |
+
switch(this.options.animation){
|
59 |
+
case 'none':
|
60 |
+
break;
|
61 |
+
case 'fadeIn':
|
62 |
+
this.tooltip.addClass('animated');
|
63 |
+
this.tooltip.addClass('fadeIn');
|
64 |
+
break;
|
65 |
+
case 'flipIn':
|
66 |
+
this.tooltip.addClass('animated');
|
67 |
+
this.tooltip.addClass('flipIn');
|
68 |
+
break;
|
69 |
+
}
|
70 |
+
},
|
71 |
+
|
72 |
+
setContent: function(){
|
73 |
+
$(this.bearer).css('cursor', 'pointer');
|
74 |
+
//Get tooltip content
|
75 |
+
if(this.options.content){
|
76 |
+
this.content = this.options.content;
|
77 |
+
}else if(this.bearer.attr("data-tooltip")){
|
78 |
+
this.content = this.bearer.attr("data-tooltip");
|
79 |
+
}else{
|
80 |
+
// console.log("No content for tooltip: " + this.bearer.selector);
|
81 |
+
return;
|
82 |
+
}
|
83 |
+
if(this.content.charAt(0) == '#'){
|
84 |
+
if (this.options.delete_content){
|
85 |
+
var content = $(this.content).html();
|
86 |
+
$(this.content).html('');
|
87 |
+
this.content = content;
|
88 |
+
delete content;
|
89 |
+
}
|
90 |
+
else{
|
91 |
+
$(this.content).hide();
|
92 |
+
this.content = $(this.content).html();
|
93 |
+
}
|
94 |
+
this.contentType='html';
|
95 |
+
}else{
|
96 |
+
this.contentType='text';
|
97 |
+
}
|
98 |
+
tooltipId = "";
|
99 |
+
if(this.bearer.attr("id") != ""){
|
100 |
+
tooltipId = "id='darktooltip-" + this.bearer.attr("id") + "'";
|
101 |
+
}
|
102 |
+
//Create modal layer
|
103 |
+
this.modalLayer = $("<ins class='darktooltip-modal-layer'></ins>");
|
104 |
+
//Create tooltip container
|
105 |
+
this.tooltip = $("<ins " + tooltipId + " class = 'dark-tooltip " + this.options.theme + " " + this.options.size + " "
|
106 |
+
+ this.options.gravity + "'><div>" + this.content + "</div><div class = 'tip'></div></ins>");
|
107 |
+
this.tip = this.tooltip.find(".tip");
|
108 |
+
|
109 |
+
$("body").append(this.modalLayer);
|
110 |
+
$("body").append(this.tooltip);
|
111 |
+
|
112 |
+
//Adjust size for html tooltip
|
113 |
+
if(this.contentType == 'html'){
|
114 |
+
this.tooltip.css('max-width','none');
|
115 |
+
}
|
116 |
+
this.tooltip.css('opacity', this.options.opacity);
|
117 |
+
this.addAnimation();
|
118 |
+
if(this.options.confirm){
|
119 |
+
this.addConfirm();
|
120 |
+
}
|
121 |
+
},
|
122 |
+
|
123 |
+
setPositions: function(){
|
124 |
+
var leftPos = this.bearer.offset().left;
|
125 |
+
var topPos = this.bearer.offset().top;
|
126 |
+
|
127 |
+
switch(this.options.gravity){
|
128 |
+
case 'south':
|
129 |
+
leftPos += this.bearer.outerWidth()/2 - this.tooltip.outerWidth()/2;
|
130 |
+
topPos += -this.tooltip.outerHeight() - this.tip.outerHeight()/2;
|
131 |
+
break;
|
132 |
+
case 'west':
|
133 |
+
leftPos += this.bearer.outerWidth() + this.tip.outerWidth()/2;
|
134 |
+
topPos += this.bearer.outerHeight()/2 - (this.tooltip.outerHeight()/2);
|
135 |
+
break;
|
136 |
+
case 'north':
|
137 |
+
leftPos += this.bearer.outerWidth()/2 - (this.tooltip.outerWidth()/2);
|
138 |
+
topPos += this.bearer.outerHeight() + this.tip.outerHeight()/2;
|
139 |
+
break;
|
140 |
+
case 'east':
|
141 |
+
leftPos += -this.tooltip.outerWidth() - this.tip.outerWidth()/2;
|
142 |
+
topPos += this.bearer.outerHeight()/2 - this.tooltip.outerHeight()/2;
|
143 |
+
break;
|
144 |
+
}
|
145 |
+
if(this.options.autoLeft){
|
146 |
+
this.tooltip.css('left', leftPos);
|
147 |
+
}
|
148 |
+
if(this.options.autoTop){
|
149 |
+
this.tooltip.css('top', topPos);
|
150 |
+
}
|
151 |
+
},
|
152 |
+
|
153 |
+
setEvents: function(){
|
154 |
+
var dt = this;
|
155 |
+
var delay = dt.options.hoverDelay;
|
156 |
+
var setTimeoutConst;
|
157 |
+
if(dt.mouseOverMode){
|
158 |
+
this.bearer.mouseenter( function(){
|
159 |
+
//Timeout for hover mouse delay
|
160 |
+
setTimeoutConst = setTimeout( function(){
|
161 |
+
dt.setPositions();
|
162 |
+
dt.show();
|
163 |
+
}, delay);
|
164 |
+
}).mouseleave( function(){
|
165 |
+
clearTimeout(setTimeoutConst );
|
166 |
+
dt.hide();
|
167 |
+
});
|
168 |
+
}else if(this.options.trigger == "click" || this.options.trigger == "onclik"){
|
169 |
+
this.tooltip.click( function(e){
|
170 |
+
e.stopPropagation();
|
171 |
+
});
|
172 |
+
this.bearer.click( function(e){
|
173 |
+
e.preventDefault();
|
174 |
+
dt.setPositions();
|
175 |
+
dt.toggle();
|
176 |
+
e.stopPropagation();
|
177 |
+
});
|
178 |
+
$('html').click(function(){
|
179 |
+
dt.hide();
|
180 |
+
})
|
181 |
+
}
|
182 |
+
},
|
183 |
+
|
184 |
+
activate: function(){
|
185 |
+
this.setContent();
|
186 |
+
if(this.content){
|
187 |
+
this.setEvents();
|
188 |
+
}
|
189 |
+
},
|
190 |
+
|
191 |
+
addConfirm: function(){
|
192 |
+
this.tooltip.append("<ul class = 'confirm'><li class = 'darktooltip-yes'>"
|
193 |
+
+ this.options.yes +"</li><li class = 'darktooltip-no'>"+ this.options.no +"</li></ul>");
|
194 |
+
this.setConfirmEvents();
|
195 |
+
},
|
196 |
+
|
197 |
+
setConfirmEvents: function(){
|
198 |
+
var dt = this;
|
199 |
+
this.tooltip.find('li.darktooltip-yes').click( function(e){
|
200 |
+
dt.onYes();
|
201 |
+
e.stopPropagation();
|
202 |
+
});
|
203 |
+
this.tooltip.find('li.darktooltip-no').click( function(e){
|
204 |
+
dt.onNo();
|
205 |
+
e.stopPropagation();
|
206 |
+
});
|
207 |
+
},
|
208 |
+
|
209 |
+
finalMessage: function(){
|
210 |
+
if(this.options.finalMessage){
|
211 |
+
var dt = this;
|
212 |
+
dt.tooltip.find('div:first').html(this.options.finalMessage);
|
213 |
+
dt.tooltip.find('ul').remove();
|
214 |
+
dt.setPositions();
|
215 |
+
setTimeout( function(){
|
216 |
+
dt.hide();
|
217 |
+
dt.setContent();
|
218 |
+
}, dt.options.finalMessageDuration);
|
219 |
+
}else{
|
220 |
+
this.hide();
|
221 |
+
}
|
222 |
+
},
|
223 |
+
|
224 |
+
onYes: function(){
|
225 |
+
this.options.onYes(this.bearer);
|
226 |
+
this.finalMessage();
|
227 |
+
},
|
228 |
+
|
229 |
+
onNo: function(){
|
230 |
+
this.options.onNo(this.bearer);
|
231 |
+
this.hide();
|
232 |
+
}
|
233 |
+
}
|
234 |
+
|
235 |
+
$.fn.darkTooltip = function(options) {
|
236 |
+
return this.each(function(){
|
237 |
+
options = $.extend({}, $.fn.darkTooltip.defaults, options);
|
238 |
+
var tooltip = new DarkTooltip($(this), options);
|
239 |
+
tooltip.activate();
|
240 |
+
});
|
241 |
+
}
|
242 |
+
|
243 |
+
$.fn.darkTooltip.defaults = {
|
244 |
+
animation: 'none',
|
245 |
+
confirm: false,
|
246 |
+
content:'',
|
247 |
+
finalMessage: '',
|
248 |
+
finalMessageDuration: 1000,
|
249 |
+
gravity: 'south',
|
250 |
+
hoverDelay: 0,
|
251 |
+
modal: false,
|
252 |
+
no: 'No',
|
253 |
+
onNo: function(){},
|
254 |
+
onYes: function(){},
|
255 |
+
opacity: 0.9,
|
256 |
+
size: 'medium',
|
257 |
+
theme: 'dark',
|
258 |
+
trigger: 'hover',
|
259 |
+
yes: 'Yes',
|
260 |
+
autoTop: true,
|
261 |
+
autoLeft: true,
|
262 |
+
onClose: function(){}
|
263 |
+
};
|
264 |
+
|
265 |
+
})(jQuery);
|
languages/wp-security-audit-log.pot
CHANGED
@@ -1,101 +1,114 @@
|
|
1 |
-
# Copyright (C)
|
2 |
# This file is distributed under the same license as the WP Security Audit Log package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: WP Security Audit Log 2.
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wp-security-audit-"
|
7 |
"log\n"
|
8 |
-
"POT-Creation-Date:
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
12 |
-
"PO-Revision-Date:
|
13 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
14 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
15 |
|
16 |
-
#: classes/AuditLogListView.php:
|
17 |
msgid "No events so far."
|
18 |
msgstr ""
|
19 |
|
20 |
-
#: classes/AuditLogListView.php:
|
21 |
msgid "Other"
|
22 |
msgstr ""
|
23 |
|
24 |
-
#: classes/AuditLogListView.php:
|
25 |
msgid "Show "
|
26 |
msgstr ""
|
27 |
|
28 |
-
#: classes/AuditLogListView.php:
|
29 |
msgid " Items"
|
30 |
msgstr ""
|
31 |
|
32 |
-
#: classes/AuditLogListView.php:
|
33 |
msgid "All Sites"
|
34 |
msgstr ""
|
35 |
|
36 |
-
#: classes/AuditLogListView.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
#: classes/Views/ToggleAlerts.php:75
|
38 |
msgid "Code"
|
39 |
msgstr ""
|
40 |
|
41 |
-
#: classes/AuditLogListView.php:
|
42 |
#: classes/Views/ToggleAlerts.php:76
|
43 |
msgid "Type"
|
44 |
msgstr ""
|
45 |
|
46 |
-
#: classes/AuditLogListView.php:
|
47 |
msgid "Date"
|
48 |
msgstr ""
|
49 |
|
50 |
-
#: classes/AuditLogListView.php:
|
51 |
msgid "Username"
|
52 |
msgstr ""
|
53 |
|
54 |
-
#: classes/AuditLogListView.php:
|
55 |
msgid "Source IP"
|
56 |
msgstr ""
|
57 |
|
58 |
-
#: classes/AuditLogListView.php:
|
59 |
msgid "Site"
|
60 |
msgstr ""
|
61 |
|
62 |
-
#: classes/AuditLogListView.php:
|
63 |
msgid "Message"
|
64 |
msgstr ""
|
65 |
|
66 |
-
#: classes/AuditLogListView.php:
|
67 |
msgid "Click to toggle."
|
68 |
msgstr ""
|
69 |
|
70 |
-
#: classes/AuditLogListView.php:
|
|
|
|
|
|
|
|
|
71 |
msgid "Unknown error code."
|
72 |
msgstr ""
|
73 |
|
74 |
-
#: classes/AuditLogListView.php:
|
75 |
msgid "Unknown"
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: classes/AuditLogListView.php:
|
79 |
msgid "Plugin"
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: classes/AuditLogListView.php:
|
83 |
msgid "Plugins"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: classes/AuditLogListView.php:
|
87 |
msgid "Website Visitor"
|
88 |
msgstr ""
|
89 |
|
90 |
-
#: classes/AuditLogListView.php:
|
91 |
msgid "System"
|
92 |
msgstr ""
|
93 |
|
94 |
-
#: classes/AuditLogListView.php:
|
95 |
msgid "Alert Data Inspector"
|
96 |
msgstr ""
|
97 |
|
98 |
#: classes/Sensors/Content.php:424 classes/Sensors/Content.php:432
|
|
|
99 |
msgid "Password Protected"
|
100 |
msgstr ""
|
101 |
|
@@ -107,6 +120,14 @@ msgstr ""
|
|
107 |
msgid "Private"
|
108 |
msgstr ""
|
109 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
110 |
#: classes/Views/About.php:6
|
111 |
msgid "About WP Security Audit Log"
|
112 |
msgstr ""
|
@@ -219,33 +240,33 @@ msgstr ""
|
|
219 |
msgid "Professional WordPress security services provided by WP White Security"
|
220 |
msgstr ""
|
221 |
|
222 |
-
#: classes/Views/AuditLog.php:
|
223 |
msgid "Upgrade to Premium"
|
224 |
msgstr ""
|
225 |
|
226 |
-
#: classes/Views/AuditLog.php:
|
227 |
msgid ""
|
228 |
"and add Email Alerts, Reports, Search and Users Login and Session Management."
|
229 |
msgstr ""
|
230 |
|
231 |
-
#: classes/Views/AuditLog.php:
|
232 |
msgid "Upgrade Now!"
|
233 |
msgstr ""
|
234 |
|
235 |
-
#: classes/Views/AuditLog.php:
|
236 |
msgid "Audit Log Viewer"
|
237 |
msgstr ""
|
238 |
|
239 |
-
#: classes/Views/AuditLog.php:
|
240 |
#: classes/Views/Settings.php:111 classes/Views/ToggleAlerts.php:30
|
241 |
msgid "You do not have sufficient permissions to access this page."
|
242 |
msgstr ""
|
243 |
|
244 |
-
#: classes/Views/AuditLog.php:
|
245 |
msgid "Please enter the number of alerts you would like to see on one page:"
|
246 |
msgstr ""
|
247 |
|
248 |
-
#: classes/Views/AuditLog.php:
|
249 |
msgid "No Results"
|
250 |
msgstr ""
|
251 |
|
@@ -688,97 +709,103 @@ msgstr ""
|
|
688 |
msgid "Remove Data on Uninstall"
|
689 |
msgstr ""
|
690 |
|
691 |
-
#: classes/Views/Settings.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
692 |
msgid "Security Alerts Pruning"
|
693 |
msgstr ""
|
694 |
|
695 |
-
#: classes/Views/Settings.php:
|
696 |
msgid "(eg: 1 month)"
|
697 |
msgstr ""
|
698 |
|
699 |
-
#: classes/Views/Settings.php:
|
700 |
msgid "None"
|
701 |
msgstr ""
|
702 |
|
703 |
-
#: classes/Views/Settings.php:
|
704 |
msgid "Delete alerts older than"
|
705 |
msgstr ""
|
706 |
|
707 |
-
#: classes/Views/Settings.php:
|
708 |
msgid "(eg: 80)"
|
709 |
msgstr ""
|
710 |
|
711 |
-
#: classes/Views/Settings.php:
|
712 |
msgid "Keep up to"
|
713 |
msgstr ""
|
714 |
|
715 |
-
#: classes/Views/Settings.php:
|
716 |
msgid "alerts"
|
717 |
msgstr ""
|
718 |
|
719 |
-
#: classes/Views/Settings.php:
|
720 |
msgid "Next Scheduled Cleanup is in "
|
721 |
msgstr ""
|
722 |
|
723 |
-
#: classes/Views/Settings.php:
|
724 |
msgid "(or %s)"
|
725 |
msgstr ""
|
726 |
|
727 |
-
#: classes/Views/Settings.php:
|
728 |
msgid "Run Manually"
|
729 |
msgstr ""
|
730 |
|
731 |
-
#: classes/Views/Settings.php:
|
732 |
msgid "Can View Alerts"
|
733 |
msgstr ""
|
734 |
|
735 |
-
#: classes/Views/Settings.php:
|
736 |
msgid "Users and Roles in this list can view the security alerts"
|
737 |
msgstr ""
|
738 |
|
739 |
-
#: classes/Views/Settings.php:
|
740 |
msgid "Refresh Audit Log Viewer"
|
741 |
msgstr ""
|
742 |
|
743 |
-
#: classes/Views/Settings.php:
|
744 |
msgid "Automatic"
|
745 |
msgstr ""
|
746 |
|
747 |
-
#: classes/Views/Settings.php:
|
748 |
msgid "Refresh Audit Log Viewer as soon as there are new alerts."
|
749 |
msgstr ""
|
750 |
|
751 |
-
#: classes/Views/Settings.php:
|
752 |
msgid "Manual"
|
753 |
msgstr ""
|
754 |
|
755 |
-
#: classes/Views/Settings.php:
|
756 |
msgid "Refresh Audit Log Viewer only when the page is reloaded."
|
757 |
msgstr ""
|
758 |
|
759 |
-
#: classes/Views/Settings.php:
|
760 |
msgid "Alerts Timestamp"
|
761 |
msgstr ""
|
762 |
|
763 |
-
#: classes/Views/Settings.php:
|
764 |
msgid "UTC"
|
765 |
msgstr ""
|
766 |
|
767 |
-
#: classes/Views/Settings.php:
|
768 |
msgid "WordPress' timezone"
|
769 |
msgstr ""
|
770 |
|
771 |
-
#: classes/Views/Settings.php:
|
772 |
msgid ""
|
773 |
"Select which timestamp should the alerts have in the Audit Log viewer. Note "
|
774 |
"that the WordPress' timezone might be different from that of the server."
|
775 |
msgstr ""
|
776 |
|
777 |
-
#: classes/Views/Settings.php:
|
778 |
msgid "Audit Log Columns Selection"
|
779 |
msgstr ""
|
780 |
|
781 |
-
#: classes/Views/Settings.php:
|
782 |
msgid ""
|
783 |
"When you disable any of the above such details won’t be shown in the Audit "
|
784 |
"Log\n"
|
@@ -786,49 +813,49 @@ msgid ""
|
|
786 |
"database."
|
787 |
msgstr ""
|
788 |
|
789 |
-
#: classes/Views/Settings.php:
|
790 |
msgid "Disable Alerts for WordPress Background Activity"
|
791 |
msgstr ""
|
792 |
|
793 |
-
#: classes/Views/Settings.php:
|
794 |
msgid "Hide activity"
|
795 |
msgstr ""
|
796 |
|
797 |
-
#: classes/Views/Settings.php:
|
798 |
msgid ""
|
799 |
"For example do not raise an alert when WordPress deletes the auto drafts."
|
800 |
msgstr ""
|
801 |
|
802 |
-
#: classes/Views/Settings.php:
|
803 |
msgid "Number of 404 Requests to Log"
|
804 |
msgstr ""
|
805 |
|
806 |
-
#: classes/Views/Settings.php:
|
807 |
msgid ""
|
808 |
"By default the plugin keeps up to 99 requests to non-existing pages from the "
|
809 |
"same IP address. Increase the value in this setting to the desired amount to "
|
810 |
"keep a log of more or less requests."
|
811 |
msgstr ""
|
812 |
|
813 |
-
#: classes/Views/Settings.php:
|
814 |
msgid ""
|
815 |
"Note that by increasing this value to a high number, should your website be "
|
816 |
"scanned the plugin will consume more resources to log all the requests."
|
817 |
msgstr ""
|
818 |
|
819 |
-
#: classes/Views/Settings.php:
|
820 |
msgid "Excluded Users"
|
821 |
msgstr ""
|
822 |
|
823 |
-
#: classes/Views/Settings.php:
|
824 |
msgid "Excluded Roles"
|
825 |
msgstr ""
|
826 |
|
827 |
-
#: classes/Views/Settings.php:
|
828 |
msgid "Excluded Custom Fields"
|
829 |
msgstr ""
|
830 |
|
831 |
-
#: classes/Views/Settings.php:
|
832 |
msgid "Excluded IP Addresses"
|
833 |
msgstr ""
|
834 |
|
@@ -1915,643 +1942,997 @@ msgstr ""
|
|
1915 |
msgid "Modified %File% with the Plugin Editor."
|
1916 |
msgstr ""
|
1917 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1918 |
#: defaults.php:186
|
1919 |
-
msgid "
|
|
|
|
|
|
|
|
|
1920 |
msgstr ""
|
1921 |
|
1922 |
#: defaults.php:187
|
1923 |
-
msgid "
|
1924 |
msgstr ""
|
1925 |
|
1926 |
#: defaults.php:187
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1927 |
msgid "An unexpected error has occurred ."
|
1928 |
msgstr ""
|
1929 |
|
1930 |
-
#: defaults.php:
|
1931 |
msgid "PHP error"
|
1932 |
msgstr ""
|
1933 |
|
1934 |
-
#: defaults.php:
|
1935 |
-
#: defaults.php:
|
1936 |
msgid "%Message%."
|
1937 |
msgstr ""
|
1938 |
|
1939 |
-
#: defaults.php:
|
1940 |
msgid "PHP warning"
|
1941 |
msgstr ""
|
1942 |
|
1943 |
-
#: defaults.php:
|
1944 |
msgid "PHP notice"
|
1945 |
msgstr ""
|
1946 |
|
1947 |
-
#: defaults.php:
|
1948 |
msgid "PHP exception"
|
1949 |
msgstr ""
|
1950 |
|
1951 |
-
#: defaults.php:
|
1952 |
msgid "PHP shutdown error"
|
1953 |
msgstr ""
|
1954 |
|
1955 |
-
#: defaults.php:
|
1956 |
msgid "Events automatically pruned by system"
|
1957 |
msgstr ""
|
1958 |
|
1959 |
-
#: defaults.php:
|
1960 |
msgid "System automatically deleted %EventCount% alert(s)."
|
1961 |
msgstr ""
|
1962 |
|
1963 |
-
#: defaults.php:
|
1964 |
msgid "Option Anyone Can Register in WordPress settings changed"
|
1965 |
msgstr ""
|
1966 |
|
1967 |
-
#: defaults.php:
|
1968 |
msgid "%NewValue% the option \"Anyone can register\"."
|
1969 |
msgstr ""
|
1970 |
|
1971 |
-
#: defaults.php:
|
1972 |
msgid "New User Default Role changed"
|
1973 |
msgstr ""
|
1974 |
|
1975 |
-
#: defaults.php:
|
1976 |
msgid "Changed the New User Default Role from %OldRole% to %NewRole%."
|
1977 |
msgstr ""
|
1978 |
|
1979 |
-
#: defaults.php:
|
1980 |
msgid "WordPress Administrator Notification email changed"
|
1981 |
msgstr ""
|
1982 |
|
1983 |
-
#: defaults.php:
|
1984 |
msgid ""
|
1985 |
"Changed the WordPress administrator notifications email address from "
|
1986 |
"%OldEmail% to %NewEmail%."
|
1987 |
msgstr ""
|
1988 |
|
1989 |
-
#: defaults.php:
|
1990 |
msgid "WordPress was updated"
|
1991 |
msgstr ""
|
1992 |
|
1993 |
-
#: defaults.php:
|
1994 |
msgid "Updated WordPress from version %OldVersion% to %NewVersion%."
|
1995 |
msgstr ""
|
1996 |
|
1997 |
-
#: defaults.php:
|
1998 |
msgid "User changes the WordPress Permalinks"
|
1999 |
msgstr ""
|
2000 |
|
2001 |
-
#: defaults.php:
|
2002 |
msgid "Changed the WordPress permalinks from %OldPattern% to %NewPattern%."
|
2003 |
msgstr ""
|
2004 |
|
2005 |
-
#: defaults.php:
|
2006 |
msgid "User requests non-existing pages (404 Error Pages)"
|
2007 |
msgstr ""
|
2008 |
|
2009 |
-
#: defaults.php:
|
2010 |
msgid ""
|
2011 |
"Has requested a non existing page (404 Error Pages) %Attempts% %Msg%. "
|
2012 |
"%LinkFile%."
|
2013 |
msgstr ""
|
2014 |
|
2015 |
-
#: defaults.php:
|
2016 |
msgid "Advertising Add-ons."
|
2017 |
msgstr ""
|
2018 |
|
2019 |
-
#: defaults.php:
|
2020 |
msgid "%PromoName% %PromoMessage%"
|
2021 |
msgstr ""
|
2022 |
|
2023 |
-
#: defaults.php:
|
2024 |
msgid "MultiSite"
|
2025 |
msgstr ""
|
2026 |
|
2027 |
-
#: defaults.php:
|
2028 |
msgid "User granted Super Admin privileges"
|
2029 |
msgstr ""
|
2030 |
|
2031 |
-
#: defaults.php:
|
2032 |
msgid "Granted Super Admin privileges to %TargetUsername%."
|
2033 |
msgstr ""
|
2034 |
|
2035 |
-
#: defaults.php:
|
2036 |
msgid "User revoked from Super Admin privileges"
|
2037 |
msgstr ""
|
2038 |
|
2039 |
-
#: defaults.php:
|
2040 |
msgid "Revoked Super Admin privileges from %TargetUsername%."
|
2041 |
msgstr ""
|
2042 |
|
2043 |
-
#: defaults.php:
|
2044 |
msgid "Existing user added to a site"
|
2045 |
msgstr ""
|
2046 |
|
2047 |
-
#: defaults.php:
|
2048 |
msgid ""
|
2049 |
"Added the existing user %TargetUsername% with %TargetUserRole% role to site "
|
2050 |
"%SiteName%."
|
2051 |
msgstr ""
|
2052 |
|
2053 |
-
#: defaults.php:
|
2054 |
msgid "User removed from site"
|
2055 |
msgstr ""
|
2056 |
|
2057 |
-
#: defaults.php:
|
2058 |
msgid ""
|
2059 |
"Removed the user %TargetUsername% with role %TargetUserRole% from %SiteName% "
|
2060 |
"site."
|
2061 |
msgstr ""
|
2062 |
|
2063 |
-
#: defaults.php:
|
2064 |
msgid "New network user created"
|
2065 |
msgstr ""
|
2066 |
|
2067 |
-
#: defaults.php:
|
2068 |
msgid "Created a new network user %NewUserData->Username%."
|
2069 |
msgstr ""
|
2070 |
|
2071 |
-
#: defaults.php:
|
2072 |
msgid "The forum role of a user was changed by another WordPress user"
|
2073 |
msgstr ""
|
2074 |
|
2075 |
-
#: defaults.php:
|
2076 |
msgid ""
|
2077 |
"Change the forum role of the user %TargetUsername% from %OldRole% to %NewRole"
|
2078 |
"% by %UserChanger%."
|
2079 |
msgstr ""
|
2080 |
|
2081 |
-
#: defaults.php:
|
2082 |
msgid "New site added on the network"
|
2083 |
msgstr ""
|
2084 |
|
2085 |
-
#: defaults.php:
|
2086 |
msgid "Added the site %SiteName% to the network."
|
2087 |
msgstr ""
|
2088 |
|
2089 |
-
#: defaults.php:
|
2090 |
msgid "Existing site archived"
|
2091 |
msgstr ""
|
2092 |
|
2093 |
-
#: defaults.php:
|
2094 |
msgid "Archived the site %SiteName%."
|
2095 |
msgstr ""
|
2096 |
|
2097 |
-
#: defaults.php:
|
2098 |
msgid "Archived site has been unarchived"
|
2099 |
msgstr ""
|
2100 |
|
2101 |
-
#: defaults.php:
|
2102 |
msgid "Unarchived the site %SiteName%."
|
2103 |
msgstr ""
|
2104 |
|
2105 |
-
#: defaults.php:
|
2106 |
msgid "Deactivated site has been activated"
|
2107 |
msgstr ""
|
2108 |
|
2109 |
-
#: defaults.php:
|
2110 |
msgid "Activated the site %SiteName%."
|
2111 |
msgstr ""
|
2112 |
|
2113 |
-
#: defaults.php:
|
2114 |
msgid "Site has been deactivated"
|
2115 |
msgstr ""
|
2116 |
|
2117 |
-
#: defaults.php:
|
2118 |
msgid "Deactivated the site %SiteName%."
|
2119 |
msgstr ""
|
2120 |
|
2121 |
-
#: defaults.php:
|
2122 |
msgid "Existing site deleted from network"
|
2123 |
msgstr ""
|
2124 |
|
2125 |
-
#: defaults.php:
|
2126 |
msgid "Deleted the site %SiteName%."
|
2127 |
msgstr ""
|
2128 |
|
2129 |
-
#: defaults.php:
|
2130 |
msgid "Activated theme on network"
|
2131 |
msgstr ""
|
2132 |
|
2133 |
-
#: defaults.php:
|
2134 |
msgid ""
|
2135 |
"Network activated the theme %Theme->Name% installed in %Theme-"
|
2136 |
">get_template_directory%."
|
2137 |
msgstr ""
|
2138 |
|
2139 |
-
#: defaults.php:
|
2140 |
msgid "Deactivated theme from network"
|
2141 |
msgstr ""
|
2142 |
|
2143 |
-
#: defaults.php:
|
2144 |
msgid ""
|
2145 |
"Network deactivated the theme %Theme->Name% installed in %Theme-"
|
2146 |
">get_template_directory%."
|
2147 |
msgstr ""
|
2148 |
|
2149 |
-
#: defaults.php:
|
2150 |
msgid "Database"
|
2151 |
msgstr ""
|
2152 |
|
2153 |
-
#: defaults.php:
|
2154 |
msgid "Plugin created tables"
|
2155 |
msgstr ""
|
2156 |
|
2157 |
-
#: defaults.php:
|
2158 |
msgid ""
|
2159 |
"Plugin %Plugin->Name% created these tables in the database: %TableNames%."
|
2160 |
msgstr ""
|
2161 |
|
2162 |
-
#: defaults.php:
|
2163 |
msgid "Plugin modified tables structure"
|
2164 |
msgstr ""
|
2165 |
|
2166 |
-
#: defaults.php:
|
2167 |
msgid ""
|
2168 |
"Plugin %Plugin->Name% modified the structure of these database tables: "
|
2169 |
"%TableNames%."
|
2170 |
msgstr ""
|
2171 |
|
2172 |
-
#: defaults.php:
|
2173 |
msgid "Plugin deleted tables"
|
2174 |
msgstr ""
|
2175 |
|
2176 |
-
#: defaults.php:
|
2177 |
msgid ""
|
2178 |
"Plugin %Plugin->Name% deleted the following tables from the database: "
|
2179 |
"%TableNames%."
|
2180 |
msgstr ""
|
2181 |
|
2182 |
-
#: defaults.php:
|
2183 |
msgid "Theme created tables"
|
2184 |
msgstr ""
|
2185 |
|
2186 |
-
#: defaults.php:
|
2187 |
msgid "Theme %Theme->Name% created these tables in the database: %TableNames%."
|
2188 |
msgstr ""
|
2189 |
|
2190 |
-
#: defaults.php:
|
2191 |
msgid "Theme modified tables structure"
|
2192 |
msgstr ""
|
2193 |
|
2194 |
-
#: defaults.php:
|
2195 |
msgid ""
|
2196 |
"Theme %Theme->Name% modified the structure of these database tables: "
|
2197 |
"%TableNames%."
|
2198 |
msgstr ""
|
2199 |
|
2200 |
-
#: defaults.php:
|
2201 |
msgid "Theme deleted tables"
|
2202 |
msgstr ""
|
2203 |
|
2204 |
-
#: defaults.php:
|
2205 |
msgid ""
|
2206 |
"Theme %Theme->Name% deleted the following tables from the database: "
|
2207 |
"%TableNames%."
|
2208 |
msgstr ""
|
2209 |
|
2210 |
-
#: defaults.php:
|
2211 |
msgid "Unknown component created tables"
|
2212 |
msgstr ""
|
2213 |
|
2214 |
-
#: defaults.php:
|
2215 |
msgid ""
|
2216 |
"An unknown component created these tables in the database: %TableNames%."
|
2217 |
msgstr ""
|
2218 |
|
2219 |
-
#: defaults.php:
|
2220 |
msgid "Unknown component modified tables structure"
|
2221 |
msgstr ""
|
2222 |
|
2223 |
-
#: defaults.php:
|
2224 |
msgid ""
|
2225 |
"An unknown component modified the structure of these database tables: "
|
2226 |
"%TableNames%."
|
2227 |
msgstr ""
|
2228 |
|
2229 |
-
#: defaults.php:
|
2230 |
msgid "Unknown component deleted tables"
|
2231 |
msgstr ""
|
2232 |
|
2233 |
-
#: defaults.php:
|
2234 |
msgid ""
|
2235 |
"An unknown component deleted the following tables from the database: "
|
2236 |
"%TableNames%."
|
2237 |
msgstr ""
|
2238 |
|
2239 |
-
#: defaults.php:
|
2240 |
msgid "BBPress Forum"
|
2241 |
msgstr ""
|
2242 |
|
2243 |
-
#: defaults.php:
|
2244 |
msgid "User created new forum"
|
2245 |
msgstr ""
|
2246 |
|
2247 |
-
#: defaults.php:
|
2248 |
msgid "User changed status of a forum"
|
2249 |
msgstr ""
|
2250 |
|
2251 |
-
#: defaults.php:
|
2252 |
msgid "User changed visibility of a forum"
|
2253 |
msgstr ""
|
2254 |
|
2255 |
-
#: defaults.php:
|
2256 |
msgid "User changed the URL of a forum"
|
2257 |
msgstr ""
|
2258 |
|
2259 |
-
#: defaults.php:
|
2260 |
msgid "User changed order of a forum"
|
2261 |
msgstr ""
|
2262 |
|
2263 |
-
#: defaults.php:
|
2264 |
msgid "User moved forum to trash"
|
2265 |
msgstr ""
|
2266 |
|
2267 |
-
#: defaults.php:
|
2268 |
msgid "Moved the forum %ForumName% to trash."
|
2269 |
msgstr ""
|
2270 |
|
2271 |
-
#: defaults.php:
|
2272 |
msgid "User permanently deleted forum"
|
2273 |
msgstr ""
|
2274 |
|
2275 |
-
#: defaults.php:
|
2276 |
msgid "Permanently deleted the forum %ForumName%."
|
2277 |
msgstr ""
|
2278 |
|
2279 |
-
#: defaults.php:
|
2280 |
msgid "User restored forum from trash"
|
2281 |
msgstr ""
|
2282 |
|
2283 |
-
#: defaults.php:
|
2284 |
msgid "User changed the parent of a forum"
|
2285 |
msgstr ""
|
2286 |
|
2287 |
-
#: defaults.php:
|
2288 |
msgid "User changed forum's role"
|
2289 |
msgstr ""
|
2290 |
|
2291 |
-
#: defaults.php:
|
2292 |
msgid "Changed the forum's auto role from %OldRole% to %NewRole%."
|
2293 |
msgstr ""
|
2294 |
|
2295 |
-
#: defaults.php:
|
2296 |
msgid "User changed option of a forum"
|
2297 |
msgstr ""
|
2298 |
|
2299 |
-
#: defaults.php:
|
2300 |
msgid "%Status% the option for anonymous posting on forum."
|
2301 |
msgstr ""
|
2302 |
|
2303 |
-
#: defaults.php:
|
2304 |
msgid "User changed type of a forum"
|
2305 |
msgstr ""
|
2306 |
|
2307 |
-
#: defaults.php:
|
2308 |
msgid "User changed time to disallow post editing"
|
2309 |
msgstr ""
|
2310 |
|
2311 |
-
#: defaults.php:
|
2312 |
msgid ""
|
2313 |
"Changed the time to disallow post editing from %OldTime% to %NewTime% "
|
2314 |
"minutes in the forums."
|
2315 |
msgstr ""
|
2316 |
|
2317 |
-
#: defaults.php:
|
2318 |
msgid "User changed the forum setting posting throttle time"
|
2319 |
msgstr ""
|
2320 |
|
2321 |
-
#: defaults.php:
|
2322 |
msgid ""
|
2323 |
"Changed the posting throttle time from %OldTime% to %NewTime% seconds in the "
|
2324 |
"forums."
|
2325 |
msgstr ""
|
2326 |
|
2327 |
-
#: defaults.php:
|
2328 |
msgid "User created new topic"
|
2329 |
msgstr ""
|
2330 |
|
2331 |
-
#: defaults.php:
|
2332 |
msgid "User changed status of a topic"
|
2333 |
msgstr ""
|
2334 |
|
2335 |
-
#: defaults.php:
|
2336 |
msgid "User changed type of a topic"
|
2337 |
msgstr ""
|
2338 |
|
2339 |
-
#: defaults.php:
|
2340 |
msgid "User changed URL of a topic"
|
2341 |
msgstr ""
|
2342 |
|
2343 |
-
#: defaults.php:
|
2344 |
msgid "Changed the URL of the topic %TopicName% from %OldUrl% to %NewUrl%."
|
2345 |
msgstr ""
|
2346 |
|
2347 |
-
#: defaults.php:
|
2348 |
msgid "User changed the forum of a topic"
|
2349 |
msgstr ""
|
2350 |
|
2351 |
-
#: defaults.php:
|
2352 |
msgid "User moved topic to trash"
|
2353 |
msgstr ""
|
2354 |
|
2355 |
-
#: defaults.php:
|
2356 |
msgid "Moved the topic %TopicName% to trash."
|
2357 |
msgstr ""
|
2358 |
|
2359 |
-
#: defaults.php:
|
2360 |
msgid "User permanently deleted topic"
|
2361 |
msgstr ""
|
2362 |
|
2363 |
-
#: defaults.php:
|
2364 |
msgid "Permanently deleted the topic %TopicName%."
|
2365 |
msgstr ""
|
2366 |
|
2367 |
-
#: defaults.php:
|
2368 |
msgid "User restored topic from trash"
|
2369 |
msgstr ""
|
2370 |
|
2371 |
-
#: defaults.php:
|
2372 |
msgid "User changed visibility of a topic"
|
2373 |
msgstr ""
|
2374 |
|
2375 |
-
#: defaults.php:
|
2376 |
msgid "Menus"
|
2377 |
msgstr ""
|
2378 |
|
2379 |
-
#: defaults.php:
|
2380 |
msgid "User created new menu"
|
2381 |
msgstr ""
|
2382 |
|
2383 |
-
#: defaults.php:
|
2384 |
msgid "Created a new menu called %MenuName%."
|
2385 |
msgstr ""
|
2386 |
|
2387 |
-
#: defaults.php:
|
2388 |
msgid "User added content to a menu"
|
2389 |
msgstr ""
|
2390 |
|
2391 |
-
#: defaults.php:
|
2392 |
msgid "Added the %ContentType% called %ContentName% to menu %MenuName%."
|
2393 |
msgstr ""
|
2394 |
|
2395 |
-
#: defaults.php:
|
2396 |
msgid "User removed content from a menu"
|
2397 |
msgstr ""
|
2398 |
|
2399 |
-
#: defaults.php:
|
2400 |
msgid ""
|
2401 |
"Removed the %ContentType% called %ContentName% from the menu %MenuName%."
|
2402 |
msgstr ""
|
2403 |
|
2404 |
-
#: defaults.php:
|
2405 |
msgid "User deleted menu"
|
2406 |
msgstr ""
|
2407 |
|
2408 |
-
#: defaults.php:
|
2409 |
msgid "Deleted the menu %MenuName%."
|
2410 |
msgstr ""
|
2411 |
|
2412 |
-
#: defaults.php:
|
2413 |
msgid "User changed menu setting"
|
2414 |
msgstr ""
|
2415 |
|
2416 |
-
#: defaults.php:
|
2417 |
msgid "%Status% the menu setting %MenuSetting% in %MenuName%."
|
2418 |
msgstr ""
|
2419 |
|
2420 |
-
#: defaults.php:
|
2421 |
msgid "User modified content in a menu"
|
2422 |
msgstr ""
|
2423 |
|
2424 |
-
#: defaults.php:
|
2425 |
msgid "Modified the %ContentType% called %ContentName% in menu %MenuName%."
|
2426 |
msgstr ""
|
2427 |
|
2428 |
-
#: defaults.php:
|
2429 |
msgid "User changed name of a menu"
|
2430 |
msgstr ""
|
2431 |
|
2432 |
-
#: defaults.php:
|
2433 |
msgid "Changed the name of menu %OldMenuName% to %NewMenuName%."
|
2434 |
msgstr ""
|
2435 |
|
2436 |
-
#: defaults.php:
|
2437 |
msgid "User changed order of the objects in a menu"
|
2438 |
msgstr ""
|
2439 |
|
2440 |
-
#: defaults.php:
|
2441 |
msgid "Changed the order of the %ItemName% in menu %MenuName%."
|
2442 |
msgstr ""
|
2443 |
|
2444 |
-
#: defaults.php:
|
2445 |
msgid "User moved objects as a sub-item"
|
2446 |
msgstr ""
|
2447 |
|
2448 |
-
#: defaults.php:
|
2449 |
msgid "Moved %ItemName% as a sub-item of %ParentName% in menu %MenuName%."
|
2450 |
msgstr ""
|
2451 |
|
2452 |
-
#: defaults.php:
|
2453 |
msgid "Comments"
|
2454 |
msgstr ""
|
2455 |
|
2456 |
-
#: defaults.php:
|
2457 |
msgid "User approved a comment"
|
2458 |
msgstr ""
|
2459 |
|
2460 |
-
#: defaults.php:
|
2461 |
msgid ""
|
2462 |
"Approved the comment posted in response to the post %PostTitle% by %Author% "
|
2463 |
"on %CommentLink%."
|
2464 |
msgstr ""
|
2465 |
|
2466 |
-
#: defaults.php:
|
2467 |
msgid "User unapproved a comment"
|
2468 |
msgstr ""
|
2469 |
|
2470 |
-
#: defaults.php:
|
2471 |
msgid ""
|
2472 |
"Unapproved the comment posted in response to the post %PostTitle% by %Author"
|
2473 |
"% on %CommentLink%."
|
2474 |
msgstr ""
|
2475 |
|
2476 |
-
#: defaults.php:
|
2477 |
msgid "User replied to a comment"
|
2478 |
msgstr ""
|
2479 |
|
2480 |
-
#: defaults.php:
|
2481 |
msgid ""
|
2482 |
"Replied to the comment posted in response to the post %PostTitle% by %Author"
|
2483 |
"% on %CommentLink%."
|
2484 |
msgstr ""
|
2485 |
|
2486 |
-
#: defaults.php:
|
2487 |
msgid "User edited a comment"
|
2488 |
msgstr ""
|
2489 |
|
2490 |
-
#: defaults.php:
|
2491 |
msgid ""
|
2492 |
"Edited a comment posted in response to the post %PostTitle% by %Author% on "
|
2493 |
"%CommentLink%."
|
2494 |
msgstr ""
|
2495 |
|
2496 |
-
#: defaults.php:
|
2497 |
msgid "User marked a comment as Spam"
|
2498 |
msgstr ""
|
2499 |
|
2500 |
-
#: defaults.php:
|
2501 |
msgid ""
|
2502 |
"Marked the comment posted in response to the post %PostTitle% by %Author% on "
|
2503 |
"%CommentLink% as Spam."
|
2504 |
msgstr ""
|
2505 |
|
2506 |
-
#: defaults.php:
|
2507 |
msgid "User marked a comment as Not Spam"
|
2508 |
msgstr ""
|
2509 |
|
2510 |
-
#: defaults.php:
|
2511 |
msgid ""
|
2512 |
"Marked the comment posted in response to the post %PostTitle% by %Author% on "
|
2513 |
"%CommentLink% as Not Spam."
|
2514 |
msgstr ""
|
2515 |
|
2516 |
-
#: defaults.php:
|
2517 |
msgid "User moved a comment to trash"
|
2518 |
msgstr ""
|
2519 |
|
2520 |
-
#: defaults.php:
|
2521 |
msgid ""
|
2522 |
"Moved the comment posted in response to the post %PostTitle% by %Author% on "
|
2523 |
"%Date% to trash."
|
2524 |
msgstr ""
|
2525 |
|
2526 |
-
#: defaults.php:
|
2527 |
msgid "User restored a comment from the trash"
|
2528 |
msgstr ""
|
2529 |
|
2530 |
-
#: defaults.php:
|
2531 |
msgid ""
|
2532 |
"Restored the comment posted in response to the post %PostTitle% by %Author% "
|
2533 |
"on %CommentLink% from the trash."
|
2534 |
msgstr ""
|
2535 |
|
2536 |
-
#: defaults.php:
|
2537 |
msgid "User permanently deleted a comment"
|
2538 |
msgstr ""
|
2539 |
|
2540 |
-
#: defaults.php:
|
2541 |
msgid ""
|
2542 |
"Permanently deleted the comment posted in response to the post %PostTitle% "
|
2543 |
"by %Author% on %Date%."
|
2544 |
msgstr ""
|
2545 |
|
2546 |
-
#: defaults.php:
|
2547 |
msgid "User posted a comment"
|
2548 |
msgstr ""
|
2549 |
|
2550 |
-
#: defaults.php:
|
2551 |
msgid "%CommentMsg% on %CommentLink%."
|
2552 |
msgstr ""
|
2553 |
|
2554 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2555 |
msgid ""
|
2556 |
"You are using a version of PHP that is older than %s, which is no longer "
|
2557 |
"supported.<br/>Contact us on <a href=\"mailto:plugins@wpwhitesecurity.com"
|
@@ -2563,9 +2944,9 @@ msgstr ""
|
|
2563 |
msgid "WP Security Audit Log"
|
2564 |
msgstr ""
|
2565 |
|
2566 |
-
#. #-#-#-#-# plugin.pot (WP Security Audit Log 2.
|
2567 |
#. Plugin URI of the plugin/theme
|
2568 |
-
#. #-#-#-#-# plugin.pot (WP Security Audit Log 2.
|
2569 |
#. Author URI of the plugin/theme
|
2570 |
msgid "http://www.wpsecurityauditlog.com/"
|
2571 |
msgstr ""
|
1 |
+
# Copyright (C) 2017 WP Security Audit Log
|
2 |
# This file is distributed under the same license as the WP Security Audit Log package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: WP Security Audit Log 2.6\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wp-security-audit-"
|
7 |
"log\n"
|
8 |
+
"POT-Creation-Date: 2017-02-08 07:06:17+00:00\n"
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"PO-Revision-Date: 2017-MO-DA HO:MI+ZONE\n"
|
13 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
14 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
15 |
|
16 |
+
#: classes/AuditLogListView.php:40
|
17 |
msgid "No events so far."
|
18 |
msgstr ""
|
19 |
|
20 |
+
#: classes/AuditLogListView.php:46
|
21 |
msgid "Other"
|
22 |
msgstr ""
|
23 |
|
24 |
+
#: classes/AuditLogListView.php:53
|
25 |
msgid "Show "
|
26 |
msgstr ""
|
27 |
|
28 |
+
#: classes/AuditLogListView.php:63
|
29 |
msgid " Items"
|
30 |
msgstr ""
|
31 |
|
32 |
+
#: classes/AuditLogListView.php:76 classes/Views/AuditLog.php:103
|
33 |
msgid "All Sites"
|
34 |
msgstr ""
|
35 |
|
36 |
+
#: classes/AuditLogListView.php:96
|
37 |
+
msgid "Live Database"
|
38 |
+
msgstr ""
|
39 |
+
|
40 |
+
#: classes/AuditLogListView.php:97
|
41 |
+
msgid "Archive Database"
|
42 |
+
msgstr ""
|
43 |
+
|
44 |
+
#: classes/AuditLogListView.php:138 classes/AuditLogListView.php:155
|
45 |
#: classes/Views/ToggleAlerts.php:75
|
46 |
msgid "Code"
|
47 |
msgstr ""
|
48 |
|
49 |
+
#: classes/AuditLogListView.php:139 classes/AuditLogListView.php:158
|
50 |
#: classes/Views/ToggleAlerts.php:76
|
51 |
msgid "Type"
|
52 |
msgstr ""
|
53 |
|
54 |
+
#: classes/AuditLogListView.php:140 classes/AuditLogListView.php:161
|
55 |
msgid "Date"
|
56 |
msgstr ""
|
57 |
|
58 |
+
#: classes/AuditLogListView.php:141 classes/AuditLogListView.php:164
|
59 |
msgid "Username"
|
60 |
msgstr ""
|
61 |
|
62 |
+
#: classes/AuditLogListView.php:142 classes/AuditLogListView.php:167
|
63 |
msgid "Source IP"
|
64 |
msgstr ""
|
65 |
|
66 |
+
#: classes/AuditLogListView.php:145 classes/AuditLogListView.php:170
|
67 |
msgid "Site"
|
68 |
msgstr ""
|
69 |
|
70 |
+
#: classes/AuditLogListView.php:147 classes/AuditLogListView.php:173
|
71 |
msgid "Message"
|
72 |
msgstr ""
|
73 |
|
74 |
+
#: classes/AuditLogListView.php:211
|
75 |
msgid "Click to toggle."
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: classes/AuditLogListView.php:214
|
79 |
+
msgid "Disable this type of alerts."
|
80 |
+
msgstr ""
|
81 |
+
|
82 |
+
#: classes/AuditLogListView.php:219
|
83 |
msgid "Unknown error code."
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: classes/AuditLogListView.php:250
|
87 |
msgid "Unknown"
|
88 |
msgstr ""
|
89 |
|
90 |
+
#: classes/AuditLogListView.php:254
|
91 |
msgid "Plugin"
|
92 |
msgstr ""
|
93 |
|
94 |
+
#: classes/AuditLogListView.php:258
|
95 |
msgid "Plugins"
|
96 |
msgstr ""
|
97 |
|
98 |
+
#: classes/AuditLogListView.php:262
|
99 |
msgid "Website Visitor"
|
100 |
msgstr ""
|
101 |
|
102 |
+
#: classes/AuditLogListView.php:266
|
103 |
msgid "System"
|
104 |
msgstr ""
|
105 |
|
106 |
+
#: classes/AuditLogListView.php:294
|
107 |
msgid "Alert Data Inspector"
|
108 |
msgstr ""
|
109 |
|
110 |
#: classes/Sensors/Content.php:424 classes/Sensors/Content.php:432
|
111 |
+
#: classes/Sensors/WooCommerce.php:284 classes/Sensors/WooCommerce.php:290
|
112 |
msgid "Password Protected"
|
113 |
msgstr ""
|
114 |
|
120 |
msgid "Private"
|
121 |
msgstr ""
|
122 |
|
123 |
+
#: classes/Sensors/WooCommerce.php:760
|
124 |
+
msgid "In stock"
|
125 |
+
msgstr ""
|
126 |
+
|
127 |
+
#: classes/Sensors/WooCommerce.php:762
|
128 |
+
msgid "Out of stock"
|
129 |
+
msgstr ""
|
130 |
+
|
131 |
#: classes/Views/About.php:6
|
132 |
msgid "About WP Security Audit Log"
|
133 |
msgstr ""
|
240 |
msgid "Professional WordPress security services provided by WP White Security"
|
241 |
msgstr ""
|
242 |
|
243 |
+
#: classes/Views/AuditLog.php:39
|
244 |
msgid "Upgrade to Premium"
|
245 |
msgstr ""
|
246 |
|
247 |
+
#: classes/Views/AuditLog.php:40
|
248 |
msgid ""
|
249 |
"and add Email Alerts, Reports, Search and Users Login and Session Management."
|
250 |
msgstr ""
|
251 |
|
252 |
+
#: classes/Views/AuditLog.php:41
|
253 |
msgid "Upgrade Now!"
|
254 |
msgstr ""
|
255 |
|
256 |
+
#: classes/Views/AuditLog.php:55 classes/Views/AuditLog.php:65
|
257 |
msgid "Audit Log Viewer"
|
258 |
msgstr ""
|
259 |
|
260 |
+
#: classes/Views/AuditLog.php:81 classes/Views/Licensing.php:34
|
261 |
#: classes/Views/Settings.php:111 classes/Views/ToggleAlerts.php:30
|
262 |
msgid "You do not have sufficient permissions to access this page."
|
263 |
msgstr ""
|
264 |
|
265 |
+
#: classes/Views/AuditLog.php:102
|
266 |
msgid "Please enter the number of alerts you would like to see on one page:"
|
267 |
msgstr ""
|
268 |
|
269 |
+
#: classes/Views/AuditLog.php:104
|
270 |
msgid "No Results"
|
271 |
msgstr ""
|
272 |
|
709 |
msgid "Remove Data on Uninstall"
|
710 |
msgstr ""
|
711 |
|
712 |
+
#: classes/Views/Settings.php:365
|
713 |
+
msgid ""
|
714 |
+
"The options below are disabled because you enabled archiving of alerts to "
|
715 |
+
"the archiving table from"
|
716 |
+
msgstr ""
|
717 |
+
|
718 |
+
#: classes/Views/Settings.php:370
|
719 |
msgid "Security Alerts Pruning"
|
720 |
msgstr ""
|
721 |
|
722 |
+
#: classes/Views/Settings.php:373 classes/Views/Settings.php:381
|
723 |
msgid "(eg: 1 month)"
|
724 |
msgstr ""
|
725 |
|
726 |
+
#: classes/Views/Settings.php:377
|
727 |
msgid "None"
|
728 |
msgstr ""
|
729 |
|
730 |
+
#: classes/Views/Settings.php:385
|
731 |
msgid "Delete alerts older than"
|
732 |
msgstr ""
|
733 |
|
734 |
+
#: classes/Views/Settings.php:393
|
735 |
msgid "(eg: 80)"
|
736 |
msgstr ""
|
737 |
|
738 |
+
#: classes/Views/Settings.php:397
|
739 |
msgid "Keep up to"
|
740 |
msgstr ""
|
741 |
|
742 |
+
#: classes/Views/Settings.php:402
|
743 |
msgid "alerts"
|
744 |
msgstr ""
|
745 |
|
746 |
+
#: classes/Views/Settings.php:406
|
747 |
msgid "Next Scheduled Cleanup is in "
|
748 |
msgstr ""
|
749 |
|
750 |
+
#: classes/Views/Settings.php:410
|
751 |
msgid "(or %s)"
|
752 |
msgstr ""
|
753 |
|
754 |
+
#: classes/Views/Settings.php:411
|
755 |
msgid "Run Manually"
|
756 |
msgstr ""
|
757 |
|
758 |
+
#: classes/Views/Settings.php:418
|
759 |
msgid "Can View Alerts"
|
760 |
msgstr ""
|
761 |
|
762 |
+
#: classes/Views/Settings.php:425
|
763 |
msgid "Users and Roles in this list can view the security alerts"
|
764 |
msgstr ""
|
765 |
|
766 |
+
#: classes/Views/Settings.php:441
|
767 |
msgid "Refresh Audit Log Viewer"
|
768 |
msgstr ""
|
769 |
|
770 |
+
#: classes/Views/Settings.php:447
|
771 |
msgid "Automatic"
|
772 |
msgstr ""
|
773 |
|
774 |
+
#: classes/Views/Settings.php:449
|
775 |
msgid "Refresh Audit Log Viewer as soon as there are new alerts."
|
776 |
msgstr ""
|
777 |
|
778 |
+
#: classes/Views/Settings.php:453
|
779 |
msgid "Manual"
|
780 |
msgstr ""
|
781 |
|
782 |
+
#: classes/Views/Settings.php:455
|
783 |
msgid "Refresh Audit Log Viewer only when the page is reloaded."
|
784 |
msgstr ""
|
785 |
|
786 |
+
#: classes/Views/Settings.php:462
|
787 |
msgid "Alerts Timestamp"
|
788 |
msgstr ""
|
789 |
|
790 |
+
#: classes/Views/Settings.php:468
|
791 |
msgid "UTC"
|
792 |
msgstr ""
|
793 |
|
794 |
+
#: classes/Views/Settings.php:473
|
795 |
msgid "WordPress' timezone"
|
796 |
msgstr ""
|
797 |
|
798 |
+
#: classes/Views/Settings.php:476
|
799 |
msgid ""
|
800 |
"Select which timestamp should the alerts have in the Audit Log viewer. Note "
|
801 |
"that the WordPress' timezone might be different from that of the server."
|
802 |
msgstr ""
|
803 |
|
804 |
+
#: classes/Views/Settings.php:482
|
805 |
msgid "Audit Log Columns Selection"
|
806 |
msgstr ""
|
807 |
|
808 |
+
#: classes/Views/Settings.php:493
|
809 |
msgid ""
|
810 |
"When you disable any of the above such details won’t be shown in the Audit "
|
811 |
"Log\n"
|
813 |
"database."
|
814 |
msgstr ""
|
815 |
|
816 |
+
#: classes/Views/Settings.php:500
|
817 |
msgid "Disable Alerts for WordPress Background Activity"
|
818 |
msgstr ""
|
819 |
|
820 |
+
#: classes/Views/Settings.php:506
|
821 |
msgid "Hide activity"
|
822 |
msgstr ""
|
823 |
|
824 |
+
#: classes/Views/Settings.php:510
|
825 |
msgid ""
|
826 |
"For example do not raise an alert when WordPress deletes the auto drafts."
|
827 |
msgstr ""
|
828 |
|
829 |
+
#: classes/Views/Settings.php:517
|
830 |
msgid "Number of 404 Requests to Log"
|
831 |
msgstr ""
|
832 |
|
833 |
+
#: classes/Views/Settings.php:523
|
834 |
msgid ""
|
835 |
"By default the plugin keeps up to 99 requests to non-existing pages from the "
|
836 |
"same IP address. Increase the value in this setting to the desired amount to "
|
837 |
"keep a log of more or less requests."
|
838 |
msgstr ""
|
839 |
|
840 |
+
#: classes/Views/Settings.php:524
|
841 |
msgid ""
|
842 |
"Note that by increasing this value to a high number, should your website be "
|
843 |
"scanned the plugin will consume more resources to log all the requests."
|
844 |
msgstr ""
|
845 |
|
846 |
+
#: classes/Views/Settings.php:541
|
847 |
msgid "Excluded Users"
|
848 |
msgstr ""
|
849 |
|
850 |
+
#: classes/Views/Settings.php:561
|
851 |
msgid "Excluded Roles"
|
852 |
msgstr ""
|
853 |
|
854 |
+
#: classes/Views/Settings.php:588
|
855 |
msgid "Excluded Custom Fields"
|
856 |
msgstr ""
|
857 |
|
858 |
+
#: classes/Views/Settings.php:614
|
859 |
msgid "Excluded IP Addresses"
|
860 |
msgstr ""
|
861 |
|
1942 |
msgid "Modified %File% with the Plugin Editor."
|
1943 |
msgstr ""
|
1944 |
|
1945 |
+
#: defaults.php:185
|
1946 |
+
msgid "A plugin modified a post"
|
1947 |
+
msgstr ""
|
1948 |
+
|
1949 |
+
#: defaults.php:185
|
1950 |
+
msgid "Plugin modified the post %PostTitle%. View the post: %EditorLinkPost%."
|
1951 |
+
msgstr ""
|
1952 |
+
|
1953 |
#: defaults.php:186
|
1954 |
+
msgid "A plugin modified a page"
|
1955 |
+
msgstr ""
|
1956 |
+
|
1957 |
+
#: defaults.php:186
|
1958 |
+
msgid "Plugin modified the page %PostTitle%. View the page: %EditorLinkPage%."
|
1959 |
msgstr ""
|
1960 |
|
1961 |
#: defaults.php:187
|
1962 |
+
msgid "A plugin modified a custom post"
|
1963 |
msgstr ""
|
1964 |
|
1965 |
#: defaults.php:187
|
1966 |
+
msgid ""
|
1967 |
+
"Plugin modified the custom post %PostTitle%. View the post: %EditorLinkPost%."
|
1968 |
+
msgstr ""
|
1969 |
+
|
1970 |
+
#: defaults.php:189
|
1971 |
+
msgid "System Activity"
|
1972 |
+
msgstr ""
|
1973 |
+
|
1974 |
+
#: defaults.php:190
|
1975 |
+
msgid "Unknown Error"
|
1976 |
+
msgstr ""
|
1977 |
+
|
1978 |
+
#: defaults.php:190
|
1979 |
msgid "An unexpected error has occurred ."
|
1980 |
msgstr ""
|
1981 |
|
1982 |
+
#: defaults.php:191
|
1983 |
msgid "PHP error"
|
1984 |
msgstr ""
|
1985 |
|
1986 |
+
#: defaults.php:191 defaults.php:192 defaults.php:193 defaults.php:194
|
1987 |
+
#: defaults.php:195
|
1988 |
msgid "%Message%."
|
1989 |
msgstr ""
|
1990 |
|
1991 |
+
#: defaults.php:192
|
1992 |
msgid "PHP warning"
|
1993 |
msgstr ""
|
1994 |
|
1995 |
+
#: defaults.php:193
|
1996 |
msgid "PHP notice"
|
1997 |
msgstr ""
|
1998 |
|
1999 |
+
#: defaults.php:194
|
2000 |
msgid "PHP exception"
|
2001 |
msgstr ""
|
2002 |
|
2003 |
+
#: defaults.php:195
|
2004 |
msgid "PHP shutdown error"
|
2005 |
msgstr ""
|
2006 |
|
2007 |
+
#: defaults.php:196
|
2008 |
msgid "Events automatically pruned by system"
|
2009 |
msgstr ""
|
2010 |
|
2011 |
+
#: defaults.php:196
|
2012 |
msgid "System automatically deleted %EventCount% alert(s)."
|
2013 |
msgstr ""
|
2014 |
|
2015 |
+
#: defaults.php:197
|
2016 |
msgid "Option Anyone Can Register in WordPress settings changed"
|
2017 |
msgstr ""
|
2018 |
|
2019 |
+
#: defaults.php:197
|
2020 |
msgid "%NewValue% the option \"Anyone can register\"."
|
2021 |
msgstr ""
|
2022 |
|
2023 |
+
#: defaults.php:198
|
2024 |
msgid "New User Default Role changed"
|
2025 |
msgstr ""
|
2026 |
|
2027 |
+
#: defaults.php:198
|
2028 |
msgid "Changed the New User Default Role from %OldRole% to %NewRole%."
|
2029 |
msgstr ""
|
2030 |
|
2031 |
+
#: defaults.php:199
|
2032 |
msgid "WordPress Administrator Notification email changed"
|
2033 |
msgstr ""
|
2034 |
|
2035 |
+
#: defaults.php:199
|
2036 |
msgid ""
|
2037 |
"Changed the WordPress administrator notifications email address from "
|
2038 |
"%OldEmail% to %NewEmail%."
|
2039 |
msgstr ""
|
2040 |
|
2041 |
+
#: defaults.php:200
|
2042 |
msgid "WordPress was updated"
|
2043 |
msgstr ""
|
2044 |
|
2045 |
+
#: defaults.php:200
|
2046 |
msgid "Updated WordPress from version %OldVersion% to %NewVersion%."
|
2047 |
msgstr ""
|
2048 |
|
2049 |
+
#: defaults.php:201
|
2050 |
msgid "User changes the WordPress Permalinks"
|
2051 |
msgstr ""
|
2052 |
|
2053 |
+
#: defaults.php:201
|
2054 |
msgid "Changed the WordPress permalinks from %OldPattern% to %NewPattern%."
|
2055 |
msgstr ""
|
2056 |
|
2057 |
+
#: defaults.php:202
|
2058 |
msgid "User requests non-existing pages (404 Error Pages)"
|
2059 |
msgstr ""
|
2060 |
|
2061 |
+
#: defaults.php:202
|
2062 |
msgid ""
|
2063 |
"Has requested a non existing page (404 Error Pages) %Attempts% %Msg%. "
|
2064 |
"%LinkFile%."
|
2065 |
msgstr ""
|
2066 |
|
2067 |
+
#: defaults.php:203
|
2068 |
msgid "Advertising Add-ons."
|
2069 |
msgstr ""
|
2070 |
|
2071 |
+
#: defaults.php:203
|
2072 |
msgid "%PromoName% %PromoMessage%"
|
2073 |
msgstr ""
|
2074 |
|
2075 |
+
#: defaults.php:205
|
2076 |
msgid "MultiSite"
|
2077 |
msgstr ""
|
2078 |
|
2079 |
+
#: defaults.php:206
|
2080 |
msgid "User granted Super Admin privileges"
|
2081 |
msgstr ""
|
2082 |
|
2083 |
+
#: defaults.php:206
|
2084 |
msgid "Granted Super Admin privileges to %TargetUsername%."
|
2085 |
msgstr ""
|
2086 |
|
2087 |
+
#: defaults.php:207
|
2088 |
msgid "User revoked from Super Admin privileges"
|
2089 |
msgstr ""
|
2090 |
|
2091 |
+
#: defaults.php:207
|
2092 |
msgid "Revoked Super Admin privileges from %TargetUsername%."
|
2093 |
msgstr ""
|
2094 |
|
2095 |
+
#: defaults.php:208
|
2096 |
msgid "Existing user added to a site"
|
2097 |
msgstr ""
|
2098 |
|
2099 |
+
#: defaults.php:208
|
2100 |
msgid ""
|
2101 |
"Added the existing user %TargetUsername% with %TargetUserRole% role to site "
|
2102 |
"%SiteName%."
|
2103 |
msgstr ""
|
2104 |
|
2105 |
+
#: defaults.php:209
|
2106 |
msgid "User removed from site"
|
2107 |
msgstr ""
|
2108 |
|
2109 |
+
#: defaults.php:209
|
2110 |
msgid ""
|
2111 |
"Removed the user %TargetUsername% with role %TargetUserRole% from %SiteName% "
|
2112 |
"site."
|
2113 |
msgstr ""
|
2114 |
|
2115 |
+
#: defaults.php:210
|
2116 |
msgid "New network user created"
|
2117 |
msgstr ""
|
2118 |
|
2119 |
+
#: defaults.php:210
|
2120 |
msgid "Created a new network user %NewUserData->Username%."
|
2121 |
msgstr ""
|
2122 |
|
2123 |
+
#: defaults.php:211
|
2124 |
msgid "The forum role of a user was changed by another WordPress user"
|
2125 |
msgstr ""
|
2126 |
|
2127 |
+
#: defaults.php:211
|
2128 |
msgid ""
|
2129 |
"Change the forum role of the user %TargetUsername% from %OldRole% to %NewRole"
|
2130 |
"% by %UserChanger%."
|
2131 |
msgstr ""
|
2132 |
|
2133 |
+
#: defaults.php:212
|
2134 |
msgid "New site added on the network"
|
2135 |
msgstr ""
|
2136 |
|
2137 |
+
#: defaults.php:212
|
2138 |
msgid "Added the site %SiteName% to the network."
|
2139 |
msgstr ""
|
2140 |
|
2141 |
+
#: defaults.php:213
|
2142 |
msgid "Existing site archived"
|
2143 |
msgstr ""
|
2144 |
|
2145 |
+
#: defaults.php:213
|
2146 |
msgid "Archived the site %SiteName%."
|
2147 |
msgstr ""
|
2148 |
|
2149 |
+
#: defaults.php:214
|
2150 |
msgid "Archived site has been unarchived"
|
2151 |
msgstr ""
|
2152 |
|
2153 |
+
#: defaults.php:214
|
2154 |
msgid "Unarchived the site %SiteName%."
|
2155 |
msgstr ""
|
2156 |
|
2157 |
+
#: defaults.php:215
|
2158 |
msgid "Deactivated site has been activated"
|
2159 |
msgstr ""
|
2160 |
|
2161 |
+
#: defaults.php:215
|
2162 |
msgid "Activated the site %SiteName%."
|
2163 |
msgstr ""
|
2164 |
|
2165 |
+
#: defaults.php:216
|
2166 |
msgid "Site has been deactivated"
|
2167 |
msgstr ""
|
2168 |
|
2169 |
+
#: defaults.php:216
|
2170 |
msgid "Deactivated the site %SiteName%."
|
2171 |
msgstr ""
|
2172 |
|
2173 |
+
#: defaults.php:217
|
2174 |
msgid "Existing site deleted from network"
|
2175 |
msgstr ""
|
2176 |
|
2177 |
+
#: defaults.php:217
|
2178 |
msgid "Deleted the site %SiteName%."
|
2179 |
msgstr ""
|
2180 |
|
2181 |
+
#: defaults.php:218
|
2182 |
msgid "Activated theme on network"
|
2183 |
msgstr ""
|
2184 |
|
2185 |
+
#: defaults.php:218
|
2186 |
msgid ""
|
2187 |
"Network activated the theme %Theme->Name% installed in %Theme-"
|
2188 |
">get_template_directory%."
|
2189 |
msgstr ""
|
2190 |
|
2191 |
+
#: defaults.php:219
|
2192 |
msgid "Deactivated theme from network"
|
2193 |
msgstr ""
|
2194 |
|
2195 |
+
#: defaults.php:219
|
2196 |
msgid ""
|
2197 |
"Network deactivated the theme %Theme->Name% installed in %Theme-"
|
2198 |
">get_template_directory%."
|
2199 |
msgstr ""
|
2200 |
|
2201 |
+
#: defaults.php:221
|
2202 |
msgid "Database"
|
2203 |
msgstr ""
|
2204 |
|
2205 |
+
#: defaults.php:222
|
2206 |
msgid "Plugin created tables"
|
2207 |
msgstr ""
|
2208 |
|
2209 |
+
#: defaults.php:222
|
2210 |
msgid ""
|
2211 |
"Plugin %Plugin->Name% created these tables in the database: %TableNames%."
|
2212 |
msgstr ""
|
2213 |
|
2214 |
+
#: defaults.php:223
|
2215 |
msgid "Plugin modified tables structure"
|
2216 |
msgstr ""
|
2217 |
|
2218 |
+
#: defaults.php:223
|
2219 |
msgid ""
|
2220 |
"Plugin %Plugin->Name% modified the structure of these database tables: "
|
2221 |
"%TableNames%."
|
2222 |
msgstr ""
|
2223 |
|
2224 |
+
#: defaults.php:224
|
2225 |
msgid "Plugin deleted tables"
|
2226 |
msgstr ""
|
2227 |
|
2228 |
+
#: defaults.php:224
|
2229 |
msgid ""
|
2230 |
"Plugin %Plugin->Name% deleted the following tables from the database: "
|
2231 |
"%TableNames%."
|
2232 |
msgstr ""
|
2233 |
|
2234 |
+
#: defaults.php:225
|
2235 |
msgid "Theme created tables"
|
2236 |
msgstr ""
|
2237 |
|
2238 |
+
#: defaults.php:225
|
2239 |
msgid "Theme %Theme->Name% created these tables in the database: %TableNames%."
|
2240 |
msgstr ""
|
2241 |
|
2242 |
+
#: defaults.php:226
|
2243 |
msgid "Theme modified tables structure"
|
2244 |
msgstr ""
|
2245 |
|
2246 |
+
#: defaults.php:226
|
2247 |
msgid ""
|
2248 |
"Theme %Theme->Name% modified the structure of these database tables: "
|
2249 |
"%TableNames%."
|
2250 |
msgstr ""
|
2251 |
|
2252 |
+
#: defaults.php:227
|
2253 |
msgid "Theme deleted tables"
|
2254 |
msgstr ""
|
2255 |
|
2256 |
+
#: defaults.php:227
|
2257 |
msgid ""
|
2258 |
"Theme %Theme->Name% deleted the following tables from the database: "
|
2259 |
"%TableNames%."
|
2260 |
msgstr ""
|
2261 |
|
2262 |
+
#: defaults.php:228
|
2263 |
msgid "Unknown component created tables"
|
2264 |
msgstr ""
|
2265 |
|
2266 |
+
#: defaults.php:228
|
2267 |
msgid ""
|
2268 |
"An unknown component created these tables in the database: %TableNames%."
|
2269 |
msgstr ""
|
2270 |
|
2271 |
+
#: defaults.php:229
|
2272 |
msgid "Unknown component modified tables structure"
|
2273 |
msgstr ""
|
2274 |
|
2275 |
+
#: defaults.php:229
|
2276 |
msgid ""
|
2277 |
"An unknown component modified the structure of these database tables: "
|
2278 |
"%TableNames%."
|
2279 |
msgstr ""
|
2280 |
|
2281 |
+
#: defaults.php:230
|
2282 |
msgid "Unknown component deleted tables"
|
2283 |
msgstr ""
|
2284 |
|
2285 |
+
#: defaults.php:230
|
2286 |
msgid ""
|
2287 |
"An unknown component deleted the following tables from the database: "
|
2288 |
"%TableNames%."
|
2289 |
msgstr ""
|
2290 |
|
2291 |
+
#: defaults.php:232
|
2292 |
msgid "BBPress Forum"
|
2293 |
msgstr ""
|
2294 |
|
2295 |
+
#: defaults.php:233
|
2296 |
msgid "User created new forum"
|
2297 |
msgstr ""
|
2298 |
|
2299 |
+
#: defaults.php:234
|
2300 |
msgid "User changed status of a forum"
|
2301 |
msgstr ""
|
2302 |
|
2303 |
+
#: defaults.php:235
|
2304 |
msgid "User changed visibility of a forum"
|
2305 |
msgstr ""
|
2306 |
|
2307 |
+
#: defaults.php:236
|
2308 |
msgid "User changed the URL of a forum"
|
2309 |
msgstr ""
|
2310 |
|
2311 |
+
#: defaults.php:237
|
2312 |
msgid "User changed order of a forum"
|
2313 |
msgstr ""
|
2314 |
|
2315 |
+
#: defaults.php:238
|
2316 |
msgid "User moved forum to trash"
|
2317 |
msgstr ""
|
2318 |
|
2319 |
+
#: defaults.php:238
|
2320 |
msgid "Moved the forum %ForumName% to trash."
|
2321 |
msgstr ""
|
2322 |
|
2323 |
+
#: defaults.php:239
|
2324 |
msgid "User permanently deleted forum"
|
2325 |
msgstr ""
|
2326 |
|
2327 |
+
#: defaults.php:239
|
2328 |
msgid "Permanently deleted the forum %ForumName%."
|
2329 |
msgstr ""
|
2330 |
|
2331 |
+
#: defaults.php:240
|
2332 |
msgid "User restored forum from trash"
|
2333 |
msgstr ""
|
2334 |
|
2335 |
+
#: defaults.php:241
|
2336 |
msgid "User changed the parent of a forum"
|
2337 |
msgstr ""
|
2338 |
|
2339 |
+
#: defaults.php:242
|
2340 |
msgid "User changed forum's role"
|
2341 |
msgstr ""
|
2342 |
|
2343 |
+
#: defaults.php:242
|
2344 |
msgid "Changed the forum's auto role from %OldRole% to %NewRole%."
|
2345 |
msgstr ""
|
2346 |
|
2347 |
+
#: defaults.php:243
|
2348 |
msgid "User changed option of a forum"
|
2349 |
msgstr ""
|
2350 |
|
2351 |
+
#: defaults.php:243
|
2352 |
msgid "%Status% the option for anonymous posting on forum."
|
2353 |
msgstr ""
|
2354 |
|
2355 |
+
#: defaults.php:244
|
2356 |
msgid "User changed type of a forum"
|
2357 |
msgstr ""
|
2358 |
|
2359 |
+
#: defaults.php:245
|
2360 |
msgid "User changed time to disallow post editing"
|
2361 |
msgstr ""
|
2362 |
|
2363 |
+
#: defaults.php:245
|
2364 |
msgid ""
|
2365 |
"Changed the time to disallow post editing from %OldTime% to %NewTime% "
|
2366 |
"minutes in the forums."
|
2367 |
msgstr ""
|
2368 |
|
2369 |
+
#: defaults.php:246
|
2370 |
msgid "User changed the forum setting posting throttle time"
|
2371 |
msgstr ""
|
2372 |
|
2373 |
+
#: defaults.php:246
|
2374 |
msgid ""
|
2375 |
"Changed the posting throttle time from %OldTime% to %NewTime% seconds in the "
|
2376 |
"forums."
|
2377 |
msgstr ""
|
2378 |
|
2379 |
+
#: defaults.php:247
|
2380 |
msgid "User created new topic"
|
2381 |
msgstr ""
|
2382 |
|
2383 |
+
#: defaults.php:248
|
2384 |
msgid "User changed status of a topic"
|
2385 |
msgstr ""
|
2386 |
|
2387 |
+
#: defaults.php:249
|
2388 |
msgid "User changed type of a topic"
|
2389 |
msgstr ""
|
2390 |
|
2391 |
+
#: defaults.php:250
|
2392 |
msgid "User changed URL of a topic"
|
2393 |
msgstr ""
|
2394 |
|
2395 |
+
#: defaults.php:250
|
2396 |
msgid "Changed the URL of the topic %TopicName% from %OldUrl% to %NewUrl%."
|
2397 |
msgstr ""
|
2398 |
|
2399 |
+
#: defaults.php:251
|
2400 |
msgid "User changed the forum of a topic"
|
2401 |
msgstr ""
|
2402 |
|
2403 |
+
#: defaults.php:252
|
2404 |
msgid "User moved topic to trash"
|
2405 |
msgstr ""
|
2406 |
|
2407 |
+
#: defaults.php:252
|
2408 |
msgid "Moved the topic %TopicName% to trash."
|
2409 |
msgstr ""
|
2410 |
|
2411 |
+
#: defaults.php:253
|
2412 |
msgid "User permanently deleted topic"
|
2413 |
msgstr ""
|
2414 |
|
2415 |
+
#: defaults.php:253
|
2416 |
msgid "Permanently deleted the topic %TopicName%."
|
2417 |
msgstr ""
|
2418 |
|
2419 |
+
#: defaults.php:254
|
2420 |
msgid "User restored topic from trash"
|
2421 |
msgstr ""
|
2422 |
|
2423 |
+
#: defaults.php:255
|
2424 |
msgid "User changed visibility of a topic"
|
2425 |
msgstr ""
|
2426 |
|
2427 |
+
#: defaults.php:257
|
2428 |
msgid "Menus"
|
2429 |
msgstr ""
|
2430 |
|
2431 |
+
#: defaults.php:258
|
2432 |
msgid "User created new menu"
|
2433 |
msgstr ""
|
2434 |
|
2435 |
+
#: defaults.php:258
|
2436 |
msgid "Created a new menu called %MenuName%."
|
2437 |
msgstr ""
|
2438 |
|
2439 |
+
#: defaults.php:259
|
2440 |
msgid "User added content to a menu"
|
2441 |
msgstr ""
|
2442 |
|
2443 |
+
#: defaults.php:259
|
2444 |
msgid "Added the %ContentType% called %ContentName% to menu %MenuName%."
|
2445 |
msgstr ""
|
2446 |
|
2447 |
+
#: defaults.php:260
|
2448 |
msgid "User removed content from a menu"
|
2449 |
msgstr ""
|
2450 |
|
2451 |
+
#: defaults.php:260
|
2452 |
msgid ""
|
2453 |
"Removed the %ContentType% called %ContentName% from the menu %MenuName%."
|
2454 |
msgstr ""
|
2455 |
|
2456 |
+
#: defaults.php:261
|
2457 |
msgid "User deleted menu"
|
2458 |
msgstr ""
|
2459 |
|
2460 |
+
#: defaults.php:261
|
2461 |
msgid "Deleted the menu %MenuName%."
|
2462 |
msgstr ""
|
2463 |
|
2464 |
+
#: defaults.php:262
|
2465 |
msgid "User changed menu setting"
|
2466 |
msgstr ""
|
2467 |
|
2468 |
+
#: defaults.php:262
|
2469 |
msgid "%Status% the menu setting %MenuSetting% in %MenuName%."
|
2470 |
msgstr ""
|
2471 |
|
2472 |
+
#: defaults.php:263
|
2473 |
msgid "User modified content in a menu"
|
2474 |
msgstr ""
|
2475 |
|
2476 |
+
#: defaults.php:263
|
2477 |
msgid "Modified the %ContentType% called %ContentName% in menu %MenuName%."
|
2478 |
msgstr ""
|
2479 |
|
2480 |
+
#: defaults.php:264
|
2481 |
msgid "User changed name of a menu"
|
2482 |
msgstr ""
|
2483 |
|
2484 |
+
#: defaults.php:264
|
2485 |
msgid "Changed the name of menu %OldMenuName% to %NewMenuName%."
|
2486 |
msgstr ""
|
2487 |
|
2488 |
+
#: defaults.php:265
|
2489 |
msgid "User changed order of the objects in a menu"
|
2490 |
msgstr ""
|
2491 |
|
2492 |
+
#: defaults.php:265
|
2493 |
msgid "Changed the order of the %ItemName% in menu %MenuName%."
|
2494 |
msgstr ""
|
2495 |
|
2496 |
+
#: defaults.php:266
|
2497 |
msgid "User moved objects as a sub-item"
|
2498 |
msgstr ""
|
2499 |
|
2500 |
+
#: defaults.php:266
|
2501 |
msgid "Moved %ItemName% as a sub-item of %ParentName% in menu %MenuName%."
|
2502 |
msgstr ""
|
2503 |
|
2504 |
+
#: defaults.php:268
|
2505 |
msgid "Comments"
|
2506 |
msgstr ""
|
2507 |
|
2508 |
+
#: defaults.php:269
|
2509 |
msgid "User approved a comment"
|
2510 |
msgstr ""
|
2511 |
|
2512 |
+
#: defaults.php:269
|
2513 |
msgid ""
|
2514 |
"Approved the comment posted in response to the post %PostTitle% by %Author% "
|
2515 |
"on %CommentLink%."
|
2516 |
msgstr ""
|
2517 |
|
2518 |
+
#: defaults.php:270
|
2519 |
msgid "User unapproved a comment"
|
2520 |
msgstr ""
|
2521 |
|
2522 |
+
#: defaults.php:270
|
2523 |
msgid ""
|
2524 |
"Unapproved the comment posted in response to the post %PostTitle% by %Author"
|
2525 |
"% on %CommentLink%."
|
2526 |
msgstr ""
|
2527 |
|
2528 |
+
#: defaults.php:271
|
2529 |
msgid "User replied to a comment"
|
2530 |
msgstr ""
|
2531 |
|
2532 |
+
#: defaults.php:271
|
2533 |
msgid ""
|
2534 |
"Replied to the comment posted in response to the post %PostTitle% by %Author"
|
2535 |
"% on %CommentLink%."
|
2536 |
msgstr ""
|
2537 |
|
2538 |
+
#: defaults.php:272
|
2539 |
msgid "User edited a comment"
|
2540 |
msgstr ""
|
2541 |
|
2542 |
+
#: defaults.php:272
|
2543 |
msgid ""
|
2544 |
"Edited a comment posted in response to the post %PostTitle% by %Author% on "
|
2545 |
"%CommentLink%."
|
2546 |
msgstr ""
|
2547 |
|
2548 |
+
#: defaults.php:273
|
2549 |
msgid "User marked a comment as Spam"
|
2550 |
msgstr ""
|
2551 |
|
2552 |
+
#: defaults.php:273
|
2553 |
msgid ""
|
2554 |
"Marked the comment posted in response to the post %PostTitle% by %Author% on "
|
2555 |
"%CommentLink% as Spam."
|
2556 |
msgstr ""
|
2557 |
|
2558 |
+
#: defaults.php:274
|
2559 |
msgid "User marked a comment as Not Spam"
|
2560 |
msgstr ""
|
2561 |
|
2562 |
+
#: defaults.php:274
|
2563 |
msgid ""
|
2564 |
"Marked the comment posted in response to the post %PostTitle% by %Author% on "
|
2565 |
"%CommentLink% as Not Spam."
|
2566 |
msgstr ""
|
2567 |
|
2568 |
+
#: defaults.php:275
|
2569 |
msgid "User moved a comment to trash"
|
2570 |
msgstr ""
|
2571 |
|
2572 |
+
#: defaults.php:275
|
2573 |
msgid ""
|
2574 |
"Moved the comment posted in response to the post %PostTitle% by %Author% on "
|
2575 |
"%Date% to trash."
|
2576 |
msgstr ""
|
2577 |
|
2578 |
+
#: defaults.php:276
|
2579 |
msgid "User restored a comment from the trash"
|
2580 |
msgstr ""
|
2581 |
|
2582 |
+
#: defaults.php:276
|
2583 |
msgid ""
|
2584 |
"Restored the comment posted in response to the post %PostTitle% by %Author% "
|
2585 |
"on %CommentLink% from the trash."
|
2586 |
msgstr ""
|
2587 |
|
2588 |
+
#: defaults.php:277
|
2589 |
msgid "User permanently deleted a comment"
|
2590 |
msgstr ""
|
2591 |
|
2592 |
+
#: defaults.php:277
|
2593 |
msgid ""
|
2594 |
"Permanently deleted the comment posted in response to the post %PostTitle% "
|
2595 |
"by %Author% on %Date%."
|
2596 |
msgstr ""
|
2597 |
|
2598 |
+
#: defaults.php:278
|
2599 |
msgid "User posted a comment"
|
2600 |
msgstr ""
|
2601 |
|
2602 |
+
#: defaults.php:278
|
2603 |
msgid "%CommentMsg% on %CommentLink%."
|
2604 |
msgstr ""
|
2605 |
|
2606 |
+
#: defaults.php:280
|
2607 |
+
msgid "WooCommerce"
|
2608 |
+
msgstr ""
|
2609 |
+
|
2610 |
+
#: defaults.php:281
|
2611 |
+
msgid "User created a new product"
|
2612 |
+
msgstr ""
|
2613 |
+
|
2614 |
+
#: defaults.php:281
|
2615 |
+
msgid ""
|
2616 |
+
"Created a new product called %ProductTitle% and saved it as draft. View the "
|
2617 |
+
"product: %EditorLinkProduct%."
|
2618 |
+
msgstr ""
|
2619 |
+
|
2620 |
+
#: defaults.php:282
|
2621 |
+
msgid "User published a product"
|
2622 |
+
msgstr ""
|
2623 |
+
|
2624 |
+
#: defaults.php:282
|
2625 |
+
msgid ""
|
2626 |
+
"Published a product called %ProductTitle%. Product URL is %ProductUrl%. View "
|
2627 |
+
"the product: %EditorLinkProduct%."
|
2628 |
+
msgstr ""
|
2629 |
+
|
2630 |
+
#: defaults.php:283
|
2631 |
+
msgid "User created a new product category"
|
2632 |
+
msgstr ""
|
2633 |
+
|
2634 |
+
#: defaults.php:283
|
2635 |
+
msgid ""
|
2636 |
+
"Created a new product category called %CategoryName% in WooCommerce. Product "
|
2637 |
+
"category slug is %Slug%."
|
2638 |
+
msgstr ""
|
2639 |
+
|
2640 |
+
#: defaults.php:284
|
2641 |
+
msgid "User changed the category of a product"
|
2642 |
+
msgstr ""
|
2643 |
+
|
2644 |
+
#: defaults.php:284
|
2645 |
+
msgid ""
|
2646 |
+
"Changed the category of the product %ProductTitle% from %OldCategories% to "
|
2647 |
+
"%NewCategories%. View the product: %EditorLinkProduct%."
|
2648 |
+
msgstr ""
|
2649 |
+
|
2650 |
+
#: defaults.php:285
|
2651 |
+
msgid "User modified the short description of a product"
|
2652 |
+
msgstr ""
|
2653 |
+
|
2654 |
+
#: defaults.php:285
|
2655 |
+
msgid ""
|
2656 |
+
"Modified the short description of the product %ProductTitle%. View the "
|
2657 |
+
"product: %EditorLinkProduct%."
|
2658 |
+
msgstr ""
|
2659 |
+
|
2660 |
+
#: defaults.php:286
|
2661 |
+
msgid "User modified the text of a product"
|
2662 |
+
msgstr ""
|
2663 |
+
|
2664 |
+
#: defaults.php:286
|
2665 |
+
msgid ""
|
2666 |
+
"Modified the text of the product %ProductTitle%. View the product: "
|
2667 |
+
"%EditorLinkProduct%."
|
2668 |
+
msgstr ""
|
2669 |
+
|
2670 |
+
#: defaults.php:287
|
2671 |
+
msgid "User changed the URL of a product"
|
2672 |
+
msgstr ""
|
2673 |
+
|
2674 |
+
#: defaults.php:287
|
2675 |
+
msgid ""
|
2676 |
+
"Changed the URL of the product %ProductTitle% from %OldUrl% to %NewUrl%. "
|
2677 |
+
"View the product: %EditorLinkProduct%."
|
2678 |
+
msgstr ""
|
2679 |
+
|
2680 |
+
#: defaults.php:288
|
2681 |
+
msgid "User changed the Product Data of a product"
|
2682 |
+
msgstr ""
|
2683 |
+
|
2684 |
+
#: defaults.php:288
|
2685 |
+
msgid ""
|
2686 |
+
"Changed the Product Data of the product %ProductTitle%. View the product: "
|
2687 |
+
"%EditorLinkProduct%."
|
2688 |
+
msgstr ""
|
2689 |
+
|
2690 |
+
#: defaults.php:289
|
2691 |
+
msgid "User changed the date of a product"
|
2692 |
+
msgstr ""
|
2693 |
+
|
2694 |
+
#: defaults.php:289
|
2695 |
+
msgid ""
|
2696 |
+
"Changed the date of the product %ProductTitle% from %OldDate% to %NewDate%. "
|
2697 |
+
"View the product: %EditorLinkProduct%."
|
2698 |
+
msgstr ""
|
2699 |
+
|
2700 |
+
#: defaults.php:290
|
2701 |
+
msgid "User changed the visibility of a product"
|
2702 |
+
msgstr ""
|
2703 |
+
|
2704 |
+
#: defaults.php:290
|
2705 |
+
msgid ""
|
2706 |
+
"Changed the visibility of the product %ProductTitle% from %OldVisibility% to "
|
2707 |
+
"%NewVisibility%. View the product: %EditorLinkProduct%."
|
2708 |
+
msgstr ""
|
2709 |
+
|
2710 |
+
#: defaults.php:291
|
2711 |
+
msgid "User modified the published product"
|
2712 |
+
msgstr ""
|
2713 |
+
|
2714 |
+
#: defaults.php:291
|
2715 |
+
msgid ""
|
2716 |
+
"Modified the published product %ProductTitle%. Product URL is %ProductUrl%. "
|
2717 |
+
"View the product: %EditorLinkProduct%."
|
2718 |
+
msgstr ""
|
2719 |
+
|
2720 |
+
#: defaults.php:292
|
2721 |
+
msgid "User modified the draft product"
|
2722 |
+
msgstr ""
|
2723 |
+
|
2724 |
+
#: defaults.php:292
|
2725 |
+
msgid ""
|
2726 |
+
"Modified the draft product %ProductTitle%. View the product: "
|
2727 |
+
"%EditorLinkProduct%."
|
2728 |
+
msgstr ""
|
2729 |
+
|
2730 |
+
#: defaults.php:293
|
2731 |
+
msgid "User moved a product to trash"
|
2732 |
+
msgstr ""
|
2733 |
+
|
2734 |
+
#: defaults.php:293
|
2735 |
+
msgid ""
|
2736 |
+
"Moved the product %ProductTitle% to trash. Product URL was %ProductUrl%."
|
2737 |
+
msgstr ""
|
2738 |
+
|
2739 |
+
#: defaults.php:294
|
2740 |
+
msgid "User permanently deleted a product"
|
2741 |
+
msgstr ""
|
2742 |
+
|
2743 |
+
#: defaults.php:294
|
2744 |
+
msgid "Permanently deleted the product %ProductTitle%."
|
2745 |
+
msgstr ""
|
2746 |
+
|
2747 |
+
#: defaults.php:295
|
2748 |
+
msgid "User restored a product from the trash"
|
2749 |
+
msgstr ""
|
2750 |
+
|
2751 |
+
#: defaults.php:295
|
2752 |
+
msgid ""
|
2753 |
+
"Product %ProductTitle% has been restored from trash. View product: "
|
2754 |
+
"%EditorLinkProduct%."
|
2755 |
+
msgstr ""
|
2756 |
+
|
2757 |
+
#: defaults.php:296
|
2758 |
+
msgid "User changed status of a product"
|
2759 |
+
msgstr ""
|
2760 |
+
|
2761 |
+
#: defaults.php:296
|
2762 |
+
msgid ""
|
2763 |
+
"Changed the status of the product %ProductTitle% from %OldStatus% to "
|
2764 |
+
"%NewStatus%. View the product: %EditorLinkProduct%."
|
2765 |
+
msgstr ""
|
2766 |
+
|
2767 |
+
#: defaults.php:297
|
2768 |
+
msgid "User changed type of a price"
|
2769 |
+
msgstr ""
|
2770 |
+
|
2771 |
+
#: defaults.php:297
|
2772 |
+
msgid ""
|
2773 |
+
"Changed the %PriceType% of the product %ProductTitle% from %OldPrice% to "
|
2774 |
+
"%NewPrice%. View the product: %EditorLinkProduct%."
|
2775 |
+
msgstr ""
|
2776 |
+
|
2777 |
+
#: defaults.php:298
|
2778 |
+
msgid "User changed the SKU of a product"
|
2779 |
+
msgstr ""
|
2780 |
+
|
2781 |
+
#: defaults.php:298
|
2782 |
+
msgid ""
|
2783 |
+
"Changed the SKU of the product %ProductTitle% from %OldSku% to %NewSku%. "
|
2784 |
+
"View the product: %EditorLinkProduct%."
|
2785 |
+
msgstr ""
|
2786 |
+
|
2787 |
+
#: defaults.php:299
|
2788 |
+
msgid "User changed the stock status of a product"
|
2789 |
+
msgstr ""
|
2790 |
+
|
2791 |
+
#: defaults.php:299
|
2792 |
+
msgid ""
|
2793 |
+
"Changed the stock status of the product %ProductTitle% from %OldStatus% to "
|
2794 |
+
"%NewStatus%. View the product: %EditorLinkProduct%."
|
2795 |
+
msgstr ""
|
2796 |
+
|
2797 |
+
#: defaults.php:300
|
2798 |
+
msgid "User changed the stock quantity"
|
2799 |
+
msgstr ""
|
2800 |
+
|
2801 |
+
#: defaults.php:300
|
2802 |
+
msgid ""
|
2803 |
+
"Changed the stock quantity from %OldValue% to %NewValue%. View the product: "
|
2804 |
+
"%EditorLinkProduct%"
|
2805 |
+
msgstr ""
|
2806 |
+
|
2807 |
+
#: defaults.php:301
|
2808 |
+
msgid "User set a product type"
|
2809 |
+
msgstr ""
|
2810 |
+
|
2811 |
+
#: defaults.php:301
|
2812 |
+
msgid ""
|
2813 |
+
"Set the product %ProductTitle% as %Type%. View the product: "
|
2814 |
+
"%EditorLinkProduct%."
|
2815 |
+
msgstr ""
|
2816 |
+
|
2817 |
+
#: defaults.php:302
|
2818 |
+
msgid "User changed the weight of a product"
|
2819 |
+
msgstr ""
|
2820 |
+
|
2821 |
+
#: defaults.php:302
|
2822 |
+
msgid ""
|
2823 |
+
"Changed the weight of the product %ProductTitle% from %OldWeight% to "
|
2824 |
+
"%NewWeight%. View the product: %EditorLinkProduct%."
|
2825 |
+
msgstr ""
|
2826 |
+
|
2827 |
+
#: defaults.php:303
|
2828 |
+
msgid "User changed the dimensions of a product"
|
2829 |
+
msgstr ""
|
2830 |
+
|
2831 |
+
#: defaults.php:303
|
2832 |
+
msgid ""
|
2833 |
+
"Changed the %DimensionType% dimensions of the product %ProductTitle% from "
|
2834 |
+
"%OldDimension% to %NewDimension%. View the product: %EditorLinkProduct%."
|
2835 |
+
msgstr ""
|
2836 |
+
|
2837 |
+
#: defaults.php:304
|
2838 |
+
msgid "User added the Downloadable File to a product"
|
2839 |
+
msgstr ""
|
2840 |
+
|
2841 |
+
#: defaults.php:304
|
2842 |
+
msgid ""
|
2843 |
+
"Added the Downloadable File %FileName% with File URL %FileUrl% to the "
|
2844 |
+
"product %ProductTitle%. View the product: %EditorLinkProduct%."
|
2845 |
+
msgstr ""
|
2846 |
+
|
2847 |
+
#: defaults.php:305
|
2848 |
+
msgid "User Removed the Downloadable File from a product"
|
2849 |
+
msgstr ""
|
2850 |
+
|
2851 |
+
#: defaults.php:305
|
2852 |
+
msgid ""
|
2853 |
+
"Removed the Downloadable File %FileName% with File URL %FileUrl% from the "
|
2854 |
+
"product %ProductTitle%. View the product: %EditorLinkProduct%."
|
2855 |
+
msgstr ""
|
2856 |
+
|
2857 |
+
#: defaults.php:306
|
2858 |
+
msgid "User changed the name of a Downloadable File in a product"
|
2859 |
+
msgstr ""
|
2860 |
+
|
2861 |
+
#: defaults.php:306
|
2862 |
+
msgid ""
|
2863 |
+
"Changed the name of a Downloadable File from %OldName% to %NewName% in "
|
2864 |
+
"product %ProductTitle%. View the product: %EditorLinkProduct%."
|
2865 |
+
msgstr ""
|
2866 |
+
|
2867 |
+
#: defaults.php:307
|
2868 |
+
msgid "User changed the URL of the Downloadable File in a product"
|
2869 |
+
msgstr ""
|
2870 |
+
|
2871 |
+
#: defaults.php:307
|
2872 |
+
msgid ""
|
2873 |
+
"Changed the URL of the Downloadable File %FileName% from %OldUrl% to %NewUrl"
|
2874 |
+
"% in product %ProductTitle%. View the product: %EditorLinkProduct%."
|
2875 |
+
msgstr ""
|
2876 |
+
|
2877 |
+
#: defaults.php:308
|
2878 |
+
msgid "User changed the Weight Unit"
|
2879 |
+
msgstr ""
|
2880 |
+
|
2881 |
+
#: defaults.php:308
|
2882 |
+
msgid "Changed the Weight Unit from %OldUnit% to %NewUnit% in WooCommerce."
|
2883 |
+
msgstr ""
|
2884 |
+
|
2885 |
+
#: defaults.php:309
|
2886 |
+
msgid "User changed the Dimensions Unit"
|
2887 |
+
msgstr ""
|
2888 |
+
|
2889 |
+
#: defaults.php:309
|
2890 |
+
msgid "Changed the Dimensions Unit from %OldUnit% to %NewUnit% in WooCommerce."
|
2891 |
+
msgstr ""
|
2892 |
+
|
2893 |
+
#: defaults.php:310
|
2894 |
+
msgid "User changed the Base Location"
|
2895 |
+
msgstr ""
|
2896 |
+
|
2897 |
+
#: defaults.php:310
|
2898 |
+
msgid ""
|
2899 |
+
"Changed the Base Location from %OldLocation% to %NewLocation% in WooCommerce."
|
2900 |
+
msgstr ""
|
2901 |
+
|
2902 |
+
#: defaults.php:311
|
2903 |
+
msgid "User Enabled/Disabled taxes"
|
2904 |
+
msgstr ""
|
2905 |
+
|
2906 |
+
#: defaults.php:311
|
2907 |
+
msgid "%Status% taxes in the WooCommerce store."
|
2908 |
+
msgstr ""
|
2909 |
+
|
2910 |
+
#: defaults.php:312
|
2911 |
+
msgid "User changed the currency"
|
2912 |
+
msgstr ""
|
2913 |
+
|
2914 |
+
#: defaults.php:312
|
2915 |
+
msgid ""
|
2916 |
+
"Changed the currency from %OldCurrency% to %NewCurrency% in WooCommerce."
|
2917 |
+
msgstr ""
|
2918 |
+
|
2919 |
+
#: defaults.php:313
|
2920 |
+
msgid "User Enabled/Disabled the use of coupons during checkout"
|
2921 |
+
msgstr ""
|
2922 |
+
|
2923 |
+
#: defaults.php:313
|
2924 |
+
msgid "%Status% the use of coupons during checkout in WooCommerce."
|
2925 |
+
msgstr ""
|
2926 |
+
|
2927 |
+
#: defaults.php:314
|
2928 |
+
msgid "User Enabled/Disabled guest checkout"
|
2929 |
+
msgstr ""
|
2930 |
+
|
2931 |
+
#: defaults.php:314
|
2932 |
+
msgid "%Status% guest checkout in WooCommerce."
|
2933 |
+
msgstr ""
|
2934 |
+
|
2935 |
+
#: wp-security-audit-log.php:281
|
2936 |
msgid ""
|
2937 |
"You are using a version of PHP that is older than %s, which is no longer "
|
2938 |
"supported.<br/>Contact us on <a href=\"mailto:plugins@wpwhitesecurity.com"
|
2944 |
msgid "WP Security Audit Log"
|
2945 |
msgstr ""
|
2946 |
|
2947 |
+
#. #-#-#-#-# plugin.pot (WP Security Audit Log 2.6) #-#-#-#-#
|
2948 |
#. Plugin URI of the plugin/theme
|
2949 |
+
#. #-#-#-#-# plugin.pot (WP Security Audit Log 2.6) #-#-#-#-#
|
2950 |
#. Author URI of the plugin/theme
|
2951 |
msgid "http://www.wpsecurityauditlog.com/"
|
2952 |
msgstr ""
|
readme.txt
CHANGED
@@ -6,8 +6,8 @@ License: GPLv3
|
|
6 |
License URI: http://www.gnu.org/licenses/gpl.html
|
7 |
Tags: wordpress security plugin, wordpress security audit log, audit log, wordpress log, event log wordpress, wordpress user tracking, wordpress activity log, wordpress audit, security event log, audit trail, security audit trail, wordpress security alerts, wordpress monitor, wordpress security monitor, wordpress admin, wordpress admin monitoring, analytics, activity, admin, multisite, wordpress multisite, actions, dashboard, log, notification, wordpress monitoring, email notification, wordpress email alerts, tracking, user tracking, user activity report, wordpress audit trail
|
8 |
Requires at least: 3.6
|
9 |
-
Tested up to: 4.7.
|
10 |
-
Stable tag: 2.
|
11 |
|
12 |
Keep an audit trail of all changes and under the hood WordPress activity to ensure productivity and thwart possible WordPress hacker attacks.
|
13 |
|
@@ -15,13 +15,15 @@ Keep an audit trail of all changes and under the hood WordPress activity to ensu
|
|
15 |
|
16 |
<strong>THE MOST COMPREHENSIVE & EASY TO USE WORDPRESS AUDIT TRAIL PLUGIN</strong><br />
|
17 |
|
18 |
-
Keep an audit log of everything that
|
|
|
|
|
19 |
|
20 |
[youtube https://www.youtube.com/watch?v=1nopATCS-CQ]
|
21 |
|
22 |
> <strong>Free and Premium Support</strong><br>
|
23 |
>
|
24 |
-
>
|
25 |
>
|
26 |
> Premium world-class support is available via email to anyone who purchases any of the [Premium Add-Ons](http://www.wpsecurityauditlog.com/plugin-extensions/) listed below:
|
27 |
>
|
@@ -183,11 +185,27 @@ Please refer to the [FAQs page](https://www.wpsecurityauditlog.com/documentation
|
|
183 |
|
184 |
== Changelog ==
|
185 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
186 |
= 2.5.9.2 (2017-01-11) =
|
187 |
|
188 |
* **Bug Fix**
|
189 |
* Updated store URL so [premium add-ons](https://www.wpsecurityauditlog.com/extensions/all-add-ons-60-off/) can be updated.
|
190 |
-
|
191 |
= 2.5.9 (2017-01-03) =
|
192 |
|
193 |
* **Support for new features in External DB Add-on:**
|
6 |
License URI: http://www.gnu.org/licenses/gpl.html
|
7 |
Tags: wordpress security plugin, wordpress security audit log, audit log, wordpress log, event log wordpress, wordpress user tracking, wordpress activity log, wordpress audit, security event log, audit trail, security audit trail, wordpress security alerts, wordpress monitor, wordpress security monitor, wordpress admin, wordpress admin monitoring, analytics, activity, admin, multisite, wordpress multisite, actions, dashboard, log, notification, wordpress monitoring, email notification, wordpress email alerts, tracking, user tracking, user activity report, wordpress audit trail
|
8 |
Requires at least: 3.6
|
9 |
+
Tested up to: 4.7.2
|
10 |
+
Stable tag: 2.6
|
11 |
|
12 |
Keep an audit trail of all changes and under the hood WordPress activity to ensure productivity and thwart possible WordPress hacker attacks.
|
13 |
|
15 |
|
16 |
<strong>THE MOST COMPREHENSIVE & EASY TO USE WORDPRESS AUDIT TRAIL PLUGIN</strong><br />
|
17 |
|
18 |
+
Keep an audit log of everything that happens on your WordPress and [WordPress multisite](http://www.wpsecurityauditlog.com/documentation/wordpress-multisite-plugin-features-support/) with WP Security Audit Log to ensure user productivity and identify WordPress security issues before they become a security problem.
|
19 |
+
|
20 |
+
[WP Security Audit Log](http://www.wpsecurityauditlog.com) is WordPress' most comprehensive user monitoring and audit log plugin and is used by thousands of WordPress administrators, owners and security professionals. The plugin can also be used to [keep an audit trail of WooCommerce store and product changes](https://www.wpsecurityauditlog.com/wordpress-user-monitoring-plugin-releases/audit-trail-woocommerce-store-products).
|
21 |
|
22 |
[youtube https://www.youtube.com/watch?v=1nopATCS-CQ]
|
23 |
|
24 |
> <strong>Free and Premium Support</strong><br>
|
25 |
>
|
26 |
+
> Support for the WP Security Audit Log plugin on the WordPress forums is free. Since it is free support it is not always possible to answer all questions on a timely manner, although we do try our best.
|
27 |
>
|
28 |
> Premium world-class support is available via email to anyone who purchases any of the [Premium Add-Ons](http://www.wpsecurityauditlog.com/plugin-extensions/) listed below:
|
29 |
>
|
185 |
|
186 |
== Changelog ==
|
187 |
|
188 |
+
= 2.6 (2017-02-08) =
|
189 |
+
|
190 |
+
* **New Features**
|
191 |
+
* [Audit trail for WooCommerce Store and Products](https://www.wpsecurityauditlog.com/wordpress-user-monitoring-plugin-releases/audit-trail-woocommerce-store-products).
|
192 |
+
* New Hover over functionality to disable alerts with a single click.
|
193 |
+
|
194 |
+
* **New WooCommerce Audit Trail Alerts**
|
195 |
+
* Refer to the [Audit trail WooCommerce Alerts List](https://www.wpsecurityauditlog.com/documentation/list-monitoring-wordpress-security-alerts-audit-log/#woocommerce) for a complete list of alerts the plugin uses to keep a record of changes in the WooCommerce store and products.
|
196 |
+
|
197 |
+
* **Plugin Improvements**
|
198 |
+
* Improved severity of alerts and added severity description on hover over.
|
199 |
+
* Removed all code related to PHP error monitoring, which is no longer used (code spring cleaning).
|
200 |
+
|
201 |
+
* **Bug Fixes**
|
202 |
+
* Fixed an issue in which 404 logs where still being generated when the logs option was disabled but alert 6007 was enabled.
|
203 |
+
|
204 |
= 2.5.9.2 (2017-01-11) =
|
205 |
|
206 |
* **Bug Fix**
|
207 |
* Updated store URL so [premium add-ons](https://www.wpsecurityauditlog.com/extensions/all-add-ons-60-off/) can be updated.
|
208 |
+
|
209 |
= 2.5.9 (2017-01-03) =
|
210 |
|
211 |
* **Support for new features in External DB Add-on:**
|
wp-security-audit-log.php
CHANGED
@@ -4,7 +4,7 @@ Plugin Name: WP Security Audit Log
|
|
4 |
Plugin URI: http://www.wpsecurityauditlog.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 Security Audit Log generates a security alert for everything that happens on your WordPress blogs and websites. Use the Audit Log Viewer included in the plugin to see all the security alerts.
|
6 |
Author: WP White Security
|
7 |
-
Version: 2.
|
8 |
Text Domain: wp-security-audit-log
|
9 |
Author URI: http://www.wpsecurityauditlog.com/
|
10 |
License: GPL2
|
@@ -157,6 +157,9 @@ class WpSecurityAuditLog {
|
|
157 |
|
158 |
// handle admin Disable Custom Field
|
159 |
add_action('wp_ajax_AjaxDisableCustomField', array($this, 'AjaxDisableCustomField'));
|
|
|
|
|
|
|
160 |
}
|
161 |
|
162 |
/**
|
@@ -186,7 +189,24 @@ class WpSecurityAuditLog {
|
|
186 |
$fields = esc_html($_POST['notice']);
|
187 |
}
|
188 |
$this->SetGlobalOption('excluded-custom', $fields);
|
189 |
-
echo 'Custom Field '.esc_html($_POST['notice']).' is no longer being monitored.<br />Enable the monitoring of this custom field again from the <a href="admin.php?page=wsal-settings#tab-exclude"> Excluded Objects </a> tab in the plugin settings';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
190 |
die;
|
191 |
}
|
192 |
|
4 |
Plugin URI: http://www.wpsecurityauditlog.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 Security Audit Log generates a security alert for everything that happens on your WordPress blogs and websites. Use the Audit Log Viewer included in the plugin to see all the security alerts.
|
6 |
Author: WP White Security
|
7 |
+
Version: 2.6
|
8 |
Text Domain: wp-security-audit-log
|
9 |
Author URI: http://www.wpsecurityauditlog.com/
|
10 |
License: GPL2
|
157 |
|
158 |
// handle admin Disable Custom Field
|
159 |
add_action('wp_ajax_AjaxDisableCustomField', array($this, 'AjaxDisableCustomField'));
|
160 |
+
|
161 |
+
// handle admin Disable Alerts
|
162 |
+
add_action('wp_ajax_AjaxDisableByCode', array($this, 'AjaxDisableByCode'));
|
163 |
}
|
164 |
|
165 |
/**
|
189 |
$fields = esc_html($_POST['notice']);
|
190 |
}
|
191 |
$this->SetGlobalOption('excluded-custom', $fields);
|
192 |
+
echo '<p>Custom Field '.esc_html($_POST['notice']).' is no longer being monitored.<br />Enable the monitoring of this custom field again from the <a href="admin.php?page=wsal-settings#tab-exclude"> Excluded Objects </a> tab in the plugin settings</p>';
|
193 |
+
die;
|
194 |
+
}
|
195 |
+
|
196 |
+
/**
|
197 |
+
* Disable Alert through ajax.
|
198 |
+
* @internal
|
199 |
+
*/
|
200 |
+
public function AjaxDisableByCode(){
|
201 |
+
$sAlerts = $this->GetGlobalOption('disabled-alerts');
|
202 |
+
if (isset($sAlerts) && $sAlerts != "") {
|
203 |
+
$sAlerts .= "," . esc_html($_POST['code']);
|
204 |
+
} else {
|
205 |
+
$sAlerts = esc_html($_POST['code']);
|
206 |
+
}
|
207 |
+
$this->SetGlobalOption('disabled-alerts', $sAlerts);
|
208 |
+
echo '<p>Alert '.esc_html($_POST['code']).' is no longer being monitored.<br />';
|
209 |
+
echo 'You can enable this alert again from the Enable/Disable Alerts node in the plugin menu.</p>';
|
210 |
die;
|
211 |
}
|
212 |
|