SapphireIT Publish Guard for WooCommerce

Description

Products can go live without a featured image, description, SKU, category or valid price—especially when several people manage a store.

SapphireIT Publish Guard adds a configurable checklist before WooCommerce products are published. Choose which checks are required and which are warnings. By default, if a required check fails, the product stays in draft and the editor explains what needs fixing.

Unlike browser-only warnings, enforcement runs on the server for supported publishing paths, including Quick Edit, Bulk Edit, scheduled publishing, WooCommerce REST API requests and product saves made through WooCommerce by signed-in users. WP-CLI requests and requests without a signed-in user are not blocked.

A live checklist in the product editor. The panel in the classic WooCommerce product editor groups checks by content, media, pricing, organization and inventory. It refreshes as you type, upload images or choose categories, without requiring you to save first. Each failing item links to the field that needs attention.

Eleven built-in checks:

  • Product title
  • Description (with a minimum length)
  • Short description (with a minimum length)
  • Featured image
  • Product images (a minimum total count)
  • Regular price (variable and grouped products are skipped)
  • Sale price validity (lower than the regular price, with sensible dates)
  • Product category (warns when only the store default is used)
  • Product tags
  • SKU
  • Stock status

Each check can be disabled or set to Required (it must pass before publishing) or Warning (advisory only).

See product readiness at a glance. A readiness column in the Products list helps you identify products that are ready and products that need attention.

A lightweight footprint.

  • No custom database tables, product post meta, roles or capabilities.
  • Assets load only on the product editor, Products list and settings screen.
  • No outbound network requests, tracking or upsell notices.

SapphireIT Publish Guard for WooCommerce is an independent plugin. It is not affiliated with or endorsed by WooCommerce or Automattic.

Source Code

The editor script in build/ is compiled. Its human-readable React and SCSS sources ship with the plugin in the assets/ folder, and the full development repository is public at GitHub.

To rebuild the compiled files from source, install Node.js and npm, then run:

  1. git clone https://github.com/rshalihin/sapphireit-publish-guard.git
  2. cd sapphireit-publish-guard
  3. npm install
  4. npm run build

The build uses @wordpress/scripts and writes the compiled files to build/.

Screenshots

Installation

  1. Install and activate WooCommerce 9.0 or newer.
  2. Install SapphireIT Publish Guard from Plugins > Add New, or upload sapphireit-publish-guard.zip to your WordPress site.
  3. Activate SapphireIT Publish Guard for WooCommerce.
  4. Go to WooCommerce > Product Checklist. Choose which checks run, which are required, the content thresholds and the publishing behaviour.

The settings screen is available to users who can manage WooCommerce, including administrators and shop managers.

FAQ

What happens if a required check fails?

By default, the product stays in draft instead of being published, and a notice explains which checks need attention. You can optionally allow users who can manage WooCommerce to publish anyway in the settings.

Does it unpublish products that are already live?

No. Enforcement applies when a product moves into Published or Scheduled. A live product that later fails a check shows the problem in its checklist and in the Products list, but it is not automatically taken offline.

Can an administrator publish anyway?

Only if you enable Allow users who can manage WooCommerce to publish anyway on the settings screen. This option is off by default.

Does it block imports, WP-CLI or cron jobs?

WP-CLI requests and requests without a signed-in user are not blocked, so imports and system jobs are not silently turned into drafts. Scheduled publishing is checked when the scheduled time arrives; a scheduled product that fails its required checks is returned to draft.

Can I limit enforcement to the admin editor screens?

Yes. Under Enforcement applies to, choose Admin editor screens only. The default, All signed-in requests, also covers the REST API and code that saves products through WooCommerce for a signed-in user.

Does it work with the WooCommerce product block editor?

The checklist panel currently appears in the classic product editor, not the newer product block editor. Publishing enforcement still works when the block editor saves through the WooCommerce REST API.

Why is the regular price check skipped for variable products?

A variable product’s price lives on its variations, and variation-level checks are not part of this version. Grouped products are also skipped by the regular price check.

Can I sort or filter the Products list by readiness?

Not in this version. Readiness is calculated when the list is shown and is not stored.

Can developers add their own checks?

Yes. Register a rule on the sit_wcpg_register_rules action. It gets a settings row, a checklist row and enforcement automatically. Developer documentation is in README.md inside the plugin folder.

Does it slow down the Products list?

The readiness column adds two database queries for an entire page of products, regardless of the page size.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“SapphireIT Publish Guard for WooCommerce” adalah perisian sumber terbuka. Orang-orang berikut telah menyumbang kepada pemalam ini.

Penyumbang

Changelog

1.0.0

  • Initial release.
  • Live product checklist in the classic product editor, with eleven configurable checks.
  • Server-side publishing enforcement covering the editor, Quick Edit, Bulk Edit, scheduled publishing and WooCommerce CRUD and REST saves.
  • Readiness column in the Products list.
  • Settings screen under WooCommerce > Product Checklist.
  • Developer hooks: sit_wcpg_register_rules, sit_wcpg_validation_result, sit_wcpg_should_enforce and sit_wcpg_can_override_publish_guard.