This commit is contained in:
Javier Casares 2026-08-18 11:29:29 +00:00
commit d9bbfb055b
8 changed files with 422 additions and 250 deletions

View file

@ -1,5 +1,38 @@
== Changelog == == Changelog ==
= 2.0.3 =
_Release date: 2026-08-18_
**Highlights**
* Housekeeping release: branding URLs moved to robotstxt.software and declared WordPress support floor set to 4.7.
**Changed**
* Minimum WordPress version raised from 3.6 to 4.7 (real functional floor: register_setting() with array arguments requires WordPress 4.7; symbol-wise floor is 3.6 — wp_unslash — but sanitization on save only works from 4.7).
* Developer URL updated to https://www.robotstxt.software/ and plugin home page added (https://www.robotstxt.software/plugins/replyto/).
* Full changelog now hosted at https://www.robotstxt.software/plugins/replyto/changelog/.
* Development tooling updated via composer update (PHPCS 3.13.6, WPCS 3.4.1, PHPStan 2.2.8, PHPUnit 9.6.36).
**Added**
* bin/preflight.sh automated pre-deploy verification script (PHPCS, PHPStan, PHPCompatibility, PHPUnit, composer audit, candidate ZIP inspection).
* WordPress floor verification (wp-compat) integrated into PHPStan analysis; declared minimum now verified on every run.
* PHPUnit suite expanded from 27 to 78 tests (95.5% line coverage): wp_mail filter routing, context detection, migration, sanitization, admin rendering, uninstall cleanup.
**Compatibility**
* WordPress: 4.7 - 7.1
* PHP: 5.6 - 8.5
**Tests**
* PHP Coding Standards: 3.13.6
* WordPress Coding Standards: 3.4.1
* PHPStan: 2.2.8 (level 9)
* PHPUnit: 9.6.36
= 2.0.2 = = 2.0.2 =
_Release date: 2026-06-05_ _Release date: 2026-06-05_

Binary file not shown.

View file

@ -3,9 +3,9 @@
# This file is distributed under the GPL-3.0-or-later. # This file is distributed under the GPL-3.0-or-later.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Reply-To for WP_Mail 2.0.2\n" "Project-Id-Version: Reply-To for WP_Mail 2.0.3\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/replyto\n" "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/replyto\n"
"POT-Creation-Date: 2026-06-05T11:22:01+00:00\n" "POT-Creation-Date: 2026-08-18T11:23:15+00:00\n"
"PO-Revision-Date: 2026-06-05 12:00+0100\n" "PO-Revision-Date: 2026-06-05 12:00+0100\n"
"Last-Translator: Javier Casares <javier@robotstxt.es>\n" "Last-Translator: Javier Casares <javier@robotstxt.es>\n"
"Language-Team: Catalan <ca@li.org>\n" "Language-Team: Catalan <ca@li.org>\n"
@ -22,10 +22,19 @@ msgstr ""
msgid "Reply-To for WP_Mail" msgid "Reply-To for WP_Mail"
msgstr "Respon-A per a WP_Mail" msgstr "Respon-A per a WP_Mail"
#. Plugin URI of the plugin
#: replyto.php
msgid "https://www.robotstxt.software/plugins/replyto/"
msgstr "https://www.robotstxt.software/plugins/replyto/"
#. Description of the plugin #. Description of the plugin
#: replyto.php #: replyto.php
msgid "Configure your \"Reply-To:\" for WP_Mail with validation, admin settings, and context-based routing." msgid ""
msgstr "Configureu el vostre «Respon-A:» per a WP_Mail amb validació, opcions d'administració i enrutament per context." "Configure your \"Reply-To:\" for WP_Mail with validation, admin settings, "
"and context-based routing."
msgstr ""
"Configureu el vostre «Respon-A:» per a WP_Mail amb validació, opcions "
"d'administració i enrutament per context."
#. Author of the plugin #. Author of the plugin
#: replyto.php #: replyto.php
@ -34,182 +43,235 @@ msgstr "ROBOTSTXT"
#. Author URI of the plugin #. Author URI of the plugin
#: replyto.php #: replyto.php
msgid "https://www.robotstxt.es/" msgid "https://www.robotstxt.software/"
msgstr "https://www.robotstxt.es/" msgstr "https://www.robotstxt.software/"
#: replyto.php:391 #: replyto.php:394
msgid "WP Mail Reply-To Settings" msgid "WP Mail Reply-To Settings"
msgstr "Configuració de Respon-A per a WP Mail" msgstr "Configuració de Respon-A per a WP Mail"
#: replyto.php:392 #: replyto.php:395
msgid "Reply-To" msgid "Reply-To"
msgstr "Respon-A" msgstr "Respon-A"
#: replyto.php:492 #: replyto.php:495 replyto.php:709
#: replyto.php:706
msgid "Default" msgid "Default"
msgstr "Predeterminat" msgstr "Predeterminat"
#: replyto.php:493 #: replyto.php:496
msgid "Authentication" msgid "Authentication"
msgstr "Autenticació" msgstr "Autenticació"
#: replyto.php:494 #: replyto.php:497
msgid "Comments" msgid "Comments"
msgstr "Comentaris" msgstr "Comentaris"
#: replyto.php:495 #: replyto.php:498
msgid "Users" msgid "Users"
msgstr "Usuaris" msgstr "Usuaris"
#: replyto.php:496 #: replyto.php:499
msgid "System" msgid "System"
msgstr "Sistema" msgstr "Sistema"
#: replyto.php:501 #: replyto.php:504 replyto.php:738
#: replyto.php:735
msgid "WooCommerce" msgid "WooCommerce"
msgstr "WooCommerce" msgstr "WooCommerce"
#. translators: %s: context name #. translators: %s: context name
#: replyto.php:526 #: replyto.php:529
#, php-format #, php-format
msgid "Invalid email address for %s context." msgid "Invalid email address for %s context."
msgstr "Adreça de correu no vàlida per al context %s." msgstr "Adreça de correu no vàlida per al context %s."
#. translators: %s: context name #. translators: %s: context name
#: replyto.php:542 #: replyto.php:545
#, php-format #, php-format
msgid "Warning: The email domain for %s context does not appear to have valid DNS records." msgid ""
msgstr "Avís: el domini de correu del context %s no sembla tenir registres DNS vàlids." "Warning: The email domain for %s context does not appear to have valid DNS "
"records."
msgstr ""
"Avís: el domini de correu del context %s no sembla tenir registres DNS "
"vàlids."
#. translators: %s: context name #. translators: %s: context name
#: replyto.php:557 #: replyto.php:560 replyto.php:570
#: replyto.php:567
#, php-format #, php-format
msgid "Name for %s context was truncated to 255 characters." msgid "Name for %s context was truncated to 255 characters."
msgstr "El nom del context %s s'ha truncat a 255 caràcters." msgstr "El nom del context %s s'ha truncat a 255 caràcters."
#: replyto.php:608 #: replyto.php:611
msgid "Reply-To configuration updated successfully." msgid "Reply-To configuration updated successfully."
msgstr "La configuració de Respon-A s'ha actualitzat correctament." msgstr "La configuració de Respon-A s'ha actualitzat correctament."
#: replyto.php:707 #: replyto.php:710
msgid "Default Reply-To used for all emails that do not match a specific context. This is the fallback when other contexts are not configured." msgid ""
msgstr "Respon-A predeterminat per a tots els correus que no coincideixin amb cap context específic. És l'opció de reserva quan altres contextos no estan configurats." "Default Reply-To used for all emails that do not match a specific context. "
"This is the fallback when other contexts are not configured."
#: replyto.php:708 msgstr ""
msgid "Newsletter confirmations, general notifications, and any emails not covered by other contexts." "Respon-A predeterminat per a tots els correus que no coincideixin amb cap "
msgstr "Confirmacions de butlletins, notificacions generals i qualsevol correu no cobert per altres contextos." "context específic. És l'opció de reserva quan altres contextos no estan "
"configurats."
#: replyto.php:711 #: replyto.php:711
msgid ""
"Newsletter confirmations, general notifications, and any emails not covered "
"by other contexts."
msgstr ""
"Confirmacions de butlletins, notificacions generals i qualsevol correu no "
"cobert per altres contextos."
#: replyto.php:714
msgid "Authentication & Security" msgid "Authentication & Security"
msgstr "Autenticació i seguretat" msgstr "Autenticació i seguretat"
#: replyto.php:712 #: replyto.php:715
msgid "Reply-To for password resets, password changes, and email address changes." msgid ""
msgstr "Respon-A per a restabliments de contrasenya, canvis de contrasenya i canvis de l'adreça de correu." "Reply-To for password resets, password changes, and email address changes."
msgstr ""
#: replyto.php:713 "Respon-A per a restabliments de contrasenya, canvis de contrasenya i canvis "
msgid "Password reset requests, password change confirmations, email address verifications." "de l'adreça de correu."
msgstr "Sol·licituds de restabliment de contrasenya, confirmacions de canvi de contrasenya, verificacions de l'adreça de correu."
#: replyto.php:716 #: replyto.php:716
msgid ""
"Password reset requests, password change confirmations, email address "
"verifications."
msgstr ""
"Sol·licituds de restabliment de contrasenya, confirmacions de canvi de "
"contrasenya, verificacions de l'adreça de correu."
#: replyto.php:719
msgid "Comments & Moderation" msgid "Comments & Moderation"
msgstr "Comentaris i moderació" msgstr "Comentaris i moderació"
#: replyto.php:717 #: replyto.php:720
msgid "Reply-To for comment notifications and moderation alerts." msgid "Reply-To for comment notifications and moderation alerts."
msgstr "Respon-A per a notificacions de comentaris i alertes de moderació." msgstr "Respon-A per a notificacions de comentaris i alertes de moderació."
#: replyto.php:718
msgid "New comment notifications, comment moderation alerts, comment replies."
msgstr "Notificacions de nous comentaris, alertes de moderació de comentaris, respostes a comentaris."
#: replyto.php:721 #: replyto.php:721
msgid "New comment notifications, comment moderation alerts, comment replies."
msgstr ""
"Notificacions de nous comentaris, alertes de moderació de comentaris, "
"respostes a comentaris."
#: replyto.php:724
msgid "Users & Registration" msgid "Users & Registration"
msgstr "Usuaris i registre" msgstr "Usuaris i registre"
#: replyto.php:722 #: replyto.php:725
msgid "Reply-To for new user registrations, role changes, and user management emails." msgid ""
msgstr "Respon-A per a registres de nous usuaris, canvis de rol i correus de gestió d'usuaris." "Reply-To for new user registrations, role changes, and user management "
"emails."
#: replyto.php:723 msgstr ""
msgid "New user welcome emails, user role changes, account activations." "Respon-A per a registres de nous usuaris, canvis de rol i correus de gestió "
msgstr "Correus de benvinguda a nous usuaris, canvis de rol d'usuari, activacions de compte." "d'usuaris."
#: replyto.php:726 #: replyto.php:726
msgid "New user welcome emails, user role changes, account activations."
msgstr ""
"Correus de benvinguda a nous usuaris, canvis de rol d'usuari, activacions de "
"compte."
#: replyto.php:729
msgid "System & Updates" msgid "System & Updates"
msgstr "Sistema i actualitzacions" msgstr "Sistema i actualitzacions"
#: replyto.php:727 #: replyto.php:730
msgid "Reply-To for automatic updates, system alerts, and critical site health notifications." msgid ""
msgstr "Respon-A per a actualitzacions automàtiques, alertes del sistema i notificacions crítiques de salut del lloc." "Reply-To for automatic updates, system alerts, and critical site health "
"notifications."
msgstr ""
"Respon-A per a actualitzacions automàtiques, alertes del sistema i "
"notificacions crítiques de salut del lloc."
#: replyto.php:728 #: replyto.php:731
msgid "WordPress core updates, plugin updates, theme updates, recovery mode, fatal error notifications." msgid ""
msgstr "Actualitzacions del nucli de WordPress, actualitzacions de connectors, actualitzacions de temes, mode de recuperació, notificacions d'errors fatals." "WordPress core updates, plugin updates, theme updates, recovery mode, fatal "
"error notifications."
msgstr ""
"Actualitzacions del nucli de WordPress, actualitzacions de connectors, "
"actualitzacions de temes, mode de recuperació, notificacions d'errors fatals."
#: replyto.php:736 #: replyto.php:739
msgid "Reply-To for WooCommerce order notifications, invoices, and customer communications." msgid ""
msgstr "Respon-A per a notificacions de comandes de WooCommerce, factures i comunicacions amb clients." "Reply-To for WooCommerce order notifications, invoices, and customer "
"communications."
msgstr ""
"Respon-A per a notificacions de comandes de WooCommerce, factures i "
"comunicacions amb clients."
#: replyto.php:737 #: replyto.php:740
msgid "Order confirmations, shipping notifications, invoices, customer notes." msgid "Order confirmations, shipping notifications, invoices, customer notes."
msgstr "Confirmacions de comandes, notificacions d'enviament, factures, notes del client." msgstr ""
"Confirmacions de comandes, notificacions d'enviament, factures, notes del "
"client."
#: replyto.php:751 #: replyto.php:754
msgid "Configure different Reply-To addresses based on the type of email being sent. Each context can have its own email address and display name." msgid ""
msgstr "Configureu adreces de resposta diferents en funció del tipus de correu enviat. Cada context pot tenir la seva pròpia adreça de correu electrònic i nom." "Configure different Reply-To addresses based on the type of email being "
"sent. Each context can have its own email address and display name."
msgstr ""
"Configureu adreces de resposta diferents en funció del tipus de correu "
"enviat. Cada context pot tenir la seva pròpia adreça de correu electrònic i "
"nom."
#: replyto.php:789 #: replyto.php:792
msgid "Active with email configured" msgid "Active with email configured"
msgstr "Actiu amb correu configurat" msgstr "Actiu amb correu configurat"
#: replyto.php:790 #: replyto.php:793
msgid "Inactive or no email configured" msgid "Inactive or no email configured"
msgstr "Inactiu o sense correu configurat" msgstr "Inactiu o sense correu configurat"
#: replyto.php:806 #: replyto.php:809
msgid "What this context covers:" msgid "What this context covers:"
msgstr "Què cobreix aquest context:" msgstr "Què cobreix aquest context:"
#: replyto.php:808 #: replyto.php:811
msgid "Examples:" msgid "Examples:"
msgstr "Exemples:" msgstr "Exemples:"
#: replyto.php:819 #: replyto.php:822
msgid "Enable this context" msgid "Enable this context"
msgstr "Activar aquest context" msgstr "Activar aquest context"
#: replyto.php:822 #: replyto.php:825
msgid "When disabled, emails in this context will use the Default Reply-To address." msgid ""
msgstr "Quan està desactivat, els correus d'aquest context usaran l'adreça de Respon-A predeterminada." "When disabled, emails in this context will use the Default Reply-To address."
msgstr ""
"Quan està desactivat, els correus d'aquest context usaran l'adreça de Respon-"
"A predeterminada."
#: replyto.php:832 #: replyto.php:835
msgid "Reply-To Email Address" msgid "Reply-To Email Address"
msgstr "Adreça de correu de resposta" msgstr "Adreça de correu de resposta"
#: replyto.php:842 #: replyto.php:845
msgid "Enter the email address where replies should be sent." msgid "Enter the email address where replies should be sent."
msgstr "Introduïu l'adreça de correu a la qual s'enviaran les respostes." msgstr "Introduïu l'adreça de correu a la qual s'enviaran les respostes."
#: replyto.php:849 #: replyto.php:852
msgid "Reply-To Display Name (Optional)" msgid "Reply-To Display Name (Optional)"
msgstr "Nom de visualització de resposta (opcional)" msgstr "Nom de visualització de resposta (opcional)"
#: replyto.php:859 #: replyto.php:862
msgid "Optional: Enter a name to display with the email (e.g., \"Support Team\")." msgid ""
msgstr "Opcional: introduïu un nom per mostrar amb el correu (p.&nbsp;ex., «Equip de suport»)." "Optional: Enter a name to display with the email (e.g., \"Support Team\")."
msgstr ""
"Opcional: introduïu un nom per mostrar amb el correu (p.&nbsp;ex., «Equip de "
"suport»)."
#: replyto.php:868 #: replyto.php:871
msgid "Note:" msgid "Note:"
msgstr "Nota:" msgstr "Nota:"
#: replyto.php:869 #: replyto.php:872
msgid "The Default context is always active and acts as a fallback for all emails." msgid ""
msgstr "El context predeterminat sempre està actiu i actua com a reserva per a tots els correus." "The Default context is always active and acts as a fallback for all emails."
msgstr ""
"El context predeterminat sempre està actiu i actua com a reserva per a tots "
"els correus."
#: replyto.php:895 #: replyto.php:898
msgid "Save Settings" msgid "Save Settings"
msgstr "Desa la configuració" msgstr "Desa la configuració"

Binary file not shown.

View file

@ -3,9 +3,9 @@
# This file is distributed under the GPL-3.0-or-later. # This file is distributed under the GPL-3.0-or-later.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Reply-To for WP_Mail 2.0.2\n" "Project-Id-Version: Reply-To for WP_Mail 2.0.3\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/replyto\n" "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/replyto\n"
"POT-Creation-Date: 2026-06-05T11:22:01+00:00\n" "POT-Creation-Date: 2026-08-18T11:23:15+00:00\n"
"PO-Revision-Date: 2026-06-05 12:00+0100\n" "PO-Revision-Date: 2026-06-05 12:00+0100\n"
"Last-Translator: Javier Casares <javier@robotstxt.es>\n" "Last-Translator: Javier Casares <javier@robotstxt.es>\n"
"Language-Team: Spanish (Spain) <es@li.org>\n" "Language-Team: Spanish (Spain) <es@li.org>\n"
@ -22,10 +22,19 @@ msgstr ""
msgid "Reply-To for WP_Mail" msgid "Reply-To for WP_Mail"
msgstr "Responder a para WP_Mail" msgstr "Responder a para WP_Mail"
#. Plugin URI of the plugin
#: replyto.php
msgid "https://www.robotstxt.software/plugins/replyto/"
msgstr "https://www.robotstxt.software/plugins/replyto/"
#. Description of the plugin #. Description of the plugin
#: replyto.php #: replyto.php
msgid "Configure your \"Reply-To:\" for WP_Mail with validation, admin settings, and context-based routing." msgid ""
msgstr "Configure su «Responder a:» para WP_Mail con validación, ajustes de administración y enrutamiento por contexto." "Configure your \"Reply-To:\" for WP_Mail with validation, admin settings, "
"and context-based routing."
msgstr ""
"Configure su «Responder a:» para WP_Mail con validación, ajustes de "
"administración y enrutamiento por contexto."
#. Author of the plugin #. Author of the plugin
#: replyto.php #: replyto.php
@ -34,182 +43,237 @@ msgstr "ROBOTSTXT"
#. Author URI of the plugin #. Author URI of the plugin
#: replyto.php #: replyto.php
msgid "https://www.robotstxt.es/" msgid "https://www.robotstxt.software/"
msgstr "https://www.robotstxt.es/" msgstr "https://www.robotstxt.software/"
#: replyto.php:391 #: replyto.php:394
msgid "WP Mail Reply-To Settings" msgid "WP Mail Reply-To Settings"
msgstr "Ajustes de Responder a para WP Mail" msgstr "Ajustes de Responder a para WP Mail"
#: replyto.php:392 #: replyto.php:395
msgid "Reply-To" msgid "Reply-To"
msgstr "Responder a" msgstr "Responder a"
#: replyto.php:492 #: replyto.php:495 replyto.php:709
#: replyto.php:706
msgid "Default" msgid "Default"
msgstr "Predeterminado" msgstr "Predeterminado"
#: replyto.php:493 #: replyto.php:496
msgid "Authentication" msgid "Authentication"
msgstr "Autenticación" msgstr "Autenticación"
#: replyto.php:494 #: replyto.php:497
msgid "Comments" msgid "Comments"
msgstr "Comentarios" msgstr "Comentarios"
#: replyto.php:495 #: replyto.php:498
msgid "Users" msgid "Users"
msgstr "Usuarios" msgstr "Usuarios"
#: replyto.php:496 #: replyto.php:499
msgid "System" msgid "System"
msgstr "Sistema" msgstr "Sistema"
#: replyto.php:501 #: replyto.php:504 replyto.php:738
#: replyto.php:735
msgid "WooCommerce" msgid "WooCommerce"
msgstr "WooCommerce" msgstr "WooCommerce"
#. translators: %s: context name #. translators: %s: context name
#: replyto.php:526 #: replyto.php:529
#, php-format #, php-format
msgid "Invalid email address for %s context." msgid "Invalid email address for %s context."
msgstr "Dirección de correo no válida para el contexto %s." msgstr "Dirección de correo no válida para el contexto %s."
#. translators: %s: context name #. translators: %s: context name
#: replyto.php:542 #: replyto.php:545
#, php-format #, php-format
msgid "Warning: The email domain for %s context does not appear to have valid DNS records." msgid ""
msgstr "Aviso: el dominio de correo del contexto %s no parece tener registros DNS válidos." "Warning: The email domain for %s context does not appear to have valid DNS "
"records."
msgstr ""
"Aviso: el dominio de correo del contexto %s no parece tener registros DNS "
"válidos."
#. translators: %s: context name #. translators: %s: context name
#: replyto.php:557 #: replyto.php:560 replyto.php:570
#: replyto.php:567
#, php-format #, php-format
msgid "Name for %s context was truncated to 255 characters." msgid "Name for %s context was truncated to 255 characters."
msgstr "El nombre del contexto %s se ha truncado a 255 caracteres." msgstr "El nombre del contexto %s se ha truncado a 255 caracteres."
#: replyto.php:608 #: replyto.php:611
msgid "Reply-To configuration updated successfully." msgid "Reply-To configuration updated successfully."
msgstr "La configuración de Responder a se ha actualizado correctamente." msgstr "La configuración de Responder a se ha actualizado correctamente."
#: replyto.php:707 #: replyto.php:710
msgid "Default Reply-To used for all emails that do not match a specific context. This is the fallback when other contexts are not configured." msgid ""
msgstr "Responder a predeterminado para todos los correos que no coincidan con un contexto específico. Es la opción alternativa cuando otros contextos no están configurados." "Default Reply-To used for all emails that do not match a specific context. "
"This is the fallback when other contexts are not configured."
#: replyto.php:708 msgstr ""
msgid "Newsletter confirmations, general notifications, and any emails not covered by other contexts." "Responder a predeterminado para todos los correos que no coincidan con un "
msgstr "Confirmaciones de boletines, notificaciones generales y cualquier correo no cubierto por otros contextos." "contexto específico. Es la opción alternativa cuando otros contextos no "
"están configurados."
#: replyto.php:711 #: replyto.php:711
msgid ""
"Newsletter confirmations, general notifications, and any emails not covered "
"by other contexts."
msgstr ""
"Confirmaciones de boletines, notificaciones generales y cualquier correo no "
"cubierto por otros contextos."
#: replyto.php:714
msgid "Authentication & Security" msgid "Authentication & Security"
msgstr "Autenticación y seguridad" msgstr "Autenticación y seguridad"
#: replyto.php:712 #: replyto.php:715
msgid "Reply-To for password resets, password changes, and email address changes." msgid ""
msgstr "Responder a para restablecimientos de contraseña, cambios de contraseña y cambios de dirección de correo." "Reply-To for password resets, password changes, and email address changes."
msgstr ""
#: replyto.php:713 "Responder a para restablecimientos de contraseña, cambios de contraseña y "
msgid "Password reset requests, password change confirmations, email address verifications." "cambios de dirección de correo."
msgstr "Solicitudes de restablecimiento de contraseña, confirmaciones de cambio de contraseña, verificaciones de dirección de correo."
#: replyto.php:716 #: replyto.php:716
msgid ""
"Password reset requests, password change confirmations, email address "
"verifications."
msgstr ""
"Solicitudes de restablecimiento de contraseña, confirmaciones de cambio de "
"contraseña, verificaciones de dirección de correo."
#: replyto.php:719
msgid "Comments & Moderation" msgid "Comments & Moderation"
msgstr "Comentarios y moderación" msgstr "Comentarios y moderación"
#: replyto.php:717 #: replyto.php:720
msgid "Reply-To for comment notifications and moderation alerts." msgid "Reply-To for comment notifications and moderation alerts."
msgstr "Responder a para notificaciones de comentarios y alertas de moderación." msgstr ""
"Responder a para notificaciones de comentarios y alertas de moderación."
#: replyto.php:718
msgid "New comment notifications, comment moderation alerts, comment replies."
msgstr "Notificaciones de nuevos comentarios, alertas de moderación de comentarios, respuestas a comentarios."
#: replyto.php:721 #: replyto.php:721
msgid "New comment notifications, comment moderation alerts, comment replies."
msgstr ""
"Notificaciones de nuevos comentarios, alertas de moderación de comentarios, "
"respuestas a comentarios."
#: replyto.php:724
msgid "Users & Registration" msgid "Users & Registration"
msgstr "Usuarios y registro" msgstr "Usuarios y registro"
#: replyto.php:722 #: replyto.php:725
msgid "Reply-To for new user registrations, role changes, and user management emails." msgid ""
msgstr "Responder a para registros de nuevos usuarios, cambios de rol y correos de gestión de usuarios." "Reply-To for new user registrations, role changes, and user management "
"emails."
#: replyto.php:723 msgstr ""
msgid "New user welcome emails, user role changes, account activations." "Responder a para registros de nuevos usuarios, cambios de rol y correos de "
msgstr "Correos de bienvenida a nuevos usuarios, cambios de rol de usuario, activaciones de cuenta." "gestión de usuarios."
#: replyto.php:726 #: replyto.php:726
msgid "New user welcome emails, user role changes, account activations."
msgstr ""
"Correos de bienvenida a nuevos usuarios, cambios de rol de usuario, "
"activaciones de cuenta."
#: replyto.php:729
msgid "System & Updates" msgid "System & Updates"
msgstr "Sistema y actualizaciones" msgstr "Sistema y actualizaciones"
#: replyto.php:727 #: replyto.php:730
msgid "Reply-To for automatic updates, system alerts, and critical site health notifications." msgid ""
msgstr "Responder a para actualizaciones automáticas, alertas del sistema y notificaciones críticas de estado del sitio." "Reply-To for automatic updates, system alerts, and critical site health "
"notifications."
msgstr ""
"Responder a para actualizaciones automáticas, alertas del sistema y "
"notificaciones críticas de estado del sitio."
#: replyto.php:728 #: replyto.php:731
msgid "WordPress core updates, plugin updates, theme updates, recovery mode, fatal error notifications." msgid ""
msgstr "Actualizaciones del núcleo de WordPress, actualizaciones de plugins, actualizaciones de temas, modo de recuperación, notificaciones de errores fatales." "WordPress core updates, plugin updates, theme updates, recovery mode, fatal "
"error notifications."
msgstr ""
"Actualizaciones del núcleo de WordPress, actualizaciones de plugins, "
"actualizaciones de temas, modo de recuperación, notificaciones de errores "
"fatales."
#: replyto.php:736 #: replyto.php:739
msgid "Reply-To for WooCommerce order notifications, invoices, and customer communications." msgid ""
msgstr "Responder a para notificaciones de pedidos de WooCommerce, facturas y comunicaciones con clientes." "Reply-To for WooCommerce order notifications, invoices, and customer "
"communications."
msgstr ""
"Responder a para notificaciones de pedidos de WooCommerce, facturas y "
"comunicaciones con clientes."
#: replyto.php:737 #: replyto.php:740
msgid "Order confirmations, shipping notifications, invoices, customer notes." msgid "Order confirmations, shipping notifications, invoices, customer notes."
msgstr "Confirmaciones de pedidos, notificaciones de envío, facturas, notas del cliente." msgstr ""
"Confirmaciones de pedidos, notificaciones de envío, facturas, notas del "
"cliente."
#: replyto.php:751 #: replyto.php:754
msgid "Configure different Reply-To addresses based on the type of email being sent. Each context can have its own email address and display name." msgid ""
msgstr "Configure diferentes direcciones de respuesta según el tipo de correo enviado. Cada contexto puede tener su propia dirección de correo electrónico y nombre." "Configure different Reply-To addresses based on the type of email being "
"sent. Each context can have its own email address and display name."
msgstr ""
"Configure diferentes direcciones de respuesta según el tipo de correo "
"enviado. Cada contexto puede tener su propia dirección de correo electrónico "
"y nombre."
#: replyto.php:789 #: replyto.php:792
msgid "Active with email configured" msgid "Active with email configured"
msgstr "Activo con correo configurado" msgstr "Activo con correo configurado"
#: replyto.php:790 #: replyto.php:793
msgid "Inactive or no email configured" msgid "Inactive or no email configured"
msgstr "Inactivo o sin correo configurado" msgstr "Inactivo o sin correo configurado"
#: replyto.php:806 #: replyto.php:809
msgid "What this context covers:" msgid "What this context covers:"
msgstr "Qué cubre este contexto:" msgstr "Qué cubre este contexto:"
#: replyto.php:808 #: replyto.php:811
msgid "Examples:" msgid "Examples:"
msgstr "Ejemplos:" msgstr "Ejemplos:"
#: replyto.php:819 #: replyto.php:822
msgid "Enable this context" msgid "Enable this context"
msgstr "Activar este contexto" msgstr "Activar este contexto"
#: replyto.php:822 #: replyto.php:825
msgid "When disabled, emails in this context will use the Default Reply-To address." msgid ""
msgstr "Cuando está desactivado, los correos de este contexto usarán la dirección de Responder a predeterminada." "When disabled, emails in this context will use the Default Reply-To address."
msgstr ""
"Cuando está desactivado, los correos de este contexto usarán la dirección de "
"Responder a predeterminada."
#: replyto.php:832 #: replyto.php:835
msgid "Reply-To Email Address" msgid "Reply-To Email Address"
msgstr "Dirección de correo de respuesta" msgstr "Dirección de correo de respuesta"
#: replyto.php:842 #: replyto.php:845
msgid "Enter the email address where replies should be sent." msgid "Enter the email address where replies should be sent."
msgstr "Introduzca la dirección de correo a la que se enviarán las respuestas." msgstr "Introduzca la dirección de correo a la que se enviarán las respuestas."
#: replyto.php:849 #: replyto.php:852
msgid "Reply-To Display Name (Optional)" msgid "Reply-To Display Name (Optional)"
msgstr "Nombre para mostrar de respuesta (opcional)" msgstr "Nombre para mostrar de respuesta (opcional)"
#: replyto.php:859 #: replyto.php:862
msgid "Optional: Enter a name to display with the email (e.g., \"Support Team\")." msgid ""
msgstr "Opcional: introduzca un nombre para mostrar junto al correo (p.&nbsp;ej., «Equipo de soporte»)." "Optional: Enter a name to display with the email (e.g., \"Support Team\")."
msgstr ""
"Opcional: introduzca un nombre para mostrar junto al correo (p.&nbsp;ej., "
"«Equipo de soporte»)."
#: replyto.php:868 #: replyto.php:871
msgid "Note:" msgid "Note:"
msgstr "Nota:" msgstr "Nota:"
#: replyto.php:869 #: replyto.php:872
msgid "The Default context is always active and acts as a fallback for all emails." msgid ""
msgstr "El contexto predeterminado siempre está activo y actúa como alternativa para todos los correos." "The Default context is always active and acts as a fallback for all emails."
msgstr ""
"El contexto predeterminado siempre está activo y actúa como alternativa para "
"todos los correos."
#: replyto.php:895 #: replyto.php:898
msgid "Save Settings" msgid "Save Settings"
msgstr "Guardar ajustes" msgstr "Guardar ajustes"

View file

@ -2,14 +2,14 @@
# This file is distributed under the GPL-3.0-or-later. # This file is distributed under the GPL-3.0-or-later.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Reply-To for WP_Mail 2.0.2\n" "Project-Id-Version: Reply-To for WP_Mail 2.0.3\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/replyto\n" "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/replyto\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"POT-Creation-Date: 2026-06-05T11:22:01+00:00\n" "POT-Creation-Date: 2026-08-18T11:23:15+00:00\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"X-Generator: WP-CLI 2.12.0\n" "X-Generator: WP-CLI 2.12.0\n"
"X-Domain: replyto\n" "X-Domain: replyto\n"
@ -19,6 +19,11 @@ msgstr ""
msgid "Reply-To for WP_Mail" msgid "Reply-To for WP_Mail"
msgstr "" msgstr ""
#. Plugin URI of the plugin
#: replyto.php
msgid "https://www.robotstxt.software/plugins/replyto/"
msgstr ""
#. Description of the plugin #. Description of the plugin
#: replyto.php #: replyto.php
msgid "Configure your \"Reply-To:\" for WP_Mail with validation, admin settings, and context-based routing." msgid "Configure your \"Reply-To:\" for WP_Mail with validation, admin settings, and context-based routing."
@ -31,182 +36,182 @@ msgstr ""
#. Author URI of the plugin #. Author URI of the plugin
#: replyto.php #: replyto.php
msgid "https://www.robotstxt.es/" msgid "https://www.robotstxt.software/"
msgstr "" msgstr ""
#: replyto.php:391 #: replyto.php:394
msgid "WP Mail Reply-To Settings" msgid "WP Mail Reply-To Settings"
msgstr "" msgstr ""
#: replyto.php:392 #: replyto.php:395
msgid "Reply-To" msgid "Reply-To"
msgstr "" msgstr ""
#: replyto.php:492 #: replyto.php:495
#: replyto.php:706 #: replyto.php:709
msgid "Default" msgid "Default"
msgstr "" msgstr ""
#: replyto.php:493 #: replyto.php:496
msgid "Authentication" msgid "Authentication"
msgstr "" msgstr ""
#: replyto.php:494 #: replyto.php:497
msgid "Comments" msgid "Comments"
msgstr "" msgstr ""
#: replyto.php:495 #: replyto.php:498
msgid "Users" msgid "Users"
msgstr "" msgstr ""
#: replyto.php:496 #: replyto.php:499
msgid "System" msgid "System"
msgstr "" msgstr ""
#: replyto.php:501 #: replyto.php:504
#: replyto.php:735 #: replyto.php:738
msgid "WooCommerce" msgid "WooCommerce"
msgstr "" msgstr ""
#. translators: %s: context name #. translators: %s: context name
#: replyto.php:526 #: replyto.php:529
#, php-format #, php-format
msgid "Invalid email address for %s context." msgid "Invalid email address for %s context."
msgstr "" msgstr ""
#. translators: %s: context name #. translators: %s: context name
#: replyto.php:542 #: replyto.php:545
#, php-format #, php-format
msgid "Warning: The email domain for %s context does not appear to have valid DNS records." msgid "Warning: The email domain for %s context does not appear to have valid DNS records."
msgstr "" msgstr ""
#. translators: %s: context name #. translators: %s: context name
#: replyto.php:557 #: replyto.php:560
#: replyto.php:567 #: replyto.php:570
#, php-format #, php-format
msgid "Name for %s context was truncated to 255 characters." msgid "Name for %s context was truncated to 255 characters."
msgstr "" msgstr ""
#: replyto.php:608 #: replyto.php:611
msgid "Reply-To configuration updated successfully." msgid "Reply-To configuration updated successfully."
msgstr "" msgstr ""
#: replyto.php:707 #: replyto.php:710
msgid "Default Reply-To used for all emails that do not match a specific context. This is the fallback when other contexts are not configured." msgid "Default Reply-To used for all emails that do not match a specific context. This is the fallback when other contexts are not configured."
msgstr "" msgstr ""
#: replyto.php:708 #: replyto.php:711
msgid "Newsletter confirmations, general notifications, and any emails not covered by other contexts." msgid "Newsletter confirmations, general notifications, and any emails not covered by other contexts."
msgstr "" msgstr ""
#: replyto.php:711 #: replyto.php:714
msgid "Authentication & Security" msgid "Authentication & Security"
msgstr "" msgstr ""
#: replyto.php:712 #: replyto.php:715
msgid "Reply-To for password resets, password changes, and email address changes." msgid "Reply-To for password resets, password changes, and email address changes."
msgstr "" msgstr ""
#: replyto.php:713 #: replyto.php:716
msgid "Password reset requests, password change confirmations, email address verifications." msgid "Password reset requests, password change confirmations, email address verifications."
msgstr "" msgstr ""
#: replyto.php:716 #: replyto.php:719
msgid "Comments & Moderation" msgid "Comments & Moderation"
msgstr "" msgstr ""
#: replyto.php:717 #: replyto.php:720
msgid "Reply-To for comment notifications and moderation alerts." msgid "Reply-To for comment notifications and moderation alerts."
msgstr "" msgstr ""
#: replyto.php:718 #: replyto.php:721
msgid "New comment notifications, comment moderation alerts, comment replies." msgid "New comment notifications, comment moderation alerts, comment replies."
msgstr "" msgstr ""
#: replyto.php:721 #: replyto.php:724
msgid "Users & Registration" msgid "Users & Registration"
msgstr "" msgstr ""
#: replyto.php:722 #: replyto.php:725
msgid "Reply-To for new user registrations, role changes, and user management emails." msgid "Reply-To for new user registrations, role changes, and user management emails."
msgstr "" msgstr ""
#: replyto.php:723 #: replyto.php:726
msgid "New user welcome emails, user role changes, account activations." msgid "New user welcome emails, user role changes, account activations."
msgstr "" msgstr ""
#: replyto.php:726 #: replyto.php:729
msgid "System & Updates" msgid "System & Updates"
msgstr "" msgstr ""
#: replyto.php:727 #: replyto.php:730
msgid "Reply-To for automatic updates, system alerts, and critical site health notifications." msgid "Reply-To for automatic updates, system alerts, and critical site health notifications."
msgstr "" msgstr ""
#: replyto.php:728 #: replyto.php:731
msgid "WordPress core updates, plugin updates, theme updates, recovery mode, fatal error notifications." msgid "WordPress core updates, plugin updates, theme updates, recovery mode, fatal error notifications."
msgstr "" msgstr ""
#: replyto.php:736 #: replyto.php:739
msgid "Reply-To for WooCommerce order notifications, invoices, and customer communications." msgid "Reply-To for WooCommerce order notifications, invoices, and customer communications."
msgstr "" msgstr ""
#: replyto.php:737 #: replyto.php:740
msgid "Order confirmations, shipping notifications, invoices, customer notes." msgid "Order confirmations, shipping notifications, invoices, customer notes."
msgstr "" msgstr ""
#: replyto.php:751 #: replyto.php:754
msgid "Configure different Reply-To addresses based on the type of email being sent. Each context can have its own email address and display name." msgid "Configure different Reply-To addresses based on the type of email being sent. Each context can have its own email address and display name."
msgstr "" msgstr ""
#: replyto.php:789 #: replyto.php:792
msgid "Active with email configured" msgid "Active with email configured"
msgstr "" msgstr ""
#: replyto.php:790 #: replyto.php:793
msgid "Inactive or no email configured" msgid "Inactive or no email configured"
msgstr "" msgstr ""
#: replyto.php:806 #: replyto.php:809
msgid "What this context covers:" msgid "What this context covers:"
msgstr "" msgstr ""
#: replyto.php:808 #: replyto.php:811
msgid "Examples:" msgid "Examples:"
msgstr "" msgstr ""
#: replyto.php:819 #: replyto.php:822
msgid "Enable this context" msgid "Enable this context"
msgstr "" msgstr ""
#: replyto.php:822 #: replyto.php:825
msgid "When disabled, emails in this context will use the Default Reply-To address." msgid "When disabled, emails in this context will use the Default Reply-To address."
msgstr "" msgstr ""
#: replyto.php:832 #: replyto.php:835
msgid "Reply-To Email Address" msgid "Reply-To Email Address"
msgstr "" msgstr ""
#: replyto.php:842 #: replyto.php:845
msgid "Enter the email address where replies should be sent." msgid "Enter the email address where replies should be sent."
msgstr "" msgstr ""
#: replyto.php:849 #: replyto.php:852
msgid "Reply-To Display Name (Optional)" msgid "Reply-To Display Name (Optional)"
msgstr "" msgstr ""
#: replyto.php:859 #: replyto.php:862
msgid "Optional: Enter a name to display with the email (e.g., \"Support Team\")." msgid "Optional: Enter a name to display with the email (e.g., \"Support Team\")."
msgstr "" msgstr ""
#: replyto.php:868 #: replyto.php:871
msgid "Note:" msgid "Note:"
msgstr "" msgstr ""
#: replyto.php:869 #: replyto.php:872
msgid "The Default context is always active and acts as a fallback for all emails." msgid "The Default context is always active and acts as a fallback for all emails."
msgstr "" msgstr ""
#: replyto.php:895 #: replyto.php:898
msgid "Save Settings" msgid "Save Settings"
msgstr "" msgstr ""

View file

@ -1,11 +1,11 @@
=== Reply-To for WP_Mail === === Reply-To for WP_Mail ===
Contributors: javiercasares Contributors: robotstxt, javiercasares
Tags: email, reply-to, mail, smtp Tags: email, reply-to, mail, smtp
Requires at least: 3.6 Requires at least: 4.7
Tested up to: 7.1 Tested up to: 7.1
Stable tag: 2.0.2 Stable tag: 2.0.3
Requires PHP: 5.6 Requires PHP: 5.6
Version: 2.0.2 Version: 2.0.3
License: GPL-3.0-or-later License: GPL-3.0-or-later
License URI: https://www.gnu.org/licenses/gpl-3.0.txt License URI: https://www.gnu.org/licenses/gpl-3.0.txt
@ -52,11 +52,43 @@ Yes. Each site in a Multisite network maintains its own configuration. On uninst
== Compatibility == == Compatibility ==
* WordPress: 3.6 - 7.1 * WordPress: 4.7 - 7.1
* PHP: 5.6 - 8.5 * PHP: 5.6 - 8.5
== Changelog == == Changelog ==
= 2.0.3 =
_Release date: 2026-08-18_
**Highlights**
* Housekeeping release: branding URLs moved to robotstxt.software and declared WordPress support floor set to 4.7.
**Changed**
* Minimum WordPress version raised from 3.6 to 4.7 (real functional floor: register_setting() with array arguments requires WordPress 4.7).
* Developer URL updated to https://www.robotstxt.software/ and plugin home page added (https://www.robotstxt.software/plugins/replyto/).
* Full changelog now hosted at https://www.robotstxt.software/plugins/replyto/changelog/.
* Development tooling updated (PHPCS, WPCS, PHPStan, PHPUnit).
**Added**
* bin/preflight.sh automated pre-deploy verification script.
* WordPress floor verification (wp-compat) integrated into PHPStan analysis.
**Compatibility**
* WordPress: 4.7 - 7.1
* PHP: 5.6 - 8.5
**Tests**
* PHP Coding Standards: 3.13.6
* WordPress Coding Standards: 3.4.1
* PHPStan: 2.2.8 (level 9)
* PHPUnit: 9.6.36
= 2.0.2 = = 2.0.2 =
_Release date: 2026-06-05_ _Release date: 2026-06-05_
@ -125,48 +157,21 @@ _Release date: 2026-06-05_
* PHPStan: 2.2.2 (level 9) * PHPStan: 2.2.2 (level 9)
* PHPUnit: 9.6.34 * PHPUnit: 9.6.34
= 2.0.0 =
_Release date: 2026-01-20_
**Highlights**
* Complete rewrite with context-based Reply-To routing.
**Added**
* Six email contexts: Default, Authentication, Comments, Users, System, WooCommerce.
* Modern tabbed admin interface with visual status indicators.
* Reply-To display name field with header injection prevention.
* Automatic migration from v1.0.x settings.
* uninstall.php for clean data removal.
**Compatibility**
* WordPress: 4.1 - 6.9
* PHP: 5.6 - 8.5
**Tests**
* PHP Coding Standards: 3.13.4
* WordPress Coding Standards: 3.3.0
* Plugin Check (PCP): 1.4.0
= Previous versions = = Previous versions =
If you want to see the full changelog, visit the [changelog.txt](https://git.robotstxt.es/ROBOTSTXT/replyto-dev/raw/branch/main/changelog.txt) file. If you want to see the full changelog, visit the [changelog](https://www.robotstxt.software/plugins/replyto/changelog/) page.
== Upgrade Notice == == Upgrade Notice ==
= 2.0.3 =
Housekeeping release: branding URLs moved to robotstxt.software. Minimum WordPress version is now 4.7.
= 2.0.2 = = 2.0.2 =
Translations added for Spanish (Spain) and Catalan. WordPress minimum corrected to 3.6. Upgrade recommended. Translations added for Spanish (Spain) and Catalan. WordPress minimum corrected to 3.6. Upgrade recommended.
= 2.0.1 = = 2.0.1 =
Bugfix release. Fixes context isolation between emails, duplicate Reply-To headers, and migration on WP-CLI. Upgrade recommended. Bugfix release. Fixes context isolation between emails, duplicate Reply-To headers, and migration on WP-CLI. Upgrade recommended.
= 2.0.0 =
Major release. Your existing Reply-To setting is automatically migrated to the new Default context — no manual action required.
== Compliance == == Compliance ==
This plugin adheres to the following security measures and review protocols for each version: This plugin adheres to the following security measures and review protocols for each version:

View file

@ -2,11 +2,12 @@
/** /**
* Plugin Name: Reply-To for WP_Mail * Plugin Name: Reply-To for WP_Mail
* Description: Configure your "Reply-To:" for WP_Mail with validation, admin settings, and context-based routing. * Description: Configure your "Reply-To:" for WP_Mail with validation, admin settings, and context-based routing.
* Requires at least: 3.6 * Plugin URI: https://www.robotstxt.software/plugins/replyto/
* Requires at least: 4.7
* Requires PHP: 5.6 * Requires PHP: 5.6
* Version: 2.0.2 * Version: 2.0.3
* Author: ROBOTSTXT * Author: ROBOTSTXT
* Author URI: https://www.robotstxt.es/ * Author URI: https://www.robotstxt.software/
* License: GPL-3.0-or-later * License: GPL-3.0-or-later
* License URI: https://www.gnu.org/licenses/gpl-3.0.txt * License URI: https://www.gnu.org/licenses/gpl-3.0.txt
* Text Domain: replyto * Text Domain: replyto
@ -14,7 +15,7 @@
* *
* @package replyto * @package replyto
* *
* @version 2.0.2 * @version 2.0.3
*/ */
defined( 'ABSPATH' ) || die( 'No script kiddies please!' ); defined( 'ABSPATH' ) || die( 'No script kiddies please!' );
@ -384,6 +385,8 @@ add_filter( 'wp_mail', 'wp_mail_replyto' );
* Adds a new page under the "Settings" menu where administrators can configure * Adds a new page under the "Settings" menu where administrators can configure
* the "Reply-To" email address used in outgoing emails. * the "Reply-To" email address used in outgoing emails.
* *
* @since 1.3.0
*
* @return void * @return void
*/ */
function wp_mail_replyto_add_settings_page() { function wp_mail_replyto_add_settings_page() {
@ -626,7 +629,7 @@ function wp_mail_replyto_admin_styles( $hook ) {
return; return;
} }
wp_register_style( 'replyto-admin', false, array(), '2.0.2' ); wp_register_style( 'replyto-admin', false, array(), '2.0.3' );
wp_enqueue_style( 'replyto-admin' ); wp_enqueue_style( 'replyto-admin' );
wp_add_inline_style( wp_add_inline_style(
'replyto-admin', 'replyto-admin',