Skip to content

Commit eaddb2f

Browse files
Memberships: Add error messaging for connected accounts (#35564)
* Return error when connected account can't be loaded. * changelog
1 parent 7d38061 commit eaddb2f

File tree

2 files changed

+29
-2
lines changed

2 files changed

+29
-2
lines changed

projects/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/memberships.php

+25-2
Original file line numberDiff line numberDiff line change
@@ -371,8 +371,31 @@ public function get_status( \WP_REST_Request $request ) {
371371

372372
if ( $this->is_wpcom() ) {
373373
require_lib( 'memberships' );
374-
$blog_id = get_current_blog_id();
375-
return (array) get_memberships_settings_for_site( $blog_id, $product_type, $is_editable, $source );
374+
$blog_id = get_current_blog_id();
375+
$membership_settings = get_memberships_settings_for_site( $blog_id, $product_type, $is_editable, $source );
376+
377+
if ( is_wp_error( $membership_settings ) ) {
378+
// Get error messages from the $membership_settings.
379+
$error_codes = $membership_settings->get_error_codes();
380+
$error_messages = array();
381+
382+
foreach ( $error_codes as $code ) {
383+
$messages = $membership_settings->get_error_messages( $code );
384+
foreach ( $messages as $message ) {
385+
// Sanitize error message
386+
$error_messages[] = esc_html( $message );
387+
}
388+
}
389+
390+
$error_messages_string = implode( ' ', $error_messages );
391+
// translators: %s is a list of error messages.
392+
$base_message = __( 'Could not get the membership settings due to the following error(s): %s', 'jetpack' );
393+
$full_message = sprintf( $base_message, $error_messages_string );
394+
395+
return new WP_Error( 'membership_settings_error', $full_message, array( 'status' => 404 ) );
396+
}
397+
398+
return (array) $membership_settings;
376399
} else {
377400
$payload = array(
378401
'type' => $request['type'],
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
Significance: patch
2+
Type: other
3+
4+
Adds error messaging to endpoint when connected account for memberships cannot be loaeded.

0 commit comments

Comments
 (0)