From f7490de69b046db89010e343392826b9d5f5ccf1 Mon Sep 17 00:00:00 2001 From: magdev Date: Thu, 22 Jan 2026 17:35:25 +0100 Subject: [PATCH] Release v0.2.2 - Display file checksums in UI Features: - Add SHA256 column to admin product versions table - Display file hash in customer account downloads section - Style checksum file upload field consistently with package upload Changes: - Admin versions table shows truncated hash with full hash on hover - Customer downloads show hash with shield icon indicator - Updated German translations Co-Authored-By: Claude Opus 4.5 --- CHANGELOG.md | 22 +++- assets/css/admin.css | 7 ++ assets/css/frontend.css | 24 ++++ languages/wc-licensed-product-de_CH.mo | Bin 26815 -> 26845 bytes languages/wc-licensed-product-de_CH.po | 165 +++++++++++++------------ languages/wc-licensed-product.pot | 164 ++++++++++++------------ src/Admin/VersionAdminController.php | 17 ++- src/Frontend/AccountController.php | 1 + templates/frontend/licenses.html.twig | 6 + wc-licensed-product.php | 4 +- 10 files changed, 244 insertions(+), 166 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 467cf1e..fa1fb4a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.2.2] - 2026-01-22 + +### Added + +- SHA256 checksum column in admin product versions table +- File hash display in customer account downloads section +- Visual indicators for file integrity verification + +### Changed + +- Checksum file upload field now styled consistently with package upload field +- Download list items now show truncated hash with full hash on hover + +### Technical Details + +- ProductVersion `getFileHash()` method now exposed in admin and frontend views +- Frontend CSS extended with `.download-hash` styles +- Admin CSS extended with `.file-hash` styles + ## [0.2.1] - 2026-01-22 ### Changed @@ -354,7 +373,8 @@ define('WC_LICENSE_SERVER_SECRET', 'your-secure-random-string-min-32-chars'); - WordPress REST API integration - Custom WooCommerce product type extending WC_Product -[Unreleased]: https://src.bundespruefstelle.ch/magdev/wc-licensed-product/compare/v0.2.1...HEAD +[Unreleased]: https://src.bundespruefstelle.ch/magdev/wc-licensed-product/compare/v0.2.2...HEAD +[0.2.2]: https://src.bundespruefstelle.ch/magdev/wc-licensed-product/compare/v0.2.1...v0.2.2 [0.2.1]: https://src.bundespruefstelle.ch/magdev/wc-licensed-product/compare/v0.2.0...v0.2.1 [0.2.0]: https://src.bundespruefstelle.ch/magdev/wc-licensed-product/compare/v0.1.0...v0.2.0 [0.1.0]: https://src.bundespruefstelle.ch/magdev/wc-licensed-product/compare/v0.0.11...v0.1.0 diff --git a/assets/css/admin.css b/assets/css/admin.css index 17537b7..618bb9a 100644 --- a/assets/css/admin.css +++ b/assets/css/admin.css @@ -43,6 +43,13 @@ font-size: 0.9em; } +/* File Hash */ +code.file-hash { + cursor: help; + font-size: 0.85em; + color: #666; +} + /* License Product Tab */ #woocommerce-product-data .show_if_licensed { display: block !important; diff --git a/assets/css/frontend.css b/assets/css/frontend.css index 860cf71..bde49eb 100644 --- a/assets/css/frontend.css +++ b/assets/css/frontend.css @@ -247,6 +247,30 @@ margin-left: auto; } +.download-hash { + display: inline-flex; + align-items: center; + gap: 0.25em; + font-size: 0.8em; + color: #666; +} + +.download-hash .dashicons { + font-size: 14px; + width: 14px; + height: 14px; + color: #28a745; +} + +.download-hash code { + font-family: 'SF Mono', Monaco, Consolas, monospace; + background: #f5f5f5; + padding: 0.2em 0.4em; + border-radius: 3px; + font-size: 0.9em; + color: #666; +} + /* Domain Field */ #licensed-product-domain-field { margin-top: 2em; diff --git a/languages/wc-licensed-product-de_CH.mo b/languages/wc-licensed-product-de_CH.mo index c1d13da73957beb2ebd80c9092f02ae9678c885f..e3dcc68b8af2e4a8c61430b53033b9b1c3734482 100644 GIT binary patch delta 5866 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 delta 5838 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\n" "Language-Team: German (Switzerland) \n" @@ -81,7 +81,7 @@ msgstr "Bearbeiten" #: src/Admin/AdminController.php:146 src/Admin/AdminController.php:1303 #: src/Admin/AdminController.php:1323 src/Admin/AdminController.php:1344 #: src/Admin/OrderLicenseController.php:185 -#: src/Frontend/AccountController.php:270 +#: src/Frontend/AccountController.php:271 msgid "Cancel" msgstr "Abbrechen" @@ -99,25 +99,25 @@ msgstr "Speichern" msgid "Lifetime" msgstr "Lebenslang" -#: src/Admin/AdminController.php:149 src/Frontend/AccountController.php:308 +#: src/Admin/AdminController.php:149 src/Frontend/AccountController.php:309 msgid "Copied!" msgstr "Kopiert!" -#: src/Admin/AdminController.php:150 src/Frontend/AccountController.php:309 +#: src/Admin/AdminController.php:150 src/Frontend/AccountController.php:310 msgid "Copy failed" msgstr "Kopieren fehlgeschlagen" #: src/Admin/AdminController.php:153 src/Admin/AdminController.php:875 #: src/Admin/AdminController.php:1194 src/Admin/AdminController.php:1317 -#: src/Admin/VersionAdminController.php:172 -#: src/Admin/VersionAdminController.php:394 +#: src/Admin/VersionAdminController.php:180 +#: src/Admin/VersionAdminController.php:409 msgid "Active" msgstr "Aktiv" #: src/Admin/AdminController.php:154 src/Admin/AdminController.php:882 #: src/Admin/AdminController.php:1195 src/Admin/AdminController.php:1318 -#: src/Admin/VersionAdminController.php:172 -#: src/Admin/VersionAdminController.php:394 +#: src/Admin/VersionAdminController.php:180 +#: src/Admin/VersionAdminController.php:409 msgid "Inactive" msgstr "Inaktiv" @@ -135,9 +135,9 @@ msgstr "Widerrufen" #: src/Admin/AdminController.php:246 src/Admin/AdminController.php:298 #: src/Admin/AdminController.php:336 src/Admin/OrderLicenseController.php:301 #: src/Admin/OrderLicenseController.php:340 -#: src/Admin/VersionAdminController.php:249 -#: src/Admin/VersionAdminController.php:318 -#: src/Admin/VersionAdminController.php:344 +#: src/Admin/VersionAdminController.php:257 +#: src/Admin/VersionAdminController.php:326 +#: src/Admin/VersionAdminController.php:352 msgid "Permission denied." msgstr "Zugriff verweigert." @@ -208,7 +208,7 @@ msgstr "Lizenz konnte nicht widerrufen werden." #: src/Admin/AdminController.php:466 src/Admin/AdminController.php:484 #: src/Admin/AdminController.php:504 src/Admin/AdminController.php:522 #: src/Admin/AdminController.php:589 src/Admin/AdminController.php:779 -#: src/Frontend/AccountController.php:325 +#: src/Frontend/AccountController.php:326 msgid "Security check failed." msgstr "Sicherheitsüberprüfung fehlgeschlagen." @@ -430,14 +430,14 @@ msgid "Bulk Actions" msgstr "Massenaktionen" #: src/Admin/AdminController.php:1235 src/Admin/AdminController.php:1407 -#: src/Admin/VersionAdminController.php:178 -#: src/Admin/VersionAdminController.php:400 +#: src/Admin/VersionAdminController.php:186 +#: src/Admin/VersionAdminController.php:415 msgid "Activate" msgstr "Aktivieren" #: src/Admin/AdminController.php:1236 src/Admin/AdminController.php:1408 -#: src/Admin/VersionAdminController.php:178 -#: src/Admin/VersionAdminController.php:400 +#: src/Admin/VersionAdminController.php:186 +#: src/Admin/VersionAdminController.php:415 msgid "Deactivate" msgstr "Deaktivieren" @@ -459,8 +459,8 @@ msgid "Extend 1 year" msgstr "1 Jahr verlängern" #: src/Admin/AdminController.php:1241 src/Admin/AdminController.php:1377 -#: src/Admin/AdminController.php:1413 src/Admin/VersionAdminController.php:181 -#: src/Admin/VersionAdminController.php:403 +#: src/Admin/AdminController.php:1413 src/Admin/VersionAdminController.php:189 +#: src/Admin/VersionAdminController.php:418 msgid "Delete" msgstr "Löschen" @@ -492,7 +492,7 @@ msgstr "Domain" #: src/Admin/AdminController.php:1257 src/Admin/AdminController.php:1395 #: src/Admin/OrderLicenseController.php:147 -#: src/Admin/VersionAdminController.php:139 +#: src/Admin/VersionAdminController.php:140 msgid "Status" msgstr "Status" @@ -508,7 +508,7 @@ msgstr "Läuft ab" #: src/Admin/AdminController.php:1260 src/Admin/AdminController.php:1398 #: src/Admin/OrderLicenseController.php:149 -#: src/Admin/VersionAdminController.php:141 +#: src/Admin/VersionAdminController.php:142 msgid "Actions" msgstr "Aktionen" @@ -516,7 +516,7 @@ msgstr "Aktionen" msgid "No licenses found." msgstr "Keine Lizenzen gefunden." -#: src/Admin/AdminController.php:1276 src/Frontend/AccountController.php:193 +#: src/Admin/AdminController.php:1276 src/Frontend/AccountController.php:194 msgid "Copy to clipboard" msgstr "In Zwischenablage kopieren" @@ -718,8 +718,8 @@ msgid "Error saving. Please try again." msgstr "Fehler beim Speichern. Bitte versuchen Sie es erneut." #: src/Admin/OrderLicenseController.php:288 -#: src/Frontend/AccountController.php:313 -#: src/Frontend/AccountController.php:345 +#: src/Frontend/AccountController.php:314 +#: src/Frontend/AccountController.php:346 msgid "Please enter a valid domain." msgstr "Bitte geben Sie eine gültige Domain ein." @@ -737,7 +737,7 @@ msgid "Order domain updated." msgstr "Bestellungs-Domain aktualisiert." #: src/Admin/OrderLicenseController.php:363 -#: src/Frontend/AccountController.php:351 +#: src/Frontend/AccountController.php:352 #: src/Frontend/DownloadController.php:105 msgid "License not found." msgstr "Lizenz nicht gefunden." @@ -890,7 +890,7 @@ msgstr "" "Dateiintegrität zu überprüfen." #: src/Admin/VersionAdminController.php:116 -#: src/Admin/VersionAdminController.php:138 +#: src/Admin/VersionAdminController.php:139 msgid "Release Notes" msgstr "Versionshinweise" @@ -902,107 +902,111 @@ msgstr "Version hinzufügen" msgid "Existing Versions" msgstr "Vorhandene Versionen" -#: src/Admin/VersionAdminController.php:140 +#: src/Admin/VersionAdminController.php:138 +msgid "SHA256" +msgstr "SHA256" + +#: src/Admin/VersionAdminController.php:141 msgid "Released" msgstr "Veröffentlicht" -#: src/Admin/VersionAdminController.php:147 +#: src/Admin/VersionAdminController.php:148 msgid "No versions found. Add your first version above." msgstr "Keine Versionen gefunden. Fügen Sie Ihre erste Version oben hinzu." -#: src/Admin/VersionAdminController.php:163 -#: src/Admin/VersionAdminController.php:385 +#: src/Admin/VersionAdminController.php:164 +#: src/Admin/VersionAdminController.php:393 msgid "Uploaded file" msgstr "Hochgeladene Datei" -#: src/Admin/VersionAdminController.php:166 -#: src/Admin/VersionAdminController.php:388 +#: src/Admin/VersionAdminController.php:167 +#: src/Admin/VersionAdminController.php:396 msgid "No download file" msgstr "Keine Download-Datei" -#: src/Admin/VersionAdminController.php:222 +#: src/Admin/VersionAdminController.php:230 msgid "Are you sure you want to delete this version?" msgstr "Sind Sie sicher, dass Sie diese Version löschen möchten?" -#: src/Admin/VersionAdminController.php:223 +#: src/Admin/VersionAdminController.php:231 msgid "Please enter a version number." msgstr "Bitte geben Sie eine Versionsnummer ein." -#: src/Admin/VersionAdminController.php:224 +#: src/Admin/VersionAdminController.php:232 msgid "Please enter a valid version number (e.g., 1.0.0)." msgstr "Bitte geben Sie eine gültige Versionsnummer ein (z.B. 1.0.0)." -#: src/Admin/VersionAdminController.php:225 +#: src/Admin/VersionAdminController.php:233 msgid "An error occurred. Please try again." msgstr "Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut." -#: src/Admin/VersionAdminController.php:226 +#: src/Admin/VersionAdminController.php:234 msgid "Select Download File" msgstr "Download-Datei auswählen" -#: src/Admin/VersionAdminController.php:227 +#: src/Admin/VersionAdminController.php:235 msgid "Use this file" msgstr "Diese Datei verwenden" -#: src/Admin/VersionAdminController.php:228 +#: src/Admin/VersionAdminController.php:236 msgid "" "Invalid checksum file format. File must contain a 64-character SHA256 hash." msgstr "" "Ungültiges Prüfsummendateiformat. Die Datei muss einen 64-stelligen SHA256-" "Hash enthalten." -#: src/Admin/VersionAdminController.php:229 +#: src/Admin/VersionAdminController.php:237 msgid "Failed to read checksum file." msgstr "Prüfsummendatei konnte nicht gelesen werden." -#: src/Admin/VersionAdminController.php:259 +#: src/Admin/VersionAdminController.php:267 msgid "Product ID and version are required." msgstr "Produkt-ID und Version sind erforderlich." -#: src/Admin/VersionAdminController.php:264 +#: src/Admin/VersionAdminController.php:272 msgid "Invalid version format. Use semantic versioning (e.g., 1.0.0)." msgstr "" "Ungültiges Versionsformat. Verwenden Sie semantische Versionierung (z.B. " "1.0.0)." -#: src/Admin/VersionAdminController.php:269 +#: src/Admin/VersionAdminController.php:277 msgid "This version already exists." msgstr "Diese Version existiert bereits." -#: src/Admin/VersionAdminController.php:275 +#: src/Admin/VersionAdminController.php:283 msgid "Product not found." msgstr "Produkt nicht gefunden." -#: src/Admin/VersionAdminController.php:279 +#: src/Admin/VersionAdminController.php:287 msgid "This product is not a licensed product." msgstr "Dieses Produkt ist kein lizensiertes Produkt." -#: src/Admin/VersionAdminController.php:296 +#: src/Admin/VersionAdminController.php:304 msgid "Failed to create version." msgstr "Version konnte nicht erstellt werden." -#: src/Admin/VersionAdminController.php:304 +#: src/Admin/VersionAdminController.php:312 msgid "Version added successfully." msgstr "Version erfolgreich hinzugefügt." -#: src/Admin/VersionAdminController.php:324 -#: src/Admin/VersionAdminController.php:351 +#: src/Admin/VersionAdminController.php:332 +#: src/Admin/VersionAdminController.php:359 msgid "Version ID is required." msgstr "Versions-ID ist erforderlich." -#: src/Admin/VersionAdminController.php:330 +#: src/Admin/VersionAdminController.php:338 msgid "Failed to delete version." msgstr "Version konnte nicht gelöscht werden." -#: src/Admin/VersionAdminController.php:333 +#: src/Admin/VersionAdminController.php:341 msgid "Version deleted successfully." msgstr "Version erfolgreich gelöscht." -#: src/Admin/VersionAdminController.php:357 +#: src/Admin/VersionAdminController.php:365 msgid "Failed to update version." msgstr "Version konnte nicht aktualisiert werden." -#: src/Admin/VersionAdminController.php:361 +#: src/Admin/VersionAdminController.php:369 msgid "Version updated successfully." msgstr "Version erfolgreich aktualisiert." @@ -1084,7 +1088,7 @@ msgstr "Domain für Lizenz-Aktivierung" #: src/Email/LicenseEmailController.php:281 #: src/Email/LicenseExpirationEmail.php:207 #: src/Email/LicenseExpirationEmail.php:270 -#: src/Frontend/AccountController.php:189 +#: src/Frontend/AccountController.php:190 msgid "License Key:" msgstr "Lizenzschlüssel:" @@ -1099,7 +1103,7 @@ msgstr "Lizensierte Domain:" #: src/Email/LicenseEmailController.php:248 #: src/Email/LicenseEmailController.php:287 -#: src/Frontend/AccountController.php:217 +#: src/Frontend/AccountController.php:218 msgid "Never" msgstr "Nie" @@ -1116,7 +1120,7 @@ msgstr "IHRE LIZENZSCHLÜSSEL" #: src/Email/LicenseEmailController.php:284 #: src/Email/LicenseExpirationEmail.php:219 #: src/Email/LicenseExpirationEmail.php:272 -#: src/Frontend/AccountController.php:212 +#: src/Frontend/AccountController.php:213 msgid "Expires:" msgstr "Läuft ab:" @@ -1145,7 +1149,7 @@ msgid "License Expiration Notice" msgstr "Lizenzablauf-Benachrichtigung" #: src/Email/LicenseExpirationEmail.php:107 -#: src/Frontend/AccountController.php:139 src/License/LicenseManager.php:760 +#: src/Frontend/AccountController.php:140 src/License/LicenseManager.php:760 msgid "Unknown Product" msgstr "Unbekanntes Produkt" @@ -1179,7 +1183,7 @@ msgstr "Produkt:" #: src/Email/LicenseExpirationEmail.php:215 #: src/Email/LicenseExpirationEmail.php:271 -#: src/Frontend/AccountController.php:200 +#: src/Frontend/AccountController.php:201 msgid "Domain:" msgstr "Domain:" @@ -1237,61 +1241,61 @@ msgstr "Wählen Sie, welches E-Mail-Format gesendet werden soll." msgid "Please log in to view your licenses." msgstr "Bitte melden Sie sich an, um Ihre Lizenzen zu sehen." -#: src/Frontend/AccountController.php:164 +#: src/Frontend/AccountController.php:165 msgid "You have no licenses yet." msgstr "Sie haben noch keine Lizenzen." -#: src/Frontend/AccountController.php:206 +#: src/Frontend/AccountController.php:207 msgid "Transfer to new domain" msgstr "Auf neue Domain übertragen" -#: src/Frontend/AccountController.php:208 +#: src/Frontend/AccountController.php:209 msgid "Transfer" msgstr "Übertragen" -#: src/Frontend/AccountController.php:225 +#: src/Frontend/AccountController.php:226 msgid "Available Downloads" msgstr "Verfügbare Downloads" -#: src/Frontend/AccountController.php:231 +#: src/Frontend/AccountController.php:232 #, php-format msgid "Version %s" msgstr "Version %s" -#: src/Frontend/AccountController.php:248 +#: src/Frontend/AccountController.php:249 msgid "Close" msgstr "Schliessen" -#: src/Frontend/AccountController.php:249 +#: src/Frontend/AccountController.php:250 msgid "Transfer License to New Domain" msgstr "Lizenz auf neue Domain übertragen" -#: src/Frontend/AccountController.php:254 +#: src/Frontend/AccountController.php:255 msgid "Current Domain" msgstr "Aktuelle Domain" -#: src/Frontend/AccountController.php:259 +#: src/Frontend/AccountController.php:260 msgid "New Domain" msgstr "Neue Domain" -#: src/Frontend/AccountController.php:263 +#: src/Frontend/AccountController.php:264 msgid "Enter the new domain without http:// or www." msgstr "Geben Sie die neue Domain ohne http:// oder www ein." -#: src/Frontend/AccountController.php:268 +#: src/Frontend/AccountController.php:269 msgid "Transfer License" msgstr "Lizenz übertragen" -#: src/Frontend/AccountController.php:310 -#: src/Frontend/AccountController.php:377 +#: src/Frontend/AccountController.php:311 +#: src/Frontend/AccountController.php:378 msgid "License transferred successfully!" msgstr "Lizenz erfolgreich übertragen!" -#: src/Frontend/AccountController.php:311 +#: src/Frontend/AccountController.php:312 msgid "Transfer failed. Please try again." msgstr "Übertragung fehlgeschlagen. Bitte versuchen Sie es erneut." -#: src/Frontend/AccountController.php:312 +#: src/Frontend/AccountController.php:313 msgid "" "Are you sure you want to transfer this license to a new domain? This action " "cannot be undone." @@ -1299,31 +1303,31 @@ msgstr "" "Sind Sie sicher, dass Sie diese Lizenz auf eine neue Domain übertragen " "möchten? Diese Aktion kann nicht rückgängig gemacht werden." -#: src/Frontend/AccountController.php:331 +#: src/Frontend/AccountController.php:332 msgid "Please log in to transfer a license." msgstr "Bitte melden Sie sich an, um eine Lizenz zu übertragen." -#: src/Frontend/AccountController.php:337 +#: src/Frontend/AccountController.php:338 msgid "Invalid license." msgstr "Ungültige Lizenz." -#: src/Frontend/AccountController.php:355 +#: src/Frontend/AccountController.php:356 msgid "You do not have permission to transfer this license." msgstr "Sie haben keine Berechtigung, diese Lizenz zu übertragen." -#: src/Frontend/AccountController.php:360 +#: src/Frontend/AccountController.php:361 msgid "Revoked licenses cannot be transferred." msgstr "Widerrufene Lizenzen können nicht übertragen werden." -#: src/Frontend/AccountController.php:364 +#: src/Frontend/AccountController.php:365 msgid "Expired licenses cannot be transferred." msgstr "Abgelaufene Lizenzen können nicht übertragen werden." -#: src/Frontend/AccountController.php:369 +#: src/Frontend/AccountController.php:370 msgid "The new domain is the same as the current domain." msgstr "Die neue Domain ist dieselbe wie die aktuelle Domain." -#: src/Frontend/AccountController.php:381 +#: src/Frontend/AccountController.php:382 msgid "Failed to transfer license. Please try again." msgstr "Lizenzübertragung fehlgeschlagen. Bitte versuchen Sie es erneut." @@ -1473,9 +1477,6 @@ msgstr "Datei-Prüfsumme stimmt nicht überein. Erwartet: %1$s, Erhalten: %2$s" #~ "Alternativ: Geben Sie eine externe Download-URL ein, anstatt eine Datei " #~ "hochzuladen." -#~ msgid "SHA256 Hash" -#~ msgstr "SHA256 Prüfsumme" - #~ msgid "Enter SHA256 checksum..." #~ msgstr "SHA256 Prüfsumme eingeben..." diff --git a/languages/wc-licensed-product.pot b/languages/wc-licensed-product.pot index ce86959..b71c042 100644 --- a/languages/wc-licensed-product.pot +++ b/languages/wc-licensed-product.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: WooCommerce Licensed Product 0.2.1\n" +"Project-Id-Version: WooCommerce Licensed Product 0.2.2\n" "Report-Msgid-Bugs-To: magdev3.0@gmail.com\n" -"POT-Creation-Date: 2026-01-22 17:25+0100\n" +"POT-Creation-Date: 2026-01-22 17:32+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -80,7 +80,7 @@ msgstr "" #: src/Admin/AdminController.php:146 src/Admin/AdminController.php:1303 #: src/Admin/AdminController.php:1323 src/Admin/AdminController.php:1344 #: src/Admin/OrderLicenseController.php:185 -#: src/Frontend/AccountController.php:270 +#: src/Frontend/AccountController.php:271 msgid "Cancel" msgstr "" @@ -98,25 +98,25 @@ msgstr "" msgid "Lifetime" msgstr "" -#: src/Admin/AdminController.php:149 src/Frontend/AccountController.php:308 +#: src/Admin/AdminController.php:149 src/Frontend/AccountController.php:309 msgid "Copied!" msgstr "" -#: src/Admin/AdminController.php:150 src/Frontend/AccountController.php:309 +#: src/Admin/AdminController.php:150 src/Frontend/AccountController.php:310 msgid "Copy failed" msgstr "" #: src/Admin/AdminController.php:153 src/Admin/AdminController.php:875 #: src/Admin/AdminController.php:1194 src/Admin/AdminController.php:1317 -#: src/Admin/VersionAdminController.php:172 -#: src/Admin/VersionAdminController.php:394 +#: src/Admin/VersionAdminController.php:180 +#: src/Admin/VersionAdminController.php:409 msgid "Active" msgstr "" #: src/Admin/AdminController.php:154 src/Admin/AdminController.php:882 #: src/Admin/AdminController.php:1195 src/Admin/AdminController.php:1318 -#: src/Admin/VersionAdminController.php:172 -#: src/Admin/VersionAdminController.php:394 +#: src/Admin/VersionAdminController.php:180 +#: src/Admin/VersionAdminController.php:409 msgid "Inactive" msgstr "" @@ -134,9 +134,9 @@ msgstr "" #: src/Admin/AdminController.php:246 src/Admin/AdminController.php:298 #: src/Admin/AdminController.php:336 src/Admin/OrderLicenseController.php:301 #: src/Admin/OrderLicenseController.php:340 -#: src/Admin/VersionAdminController.php:249 -#: src/Admin/VersionAdminController.php:318 -#: src/Admin/VersionAdminController.php:344 +#: src/Admin/VersionAdminController.php:257 +#: src/Admin/VersionAdminController.php:326 +#: src/Admin/VersionAdminController.php:352 msgid "Permission denied." msgstr "" @@ -207,7 +207,7 @@ msgstr "" #: src/Admin/AdminController.php:466 src/Admin/AdminController.php:484 #: src/Admin/AdminController.php:504 src/Admin/AdminController.php:522 #: src/Admin/AdminController.php:589 src/Admin/AdminController.php:779 -#: src/Frontend/AccountController.php:325 +#: src/Frontend/AccountController.php:326 msgid "Security check failed." msgstr "" @@ -427,14 +427,14 @@ msgid "Bulk Actions" msgstr "" #: src/Admin/AdminController.php:1235 src/Admin/AdminController.php:1407 -#: src/Admin/VersionAdminController.php:178 -#: src/Admin/VersionAdminController.php:400 +#: src/Admin/VersionAdminController.php:186 +#: src/Admin/VersionAdminController.php:415 msgid "Activate" msgstr "" #: src/Admin/AdminController.php:1236 src/Admin/AdminController.php:1408 -#: src/Admin/VersionAdminController.php:178 -#: src/Admin/VersionAdminController.php:400 +#: src/Admin/VersionAdminController.php:186 +#: src/Admin/VersionAdminController.php:415 msgid "Deactivate" msgstr "" @@ -456,8 +456,8 @@ msgid "Extend 1 year" msgstr "" #: src/Admin/AdminController.php:1241 src/Admin/AdminController.php:1377 -#: src/Admin/AdminController.php:1413 src/Admin/VersionAdminController.php:181 -#: src/Admin/VersionAdminController.php:403 +#: src/Admin/AdminController.php:1413 src/Admin/VersionAdminController.php:189 +#: src/Admin/VersionAdminController.php:418 msgid "Delete" msgstr "" @@ -489,7 +489,7 @@ msgstr "" #: src/Admin/AdminController.php:1257 src/Admin/AdminController.php:1395 #: src/Admin/OrderLicenseController.php:147 -#: src/Admin/VersionAdminController.php:139 +#: src/Admin/VersionAdminController.php:140 msgid "Status" msgstr "" @@ -505,7 +505,7 @@ msgstr "" #: src/Admin/AdminController.php:1260 src/Admin/AdminController.php:1398 #: src/Admin/OrderLicenseController.php:149 -#: src/Admin/VersionAdminController.php:141 +#: src/Admin/VersionAdminController.php:142 msgid "Actions" msgstr "" @@ -513,7 +513,7 @@ msgstr "" msgid "No licenses found." msgstr "" -#: src/Admin/AdminController.php:1276 src/Frontend/AccountController.php:193 +#: src/Admin/AdminController.php:1276 src/Frontend/AccountController.php:194 msgid "Copy to clipboard" msgstr "" @@ -701,8 +701,8 @@ msgid "Error saving. Please try again." msgstr "" #: src/Admin/OrderLicenseController.php:288 -#: src/Frontend/AccountController.php:313 -#: src/Frontend/AccountController.php:345 +#: src/Frontend/AccountController.php:314 +#: src/Frontend/AccountController.php:346 msgid "Please enter a valid domain." msgstr "" @@ -720,7 +720,7 @@ msgid "Order domain updated." msgstr "" #: src/Admin/OrderLicenseController.php:363 -#: src/Frontend/AccountController.php:351 +#: src/Frontend/AccountController.php:352 #: src/Frontend/DownloadController.php:105 msgid "License not found." msgstr "" @@ -858,7 +858,7 @@ msgid "" msgstr "" #: src/Admin/VersionAdminController.php:116 -#: src/Admin/VersionAdminController.php:138 +#: src/Admin/VersionAdminController.php:139 msgid "Release Notes" msgstr "" @@ -870,103 +870,107 @@ msgstr "" msgid "Existing Versions" msgstr "" -#: src/Admin/VersionAdminController.php:140 +#: src/Admin/VersionAdminController.php:138 +msgid "SHA256" +msgstr "" + +#: src/Admin/VersionAdminController.php:141 msgid "Released" msgstr "" -#: src/Admin/VersionAdminController.php:147 +#: src/Admin/VersionAdminController.php:148 msgid "No versions found. Add your first version above." msgstr "" -#: src/Admin/VersionAdminController.php:163 -#: src/Admin/VersionAdminController.php:385 +#: src/Admin/VersionAdminController.php:164 +#: src/Admin/VersionAdminController.php:393 msgid "Uploaded file" msgstr "" -#: src/Admin/VersionAdminController.php:166 -#: src/Admin/VersionAdminController.php:388 +#: src/Admin/VersionAdminController.php:167 +#: src/Admin/VersionAdminController.php:396 msgid "No download file" msgstr "" -#: src/Admin/VersionAdminController.php:222 +#: src/Admin/VersionAdminController.php:230 msgid "Are you sure you want to delete this version?" msgstr "" -#: src/Admin/VersionAdminController.php:223 +#: src/Admin/VersionAdminController.php:231 msgid "Please enter a version number." msgstr "" -#: src/Admin/VersionAdminController.php:224 +#: src/Admin/VersionAdminController.php:232 msgid "Please enter a valid version number (e.g., 1.0.0)." msgstr "" -#: src/Admin/VersionAdminController.php:225 +#: src/Admin/VersionAdminController.php:233 msgid "An error occurred. Please try again." msgstr "" -#: src/Admin/VersionAdminController.php:226 +#: src/Admin/VersionAdminController.php:234 msgid "Select Download File" msgstr "" -#: src/Admin/VersionAdminController.php:227 +#: src/Admin/VersionAdminController.php:235 msgid "Use this file" msgstr "" -#: src/Admin/VersionAdminController.php:228 +#: src/Admin/VersionAdminController.php:236 msgid "" "Invalid checksum file format. File must contain a 64-character SHA256 hash." msgstr "" -#: src/Admin/VersionAdminController.php:229 +#: src/Admin/VersionAdminController.php:237 msgid "Failed to read checksum file." msgstr "" -#: src/Admin/VersionAdminController.php:259 +#: src/Admin/VersionAdminController.php:267 msgid "Product ID and version are required." msgstr "" -#: src/Admin/VersionAdminController.php:264 +#: src/Admin/VersionAdminController.php:272 msgid "Invalid version format. Use semantic versioning (e.g., 1.0.0)." msgstr "" -#: src/Admin/VersionAdminController.php:269 +#: src/Admin/VersionAdminController.php:277 msgid "This version already exists." msgstr "" -#: src/Admin/VersionAdminController.php:275 +#: src/Admin/VersionAdminController.php:283 msgid "Product not found." msgstr "" -#: src/Admin/VersionAdminController.php:279 +#: src/Admin/VersionAdminController.php:287 msgid "This product is not a licensed product." msgstr "" -#: src/Admin/VersionAdminController.php:296 +#: src/Admin/VersionAdminController.php:304 msgid "Failed to create version." msgstr "" -#: src/Admin/VersionAdminController.php:304 +#: src/Admin/VersionAdminController.php:312 msgid "Version added successfully." msgstr "" -#: src/Admin/VersionAdminController.php:324 -#: src/Admin/VersionAdminController.php:351 +#: src/Admin/VersionAdminController.php:332 +#: src/Admin/VersionAdminController.php:359 msgid "Version ID is required." msgstr "" -#: src/Admin/VersionAdminController.php:330 +#: src/Admin/VersionAdminController.php:338 msgid "Failed to delete version." msgstr "" -#: src/Admin/VersionAdminController.php:333 +#: src/Admin/VersionAdminController.php:341 msgid "Version deleted successfully." msgstr "" -#: src/Admin/VersionAdminController.php:357 +#: src/Admin/VersionAdminController.php:365 msgid "Failed to update version." msgstr "" -#: src/Admin/VersionAdminController.php:361 +#: src/Admin/VersionAdminController.php:369 msgid "Version updated successfully." msgstr "" @@ -1046,7 +1050,7 @@ msgstr "" #: src/Email/LicenseEmailController.php:281 #: src/Email/LicenseExpirationEmail.php:207 #: src/Email/LicenseExpirationEmail.php:270 -#: src/Frontend/AccountController.php:189 +#: src/Frontend/AccountController.php:190 msgid "License Key:" msgstr "" @@ -1061,7 +1065,7 @@ msgstr "" #: src/Email/LicenseEmailController.php:248 #: src/Email/LicenseEmailController.php:287 -#: src/Frontend/AccountController.php:217 +#: src/Frontend/AccountController.php:218 msgid "Never" msgstr "" @@ -1077,7 +1081,7 @@ msgstr "" #: src/Email/LicenseEmailController.php:284 #: src/Email/LicenseExpirationEmail.php:219 #: src/Email/LicenseExpirationEmail.php:272 -#: src/Frontend/AccountController.php:212 +#: src/Frontend/AccountController.php:213 msgid "Expires:" msgstr "" @@ -1102,7 +1106,7 @@ msgid "License Expiration Notice" msgstr "" #: src/Email/LicenseExpirationEmail.php:107 -#: src/Frontend/AccountController.php:139 src/License/LicenseManager.php:760 +#: src/Frontend/AccountController.php:140 src/License/LicenseManager.php:760 msgid "Unknown Product" msgstr "" @@ -1136,7 +1140,7 @@ msgstr "" #: src/Email/LicenseExpirationEmail.php:215 #: src/Email/LicenseExpirationEmail.php:271 -#: src/Frontend/AccountController.php:200 +#: src/Frontend/AccountController.php:201 msgid "Domain:" msgstr "" @@ -1192,91 +1196,91 @@ msgstr "" msgid "Please log in to view your licenses." msgstr "" -#: src/Frontend/AccountController.php:164 +#: src/Frontend/AccountController.php:165 msgid "You have no licenses yet." msgstr "" -#: src/Frontend/AccountController.php:206 +#: src/Frontend/AccountController.php:207 msgid "Transfer to new domain" msgstr "" -#: src/Frontend/AccountController.php:208 +#: src/Frontend/AccountController.php:209 msgid "Transfer" msgstr "" -#: src/Frontend/AccountController.php:225 +#: src/Frontend/AccountController.php:226 msgid "Available Downloads" msgstr "" -#: src/Frontend/AccountController.php:231 +#: src/Frontend/AccountController.php:232 #, php-format msgid "Version %s" msgstr "" -#: src/Frontend/AccountController.php:248 +#: src/Frontend/AccountController.php:249 msgid "Close" msgstr "" -#: src/Frontend/AccountController.php:249 +#: src/Frontend/AccountController.php:250 msgid "Transfer License to New Domain" msgstr "" -#: src/Frontend/AccountController.php:254 +#: src/Frontend/AccountController.php:255 msgid "Current Domain" msgstr "" -#: src/Frontend/AccountController.php:259 +#: src/Frontend/AccountController.php:260 msgid "New Domain" msgstr "" -#: src/Frontend/AccountController.php:263 +#: src/Frontend/AccountController.php:264 msgid "Enter the new domain without http:// or www." msgstr "" -#: src/Frontend/AccountController.php:268 +#: src/Frontend/AccountController.php:269 msgid "Transfer License" msgstr "" -#: src/Frontend/AccountController.php:310 -#: src/Frontend/AccountController.php:377 +#: src/Frontend/AccountController.php:311 +#: src/Frontend/AccountController.php:378 msgid "License transferred successfully!" msgstr "" -#: src/Frontend/AccountController.php:311 +#: src/Frontend/AccountController.php:312 msgid "Transfer failed. Please try again." msgstr "" -#: src/Frontend/AccountController.php:312 +#: src/Frontend/AccountController.php:313 msgid "" "Are you sure you want to transfer this license to a new domain? This action " "cannot be undone." msgstr "" -#: src/Frontend/AccountController.php:331 +#: src/Frontend/AccountController.php:332 msgid "Please log in to transfer a license." msgstr "" -#: src/Frontend/AccountController.php:337 +#: src/Frontend/AccountController.php:338 msgid "Invalid license." msgstr "" -#: src/Frontend/AccountController.php:355 +#: src/Frontend/AccountController.php:356 msgid "You do not have permission to transfer this license." msgstr "" -#: src/Frontend/AccountController.php:360 +#: src/Frontend/AccountController.php:361 msgid "Revoked licenses cannot be transferred." msgstr "" -#: src/Frontend/AccountController.php:364 +#: src/Frontend/AccountController.php:365 msgid "Expired licenses cannot be transferred." msgstr "" -#: src/Frontend/AccountController.php:369 +#: src/Frontend/AccountController.php:370 msgid "The new domain is the same as the current domain." msgstr "" -#: src/Frontend/AccountController.php:381 +#: src/Frontend/AccountController.php:382 msgid "Failed to transfer license. Please try again." msgstr "" diff --git a/src/Admin/VersionAdminController.php b/src/Admin/VersionAdminController.php index 8a61aa3..24bfcc0 100644 --- a/src/Admin/VersionAdminController.php +++ b/src/Admin/VersionAdminController.php @@ -135,6 +135,7 @@ final class VersionAdminController + @@ -144,7 +145,7 @@ final class VersionAdminController - + @@ -166,6 +167,13 @@ final class VersionAdminController + + getFileHash()): ?> + getFileHash(), 0, 12)); ?>... + + + + getReleaseNotes() ? wp_trim_words($version->getReleaseNotes(), 10) : '—'); ?> @@ -388,6 +396,13 @@ final class VersionAdminController + + getFileHash()): ?> + getFileHash(), 0, 12)); ?>... + + + + getReleaseNotes() ? wp_trim_words($version->getReleaseNotes(), 10) : '—'); ?> diff --git a/src/Frontend/AccountController.php b/src/Frontend/AccountController.php index 1a9af4f..78c0b96 100644 --- a/src/Frontend/AccountController.php +++ b/src/Frontend/AccountController.php @@ -129,6 +129,7 @@ final class AccountController ), 'release_notes' => $version->getReleaseNotes(), 'released_at' => $version->getReleasedAt()->format(get_option('date_format')), + 'file_hash' => $version->getFileHash(), ]; } } diff --git a/templates/frontend/licenses.html.twig b/templates/frontend/licenses.html.twig index 2693b2c..9bcadc8 100644 --- a/templates/frontend/licenses.html.twig +++ b/templates/frontend/licenses.html.twig @@ -64,6 +64,12 @@ v{{ esc_html(download.version) }} {{ esc_html(download.released_at) }} + {% if download.file_hash %} + + + {{ download.file_hash[:12] }}... + + {% endif %} {% endfor %} diff --git a/wc-licensed-product.php b/wc-licensed-product.php index bb47bb4..cf2b18b 100644 --- a/wc-licensed-product.php +++ b/wc-licensed-product.php @@ -3,7 +3,7 @@ * Plugin Name: WooCommerce Licensed Product * Plugin URI: https://src.bundespruefstelle.ch/magdev/wc-licensed-product * Description: WooCommerce plugin to sell software products using license keys with domain-based validation. - * Version: 0.2.1 + * Version: 0.2.2 * Author: Marco Graetsch * Author URI: https://src.bundespruefstelle.ch/magdev * License: GPL-2.0-or-later @@ -28,7 +28,7 @@ if (!defined('ABSPATH')) { } // Plugin constants -define('WC_LICENSED_PRODUCT_VERSION', '0.2.1'); +define('WC_LICENSED_PRODUCT_VERSION', '0.2.2'); define('WC_LICENSED_PRODUCT_PLUGIN_FILE', __FILE__); define('WC_LICENSED_PRODUCT_PLUGIN_DIR', plugin_dir_path(__FILE__)); define('WC_LICENSED_PRODUCT_PLUGIN_URL', plugin_dir_url(__FILE__));