WP Manifestindependent plugin directory
manifest / ecommerce / woocommerce-mail-reminder

WooCommerce Mail Reminder WP Registry grade D+. High-severity findings · 4 findingsWP RegistryHigh-severity findings · 4 findingsOpen the reportD+

Send a message to your customers to remind them you have the best offers.

★ 9stars
16release downloads
≈20active sites
v1.3.0latest · 3 years ago

Install

Download WooCommerce-Mail-Reminder_1.1.3.zip From the v1.1.3 release on GitHub, Feb 16, 2022

Upload it under Plugins → Add New Plugin → Upload Plugin, then activate.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/reandimo/woocommerce-mail-reminder/releases/download/v1.1.3/WooCommerce-Mail-Reminder_1.1.3.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

Remind your clients that you have the best offers.

With this plugin you can send an email to your customers who have made a purchase, reminding them that you have the best offers or any message you want, after the number of days you establish since your last purchase.


Recuerdale a tus clientes que tienes las mejores ofertas.

Con este plugin podras enviarle un correo a tus clientes que hayan realizado una compra, recordandoles que tienes las mejores ofertas o cualquier mensaje que tu quieras, despues de la cantidad de dias que establezcas desde su ultima compra.

How to use / Como Usar

The plugin uses the same template of woocommerce, only changes the content. So you just have to set the content of the email and the days after the customer made a purchase to receive the message and that's it.

The content can be anything you want, also accepts shortcodes of Woocommerce or any plugin (Remember, is just an email, some shortcodes may not show).

Features

  • You can set a header, subject and message that you want to send your customers.
  • Configure the interval of days of the cron job that sends the email message.
  • Configure the interval of days from the customer's last purchase to send the message.
  • Reminders Post Type Created. Now you can add many reminders as you wish and customize with the editor and set the options for the cron execution.
  • You can see the last time the cron job sent all the reminders in te post type table!
  • Now you can preview your templates with a simple click.
  • Activate or Deactivate any reminder if you don't want to send it.
  • Set a Default Heading for the email templates if you don't want to customize every Heading.
  • Polylang ready!. Handle multilang sites, and send reminders in your customer locale B-).

El plugin usa la misma plantilla de woocommerce, solo cambia el contenido. Así que solo tiene que configurar el contenido del correo electrónico y los días posteriores a la compra del cliente para recibir el mensaje y eso es todo.

El contenido puede ser lo que quieras, también acepta shortcodes de Woocommerce o cualquier plugin (Ten en cuenta que al final del dia es un correo, algunos pueden no funcionar).

Características

  • Puede establecer un encabezado, asunto y mensaje que desea enviar a sus clientes.
  • Configure el intervalo de días del trabajo cron que envía el mensaje de correo electrónico.
  • Configure el intervalo de días desde la última compra del cliente para enviar el mensaje.
  • Recordatorios como post type. Ahora puede agregar tantos recordatorios como quieras y personalizar con el editor de WordPress, ademas de configurar las opciones para la ejecución cron.
  • ¡Puedes ver la última vez que el trabajo cron envió todos los recordatorios en la tabla de Recordatorios!
  • Ahora puedes previsualizar tus plantillas con un simple clic.
  • Activa o desactiva cualquier recordatorio si no desea enviarlo.
  • Establezca un titulo predeterminado para las plantillas de correo electrónico si no desea personalizar cada titulo.
  • ¡Listo para Polylang!. Maneja sitios de varios idiomas y enviar recordatorios en la configuración regional de su cliente B-).

Releases

2 releases. Each count is every asset in that release; expand a row for the breakdown.

Tag
Published
Assets
Downloads
v1.3.0 latest
Feb 9, 2023 3 years ago
tag only
—
Feb 16, 2022 4 years ago
WooCommerce-Mail-Reminder_1.1.3.zip
16

Active-site estimate ≈20 comes from the median of recent superseded releases. Method.

D+ grade

Security

WooCommerce Mail Reminder 1.1.2 · audited by WP Registry

High-severity findings.

2 high 2 medium
Audited release
1.1.2
Findings
4
Worst severity
high
Content hash
7c6b8cc12a833ee5764fd03b…

Findings

  • high Reminder cron puts every customer email in the To: header

    information_disclosure

    woomr_job() (hooked to woomr_cron) loads all users with role customer, and for each active reminder appends every matching customer's user_email onto a single $list, then calls wp_mail($list, $subject, $content, $headers). WordPress/PHPMailer treats an address array as multiple To: recipients, so every customer can see every other matching customer's email address in the message headers. $list is initialized once and never reset between reminders, so later reminders accumulate prior recipients. The intended days-after filter compares a DateInterval object to rwmb_meta() (post meta string, e.g. '7'); on PHP 8 that object>=string comparison is true, so the date gate does not actually restrict who is included. WP-Cron can be triggered by any site hit / wp-cron.php. Observable consequence: a customer who placed any completed order receives a store-From email whose To: line enumerates other customers' addresses (PII).

    admin/class-woo-mail-reminder-admin.php:726-794

    Recommendation

    Send one message per customer (or put other recipients in Bcc). Compare (int) $diff->days to (int) $days_after. Reset the recipient list inside the reminder loop. Do not put other customers' addresses in To/Cc.

  • high Email preview on init is nonce-only and echoes unsanitized request HTML

    xss_reflected

    woomr_preview_emails is hooked to init (front-end and admin). If preview_woomr_mail is present it only wp_verify_nonce($_REQUEST['_wpnonce'], 'woomr-preview') — no current_user_can, no is_admin, no edit_post check. It then do_shortcode(stripslashes($_REQUEST['content'])), takes stripslashes($_REQUEST['heading']), wraps them with WC_Email::style_inline(mailer->wrap_message()), and echo $output; exit. WooCommerce wrap_message / email-header prints the heading in an unescaped <h1> and the body via wpautop/wptexturize with no kses, so <script> and event-handler markup in content or heading execute as a full HTML document (not innerHTML). The nonce is a hidden Meta Box field on the woomr_reminder edit screen (edit_pages). Editor is below manage_options and can submit arbitrary HTML/shortcodes; a stolen nonce in the GET URL also works for that user. Shortcode execution runs as the current user.

    admin/class-woo-mail-reminder-admin.php:668-694

    Recommendation

    Require current_user_can('edit_post', $post_id) (or manage_woocommerce) in addition to the nonce. Load heading/body from the reminder post, not from $_REQUEST, or run them through wp_kses_post. Do not do_shortcode on raw request input. Escape the heading on output.

  • medium Any logged-in user can send mail via woomr_test_mail

    missing_capability

    wp_ajax_woomr_test_mail (no nopriv, but any authenticated role including WooCommerce Customer/Subscriber) reads $_POST['mail'] with no sanitize_email, no check_ajax_referer, and no current_user_can, then wp_mail()s a store-From test message to that address. The JS in woo-mail-reminder-admin.js posts {action: woomr_test_mail, mail} with no nonce field. A customer account or a CSRF form on a logged-in session is enough to use the site as a limited mail relay (fixed subject/body, arbitrary To). On older WP/PHPMailer, unsanitized To can also be used for header injection.

    admin/class-woo-mail-reminder-admin.php:511-537

    Recommendation

    Gate with current_user_can('manage_options') (or manage_woocommerce) and check_ajax_referer. Pass sanitize_email() and abort if empty. Use wp_send_json_*.

  • medium Any logged-in user can set reminder status post meta

    missing_capability

    wp_ajax_woomr_deactivate_reminder has no nonce and no capability check. It takes $_POST['reminder_id'] and always update_post_meta($reminder_id, 'status', 1) (both branches write 1; no post-type check, so any post ID's 'status' meta can be set). A Subscriber/Customer can enumerate public woomr_reminder IDs (CPT publicly_queryable) and activate reminders, causing the next woomr_cron run to mass-email customers. A second path, woomr_set_status_reminder on load-edit.php, updates status from $_REQUEST['set_status'] after wp_verify_nonce('reminder-status-action') only — load-edit.php fires in admin.php before edit.php's edit_pages wp_die, so the sole gate is the nonce, not a capability.

    admin/class-woo-mail-reminder-admin.php:548-572

    Recommendation

    Require current_user_can('edit_post', $reminder_id), verify the post type is woomr_reminder, and check_ajax_referer. Apply the same cap check in woomr_set_status_reminder. Toggle status instead of always writing 1.

WP Registry hashes the installable build and reports on that exact bytes-for-bytes copy. Embargoed findings are withheld until they are disclosed, so a clean verdict means nothing public is outstanding. WP Manifest does not audit code itself.