=== Amendra Change Requests ===
Contributors: mukta1991
Tags: client requests, change requests, client portal, agency, freelancer
Requires at least: 6.2
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.2.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

A lightweight client change-request tracker for WordPress agencies and freelancers.

== Description ==

Amendra Change Requests gives agencies and freelancers a simple WordPress-native way for clients to submit website change requests and track their progress.

Features:

* Client request form via the [amendra_change_requests] shortcode.
* Link requests to published pages, posts, products and other public post types.
* Upload screenshots and supporting files.
* Priority levels: Low, Normal, High and Urgent.
* Statuses: New, In Progress, Waiting for Client, Done and Cancelled.
* Admin dashboard for reviewing and updating requests.
* Admin notes on requests.
* Email notification to the site administrator when a request is created.
* Email notification to the client when the status or priority of a request changes.
* WordPress privacy policy integration.
* Personal-data export and erase integration.
* No external API or tracking service is required.

== Installation ==

1. Upload the plugin ZIP via Plugins > Add New Plugin > Upload Plugin, or install it from the WordPress Plugin Directory.
2. Activate the plugin.
3. Create a page for clients and add the shortcode [amendra_change_requests].
4. Go to Client Requests > Settings and select that page.
5. Create WordPress user accounts for clients and give them an appropriate role with normal login access.
6. Use Client Requests in the WordPress admin to review and manage submissions.

== Frequently Asked Questions ==

= Can clients see other clients' requests? =

No. Non-administrator users can only see requests submitted by their own WordPress account. Administrators with the manage_options capability can see all requests.

= Which file types can clients attach? =

JPG, PNG, GIF, WebP, PDF and TXT, up to the site's WordPress upload limit. The list can be adjusted with the amendra_allowed_mime_types filter.

= Can I control who is allowed to submit a request? =

Yes. By default any logged-in user can submit. Use the amendra_user_can_submit filter to restrict submissions to a particular role or capability.

= Does the plugin require WooCommerce? =

No. It works with standard WordPress pages, posts and other public post types. WooCommerce is optional.

= Does it require an external service? =

No. The plugin uses WordPress core APIs, the WordPress database and the site's configured email system.

= Where is request data stored? =

Request data is stored in a dedicated WordPress database table. Uploaded files use the site's standard WordPress media upload system.

= Can request data be exported or erased? =

Yes. The plugin integrates with WordPress Tools > Export Personal Data and Tools > Erase Personal Data.

= What happens when I uninstall the plugin? =

By default, request data is retained so uninstalling the plugin does not unexpectedly destroy client records. You can enable data deletion in Client Requests > Settings before uninstalling.

= I was running an earlier version under a different name. Will my data survive the upgrade? =

Yes. On upgrade the plugin renames its own database table and copies its settings across to the new names, so existing requests and attachments are preserved.

== Privacy ==

The plugin stores request data associated with WordPress users, including user IDs, request titles, descriptions, statuses, priorities and optional uploaded attachments. It does not transmit request data to an external service. Email notifications are sent through the site's configured WordPress mail system.

Administrators should include the plugin's data handling in their site's privacy policy where required.

== Changelog ==

= 1.2.0 =
* Renamed the plugin, slug, text domain and all prefixes to be distinctive and to meet the four-character prefix requirement. Existing data is migrated automatically on upgrade.
* Fixed the personal-data exporter, which returned a structure WordPress could not read, so exports contained no change-request data.
* Fixed the personal-data eraser skipping records when a user had more than 500 requests.
* Fixed admin stylesheets not loading on sites running WordPress in a language other than English.
* Statuses and priorities are now shown using translated labels instead of the raw stored keys.
* Front-end script strings are now translatable.
* Removed ZIP, DOC and DOCX from the client-facing upload allowlist and added a filter for adjusting it.
* Added a filter for controlling who may submit a request.
* The client update notification is now only sent when the status or priority changes, not when admin notes are saved.
* Front-end assets now load when the shortcode is used in a widget or block template.
* Removed unnecessary rewrite-rule flushing on activation and deactivation.

= 1.1.1 =
* Improved database query preparation and security checks.
* Improved file upload validation and safe file deletion.
* Added required nonce handling and translation context comments.

= 1.1.0 =
* Added a settings page for the client requests page and uninstall-data preference.
* Added WordPress privacy policy, personal-data exporter and personal-data eraser integration.
* Improved admin form handling using admin-post.php and nonce checks.
* Improved internationalization of user-facing strings.

= 1.0.0 =
* Initial release.

== Upgrade Notice ==

= 1.2.0 =
The plugin has been renamed. Existing requests, attachments and settings are migrated automatically. The shortcode is now [amendra_change_requests]; update any page still using the old shortcode.
