login-me-now

Extending the Plugin

Use the existing architecture to add custom login providers, integrations, or admin panels without forking the project.

Architectural Building Blocks

Adding a Custom Login Provider

  1. Create a new directory under app/Logins/YourProvider with classes for settings, routes, buttons, and controller logic.
  2. Extend LoginBase or ModuleBase to control bootstrapping. Use SettingsRepository to store configuration and Module::is_active() to respect feature toggles.【F:app/Logins/GoogleLogin/GoogleLogin.php†L9-L45】【F:app/Utils/Module.php†L11-L13】
  3. Register REST endpoints by extending RouteBase and enqueue front-end assets via an Enqueuer class if needed.【F:app/Logins/MagicLinkLogin/Route.php†L14-L19】【F:app/Common/RouteBase.php†L17-L64】
  4. Update LoginsServiceProvider::get() to include your provider class so it boots automatically.【F:app/Providers/LoginsServiceProvider.php†L14-L27】

Creating a New Integration

  1. Build an integration class extending IntegrationBase that hooks into partner plugin actions to render login buttons.【F:app/Integrations/WooCommerce/WooCommerce.php†L11-L55】
  2. Register configuration fields using the login_me_now_settings_fields filter so administrators can enable/disable the integration and pick providers.【F:app/Integrations/Directorist/Settings.php†L15-L61】
  3. Append the class to IntegrationsServiceProvider::get() to ensure it loads after the plugin boots.【F:app/Providers/IntegrationsServiceProvider.php†L14-L27】

Working with DTOs

Front-end Enhancements

Testing & Deployment

Leverage these patterns to deliver bespoke login experiences while staying aligned with the core plugin roadmap.