Skip to content

Commit e23e1e1

Browse files
committed
Add sponsor link, docs screenshots, bump v1.0.0
Add plugin row action links (Settings + Sponsor) in includes/Plugin.php and register the filter so the sponsor link appears on the Plugins list. Add multiple README screenshots and a Support/Sponsor section, and include several new screenshot assets under screenshots/. Bump plugin version and WORKOS_WP_VERSION constant to 1.0.0 in workos-for-wordpress.php to mark the release.
1 parent f506dae commit e23e1e1

12 files changed

Lines changed: 50 additions & 2 deletions

README.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
Replace the default WordPress login with WorkOS AuthKit and unlock SSO, SAML, OIDC, social login, MFA, and centralized user management — all without writing a single line of code.
66

7+
![AuthKit Login](screenshots/08-authkit-login.png)
8+
79
---
810

911
## Why WorkOS for WordPress?
@@ -37,6 +39,8 @@ WordPress powers millions of business-critical sites, but its built-in authentic
3739
3. **Activate** the plugin.
3840
4. **Configure your credentials** under the new **WorkOS** menu in the admin sidebar.
3941

42+
![Plugin Listing](screenshots/01-plugin-listing.png)
43+
4044
### Install from Source
4145

4246
If you prefer to clone the repository directly:
@@ -74,6 +78,8 @@ If you prefer to clone the repository directly:
7478

7579
That's it — your WordPress login page now redirects through WorkOS AuthKit.
7680

81+
![Welcome & Settings](screenshots/02-welcome-settings.png)
82+
7783
### Environment-Based Configuration
7884

7985
For managed deployments, staging environments, or version-controlled infrastructure, you can define credentials as constants in `wp-config.php` instead of storing them in the database:
@@ -99,6 +105,8 @@ When the plugin is configured, the WordPress login page (`wp-login.php`) automat
99105
- **Session management** — WorkOS session IDs are tracked so logout properly revokes both the WordPress session and the AuthKit hosted session.
100106
- **Bypass mode** — Append `?workos_bypass` to `wp-login.php` to access the native WordPress login form (useful for emergency access).
101107

108+
![AuthKit Login Experience](screenshots/08-authkit-login.png)
109+
102110
### Organization & Role Mapping
103111

104112
Bind your WordPress site to a WorkOS organization and map WorkOS roles to WordPress roles.
@@ -109,6 +117,8 @@ Bind your WordPress site to a WorkOS organization and map WorkOS roles to WordPr
109117

110118
On each login, the plugin fetches the user's organization membership from WorkOS and sets their WordPress role accordingly. Users without a mapped role keep their current role.
111119

120+
![Organization & Role Mapping](screenshots/03-organization-roles.png)
121+
112122
### Organization Entitlement Gate
113123

114124
When enabled, the entitlement gate requires users to have an **active membership** in your configured WorkOS organization before they can log in. Users who authenticate successfully via WorkOS but are not organization members are denied access with a clear message.
@@ -141,6 +151,8 @@ The sync runs sequentially with a built-in delay between API calls to respect ra
141151
- **Enable the Entitlement Gate** after syncing to enforce organization-based access going forward.
142152
- **Disable Learning Mode** once all users are imported — it is an onboarding tool, not a permanent setting.
143153

154+
![Learning Mode](screenshots/05-learning-mode.png)
155+
144156
### Users Table Integration
145157

146158
The plugin enhances the standard WordPress **Users** table (`wp-admin/users.php`) with:
@@ -155,6 +167,8 @@ The plugin enhances the standard WordPress **Users** table (`wp-admin/users.php`
155167
- **Learning Mode ON** → "reSync to WorkOS" — Pushes the user's data to WorkOS and ensures organization membership.
156168
- **Learning Mode OFF** → "reSync from WorkOS" — Verifies the user exists in WorkOS with an active organization membership. If they don't, the user is **suspended** (all WordPress roles are removed, preventing login). Their account and content are preserved.
157169

170+
![Users Table with WorkOS Status](screenshots/07-users-table.png)
171+
158172
### Activity Tracking
159173

160174
An optional local audit log that records authentication events. No data is sent externally.
@@ -179,6 +193,8 @@ The **Usage** page displays:
179193
- A table of the 20 most recent events with user email, IP address, and timestamp
180194
- A button to clear all logged events
181195

196+
![Usage & Activity Tracking](screenshots/04-usage-tracking.png)
197+
182198
### Diagnostics
183199

184200
The **Diagnostics** page verifies your WorkOS configuration:
@@ -187,6 +203,8 @@ The **Diagnostics** page verifies your WorkOS configuration:
187203
- Displays your Client ID, API Key (last 4 characters only), Organization ID, Redirect URI, and generated Auth URL.
188204
- Indicates whether each value is sourced from the database or a `wp-config.php` constant.
189205

206+
![Diagnostics](screenshots/06-diagnostics.png)
207+
190208
---
191209

192210
## How It Works
@@ -294,6 +312,16 @@ Suspended users retain their account, posts, and content. Only their WordPress r
294312

295313
---
296314

315+
## Support the Plugin
316+
317+
WorkOS for WordPress is free and open source. If it saves you time or helps your business, consider sponsoring its continued development:
318+
319+
**[Sponsor on GitHub](https://github.com/sponsors/AlwaysCuriousCo)**
320+
321+
Sponsorships help fund new features, ongoing maintenance, and community support. Every contribution — big or small — makes a difference.
322+
323+
---
324+
297325
## License
298326

299327
GPL-3.0-or-later. See [LICENSE](LICENSE) for details.

includes/Plugin.php

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,26 @@ private function init_hooks(): void {
9393
add_filter('user_row_actions', [$this, 'add_users_resync_action'], 10, 2);
9494
add_action('wp_ajax_workos_resync_user', [$this, 'handle_resync_user']);
9595
add_action('admin_enqueue_scripts', [$this, 'enqueue_users_table_assets']);
96+
97+
// Plugin row meta: sponsor link.
98+
add_filter('plugin_action_links_' . plugin_basename(WORKOS_WP_PLUGIN_FILE), [$this, 'plugin_action_links']);
99+
}
100+
101+
/**
102+
* Add action links next to "Deactivate" on the Plugins list page.
103+
*/
104+
public function plugin_action_links(array $links): array {
105+
$links['settings'] = sprintf(
106+
'<a href="%s">%s</a>',
107+
admin_url('admin.php?page=workos-settings'),
108+
__('Settings', 'workos-for-wordpress')
109+
);
110+
$links['sponsor'] = sprintf(
111+
'<a href="%s" target="_blank" rel="noopener" style="color:#6C47FF;font-weight:500;">%s</a>',
112+
'https://github.com/sponsors/AlwaysCuriousCo',
113+
__('Sponsor', 'workos-for-wordpress')
114+
);
115+
return $links;
96116
}
97117

98118
/**

screenshots/01-plugin-listing.png

182 KB
Loading
475 KB
Loading
151 KB
Loading

screenshots/04-usage-tracking.png

192 KB
Loading

screenshots/05-learning-mode.png

251 KB
Loading

screenshots/06-diagnostics.png

119 KB
Loading

screenshots/07-users-table.png

217 KB
Loading

screenshots/08-authkit-login.png

45.4 KB
Loading

0 commit comments

Comments
 (0)