Subscriber Management
OM_Subscriber handles all subscriber CRUD, querying, and bulk operations.
PHP API
php// Count all or filtered subscribers
$total = OM_Subscriber::count();
$active = OM_Subscriber::count( 'subscribed' );
// Get subscribers with filtering
$subs = OM_Subscriber::get_all([
'status' => 'subscribed',
'list_id' => 3,
'search' => 'john',
'orderby' => 'created_at', // created_at|email|first_name|last_name|status
'order' => 'DESC',
'per_page' => 50,
'page' => 1,
]);
// Get single subscriber
$sub = OM_Subscriber::get_by_id( 42 );
$sub = OM_Subscriber::get_by_email( 'user@example.com' );
// Insert a new subscriber
$id = OM_Subscriber::insert([
'email' => 'new@example.com',
'first_name' => 'Jane',
'last_name' => 'Smith',
'status' => 'subscribed', // subscribed|pending|unsubscribed|bounced
'source' => 'api',
'ip_address' => '1.2.3.4',
]);
// Returns subscriber ID. Also auto-adds to "General" list.
// Fires: do_action( 'om_subscriber_inserted', $id, $data )
Global Helper
php// om_subscribe() — the recommended public API for integrations
$sub_id = om_subscribe( 'email@example.com', [
'first_name' => 'Jane',
'last_name' => 'Smith',
'list_id' => 5,
'source' => 'my_plugin',
] );
// Returns subscriber ID or WP_Error.
// Handles duplicate detection: if email exists, it resubscribes the existing record.
Subscriber Statuses
| Status | Meaning |
|---|---|
subscribed | Active, receives emails |
pending | Awaiting double opt-in confirmation |
unsubscribed | Opted out, will not receive marketing |
bounced | Hard-bounced, permanently suppressed |
Hooks
phpadd_action( 'om_subscriber_inserted', function( int $id, array $data ) {} );
add_action( 'om_subscriber_updated', function( int $id, array $changes ) {} );
add_action( 'om_subscriber_unsubscribed',function( int $id ) {} );
add_action( 'om_subscriber_bounced', function( int $id, string $type ) {} );