## Version 3.0.7 (2025-11-28) - CRITICAL ZIP STRUCTURE FIX + ALL PREVIOUS FIXES
NOTE: For upgrading addon replace files using FTP or just overwrite addon from ACP!
### CRITICAL FIXES
**Issue #5: Invalid XenForo Archive Structure (NEW)**
- **Fixed** - Corrected ZIP archive structure to start with `CryptoPayment/` folder at root
- **Cause** - Previous ZIPs had incorrect structure: `upload/src/addons/Crypoverseaddon/CryptoPayment/`
- **Impact** - ZIP now uploads successfully, no more "File does not appear to be a valid add-on archive" error
- **Critical** - Without this fix, XenForo rejects the ZIP file completely
**Issue #4: Addon Not Upgrading (Shows "Rebuild" Instead of "Upgrade")**
- **Fixed** - Updated version in `_data/addon_info.xml` and corrected XML attribute order
- **Cause** - XenForo uses addon_info.xml (not just addon.json) to detect version during upgrade
- **Impact** - Addon now properly upgrades from 2.5.1/3.0.4 to 3.0.7 without requiring "Overwrite files" option
- **Critical** - Without this fix, users were stuck on old versions even after "upgrading"
- **Details** - Ensured version_id attribute comes before version_string in XML
**Issue #1: Missing hashes.json File Health Check Error**
- **Fixed** - Copied hashes.json from `_data/` folder to addon root folder
- **Cause** - XenForo expects hashes.json in addon root, not in _data subfolder
- **Impact** - File health check now works correctly in XenForo Admin CP
**Issue #2: MySQL Error with Emoji Characters in phrases.xml**
- **Fixed** - Removed all emoji characters from phrases.xml that caused MySQL utf8mb4 errors
- **Error** - `Incorrect string value: '\xF0\x9F\x93\x9A <...' for column 'phrase_text'`
- **Impact** - Addon installation/upgrade now completes without MySQL errors
- **Changed Phrases**:
- `option_group_cryptoPayment_explain` - Removed

,

,

emojis
- `enter_api_key_from_crypto_platform` - Removed

,

,

emojis
**Issue #3: Undefined Constant CallbackState:

AYMENT_CANCELLED**
- **Fixed** - Removed usage of non-existent XenForo constants
- **Error** - `Undefined constant XF\Payment\CallbackState:

AYMENT_CANCELLED`
- **Root Cause** - XenForo 2 only has 3 constants: PAYMENT_RECEIVED, PAYMENT_REINSTATED, PAYMENT_REVERSED
- **Impact** - Webhook callbacks now process correctly without fatal errors
- **Files Modified**:
- `Payment/CryptoProvider.php` (lines 634, 641, 837, 868, 875, 887)
- `Controller/CryptoPayment.php` (lines 135-138)
- `Controller/PaymentReturn.php` (lines 70-100)