Freakedout Content Uploader CSV & Excel Import

Description

This plugin links your WordPress site to the Content Uploader service. Prepare CSV or Excel content in your workspace, select a writable content type, map destination fields and taxonomies, preview a row, and publish. Upload the changed spreadsheet later to update the same items in bulk. Stable external IDs and durable operation records let retries finish the same item instead of creating another post.

What the service can publish on a WordPress site, with examples, is described at https://contentuploader.com/wordpress

This version supports writable REST-visible post types and their exposed title, body, excerpt, slug, status, author, date, comment, parent, menu-order, category, tag, custom-taxonomy, custom field and featured image capabilities. Available fields depend on the selected content type and the approving administrator’s permissions. The service is never signed in to your site: each request is checked against that administrator’s permissions, limited to content. It can read, create, update and publish content, assign and create terms and add images, and never holds the permissions to install or change plugins or themes, manage users, change settings or edit files, even though the account that connected it is an administrator.

On a shop with WooCommerce 9.0 or later, products are offered too, with their price, sale price and sale dates, SKU and GTIN, stock, tax, weight and dimensions, catalogue visibility, categories, tags, brands, attributes, upsells and cross-sells, image and gallery. Variable products and their variations are included: variations are updated by SKU, and can be made under a product that exists. Products are written through WooCommerce’s own product functions, so its price and stock data stay in step, and a stock quantity is set to the number in the file. Before publishing, the service can read the current price, stock and other values of the products a file would change, so that its review shows what the shop holds now. Grouped products and downloadable files are not written: a row for a grouped product is named and left as it is. Orders and customers are never read or written.

Custom fields are post meta. Registered single-value meta keeps its registered type (text, whole number, number or yes/no); other keys are stored as text, as the Custom Fields box stores them. Keys WordPress protects, such as those starting with an underscore, are written only when their registration allows the connected administrator to edit them. Featured images are downloaded from the service’s private storage through short-lived links, checked against their announced size and content hash and to be images this site accepts, and added to the media library once: the same image is reused for every post that uses it. The site needs outgoing HTTPS access to the storage host. Images already in the media library can also be found by file name.

A Content Uploader account and an HTTPS site are required. Spreadsheet preparation, storage, orchestration and history are provided by the external service. The plugin is not a standalone spreadsheet importer. No WordPress admin password or manually generated application password is requested by the service.

The plugin contains the whole connector. It has no locked or trial features and never checks a plan or a payment: what the service allows each account is decided by the service, before it sends anything to your site.

External services

This plugin is the WordPress side of the Content Uploader service, https://contentuploader.com, which is run by the plugin’s author. The service stores your spreadsheets, maps their columns to WordPress fields, shows a preview and sends the content to your site. It has a free plan and paid plans with larger monthly allowances: https://contentuploader.com/pricing

Nothing is sent to the service by installing or activating the plugin. Your site shares data with it only after an administrator selects Connect to Content Uploader and approves the connection, and then only in these situations:

  • When an administrator selects Connect: the administrator’s browser is sent to the service with a one-time pairing code, the site address and the installation identifier.
  • When the connection is made and whenever the service refreshes what the site can accept: your site address, installation identifier, WordPress and plugin versions, the content types, fields and taxonomies that can be written, and when access ends. This includes the display names of users who can edit content so imports can assign authors; their usernames and email addresses too, but only if the connecting administrator is allowed to list users; and the names of up to 100 custom fields already used on the site, which are offered as suggestions when mapping.
  • When you publish from Content Uploader: the service sends the content to create or update (titles, text, custom field values, taxonomy terms, external IDs and operation IDs) and links to images, which your site downloads over HTTPS from the service’s private storage. Your site returns the IDs and outcomes.
  • Before you publish: for items that a file would update, and for products whose SKU appears in a file, the service can ask your site for what it holds now (for a product: its name, SKU, price, sale, stock and similar values, never customers or orders) so that the review can show the differences. The same questions are asked again when you publish.

No visitor analytics, advertising or other telemetry is collected by this plugin.

Service terms: https://contentuploader.com/terms
Service privacy policy: https://contentuploader.com/privacy

Installation

  1. Install and activate the plugin.
  2. Open Settings > Content Uploader.
  3. Select Connect to Content Uploader and continue to the service.
  4. Sign in (or create an account) and approve the intended workspace for the displayed site.
  5. In Content Uploader, upload a CSV or Excel file, configure destination mappings, preview a row, and publish. An ID column is optional: with one, each row updates its own post; without one, rows are matched to posts by slug or title.

FAQ

Do I need a Content Uploader account?

Yes. The plugin connects your site to the Content Uploader service, which prepares and sends the content. There is a free plan: https://contentuploader.com/pricing

Which file types can I import?

CSV, TSV and text files, Excel workbooks (XLSX, XLSM and the older XLS) and OpenDocument spreadsheets (ODS), which LibreOffice and Google Sheets can export. Files are read by the service, not by your site.

Does the service receive my WordPress password?

No. After you initiate pairing as a WordPress administrator and approve a workspace, a dedicated connection token is exchanged server to server. WordPress stores only its hash. It grants access only to this connector’s discovery and publishing endpoints. The service is never signed in as a user: each request is checked against the connected administrator’s permissions, limited to content, so the service cannot administer the site.

Can I stop access?

Yes. Select Disconnect in Settings > Content Uploader or deactivate the plugin. Reconnecting rotates the credential. For security, access lasts 90 days unless it is renewed. Before it ends, Content Uploader reminds the connected workspace, and a member can renew it there: the service replaces the credential over the existing connection, without a WordPress sign-in. You can also reconnect at any time from Settings > Content Uploader, which shows when access ends and when it was last renewed. Renewing and reconnecting are always free.

What happens to my data when I uninstall?

Uninstalling removes the connection credentials. Posts are never deleted. The installation identity, the external-ID mappings and the operation records stay in your database so that reinstalling does not create duplicates; they hold IDs and outcomes, not copies of your post bodies.

Will retrying create duplicate posts?

The connector reserves an item and its external ID together before applying content. Repeated operations complete or return that same item. Permanently deleted mapped items are recreated with the same external ID. Trashed or inaccessible mapped items remain protected. Third-party hooks can have their own side effects outside this guarantee.

Does it work with WooCommerce?

Yes, with WooCommerce 9.0 or later: products and the variations of variable products can be created and updated, and the products a shop already has are found by SKU. Grouped products and downloadable files are not written yet: a row for a grouped product is named in the review and left alone.

Are custom post types, custom fields, images, or multisite supported?

Writable REST-visible custom post types are supported when the approving administrator has permission to create and edit them. Custom fields and featured images are supported; the administrator needs permission to upload files for images. Multisite is not supported.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Freakedout Content Uploader CSV & Excel Import” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

0.7.1

  • The service is no longer signed in to your site as the administrator who connected it. Each request is checked against that administrator’s permissions, limited to content: reading, creating, updating and publishing content and products, assigning and creating terms, adding images and listing authors. Every other permission of that account is out of reach for the request, so the service can never install or change plugins or themes, manage users, change settings or edit files. The settings screen says so. Content types that only a theme editor may change (templates, template parts, navigation menus, global styles and fonts) are no longer offered.
  • Field labels such as Title, Content and Status use the plugin’s own text domain, so they can be translated with the plugin.

0.7.0

  • WooCommerce 9.0 and later: products are offered as a content type. Products can be created and updated, with price, sale, stock, tax, shipping and other product fields, written through WooCommerce’s own functions. A stock quantity is set, never adjusted.
  • Variable products, and their variations: variations are found by SKU and updated (price, sale, stock, status, image), and made under a variable product that exists, with the values they choose of its attributes. The product’s price range follows each write.
  • Product attributes (the shop’s own and ones made on the product, with several values and whether the product page shows them), upsells and cross-sells by SKU, brands and shipping classes, and a gallery of several images, replaced place by place in the product’s one save.
  • The service can find the products a shop already has by SKU, and read the current price and stock of a product before it publishes, so that its review shows what the shop holds now.
  • A file that has no names can update the products that exist and keep their names.

0.6.3

  • The permission and text-domain changes of 0.7.1, released for the WordPress.org directory, which carries the 0.6 line without WooCommerce support.

0.6.2

  • The plugin is listed in the WordPress.org directory as Freakedout Content Uploader CSV & Excel Import, so its folder, main file, text domain and every name it stores (options, tables, hooks, the class and the FREAKEDOUT_CONTENT_UPLOADER_SERVICE_URL setting) now carry that name. A site with the earlier build Content Uploader CSV & Excel Import (0.6.0 or 0.6.1) or Content Uploader (0.5.0) must deactivate and delete it before using this one; until then this plugin only shows a notice. Import history and duplicate protection carry over on the first load, and the site connects once more.

0.6.1

  • The plugin has its own name in the WordPress.org directory, Content Uploader CSV & Excel Import, so its folder, main file and text domain are now content-uploader-csv-excel-import. If an earlier build named Content Uploader is installed, deactivate and delete it before activating this one: import history and duplicate protection carry over, and you connect once more.

0.6.0

  • Every name the plugin stores now starts with content_uploader, and the CONTENT_UPLOADER_SERVICE_URL setting replaces CU_SERVICE_URL, as the WordPress.org directory requires. Existing connections and records are carried over on the first load.
  • Reads only the users who can write content when listing authors, stops an image download one byte past its announced size, and refuses a request without a valid timestamp without a PHP notice.
  • The settings screen says that author names (and, where allowed, usernames and email addresses) are shared when connecting.

0.5.0

  • Renew access in Content Uploader before it ends, without reconnecting from WordPress; Settings shows when access ends.

0.4.0

  • Custom fields (registered meta keeps its type, other keys are text) and featured images, downloaded through short-lived links, verified and added to the media library once.

0.3.0

  • Let Content Uploader check which categories and tags exist before publishing.

0.2.0 – 0.2.2

  • Write all supported fields of writable REST-visible content types, and assign or create tags, categories (with parents) and custom-taxonomy terms.
  • Map fixed, source-column, default, preserved and templated values; update published content without resetting preserved fields.
  • Match authors by ID, display name, email or username. Reject missing terms before anything is written.

0.1.0 – 0.1.2

  • Initial connector: secure pairing, capability discovery, revocation, draft upserts and durable retry protection.
  • Safely recreate permanently deleted mapped drafts; keep trashed, published and inaccessible items protected, with specific conflict codes.