Changeset 12274 for sites/trunk/wordpress.org/public_html/wp-content/plugins/gp-translation-helpers/includes/class-wporg-notifications.php
- Timestamp:
- 11/23/2022 06:22:00 PM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sites/trunk/wordpress.org/public_html/wp-content/plugins/gp-translation-helpers/includes/class-wporg-notifications.php
r12063 r12274 95 95 2 96 96 ); 97 add_filter( 98 'gp_mentions_list', 99 function( $result, $comments, $locale, $original_id ) { 100 $validator_email_addresses = ( $locale && $original_id ) ? WPorg_GlotPress_Notifications::get_validator_details_for_original_id( $locale, $original_id ) : array(); 101 $commenters_email_addresses = array_values( GP_Notifications::get_commenters_email_addresses( $comments ) ); 102 103 // Remove commenter email if it already exists as a GTE. 104 $commenters_email_addresses = array_filter( 105 $commenters_email_addresses, 106 function( $commenter_email ) use ( $validator_email_addresses ) { 107 return ( ! in_array( $commenter_email, array_column( $validator_email_addresses, 'email' ) ) ); 108 } 109 ); 110 111 $commenters_email_role = array_map( 112 function( $commenter_email ) { 113 return( 114 array( 115 'role' => 'commenter', 116 'email' => $commenter_email, 117 ) 118 ); 119 }, 120 $commenters_email_addresses 121 ); 122 123 $all_email_addresses = array_merge( 124 $validator_email_addresses, 125 $commenters_email_role 126 ); 127 128 $current_user = wp_get_current_user(); 129 $current_user_email = $current_user->user_email; 130 131 // Find all instances of the logged_in user in the array 132 $user_search_result = array_keys( array_column( $all_email_addresses, 'email' ), $current_user_email ); 133 134 if ( false !== $user_search_result ) { 135 foreach ( $user_search_result as $index ) { 136 unset( $all_email_addresses[ $index ] ); 137 } 138 $all_email_addresses = array_values( $all_email_addresses ); 139 } 140 141 $users = array_map( 142 function( $mentionable_user ) { 143 $email = $mentionable_user; 144 $role = ''; 145 if ( is_array( $mentionable_user ) ) { 146 $email = $mentionable_user['email']; 147 $role = ! ( 'commenter' === $mentionable_user['role'] ) ? ' - ' . $mentionable_user['role'] : ''; 148 } 149 150 $user = get_user_by( 'email', $email ); 151 return array( 152 'ID' => $user->ID, 153 'user_login' => $user->user_login, 154 'user_nicename' => $user->user_nicename . $role, 155 'display_name' => '', 156 'source' => array( 'translators' ), 157 'image_URL' => get_avatar_url( $user->ID ), 158 ); 159 }, 160 $all_email_addresses 161 ); 162 return $users; 163 }, 164 10, 165 4 166 ); 97 167 } 98 168 } … … 118 188 return array_merge( $email_addresses, self::get_clpte_email_addresses_by_project( $original->id ) ); 119 189 } 190 191 /** 192 * Gets the email addresses and roles(GTE/PTE/CLPTE) of all project validators: GTE, PTE and CLPTE. 193 * 194 * @since 0.0.2 195 * 196 * @param string $locale The locale for the translation. 197 * @param int $original_id The original id for the string. 198 * 199 * @return array The emails and roles(GTE/PTE/CLPTE) of the validators. 200 */ 201 public static function get_validator_details_for_original_id( $locale, $original_id ): array { 202 $gtes_email_and_role = array_map( 203 function( $gte_email ) { 204 return array( 205 'role' => 'GTE', 206 'email' => $gte_email, 207 ); 208 }, 209 self::get_gte_email_addresses( $locale ) 210 ); 211 212 $ptes_email_and_role = array_map( 213 function( $pte_email ) { 214 return array( 215 'role' => 'GTE', 216 'email' => $pte_email, 217 ); 218 }, 219 self::get_pte_email_addresses_by_project_and_locale( $original_id, $locale ) 220 ); 221 222 $clptes_email_and_role = array_map( 223 function( $clpte_email ) { 224 return array( 225 'role' => 'GTE', 226 'email' => $clpte_email, 227 ); 228 }, 229 self::get_clpte_email_addresses_by_project( $original_id ) 230 ); 231 232 return array_merge( 233 array_merge( $gtes_email_and_role, $ptes_email_and_role ), 234 $clptes_email_and_role 235 ); 236 } 237 120 238 121 239 /**
Note: See TracChangeset
for help on using the changeset viewer.