=== Attendra – Client Attendance Manager ===
Contributors: simpledigital
Tags: membership, client-management, sessions, attendance, dashboard
Requires at least: 6.0
Tested up to: 6.9
Requires PHP: 8.0
Stable tag: 1.3.2
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Track client attendance, manage session allowances, and give clients their own portal, all inside WordPress. No SaaS fees.

== Description ==

**Selling sessions but losing track of attendance?**

Attendra helps you manage clients, sessions, and attendance directly inside WordPress, without spreadsheets or expensive SaaS tools.

If you run a gym, studio, tutoring center, therapy practice, or any service-based business, you already know the pain:
- Who still has sessions left?
- Who showed up last week?
- Which clients expired or ran out?

Attendra gives you a clean, structured workflow built for real-world use.

No monthly fees. No external platforms. Your data stays yours.

= Who is this for? =

- Personal trainers and fitness studios
- Tutors and learning centers
- Therapists and wellness coaches
- Sports clubs and after-school programs
- Any business that sells services in sessions or packages

= What you can do =

**Track attendance without spreadsheets**  
Log sessions in seconds and always know how many entries each client has left.

**Manage clients and services in one place**  
Assign services, track allowances, and keep everything organized inside WordPress.

**Give clients their own portal**  
Clients can log in and see their remaining sessions, services, and full attendance history.

**Let staff mark attendance without wp-admin**  
Staff users get a clean frontend interface to mark attendance quickly and safely.

**Display your schedule publicly**  
Use a shortcode to show your services and schedule on your website.

== Installation ==

1. Upload the plugin folder to `/wp-content/plugins/` or install it from the WordPress Plugins screen.
2. Activate **Attendra – Client Attendance Manager** in **Plugins**.
3. Start with the setup guide or go to **Settings > Attendra** and configure labels and feature toggles.
4. Create a Portal page, a Public Calendar page, and optionally a Staff Portal page, then add shortcodes:
   - `[attendra_portal]`
   - `[attendra_public_calendar]`
   - `[attendra_staff_portal]`
5. Create services and clients, then assign services and allowance values in the client metaboxes.
6. (Optional) On each service, assign one staff/admin user in **Assigned Staff**.

Additional links:
- Plugin page: https://attendra.app
- Documentation: https://attendra.app/documentation
- Report a bug: https://attendra.app/report-bug
- Pro version: https://attendra.app/pro

== Frequently Asked Questions ==

= How do I create a client? =

Go to **Clients** in wp-admin and create a new record. Add the client name, set payer type, assign services, then update.

= How do I assign services? =

Edit a client and use **Assigned Services** to select one or more services. Save the client to apply changes.

= How does session tracking work? =

In the client edit screen, use **Session Activity** to add one session at a time for each assigned service. When a session is added, remaining entries are recalculated automatically.

= Can sessions be deleted? =

Yes. Active sessions can be soft-deleted with a required reason (and optional note). Deleted sessions remain in history and do not consume entries.

= How do entries and expiration work? =

Entries represent how many sessions can still be used for a specific service on a specific client. Expiration date defines the validity limit for that allowance record.

= What does Reset Sessions do? =

Reset Sessions starts a new cycle for that client service pair. It resets completed sessions for the package cycle and restores available entries after confirmation.

= Why can I not remove a service from a client? =

If there are session records tied to that client service pair, unlink is blocked to preserve history consistency.

= Why is a service not visible in the public calendar? =

Check these first:
- Service is active
- Show in calendar is enabled
- Schedule is valid and complete
- Date range includes current period (if date limits are set)

= How does staff access work? =

Staff users only see services assigned to them and clients linked to those services. Staff can mark attendance from the frontend using the `[attendra_staff_portal]` shortcode.

= What is the staff portal? =

Staff portal is a frontend attendance interface designed for fast use during classes.

- Purpose: mark attendance without opening wp-admin.
- Shortcode: `[attendra_staff_portal]`.
- Access: users with role `attendra_staff`, administrators, and users with `attendra_manage_clients`.
- Design: mobile-first layout with service scoped access checks on server side.

= Can I customize portal, staff portal, and calendar pages? =

Yes. The plugin supports custom page IDs via options:
- `attendra_portal_page_id`
- `attendra_staff_portal_page_id`
- `attendra_calendar_page_id`
If not set, it falls back to default slugs.

= What happens on uninstall? =

The plugin removes its roles, capabilities, and settings option. Client/service data is deleted only if **Delete data on uninstall** is enabled in plugin settings.

= Is this plugin WordPress.org friendly? =

The plugin is WordPress-native and includes nonce/capability checks, sanitization/escaping in admin flows, uninstall cleanup controls, and translation-ready strings with the `attendra` text domain.

= Does this plugin require WooCommerce? =

No. Attendra runs as a WordPress-native workflow and does not require WooCommerce.

= Can I rename labels like Client or Service? =

Yes. Go to **Settings > Attendra** and customize labels for client, service, and package/session wording.

== Screenshots ==

1. Easy onboarding: set up your attendance system in minutes.
2. Service setup: configure schedules, service details, and staff assignment.
3. Client setup: create users, assign services, and track attendance.
4. Calendar settings: switch between views and control how your schedule is displayed.
5. Customize labels and settings: adapt Attendra to your business by renaming labels and controlling features.
6. Attendance tracking: quickly mark attendance and track session usage for every client.
7. Calendar view: display your schedule in a clean, easy-to-read layout across desktop and mobile.
8. Client portal: give clients full visibility over their sessions, progress, and upcoming classes.

== Changelog ==

= 1.3.2 =
Quality and compliance updates, including CPT capability hardening, i18n loading/template generation, and frontend style/script cleanup.

= 1.0.0 =
Initial release.

== Developer Notes ==

To regenerate translation template:
`wp i18n make-pot . languages/attendra.pot --exclude=assets,vendor,node_modules --slug=attendra`
