{"id":364669,"date":"2026-09-18T18:33:17","date_gmt":"2026-09-18T18:33:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/klassifieds-for-woocommerce\/"},"modified":"2026-10-13T13:01:21","modified_gmt":"2026-10-13T13:01:21","slug":"klassifieds-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/kea.wordpress.org\/plugins\/klassifieds-for-woocommerce\/","author":15497420,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.9.217","stable_tag":"0.9.217","tested":"7.1.3","requires":"6.7","requires_php":"8.1","requires_plugins":null,"header_name":"Klassifieds for WooCommerce","header_author":"WebPremiere","header_description":"Synchronize your Classifieds with your WooCommerce Shop","assets_banners_color":"d2afd6","last_updated":"2026-10-13 13:01:21","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/klassifieds.webpremiere.de","header_author_uri":"https:\/\/webpremiere.de","rating":0,"author_block_rating":0,"active_installs":10,"downloads":1135,"num_ratings":0,"support_threads":1,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.9.187":{"tag":"0.9.187","author":"bartcc","date":"2026-09-18 18:32:53","revision":3702559},"0.9.189":{"tag":"0.9.189","author":"bartcc","date":"2026-09-21 16:52:09","revision":3705978},"0.9.190":{"tag":"0.9.190","author":"bartcc","date":"2026-09-21 20:57:40","revision":3706318},"0.9.191":{"tag":"0.9.191","author":"bartcc","date":"2026-09-22 07:27:46","revision":3706767},"0.9.192":{"tag":"0.9.192","author":"bartcc","date":"2026-09-24 02:57:23","revision":3710416},"0.9.193":{"tag":"0.9.193","author":"bartcc","date":"2026-09-24 04:12:42","revision":3710459},"0.9.194":{"tag":"0.9.194","author":"bartcc","date":"2026-09-27 23:08:57","revision":3716134},"0.9.197":{"tag":"0.9.197","author":"bartcc","date":"2026-09-30 22:50:01","revision":3722165},"0.9.198":{"tag":"0.9.198","author":"bartcc","date":"2026-10-02 01:02:29","revision":3724039},"0.9.199":{"tag":"0.9.199","author":"bartcc","date":"2026-10-02 01:11:37","revision":3724041},"0.9.200":{"tag":"0.9.200","author":"bartcc","date":"2026-10-06 03:02:58","revision":3729923},"0.9.201":{"tag":"0.9.201","author":"bartcc","date":"2026-10-06 03:13:44","revision":3729936},"0.9.202":{"tag":"0.9.202","author":"bartcc","date":"2026-10-06 03:36:18","revision":3729945},"0.9.203":{"tag":"0.9.203","author":"bartcc","date":"2026-10-06 05:36:30","revision":3730058},"0.9.204":{"tag":"0.9.204","author":"bartcc","date":"2026-10-06 20:12:45","revision":3731507},"0.9.205":{"tag":"0.9.205","author":"bartcc","date":"2026-10-06 20:55:42","revision":3731564},"0.9.206":{"tag":"0.9.206","author":"bartcc","date":"2026-10-07 04:49:10","revision":3731880},"0.9.207":{"tag":"0.9.207","author":"bartcc","date":"2026-10-08 14:10:33","revision":3734796},"0.9.208":{"tag":"0.9.208","author":"bartcc","date":"2026-10-08 14:44:35","revision":3734876},"0.9.209":{"tag":"0.9.209","author":"bartcc","date":"2026-10-08 15:21:25","revision":3734991},"0.9.210":{"tag":"0.9.210","author":"bartcc","date":"2026-10-08 16:46:07","revision":3735179},"0.9.211":{"tag":"0.9.211","author":"bartcc","date":"2026-10-09 00:02:36","revision":3735717},"0.9.212":{"tag":"0.9.212","author":"bartcc","date":"2026-10-09 21:16:51","revision":3737333},"0.9.213":{"tag":"0.9.213","author":"bartcc","date":"2026-10-09 23:07:39","revision":3737417},"0.9.214":{"tag":"0.9.214","author":"bartcc","date":"2026-10-10 00:16:51","revision":3737450},"0.9.215":{"tag":"0.9.215","author":"bartcc","date":"2026-10-11 20:01:02","revision":3740048},"0.9.216":{"tag":"0.9.216","author":"bartcc","date":"2026-10-12 21:46:08","revision":3742546},"0.9.217":{"tag":"0.9.217","author":"bartcc","date":"2026-10-13 13:01:21","revision":3743972}},"upgrade_notice":{"0.9.217":"<p>A product without a main category gets the categories of its ad. The dashboard&#039;s price and main category counts update when their job is done. New menu icon.<\/p>","0.9.216":"<p>Imported products get the main category and subcategories of their ad on kleinanzeigen.de.<\/p>","0.9.215":"<p>Only the plugin&#039;s icon changed. The code is the same as 0.9.214.<\/p>","0.9.214":"<p>Fixes the setup wizard on sites with Astra Pro: the buttons of its first page did nothing there.<\/p>","0.9.213":"<p>The setup wizard can be opened again after skipping it, and the dashboard summary no longer keeps the name of a removed account.<\/p>","0.9.212":"<p>A new setup wizard for sites without an account; ad addresses and share text now work as the account ID.<\/p>","0.9.211":"<p>The dashboard starts in the light scheme now; the header&#039;s switch turns the dark one on. Fixes an invisible tick on the terms of use in the dark scheme.<\/p>","0.9.210":"<p>Special terms such as &quot;sale&quot; are easier to read in the dark scheme. No change in what the plugin does.<\/p>","0.9.209":"<p>Small change to the look of the installer screen. No change in what the plugin does.<\/p>","0.9.208":"<p>Fixes invisible checkmarks on the settings screen in 0.9.207: a checked option looked unchecked. Update.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3740048,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3740048,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3740048,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3702966,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3702966,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.9.187","0.9.189","0.9.190","0.9.191","0.9.192","0.9.193","0.9.194","0.9.197","0.9.198","0.9.199","0.9.200","0.9.201","0.9.202","0.9.203","0.9.204","0.9.205","0.9.206","0.9.207","0.9.208","0.9.209","0.9.210","0.9.211","0.9.212","0.9.213","0.9.214","0.9.215","0.9.216","0.9.217"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3705978,"resolution":"1","location":"assets","locale":"","width":2048,"height":1536},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3702966,"resolution":"2","location":"assets","locale":"","width":2048,"height":1536},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3705978,"resolution":"3","location":"assets","locale":"","width":2048,"height":1536},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3702559,"resolution":"4","location":"assets","locale":"","width":2048,"height":1536}},"screenshots":{"1":"Dashboard with an overview of the status of products and ads. The button at the top right starts the synchronization.","2":"The import runs as a background job: it reports its progress and carries on after you leave the page.","3":"Setup asks for the public account ID and nothing else \u2014 no login, no password, no OAuth.","4":"Imported ads are WooCommerce products of their own type, each with a link to its ad and actions to re-import it, fetch its images, detach it or deactivate it."}},"plugin_section":[],"plugin_tags":[4527,281517,21735,1558,286],"plugin_category":[45],"plugin_contributors":[281518],"plugin_business_model":[],"class_list":["post-364669","plugin","type-plugin","status-publish","hentry","plugin_tags-classifieds","plugin_tags-kleinanzeigen","plugin_tags-product-import","plugin_tags-sync","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-bartcc","plugin_committers-bartcc"],"banners":{"banner":"https:\/\/ps.w.org\/klassifieds-for-woocommerce\/assets\/banner-772x250.png?rev=3702966","banner_2x":"https:\/\/ps.w.org\/klassifieds-for-woocommerce\/assets\/banner-1544x500.png?rev=3702966","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/klassifieds-for-woocommerce\/assets\/icon.svg?rev=3740048","icon":"https:\/\/ps.w.org\/klassifieds-for-woocommerce\/assets\/icon.svg?rev=3740048","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/klassifieds-for-woocommerce\/assets\/screenshot-1.jpg?rev=3705978","caption":"Dashboard with an overview of the status of products and ads. The button at the top right starts the synchronization."},{"src":"https:\/\/ps.w.org\/klassifieds-for-woocommerce\/assets\/screenshot-2.jpg?rev=3702966","caption":"The import runs as a background job: it reports its progress and carries on after you leave the page."},{"src":"https:\/\/ps.w.org\/klassifieds-for-woocommerce\/assets\/screenshot-3.jpg?rev=3705978","caption":"Setup asks for the public account ID and nothing else \u2014 no login, no password, no OAuth."},{"src":"https:\/\/ps.w.org\/klassifieds-for-woocommerce\/assets\/screenshot-4.jpg?rev=3702559","caption":"Imported ads are WooCommerce products of their own type, each with a link to its ad and actions to re-import it, fetch its images, detach it or deactivate it."}],"raw_content":"<!--section=description-->\n<p>Klassifieds for WooCommerce imports the classified ads of a kleinanzeigen.de\naccount into your shop. Your ad becomes a WooCommerce product carrying its\ntitle, description, price, images and location, and can be brought back in step\nwith its ad whenever you ask: prices follow, changed texts follow, and an ad that\nhas disappeared upstream is taken out of the catalogue instead of being sold on.<\/p>\n\n<p>The only credential the plugin needs is the <strong>public account ID<\/strong> \u2014 the one that\nappears in the account's own kleinanzeigen.de URL. There is no login, no OAuth\nand no password to store.<\/p>\n\n<p>Products appear as soon as their text data has been read; their images follow\nwithin a few minutes, fetched by a background job.<\/p>\n\n<h4>What it does<\/h4>\n\n<ul>\n<li>Imports ads as WooCommerce products of their own product type \u2014 a simple\nand a variable classified product, so ads with variants stay variable.<\/li>\n<li>Brings products back in step with their ads when you start a sync from the\nplugin's dashboard: new ads are created, changed ads are updated, and ads that\nhave vanished upstream are deactivated and fall back to plain products rather\nthan being deleted.<\/li>\n<li>Restores a product automatically when its ad comes back.<\/li>\n<li>Keeps the shop tidy: a product whose ad has been gone for more than 30 days\nis deleted, together with its images. This housekeeping is the \"Cleanup\nregularly\" setting on the Tools tab, on by default.<\/li>\n<li>Maps ad content to your shop: category, label and keyword mapping is\nconfigured in the plugin's settings.<\/li>\n<\/ul>\n\n<h4>Images are stored in your media library<\/h4>\n\n<p>Each ad image is downloaded once, as WebP, and stored in your media library like\nan image you upload yourself, so your shop serves it from its own address. A\ntypical photo takes about 30 KB, plus the sizes WordPress makes of it.<\/p>\n\n<p>A site can keep the images off its disk instead: tick \"Show images from\nkleinanzeigen.de instead of copying them\" on the plugin's General settings tab.\nIts product pages then load every image from kleinanzeigen.de, so each visitor's\nbrowser sends kleinanzeigen.de the visitor's IP address, their browser's user\nagent and your shop's address. If you switch it on, say so in your privacy\npolicy. The <code>klassifieds_hotlink_images<\/code> filter overrides the setting.\nTicking it applies to images fetched from then on: the ones already stored stay\nin your media library until their product is removed, which the \"Cleanup\nregularly\" setting on the Tools tab (on by default) does once its ad has been\ninactive for more than 30 days. Unticking it again stores the linked images in\nthe background, one product at a time; until a product's turn comes, its images\nstill load from kleinanzeigen.de.<\/p>\n\n<h4>How the work is scheduled<\/h4>\n\n<p>Imports and syncs run in the background through WordPress's own scheduler\n(WP-Cron), which advances when your site receives traffic. On a shop that is\nstill quiet, that can be slow and irregular. There are two ways to make it\nsteady, neither of them required:<\/p>\n\n<ul>\n<li>Set up a system cron for <code>wp-cron.php<\/code> \u2014 the usual approach for any WordPress\nsite that cares about timing.<\/li>\n<li>Or switch on the optional trigger service described below.<\/li>\n<\/ul>\n\n<h4>External services<\/h4>\n\n<p>This plugin contacts two third-party services. Both are called from your server,\nnever from a visitor's browser, unless you switch on hotlinking (see \"Images are\nstored in your media library\" above). One is required for the plugin to do\nanything at all; the other is optional and switched off by default.<\/p>\n\n<p><strong>kleinanzeigen.de<\/strong> \u2014 the source of the ads and the reason the plugin exists.\nThe plugin requests the public account page and the public ad pages of the\naccount ID you enter, reads the ad data from them and downloads the ad images.\nWhat is sent is the account ID and the ad IDs, as part of the URL of an ordinary\nHTTP request; no data about your shop, your customers or your visitors is\ntransmitted.<\/p>\n\n<p>Requests happen while an import or sync you started is running, and from the\nbackground job that downloads the images of any product still missing them. Once\nthe items an import brought in are in the store \u2014 their text data and their\nimages alike \u2014 no further requests are made until you\nmanually trigger a sync from the plugin's dashboard page.<\/p>\n\n<p>Terms of use: https:\/\/themen.kleinanzeigen.de\/nutzungsbedingungen\/\nPrivacy policy: https:\/\/themen.kleinanzeigen.de\/datenschutzerklaerung\/<\/p>\n\n<p><strong>pinger.webpremiere.de<\/strong> \u2014 an optional trigger service run by the plugin\nauthor, for shops whose own traffic is too thin to drive WordPress's\nscheduler reliably. It is switched off by default and nothing is sent unless you\nturn it on under <strong>Klassifieds \u2192 Settings<\/strong>.<\/p>\n\n<p>When you switch it on, and then once a day while it is on, your server sends the\nservice one request. It carries your site address, the plugin version, whether\nthe free or the Pro edition is running, and a fixed token that marks the request\nas coming from this plugin (the same in every copy, so it identifies nothing).\nLike every web request, it also passes your server's IP address, the time, and\nthe user agent WordPress sends, which names the WordPress version and your site\naddress. Beyond that, nothing is sent: no content of your shop or your ads, and\nno data about your customers or your visitors.<\/p>\n\n<p>The service then requests <code>wp-cron.php<\/code> on your site about once a minute, which\nlets WordPress run its scheduled work on time. Those requests carry no data.<\/p>\n\n<p>The service keeps one entry per site: the site address, the plugin version, the\nedition and the time of the last registration. It does not keep the IP address.\nThe entry is deleted as soon as you switch the service off or deactivate the\nplugin, and automatically once a site has not registered for four days. The\nserver's access log, which records every request with its IP address, is\ndeleted after seven days. The plugin author sees the list of registered sites\nin order to run the service; it is used for nothing else and passed on to no\none. The service runs on the author's own server in Germany. To have your entry\nremoved, or to ask what is stored about your site, write to info@webpremiere.de.<\/p>\n\n<p>The plugin works without it \u2014 imports and syncs simply advance whenever\nWordPress's own scheduler runs.<\/p>\n\n<p>Terms: https:\/\/klassifieds.webpremiere.de\/en\/agb\/\nPrivacy policy: https:\/\/klassifieds.webpremiere.de\/en\/datenschutz\/<\/p>\n\n<h4>Source code and building<\/h4>\n\n<p>Two parts of the plugin are compiled, and their sources ship with it:<\/p>\n\n<ul>\n<li><code>build\/<\/code>, the onboarding screen, is built from <code>src\/<\/code> with\n  @wordpress\/scripts.<\/li>\n<li><code>admin\/css\/style-admin-klassifieds.css<\/code> is built with Tailwind CSS from\n  admin\/css\/style-admin-klassifieds-input.css, which imports\nthe files in <code>admin\/css\/parts\/<\/code>.<\/li>\n<\/ul>\n\n<p>To rebuild them, run these in the plugin's folder, with Node.js and npm installed:<\/p>\n\n<ul>\n<li><code>npm install<\/code><\/li>\n<li><code>npm run build<\/code> rebuilds <code>build\/<\/code> from <code>src\/<\/code><\/li>\n<li><code>npm run tw:build<\/code> rebuilds <code>admin\/css\/style-admin-klassifieds.css<\/code><\/li>\n<\/ul>\n\n<p>The PHP libraries in <code>vendor\/<\/code> are installed with Composer, from <code>composer.json<\/code>\nand <code>composer.lock<\/code>: <code>composer install --no-dev --optimize-autoloader<\/code>.<\/p>\n\n<h4>Klassifieds Pro<\/h4>\n\n<p>A paid add-on runs the synchronization unattended, so products follow their ads\nwithout anyone starting a run, and adds a distributed sync worker, screenshots,\ne-mail reports and discount pricing. It is not required and it unlocks nothing\nhere \u2014 everything described above works on its own.\nSee https:\/\/klassifieds.webpremiere.de<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate WooCommerce. Klassifieds for WooCommerce does not run\nwithout it.<\/li>\n<li>Upload the plugin to <code>\/wp-content\/plugins\/<\/code>, or install it through the\nPlugins screen in WordPress.<\/li>\n<li>Activate the plugin through the Plugins screen.<\/li>\n<li>Open <strong>Klassifieds \u2192 Settings<\/strong>, read and confirm the terms of use.<\/li>\n<li>Enter your kleinanzeigen.de account ID. The import starts by itself a few\nseconds later and runs in the background.<\/li>\n<\/ol>\n\n<p>Requirements: WordPress 6.7 or newer, PHP 8.1 or newer, WooCommerce.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20do%20i%20find%20my%20account%20id%3F\"><h3>Where do I find my account ID?<\/h3><\/dt>\n<dd><p>Open your kleinanzeigen.de profile page. The account ID is the number in that\npage's address. It is public \u2014 it is not a login and not a password.<\/p>\n\n<p>To avoid typos, you can also enter the URL of any of your ad pages on\nhttps:\/\/kleinanzeigen.de instead of the account ID. The plugin does the rest.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20need%20my%20kleinanzeigen.de%20password%3F\"><h3>Does the plugin need my kleinanzeigen.de password?<\/h3><\/dt>\n<dd><p>No. The plugin reads public pages only and stores no credentials for\nkleinanzeigen.de.<\/p><\/dd>\n<dt id=\"why%20is%20my%20import%20going%20slowly%3F\"><h3>Why is my import going slowly?<\/h3><\/dt>\n<dd><p>Background work runs through WordPress's scheduler, which only advances when\nyour site receives traffic. On a new shop with few visitors that can be slow and\nirregular. Set up a system cron for <code>wp-cron.php<\/code>, or switch on the optional\ntrigger service under <strong>Klassifieds \u2192 Settings<\/strong>.<\/p><\/dd>\n<dt id=\"are%20the%20ad%20images%20copied%20into%20my%20media%20library%3F\"><h3>Are the ad images copied into my media library?<\/h3><\/dt>\n<dd><p>Yes, by default, as WebP: a typical photo takes about 30 KB, plus the sizes\nWordPress makes of it. To keep them off your disk, tick \"Show images from\nkleinanzeigen.de instead of copying them\" on the General settings tab; your\nvisitors' browsers then load them from kleinanzeigen.de (see \"Images are stored\nin your media library\" above).<\/p><\/dd>\n<dt id=\"what%20happens%20when%20an%20ad%20is%20deleted%20on%20kleinanzeigen.de%3F\"><h3>What happens when an ad is deleted on kleinanzeigen.de?<\/h3><\/dt>\n<dd><p>Its product is deactivated and falls back to a plain WooCommerce product. It is\nnot deleted, and its previous state is kept, so the product is restored if the\nad reappears. If the ad stays gone for more than 30 days, the \"Cleanup\nregularly\" setting on the Tools tab (on by default) deletes the product for good.<\/p><\/dd>\n<dt id=\"can%20i%20edit%20an%20imported%20product%20by%20hand%3F\"><h3>Can I edit an imported product by hand?<\/h3><\/dt>\n<dd><p>Yes, but a later sync will bring the fields that come from the ad back in line\nwith the ad. Fields the plugin does not own \u2014 your own categories, labels and\nthe mapping you configured \u2014 are left alone.<\/p><\/dd>\n<dt id=\"what%20does%20the%20plugin%20remove%20when%20i%20uninstall%20it%3F\"><h3>What does the plugin remove when I uninstall it?<\/h3><\/dt>\n<dd><p>Its own database tables, options and scheduled events, and its folder under\n    wp-content\/uploads\/. Products created from ads stay in your shop as ordinary\nWooCommerce products, and so do their ad data, the labels and the \"specials\"\nand \"rent\" attributes. To remove those too, add this line to <code>wp-config.php<\/code>\nbefore you delete the plugin:<\/p>\n\n<pre><code>define( 'KLASSIFIEDS_REMOVE_ALL_DATA', true );\n<\/code><\/pre>\n\n<p>The products themselves are never deleted.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.9.217<\/h4>\n\n<ul>\n<li>New: a product that has no main category gets the categories its ad has on kleinanzeigen.de. A job works through such products every minute, as many as fit its time budget; each one loads its ad's page once. The \"Missing Main Category\" count on the dashboard follows.<\/li>\n<li>Fixed: the dashboard's price and main category counts did not update when the job that settles them had finished; they showed the old number until the page was reloaded.<\/li>\n<li>The menu icon is the new mark: the K in the disc.<\/li>\n<\/ul>\n\n<h4>0.9.216<\/h4>\n\n<ul>\n<li>New: an imported product is put into the main category kleinanzeigen.de lists for its ad and into its subcategories (Immobilien &gt; H\u00e4user zum Kauf). The categories are created with the product, in addition to your category keywords.<\/li>\n<li>A recovered product gets them too, but only when its ad's page has been loaded already: recovering does not fetch every ad again.<\/li>\n<li>Klassifieds Pro: a \"Categories\" checkbox on the Sync tab (on by default) switches this off, and the sync gives a product that has no main category the categories that exist.<\/li>\n<\/ul>\n\n<h4>0.9.215<\/h4>\n\n<ul>\n<li>The plugin's icon is the new mark: the violet disc with the drawn K. Only the icon changed; the code is the same as 0.9.214.<\/li>\n<\/ul>\n\n<h4>0.9.214<\/h4>\n\n<ul>\n<li>Fixed: on sites where another plugin puts its own Tailwind reset on every admin page (Astra Pro's addon does), the setup wizard did not slide to its next step and the buttons of its first page did nothing.<\/li>\n<\/ul>\n\n<h4>0.9.213<\/h4>\n\n<ul>\n<li>New: a site without an account whose setup wizard was skipped shows a card with a link that opens the wizard again.<\/li>\n<li>Fixed: after the account was removed, the dashboard's summary kept its name and \"Loading data...\" until the page was reloaded. The dashboard renders again as soon as the account is gone.<\/li>\n<\/ul>\n\n<h4>0.9.212<\/h4>\n\n<ul>\n<li>New: a full-screen setup wizard replaces the old screen of a site without an account. It asks whether you have a PRO package, a few questions about your shop, the account ID and the terms of use, and waits while the import begins.<\/li>\n<li>Fixed: an ad's address or the app's share text in the account ID field ended in a server error. The ID is read out of whatever was typed.<\/li>\n<li>Fixed: on slow connections the checkboxes of the terms of use flickered while they were saved.<\/li>\n<li>Changed: the progress bar of the installer stays readable over its dark bar.<\/li>\n<li>Fixed: the wizard's \"Wait\" step froze the page when the import began.<\/li>\n<li>Fixed: after a cleanup some ads stayed active. The image job went on for minutes and saved products it had loaded before the cleanup deactivated them; it now checks the account and the product before each download and reloads the product before it saves.<\/li>\n<li>Fixed: the dashboard now sees a cleanup from its start, so its summary no longer keeps the old account name.<\/li>\n<\/ul>\n\n<h4>0.9.211<\/h4>\n\n<ul>\n<li>Fixed: on the onboarding screen in the dark scheme, a checked box of the terms of use showed a white tick on a pale box. The tick is dark there now.<\/li>\n<li>Changed: the dashboard starts in the light scheme. The switch in the header turns the dark scheme on and the browser remembers it.<\/li>\n<\/ul>\n\n<h4>0.9.210<\/h4>\n\n<ul>\n<li>Changed: special terms in the inline editor, such as \"sale\" and \"rent\", look like the state counts on the dashboard: the state colour darkened until the text reads on it, and in the dark scheme a lighter, softly glowing edge. One variable, <code>--klassifieds-state-ink<\/code>, sets the text colour of all of them.<\/li>\n<\/ul>\n\n<h4>0.9.209<\/h4>\n\n<ul>\n<li>Changed: the installer screen keeps the offer to go Pro at the bottom, without a frame of its own, and the circle behind the percentage takes the palette's line colour in both schemes.<\/li>\n<\/ul>\n\n<h4>0.9.208<\/h4>\n\n<ul>\n<li>Fixed: on the settings screen a checked checkbox showed no tick in the light scheme, so an option looked unchecked. WordPress 7.1 draws a white tick on a filled box, and the pale background hid it. Checked boxes are filled with the accent colour and the tick has the surface colour.<\/li>\n<\/ul>\n\n<p>Older releases are listed in changelog.txt, which ships with the plugin.<\/p>","raw_excerpt":"Turn the classified ads of a kleinanzeigen.de account into WooCommerce products and keep them in sync.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/364669","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=364669"}],"author":[{"embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/bartcc"}],"wp:attachment":[{"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=364669"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=364669"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=364669"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=364669"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=364669"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=364669"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}