=== XLclick Bulk CSV User Importer ===
Contributors: xlclick
Tags: users, csv, import, bulk, registration
Requires at least: 4.7
Tested up to: 7.0
Requires PHP: 7.0
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Import WordPress users from a CSV file with ease. Automatically generates usernames and handles custom or random passwords. Safe, simple, and optimized for bulk operations.

Need to prep your CSV first? Clean, merge, and complete your Excel data in one click with [XLclick Add-in for Excel](https://xlclick.com).

== Description ==

XLclick Bulk CSV User Importer is the definitive tool for administrators who need to bulk-create WordPress users from a CSV file. Whether you are migrating a community or setting up a new site, our importer handles the heavy lifting with validation and security.

Tip: build and tidy your CSV with [XLclick](https://xlclick.com) — the no-formula, no-VBA add-in that cleans and merges Excel data in seconds before you import.

**Main features:**

*   **Powerful CSV Upload**: Supports standard CSV files with automatic delimiter detection (comma, semicolon, tab).
*   **Flexible User Data**: Import email, role, username, first name, last name, and password.
*   **Intelligent Defaults**: Automatically generates a unique username from the email local-part if the `username` column is missing or empty.
*   **Advanced Password Support**: Use specific passwords from your CSV (min 8 chars) or let the plugin generate secure, cryptographically random passwords automatically.
*   **Role Security**: Strict validation ensures you only assign roles that your account is permitted to grant, preventing privilege escalation.
*   **Detailed Import Report**: Real-time feedback showing how many users were created, skipped (if email already exists), or failed due to invalid data.
*   **Privacy First**: The plugin does not store plain-text passwords and works entirely within your WordPress database.

== Installation ==

1. Upload the `xlclick-bulk-csv-user-importer` folder to `/wp-content/plugins/`.
2. Activate the plugin from the **Plugins** menu in WordPress.
3. Access the **XLclick Bulk CSV Import** menu in your admin sidebar.

== Frequently Asked Questions ==

= What is the ideal CSV format? =

Your CSV must include a header row. The only mandatory column is `email`. If `role` is missing, the site's default role will be used.

Example:
`email,role,username,first_name,last_name,password`
`alice@example.com,editor,alice,Alice,Rossi,MyStrongPass1!`
`bob@example.com,subscriber,bob,Bob,Smith,`

= How are passwords handled? =

If the `password` column is provided and contains at least 8 characters, it will be used. If the column is empty, missing, or the password is too short, WordPress will generate a secure random password for the user. Note: users created this way will need to be notified via the "Notify user" checkbox to receive their details.

= What happens if an email already exists? =

To prevent data corruption, the plugin will skip any row where the email is already registered in your WordPress site. These rows will be marked as "Skipped" in the final report.

= Can I assign any role? =

For security, you can only assign roles that your own user account has the privilege to grant. For instance, an Editor cannot create an Administrator.

== Screenshots ==

1. The main upload interface with default role selection.
2. The detailed import report showing the status of every processed row.

== Credits ==

This plugin is brought to you by [XLclick](https://xlclick.com) — clean, merge, and complete Excel tasks in a click, no formulas or VBA required.

== Changelog ==

= 1.0.0 =
* Initial release.
* Added support for custom passwords and automatic username generation.
* Implemented strict privilege escalation guards.
* Added XLclick integration links.

== Upgrade Notice ==

= 1.0.0 =
First release.
