{"id":283599,"date":"2026-04-09T16:42:59","date_gmt":"2026-04-09T16:42:59","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/rds-newsletter\/"},"modified":"2026-04-09T16:56:08","modified_gmt":"2026-04-09T16:56:08","slug":"rds-newsletter","status":"publish","type":"plugin","link":"https:\/\/cn.wordpress.org\/plugins\/rds-newsletter\/","author":454333,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.3.0","stable_tag":"1.4.0","tested":"6.9.4","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"RDS Newsletter","header_author":"Rockbridge Digital Services","header_description":"A self-hosted email newsletter plugin for WordPress with subscriber management, batch sending, open and click tracking, and bounce processing.","assets_banners_color":"","last_updated":"2026-04-09 16:56:08","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/rockbridgedigital.com\/plugins","header_author_uri":"https:\/\/rockbridgedigital.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":212,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","changelog"],"tags":{"1.4.0":{"tag":"1.4.0","author":"valpd","date":"2026-04-09 16:56:08"}},"upgrade_notice":[],"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.4.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[267,5825,455,1016],"plugin_category":[41,42],"plugin_contributors":[259839],"plugin_business_model":[],"class_list":["post-283599","plugin","type-plugin","status-publish","hentry","plugin_tags-email","plugin_tags-mailing-list","plugin_tags-newsletter","plugin_tags-subscribers","plugin_category-communication","plugin_category-contact-forms","plugin_contributors-valpd","plugin_committers-valpd"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/rds-newsletter.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>RDS Newsletter is a straightforward email newsletter plugin that does not overcomplicate things.<\/p>\n\n<p><strong>Features:<\/strong>\n* Import subscribers via CSV or plain text (one email per line)\n* Paste raw HTML as your email content\n* Optional templates (Basic and Modern included)\n* Batch sending with configurable limits (default 500 per hour)\n* Subscriber groups for targeted sends\n* Double opt-in with confirmation emails\n* Open and click tracking with reports\n* Automatic unsubscribe links in every email\n* Bounce detection with auto-delete via IMAP\n* IP address and timestamp logging for compliance\n* Signup and unsubscribe shortcodes\n* Send test emails before sending to your list\n* Schedule newsletters for later\n* Duplicate newsletters\n* Export subscribers as CSV<\/p>\n\n<h3>Shortcodes<\/h3>\n\n<p><strong>Signup form:<\/strong>\n    [rdsnl_signup]<\/p>\n\n<p>Optional attributes:\n* <code>title=\"Subscribe to our newsletter\"<\/code>\n* <code>button_text=\"Subscribe\"<\/code>\n* <code>group=\"3\"<\/code> (group ID to auto-assign)<\/p>\n\n<p><strong>Unsubscribe form:<\/strong>\n    [rdsnl_unsubscribe]<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>rds-newsletter<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate via Plugins menu<\/li>\n<li>Go to Newsletter &gt; Settings to configure your company name and batch limits<\/li>\n<li>Import your subscribers via Newsletter &gt; Import<\/li>\n<li>Compose and send via Newsletter &gt; Compose<\/li>\n<\/ol>\n\n<!--section=changelog-->\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Changed plugin prefix from 'rds' (3 chars) to 'rdsnl' (5 chars) across all classes, functions, constants, options, hooks, shortcodes, script handles, and CSS classes to meet WordPress.org 4+ character prefix requirement<\/li>\n<li>Applied wp_kses_post() sanitization to HTML newsletter content at point of input<\/li>\n<li>Replaced direct SQL column interpolation with wpdb %i identifier placeholders in ORDER BY clauses and UPDATE field references<\/li>\n<li>Improved nonce verification comments for email-based URLs (confirm, unsubscribe, tracking) that cannot use nonces<\/li>\n<li>Bumped minimum WordPress version to 6.2 (required for %i identifier placeholder support)<\/li>\n<li>Shortcodes renamed: [rdsnl_signup] and [rdsnl_unsubscribe]<\/li>\n<li>Database table prefix changed from rds_nl_ to rdsnl_ (deactivate and reactivate plugin to recreate tables)<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Added nonce verification to all admin actions including newsletter duplication<\/li>\n<li>Added explicit permission checks (current_user_can) to all data-modifying handlers<\/li>\n<li>Moved all inline JavaScript to properly enqueued external files<\/li>\n<li>Moved all inline CSS to properly enqueued external stylesheets<\/li>\n<li>Added public.js and public.css for frontend form handling<\/li>\n<li>Moved settings page IMAP\/bounce scripts into admin.js<\/li>\n<li>Template data now passed via wp_add_inline_script instead of inline script tag<\/li>\n<li>Standalone public pages now use wp_print_styles and wp_print_scripts<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>WordPress coding standards compliance<\/li>\n<li>Improved input sanitization and output escaping<\/li>\n<li>Updated for WordPress 6.9 compatibility<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"A self-hosted email newsletter plugin for WordPress with subscriber management, batch sending, open and click tracking, and bounce processing.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/283599","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=283599"}],"author":[{"embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/valpd"}],"wp:attachment":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=283599"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=283599"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=283599"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=283599"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=283599"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=283599"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}