WordPress has no native way to duplicate a product
You sell 5 variations of the same chair. Creating the fifth means re-entering 40 product attributes, uploading the same gallery, re-selecting the same categories. WooCommerce has a built-in duplicate link in the product list — but it's buried and doesn't work from shortcuts, schedules, or macros.
What most people do instead
A better way: one command, complete clone
Run duplicate product -product_id=247. The command clones title, content, excerpt, featured image, categories, tags, and every custom meta field. The clone arrives as a draft named "Copy of [original title]" — edit it, publish when ready.
Not just the content — every field. Featured image, custom fields, taxonomies, SEO overrides (Yoast / Rank Math), WooCommerce attributes, ACF fields. The clone is identical to the original except its slug (unique-suffixed) and status (draft).
How it works
The command uses WordPress\'s wp_insert_post with a deep copy of the original product\'s content, then replays every postmeta row under the new post ID. Taxonomy terms are re-assigned by term ID. The result is a byte-identical clone under a new draft ID.
| Parameter | Value |
|---|---|
-product_id(required) | ID of the product to duplicate |
| What\'s cloned | Title, content, excerpt, featured image, categories, tags, ALL custom meta fields |
| What\'s unique on the clone | ID, slug (with -copy-N suffix), status (draft), dates (current timestamp) |
| Can be used in |
Real example
Your store adds a new color for an existing best-seller. The product has 12 images, 6 attributes, custom meta fields, and pricing rules. Instead of rebuilding from scratch, run duplicate product -product_id=512. The clone arrives as a draft with every field intact — you just update the color name, swap the featured image, and publish.