| Server IP : 3.93.235.159 / Your IP : 216.73.216.140 Web Server : Apache System : Linux ip-172-26-0-169 5.10.0-46-cloud-amd64 #1 SMP Debian 5.10.262-1 (2026-07-31) x86_64 User : bitnami ( 1000) PHP Version : 8.2.9 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /bitnami/wordpress/wp-content/plugins/site-mailer/modules/suppressions/classes/ |
Upload File : |
<?php
namespace SiteMailer\Modules\Suppressions\Classes;
use SiteMailer\Modules\Suppressions\Database\Suppressions_Entry;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
class Unsubscribe_List {
public static ?Unsubscribe_List $instance = null;
/**
* get_instance
* @return Unsubscribe_List|null
*/
public static function get_instance(): ?Unsubscribe_List {
if ( ! self::$instance ) {
self::$instance = new self();
}
return self::$instance;
}
/**
* @param array $to Array of recipients.
* @param array $cc Array of copy recipients.
* @param array $bcc Array of hidden copy recipients.
*
* @return array Array of unsubscribed recipients.
*/
public function get_unsubscribed( array $to, array $cc, array $bcc ): array {
// Prepare the list of emails for the IN clause
$emails = array_merge( $to, $cc, $bcc );
// Surround each email with single quotes
$quoted_emails = array_map( function ( $email ) {
return "'" . esc_sql( $email ) . "'";
}, $emails );
// Create the where condition
$where = '`email` IN (' . implode( ',', $quoted_emails ) . ')';
$results = Suppressions_Entry::get_suppressions( 'email', $where );
return array_map( function ( $result ) {
return $result->email;
}, $results );
}
}