@@ -83,6 +83,8 @@ public function __construct()
8383 add_action ('ep_admin_notices ' , [$ this , 'admin_notice ' ]);
8484
8585 add_filter ('upload_mimes ' , [$ this , 'extended_mime_types ' ]);
86+
87+ add_action ('wp_mail_failed ' , [$ this , 'capture_mail_error ' ], 10 , 1 );
8688 }
8789
8890 /**
@@ -504,11 +506,28 @@ public function send_user_feedback_email($params)
504506 update_option ('embedpress_feedback_submited ' , true );
505507 return new \WP_REST_Response (['message ' => 'Email sent successfully! ' ], 200 );
506508 } else {
507- return new \WP_REST_Response (['message ' => 'Failed to send email. ' ], 500 );
509+ // Retrieve last error
510+ $ last_error = get_transient ('embedpress_last_mail_error ' );
511+ $ error_message = 'Failed to send email. ' ;
512+ if ($ last_error instanceof \WP_Error) {
513+ $ error_message = $ last_error ->get_error_message ();
514+ }
515+
516+ return new \WP_REST_Response ([
517+ 'message ' => $ error_message
518+ ], 422 ); // using 422 instead of 500
519+ }
520+ }
521+
522+ public function capture_mail_error ($ wp_error )
523+ {
524+ if ($ wp_error instanceof \WP_Error) {
525+ set_transient ('embedpress_last_mail_error ' , $ wp_error , 60 );
508526 }
509527 }
510528
511529
530+
512531 public function register_feedback_email_endpoint ()
513532 {
514533 register_rest_route ('embedpress/v1 ' , '/send-feedback ' , [
0 commit comments