=== DM Download Vault ===
Contributors: digital-market
Tags: woocommerce, digital downloads, secure downloads, download limit, expiring links
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.3.3
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Secure, order-based delivery for WooCommerce digital products.

== Description ==

DM Download Vault imports a private source copy when a product is saved, then creates a private delivery copy for each configured WooCommerce order line. Customers receive a unique high-entropy link with a configurable download limit and expiration. Administrators can revoke or replace links and review an audit log. The plugin can run independently or alongside Digital-Market PLR Pro.

The plugin uses a protected folder under uploads. Apache and IIS deny rules are created automatically. Nginx site owners must add the equivalent deny rule for /wp-content/uploads/dm-download-vault/.

== Features ==

* Per-product protected delivery configuration.
* Unique per-order delivery tokens.
* Download limit and expiry controls.
* Private copied delivery file.
* Revoke and replace link controls.
* Download activity log that hashes IP addresses.
* Optional WooCommerce and PLR Pro workflow.
* Customer overview shortcode: [dm_download_vault].
* Optional self-hosted update connection.

== Free and Pro ==

Free includes five core functions: protected delivery per product, a unique order link, private Vault copies, individual limits and expiry, plus automatic link email.

Pro unlocks delivery management, revocation and replacement links, activity logs, global settings, PLR Pro workflow, the customer portal shortcode and activation via a Digital Market license key.

== Installation ==

1. Upload the ZIP in Plugins > Add New > Upload Plugin.
2. Activate DM Download Vault.
3. Open a WooCommerce product and configure the Download Vault tab.
4. Select a Media Library attachment ID, then save the product.
5. Test with a completed test order before serving customers.

After you confirm that the private source import is displayed in the product panel, you may remove the original public Media Library file if you do not need it elsewhere. Test the order flow first.

== Changelog ==

= 1.3.3 =
* Fixed: Products without protected delivery can be updated with media attachment ID 0 or empty.
* Fixed: Enabled delivery settings require a usable attachment or the existing private source; invalid settings show an admin error and preserve the previous Vault configuration.
* Preserved: Existing private sources remain usable after the original Media Library file is removed.

= 1.3.1 =
* Added: Self-contained Pro activation. The plugin works out of the box in Free; entering a Digital Market key (DMK-XXXX-XXXX-XXXX-XXXX) unlocks Pro locally, without depending on an external license server.
* Improved: License page redesigned as a single "Activate Pro" panel.

= 1.3.0 =
* Added: Pro tools panel with direct access to delivery management, logs and customer portal setup.
* Added: Customer portal can securely request a replacement link with rate limiting.
* Improved: Replacement links now renew the expiry period.

= 1.2.1 =
* Fix: Accept the `active` activation response from Digital Market License Server.

= 1.2.0 =
* Added: Romanian and English selector in the plugin header.
* Added: Footer navigation on all plugin pages.
* Added: About plugin page with Free and Pro plan details.

= 1.1.0 =
* Added: Free and Pro feature tiers.
* Added: Five core Free delivery functions.
* Added: Server-validated gating for advanced Pro functions.

= 1.0.1 =
* Fix: The plugin header and tabs now load only on DM Download Vault administration pages.

= 1.0.0 =
* First GPL release.


== Actualizări Digital Market ==
Versiune: 1.3.3
Identificator produs în License Server: dm-download-vault
Activează cheia în modul și folosește Unelte > Actualizări DM > Verifică acum.
Serverul trebuie să aibă produsul, cheia, versiunea și URL-ul ZIP HTTPS configurate.
Pentru prima instalare a acestui mecanism, încarcă manual ZIP-ul și înlocuiește versiunea veche.
Ediția Free rămâne utilizabilă fără cheie; actualizările private necesită licența validată, iar actualizarea manuală prin ZIP rămâne disponibilă.
