=== PressPilot Frontend Editor for Avada ===
Contributors: cardeetech, neriomolina
Donate link: https://cardee.tech/pagos/donaciones/
Tags: frontend editor, avada, post editor, frontend publishing, user generated content
Requires at least: 6.4
Tested up to: 7.0
Requires PHP: 8.0
Stable tag: 1.2.3
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Let authenticated users create and edit posts from the frontend — no wp-admin needed. Built for Avada, works with any theme.

== Description ==

PressPilot Frontend Editor for Avada lets authenticated users create and edit standard WordPress posts directly from the frontend, without accessing wp-admin.

Designed for editorial workflows where non-admin users need a clean writing experience while administrators keep full control over permissions, status transitions, authorship, and media uploads.

Developed and maintained by [CardeeTech](https://cardee.tech/).

**Key capabilities:**

* Frontend create/edit form for standard posts
* Frontend listing of posts with direct edit links
* TinyMCE editor, excerpt, categories, tags, post status, and scheduled date
* Featured image upload or external URL (with SSRF protections)
* Avada Builder native elements for the two core shortcodes
* Internationalization-ready (fully translatable)

**Security highlights:**

* Nonce validation on all form submissions (`_ppfenonce`)
* Capability-gated operations (`edit_posts`, `edit_post`, `edit_others_posts`, `publish_posts`, `upload_files`)
* Strict sanitization and escaping throughout
* External image URL hardening: HTTPS-only, blocks localhost/private/link-local/metadata endpoints

**Avada integration:**

When Avada Builder is active, the plugin registers native Avada Builder elements for both shortcodes, so editors can add the frontend form and posts list using the visual drag-and-drop builder without writing shortcode syntax.

== Installation ==

1. Upload the plugin folder to `/wp-content/plugins/`.
2. Activate **PressPilot Frontend Editor for Avada** from **Plugins**.
3. Create a page for the editor and insert the shortcode `[ppfe_edit_post]`.
4. Create a page for the post list and insert `[ppfe_my_posts edit_page="/your-editor-page/"]`.
5. Go to **PressPilot FEE > Style** to align colors and spacing with your theme.

== Shortcodes ==

* `[ppfe_edit_post]` — Main create/edit form.
* `[ppfe_my_posts]` — Current user's post list with edit links.
* `[ppfe_form]` — Alias of `[ppfe_edit_post]`.

**Attributes for `[ppfe_my_posts]`:**

* `edit_page` — URL of the editor page (e.g. `edit_page="/write/"`)

== Frequently Asked Questions ==

= Does this plugin allow guest submissions? =

No. All users must be logged in and pass WordPress capability checks before any action is taken.

= Can contributors publish directly? =

Only users with the `publish_posts` capability can publish. Contributors are automatically limited to draft/pending workflows.

= Is Avada required? =

No. The plugin works with any WordPress theme. When Avada Builder is active, native builder elements become available as an added convenience.

= What post types are supported? =

The plugin targets standard WordPress posts (`post`) for predictable and controlled editorial behavior.

= Can I control who can see other users' posts in the list? =

Yes. Administrators and editors see all posts automatically. Other users with `edit_others_posts` capability can also see all posts when `show_others="1"` is added to the shortcode. Without that attribute, every user sees only their own posts.

== Screenshots ==

1. Plugin backend dashboard — quick-start checklist, shortcode reference, and plugin status overview.
2. Settings tab — plugin version, edition, and upcoming features.
3. Style tab — color, dimensions, border radius, font size, and shadow controls with live preview.
4. Shortcodes tab — full parameter reference for `[ppfe_edit_post]` and `[ppfe_my_posts]`.
5. Quick-start guide tab — step-by-step installation and configuration walkthrough.
6. Frontend new post form — create and publish posts directly from the frontend.
7. My Posts management and editing — post list with Avada Builder editor.
8. Post management and editing — post list with Classic Editor.

== Changelog ==

= 1.2.3 =
* Fix: Settings role list layout — 4-column grid (switch, name, categories, permissions).
* Fix: "Puede editar" / "Puede publicar" per-role checkboxes now save and apply correctly.

= 1.2.2 =
* Fix: category restriction now applies to both "Most used" and "All" tabs in the frontend form.

= 1.2.1 =
* Fix: categories now configured per role in Settings (not per user in profile).
* Fix: Contributor added to always-on roles.
* UI: role list redesigned with on/off switches and tag-input category selector.

= 1.2.0 =
* Feature: configurable role-based access — select which WP/UltimateMember roles can use the frontend editor (PressPilot FEE > Settings).
* Feature: per-user category restrictions — assign allowed categories per user from WP Admin > Users > edit user.
* Feature: non-admin/editor posts always go to pending for moderation regardless of selected status.
* Feature: email notification to configurable addresses when a post is submitted for moderation.
* Feature: published posts are read-only in [ppfe_my_posts] for non-admin/editor users.

= 1.1.0 =
* Compatibility: raised minimum PHP requirement to 8.0 (PHP 7.4 is EOL).
* Compatibility: raised minimum WordPress requirement to 6.4.
* Security: tightened frontend form display — requires edit_posts capability in addition to post authorship.
* Feature: administrators and editors now automatically see all posts in [ppfe_my_posts] without needing show_others='1'.
* Feature: author name displayed per post card when viewing all posts (admin/editor view).

= 1.0.0 =
* Initial release on WordPress.org.
* Frontend create/edit form with TinyMCE, featured image, categories, tags, status and scheduled date.
* My Posts listing shortcode with capability-aware visibility.
* Avada Builder native elements for both shortcodes.
* Full nonce and capability security on all form submissions.
* Admin style panel to customise colors and spacing.
* Spanish (es_ES) translation included.

== Upgrade Notice ==

= 1.0.0 =
Initial release.
