{"id":358206,"date":"2026-08-26T07:54:18","date_gmt":"2026-08-26T07:54:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/voucher-manager\/"},"modified":"2026-08-26T10:36:00","modified_gmt":"2026-08-26T10:36:00","slug":"mjs-productions-voucher-manager","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/mjs-productions-voucher-manager\/","author":23548077,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.8","stable_tag":"1.0.8","tested":"7.1","requires":"6.5","requires_php":"8.1","requires_plugins":null,"header_name":"MJS-Productions Voucher Manager","header_author":"MJS-Productions","header_description":"Professional One-Time Code Management for WordPress.","assets_banners_color":"3b336d","last_updated":"2026-08-26 10:36:00","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/MJS-Productions\/voucher-manager","header_author_uri":"https:\/\/mjs-productions.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":51,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.8":{"tag":"1.0.8","author":"mjs512","date":"2026-08-26 10:36:00"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3666474,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3666474,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3666474,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3666474,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.8"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3666474,"resolution":"1","location":"assets","locale":"","width":1093,"height":816},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3666474,"resolution":"2","location":"assets","locale":"","width":1093,"height":844},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3666474,"resolution":"3","location":"assets","locale":"","width":1117,"height":1045},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3666474,"resolution":"4","location":"assets","locale":"","width":1091,"height":590},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3666474,"resolution":"5","location":"assets","locale":"","width":1101,"height":412},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3666474,"resolution":"6","location":"assets","locale":"","width":1093,"height":1199},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3666474,"resolution":"7","location":"assets","locale":"","width":967,"height":691}},"screenshots":{"1":"Dashboard with inventory overview, quick actions and recent activity.","2":"Pool management for organizing One-Time Codes.","3":"Inventory view with status, filters and pool context.","4":"TXT and CSV import workflow for adding One-Time Codes to a pool.","5":"Controlled distribution of available One-Time Codes.","6":"Activity history with privacy-conscious operational information.","7":"Settings for activity retention and data management."}},"plugin_section":[],"plugin_tags":[277537,277581,277536,12177],"plugin_category":[45],"plugin_contributors":[277538],"plugin_business_model":[],"class_list":["post-358206","plugin","type-plugin","status-publish","hentry","plugin_tags-code-distribution","plugin_tags-code-management","plugin_tags-one-time-codes","plugin_tags-voucher-codes","plugin_category-ecommerce","plugin_contributors-mjs512","plugin_committers-mjs512"],"banners":{"banner":"https:\/\/ps.w.org\/mjs-productions-voucher-manager\/assets\/banner-772x250.png?rev=3666474","banner_2x":"https:\/\/ps.w.org\/mjs-productions-voucher-manager\/assets\/banner-1544x500.png?rev=3666474","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/mjs-productions-voucher-manager\/assets\/icon-128x128.png?rev=3666474","icon_2x":"https:\/\/ps.w.org\/mjs-productions-voucher-manager\/assets\/icon-256x256.png?rev=3666474","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/mjs-productions-voucher-manager\/assets\/screenshot-1.png?rev=3666474","caption":"Dashboard with inventory overview, quick actions and recent activity."},{"src":"https:\/\/ps.w.org\/mjs-productions-voucher-manager\/assets\/screenshot-2.png?rev=3666474","caption":"Pool management for organizing One-Time Codes."},{"src":"https:\/\/ps.w.org\/mjs-productions-voucher-manager\/assets\/screenshot-3.png?rev=3666474","caption":"Inventory view with status, filters and pool context."},{"src":"https:\/\/ps.w.org\/mjs-productions-voucher-manager\/assets\/screenshot-4.png?rev=3666474","caption":"TXT and CSV import workflow for adding One-Time Codes to a pool."},{"src":"https:\/\/ps.w.org\/mjs-productions-voucher-manager\/assets\/screenshot-5.png?rev=3666474","caption":"Controlled distribution of available One-Time Codes."},{"src":"https:\/\/ps.w.org\/mjs-productions-voucher-manager\/assets\/screenshot-6.png?rev=3666474","caption":"Activity history with privacy-conscious operational information."},{"src":"https:\/\/ps.w.org\/mjs-productions-voucher-manager\/assets\/screenshot-7.png?rev=3666474","caption":"Settings for activity retention and data management."}],"raw_content":"<!--section=description-->\n<p>Voucher Manager provides a structured and efficient way to manage and distribute One-Time Codes within WordPress.<\/p>\n\n<p>Create dedicated pools, import codes from TXT or CSV files, distribute available codes through a controlled workflow and keep track of inventory and operational activity from the WordPress administration area.<\/p>\n\n<h4>Key Features<\/h4>\n\n<ul>\n<li>Pool Management - organize One-Time Codes in dedicated pools for products, campaigns or other use cases.<\/li>\n<li>Inventory Overview - review available and distributed codes with filters and inventory context.<\/li>\n<li>TXT and CSV Import - import One-Time Codes into selected pools.<\/li>\n<li>Import Rollback - undo eligible imports when no One-Time Codes from the import have been distributed.<\/li>\n<li>Controlled Distribution - One-Time Codes are issued through a controlled workflow designed to help prevent duplicate issuance.<\/li>\n<li>Activity History - review important operational events without storing distributed One-Time Code values in the activity history.<\/li>\n<li>Retention Management - configure automatic activity retention and scheduled cleanup.<\/li>\n<li>WordPress Roles and Capabilities - administrative access follows the native WordPress permission system.<\/li>\n<li>Localization Ready - uses the WordPress localization system and supports translations provided through WordPress.org.<\/li>\n<\/ul>\n\n<h4>Data-Minimal by Design<\/h4>\n\n<p>Voucher Manager stores only the information required for its core functionality. One-Time Code values are not stored in Activity history.<\/p>\n\n<h4>Simple Workflow<\/h4>\n\n<ol>\n<li>Create a pool.<\/li>\n<li>Import One-Time Codes.<\/li>\n<li>Distribute one available code.<\/li>\n<li>Review inventory and operational activity.<\/li>\n<\/ol>\n\n<p>Voucher Manager is a complete, usable plugin designed to provide real value for everyday One-Time Code management.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the Voucher Manager plugin to WordPress and activate it.<\/li>\n<li>Open Voucher Manager in the WordPress administration area.<\/li>\n<li>Create your first pool.<\/li>\n<li>Import One-Time Codes from a TXT or CSV file.<\/li>\n<li>Distribute codes and review inventory and activity as needed.<\/li>\n<\/ol>\n\n<p>No additional configuration is required for basic use.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20is%20a%20one-time%20code%3F\"><h3>What is a One-Time Code?<\/h3><\/dt>\n<dd><p>A One-Time Code is a code intended to be distributed once. Voucher Manager stores available codes in pools and provides a controlled workflow for distributing them.<\/p><\/dd>\n<dt id=\"what%20file%20formats%20can%20i%20use%20to%20import%20one-time%20codes%3F\"><h3>What file formats can I use to import One-Time Codes?<\/h3><\/dt>\n<dd><p>Voucher Manager supports TXT and CSV files for importing One-Time Codes.<\/p><\/dd>\n<dt id=\"can%20i%20organize%20codes%20for%20different%20products%20or%20use%20cases%3F\"><h3>Can I organize codes for different products or use cases?<\/h3><\/dt>\n<dd><p>Yes. One-Time Codes are organized in separate pools, allowing different products, campaigns or other use cases to be managed independently.<\/p><\/dd>\n<dt id=\"can%20an%20import%20be%20undone%3F\"><h3>Can an import be undone?<\/h3><\/dt>\n<dd><p>Yes, when the import is still eligible for rollback. An import can only be undone when no One-Time Codes from that import have been distributed.<\/p><\/dd>\n<dt id=\"are%20distributed%20one-time%20codes%20stored%20in%20the%20activity%20history%3F\"><h3>Are distributed One-Time Codes stored in the activity history?<\/h3><\/dt>\n<dd><p>No. Distributed One-Time Code values are not stored in the activity history.<\/p><\/dd>\n<dt id=\"can%20activity%20history%20be%20cleaned%20up%20automatically%3F\"><h3>Can activity history be cleaned up automatically?<\/h3><\/dt>\n<dd><p>Yes. Voucher Manager provides configurable activity retention and automatic cleanup through WordPress-Cron.<\/p><\/dd>\n<dt id=\"does%20voucher%20manager%20support%20translations%3F\"><h3>Does Voucher Manager support translations?<\/h3><\/dt>\n<dd><p>Yes. Voucher Manager uses the WordPress localization system and supports translations provided through WordPress.org.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Confirmed compatibility with WordPress 7.1 and updated the tested-up-to declaration.<\/li>\n<li>Hardened database query preparation and release validation for current WordPress Plugin Check expectations.<\/li>\n<li>Tightened release packaging so development-only repository files are excluded from the installable ZIP.<\/li>\n<li>Corrected Import guidance: blank rows are ignored, while invalid rows are counted but not imported.<\/li>\n<li>No database schema migration is required.<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Expanded Activity History coverage for Pool administration, Settings changes, Distribution failures, plugin lifecycle events and automatic Activity cleanup.<\/li>\n<li>Added privacy-safe Activity entries for plugin installation, activation, deactivation and retained-data uninstall.<\/li>\n<li>Improved Activity and One-Time Code terminology in administrator-facing copy.<\/li>\n<li>TXT imports now ignore blank lines instead of treating them as importable values.<\/li>\n<li>No database schema migration is required.<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Refined the German Inventory status filter label from \"Alle Status\" to \"Alle\".<\/li>\n<li>No database schema migration is required.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Preserved the Pool name in Activity when a Pool is permanently deleted.<\/li>\n<li>Hide the Undo import action when an Import already contains distributed One-Time Codes.<\/li>\n<li>Aligned German Import undo wording with \"r\u00fcckg\u00e4ngig machen\".<\/li>\n<li>Aligned uninstall copy with the established One-Time Code \/ Einmalcode terminology.<\/li>\n<li>No database schema migration is required.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Added the Pool name to newly completed Import entries in Activity history.<\/li>\n<li>Preserved the Pool ID fallback for existing Import activity recorded before 1.0.4.<\/li>\n<li>No database schema migration is required.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Hardened Distribution against accidental rapid resubmission by separating a completed result from the next Distribution form.<\/li>\n<li>Added an explicit \"Distribute another One-Time Code\" action before a new Distribution intent is created.<\/li>\n<li>Updated the Dashboard credit to \"Made in Austria by MJS-Productions.\"<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Added the Pool name to newly recorded successful Distribution entries in Activity history.<\/li>\n<li>Added remaining inventory information with correct singular and plural wording.<\/li>\n<li>Removed the internal event key from the administrator-facing Activity list.<\/li>\n<li>One-Time Code values and personal data remain excluded from Activity history.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Added the source Pool name to successful Distribution results.<\/li>\n<li>Added an explicit remaining inventory label.<\/li>\n<li>Improved singular and plural wording for remaining One-Time Codes.<\/li>\n<li>Updated German translations for the additional Distribution context.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial stable release of Voucher Manager.<\/li>\n<li>Added pool-based One-Time Code management.<\/li>\n<li>Added TXT and CSV imports with protected rollback.<\/li>\n<li>Added controlled Distribution designed to help prevent duplicate issuance.<\/li>\n<li>Added privacy-conscious Activity history with configurable retention.<\/li>\n<li>Added inventory and pool lifecycle management.<\/li>\n<li>Added configurable data removal during uninstall.<\/li>\n<li>Added English and German administration interfaces.<\/li>\n<\/ul>","raw_excerpt":"Professional One-Time Code Management for WordPress.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/358206","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=358206"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/mjs512"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=358206"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=358206"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=358206"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=358206"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=358206"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=358206"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}