{"id":372702,"date":"2026-09-30T16:07:49","date_gmt":"2026-09-30T16:07:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/ozd-newsletter-manager\/"},"modified":"2026-09-30T16:07:23","modified_gmt":"2026-09-30T16:07:23","slug":"ozd-newsletter-manager","status":"publish","type":"plugin","link":"https:\/\/su.wordpress.org\/plugins\/ozd-newsletter-manager\/","author":20695029,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.2","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"OZD Newsletter Manager","header_author":"Sad\u0131k \u00d6zdo\u011fan","header_description":"Accessible newsletter forms, double opt-in, subscriber management, automatic placement, and portable CSV\/JSON backups.","assets_banners_color":"","last_updated":"2026-09-30 16:07:23","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/www.sadikozdogan.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":61,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"sadikozdogan","date":"2026-09-30 16:07:23","revision":3721647}},"upgrade_notice":[],"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[24592,1001,12015,455,1016],"plugin_category":[41,42],"plugin_contributors":[274214],"plugin_business_model":[],"class_list":["post-372702","plugin","type-plugin","status-publish","hentry","plugin_tags-double-opt-in","plugin_tags-email-list","plugin_tags-email-subscription","plugin_tags-newsletter","plugin_tags-subscribers","plugin_category-communication","plugin_category-contact-forms","plugin_contributors-sadikozdogan","plugin_committers-sadikozdogan"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/ozd-newsletter-manager.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>OZD Newsletter Manager provides a self-hosted newsletter subscription workflow without requiring an external service. It includes an accessible two-step form, optional double opt-in, unsubscribe links, subscriber administration, automatic form placement, and portable backups.<\/p>\n\n<p>The plugin does not add analytics tracking or contact external services. Email delivery uses the standard WordPress <code>wp_mail()<\/code> function.<\/p>\n\n<h4>Main features<\/h4>\n\n<ul>\n<li>Accessible, responsive subscription form<\/li>\n<li>Shortcode: <code>[ozdebul_newsletter]<\/code><\/li>\n<li>Legacy widget support<\/li>\n<li>Theme-template function: <code>echo ozdebul_newsletter_form();<\/code><\/li>\n<li>Optional automatic placement after the header, before or after content, or in the footer<\/li>\n<li>Display scope for the front page, posts page, singular content, or the entire public site<\/li>\n<li>AJAX or standard form submission<\/li>\n<li>Optional full-name field<\/li>\n<li>Double opt-in and expiring confirmation links<\/li>\n<li>Unsubscribe links and optional welcome email<\/li>\n<li>Subscriber search, status filtering, pagination, individual actions, and bulk actions<\/li>\n<li>Complete JSON subscriber backups<\/li>\n<li>UTF-8 CSV import and export<\/li>\n<li>Import conflict handling: update existing subscribers or skip duplicates<\/li>\n<li>Rate limiting and a honeypot field<\/li>\n<li>WordPress personal data exporter, eraser, and suggested privacy-policy text<\/li>\n<li>Developer actions and filters<\/li>\n<li>English source plus Turkish, German, French, Spanish, Italian, and Russian translations<\/li>\n<\/ul>\n\n<h3>Developer API<\/h3>\n\n<p>The public PHP helper returns escaped template output:<\/p>\n\n<pre><code>ozdebul_newsletter_form( $args = array() )\n<\/code><\/pre>\n\n<p>Frequently used filters:<\/p>\n\n<ul>\n<li><code>ozdebul_ebulten_default_settings<\/code><\/li>\n<li><code>ozdebul_ebulten_settings<\/code><\/li>\n<li><code>ozdebul_ebulten_sanitized_settings<\/code><\/li>\n<li><code>ozdebul_ebulten_form_html<\/code><\/li>\n<li><code>ozdebul_ebulten_template_path<\/code><\/li>\n<li><code>ozdebul_ebulten_should_display_automatically<\/code><\/li>\n<li><code>ozdebul_ebulten_request_data<\/code><\/li>\n<li><code>ozdebul_ebulten_subscriber_data<\/code><\/li>\n<li><code>ozdebul_ebulten_subscribe_result<\/code><\/li>\n<li><code>ozdebul_ebulten_error_result<\/code><\/li>\n<li><code>ozdebul_ebulten_import_rows<\/code><\/li>\n<li><code>ozdebul_ebulten_import_subscriber_data<\/code><\/li>\n<li><code>ozdebul_ebulten_export_rows<\/code><\/li>\n<li><code>ozdebul_ebulten_export_payload<\/code><\/li>\n<li><code>ozdebul_ebulten_confirmation_mail<\/code><\/li>\n<li><code>ozdebul_ebulten_welcome_mail<\/code><\/li>\n<li><code>ozdebul_ebulten_admin_notification_mail<\/code><\/li>\n<li><code>ozdebul_ebulten_mail_headers<\/code><\/li>\n<li><code>ozdebul_ebulten_replace_tags<\/code><\/li>\n<li><code>ozdebul_ebulten_allowed_statuses<\/code><\/li>\n<li><code>ozdebul_ebulten_visitor_ip<\/code><\/li>\n<\/ul>\n\n<p>Frequently used actions:<\/p>\n\n<ul>\n<li><code>ozdebul_ebulten_loaded<\/code><\/li>\n<li><code>ozdebul_ebulten_before_handle_request<\/code><\/li>\n<li><code>ozdebul_ebulten_before_save_subscriber<\/code><\/li>\n<li><code>ozdebul_ebulten_after_save_subscriber<\/code><\/li>\n<li><code>ozdebul_ebulten_before_send_confirmation_mail<\/code><\/li>\n<li><code>ozdebul_ebulten_after_send_confirmation_mail<\/code><\/li>\n<li><code>ozdebul_ebulten_before_send_welcome_mail<\/code><\/li>\n<li><code>ozdebul_ebulten_after_send_welcome_mail<\/code><\/li>\n<li><code>ozdebul_ebulten_before_confirm_subscriber<\/code><\/li>\n<li><code>ozdebul_ebulten_after_confirm_subscriber<\/code><\/li>\n<li><code>ozdebul_ebulten_before_unsubscribe_subscriber<\/code><\/li>\n<li><code>ozdebul_ebulten_after_unsubscribe_subscriber<\/code><\/li>\n<li><code>ozdebul_ebulten_before_admin_change_status<\/code><\/li>\n<li><code>ozdebul_ebulten_after_admin_change_status<\/code><\/li>\n<li><code>ozdebul_ebulten_before_admin_delete_subscriber<\/code><\/li>\n<li><code>ozdebul_ebulten_after_admin_delete_subscriber<\/code><\/li>\n<li><code>ozdebul_ebulten_after_import_subscribers<\/code><\/li>\n<\/ul>\n\n<h3>Privacy<\/h3>\n\n<p>OZD Newsletter Manager stores subscriber data in a custom WordPress database table. It does not transmit subscriber information to the plugin author or any external service. Site owners are responsible for their consent text, privacy disclosures, retention period, email configuration, and applicable laws.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>ozd-newsletter-manager<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install the ZIP from Plugins &gt; Add New &gt; Upload Plugin.<\/li>\n<li>Activate OZD Newsletter Manager.<\/li>\n<li>Open OZD Newsletter &gt; Settings and review the form, confirmation, email, language, and placement settings.<\/li>\n<li>Add <code>[ozdebul_newsletter]<\/code> to a post or page, select an automatic placement, or use the widget\/PHP function.<\/li>\n<li>Test email delivery and the confirmation link before publishing the form.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20display%20the%20form%3F\"><h3>How do I display the form?<\/h3><\/dt>\n<dd><p>Use the <code>[ozdebul_newsletter]<\/code> shortcode. You may also select an automatic placement under OZD Newsletter &gt; Settings, use the widget, or call <code>echo ozdebul_newsletter_form();<\/code> in a theme template.<\/p><\/dd>\n<dt id=\"does%20automatic%20placement%20replace%20the%20shortcode%3F\"><h3>Does automatic placement replace the shortcode?<\/h3><\/dt>\n<dd><p>No. The shortcode, widget, and PHP function remain available regardless of the automatic placement setting.<\/p><\/dd>\n<dt id=\"does%20changing%20the%20plugin%20language%20overwrite%20my%20customized%20form%20or%20email%20text%3F\"><h3>Does changing the plugin language overwrite my customized form or email text?<\/h3><\/dt>\n<dd><p>No. User-edited text is preserved. To replace all editable messages with the defaults for the selected language, save the language, reload the settings page, and use Restore default settings. Subscriber records are not affected.<\/p><\/dd>\n<dt id=\"which%20backup%20format%20should%20i%20use%3F\"><h3>Which backup format should I use?<\/h3><\/dt>\n<dd><p>Use JSON for a complete backup that preserves all subscriber fields. Use CSV for spreadsheet editing or transfers to other tools. Both formats can be imported by the plugin when their field names are retained.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20an%20imported%20email%20address%20already%20exists%3F\"><h3>What happens when an imported email address already exists?<\/h3><\/dt>\n<dd><p>Before importing, choose whether to update the existing subscriber or skip the imported row. Email addresses are treated as unique identifiers.<\/p><\/dd>\n<dt id=\"is%20there%20an%20import%20size%20limit%3F\"><h3>Is there an import size limit?<\/h3><\/dt>\n<dd><p>One import may contain up to 10,000 rows and the uploaded CSV or JSON file must be no larger than 5 MB.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20send%20newsletters%3F\"><h3>Does the plugin send newsletters?<\/h3><\/dt>\n<dd><p>Version 1.0.0 manages subscriptions, confirmation messages, welcome messages, and subscriber backups. It does not include a bulk campaign composer or mass-mail delivery engine.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20use%20an%20external%20service%3F\"><h3>Does the plugin use an external service?<\/h3><\/dt>\n<dd><p>No. Subscriber information is stored in the site's WordPress database, and email is sent through WordPress <code>wp_mail()<\/code>.<\/p><\/dd>\n<dt id=\"what%20personal%20data%20is%20stored%3F\"><h3>What personal data is stored?<\/h3><\/dt>\n<dd><p>Depending on the submitted form and settings, the plugin stores name, email address, consent status and version, subscription status, source URL, IP address, browser user agent, confirmation data, and timestamps. WordPress privacy export and erasure tools are supported.<\/p><\/dd>\n<dt id=\"are%20subscriber%20records%20removed%20when%20i%20delete%20the%20plugin%3F\"><h3>Are subscriber records removed when I delete the plugin?<\/h3><\/dt>\n<dd><p>Not by default. Enable uninstall cleanup in Settings if the subscriber table and plugin settings should be removed when the plugin is deleted.<\/p><\/dd>\n<dt id=\"can%20a%20theme%20override%20the%20form%20template%3F\"><h3>Can a theme override the form template?<\/h3><\/dt>\n<dd><p>Yes. Copy <code>templates\/form.php<\/code> to <code>your-theme\/ozd-newsletter-manager\/form.php<\/code>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial WordPress.org release.<\/li>\n<li>Added accessible subscription forms, AJAX and standard submission, double opt-in, unsubscribe links, and welcome messages.<\/li>\n<li>Added subscriber search, filters, individual actions, bulk actions, and status management.<\/li>\n<li>Added complete JSON backups and secure UTF-8 CSV import\/export with duplicate handling.<\/li>\n<li>Added automatic theme placement, shortcodes, widget support, and a theme PHP helper.<\/li>\n<li>Added WordPress privacy tools and seven-language support.<\/li>\n<\/ul>","raw_excerpt":"Create accessible newsletter forms, manage subscribers, use double opt-in, and back up subscriber data as CSV or JSON.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/372702","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=372702"}],"author":[{"embeddable":true,"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/sadikozdogan"}],"wp:attachment":[{"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=372702"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=372702"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=372702"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=372702"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=372702"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=372702"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}