{"id":287533,"date":"2026-03-22T14:08:00","date_gmt":"2026-03-22T14:08:00","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/simplu-memberships-client-session-manager\/"},"modified":"2026-03-22T14:07:32","modified_gmt":"2026-03-22T14:07:32","slug":"attendra","status":"publish","type":"plugin","link":"https:\/\/szl.wordpress.org\/plugins\/attendra\/","author":23357848,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.3.2","stable_tag":"1.3.2","tested":"6.9.4","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"Attendra \u2013 Client Attendance Manager","header_author":"Simplu Digital","header_description":"Domain-agnostic client and session management plugin for memberships.","assets_banners_color":"2e3420","last_updated":"2026-03-22 14:07:32","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":80,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.3.2":{"tag":"1.3.2","author":"simpledigital","date":"2026-03-22 14:07:32"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3488234,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3488234,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3488234,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3488234,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.3.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3488234,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3488234,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3488234,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3488234,"resolution":"4","location":"assets","locale":""},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3488234,"resolution":"5","location":"assets","locale":""},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3488234,"resolution":"6","location":"assets","locale":""},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3488234,"resolution":"7","location":"assets","locale":""},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3488234,"resolution":"8","location":"assets","locale":""}},"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."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[5877,27930,434,1932,30471],"plugin_category":[58],"plugin_contributors":[258321],"plugin_business_model":[],"class_list":["post-287533","plugin","type-plugin","status-publish","hentry","plugin_tags-attendance","plugin_tags-client-management","plugin_tags-dashboard","plugin_tags-membership","plugin_tags-sessions","plugin_category-user-management","plugin_contributors-simpledigital","plugin_committers-simpledigital"],"banners":{"banner":"https:\/\/ps.w.org\/attendra\/assets\/banner-772x250.png?rev=3488234","banner_2x":"https:\/\/ps.w.org\/attendra\/assets\/banner-1544x500.png?rev=3488234","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/attendra\/assets\/icon-128x128.png?rev=3488234","icon_2x":"https:\/\/ps.w.org\/attendra\/assets\/icon-256x256.png?rev=3488234","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/attendra\/assets\/screenshot-1.png?rev=3488234","caption":"Easy onboarding: set up your attendance system in minutes."},{"src":"https:\/\/ps.w.org\/attendra\/assets\/screenshot-2.png?rev=3488234","caption":"Service setup: configure schedules, service details, and staff assignment."},{"src":"https:\/\/ps.w.org\/attendra\/assets\/screenshot-3.png?rev=3488234","caption":"Client setup: create users, assign services, and track attendance."},{"src":"https:\/\/ps.w.org\/attendra\/assets\/screenshot-4.png?rev=3488234","caption":"Calendar settings: switch between views and control how your schedule is displayed."},{"src":"https:\/\/ps.w.org\/attendra\/assets\/screenshot-5.png?rev=3488234","caption":"Customize labels and settings: adapt Attendra to your business by renaming labels and controlling features."},{"src":"https:\/\/ps.w.org\/attendra\/assets\/screenshot-6.png?rev=3488234","caption":"Attendance tracking: quickly mark attendance and track session usage for every client."},{"src":"https:\/\/ps.w.org\/attendra\/assets\/screenshot-7.png?rev=3488234","caption":"Calendar view: display your schedule in a clean, easy-to-read layout across desktop and mobile."},{"src":"https:\/\/ps.w.org\/attendra\/assets\/screenshot-8.png?rev=3488234","caption":"Client portal: give clients full visibility over their sessions, progress, and upcoming classes."}],"raw_content":"<!--section=description-->\n<p><strong>Selling sessions but losing track of attendance?<\/strong><\/p>\n\n<p>Attendra helps you manage clients, sessions, and attendance directly inside WordPress, without spreadsheets or expensive SaaS tools.<\/p>\n\n<p>If you run a gym, studio, tutoring center, therapy practice, or any service-based business, you already know the pain:\n- Who still has sessions left?\n- Who showed up last week?\n- Which clients expired or ran out?<\/p>\n\n<p>Attendra gives you a clean, structured workflow built for real-world use.<\/p>\n\n<p>No monthly fees. No external platforms. Your data stays yours.<\/p>\n\n<h4>Who is this for?<\/h4>\n\n<ul>\n<li>Personal trainers and fitness studios<\/li>\n<li>Tutors and learning centers<\/li>\n<li>Therapists and wellness coaches<\/li>\n<li>Sports clubs and after-school programs<\/li>\n<li>Any business that sells services in sessions or packages<\/li>\n<\/ul>\n\n<h4>What you can do<\/h4>\n\n<p><strong>Track attendance without spreadsheets<\/strong><br \/>\nLog sessions in seconds and always know how many entries each client has left.<\/p>\n\n<p><strong>Manage clients and services in one place<\/strong><br \/>\nAssign services, track allowances, and keep everything organized inside WordPress.<\/p>\n\n<p><strong>Give clients their own portal<\/strong><br \/>\nClients can log in and see their remaining sessions, services, and full attendance history.<\/p>\n\n<p><strong>Let staff mark attendance without wp-admin<\/strong><br \/>\nStaff users get a clean frontend interface to mark attendance quickly and safely.<\/p>\n\n<p><strong>Display your schedule publicly<\/strong><br \/>\nUse a shortcode to show your services and schedule on your website.<\/p>\n\n<h3>Developer Notes<\/h3>\n\n<p>To regenerate translation template:\n    wp i18n make-pot . languages\/attendra.pot --exclude=assets,vendor,node_modules --slug=attendra<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code> or install it from the WordPress Plugins screen.<\/li>\n<li>Activate <strong>Attendra \u2013 Client Attendance Manager<\/strong> in <strong>Plugins<\/strong>.<\/li>\n<li>Start with the setup guide or go to <strong>Settings &gt; Attendra<\/strong> and configure labels and feature toggles.<\/li>\n<li>Create a Portal page, a Public Calendar page, and optionally a Staff Portal page, then add shortcodes:\n\n<ul>\n<li><code>[attendra_portal]<\/code><\/li>\n<li><code>[attendra_public_calendar]<\/code><\/li>\n<li><code>[attendra_staff_portal]<\/code><\/li>\n<\/ul><\/li>\n<li>Create services and clients, then assign services and allowance values in the client metaboxes.<\/li>\n<li>(Optional) On each service, assign one staff\/admin user in <strong>Assigned Staff<\/strong>.<\/li>\n<\/ol>\n\n<p>Additional links:\n- Plugin page: https:\/\/attendra.app\n- Documentation: https:\/\/attendra.app\/documentation\n- Report a bug: https:\/\/attendra.app\/report-bug\n- Pro version: https:\/\/attendra.app\/pro<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20create%20a%20client%3F\"><h3>How do I create a client?<\/h3><\/dt>\n<dd><p>Go to <strong>Clients<\/strong> in wp-admin and create a new record. Add the client name, set payer type, assign services, then update.<\/p><\/dd>\n<dt id=\"how%20do%20i%20assign%20services%3F\"><h3>How do I assign services?<\/h3><\/dt>\n<dd><p>Edit a client and use <strong>Assigned Services<\/strong> to select one or more services. Save the client to apply changes.<\/p><\/dd>\n<dt id=\"how%20does%20session%20tracking%20work%3F\"><h3>How does session tracking work?<\/h3><\/dt>\n<dd><p>In the client edit screen, use <strong>Session Activity<\/strong> to add one session at a time for each assigned service. When a session is added, remaining entries are recalculated automatically.<\/p><\/dd>\n<dt id=\"can%20sessions%20be%20deleted%3F\"><h3>Can sessions be deleted?<\/h3><\/dt>\n<dd><p>Yes. Active sessions can be soft-deleted with a required reason (and optional note). Deleted sessions remain in history and do not consume entries.<\/p><\/dd>\n<dt id=\"how%20do%20entries%20and%20expiration%20work%3F\"><h3>How do entries and expiration work?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"what%20does%20reset%20sessions%20do%3F\"><h3>What does Reset Sessions do?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"why%20can%20i%20not%20remove%20a%20service%20from%20a%20client%3F\"><h3>Why can I not remove a service from a client?<\/h3><\/dt>\n<dd><p>If there are session records tied to that client service pair, unlink is blocked to preserve history consistency.<\/p><\/dd>\n<dt id=\"why%20is%20a%20service%20not%20visible%20in%20the%20public%20calendar%3F\"><h3>Why is a service not visible in the public calendar?<\/h3><\/dt>\n<dd><p>Check these first:\n- Service is active\n- Show in calendar is enabled\n- Schedule is valid and complete\n- Date range includes current period (if date limits are set)<\/p><\/dd>\n<dt id=\"how%20does%20staff%20access%20work%3F\"><h3>How does staff access work?<\/h3><\/dt>\n<dd><p>Staff users only see services assigned to them and clients linked to those services. Staff can mark attendance from the frontend using the <code>[attendra_staff_portal]<\/code> shortcode.<\/p><\/dd>\n<dt id=\"what%20is%20the%20staff%20portal%3F\"><h3>What is the staff portal?<\/h3><\/dt>\n<dd><p>Staff portal is a frontend attendance interface designed for fast use during classes.<\/p>\n\n<ul>\n<li>Purpose: mark attendance without opening wp-admin.<\/li>\n<li>Shortcode: <code>[attendra_staff_portal]<\/code>.<\/li>\n<li>Access: users with role <code>attendra_staff<\/code>, administrators, and users with <code>attendra_manage_clients<\/code>.<\/li>\n<li>Design: mobile-first layout with service scoped access checks on server side.<\/li>\n<\/ul><\/dd>\n<dt id=\"can%20i%20customize%20portal%2C%20staff%20portal%2C%20and%20calendar%20pages%3F\"><h3>Can I customize portal, staff portal, and calendar pages?<\/h3><\/dt>\n<dd><p>Yes. The plugin supports custom page IDs via options:\n- <code>attendra_portal_page_id<\/code>\n- <code>attendra_staff_portal_page_id<\/code>\n- <code>attendra_calendar_page_id<\/code>\nIf not set, it falls back to default slugs.<\/p><\/dd>\n<dt id=\"what%20happens%20on%20uninstall%3F\"><h3>What happens on uninstall?<\/h3><\/dt>\n<dd><p>The plugin removes its roles, capabilities, and settings option. Client\/service data is deleted only if <strong>Delete data on uninstall<\/strong> is enabled in plugin settings.<\/p><\/dd>\n<dt id=\"is%20this%20plugin%20wordpress.org%20friendly%3F\"><h3>Is this plugin WordPress.org friendly?<\/h3><\/dt>\n<dd><p>The plugin is WordPress-native and includes nonce\/capability checks, sanitization\/escaping in admin flows, uninstall cleanup controls, and translation-ready strings with the <code>attendra<\/code> text domain.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20require%20woocommerce%3F\"><h3>Does this plugin require WooCommerce?<\/h3><\/dt>\n<dd><p>No. Attendra runs as a WordPress-native workflow and does not require WooCommerce.<\/p><\/dd>\n<dt id=\"can%20i%20rename%20labels%20like%20client%20or%20service%3F\"><h3>Can I rename labels like Client or Service?<\/h3><\/dt>\n<dd><p>Yes. Go to <strong>Settings &gt; Attendra<\/strong> and customize labels for client, service, and package\/session wording.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.3.2<\/h4>\n\n<p>Quality and compliance updates, including CPT capability hardening, i18n loading\/template generation, and frontend style\/script cleanup.<\/p>\n\n<h4>1.0.0<\/h4>\n\n<p>Initial release.<\/p>","raw_excerpt":"Track client attendance, manage session allowances, and give clients their own portal, all inside WordPress. No SaaS fees.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/287533","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=287533"}],"author":[{"embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/simpledigital"}],"wp:attachment":[{"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=287533"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=287533"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=287533"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=287533"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=287533"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=287533"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}