PluginProbe
Defender Security – Malware Scanner, Login Security & Firewall / 6.3.0
Defender Security – Malware Scanner, Login Security & Firewall v6.3.0
6.3.0 6.2.3 6.2.4 6.2.0 6.2.1 6.2.2 6.1.0 5.3.1 5.4.0 5.4.1 5.5.0 5.5.1 5.6.0 5.6.1 5.6.2 5.7.0 5.7.1 5.7.2 5.8.0 5.8.1 5.9.0 6.0.0 6.0.1 3.0.1 3.1.0 All 141 releases
← All changes | src/component/audit/class-menu-audit.php +25 -26 5.4.0 → 6.3.0 View file →
@@ -17,9 +17,8 @@
17 17 * @since 2.6.1
18 18 */
19 19 class Menu_Audit extends Audit_Event {
20 20
21 - public const ACTION_CREATED = 'created';
22 21 /**
23 22 * Type of audit.
24 23 *
25 24 * @var string
@@ -51,10 +50,10 @@
51 50 }
52 51
53 52 if (
54 53 'nav-menus.php' === basename( $script_name )
55 - && ! empty( $action_type )
56 - && ! empty( $term_id )
54 + && ! is_null( $action_type )
55 + && ! is_null( $term_id )
57 56 ) {
58 57 Array_Cache::append(
59 58 'menu_updated',
60 59 $this->build_menu( $term_id ),
@@ -73,26 +72,23 @@
73 72 public function build_menu( $term_id ): array {
74 73 $menu = array();
75 74 $menu_obj = wp_get_nav_menu_object( $term_id );
76 75
77 - if ( ! empty( $menu_obj ) ) {
76 + if ( $menu_obj instanceof \WP_Term ) {
78 77 $menu['term_id'] = $menu_obj->term_id;
79 78 $menu['name'] = $menu_obj->name;
80 79 $menu['items'] = array();
81 80
82 81 $items = wp_get_nav_menu_items( $menu_obj->term_id );
83 - if ( ! empty( $items ) ) {
82 + if ( is_array( $items ) && array() !== $items ) {
84 83 foreach ( $items as $item ) {
85 - array_push(
86 - $menu['items'],
87 - array(
88 - 'item_id' => $item->ID,
89 - 'title' => $item->title,
90 - 'url' => $item->url,
91 - 'object' => $item->object,
92 - 'menu_order' => $item->menu_order,
93 - 'menu_item_parent' => $item->menu_item_parent,
94 - )
84 + $menu['items'][] = array(
85 + 'item_id' => $item->ID,
86 + 'title' => $item->title,
87 + 'url' => $item->url,
88 + 'object' => $item->object,
89 + 'menu_order' => $item->menu_order,
90 + 'menu_item_parent' => $item->menu_item_parent,
95 91 );
96 92 }
97 93 }
98 94 }
@@ -163,19 +159,19 @@
163 159 $args = $func_args[1]['args'];
164 160 $blog_name = is_multisite() ? '[' . get_bloginfo( 'name' ) . ']' : '';
165 161 $old_menu = $this->get_cached_menu( $menu_id );
166 162
167 - if ( ! empty( $old_menu ) ) {
163 + if ( isset( $old_menu['items'] ) && is_array( $old_menu['items'] ) ) {
168 164 $old_items = array_column( $old_menu['items'], 'item_id' );
169 165 $new_items = array_keys( $post_array['menu-item-title'] );
170 166
171 - if ( ! empty( $old_menu['items'] ) ) {
167 + if ( array() !== $old_menu['items'] ) {
172 168 foreach ( $old_menu['items'] as $old_item ) {
173 169 if ( $menu_item_db_id === $old_item['item_id'] ) {
174 170 if (
175 171 $old_item['menu_order'] !== $args['menu-item-position']
176 172 || $old_item['menu_item_parent'] !== $args['menu-item-parent-id']
177 - || ( ! empty( $args['menu-item-title'] ) && $old_item['title'] !== $args['menu-item-title'] )
173 + || ( isset( $args['menu-item-title'] ) && '' !== $args['menu-item-title'] && $old_item['title'] !== $args['menu-item-title'] )
178 174 ) {
179 175 return array(
180 176 sprintf(
181 177 /* translators: 1: Blog name, 2: User's display name, 3: Menu item, 4: Menu name */
@@ -230,9 +226,9 @@
230 226 $menu_id = (int) $post_array['menu'];
231 227 $blog_name = is_multisite() ? '[' . get_bloginfo( 'name' ) . ']' : '';
232 228 $old_menu = $this->get_cached_menu( $menu_id );
233 229
234 - if ( ! empty( $old_menu ) && is_array( $old_menu ) ) {
230 + if ( isset( $old_menu['items'] ) && is_array( $old_menu['items'] ) && array() !== $old_menu['items'] ) {
235 231 $old_items = array_column( $old_menu['items'], 'item_id' );
236 232 if ( in_array( $menu_item_db_id, $old_items, true ) ) {
237 233 $key = array_search( $menu_item_db_id, $old_items, true );
238 234
@@ -286,9 +282,12 @@
286 282 $menu_data = $func_args[1]['menu_data'];
287 283 $post_array = filter_input_array( INPUT_POST );
288 284 $new_items = isset( $post_array['menu-item-title'] ) ? array_keys( $post_array['menu-item-title'] ) : array();
289 285 $old_menu = $this->get_cached_menu( $menu_id );
290 - $old_items = array_column( $old_menu['items'], 'item_id' );
286 + if ( ! is_array( $old_menu ) || ! isset( $old_menu['items'] ) || ! is_array( $old_menu['items'] ) ) {
287 + return false;
288 + }
289 + $old_items = array_column( $old_menu['items'], 'item_id' );
291 290
292 291 sort( $new_items );
293 292 sort( $old_items );
294 293 if ( $new_items === $old_items ) {
@@ -293,13 +292,13 @@
293 292 sort( $old_items );
294 293 if ( $new_items === $old_items ) {
295 294 // Check if item title, position or parent is changed.
296 295 $is_any_item_changed = false;
297 - foreach ( $old_menu['items'] as $old_items ) {
296 + foreach ( $old_menu['items'] as $items ) {
298 297 if (
299 - $old_items['title'] !== $post_array['menu-item-title'][ $old_items['item_id'] ]
300 - || $old_items['menu_order'] !== (int) $post_array['menu-item-position'][ $old_items['item_id'] ]
301 - || $old_items['menu_item_parent'] !== $post_array['menu-item-parent-id'][ $old_items['item_id'] ]
298 + $items['title'] !== $post_array['menu-item-title'][ $items['item_id'] ]
299 + || $items['menu_order'] !== (int) $post_array['menu-item-position'][ $items['item_id'] ]
300 + || $items['menu_item_parent'] !== $post_array['menu-item-parent-id'][ $items['item_id'] ]
302 301 ) {
303 302 $is_any_item_changed = true;
304 303 break;
305 304 }
@@ -313,9 +312,9 @@
313 312 /* translators: 1: Blog name, 2: User's display name, 3: Menu name */
314 313 esc_html__( '%1$s %2$s updated menu "%3$s"', 'defender-security' ),
315 314 $blog_name,
316 315 $this->get_user_display( get_current_user_id() ),
317 - $menu_data['menu-name']
316 + $menu_data['menu-name'] ?? $old_menu['name']
318 317 ),
319 318 $this->type,
320 319 );
321 320 }
@@ -340,9 +339,9 @@
340 339 /* translators: 1: Blog name, 2: User's display name, 3: Menu name */
341 340 esc_html__( '%1$s %2$s deleted menu "%3$s"', 'defender-security' ),
342 341 $blog_name,
343 342 $this->get_user_display( get_current_user_id() ),
344 - $old_menu['name']
343 + $old_menu['name'] ?? '',
345 344 ),
346 345 $this->type,
347 346 );
348 347 }