=== Moon Static HTML Pages ===
Contributors: moontechnolabs
Donate link: https://www.moontechnolabs.com/
Tags: html, performance, cache, speed, optimization
Requires at least: 5.0
Requires PHP: 7.4
Tested up to: 7.0
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Generates static HTML for your pages and serves them instantly, bypassing heavy WordPress processes.

== Description ==

Moon Static HTML Pages is a high-performance solution for serving WordPress content. It generates static HTML files of your posts, pages, and archives, and serves them either through high-performance .htaccess rules or an early-PHP fallback.

== Features ==

* **Ultra-Fast Performance:** Serve your pages as raw static HTML. Bypasses WordPress core and database queries entirely when using .htaccess mode.
* **Automated Site Generation:** One-click tool to generate your entire site's static files with real-time progress tracking and logs.
* **Real-time Synchronization:** Automatically regenerates specific static pages whenever you update a post, page, or category.
* **Smart Pagination Caching:** Automatically discovers and generates static HTML for paginated archives and listing pages.
* **Advanced Redirection Manager:** Powerful built-in SEO tool to manage 301, 302, and 307 redirects with direct .htaccess synchronization.
* **WooCommerce Integration:** Intelligently handles dynamic cart/checkout pages and overrides Store API nonces for seamless add-to-cart functionality on cached shop pages.
* **Smart Exclusions:** Robust settings to exclude specific post types or individual pages from being cached.
* **Admin Bypass:** Logged-in administrators and editors automatically bypass the static cache to ensure they always see live, real-time changes.
* **Premium Admin Dashboard:** Modern interface with real-time status indicators and colored "Generated" badges directly in your Post/Page lists.
* **Multi-Layer Serving:** Employs high-performance Apache rewrite rules for maximum speed, with a reliable PHP fallback for other server environments.
* **WordPress Multisite Compatible:** Fully supports multisite networks with individual static cache directories and rules for each subsite.

== Installation ==

1. Upload the plugin folder to the `/wp-content/plugins/` directory.
2. Activate the plugin through the 'Plugins' menu in WordPress.
3. Go to the 'Moon Static HTML' menu in your WordPress dashboard.

== Configuration ==

1. **Dashboard Overview:** Navigate to **Moon Static HTML > Dashboard**.
2. **Exclusions:** Check any Post Types or Taxonomies (Categories/Tags) you want to exclude from the static cache under the "Manage Post Type Exclusions" and "Manage Category / Tag Exclusions" sections.
3. **Nonce Auto Refresh:** If you use AJAX forms or WooCommerce in long-running admin sessions, enable "Nonce Auto Refresh" and select an interval.
4. **CPT Listing Page Mapping:** If you use custom post types, map them to their corresponding archive/listing page URLs (e.g., set `portfolio` to `/portfolio-list/`). This ensures the listing page is regenerated when a new item is published.
5. **Save Settings:** Click the **Save All Settings** button at the bottom of the page to apply your configuration.
6. **Enable High Performance:** Click the **Update .htaccess Rules** button to deploy the Apache rewrite rules, enabling ultra-fast direct serving of static files.
7. **Generate Site:** Finally, click **Start Generation** or **Generate All** to build your initial static HTML cache.


== Screenshots ==

1. Dashboard view showing static generation status and performance badge.
2. Redirection manager for handling custom URL paths.
3. Post list table with colored static HTML status badges.

== Frequently Asked Questions ==

= Does this plugin work with e-commerce plugins like WooCommerce? =
Yes! The plugin comes with built-in WooCommerce integration. It automatically detects and excludes dynamic pages like the Cart, Checkout, and My Account from being cached. It also intelligently overrides Store API nonces for shop pages, ensuring that AJAX add-to-cart functionality works seamlessly even when the product listing is served as a static HTML file.

= How does the High-Performance mode work? =
When .htaccess rules are updated, Apache will serve the static index.html files directly without ever loading PHP or connecting to the database, resulting in near-instant load times.

= Will my contact forms still work? =
Yes, as long as your contact form plugin uses AJAX to submit data. If the form requires a page reload to a PHP script, you should ensure that specific script or page is not being cached.

= What happens when I update a post? =
The plugin automatically detects the update and regenerates the static HTML for that specific post and the homepage to ensure your site stays up to date.

= Can I disable static HTML generation for a specific page or post? =
Yes! When editing any post or page, look for the "Static HTML" meta box (usually in the sidebar). Simply check the "Disable static HTML generation for this post" option and save your changes.

= Is WordPress Multisite supported? =
Yes! The plugin is fully multisite compatible. It automatically creates isolated static HTML directories for each site in your network (e.g., `site-1`, `site-2`) and generates site-specific .htaccess rules to ensure efficient serving across the entire network.

== Upgrade Notice ==

= 1.0.0 =
* Initial release.

== Changelog ==

= 1.0.0 =
* Initial release with modular OO structure and .htaccess support.
