=== Makanikaran Bulk Shortcode Remover ===
Contributors: makanikaran
Tags: shortcode, database, cleanup, bulk-remove, cli
Requires at least: 5.8
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 1.0.1
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Remove shortcodes from posts in bulk using a point-and-click admin dashboard — no command line needed. Optional WP-CLI included.

== Description ==

**Makanikaran Bulk Shortcode Remover** is a point-and-click WordPress admin tool for cleaning up unwanted shortcodes from your database — no command line needed. An optional WP-CLI command is also included for developers who prefer scripting the process.

**1. Admin UI (Tools > Shortcode Remover)**

A built-in WordPress dashboard page lets any administrator run a bulk shortcode removal without touching the command line:

* Enter one or more shortcode names (comma-separated).
* Optionally filter by post type.
* Run a **Dry Run** first to preview which posts would be affected — no database changes are made.
* When ready, uncheck Dry Run and click **Scan & Remove Shortcodes**.
* Watch a live progress bar as posts are processed in batches.
* Review a full results table showing every post and its outcome (Updated, Skipped, No shortcode found, Error).

**2. WP-CLI (optional, for developers)**

Power users can use the `wp remove_shortcode` command for scripted or server-side workflows:

* Dry-run support, post-type filtering, comma-separated bulk inputs.
* CSV log of every processed post saved to `wp-content/WPCLI_Shortcode/`.
* Optional automated database export prompt before changes are applied.

== Installation ==

1. Upload the `makanikaran-bulk-shortcode-remover` folder to `/wp-content/plugins/`.
2. Activate the plugin via the **Plugins** menu in WordPress.
3. Go to **Tools > Shortcode Remover** to use the admin UI.
   *(WP-CLI users: see the Usage section below.)*

== Using the Admin UI ==

1. Navigate to **Tools > Shortcode Remover** in your WordPress dashboard.
2. Enter the shortcode name(s) you want to remove (e.g. `mcrypto, coinmc`).
3. Select the post types to scan (leave empty to scan all public post types).
4. Keep **Dry Run** checked for a safe preview — no data will be changed.
5. Click **Scan & Remove Shortcodes** and watch the progress bar.
6. Review the results table. When satisfied with the dry-run results, uncheck Dry Run and run again to apply changes.

== Using WP-CLI (optional) ==

* **Dry run:**
  `wp remove_shortcode mcrypto,coinmc --dry-run`

* **Actual removal (default CSV log):**
  `wp remove_shortcode mcrypto,coinmc`

* **Custom CSV output file:**
  `wp remove_shortcode mcrypto,coinmc --output=my-log.csv`

* **Skip backup prompt:**
  `wp remove_shortcode mcrypto --skip-db-backup`

* **Limit to specific post types:**
  `wp remove_shortcode mcrypto --post-type=post,page`

== Frequently Asked Questions ==

= Is it safe to run without a backup? =
We strongly recommend taking a full database backup before running a real removal. The plugin will prompt you (via WP-CLI) or remind you (via the admin UI) to do so.

= What happens in Dry Run mode? =
No changes are written to the database. You get a full preview of which posts contain the shortcode and what the new content would look like.

= Can I undo the removal? =
No. Once shortcodes are removed from the database without a backup, they cannot be recovered automatically. Always run a dry run first and keep a backup.

== Screenshots ==

1. Tools > Shortcode Remover admin page with dry-run results.

== Changelog ==

= 1.0.1 =
* Added user-facing admin UI (Tools > Shortcode Remover) with progress bar and results table.
* Refactored core logic into a reusable Makanikaran_Shortcode_Processor class.
* AJAX batch processing prevents browser timeouts on large sites.
* Renamed plugin to Makanikaran Bulk Shortcode Remover for distinctiveness.

= 1.0.0 =
* Initial release. WP-CLI command with dry-run, post-type filtering, CSV logging, and database backup prompt.