Email Queue, CSAT, And Email Piping

Version 1.9.3

AreaMain piecesExtension points
Email queueALSP_Email_Queue, alsp_mail_queuealsp_mailqueue_add, alsp_mailqueue_add_data, alsp_mailqueue_before_sending, alsp_mailqueue_after
CSATalsp_csat_responses, survey token model, frontend survey rendereralsp_csat_survey_ready, alsp_csat_survey_submitted, alsp_csat_survey_email_template
Email pipingIMAP/Gmail/Microsoft importers, spam quarantine, multi-inbox settingsalsp_ep_email_is_valid, alsp_ep_spam_check_result, alsp_ep_spam_detected
add_filter('alsp_mailqueue_before_sending', function (array $mail): array {
    $mail['subject'] = '[Support] ' . $mail['subject'];
    return $mail;
});
add_filter('alsp_ep_email_is_valid', function (bool $valid, array $param): bool {
    if (!$valid) {
        return false;
    }

    $from = strtolower((string) ($param['from_email'] ?? ''));
    return substr($from, -strlen('@blocked-example.test')) !== '@blocked-example.test';
}, 10, 2);
add_action('alsp_csat_survey_submitted', function (int $response_id, int $rating, string $comment, $response): void {
    if ($rating <= 2) {
        my_alert_support_lead_about_low_rating($response_id, $comment);
    }
}, 10, 4);