=== Guest Order Assigner === Contributors: kazverse Tags: woocommerce, orders, guest checkout, assign orders Requires at least: 5.0 Tested up to: 6.8.5 Requires PHP: 7.2 Stable tag: 1.0.3.7 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Automatically attaches WooCommerce guest orders to matching existing user accounts by billing email. == Description == When a customer checks out as a guest in WooCommerce, this plugin will look for a user account with the same billing email and, if found, reassign the order to that user. Key benefits: - 🔗 **Instant Assignment** – New guest orders with a matching email are immediately linked to the customer’s account. - 🔄 **Historic Back-fill** – On user registration or login, all past guest orders with that billing email are attached. - ⚡ **Zero Configuration** – Works right out of the box; no settings to tweak. - 🛠 **Developer Hooks** – Extend or customize via actions before/after assignment. == Features == 1. **Automatic Order Assignment** Guest orders are automatically reassigned to an existing user account when the billing email matches. 2. **Historical Order Recovery** On account creation or login, all previous guest orders for that email are back-filled. 3. **Real-time Processing** Both guest and logged-in checkouts are processed instantly during the WooCommerce checkout flow. 4. **Secure & Reliable** Built on WordPress and WooCommerce best practices to ensure data integrity. 5. **Developer Hooks** - `goa_before_attach_order` - `goa_after_attach_order` == Requirements == - WordPress 5.0 or higher - WooCommerce 3.0 or higher - PHP 7.2 or higher == Installation == There are two easy ways to install and get started with Guest Order Assigner: 1. **From the WordPress Admin Dashboard** a. Go to **Plugins → Add New** b. Search for **Guest Order Assigner** c. Click **Install Now**, then **Activate** 2. **Manual Upload** a. Download the plugin ZIP b. Go to **Plugins → Add New → Upload Plugin** c. Upload the ZIP, install, and **Activate** _No further settings are required—once activated, Guest Order Assigner will automatically handle all future and past guest orders for matching emails._ === Verifying It’s Working === 1. Create a product in WooCommerce. 2. Place an order as a **guest** using an email that also exists on a user account. 3. Place an order while **logged in** with that same email. 4. View **WooCommerce → Orders** and confirm that past guest orders are attached to the user. == Frequently Asked Questions == = Will this modify past orders? = Yes. After a customer registers or logs in with the same billing email, any previous guest orders will be reassigned to their user account. = What if two users share the same email? = WordPress prevents duplicate user emails by default. Only the first matching user will be used. == Screenshots == 1. Install the plugin. 2. Activate the plugin. 3. Create a WooCommerce product. 4. Place a guest order. 5. Place an order while logged in. 6. Check the WooCommerce orders list after assignment. == Changelog == = 1.0.3.6 = * Fixed promo notice dismissal so it stays hidden after closing on supported admin pages. = 1.0.3.5 = * Improved deactivation workflow with better state handling and clearer feedback. = 1.0.3.4 = * Enhanced deactivation workflow with functional updates for a smoother experience and clearer feedback. = 1.0.3.3 = * Added deactivation survey to gather feedback on deactivation reasons. * Added dismissible notification on settings page and post-activation, offering WordPress design/development hiring options. = 1.0.3.2 = * Fixed a critical error on login by adding proper guard checks for missing or invalid data.. * Added guards to ensure compatibility. * Minor code improvements and bug fixes. = 1.0.3.1 = * Fixed fatal error on activation caused by strict type hinting. * Added guards to ensure compatibility. * Minor code improvements and bug fixes. = 1.0.3 = * Added assets folder and other updates. = 1.0.2 = * Maintenance release: cleaned up tags and contributors. = 1.0.1 = * Bumped version to 1.0.1 for ownership verification. * Added live Plugin URI to documentation. = 1.0.0 = * Initial release. == License == This plugin is licensed under the GPLv2 or later.