Legal Services Management

Plugin Banner

Legal Services Management

by Mati Ullah

Download
Description

Legal Services Management is a powerful, all-in-one WordPress plugin designed specifically for law firms, solo attorneys, and legal service providers. Manage your entire practice workflow without leaving your WordPress dashboard.

Whether you’re a solo practitioner or managing a multi-attorney firm, this plugin gives you everything you need: client records, case tracking, appointment scheduling, document templates, invoicing, and frontend portals for both clients and attorneys.

Core Features

Client Management
* Complete client database with contact details, status tracking, and activity history
* Auto-link WordPress user accounts to client records
* Supports guest and logged-in client bookings

Case Management
* Track cases with case numbers, types (civil, criminal, family, corporate, immigration, real estate), priorities, and statuses
* Assign lawyers and link clients to each case
* Store court info and full case descriptions with the WordPress editor

Appointment Scheduling
* Book in-person, video call, and phone appointments
* Interactive monthly calendar view in the admin dashboard
* Automated email reminders via WP-Cron
* Frontend booking form via shortcode

Invoice & Billing
* Create professional invoices with subtotals, tax rates, and balance tracking
* Track invoice status: Draft, Sent, Paid, Overdue, and Cancelled
* Link invoices to specific cases and clients
* Stripe payment integration (configurable via settings)

Document Templates
* Create reusable document templates with placeholders ({client_name}, {case_number}, {date})
* Manage uploaded files linked to cases and clients

Client Portal (Frontend)
* Logged-in clients can view their cases, appointments, and invoices
* Accessible via [lsm_client_portal] shortcode on any page or post

Attorney/Lawyer Dashboard (Frontend)
* Attorneys can view their assigned cases, appointment calendar, and invoices
* Accessible via [lsm_lawyer_dashboard] shortcode

REST API
* Full RESTful API (/wp-json/lsm/v1/) for integration with external tools
* Permission-controlled endpoints for clients, cases, and appointments

Cron Automation
* Hourly appointment reminder emails
* Daily cleanup of old activity logs and expired sessions

Activity Logging
* Records all create/update operations for audit trail purposes

Available Shortcodes

Shortcode
Description

[lsm_booking_form]
Frontend appointment booking form

[lsm_client_portal]
Client self-service portal

[lsm_lawyer_dashboard]
Lawyer/attorney frontend dashboard

[lsm_lawyer_list]
Display all active lawyers

[lsm_service_list]
Display all available services

[lsm_appointment_calendar]
Client appointment calendar view

Custom Roles & Capabilities

The plugin registers the following custom WordPress roles and capabilities:

  • LSM Lawyer – Can manage cases, appointments, and view clients
  • LSM Client – Can access the client portal

Custom capabilities: manage_clients, manage_cases, manage_appointments, manage_invoices

Security

  • All form submissions protected with nonces (CSRF protection)
  • All input sanitized with appropriate WordPress functions (sanitize_text_field, sanitize_email, wp_kses_post, etc.)
  • All output escaped before rendering (esc_html, esc_attr, esc_url)
  • Database queries use $wpdb->prepare() with placeholders to prevent SQL injection
  • Direct file access protection on all PHP files
  • Safe redirects via wp_safe_redirect()

Automatic Installation

  1. Log in to your WordPress admin panel.
  2. Go to Plugins Add New.
  3. Search for Legal Services Management.
  4. Click Install Now, then Activate.

Manual Installation

  1. Download the plugin ZIP file.
  2. Go to Plugins Add New Upload Plugin.
  3. Upload the ZIP file and click Install Now.
  4. After installation, click Activate Plugin.

After Activation

  1. Navigate to LSM Settings to configure your company name, Stripe keys, and Twilio SMS integration.
  2. Create your first service under LSM Services.
  3. Add client records under LSM Clients.
  4. Add the [lsm_booking_form] shortcode to any page to enable online bookings.
  5. Add the [lsm_client_portal] shortcode to a members-only page for client self-service.
  1. <strong>Admin Dashboard</strong> – Overview with stats cards and monthly appointment calendar.

    Admin Dashboard – Overview with stats cards and monthly appointment calendar.

  2. <strong>Client Management</strong> – Full client database with add/edit/delete support.

    Client Management – Full client database with add/edit/delete support.

  3. <strong>Case Management</strong> – Track cases with types, priorities, and statuses.

    Case Management – Track cases with types, priorities, and statuses.

  4. <strong>Appointment Scheduling</strong> – Schedule appointments with calendar integration.

    Appointment Scheduling – Schedule appointments with calendar integration.

  5. <strong>Invoice System</strong> – Create and manage invoices with tax calculations.

    Invoice System – Create and manage invoices with tax calculations.

Does this plugin require WooCommerce?

No. Legal Services Management is a standalone plugin and does not depend on WooCommerce or any other plugin.

Can clients book appointments without creating a WordPress account?

Yes. The [lsm_booking_form] shortcode supports guest bookings. Guest clients are automatically added to your client database.

How do I set up the client portal?

  1. Create a new page (e.g., “My Portal”).
  2. Add the shortcode [lsm_client_portal] to the page content.
  3. Make the page accessible only to logged-in users (use a membership plugin or WordPress login redirect if needed).
  4. In the LSM admin, link each client record to their WordPress user account.

How do I display my services on the frontend?

Add [lsm_service_list] to any page or post. Services are pulled from LSM Services where is_active = 1.

Does the plugin send appointment reminder emails?

Yes. The plugin uses WordPress WP-Cron to send automated email reminders for upcoming appointments (within the next 24 hours). This requires your server’s cron to be running.

Can I integrate Stripe for payments?

Stripe API keys can be configured in LSM Settings Stripe Integration. Full Stripe payment processing requires additional customization using the stored API keys.

Is the plugin translation-ready?

Yes. All strings are wrapped in WordPress internationalization functions and the plugin includes a /languages directory for .po/.mo translation files. The text domain is legal-services-management.

What database tables does the plugin create?

The plugin creates the following tables:
{prefix}lsm_clients
{prefix}lsm_cases
{prefix}lsm_services
{prefix}lsm_appointments
{prefix}lsm_invoices
{prefix}lsm_documents
{prefix}lsm_notifications
{prefix}lsm_activity_logs
{prefix}lsm_sessions

All tables are removed on plugin uninstall.

Will it work with my theme?

Yes. The plugin renders standard HTML with minimal inline styles and enqueues its own frontend CSS. It is compatible with all standard WordPress themes.

2.0.0

  • Major release: Complete rewrite with improved architecture and security hardening
  • Added custom capabilities and role management (manage_clients, manage_cases, manage_appointments, manage_invoices)
  • Added interactive monthly calendar view in admin dashboard
  • Added lawyer frontend dashboard ([lsm_lawyer_dashboard] shortcode)
  • Added appointment calendar shortcode ([lsm_appointment_calendar])
  • Added service list shortcode ([lsm_service_list])
  • Added lawyer list shortcode ([lsm_lawyer_list])
  • Added full REST API with permission callbacks
  • Added WP-Cron for automated appointment reminders and log cleanup
  • Added activity logging for audit trails
  • Added Stripe and Twilio settings fields
  • Replaced all wp_redirect() with wp_safe_redirect()
  • Added nonce verification to all form submissions
  • Added wp_unslash() + sanitization to all $_POST/$_GET inputs
  • Added $wpdb->prepare() for all dynamic database queries
  • Added wp_cache_get/set for all list-view database queries
  • Replaced date() with gmdate() throughout for timezone safety
  • Added ABSPATH direct file access protection to all PHP files
  • Added sanitize_callback to register_setting()
  • Removed discouraged load_plugin_textdomain() call (translations auto-load for WP.org plugins)

1.0.0

  • Initial release
Back to top