getSubscribersErrors($result_parsed, $subscribers); $level = MailerError::LEVEL_SOFT; } catch (InvalidArgumentException $e) { $message .= ' ' . $e->getMessage(); } break; case API::RESPONSE_CODE_TEMPORARY_UNAVAILABLE: $message = __('Email service is temporarily not available, please try again in a few minutes.', 'mailpoet'); $retry_interval = self::TEMPORARY_UNAVAILABLE_RETRY_INTERVAL; break; case API::RESPONSE_CODE_KEY_INVALID: case API::RESPONSE_CODE_PAYLOAD_TOO_BIG: default: $message = $result['message']; } return new MailerError(MailerError::OPERATION_SEND, $level, $message, $retry_interval, $subscribers_errors); } private function getSubscribersErrors($result_parsed, $subscribers) { $errors = []; foreach($result_parsed as $result_error) { if(!is_array($result_error) || !isset($result_error['index']) || !isset($subscribers[$result_error['index']])) { throw new InvalidArgumentException( __('Invalid MSS response format.', 'mailpoet')); } $subscriber_errors = []; if(isset($result_error['errors']) && is_array($result_error['errors'])) { array_walk_recursive($result_error['errors'], function($item) use (&$subscriber_errors) { $subscriber_errors[] = $item; }); } $message = join(', ', $subscriber_errors); $errors[] = new SubscriberError($subscribers[$result_error['index']], $message); } return $errors; } }