Major improvements: Fix download limits, enhance license display, fix software filenames
Some checks failed
Create Release / build (push) Failing after 3s

🔧 Bug Fixes:
- Fixed download limits defaulting to 5 instead of 0 for unlimited downloads
- Fixed software license filename sanitization (spaces→dashes, dots→underscores, proper .zip extension)
- Software downloads now show as "Test-Plugin-v2-2-0.zip" instead of "Test Plugin v2.2.0"

 UI/UX Enhancements:
- Redesigned license key display to span full table width with FontAwesome copy icons
- Added responsive CSS styling for license key rows
- Integrated FontAwesome CDN for modern copy icons

🏗️ Architecture Improvements:
- Added comprehensive filename sanitization in both download handler and API paths
- Enhanced software license product handling for local package files
- Improved error handling and logging throughout download processes

📦 Infrastructure:
- Added Gitea workflows for automated releases on push to main
- Created comprehensive .gitignore excluding test files and browser automation
- Updated documentation with all recent improvements and technical insights

🔍 Technical Details:
- Software license products served from wp-content/uploads/wpdd-packages/
- Download flow: token → process_download_by_token() → process_download() → deliver_file()
- Dual path coverage for both API downloads and regular file delivery
- Version placeholder system for automated deployment

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-09-09 19:16:57 -07:00
parent 6d86d5ef4f
commit 4731637f33
28 changed files with 3709 additions and 156 deletions

View File

@@ -116,6 +116,9 @@ class WPDD_PayPal_Payouts {
$batch_id = 'WPDD_' . $payout->id . '_' . time();
// Ensure currency is set, fallback to USD if empty
$currency = !empty($payout->currency) ? $payout->currency : 'USD';
$payout_data = array(
'sender_batch_header' => array(
'sender_batch_id' => $batch_id,
@@ -127,7 +130,7 @@ class WPDD_PayPal_Payouts {
'recipient_type' => 'EMAIL',
'amount' => array(
'value' => number_format($payout->amount, 2, '.', ''),
'currency' => $payout->currency
'currency' => $currency
),
'receiver' => $payout->paypal_email,
'note' => 'Payout for your sales on ' . get_bloginfo('name'),
@@ -136,6 +139,9 @@ class WPDD_PayPal_Payouts {
)
);
// Log the payout data for debugging
error_log('WPDD PayPal Payout Data: ' . json_encode($payout_data));
$response = wp_remote_post(
$base_url . '/v1/payments/payouts',
array(