PluginProbe
ووسلام – همگام سازی ووکامرس و باسلام / 1.10.9
ووسلام – همگام سازی ووکامرس و باسلام v1.10.9
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.9, at CHANGELOG.md

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