PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 16.3-a.5
Jetpack – WP Security, Backup, Speed, & Growth v16.3-a.5
16.3-a.5 16.3-a.7 16.3-a.3 16.3-a.1 16.2 16.2-beta 12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 13.7.2 13.8.3 All 506 releases
← All changes | json-endpoints/class.wpcom-json-api-menus-v1-1-endpoint.php +34 -2 13.4.5 → 16.3-a.5 View file →
@@ -1,8 +1,12 @@
1 1 <?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
2 2
3 3 // phpcs:disable Generic.Files.OneObjectStructurePerFile.MultipleFound
4 4
5 +if ( ! defined( 'ABSPATH' ) ) {
6 + exit( 0 );
7 +}
8 +
5 9 /**
6 10 * Menus abstract endpoint class.
7 11 */
8 12 abstract class WPCOM_JSON_API_Menus_Abstract_Endpoint extends WPCOM_JSON_API_Endpoint {
@@ -101,8 +105,22 @@
101 105 */
102 106 protected $filters = array();
103 107
104 108 /**
109 + * False if $menus was an array on construct, true otherwise.
110 + *
111 + * @var bool
112 + */
113 + public $is_single_menu;
114 +
115 + /**
116 + * A menu or array of menus.
117 + *
118 + * @var mixed
119 + */
120 + public $menus;
121 +
122 + /**
105 123 * Class constructor.
106 124 *
107 125 * @param mixed $menus - a menu or list of menus.
108 126 */
@@ -795,8 +813,10 @@
795 813 );
796 814
797 815 /**
798 816 * New menu endpoint class.
817 + *
818 + * @phan-constructor-used-for-side-effects
799 819 */
800 820 class WPCOM_JSON_API_Menus_New_Menu_Endpoint extends WPCOM_JSON_API_Menus_Abstract_Endpoint {
801 821
802 822 /**
@@ -859,8 +879,10 @@
859 879 );
860 880
861 881 /**
862 882 * Update menu endpoint class.
883 + *
884 + * @phan-constructor-used-for-side-effects
863 885 */
864 886 class WPCOM_JSON_API_Menus_Update_Menu_Endpoint extends WPCOM_JSON_API_Menus_Abstract_Endpoint {
865 887
866 888 /**
@@ -891,9 +913,9 @@
891 913 }
892 914 $data = $data[0];
893 915
894 916 // Avoid special-case handling of an unset 'items' field in empty menus
895 - $data['items'] = isset( $data['items'] ) ? $data['items'] : array();
917 + $data['items'] ??= array();
896 918
897 919 $data = $this->create_new_items( $data, $menu_id );
898 920
899 921 $result = wp_update_nav_menu_object( $menu_id, array( 'menu-name' => $data['menu-name'] ) );
@@ -907,9 +929,9 @@
907 929 return $delete_status;
908 930 }
909 931
910 932 foreach ( $data['items'] as $item ) {
911 - $item_id = isset( $item['menu-item-db-id'] ) ? $item['menu-item-db-id'] : 0;
933 + $item_id = $item['menu-item-db-id'] ?? 0;
912 934 $result = wp_update_nav_menu_item( $menu_id, $item_id, $item );
913 935 if ( is_wp_error( $result ) ) {
914 936 return $result;
915 937 }
@@ -1022,8 +1044,10 @@
1022 1044 );
1023 1045
1024 1046 /**
1025 1047 * List menus endpoint class.
1048 + *
1049 + * @phan-constructor-used-for-side-effects
1026 1050 */
1027 1051 class WPCOM_JSON_API_Menus_List_Menus_Endpoint extends WPCOM_JSON_API_Menus_Abstract_Endpoint {
1028 1052
1029 1053 /**
@@ -1096,8 +1120,10 @@
1096 1120 );
1097 1121
1098 1122 /**
1099 1123 * Get menu endpoint class.
1124 + *
1125 + * @phan-constructor-used-for-side-effects
1100 1126 */
1101 1127 class WPCOM_JSON_API_Menus_Get_Menu_Endpoint extends WPCOM_JSON_API_Menus_Abstract_Endpoint {
1102 1128
1103 1129 /**
@@ -1125,8 +1151,12 @@
1125 1151 if ( is_wp_error( $menu ) ) {
1126 1152 return $menu;
1127 1153 }
1128 1154
1155 + if ( ! $menu instanceof WP_Term ) {
1156 + return new WP_Error( 'menu-not-found', 'Menu not found.', 404 );
1157 + }
1158 +
1129 1159 $items = wp_get_nav_menu_items( $menu_id, array( 'update_post_term_cache' => false ) );
1130 1160
1131 1161 if ( is_wp_error( $items ) ) {
1132 1162 return $items;
@@ -1160,8 +1190,10 @@
1160 1190 );
1161 1191
1162 1192 /**
1163 1193 * Delete menu endpoint class.
1194 + *
1195 + * @phan-constructor-used-for-side-effects
1164 1196 */
1165 1197 class WPCOM_JSON_API_Menus_Delete_Menu_Endpoint extends WPCOM_JSON_API_Menus_Abstract_Endpoint {
1166 1198
1167 1199 /**