=== Ad Fuz === Contributors: vinoth06, buffercode Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=7DHAEMST475BY Tags: ads, ad manager, ad spaces, campaigns, advertising Requires at least: 6.0 Tested up to: 7.0 Stable tag: 1.0.11 Requires PHP: 8.0 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Manage your ads like a boss. AdFuz gives you full control, unmatched flexibility, and zero-compromise ad management — right inside WordPress. == Description == **AdFuz** is a powerful WordPress ad management plugin built for publishers, developers, and site owners who demand full control over their advertising inventory — no third-party networks, no lock-in, no compromise. > *Full Control. Unmatched. Zero-Compromise. Manage your ads like a boss.* AdFuz gives you a structured, developer-grade workflow to create ads, schedule campaigns with precise date ranges, and serve them through defined ad spaces — all from your WordPress dashboard. = 🎯 Ads = Build and manage every ad in your inventory with precision. * Multiple ad types: image, Video, HTML, and script/embed-based ads * Upload media via the WordPress Media Library or use an external media URL * Configurable call-to-action (CTA) with custom label, type, and position (left/right) * Link behaviour control: open in same tab, new tab, or custom * Ad status lifecycle: Draft → Pending → Active → Paused * Hide or show ad title independently per ad = 📅 Campaigns = Schedule your campaigns and let AdFuz handle the rest. * Group multiple ads into a single campaign * Set a **start date** and **end date** to control exactly when a campaign runs * Assign campaigns across multiple ad spaces simultaneously * Campaign status lifecycle: Pending → Active → Expired * Set a fallback ad that displays when no campaign is scheduled = 📐 Ad Spaces = Define your placement zones once — serve ads anywhere. * Create named ad spaces with custom **width**, **height**, and **ad format** * Control **display sequence** and **availability** per space * Assign a fallback ad per space for guaranteed fill * Embed ad spaces anywhere using a shortcode or PHP template function * Manage all your placement zones from a single screen = 🟦 Gutenberg Block = AdFuz ships with a native Gutenberg block for placing ad spaces directly in the WordPress block editor. 1. Open any post, page, or block-based template in the editor 2. Click the **+** icon to add a new block and search for **AdFuz Ad Space** 3. Insert the **AdFuz Ad Space** block into your content 4. In the block's **Ad Space Settings** panel on the right, select the ad space you want to display 5. Save or publish — the selected ad space will render with its active campaign ads No shortcodes or PHP required. The block respects all ad space settings including fallback ads and display sequence. = Shortcode = `[ad-fuz ad_space_id="AD_SPACE_ID"]` = Template Function = `` == Installation == 1. Upload the `adfuz` folder to `/wp-content/plugins/`, or install via **Plugins > Add New** in your WordPress admin. 2. Activate the plugin through the **Plugins** menu. 3. Go to **AdFuz** in your WordPress admin sidebar. 4. Create your first **Ad**, set up an **Ad Space**, then create a **Campaign** to connect them with a schedule. == Frequently Asked Questions == = Does AdFuz work with any WordPress theme? = Yes. AdFuz is completely theme-agnostic. Embed ad spaces using the shortcode `[ad-fuz ad_space_id]` or the `adfuz_adspace()` PHP function in any theme, template, or page builder. = What ad types does AdFuz support? = AdFuz supports image ads (via WordPress Media Library or external URL), Video ads, custom HTML ads, and script/embed-based ads — each with optional CTA configuration. = How does campaign scheduling work? = Each campaign has a **start date** and **end date**. AdFuz automatically transitions campaign status based on the schedule: Pending before the start date, Active during the window, and Expired after the end date. = What happens when no campaign is active for an ad space? = Each ad space supports a **fallback ad**. When no active campaign is targeting a space, the fallback ad is displayed automatically — ensuring your placements are never left blank. = Can I show different ads in the same ad space? = Yes. You can assign multiple campaigns to an ad space and control the display sequence. AdFuz manages which campaign is active based on the schedule. = Is AdFuz GDPR-friendly? = AdFuz does not transmit any data to external servers. All ads, campaigns, and configuration are stored locally in your WordPress database. No visitor data is shared. = What are the minimum server requirements? = * WordPress 6.0 or higher * PHP 8.0 or higher * MySQL 5.7 or MariaDB 10.3 (for JSON column support) == Screenshots == 1. **Ad Manager** — Create and manage all your ads with type, media, CTA, and status controls in one place. 2. **Campaign Manager** — Schedule campaigns with start and end dates, assign ads, and track status lifecycle. 3. **Ad Spaces** — Define named placement zones with dimensions, format, sequence, and fallback ads. == Changelog == = 1.0.11 (2026-06-04) = * New: Updated Campaign List page view to new UI = 1.0.10 (2026-06-01) = * Fix: Campaign Text mismatch with the UI. * Code Refactored. = 1.0.9 (2026-05-29) = * New: Added CRON job to automatically move the Campaign to expired when it get expired based on the end_date. * Fix: Delete Option key in Tools | Database Tools | WordPress options = 1.0.8 = * Public Release = 1.0.2 = * Fix: Ads Pagination. * Fix: Campaign edit/create missing fields. = 1.0.0 = * Initial release of AdFuz — Full Control, Unmatched, Zero-Compromise Ad Manager * Ads: Image, Video, HTML, and script ad types * Campaigns: start date and end date scheduling with automatic status lifecycle * Ad Spaces: named placement zones with dimensions, format, sequence, and fallback ads * Shortcode `[ad-fuz ad_space_id]` and `adfuz_adspace()` template function * Developer-ready hook architecture with QueryBuilder-based database layer == Upgrade Notice == = 1.0.0 = Initial release of AdFuz. Install to take full control of your WordPress ad management — ads, campaigns with date scheduling, and ad spaces, all in one place. == Source Code & Build Tools == The JavaScript and CSS source code for AdFuz is bundled using Vite. The source code is available in the following locations: * **JavaScript Source**: `assets/js/` directory in the source repository * **CSS Source**: `assets/css/` directory in the source repository ### Build Instructions To modify the source code and regenerate the production files: 1. Ensure you have Node.js (v18+) and npm installed. 2. Download the source code from WordPress Repository. 3. Install dependencies: `npm install` 4. Run the build: `npm run build` (for admin assets) or `npm run build:frontend` (for frontend assets) 5. The built files will be generated in `assets/public/` directory. For development with hot-reload: `npm run dev` == Source Code == This plugin's JavaScript and CSS are compiled using Vite and npm. The uncompiled source files are included in the plugin under `assets/js/` and `assets/css/`. Build configuration files (`vite.config.js`, `package.json`, `vite.config.frontend.js`, `tailwind.config.js`) are also included in the plugin root. To build from source: 1. `npm install` 2. `npm run build-admin` # builds admin JS/CSS 3. `npm run build-frontend` # builds frontend JS/CSS — or — `npm run build` # builds both