=== GrowthSupport ===
Contributors: eggemplo
Tags: support, helpdesk, tickets, customer-support, help-desk
Requires at least: 6.2
Tested up to: 7.1
Requires PHP: 8.0
Stable tag: 1.0.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

A clean, native WordPress support ticket system. Clients manage tickets from the frontend; agents handle everything from the admin.

== Description ==

GrowthSupport gives you a full support ticket system that lives entirely inside WordPress — no external services, no SaaS fees, no extra logins. If you're looking for a self-hosted alternative to tools like Zendesk that runs entirely within your own WordPress site, this is it.

**For clients:**

* Open a new ticket in under 30 seconds using the included shortcode on any page.
* See only their own tickets — no data leakage from other users.
* Follow the full conversation thread with clear CLIENT / TEAM message labels.
* Filter tickets by status (Open, In Progress, Resolved, Closed).
* Close their own ticket once their issue is resolved.

**For agents:**

* A dedicated admin panel shows all tickets at a glance: status badge, priority level (Urgent / High / Normal / Low), reply count, client name, and relative timestamp.
* Open any ticket to read the full conversation thread and reply instantly.
* Change ticket status (Open → In Progress → Resolved → Closed) from a dropdown in the ticket header.
* Filter the ticket list by status to focus on what matters right now.

**Under the hood:**

* Uses custom database tables — no bloat from WordPress post types.
* Clean REST API (`/wp-json/growthsupport/v1/tickets`) for headless or custom integrations.
* Extensible hooks (`growthsup_ticket_created`, `growthsup_ticket_reply_posted`, `growthsup_ticket_status_changed`, `growthsup_ticket_format`) so add-ons can build on top.
* Supports multiple support agents: any WordPress user with the `growthsup_manage_tickets` capability can handle tickets.
* Fully translatable. Default language: English.

**Shortcode**

Place `[growthsupport_tickets]` on any page to show the client ticket portal. Only logged-in users with the `growthsup_create_tickets` capability can see it.

**Pro version**

[GrowthSupport Pro](https://growthplugins.com/plugin/growthsupport/) is an optional add-on that extends the free plugin with:

* **MCP Abilities** — exposes GrowthSupport to AI agents via the WordPress Abilities API (requires WordPress 6.9+).
* **Email notifications** — automatic emails to agents on new tickets and client replies; automatic emails to clients on agent replies and status changes.

== Installation ==

1. Upload the `growthsupport` folder to the `/wp-content/plugins/` directory, or install directly through **Plugins > Add New**.
2. Activate the plugin through the **Plugins** menu in WordPress.
3. Go to **GrowthSupport** in the admin menu to see the ticket dashboard.
4. Create a page and add the shortcode `[growthsupport_tickets]` to give clients their support portal.
5. Share the page URL with your clients. They must be logged in to create and view tickets.

== Frequently Asked Questions ==

= Do clients need a WordPress account? =

Yes. Clients must be logged-in WordPress users. The plugin grants the `growthsup_create_tickets` capability to all standard roles (subscriber, contributor, author, editor) on activation, so any registered user can open tickets.

= Can I have multiple support agents? =

Yes — any WordPress user with the `growthsup_manage_tickets` capability can access the admin panel and respond to tickets. By default this capability is granted to administrators. You can grant it to other roles or individual users using a capabilities plugin (e.g. Members, User Role Editor).

= Where is the ticket data stored? =

All tickets and replies are stored in two custom tables in your own WordPress database (`wp_growthsup_tickets` and `wp_growthsup_ticket_replies`). No data is sent to external services.

= Can I customise the frontend appearance? =

The frontend uses minimal CSS you can override in your theme. The HTML structure is rendered by `assets/js/growthsupport.js` and the styles are in `assets/css/growthsupport.css`.

= Is there a REST API? =

Yes. All ticket operations are available at `/wp-json/growthsupport/v1/tickets`. Authentication uses standard WordPress cookie or application password authentication.

= What happens to the data when I uninstall the plugin? =

Uninstalling (not just deactivating) the plugin drops both database tables and removes all plugin options and capabilities. This action is irreversible.

= Does this plugin send emails? =

The free version does not send any emails. Email notifications for agents and clients are available in GrowthSupport Pro.

= Is this a self-hosted alternative to Zendesk? =

Yes. GrowthSupport is built for WordPress sites that need a clean support desk without the cost and complexity of external SaaS platforms like Zendesk, Freshdesk, or Help Scout. There are no per-agent fees, no monthly subscriptions, and no data leaving your server. Everything runs inside WordPress using your existing users, database, and theme.

= Is the plugin GDPR compliant? =

The plugin stores only data that users explicitly submit (ticket subject, description, replies) along with their WordPress user ID. All data stays in your database. No data is shared with third parties. You are responsible for disclosing this data collection in your privacy policy.

== Screenshots ==

1. The agent dashboard shows all tickets at a glance with status badges, priority levels, reply counts, and client names.
2. Full ticket conversation view in the admin — agents can reply and change status without leaving WordPress.
3. The client-facing ticket portal — each user sees only their own tickets with status filter.
4. Client conversation view with clear CLIENT / TEAM message labels and a reply form.
5. The new-ticket modal — clients can submit a ticket with subject, description, and priority in seconds.
6. Admin ticket list filtered to "Open" tickets only.
7. Status dropdown in the admin ticket header for quick status changes.

== Changelog ==

= 1.0.0 =
* Initial release.

== Upgrade Notice ==

= 1.0.0 =
Initial release. No upgrade steps required.
