PluginProbe
ووسلام – همگام سازی ووکامرس و باسلام / 1.10.7
ووسلام – همگام سازی ووکامرس و باسلام v1.10.7
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
sync-basalam / CHANGELOG.md

CHANGELOG.md in ووسلام – همگام سازی ووکامرس و باسلام 1.10.7, at CHANGELOG.md

605 lines 16.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 # Changelog
2
3 <details>
4
5 <summary>1.10.7 - 2026-08-11</summary>
6
7 ### Fixed
8 - Ticket validation and API failures are now shown as admin toasts instead of WordPress `admin-post.php` error pages
9 - New-ticket submissions now use AJAX, preserving entered text, credentials, and uploaded-image previews when a request fails; if the ticket was created before access storage failed, retrying updates only the access data and does not create a duplicate ticket
10 - Ticket JavaScript now uses a file-aware cache version so updated validation and submission behavior is loaded immediately after deployment
11
12 </details>
13
14 <details>
15
16 <summary>1.10.6 - 2026-08-11</summary>
17
18 ### Fixed
19 - Product images in AVIF or another image format unsupported by Basalam are now converted to JPEG before the upload request, preventing the `422` unsupported-MIME error
20 - Temporary downloaded and converted product-image files are removed after both successful and failed uploads; when the server cannot decode the source format, the plugin now returns an actionable error instead of sending an invalid MIME type to Basalam
21 - A copied product no longer inherits *any* Woosalam data from the product it was copied from — not the Basalam connection, and not the per-product settings (video, custom price change, gold/mobile fields, product type and value, wholesale, discount flag). Every `sync_basalam_*` / `_sync_basalam_*` meta on the duplicate and its variations is stripped before WooCommerce saves the duplicate (`woocommerce_duplicate_product_exclude_meta`), cleaned again after duplication, and also cleaned for copies made by third-party duplicate plugins (`dp_duplicate_post`, `dp_duplicate_page`, `duplicate_post_post_copy`). Individual keys can be kept via the `sync_basalam_duplicate_purge_meta_keys` filter
22 - Disconnecting a product now removes the connection meta of every vendor id (previously only the currently configured vendor's keys were removed, so a stale, hard to find key could stay in the database) and clears `sync_basalam_variation_id` from all variations, not only from products currently typed as variable
23 - No product data, status change, or discount is sent to Basalam while two or more WooCommerce products share one Basalam product id. The operation is stopped with a clear message instead of overwriting the wrong Basalam product (this is what made old prices and old stock reappear on Basalam)
24 - Products with an empty Basalam product id no longer produce a malformed update request
25
26 ### Added
27 - A one-time repair on update that finds WooCommerce products sharing a Basalam product id, keeps the connection on the oldest (original) product, disconnects the copies, and reports the result in an admin notice and the plugin log
28
29 </details>
30
31 <details>
32
33 <summary>1.10.5 - 2026-08-05</summary>
34
35 ### Changed / Improved
36 - Limited bulk product update API requests to a maximum of five per minute without reducing the execution rate of other background jobs
37
38 </details>
39
40 <details>
41
42 <summary>1.10.4 - 2026-08-04</summary>
43
44 ### Fixed
45 - Preserved complete URLs in new ticket messages, ticket replies, and optional access-information fields, including percent-encoded URL segments that WordPress text sanitization previously removed
46 - Updated ticket media uploads to send `type=ticket_item` and `collection=IMAGE` as multipart form fields to the `/media` endpoint, and fixed the upload service to return the API response
47
48 </details>
49
50 <details>
51
52 <summary>1.10.3 - 2026-07-22</summary>
53
54 ### Changed / Improved
55 - "Price increase" became "price change" everywhere (code, markup, CSS classes): negative values are supported, so e.g. `-10` lowers the final Basalam price by 10% (percentages are capped at 35% increase and 35% decrease; values outside the -100..100 range are fixed Toman amounts)
56 - The global setting key was renamed from `increase_price_value` to `price_change_value`, and the per-product meta from `_sync_basalam_increase_price_value` to `_sync_basalam_price_change_value`. Old values are not migrated — re-enter the price change in the settings
57 - The category-commission mode is now stored as `commission` instead of `-1`, so it no longer collides with a real negative percentage
58
59 ### Added
60 - A "custom price change" field in the Basalam product settings tab and in the products list bulk edit, so a single product or a selection of products can override the global value (or switch to category commission)
61
62 </details>
63
64 <details>
65
66 <summary>1.10.2 - 2026-07-19</summary>
67
68 ### Changed / Improved
69 - Migrated product photo and video uploads from the legacy direct upload endpoint to Uploadio's presigned media flow
70 - Added SHA-256 metadata, direct staging upload, completion handling, and status polling so product payloads receive the final Basalam media ID and URL
71 - Ensured temporary remote media files are removed after both successful and failed uploads
72 - Streamed remote media downloads and multipart uploads with size-aware limits and timeouts to support large product videos without buffering the entire file in PHP memory
73
74 </details>
75
76 <details>
77
78 <summary>1.10.1 - 2026-07-13</summary>
79
80 ### Fixed
81 - When Basalam rejects a product create/update with `422` because the description contains forbidden content (social-network names, page/channel mentions, etc.), the plugin now extracts the flagged phrases — highlighted inside `<em>...</em>` in the response `snippet` — strips them from the description, and automatically retries (up to 3 times). Previously the sanitizer looked for a non-existent `value` field, so nothing was removed and the retry never helped
82
83 </details>
84
85 <details>
86
87 <summary>1.10.0 - 2026-07-11</summary>
88
89 ### Added
90 - Merged the "Woosalam Plus" add-on into the core plugin as a built-in "Financial Management" section: view store balance, active settlement requests, settlement history, and submit settlement requests to wallet or bank account
91 - Added the `customer.identity.read` scope to the Basalam OAuth connection request (required to fetch the user's bank account list in the settlement flow)
92
93 ### Note
94 - Users who connected to Basalam before this release must reconnect ("Connect to Basalam") once so the new scope is granted before the bank-account settlement feature works
95
96 </details>
97
98 <details>
99
100 <summary>1.9.2 - 2026-07-08</summary>
101
102 ### Security
103 - Fixed a CSRF vulnerability in the Basalam OAuth callback (`basalam-save-token`) that could let a forged request overwrite the stored connection credentials; the callback now requires a single-use, time-limited authorization that the admin actively started, and the "connect to Basalam" links go through a nonce-protected request
104 - Hardened output escaping across admin pages, templates and exception messages (esc_html/esc_attr)
105 - Switched internal redirects to wp_safe_redirect and documented direct custom-table queries
106
107 ### Changed / Improved
108 - Tested up to WordPress 7.0
109
110 </details>
111
112 <details>
113
114 <summary>1.9.1 - 2026-06-30</summary>
115
116 ### Fixed
117 - show check-orders button and vertically center its content on mobile/tablet
118
119 </details>
120
121 <details>
122
123 <summary>1.9.0 - 2026-06-21</summary>
124
125 ### Added
126 - add gold product type with purity and weight attributes
127 - add preparation days management for product categories
128
129 ### Fixed
130 - decrease min pkg weight
131
132 </details>
133
134 <details>
135
136 <summary>1.8.8 - 2026-05-18</summary>
137
138 ### Fixed
139 - fix City/state mapping with persian shiping woo
140 - increase count of photo limit
141
142
143 </details>
144
145 <details>
146
147 <summary>1.8.7 - 2026-05-16</summary>
148
149 ### Added
150 - Product video upload support (VideoService, VideoField, VideoSourceResolver)
151 - Circuit breaker alert notifications
152 - replace toast with alert()
153 - Limit on increase precent(max 35%)
154 - Migration 1.8.7
155
156 ### Fixed
157 - Improved file upload, lock manager, and API response handling
158
159 </details>
160
161 <details>
162
163 <summary>1.8.5,1.8.6 - 2026-05-10</summary>
164
165 ### Fixed
166 - deduplictaion orders
167 - fix stuck-processing
168
169 </details>
170
171 <details>
172
173
174 <details>
175
176 <summary>1.8.4 - 2026-05-03</summary>
177
178 ### Fixed
179 - Circuit Breaker mechanism
180
181 </details>
182
183 <details>
184
185 <summary>1.8.3 - 2026-05-03</summary>
186
187 ### Added
188 - Added bulk edit support for wholesale settings, product type, and custom price increase
189 - Added per-product custom price increase support
190 - Added an information API endpoint to improve AI agent support in `admin.hamsalam.ir`
191
192 ### Changed / Improved
193 - Added automatic order creation in status change events when the order does not already exist
194 - Clear saved token on `401 Unauthorized` responses from `*.basalam.com` requests
195 - Show an error when required Woosalam domains are blocked
196 - Prevent task execution when required Woosalam domains are blocked
197
198 ### Fixed
199 - Fixed user-reported issues
200
201 </details>
202
203 <details>
204
205 <summary>1.8.2 - 2026-04-04</summary>
206
207 ### Added
208 - Photo and weight validator for products
209 - Filter hook for contact-us section visibility
210 - Prefix and suffix to product title for category detection
211
212 ### Fixed
213 - Fetch current vendor info without cache
214 </details>
215
216 <details>
217
218 <details>
219
220 <summary>1.8.1 - 2026-03-07</summary>
221
222 ### Added
223 - basalam Chat widget
224
225 </details>
226
227 <details>
228
229 <summary>1.8.0 - 2026-03-05</summary>
230
231 ### Changed / Improved
232 - Introduced an internal DI container (`ContainerInterface`, `Container`, `ServiceProviderInterface`) and centralized service provider wiring.
233 - Added `syncBasalamContainer()` and migrated `syncBasalamPlugin()` / `syncBasalamSettings()` to container-backed access.
234 - Migrated core hotspots from direct instantiation to container resolution:
235 - `ApiServiceManager`
236 - `ProductOperations`
237 - `JobManager`
238 - class-level settings access
239 - Refactored job subsystem wiring for constructor-based dependencies (`AbstractJobType`, job types, `JobRegistry`, `JobsRunner`, `DiscountTaskScheduler`).
240 - Updated action and registrar edges to resolve handlers/listeners via container.
241 - Removed legacy singleton-style accessors in core services and standardized on container-first resolution.
242 - add unInstall
243 - Added dashboard data retrieval in tickets
244 - Added `vendor_id` suffix to product `postmeta`
245 - Added selectable stock priority for variable products
246 - Added a Circuit Breaker mechanism
247
248
249
250 ### Added
251 - Container-backed settings access via `SettingsContainer`.
252
253 </details>
254
255 <details>
256
257 <summary>1.7.9 - 2026-02-25</summary>
258
259 ### Changed / Improved
260 - Added plugin version to all admin CSS/JS enqueue calls for proper cache busting
261
262 </details>
263
264
265 <details>
266
267 <summary>1.7.8 - 2026-02-21</summary>
268
269 ### Added
270 - retry system for jobs
271 - Added announcements section
272 - Added file upload capability in tickets
273 - Added discount reduction percentage setting
274 - Added ability to fetch and sync Basalam orders up to the last 30 days
275 - Added customer name prefix/suffix settings for Basalam orders
276 - Added onboarding section to Woosalam
277
278 ### Changed / Improved
279
280 - Remove Product Operation type
281 - change fetch unsync orders structure
282 - Switched product list fetching from paginate-based API to cursor-based API
283 - Skip webhook creation when the site domain is localhost
284 - Made Woosalam addonable/extensible
285 - Categorized plugin settings
286
287 ### Fix
288 - Fixed ticket links issues
289 - Fixed duplicated products issue
290 - Fixed null value being sent to Basalam on duplicated product disconnect/update flow
291
292 </details>
293
294 <details>
295
296 <summary>1.7.7 - 2026-02-07</summary>
297
298 ### Changed / Improved
299
300 - Enhanced Performance and Security in Ticket Logics
301 - Don't send null value in update product at basalam
302
303 </details>
304
305
306 <details>
307
308 <summary>1.7.6 - 2026-02-01</summary>
309
310 ### Fix
311
312 - Remove Unused Migration
313
314 </details>
315
316 <details>
317
318 <summary>1.7.5 - 2026-01-26</summary>
319
320 ### Added
321
322 - Added Ticketing feature
323
324 </details>
325
326 <details>
327
328 <summary>1.7.4 - 2026-01-6</summary>
329
330 ### Fixed
331
332 - Fix Bugs
333
334 </details>
335
336 <details>
337
338 <summary>1.7.3 - 2025-12-27</summary>
339
340 ### Fixed
341
342 - Fix Bugs
343
344 </details>
345
346 <details>
347
348 <summary>1.7.2 - 2025-12-24</summary>
349
350 ### Fixed
351
352 - Compatibity beetwin HPOS and Legay System
353 - Fix webhook handling and authorization in WebhookService
354
355 </details>
356
357 <details>
358
359 <summary>1.7.1 - 2025-12-23</summary>
360
361 ### Fixed
362
363 - Add Missed Files
364
365 </details>
366
367
368 <details>
369
370 <summary>1.7.0 - 2025-12-20</summary>
371
372 ### Added
373
374 - Added PSR-4 autoloading structure for better code organization
375
376 ### Changed / Improved
377
378 - Enhanced plugin code structure and performance optimizations
379 - Added detailed order information display on orders page
380 - Improved category ID retrieval with reverse order output
381
382 ### Fixed
383
384 - Fixed commission calculation issues
385 - Fixed order fetching problems
386 - Fixed Persian WooCommerce Shipping plugin compatibility issues
387
388 </details>
389
390 <details>
391 <summary>1.6.1 - 2025-12-6</summary>
392
393 ### Changed / Improved
394 - Handle cursor for get order lists
395
396 ### Fixed
397 - don't send request to core.basalam.com
398 - add reduce/increase stock action for woosalam order statuses
399
400 </details>
401
402 <details>
403 <summary>1.6.0 - 2025-12-1</summary>
404 ### Changed / Improved
405 - Added automatic shipping method detection and auto-saving of the shipping name and cost in WooCommerce orders
406
407 </details>
408
409 <details>
410 <summary>1.5.9 - 2025-11-27</summary>
411
412 ### Fixed
413
414 - Add missing default settings to database and return default for single missing setting
415 - Handle customer names without spaces
416 - Correct Persian WooCommerce path
417
418 ### Refactored
419
420 - Simplify check if Persian WooCommerce Shipping plugin is active
421
422 </details>
423
424 <details>
425 <summary>1.5.8 - 2025-11-18</summary>
426
427 ### Changed / Improved
428
429 - Improved batch product update functionality
430 - Enhanced complete product update process
431
432 </details>
433
434 <details>
435 <summary>1.5.7 - 2025-11-17</summary>
436
437 ### Added
438
439 - Added compatibility with Tappin
440 - Added support for currency units irht and irhr
441
442 ### Changed / Improved
443
444 - Implemented automatic price rounding for Basalam compatibility
445 - Changed product enqueue structure from offset-based to ID-based
446 - Made WooCommerce order creation process atomic
447
448 ### Fixed
449
450 - Fixed job manager functionality and proper task execution
451
452 </details>
453
454 <details>
455 <summary>1.5.5 - 2025-11-15</summary>
456
457 ### Changed / Improved
458
459 - Optimized fetch creatable products query using direct SQL for better performance
460 - Improved API service manager to properly decode JSON responses
461 - Enhanced update job detection logic to avoid false positive job status checks
462
463 ### Fixed
464
465 - Fixed API response handling by properly decoding JSON data
466 - Removed commented-out legacy code from plugin initialization
467 - Fixed quick update job status detection in admin dashboard
468 - Resolved duplicate job checking that was causing incorrect "in progress" states
469
470 </details>
471
472 <details>
473 <summary>1.5.4 - 2025-11-6</summary>
474
475 ### Added
476
477 - Migration system for version 1.5.4
478
479 ### Changed / Improved
480
481 - Enhanced onboarding styles and UI improvements
482 - Improved category fetching process with better error handling
483 - Enhanced file uploader service functionality
484 - Optimized product update process
485
486 ### Fixed
487
488 - Fixed error handling in product update service
489 - Removed deprecated photo ban status service
490 - Fixed category mapping page display and functionality
491 - Improved product meta box data handling
492 - Fixed issues in get product data service
493
494 </details>
495
496 <details>
497 <summary>1.5.3 - 2025-10-25</summary>
498
499 ### Fixed
500
501 - Fixed some bugs
502
503 </details>
504
505 <details>
506 <summary>1.5.0 - 2025-10-04</summary>
507
508 ### Added
509
510 - Key-value storage system for plugin settings
511 - Option to select sale price display style (strikethrough or sale price only)
512 - Automatic log file cleanup (weekly)
513 - Manual and automatic task execution rate control (tasks per minute)
514
515 ### Changed / Improved
516
517 - Removed WP Cron dependency for better performance
518 - Enhanced task scheduling system
519
520 ### Fixed
521
522 - Removed invalid variations from product data
523 - Fixed category attributes synchronization issue
524 - Fixed sale price validation before applying
525 - Resolved migration 1.4.0 issues
526
527 </details>
528
529 <details>
530 <summary>1.4.0 - 2025-09-12</summary>
531
532 ### Added
533
534 - Manual product category mapping
535 - Strikethrough pricing for products
536 - Add products from Digikala (Pro version)
537 - Create a free store (Pro version)
538
539 ### Changed / Improved
540
541 - Plugin structure optimization
542
543 ### Fixed
544
545 - Fixed reported issues
546
547 </details>
548
549 <details>
550 <summary>1.3.0 - 2025-07-23</summary>
551
552 ### Added
553
554 - Option to choose operation execution method (AJAX and Queue)
555 - Manual order fetching
556 - Cancel orders
557 - Fetch order changes from Basalam and apply them to WooCommerce orders
558
559 ### Fixed
560
561 - Fixed reported issues
562
563 </details>
564
565 <details>
566 <summary>1.2.0 - 2025-06-27</summary>
567
568 ### Added
569
570 - Bulk product addition
571 - Bulk product update
572 - Auto order confirmation
573
574 ### Fixed
575
576 - Fixed issues reported in previous version
577
578 </details>
579
580 <details>
581 <summary>1.1.0 - 2025-02-13</summary>
582
583 ### Added
584
585 - Automatic fetching and creation of Basalam orders in WooCommerce
586 - Manage orders from WooCommerce (confirm order, request delay, ship order)
587 - Advanced settings for easier use
588
589 ### Fixed
590
591 - Fixed some issues from previous versions
592
593 </details>
594
595 <details>
596 <summary>1.0.0 - 2024-12-31</summary>
597
598 ### Added
599
600 - Add and update products individually and in bulk
601 - Automatic product synchronization
602 - Settings and logs page
603
604 </details>
605