PluginProbe
FluentCart A New Era of eCommerce – Faster, Lighter, and Simpler / 1.6.5
FluentCart A New Era of eCommerce – Faster, Lighter, and Simpler v1.6.5
1.6.5 1.6.4 1.6.3 1.6.2 1.6.1 1.6.0 1.5.4 1.5.5 1.5.3 1.5.2 1.5.1 1.5.0 1.4.2 1.4.1 1.4.0 1.3.28 1.3.27 1.3.26 1.3.25 1.3.23 1.3.22 1.3.21 1.3.20 1.3.19 trunk All 48 releases
← All changes | app/Http/Controllers/Reports/RetentionSnapshotController.php +19 -13 1.5.2 → 1.6.5 View file →
@@ -3,8 +3,9 @@
3 3 namespace FluentCart\App\Http\Controllers\Reports;
4 4
5 5 use FluentCart\App\Services\Report\RetentionSnapshotService;
6 6 use FluentCart\Framework\Http\Request\Request;
7 +use FluentCart\Framework\Support\Arr;
7 8 use FluentCart\App\Http\Controllers\Controller;
8 9
9 10 class RetentionSnapshotController extends Controller
10 11 {
@@ -24,12 +25,12 @@
24 25 $service = new RetentionSnapshotService();
25 26 $result = $service->generate($productId, null);
26 27
27 28 return [
28 - 'success' => $result['success'],
29 - 'message' => $result['message'],
30 - 'stats' => $result['stats'] ?? [],
31 - 'mode' => 'synchronous',
29 + 'success' => Arr::get($result, 'success'),
30 + 'message' => Arr::get($result, 'message'),
31 + 'stats' => Arr::get($result, 'stats', []),
32 + 'mode' => 'synchronous',
32 33 ];
33 34 }
34 35
35 36 // Use timestamp as tracking ID - create it ONCE
@@ -52,9 +53,9 @@
52 53 ]);
53 54
54 55 return [
55 56 'success' => true,
56 - 'message' => 'Snapshot generation queued',
57 + 'message' => __('Snapshot generation queued', 'fluent-cart'),
57 58 'job_id' => $trackingId,
58 59 'mode' => 'background',
59 60 ];
60 61 }
@@ -68,9 +69,9 @@
68 69
69 70 if (!$jobId) {
70 71 return [
71 72 'success' => false,
72 - 'message' => 'Job ID required',
73 + 'message' => __('Job ID required', 'fluent-cart'),
73 74 ];
74 75 }
75 76
76 77 $jobData = get_option('fluent_cart_snapshot_job_' . $jobId);
@@ -77,21 +78,26 @@
77 78
78 79 if (!$jobData) {
79 80 return [
80 81 'success' => false,
81 - 'message' => 'Job not found',
82 + 'message' => __('Job not found', 'fluent-cart'),
82 83 'job_id' => $jobId,
83 84 ];
84 85 }
85 86
86 87 // If job data shows completed or failed, return that status
87 - if (isset($jobData['status']) && in_array($jobData['status'], ['completed', 'failed'])) {
88 + $jobStatus = Arr::get($jobData, 'status');
89 + if ($jobStatus && \in_array($jobStatus, ['completed', 'failed'])) {
88 90 return [
89 91 'success' => true,
90 - 'status' => $jobData['status'],
91 - 'message' => $jobData['message'] ?? 'Job ' . $jobData['status'],
92 - 'stats' => $jobData['stats'] ?? [],
93 - 'data' => $jobData,
92 + 'status' => $jobStatus,
93 + 'message' => Arr::get($jobData, 'message', \sprintf(
94 + /* translators: %1$s: job status (completed or failed) */
95 + __('Job %1$s', 'fluent-cart'),
96 + $jobStatus
97 + )),
98 + 'stats' => Arr::get($jobData, 'stats', []),
99 + 'data' => $jobData,
94 100 ];
95 101 }
96 102
97 103 // Otherwise, it's still running
@@ -97,9 +103,9 @@
97 103 // Otherwise, it's still running
98 104 return [
99 105 'success' => true,
100 106 'status' => 'running',
101 - 'message' => 'Job is still running',
107 + 'message' => __('Job is still running', 'fluent-cart'),
102 108 'data' => $jobData,
103 109 ];
104 110 }
105 111 }