Back to Redono Prov1.0.14 (20 releases)

Changelog Redono Pro

Changelog for the available Redono Pro WooCommerce plugin: updates, fixes and feature development.

v1.0.14
  • The plugin description, the readme and the admin strings still named the free plugin by its old name in places the rename missed. They now all read Redono.
  • The Polish translation is complete again. Regenerating the template exposed strings that had never been translated, because the old template did not contain them at all.
v1.0.13
  • Renamed to Redono Pro. The free plugin it extends was renamed to Redono for the WordPress.org directory, which asks a plugin name to lead with a distinctive coined word rather than a generic one, and the paid add-on now carries the same name. The text domain, the stored options and every hook are unchanged, so nothing on an existing install moves.
v1.0.12
  • Fixed: the note added in 1.0.11 read a file holding fewer data rows than its own name as a file that was cut short. That is one reading of two. The name counts the requests the export set out to write, and the export then reads them in batches, so a request deleted or moved to trash while it runs is missing from the batch that would have carried it: the file finished, and it is one row short of its name. Measured in the repository's report-walk check, 400 requests named and one of them trashed after the first batch of 100: 399 rows written by an export that ran to the end. Fewer rows than the name means the export did not finish or a request left the range while it was being written, and the two are told apart by the request itself still being there.
v1.0.11
  • Fixed: the CSV export is named after the number of requests it set out to write, for example return-analytics-2026-09-13-4000-rows.csv. 1.0.9 added the note below telling you to compare a finished export against the request total on the report screen; the screen and the export each read the list of requests in their own page load, so a request filed between the two moves that total and the comparison could raise an alarm on a complete file or pass a short one. The count in the name comes from the same read the export then walks, so the file and the number it is named after describe one snapshot: count the data rows and compare them with the number in the name.
  • Fixed: the Requirements and Installation sections asked for the free Redono plugin at 0.1.1 or later, while the plugin refuses to boot below 0.1.2 and says so in an admin notice. Both now read 0.1.2.
  • Fixed: the Translations section said the package carries no compiled translation files and that translations arrive as WordPress.org language packs. Neither is true of a plugin sold through Freemius: the package does ship the Polish, German and Spanish catalogues, and there are no language packs for a plugin that is not in the WordPress.org directory. The section now says what the package holds and where to put a catalogue of your own.
v1.0.10
  • Changed: the report drops each batch of requests from the object cache in one call for the whole batch instead of one call per row. A 40,000 request export issued 80,000 separate deletes, and a shared Redis or Memcached answers those one round trip at a time; a drop-in that implements delete_multiple now takes a batch of 100 in one.
  • Fixed: the sentence above the date filter changed wording in 1.0.9 and its Polish, German and Spanish translations did not, so the line fell back to English in all three locales. All three now match the source string.
  • Added: a runnable check for the report walk in the repository, covering the figures the single pass produces, the batch size it keeps to, and the streaming export. It is not part of the distributed package.
  • Tested up to WordPress 7.1.
v1.0.9
  • Fixed: the Return Analytics screen read every return request the shop had ever taken. The date filter only reached the query once the form had been submitted, so an unfiltered visit asked for the whole history in one go, kept all of it in memory as post objects, walked that array six times for the six figures on the screen, and built the entire CSV in memory before writing its first line. A shop with a few years of returns met the PHP memory limit and a white screen instead of a report. The screen now reads the range in batches of 100 and counts everything in a single pass, and the export writes each row as it reads it. Measured on a fixture of 4000 requests, each with two returned items and a short customer note, the same figures and the same CSV rows come out of 0.9 MB of peak memory for the screen and 0.5 MB for the export, against 11.4 MB and 13.2 MB for the code this replaces on the same rows. What matters more than the figures is that the old ones grew with the range and these do not.
  • Changed: the screen opens on the last 30 days, and the two date fields show that range, where before an unfiltered visit covered the whole history. The CSV export covers the range shown in the form, which it already did once a range was picked, so an export with the dates left alone is now those 30 days and not everything. Widen the range to get the rest; an explicit range is used exactly as typed.
  • Note, a new failure mode that comes with streaming: the export writes each row as it reads it, so the download starts before the walk has finished. If PHP hits its time limit or its memory limit part way through a long export, the browser keeps the rows already written and the file ends early while looking like a complete CSV. 1.0.8 built the whole file in memory first, so a failure while it was being built landed before any row was written, and showed up as an error page or as a download holding PHP's error text.
v1.0.8
  • Fixed: arrow glyphs in the admin menu paths, and in the strings handed to translators. An arrow inside a translatable string makes the glyph every translator's problem and changes the layout in any locale that drops it.
v1.0.7
  • The translation template was regenerated. It still named an older version of the plugin and pointed at source lines that had since moved, which is what translation tools read to show a string in context.
v1.0.6
  • Fixed: the refund, store credit and shipping label lines of the status email were English sentences in the packaged defaults, so they never reached the .pot and could not be translated. Activation wrote them into the database, which froze the English in place: a shop running in Polish emailed English however complete the language pack was. The three lines are now translatable, and a stored value that is byte for byte the old English default is cleared on upgrade so the translation takes over. Wording a merchant typed themselves is left alone.
  • Fixed: saving the settings screen discarded the shipping label line, because that field was missing from the sanitise map. It accepted typing and kept nothing.
  • Fixed: the "include the shipping label" checkbox had the same gap. It was rendered and read, but never saved, so it snapped back to its default on every save while the two checkboxes next to it saved correctly.
v1.0.5
  • Fixed: the plugin title label on Freemius notices rendered white on a background measuring 2.37:1, where WCAG AA wants 4.5:1 for text that size. The label now uses the same grey WordPress core uses, at 4.61:1.
  • Fixed: the public key constant was defined inside the guard for the product id constant, so it would have gone undefined if anything had defined the id first. Harmless today, wrong the moment it is not.
v1.0.4
  • Fix: deleting the plugin now removes its options and transients instead of leaving them in the database, on every site of a network. The free plugin's own settings are untouched.
v1.0.2
  • Added bundled Polish, German and Spanish translations for the plugin interface.
v1.0.1
  • First stable release.
v0.6.2
  • Plugin Check: escaping/sanitisation/i18n/hygiene fixes.
v0.6.1
  • Renamed plugin slug to `plogins-returns-pro` for the Plogins family naming convention. No functional changes.
v0.6.0
  • Refund actions from the return request screen (`RefundActions`, `RefundActionsSettings`) using `Returns\Support\Refunds` and `returns/order_refund`.
  • Order refund (Pro) meta box with gateway refund and restock toggles.
  • Requires Returns 0.1.2 or later.
v0.5.0
  • Return-reason analytics dashboard with date filters and CSV export (`ReturnReasonAnalytics`, `ReturnReasonReportQuery`).
  • Register `ShippingLabels` in the PRO service container.
  • Requires Returns 0.1.1 or later.
v0.4.0
  • Automatic store credit on completed returns (`AutoStoreCredit`): single-use WooCommerce coupon or meta-only mode, admin toggle under WooCommerce > Redono Pro, guarded by `_returns_pro_credit_issued`.
v0.2.0
  • Refund amount and store-credit details in completed status emails (`ResolutionMeta`, extended `StatusEmails`).
v0.1.0
  • Initial release: customer status-update emails with per-status toggles and a customisable footer.