PluginProbe
ووسلام – همگام سازی ووکامرس و باسلام / 1.10.20
ووسلام – همگام سازی ووکامرس و باسلام v1.10.20
1.10.19 1.10.20 1.10.18 1.10.17 1.10.15 1.10.14 1.10.13 1.10.12 1.10.10 1.10.9 1.10.8 1.10.7 1.10.6 1.10.5 1.10.4 1.10.3 1.10.2 1.10.1 1.10.0 1.9.2 1.9.1 1.9.0 1.8.8 1.8.5 1.8.6 All 53 releases
← All changes | includes/Services/Api/RequestStatusTracker.php +75 -0 1.8.51.10.20 View file →
@@ -40,8 +40,83 @@
40 40 {
41 41 self::recordEvent($category, $context);
42 42 }
43 43
44 + /**
45 + * Returns a user-friendly Persian explanation for a given error category.
46 + * Intended for log messages so non-technical users can understand the cause.
47 + */
48 + public static function describeCategoryFa(string $category, ?int $statusCode = null): string
49 + {
50 + switch ($category) {
51 + case 'success':
52 + return 'درخواست با موفقیت انجام شد.';
53 +
54 + case 'timeout':
55 + return 'خطای تایم اوت رخ داد و سرویس باسلام در زمان مقرر پاسخ نداد. معمولاً به دلیل کندی موقت اینترنت سرور یا شلوغی سرویس باسلام رخ می‌دهد و افزونه به‌صورت خودکار دوباره تلاش می‌کند.';
56 +
57 + case 'rate_limit':
58 + return 'rate limit رخ داد و تعداد درخواست‌ها در بازه‌ی کوتاه از حد مجاز عبور کرده است. افزونه برای دقایقی ریکوئستی به باسلام ارسال نمیکند و پس از دقایقی و دوباره تلاش می‌کند.';
59 +
60 + case 'unauthorized':
61 + return 'توکن باسلام منقضی شده است. لطفاً از طریق تنظیمات افزونه دوباره به حساب باسلام خود وارد شوید.';
62 +
63 + case 'server_error':
64 + $code = $statusCode ? ' (کد ' . $statusCode . ')' : '';
65 + return 'خطای داخلی در سرورهای باسلام رخ داده است' . $code . '. مشکل از سمت افزونه نیست و معمولاً پس از چند دقیقه برطرف می‌شود.';
66 +
67 + case 'client_error':
68 + return $statusCode ? ' (کد ' . $statusCode . ')' : '';
69 +
70 + case 'blocked_http':
71 + return 'وردپرس درخواست‌های HTTP خارجی را مسدود کرده است (تنظیم WP_HTTP_BLOCK_EXTERNAL). برای رفع، دامنه basalam.com باید به WP_ACCESSIBLE_HOSTS اضافه شود.';
72 +
73 + case 'dns_error':
74 + return 'دامنه‌ی باسلام از روی سرور شما قابل دسترسی نیست. معمولاً به دلیل تنظیمات DNS هاست یا محدودیت‌های شبکه‌ی سرور است.';
75 +
76 + case 'ssl_error':
77 + return 'برقراری اتصال امن (SSL/TLS) با باسلام ممکن نشد. معمولاً به دلیل قدیمی بودن گواهی‌های root روی سرور هاست است.';
78 +
79 + case 'connection_error':
80 + return 'اتصال به سرور باسلام برقرار نشد یا در میانه‌ی راه قطع شد. مشکل موقتی شبکه است و افزونه دوباره تلاش می‌کند.';
81 +
82 + case 'network_error':
83 + return 'خطای عمومی شبکه هنگام ارتباط با باسلام. ممکن است مشکل از سمت سرور هاست یا فایروال باشد.';
84 +
85 + case 'invalid_response':
86 + return 'پاسخی معتبر از باسلام دریافت نشد (کد وضعیت نامشخص). معمولاً به دلیل قطع شدن ارتباط در میانه‌ی پاسخ است.';
87 +
88 + case 'unexpected_status':
89 + $code = $statusCode ? ' (کد ' . $statusCode . ')' : '';
90 + return 'وضعیت غیرمنتظره‌ای از باسلام دریافت شد' . $code . '.';
91 +
92 + case 'wp_error':
93 + default:
94 + return 'خطایی هنگام ارسال درخواست به باسلام رخ داد.';
95 + }
96 + }
97 +
98 + /**
99 + * Resolve a Persian reason directly from a WP_Error (categorizes internally).
100 + */
101 + public static function describeWpErrorFa(\WP_Error $error): string
102 + {
103 + $category = self::categorizeWpError(
104 + (string) $error->get_error_code(),
105 + (string) $error->get_error_message()
106 + );
107 +
108 + return self::describeCategoryFa($category);
109 + }
110 +
111 + /**
112 + * Resolve a Persian reason directly from an HTTP status code (categorizes internally).
113 + */
114 + public static function describeHttpStatusFa(int $statusCode): string
115 + {
116 + return self::describeCategoryFa(self::categorizeHttpStatus($statusCode), $statusCode);
117 + }
118 +
44 119 public static function getSummary(): array
45 120 {
46 121 $state = self::getState();
47 122 $aggregated = [