﻿=== StarLine XML Feed Importer ===
Contributors: starlinewebsolu
Tags: xml, import, rss, feed, blog
Requires at least: 6.2
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Import blog posts from ANY XML feed into WordPress with full control over mapping, scheduling, and duplicate handling.

== Description ==

StarLine XML Feed Importer lets you import blog posts from any RSS, Atom, or custom XML feed into your WordPress site. It includes a visual 4-step import wizard, per-feed scheduling, field mapping, duplicate detection, image downloading, and a premium admin dashboard.

= Key Features =

* **Import Wizard** - 4-step visual wizard to configure feeds in minutes
* **RSS, Atom & Custom XML** - Supports all major feed formats plus custom XML structures
* **Field Mapping** - Map any XML field to WordPress post fields, custom fields, ACF, MetaBox, Pods, or JetEngine
* **Duplicate Detection** - 4-level detection: Original Link, GUID, Hash, and Title
* **Per-Feed Scheduling** - 11 built-in intervals (5 min to monthly) plus custom cron expressions
* **Image Downloading** - Automatically download and attach remote images to the media library
* **Large Feed Support** - Stream processing for feeds of any size with background queue for 5000+ items
* **WP-CLI Support** - Import, list, and manage feeds from the command line
* **Import Logs** - Detailed logging with keyset pagination and CSV export
* **Performance Optimized** - Dual-layer caching, batch operations, and memory management
* **Responsive Dashboard** - Premium dark-mode admin dashboard with real-time progress
* **Accessibility** - ARIA live regions, keyboard navigation, and screen reader support

= How It Works =

1. Go to **XML Feeds > Import Wizard**
2. Enter your feed URL and let the wizard validate and detect the format
3. Preview the feed data with auto-detected fields highlighted
4. Map XML fields to WordPress fields with drag-and-drop
5. Save and run your import

= WP-CLI Usage =

`wp slxwb import <feed_id>` - Import a specific feed
`wp slxwb list` - List all configured feeds
`wp slxwb status` - Show import status

== Installation ==

1. Upload the `starline-xml-feed-importer` folder to `/wp-content/plugins/`
2. Activate the plugin through the 'Plugins' menu in WordPress
3. Navigate to **XML Feeds > Dashboard** to get started
4. Use the **Import Wizard** to configure your first feed

== Frequently Asked Questions ==

= What XML formats are supported? =

The plugin supports RSS 1.0, RSS 2.0, Atom feeds, and custom XML formats. It detects the format automatically.

= Can I import from multiple feeds? =

Yes. You can configure unlimited feeds, each with its own schedule, mapping, and settings.

= How does duplicate detection work? =

The plugin uses 4 levels of duplicate detection in priority order: Original Link, GUID, Hash (content similarity), and Title. You can configure which method to use per feed.

= Does it support custom post types? =

Yes. You can import into any public post type, including custom post types.

= Will large feeds slow down my site? =

No. Large feeds (5000+ items) are automatically processed in the background using a queue system with chunked processing and memory management.

= Is WP-CLI supported? =

Yes. Use `wp slxwb import`, `wp slxwb list`, `wp slxwb status`, and other commands.

= Does it work with ACF, MetaBox, or Pods? =

Yes. The field mapper auto-detects ACF, MetaBox, Pods, and JetEngine fields and lets you map XML data to them.

== External Services ==

This plugin communicates with external servers to fetch XML feed content that you explicitly configure. No data is sent to any third party.

= Feed Fetching =

* **What data is sent:** An HTTP GET request is made to the feed URL you provide. No user-identifiable information, WordPress credentials, or personal data is included in the request.
* **Service provider:** The server hosting the XML feed URL you configure (varies per user).
* **When it occurs:** When you click Validate in the Import Wizard, when you run a manual import, or when a scheduled cron import fires.
* **Privacy Policy:** No privacy policy is required from third-party services since no user data is transmitted.

= Image Downloading =

* **What data is sent:** An HTTP GET request is made to the image URLs found in your configured XML feed. No user-identifiable information is included.
* **Service provider:** The server hosting the images referenced in your XML feed.
* **When it occurs:** Only when the "Download Images" option is enabled for a feed and an import is running.

== Changelog ==

= 1.0.0 =
* Initial release
* Import wizard with 4 steps
* RSS, Atom, and custom XML support
* Per-feed scheduling with 11 intervals + custom cron
* 4-level duplicate detection
* Image downloading with gallery support
* WP-CLI commands
* Performance optimization with caching and batch operations
* Premium admin dashboard with dark mode
* Accessibility features

== Upgrade Notice ==

= 1.0.0 =
Initial release.
