3.8.15 - 2026-10-05
- Fix: The check for placeholder values in size item specifics only rejects generic values such as "Does not apply" inside eBay's Clothing, Shoes & Accessories tree, where eBay enforces standardised sizes. Outside it, aspects whose name merely contains "size" (Screen Size, Ring Size, Compatible Mattress Size) no longer block a listing that eBay would have accepted. Real size placeholders such as "Multiple sizes" are still rejected in every category.
- Fix: The localised "Does not apply" text of the site is recognised as a placeholder as well, not only the English wording.
3.8.14 - 2026-09-29
- Fix: When an image upload to eBay Picture Services (EPS) fails, the main image is no longer sent to eBay empty. WP-Lister keeps the product's own image URL instead, so the listing still publishes rather than being rejected with eBay's misleading "You need to add at least one image to your product" error. This matters for eBay's retirement of the UploadSiteHostedPictures API on 2026-09-30, which makes every EPS upload fail.
- Fix: The warning shown when an EPS upload fails now survives a bulk publish or revise run, and points at the setting that actually helps (Listing Profile > Images > "Upload to EPS" > "No") instead of the EPS Transfer Mode option, which does not.
3.8.13 - 2026-09-12
- Fix: A size item specific set to a placeholder value (such as "Multiple sizes") is now caught before a listing is sent to eBay, instead of failing with eBay's own size-standardisation error. Applies to both a manual Revise and an automatic revise triggered by a sale.
3.8.12 - 2026-09-11
- Security: Cast the log, order and archive retention settings to integers before they reach the SQL INTERVAL clauses they are interpolated into, and on the way into the option store. Reported responsibly by Ananda Dhakal via Patchstack.
- Security: The [Retry] link in the order screen now verifies a nonce and the user's capability, and carries a single-use token
- Fix: Item conditions are requested for the category that was asked for instead of the whole marketplace, so opening or saving a product no longer rewrites the entire category table
- Fix: The category download stores level 1 only and leaves the depth below it to the queued branch tasks
- Fix: An eBay shipping policy that is unknown locally is no longer dropped without a word
- Fix: An empty WooCommerce dimension is no longer sent to eBay as 0
- Fix: A revision no longer demands at least one image when a filter removed the pictures on purpose
- Fix: CompleteSale retries are capped at 10 again
- Fix: "Get token expiration date" on the Tools page now works for OAuth accounts
3.8.11 - 2026-08-08
- Security: Validate ORDER BY column and direction against an allow-list on all admin list screens (CVE-2026-11973)
- Security: Sanitize the unauthenticated cron request payload and escape all Logs screen output (stored XSS)
- Security: Reject non-notification payloads at the unauthenticated notify endpoint
- Fix: Never wipe stored category mappings, category features or item specifics when an eBay lookup fails
- Fix: Refill emptied category conditions from the eBay Metadata REST API, tracked by a separate timestamp
3.8.8 - 2026-06-03
- Fix: Defer eBay revisions for locked listings on REST API stock updates
- Fix: Migrate category download from deprecated GetCategories Trading API to Taxonomy REST API
- Fix: Quantity column sorting incorrect due to NULL quantity_sold and variable product mismatch
- Fix: Cast product_id to int to prevent type mismatch
- Fix: Unknown column 'listing_title' error in logArchiveAction
- Fix: Grid editor price changes not saving or triggering revisions
- Fix: Site details not saving when ebay_sites row is missing
- Fix: Deprecated xml_set_object() function in PHP 8.4
- Dev: Add filter hooks for the WooCommerce Multi Inventory plugin by welaunch
- Dev: Add performance warning to "Show eBay product totals" setting
- Dev: Domain changed to wplister.com
3.8.7.1 - 2026-02-18
- Fix: eBay Tracking metabox Javascript not executing
3.8.7 - 2026-02-17
- Fix: REST API permission check allowing unauthenticated access
- Fix: Refetch tracking data when using background task to complete sale on eBay
- Fix: Currency format handling for European decimal separators Tweak: Updated Max WP Version and WC tested up to values
- Tweak: Removed legacy Add Account form
- Dev: Replace deprecated wc_enqueue_js() with wp_add_inline_script()
3.8.6 - 2026-01-28
- New: Setting to disable the automatic archiving of listings
- Fix: Profile Secondary Category form displays wrong value due to key mismatch
- Fix: Profile secondary category setting ignored when category mapping exists
- Fix: Bulk edit clears custom eBay Start Price when field is left empty
- Fix: Preparing a listing overwrites any existing product-level Item Conditions without checking
- Fix: Null pointer exception when processing refunds with corrupted data
- Fix: Order sync infinite loop caused by inclusive timestamp boundary
- Fix: Fatal error when verifying listings without assigned profiles
- Fix: License UI deadlock when activation flag set without credentials
- Fix: Hidden variation prices included in display and flatten calculations
- Fix: Apply unit quantity decimal fix to product-level attributes
- Fix: Unit quantity decimal separator handling for EU decimals
- Fix: SiteID is incorrect when relisting to eBayMotors
- Fix: Auto-relist infinite rescheduling loop and processing order
- Fix: Double profile price adjustment in listings table for simple products
- Fix: URL-decode taxonomy names for proper variation attribute display
- Fix: Prevent VAT calculation on eBay-collected fees
- Fix: "Placed on eBay" filter conflicts with Amazon plugin filter highlighting
- Fix: eBay Fee label showing on non-eBay orders with discount fees
- Fix: Only set the StoreFront if at least one store category has a valid ID
- Fix: PHP Warning: preg_match(): Unknown modifier 't'
- Dev: Ajax Handler security fixes
3.8.5 - 2025-11-19
- Fix: Packaging and Handling Cost for International Shipping always showing 1
- Fix: Double encoding of variation values causing Variation Specifics Mismatch error
- Fix: Security fixes
- Fix: Match Product window is blank if the product title doesn't return any matches
- Fix: Additional fix to check for the value of the Secondary Store Category ID
- Fix: Extending the WC_Rest_Controller class when WC isn't active is causing a fatal error
- Fix: Skip setting the SecondaryCategory to 0 if no category is selected
- Fix: Don't read MPNs for variations if it is disabled in the settings
- Fix: Profile price adjustments ignored for simple products in listings table
- Dev: Only update admin message transient when messages were displayed
3.8.4 - 2025-10-02
- Fix: Decode HTML entities prior to sending them to eBay as item attributes
- Fix: Undefined array key "custom_tracking_link"
- Fix: Switching profiles should overwrite product-level auction type and duration
- Fix: Error when trying to access $Pictures->getPicture()
- Fix: Use eBay Order Number setting not working with HPOS
- Fix: Allow zero-quantity variable listings when Out-of-Stock Control is enabled
- Fix: Quantity check for items returning FALSE even when Quantity is set to 1
3.8.3 - 2025-09-08
- New: Added support for TranslatePress
- Fix: Include the price of variations for deletion to prevent getting Invalid Price errors when revising parent variables that are out of stock
- Fix: Added HPOS support for Order Number searching
- Fix: Item Specifics form not rendering
- Fix: Edit Product page notices
- Fix: JobRunner.js syntax error
- Fix: Count value for Not on eBay not recognizing the Hide from Unlisted option
- Fix: Not on eBay filter not showing all products
- Fix: Double-encoding bug in wple_encode_url()
- Fix: WooCommerce order refunds not calculating correctly due to tax handling
- Fix: JS error preventing the loading of Item Specifics
- Tweak: Accounts row actions will now always be visible
3.8.2.1 - 2025-06-26
- Hotfix: Reverted calling woocommerce_update_product due to fatal errors
3.8.2 - 2025-06-26
- New: Added tool to clear the EPS (eBay Picture Services) from all listings
- New: Added safe mode setting in the template editor page
- Fix: AdjustmentAmount now properly handled as refund when negative value, preventing incorrect fee processing
- Fix: Set the refund_payment property to false when calling wc_create_refund() to tell payment methods not to process the refund
- Fix: Condition attribute not getting displayed if no other attributes exist for the product
- Fix: Link auctions setting not showing correctly for GTC listings
- Fix: Item Specifics not loading for some marketplaces
- Fix: Make sure the default Site ID matches the current default account's Site ID
- Fix: Moved refund processing to after the initial order has been saved
- Fix: Do not record AdjustmentAmount if the Record Fees setting is disabled
- Fix: Use get_meta on WC_Order_Refund objects
- Fix: Make HTTP errors skippable in the JobRunner window
- Fix: Disable automatic relisting and background inventory checks on staging sites
- Tweak: Trigger the woocommerce_update_product action after reducing item stock from eBay orders to notify Square about changes
- Dev: Added support for updating Trading Cards' grading attributes via REST API
- Dev: Added new parameters to the wple_orderbuilder_update_order_status hook
- Dev: New filter `wple_templates_directory` to allow 3rd-party code to change the location of templates
- Dev: Removed deprecated [[widget_*]] shortcodes
3.8.1 - 2025-05-13
- New: Added support for the new Global Unique ID in WooCommerce
- Fix: Security patch for ticket #70341
- Fix: Formatting issue when displaying the number of bids on the View Product page
- Fix: Do not print/echo errors during REST requests
- Fix: Fixed Quantity not getting implemented by variable products on the Listings table page
- Fix: Split variation title issue due to the double-serialization of variation attributes
- Fix: Map Size Replacements not being applied to Item Specifics
- Dev: Added the ability to change the Profile ID of a listing using the REST API
- Dev: ConditionDescriptorsType data type issue
- Dev: Grouped ActionScheduler tasks
- Dev: Accept the text version of the listing condition when publishing or updating a listing using the REST API
3.8 - 2025-04-27
- New: Record Buyer VAT ID if provided by eBay
- New: Support for updating product-level Item Specifics using the REST API (beta)
- Tweak: Add links to the Duplicate Listings report table
- Tweak: Moved the provider value of the Shipment Tracking metadata to the custom_tracking_provider property
- Tweak: Change the context when fetching the order tracking information from view to edit to bypass the cache
- Tweak: Added a fallback method with file_put_contents fail when saving templates
- Fix: Changed calls triggered by the plugins_loaded to the init event to prevent getting the _load_textdomain_just_in_time warning
- Fix: Cannot access offset of type string on string
- Fix: Title prefix and suffix for split variations are still pulled from the parent product
- Fix: Mapped categories not getting loaded for new/unlisted products
- Fix: Warning when trying to access HazMat Statements
- Fix: Include variation price in the request when deleting listing on eBay
- Fix: Error when the WPL_WooOrderBuilder::updateShippingTotal() is NaN
- Dev: Scope warning of the WPL_Model::handle_error_code property
- Dev: New filter `wple_listings_search_description`
- Dev: Changed the priority of handle_woocommerce_order_status_update to allow shipment tracking plugins to store the tracking data first
- Dev: Commented out the action_scheduler_queue_runner_time_limit add_filter call which could be causing stalled actions in Action Scheduler
- Dev: Increased the column length for the ShippingAddress_City
3.7.7 - 2025-03-31
- New: Ability to add eBay Start Price via Bulk Edit
- Fix: Updated the call to search for products to use the Browse API
- Fix: Various deprecated code warnings
- Fix: Improved support for the Aelia Currency Switcher plugin
- Fix: Bottom bulk actions form displaying a Link Expired error page
- Fix: Error file_exists(): Passing null to parameter #1 ($filename)
- Fix: Error Cannot access offset of type string on string
- Fix: Decode the return value from ProductWrapper::getBrand()
- Fix: Added Near Mint condition to Ungraded Trading Cards
- Dev: Added the filter `wple_variation_attribute_value`
- Dev: Store the Tax Tracking Code in a separate order meta (e.g. IOSS, ABN)
- Dev: New filter wple_append_tax_tracking_to_company
3.7.6 - 2025-02-28
- New: Added setting to record Seller Promotions as order discounts
- Fix: Attribute Mapping setting in the Profile page always set to Yes
- Fix: Errors while trying to access non-existent pictograms and signal words
- Fix: Primary category getting loaded from a different Site ID in some cases
- Fix: `Cannot access offset of type string on string` while trying to access the profile without a valid profile_details data
- Fix: Creation of dynamic property WPL_API_Hooks::$dblogger
- Dev: Removed deprecated function utf8_encode()
3.7.5.1 - 2025-02-15
- Fix: Error in PHP8+ when testing for a possible undefined constant
- Fix: Various code warnings
3.7.5 - 2025-02-13
- Tweak: Renamed the attribute for WooCommerce Brands from WC Brands Addon to WooCommerce Brands
- Fix: Item Specifics always loading from the default category
- Fix: Errors from AJAX routines getting displayed in other pages unnecessarily
- Dev: Fixed the Table Conversion tool to support armscii
3.7.4 - 2025-02-10
- New: Added the ability to edit Manufacturers and Responsible Persons
- Fix: Variation start price not getting assigned when the Custom Price field is disabled
- Fix: Always send the manufacturer and responsible persons' countries in uppercase
- Dev: Fixed support for the WooCommerce Perfect Brands plugin
- Dev: Errors from the Listings check are not getting displayed
3.7.3 - 2025-01-23
- New: Added support for pulling Manufacturer and Responsible Persons data from product attributes
- New: Added a tool that fixes the endless loop when running the delayed profile update routine
- Fix: Item Specifics not loading in the Edit Product screen
- Fix: Grid Listings loading issue due to AG-Grid version incompatibility
- Fix: Format decimals correctly using wc_format_decimal()
- Fix: Ignore Older Orders Date not getting pulled correctly
- Dev: Switched the dropdowns from Chosen to SelectWoo
3.7.2.2 - 2025-01-08
- Fix: eBay profiles and store categories are not getting downloaded into WP-Lister
3.7.2.1 - 2025-01-08
- Fix: Incomplete HazMat properties getting sent to eBay
- Fix: Warning caused by as_next_scheduled_action() getting called too early
- Fix: Undefined array key gpsr_enabled
- Dev: Rolled back composer packages to retain compatibility with PHP 7.4
3.7.2 - 2025-01-06
- New: Added the shortcodes [ebay_gpsr_manufacturer] and [ebay_gpsr_responsible_persons]
- Fix: The Inventory Check tool now compares against sale prices if enabled
- Fix: Item Specifics for the default eBay category not getting rendered
- Fix: Prices for variations not getting stored in the variations cache
- Fix: Javascript error `Invalid assignment to const CategoryConditionsData`
- Fix: Warning `Undefined property stdClass::$errors`
- Fix: Warning `Cannot access offset of type string on string`
- Fix: Item conditions dropdown not fetching values for the default eBay category
- Fix: Various code warnings
- Fix: Save WC_Order after changing the `stock_reduced` property
- Fix: Check for duplicate Manufacturers and Responsible Persons before saving
- Fix: Product-level Manufacturer and Responsible Persons not clearing after removing and saving
- Tweak: Made the View on eBay link in the Edit Order page open in a new tab
- Dev: Updated GuzzleHttp/Guzzle
- Dev: New methods to help in pulling GPSR data from the DB
3.7.1.1 - 2024-12-14
- Fix: Fatal error in the class EbayAddress
- Fix: ItemBuilderModel::isGpsrEnabled() not returning the expected result
3.7.1 - 2024-12-13
- Fix: Javascript error in the Edit Profile page preventing the Responsible Persons field from rendering
- Fix: Error in the Edit Product screen (explode(): Argument #2 ($string) must be of type string, array given)
- Fix: CSS issues with the GPSR table
- Fix: Character encoding issue in the Manufacturer and Responsible Persons data
- Fix: Display issue in the jQuery Chosen fields
3.7.0 - 2024-12-11
- New: Support for the General Product Safety Regulation (GPSR)
- Fix: Undefined profile attributes messing up the default properties
- Fix: Check if the set_time_limit() function is available before using it
- Fix: `Unsupported operand types` in TransactionsModel::getRealTransactionID()
- Fix: Item Specifics for the default category not getting loaded in the Edit Profile page
- Fix: Prevent sending listings to the wrong account by initializing a new eBay session with the correct eBay account before calling ReviseInventoryStatus
- Fix: Improved the searching using the REST API using the `search` parameter
- Fix: Variable GTINs not getting accessed correctly
- Fix: Item Specifics getting loaded first from the profile instead of the mapped category
- Fix: Error generated in commented code in the Edit Product page
- Fix: Error `Call to a member function getId() on Int` in wc-emails.php
- Fix: MinMax price in the Inventory Check tool does not take into account the sale price
- Dev: New filter `wple_product_send_stock_notifications`
- Dev: New filter `wple_wc_shipping_line_item`
- Dev: New filter `wple_map_secondary_category`
- Dev: Removed the deprecated GeteBayOfficialTime calls
- Dev: Updated the eBay REST API and added support for the Marketplace, Document, and Video APIs
3.6.7.1 - 2024-10-03
- Hotfix: `Call to a member function get_id()` breaking order imports
3.6.7 - 2024-10-02
- Fix: Error messages in the Listings table
3.6.6 - 2024-09-26
- Fix: Grid Editor not displaying the listings
- Fix: Errors returned during the BuildItem process not getting displayed
- Fix: DB error when trying to update a log using an empty $data array
- Fix: Error in the \WPLab\Ebay\Listings\Listing::getMsrpPrice() method
- Fix: Fatal error when retrieving the number of hidden columns
- Fix: Secondary store category not getting published
- Fix: Warning `Deprecated: Automatic conversion of false to array is deprecated`
- Tweak: Skip setting the ReturnPolicy if a Returns Business Policy is being used
3.6.5 - 2024-08-28
- Fix: Fatal error when trying to access get_meta() on an invalid product
- Fix: Warnings in the Add Profile page
- Fix: Potential XSS issue in the profile page
- Fix: Split variations not getting the correct ConditionID value
- Dev: New filters `wple_variation_attribute_name` and `wple_item_specifics_attribute_name`
3.6.4 - 2024-08-19
- Fix: Listing errors not getting displayed in the Listings page
- Fix: Apply profile price modifier to eBay price even if the Custom eBay Price UI is disabled
- Fix: Use Sale Price setting getting ignored
- Dev: New filter `wple_always_use_variation_parent_description`
3.6.3 - 2024-08-07
- Fix: eBay Start Price getting ignored
3.6.2 - 2024-08-05
- Fix: Unlock All Listings tool's functionality
- Fix: Error when creating WC_Order `Cannot use object of type WC_Order as array`
- Fix: Notice of trying get property `value` of non-object
- Fix: Profile price getting lost in the ItemBuilderModel::buildPrices call
- Fix: Categories with disabled ConditionEnabled property causing the `soap-fault: Input data is invalid` error
- Fix: Cannot access offset of type string on string
- Fix: UPC and EAN not getting read for split variations
3.6.1 - 2024-07-30
- Fix: Parent MPN being used by the variations causing a `duplicate custom variation label` error
- Fix: Added a check to prevent assigning duplicate categories to listings
- Fix: Security patch #66898
3.6.0 - 2024-07-17
- New: REST API Endpoint to edit, prepare, verify, publish, and revise listings
- New: Tool to archive all sold and ended listings
- New: Added support for Order Attribution Tracking in WooCommerce
- Fix: Security fixes
- Fix: Use variation description for split variations
- Fix: MaybeMintToken() failing when the current and expiry date and time are the same
- Fix: Backwards compatibility with set_order_stock_reduced() and get_order_stock_reduced()
- Fix: Skip Importing Orders setting not getting saved
- Fix: Scope issue for eBay order address in WC orders
- Fix: Profile price getting applied twice
- Fix: Disabled template uploads by default
- Fix: Invalid profile data causing fatal errors
- Fix: Warning when loading the shipping providers in WP-Lister Lite
- Fix: Function name collision for usort_reorder()
- Fix: Warning when checking for eBay Plus orders
- Fix: Missing the Custom Attributes from the Attributes dropdown in Edit Product pages
- Fix: Fixed Quantity rules not getting applied to ReviseInventoryStatus calls
- Fix: Fatal error when GetUserPreferences returns null
- Fix: Warning in preg_replace in the Edit Profile page
- Fix: Table converter skipping tables with utf8mb3 charsets
- Fix: Shipment tracking data getting recorded multiple times
- Fix: Warning from WooCommerce Shipment Tracking when processing orders created by WPLE
- Fix: Profile details not getting saved correctly
- Fix: AU shipping details not getting downloaded
- Fix: Start Price not getting set when the Custom eBay Prices setting is disabled
- Fix: eBay Motors categories not getting displayed
- Fix: Check wc_get_product() return value before using it
- Fix: Fatal Error in WPL_InventoryCheck
- Fix: Warnings when recording shipment tracking details for WC Shipment Tracking
- Fix: Warnings in the TransactionsModel class
- Fix: Added a 2-minute buffer when minting tokens instead of waiting for them to expire
- Fix: Double submissions on the listings page on reload
- Fix: Load and use the parent dimensions as the default variation dimensions
- Tweak: Display the Listing ID in the Listings table
- Tweak: Skip completing eBay orders again during HPOS sync
- Tweak: WooCommerce not displaying negative eBay Fees in the Order Summary
- Tweak: Show orders with a CheckoutStatus of Incomplete as Payment Incomplete in the Orders table
- Dev: WSDL version bumped to 1311
- Dev: Minor code cleanup in ItemBuilderModel
- Dev: New filter wple_listing_calculated_quantity
- Dev: Deprecated code warnings
- Dev: New \WPLab\Ebay\Listings\Listing class
- Dev: Backwards compatibility for WC_Order::set_order_stock_reduced()
- Dev: Backwards compatibility for the wple_process_single_variation_title parameter
- Dev: Rename the TransactionType class to prevent clashing with TakePayments
- Dev: Added the filter wple_name_your_price_enabled to disable support for the Name Your Price plugin
This is for version 3.6 and later. For older entries see the changelog for WP-Lister for eBay 3.x.