=== IntelliBuilder ===
Contributors: showyaseen
Tags: content visibility, user roles, geolocation, conditional blocks, browser detection
Requires at least: 5.5
Tested up to: 6.6.1
Stable tag: 1.0.0
Requires PHP: 7.2
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

IntelliBuilder: Control Gutenberg block visibility with custom rules for user roles, devices, locations, and more.

== Description ==

**IntelliBuilder** empowers WordPress administrators to dynamically control the visibility of Gutenberg blocks by implementing a broad range of customizable conditions. By integrating seamlessly with the Gutenberg editor, IntelliBuilder adds a new dimension to content management, allowing for finely tuned, personalized content delivery.

### Key Features:

– **User Roles:** Target content based on specific user roles (e.g., Administrator, Editor, Subscriber).
– **Geolocation:** Display or hide content based on the user's country and city, leveraging real-time IP-based location detection.
– **Browser Detection:** Customize content visibility according to the user's browser (e.g., Chrome, Firefox, Safari).
– **Device Type:** Tailor content for different device types, including Desktop, Tablet, and Mobile.
– **Operating System:** Control visibility based on the user's operating system (e.g., Windows, macOS, Linux, iOS, Android).
– **Referral Source:** Show or hide content based on the user's referral source, ideal for targeted marketing campaigns.
– **Recurring vs New Users:** Differentiate content between first-time visitors and returning users.
– **User Status:** Display content conditionally for logged-in or logged-out users.
– **User-Specific Rules:** Target individual users by their username for a personalized experience.
– **Browser Language:** Adapt content based on the language settings of the user's browser.
– **Scheduled Content:** Schedule the visibility of Gutenberg blocks to appear or disappear at specific times and dates.

### Example Use Cases:

– **Membership Sites:** Display exclusive content to logged-in members only, enhancing membership value.
– **Marketing Campaigns:** Tailor promotional content based on referral sources to improve conversion rates.
– **Localization:** Serve region-specific information by utilizing the user’s geolocation and browser language.
– **Device-Specific Content:** Optimize content delivery for different devices and operating systems for a seamless user experience.

### How It Works:

1. **Initialization:** Hooks into WordPress actions and filters via the `intelli-builder.php` file to initialize the plugin.
2. **Gutenberg Integration:** React components within `src/blocks/visibility-settings/` render the visibility settings interface directly within the Gutenberg block editor.
3. **Rule Configuration:** Administrators configure visibility rules in the Gutenberg block settings panel.
4. **Conditional Rendering:** When rendering a post or page, IntelliBuilder evaluates the defined visibility rules to determine which blocks should be displayed.

== Installation ==

1. Upload the `intelli-builder` folder to the `/wp-content/plugins/` directory.
2. Activate the plugin through the 'Plugins' menu in WordPress.
3. Navigate to a post or page using the Gutenberg editor, select a block, and configure the visibility settings under the **"Conditional Visibility Settings"** section.

== Frequently Asked Questions ==

= Can I use IntelliBuilder with any WordPress theme? =

Yes, IntelliBuilder is designed to work seamlessly with any WordPress theme.

= Is IntelliBuilder compatible with the Gutenberg editor? =

Absolutely! IntelliBuilder integrates directly with the Gutenberg editor, allowing for easy configuration of block visibility settings.

= Does IntelliBuilder impact site performance? =

IntelliBuilder is optimized for performance. The plugin caches geolocation data and minimizes network requests to ensure your site runs efficiently.

== Screenshots ==

1. Example of setting visibility rules within the Gutenberg editor.
2. Operating system and device type visibility rules.
3. Browser names anf languages visibility rules.
4. User status loggedin/loggedout visibility rules.
5. User role-based content visibility configuration.
6. Specific User content visibility configuration.
7. Human readable summary for content visibility configuration.
8. Operating system and device type visibility rules.

== Third-Party Dependencies ==

**1. CountriesNow API**
– **Purpose:** Provides a list of countries and their cities for precise geolocation-based visibility rules.
– **Integration:** Used in the `GeoLocation` React component to enable country and city selection.

**2. IP-API**
– **Purpose:** Detects the user's geographical location based on their IP address.
– **Integration:** Utilized in the `GeoIP` PHP class to automatically retrieve user location data for geolocation rules.

**3. hisorange/browser-detect**
– **Purpose:** Detects the user's browser, device type, operating system, and language.
– **Integration:** Powers several visibility rules, including browser name, device type, operating system, and browser language detection.

== License ==

This plugin is licensed under the GPLv2 or later. See the [GNU General Public License](https://www.gnu.org/licenses/gpl-2.0.html) for more details.

== Changelog ==

= 1.0.0 =
* Initial release with comprehensive features including user roles, geolocation, browser and OS detection, device type control, and scheduling.

== Upgrade Notice ==

= 1.0.0 =
This is the first release of IntelliBuilder. Gain full control over your Gutenberg block visibility with this powerful plugin!
