wp/wp-includes/js/wp-ajax-response.js
changeset 19 3d72ae0968f4
parent 18 be944660c56a
child 21 48c4eec2b7e6
--- a/wp/wp-includes/js/wp-ajax-response.js	Wed Sep 21 18:19:35 2022 +0200
+++ b/wp/wp-includes/js/wp-ajax-response.js	Tue Sep 27 16:37:53 2022 +0200
@@ -18,7 +18,7 @@
 		return r;
 	},
 	parseAjaxResponse: function( x, r, e ) { // 1 = good, 0 = strange (bad data?), -1 = you lack permission.
-		var parsed = {}, re = jQuery('#' + r).empty(), err = '';
+		var parsed = {}, re = jQuery('#' + r).empty(), err = '', noticeMessage = '';
 
 		if ( x && typeof x === 'object' && x.getElementsByTagName('wp_ajax') ) {
 			parsed.responses = [];
@@ -29,6 +29,12 @@
 				response.data = jQuery( 'response_data', child ).text();
 				response.supplemental = {};
 				if ( !jQuery( 'supplemental', child ).children().each( function() {
+
+					if ( this.nodeName === 'notice' ) {
+						noticeMessage += jQuery(this).text();
+						return;
+					}
+
 					response.supplemental[this.nodeName] = jQuery(this).text();
 				} ).length ) { response.supplemental = false; }
 				response.errors = [];
@@ -46,7 +52,14 @@
 				} ).length ) { response.errors = false; }
 				parsed.responses.push( response );
 			} );
-			if ( err.length ) { re.html( '<div class="error">' + err + '</div>' ); }
+			if ( err.length ) {
+				re.html( '<div class="error">' + err + '</div>' );
+				wp.a11y.speak( err );
+			} else if ( noticeMessage.length ) {
+				re.html( '<div class="updated notice is-dismissible"><p>' + noticeMessage + '</p></div>');
+				jQuery(document).trigger( 'wp-updates-notice-added' );
+				wp.a11y.speak( noticeMessage );
+			}
 			return parsed;
 		}
 		if ( isNaN(x) ) { return !re.html('<div class="error"><p>' + x + '</p></div>'); }