@@ -123,7 +123,7 @@ public function network_admin_menu() {
123123 * @return void
124124 */
125125 public function network_admin_menu_separator () {
126- $ GLOBALS ['menu ' ]['-2 ' ] = array ( '' , 'read ' , 'separator ' , '' , 'wp-menu-separator ' ); // phpcs:ignore WordPress.Variables.GlobalVariables.OverrideProhibited
126+ $ GLOBALS ['menu ' ]['-2 ' ] = array ( '' , 'read ' , 'separator ' , '' , 'wp-menu-separator ' );
127127 }
128128
129129 /**
@@ -147,7 +147,7 @@ public function fix_menu_highlight_for_move_page() {
147147 // phpcs:enable
148148
149149 if ( 'move ' === $ action ) {
150- $ submenu_file = 'sites.php ' ; // phpcs:ignore WordPress.Variables.GlobalVariables.OverrideProhibited
150+ $ submenu_file = 'sites.php ' ;
151151 }
152152 }
153153 }
@@ -169,7 +169,7 @@ public function enqueue_scripts( $page = '' ) {
169169
170170 // Determine if we should load source or minified assets based on WP_SCRIPT_DEBUG.
171171 $ suffix = ( defined ( 'WP_SCRIPT_DEBUG ' ) && WP_SCRIPT_DEBUG ) ? '' : '.min ' ;
172- $ asset_version = ( defined ( 'WP_SCRIPT_DEBUG ' ) && WP_SCRIPT_DEBUG ) ? time () : wpmn ()->asset_version ;
172+ $ asset_version = ( defined ( 'WP_SCRIPT_DEBUG ' ) && WP_SCRIPT_DEBUG ) ? ( string ) time () : wpmn ()->asset_version ;
173173
174174 wp_register_style ( 'wp-multi-network ' , wpmn ()->plugin_url . 'assets/css/wp-multi-network ' . $ suffix . '.css ' , array (), $ asset_version );
175175 wp_register_script ( 'wp-multi-network ' , wpmn ()->plugin_url . 'assets/js/wp-multi-network ' . $ suffix . '.js ' , array ( 'jquery ' , 'post ' ), $ asset_version , true );
@@ -232,7 +232,7 @@ public function network_admin_notices() {
232232 }
233233
234234 // Pass/Fail.
235- $ passed = sanitize_key ( $ _GET [ $ slug ] );
235+ $ passed = sanitize_key ( ( string ) $ _GET [ $ slug ] );
236236
237237 if ( '1 ' === $ passed ) {
238238 // Pass.
@@ -347,7 +347,7 @@ public function route_save_handlers() {
347347
348348 // Bail -- our fields aren't being edited
349349 // Otherwise we'll do an unnecessary nonce check.
350- if ( empty ( $ _POST ['network_edit ' ] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
350+ if ( empty ( $ _POST ['network_edit ' ] ) ) {
351351 return ;
352352 }
353353
@@ -412,6 +412,12 @@ public function route_save_handlers() {
412412 */
413413 public function page_edit_network () {
414414
415+ $ screen = get_current_screen ();
416+
417+ if ( null === $ screen ) {
418+ return ;
419+ }
420+
415421 $ network_id = ! empty ( $ _GET ['id ' ] ) && is_numeric ( $ _GET ['id ' ] )
416422 ? (int ) $ _GET ['id ' ]
417423 : 0 ;
@@ -420,18 +426,18 @@ public function page_edit_network() {
420426 ? get_network ( $ network_id )
421427 : null ;
422428
423- add_meta_box ( 'wpmn-edit-network-details ' , esc_html__ ( 'Details ' , 'wp-multi-network ' ), 'wpmn_edit_network_details_metabox ' , get_current_screen () ->id , 'normal ' , 'high ' , array ( $ network ) );
424- add_meta_box ( 'wpmn-edit-network-publish ' , esc_html__ ( 'Network ' , 'wp-multi-network ' ), 'wpmn_edit_network_publish_metabox ' , get_current_screen () ->id , 'side ' , 'high ' , array ( $ network ) );
429+ add_meta_box ( 'wpmn-edit-network-details ' , esc_html__ ( 'Details ' , 'wp-multi-network ' ), 'wpmn_edit_network_details_metabox ' , $ screen ->id , 'normal ' , 'high ' , array ( $ network ) );
430+ add_meta_box ( 'wpmn-edit-network-publish ' , esc_html__ ( 'Network ' , 'wp-multi-network ' ), 'wpmn_edit_network_publish_metabox ' , $ screen ->id , 'side ' , 'high ' , array ( $ network ) );
425431
426432 // Differentiate between a new network and an existing network.
427433 if ( empty ( $ network ) ) {
428434 $ network_title = '' ;
429435
430- add_meta_box ( 'wpmn-edit-network-new-site ' , esc_html__ ( 'Root Site ' , 'wp-multi-network ' ), 'wpmn_edit_network_new_site_metabox ' , get_current_screen () ->id , 'advanced ' , 'high ' , array ( $ network ) );
436+ add_meta_box ( 'wpmn-edit-network-new-site ' , esc_html__ ( 'Root Site ' , 'wp-multi-network ' ), 'wpmn_edit_network_new_site_metabox ' , $ screen ->id , 'advanced ' , 'high ' , array ( $ network ) );
431437 } else {
432438 $ network_title = get_network_option ( $ network ->id , 'site_name ' , '' );
433439
434- add_meta_box ( 'wpmn-edit-network-assign-sites ' , esc_html__ ( 'Site Assignment ' , 'wp-multi-network ' ), 'wpmn_edit_network_assign_sites_metabox ' , get_current_screen () ->id , 'advanced ' , 'high ' , array ( $ network ) );
440+ add_meta_box ( 'wpmn-edit-network-assign-sites ' , esc_html__ ( 'Site Assignment ' , 'wp-multi-network ' ), 'wpmn_edit_network_assign_sites_metabox ' , $ screen ->id , 'advanced ' , 'high ' , array ( $ network ) );
435441 }
436442
437443 $ add_network_url = $ this ->admin_url ( array ( 'page ' => 'add-new-network ' ) );
@@ -469,12 +475,12 @@ public function page_edit_network() {
469475 </div>
470476
471477 <div id="postbox-container-1" class="postbox-container">
472- <?php do_meta_boxes ( get_current_screen () ->id , 'side ' , $ network ); ?>
478+ <?php do_meta_boxes ( $ screen ->id , 'side ' , $ network ); ?>
473479 </div>
474480
475481 <div id="postbox-container-2" class="postbox-container">
476- <?php do_meta_boxes ( get_current_screen () ->id , 'normal ' , $ network ); ?>
477- <?php do_meta_boxes ( get_current_screen () ->id , 'advanced ' , $ network ); ?>
482+ <?php do_meta_boxes ( $ screen ->id , 'normal ' , $ network ); ?>
483+ <?php do_meta_boxes ( $ screen ->id , 'advanced ' , $ network ); ?>
478484 </div>
479485 </div>
480486 </div>
@@ -553,6 +559,12 @@ private function page_all_networks() {
553559 */
554560 private function page_move_site () {
555561
562+ $ screen = get_current_screen ();
563+
564+ if ( null === $ screen ) {
565+ return ;
566+ }
567+
556568 $ site_id = ! empty ( $ _GET ['blog_id ' ] ) && is_numeric ( $ _GET ['blog_id ' ] )
557569 ? (int ) $ _GET ['blog_id ' ]
558570 : 0 ;
@@ -571,7 +583,7 @@ private function page_move_site() {
571583 'wpmn-move-site-list ' ,
572584 esc_html__ ( 'Assign Network ' , 'wp-multi-network ' ),
573585 'wpmn_move_site_list_metabox ' ,
574- get_current_screen () ->id ,
586+ $ screen ->id ,
575587 'normal ' ,
576588 'high ' ,
577589 array ( $ site )
@@ -582,7 +594,7 @@ private function page_move_site() {
582594 'wpmn-move-site-publish ' ,
583595 esc_html__ ( 'Site ' , 'wp-multi-network ' ),
584596 'wpmn_move_site_assign_metabox ' ,
585- get_current_screen () ->id ,
597+ $ screen ->id ,
586598 'side ' ,
587599 'high ' ,
588600 array ( $ site )
@@ -621,12 +633,12 @@ private function page_move_site() {
621633 <div id="poststuff">
622634 <div id="post-body" class="metabox-holder columns-2">
623635 <div id="postbox-container-1" class="postbox-container">
624- <?php do_meta_boxes ( get_current_screen () ->id , 'side ' , $ site ); ?>
636+ <?php do_meta_boxes ( $ screen ->id , 'side ' , $ site ); ?>
625637 </div>
626638
627639 <div id="postbox-container-2" class="postbox-container">
628- <?php do_meta_boxes ( get_current_screen () ->id , 'normal ' , $ site ); ?>
629- <?php do_meta_boxes ( get_current_screen () ->id , 'advanced ' , $ site ); ?>
640+ <?php do_meta_boxes ( $ screen ->id , 'normal ' , $ site ); ?>
641+ <?php do_meta_boxes ( $ screen ->id , 'advanced ' , $ site ); ?>
630642 </div>
631643 </div>
632644 </div>
@@ -747,7 +759,6 @@ private function page_delete_network() {
747759 * @return void
748760 */
749761 private function page_delete_networks () {
750-
751762 $ network_id = get_main_network_id ();
752763
753764 $ all_networks = ! empty ( $ _POST ['all_networks ' ] ) && is_array ( $ _POST ['all_networks ' ] )
@@ -756,6 +767,7 @@ private function page_delete_networks() {
756767
757768 $ all_networks = array_diff ( $ all_networks , array ( $ network_id ) );
758769
770+ /** @var WP_Network[] $networks */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
759771 $ networks = get_networks (
760772 array (
761773 'network__in ' => $ all_networks ,
@@ -799,7 +811,7 @@ private function page_delete_networks() {
799811
800812 foreach ( $ networks as $ deleted_network ) {
801813 ?>
802- <li><input type="hidden" name="deleted_networks[]" value="<?php echo esc_attr ( $ deleted_network ->id ); ?> "><?php echo esc_html ( $ deleted_network ->domain . $ deleted_network ->path ); ?> </li>
814+ <li><input type="hidden" name="deleted_networks[]" value="<?php echo esc_attr ( ( string ) $ deleted_network ->id ); ?> "><?php echo esc_html ( $ deleted_network ->domain . $ deleted_network ->path ); ?> </li>
803815 <?php
804816 }
805817
@@ -834,7 +846,7 @@ private function page_delete_networks() {
834846 foreach ( $ networks as $ deleted_network ) :
835847
836848 ?>
837- <li><input type="hidden" name="deleted_networks[]" value="<?php echo esc_attr ( $ deleted_network ->id ); ?> "><?php echo esc_html ( $ deleted_network ->domain . $ deleted_network ->path ); ?> </li>
849+ <li><input type="hidden" name="deleted_networks[]" value="<?php echo esc_attr ( ( string ) $ deleted_network ->id ); ?> "><?php echo esc_html ( $ deleted_network ->domain . $ deleted_network ->path ); ?> </li>
838850 <?php
839851
840852 endforeach ;
@@ -882,9 +894,12 @@ public function page_my_networks() {
882894 <?php
883895
884896 $ my_networks = user_has_networks ();
897+ if ( ! is_array ( $ my_networks ) ) {
898+ $ my_networks = array ();
899+ }
900+
885901 foreach ( $ my_networks as $ key => $ network_id ) {
886- // phpcs:ignore WordPress.VIP.DirectDatabaseQuery.DirectQuery,WordPress.VIP.DirectDatabaseQuery.NoCaching
887- $ my_networks [ $ key ] = $ wpdb ->get_row (
902+ $ my_networks [ $ key ] = $ wpdb ->get_row ( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
888903 $ wpdb ->prepare (
889904 'SELECT s.*, sm.meta_value as site_name, b.blog_id FROM ' . $ wpdb ->site . ' s LEFT JOIN ' . $ wpdb ->sitemeta . ' as sm ON sm.site_id = s.id AND sm.meta_key = %s LEFT JOIN ' . $ wpdb ->blogs . ' b ON s.id = b.site_id AND b.path = s.path WHERE s.id = %d ' ,
890905 'site_name ' ,
@@ -967,14 +982,8 @@ public function page_my_networks() {
967982 * @return void
968983 */
969984 private function handle_add_network () {
970-
971- // Sanitize options to clone.
972985 $ options_to_clone = ! empty ( $ _POST ['options_to_clone ' ] ) && is_array ( $ _POST ['options_to_clone ' ] )
973- ? $ _POST ['options_to_clone ' ]
974- : array ();
975-
976- $ options_to_clone = ! empty ( $ options_to_clone )
977- ? array_keys ( $ options_to_clone )
986+ ? array_map ( 'sanitize_text_field ' , array_keys ( $ _POST ['options_to_clone ' ] ) ) // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
978987 : array_keys ( network_options_to_copy () );
979988
980989 // Sanitize network ID to clone.
@@ -988,27 +997,17 @@ private function handle_add_network() {
988997
989998 // Unslash posted values.
990999 $ network_title = ! empty ( $ _POST ['title ' ] )
991- ? wp_unslash ( $ _POST ['title ' ] )
1000+ ? sanitize_text_field ( wp_unslash ( $ _POST ['title ' ] ) )
9921001 : '' ;
9931002 $ network_domain = ! empty ( $ _POST ['domain ' ] )
994- ? wp_unslash ( $ _POST ['domain ' ] )
1003+ ? str_replace ( ' ' , '' , strtolower ( sanitize_text_field ( wp_unslash ( $ _POST ['domain ' ] ) ) ) )
9951004 : '' ;
9961005 $ network_path = ! empty ( $ _POST ['path ' ] )
997- ? wp_unslash ( $ _POST ['path ' ] )
1006+ ? str_replace ( ' ' , '' , strtolower ( sanitize_text_field ( wp_unslash ( $ _POST ['path ' ] ) ) ) )
9981007 : '' ;
9991008 $ site_name = ! empty ( $ _POST ['new_site ' ] )
1000- ? wp_unslash ( $ _POST ['new_site ' ] )
1001- : '' ;
1002-
1003- // Additional sanitization.
1004- $ network_title = sanitize_text_field ( $ network_title );
1005- $ network_domain = str_replace ( ' ' , '' , strtolower ( sanitize_text_field ( $ network_domain ) ) );
1006- $ network_path = str_replace ( ' ' , '' , strtolower ( sanitize_text_field ( $ network_path ) ) );
1007-
1008- // Fallback to network title if not explicitly set.
1009- $ site_name = ! empty ( $ site_name )
1010- ? sanitize_text_field ( $ site_name )
1011- : $ network_title ;
1009+ ? sanitize_text_field ( wp_unslash ( $ _POST ['new_site ' ] ) )
1010+ : $ network_title ; // Fallback to network title if not explicitly set.
10121011
10131012 // Bail if missing fields.
10141013 if ( empty ( $ network_domain ) || empty ( $ network_path ) ) {
@@ -1090,20 +1089,15 @@ private function handle_update_network() {
10901089
10911090 // Unslash posted values.
10921091 $ network_title = ! empty ( $ _POST ['title ' ] )
1093- ? wp_unslash ( $ _POST ['title ' ] )
1092+ ? sanitize_text_field ( wp_unslash ( $ _POST ['title ' ] ) )
10941093 : '' ;
10951094 $ network_domain = ! empty ( $ _POST ['domain ' ] )
1096- ? wp_unslash ( $ _POST ['domain ' ] )
1095+ ? str_replace ( ' ' , '' , strtolower ( sanitize_text_field ( wp_unslash ( $ _POST ['domain ' ] ) ) ) )
10971096 : '' ;
10981097 $ network_path = ! empty ( $ _POST ['path ' ] )
1099- ? wp_unslash ( $ _POST ['path ' ] )
1098+ ? str_replace ( ' ' , '' , strtolower ( sanitize_text_field ( wp_unslash ( $ _POST ['path ' ] ) ) ) )
11001099 : '' ;
11011100
1102- // Additional sanitization.
1103- $ network_title = sanitize_text_field ( $ network_title );
1104- $ network_domain = str_replace ( ' ' , '' , strtolower ( sanitize_text_field ( $ network_domain ) ) );
1105- $ network_path = str_replace ( ' ' , '' , strtolower ( sanitize_text_field ( $ network_path ) ) );
1106-
11071101 // Bail if missing fields.
11081102 if ( empty ( $ network_title ) || empty ( $ network_domain ) || empty ( $ network_path ) ) {
11091103 $ this ->handle_redirect (
0 commit comments