Technical architecture of NewsLetter

Local distribution 1.2.1 reference for administrators and developers. Describes code responsibilities, without repeating operational configuration.

Loading and modules

The main file loads EmbeddedCore, ChannelLock, Runtime, Scheduler, Package, Updater, and Admin. EmbeddedCore runs on plugins_loaded with priority 0; reuse an already loaded Newsletter class or start the included kernel. Runtime loads modules upon receipt of newsletter_loaded and checks for conflicts with original plugins.

Generation and programming

Scheduler reconciles channels in init and naa_reconcile. The naa_automated and naa_automated_retry events execute per-channel operations; naa_log_cleanup limits log retention. Changing timezone_string or gmt_offset marks the calendar for reconciliation. ChannelLock prevents concurrent operations on a channel and protects current reservations.

Administration and validation

Admin registers the options in admin_init and the panel in admin_menu. Settings include naa_ai_consent, naa_wp_ai_consent, naa_late_policy, naa_late_hours, naa_log_retention_days, and naa_update_public_key. Administrative controls check capacity and nonce.

External data and services

The core manages contacts, lists, and shipping. Modules maintain storage keys compatible with their source components. Fluent Forms contributes data when its integration is used; Newsletter AI queries api.thenewsletterplugin.com with permission. Updater validates manifest, signature, and package before offering an update.

Theme and functions of the site

The theme features documentation, branding, demo and published download. newsletter-site-core is optional for site features and is not a requirement of the newsletter engine. The counter measures complete server responses, not unique installations or people.

Go to operational settings