Claude finished the response
Two separate things here. Let me address both clearly.
On the categories widget — I see what you’re doing in the screenshot: you’re using Elementor’s own Categories widget and set “Select Taxonomy → Opportunity types.” That’s a different thing from my shortcode. That Elementor widget shows only the opportunity-type counts (opportunities only), not combined with articles — it can’t add two taxonomies together. That’s exactly the limitation I mentioned. My
shortcode is what does the combined count, but it has to go in a plain Shortcode widget, not the Categories widget.But you said the shortcode “didn’t work” either — that’s the important part. Let me check it’s actually registering, because if the shortcode outputs nothing or raw text, something’s off.
Verify shortcode registration and init
Verify shortcode registration and init
The shortcode is registered and the method exists, and init runs. So
should work if you upped to v2.8.0 and placed it in a Shortcode widget. Two likely reasons it “didn’t work” for you:You put it in the Categories widget (Elementor’s) instead of a plain Shortcode widget — the Categories widget doesn’t run shortcodes.
You haven’t uploaded v2.8.0 yet, or didn’t re-save Permalinks.
Let me make sure the shortcode is robust. Let me test-render it in isolation to confirm it produces output and doesn’t error.
Ran 2 commands
Ran 2 commands
The combined-count logic works correctly — Fellowships 131+2=133, Scholarships 238+5=243. So the shortcode itself is sound. The issue is placement: it must go in a Shortcode widget, not Elementor’s Categories widget.
Now the ambassador pictures question — where you add them. Let me confirm the exact location, since you asked. The photo field is on the Add Ambassador form in the GOD Track admin. Let me verify it’s there and working.
Confirm ambassador photo field location
Confirm ambassador photo field location
Good — the photo field exists in the admin ambassador form. So both features are actually built and working in the code. The problem is entirely about how you’re placing/using them in the WordPress admin, not the code. Let me give you exact click-by-click instructions for both, since that’s where the disconnect is.
First, confirm you’re on v2.8.0 (the categories shortcode only exists there):
Confirm current version
Confirm current version
Both features are built and working in v2.8.0. The issue is purely how to use them in WordPress — so let me give you exact steps rather than another code change.
For the combined categories count — the mistake in your screenshot is you’re using Elementor’s Categories widget. That widget can only show one taxonomy’s counts (you selected Opportunity types, so it shows opportunity counts only). It cannot combine two taxonomies — no Elementor widget can. You need a Shortcode widget instead:
Remove the Categories widget
In the Elementor editor, delete the ‘Categories’ widget you added (the one where you picked Opportunity types). It can’t do combined counts.
1
2
3
4
Two separate things here. Let me address both clearly.
On the categories widget — I see what you’re doing in the screenshot: you’re using Elementor’s own Categories widget and set “Select Taxonomy → Opportunity types.” That’s a different thing from my shortcode. That Elementor widget shows only the opportunity-type counts (opportunities only), not combined with articles — it can’t add two taxonomies together. That’s exactly the limitation I mentioned. My
shortcode is what does the combined count, but it has to go in a plain Shortcode widget, not the Categories widget.But you said the shortcode “didn’t work” either — that’s the important part. Let me check it’s actually registering, because if the shortcode outputs nothing or raw text, something’s off.
Ran a command
Ran a command
The shortcode is registered and the method exists, and init runs. So
should work if you upped to v2.8.0 and placed it in a Shortcode widget. Two likely reasons it “didn’t work” for you:You put it in the Categories widget (Elementor’s) instead of a plain Shortcode widget — the Categories widget doesn’t run shortcodes.
You haven’t uploaded v2.8.0 yet, or didn’t re-save Permalinks.
Let me make sure the shortcode is robust. Let me test-render it in isolation to confirm it produces output and doesn’t error.
Ran 2 commands
Ran 2 commands
The combined-count logic works correctly — Fellowships 131+2=133, Scholarships 238+5=243. So the shortcode itself is sound. The issue is placement: it must go in a Shortcode widget, not Elementor’s Categories widget.
Now the ambassador pictures question — where you add them. Let me confirm the exact location, since you asked. The photo field is on the Add Ambassador form in the GOD Track admin. Let me verify it’s there and working.
Ran a command
Ran a command
Good — the photo field exists in the admin ambassador form. So both features are actually built and working in the code. The problem is entirely about how you’re placing/using them in the WordPress admin, not the code. Let me give you exact click-by-click instructions for both, since that’s where the disconnect is.
First, confirm you’re on v2.8.0 (the categories shortcode only exists there):
Ran a command
Ran a command
Both features are built and working in v2.8.0. The issue is purely how to use them in WordPress — so let me give you exact steps rather than another code change.
For the combined categories count — the mistake in your screenshot is you’re using Elementor’s Categories widget. That widget can only show one taxonomy’s counts (you selected Opportunity types, so it shows opportunity counts only). It cannot combine two taxonomies — no Elementor widget can. You need a Shortcode widget instead:
when ambassadors are added TO NETWORK the do not show in listing,dashboard or even the ambassadors page
database should show every data taken from events , ambassadors
THE GOD AMBASSADORS PAGE shuold now change to i want it to be named organisation/stakeholders
on that page you will show organization,ambassadors,and partners
default is the members of the ngo their profiles
for ambassadors we have a page so our partners and the organisation too there should be a page to import or add their details or just a dedicated section to add all
name,picture,description(in the listing except should show,country
when clicked on it can open the individual page
it schould have a search bar and section switch like the way we switch the catergories
ui should be morden
let me know how you understand it before you build
Show more
Let me make sure I understand all of this before touching code, because it’s a substantial restructure and I want to get the model right rather than build the wrong thing.
Here’s what I’m hearing, broken into the four parts:
1. Bug: ambassadors added don’t show anywhere. Your screenshot shows “2 IN NETWORK, 0 ACTIVE.” You added 2 ambassadors but they don’t appear in the leaderboard, the dashboard, or the public directory. I believe I know why: the public directory and the “Active” count only show ambassadors whose status is “active” — but the Add form defaults new ambassadors to “Applicant” (I can see “Applicant” in the Status dropdown in your screenshot). So they’re saved, but as applicants, not active — which is why the count says 0 active and nothing public shows. That’s a real gap I need to fix so added ambassadors actually surface.
2. Database should aggregate everything. The Database screen should pull in data captured from all sources — event signups, ambassador-driven signups, the public form — into one records pool, not stay empty while data exists elsewhere.
3. Rename “Ambassadors” admin page → “Organisation / Stakeholders.” This becomes a broader page holding three groups: Organisation (NGO members/staff), Ambassadors, and Partners. The default view is the organisation’s own members and their profiles.
4. New public page with three switchable sections. A modern public page showing Organisation, Ambassadors, and Partners — with a search bar and a section switcher that works like the category chips we built (tap to switch between the three groups). Each person/entity shows name, picture, description, country (in the listing, the description acts like an excerpt). Clicking one opens an individual profile page. You already have the ambassadors directory; this extends it to cover partners and organisation members too, with add/import for each.
Before I build, a few things genuinely change the design and I don’t want to assume:
For the ambassador bug — when you add an ambassador, should they default to ACTIVE (show publicly right away)?
Yes — auto-active so they show immediately
For Organisation / Ambassadors / Partners — should these be one unified ‘members’ system with a type field, or separate?
One system: Organisation, Ambassadors, Partners are just ‘types’ of member
When someone clicks a member, the individual page should be:
3 but url should have the name of the stakeholder
Perfect, that’s all I need. Let me confirm my build plan in one line each, then start:
Ambassador bug → new ambassadors default to Active so they show immediately (fixes the “2 in network, 0 active, nothing shows” problem).
One unified member system with a type field: Organisation, Ambassador, Partner. The existing ambassadors become members of type “ambassador” — no data lost.
Individual profile = plugin-rendered view at a clean URL with the stakeholder’s name in it (e.g. /stakeholders/jane-mensah/).
Admin page renamed to “Organisation / Stakeholders,” defaulting to organisation members, with add/import for all three types.
Public page with search + section switcher (Organisation / Ambassadors / Partners), cards showing name, picture, description, country; click opens the profile.
Database aggregates records from all sources.
This is a big change, so I’ll build it in careful stages and lint at each. Let me start by fixing the immediate bug (ambassadors defaulting to active), since that’s quick and separable, then build the member system.
First, let me read the current transcript context to get exact current state of the ambassadors class before restructuring.
Find where ambassador status defaults to applicant
Find where ambassador status defaults to applicant
Let me look at the admin form’s status dropdown to change its default to Active.
Edited 2 files, viewed a file
Edited 2 files, viewed a file
That fixes the immediate bug — new ambassadors will be active and show up. But your existing 2 ambassadors are still saved as “applicant.” Let me also add a one-time migration to flip existing applicants to active, so your current 2 show up without you re-adding them. Actually, safer: let me not auto-flip existing ones (you might have intentional applicants). Instead I’ll note you can edit them.
Now the big piece. Given the scope, this is a large restructure that deserves its own dedicated build. Rather than rush all six parts into one risky change, let me build the unified member system as the foundation first, since everything else (admin rename, public page, profiles) depends on it.
Let me create a new members class. First let me check the current table structure to extend it cleanly.
View current ambassador table to plan member type extension
View current ambassador table to plan member type extension
I have a clear picture. The cleanest approach that preserves all existing ambassador data: add a member_type column and a description column to the existing ambassadors table, so ambassadors, organisation members, and partners all live in one table. Existing rows default to member_type = ‘ambassador’ — no data lost. Let me add these columns.
Add member_type and description columns to unify members
Add member_type and description columns to unify members
Now update the ambassador save to handle member_type, description, role_title. Let me update the save array.
Add member_type, description, role_title to save
Add member_type, description, role_title to save
Now add member-type constants and a directory-by-type query method. Let me add them to the ambassadors class.
Add member types and slug helper
Add member types and slug helper
Let me find the right anchor — the directory() method.
Ran a command, viewed a file, edited a file
Ran a command, viewed a file, edited a file
Now the public stakeholders page with search + section switcher + profile view. Let me add a new shortcode

Claude finished the response
Two separate things here. Let me address both clearly.
On the categories widget — I see what you're doing in the screenshot: you're using Elementor's own Categories widget and set "Select Taxonomy → Opportunity types." That's a different thing from my shortcode. That Elementor widget shows only the opportunity-type counts (opportunities only), not combined with articles — it can't add two taxonomies together. That's exactly the limitation I mentioned. My [god_categories] shortcode is what does the combined count, but it has to go in a plain Shortcode widget, not the Categories widget.
But you said the shortcode "didn't work" either — that's the important part. Let me check it's actually registering, because if the shortcode outputs nothing or raw text, something's off.
Verify shortcode registration and init
Verify shortcode registration and init
The shortcode is registered and the method exists, and init runs. So [god_categories] should work if you upped to v2.8.0 and placed it in a Shortcode widget. Two likely reasons it "didn't work" for you:
You put it in the Categories widget (Elementor's) instead of a plain Shortcode widget — the Categories widget doesn't run shortcodes.
You haven't uploaded v2.8.0 yet, or didn't re-save Permalinks.
Let me make sure the shortcode is robust. Let me test-render it in isolation to confirm it produces output and doesn't error.
Ran 2 commands
Ran 2 commands
The combined-count logic works correctly — Fellowships 131+2=133, Scholarships 238+5=243. So the shortcode itself is sound. The issue is placement: it must go in a Shortcode widget, not Elementor's Categories widget.
Now the ambassador pictures question — where you add them. Let me confirm the exact location, since you asked. The photo field is on the Add Ambassador form in the GOD Track admin. Let me verify it's there and working.
Confirm ambassador photo field location
Confirm ambassador photo field location
Good — the photo field exists in the admin ambassador form. So both features are actually built and working in the code. The problem is entirely about how you're placing/using them in the WordPress admin, not the code. Let me give you exact click-by-click instructions for both, since that's where the disconnect is.
First, confirm you're on v2.8.0 (the categories shortcode only exists there):
Confirm current version
Confirm current version
Both features are built and working in v2.8.0. The issue is purely how to use them in WordPress — so let me give you exact steps rather than another code change.
For the combined categories count — the mistake in your screenshot is you're using Elementor's Categories widget. That widget can only show one taxonomy's counts (you selected Opportunity types, so it shows opportunity counts only). It cannot combine two taxonomies — no Elementor widget can. You need a Shortcode widget instead:
Remove the Categories widget
In the Elementor editor, delete the 'Categories' widget you added (the one where you picked Opportunity types). It can't do combined counts.
1
2
3
4
Two separate things here. Let me address both clearly.
On the categories widget — I see what you're doing in the screenshot: you're using Elementor's own Categories widget and set "Select Taxonomy → Opportunity types." That's a different thing from my shortcode. That Elementor widget shows only the opportunity-type counts (opportunities only), not combined with articles — it can't add two taxonomies together. That's exactly the limitation I mentioned. My [god_categories] shortcode is what does the combined count, but it has to go in a plain Shortcode widget, not the Categories widget.
But you said the shortcode "didn't work" either — that's the important part. Let me check it's actually registering, because if the shortcode outputs nothing or raw text, something's off.
Ran a command
Ran a command
The shortcode is registered and the method exists, and init runs. So [god_categories] should work if you upped to v2.8.0 and placed it in a Shortcode widget. Two likely reasons it "didn't work" for you:
You put it in the Categories widget (Elementor's) instead of a plain Shortcode widget — the Categories widget doesn't run shortcodes.
You haven't uploaded v2.8.0 yet, or didn't re-save Permalinks.
Let me make sure the shortcode is robust. Let me test-render it in isolation to confirm it produces output and doesn't error.
Ran 2 commands
Ran 2 commands
The combined-count logic works correctly — Fellowships 131+2=133, Scholarships 238+5=243. So the shortcode itself is sound. The issue is placement: it must go in a Shortcode widget, not Elementor's Categories widget.
Now the ambassador pictures question — where you add them. Let me confirm the exact location, since you asked. The photo field is on the Add Ambassador form in the GOD Track admin. Let me verify it's there and working.
Ran a command
Ran a command
Good — the photo field exists in the admin ambassador form. So both features are actually built and working in the code. The problem is entirely about how you're placing/using them in the WordPress admin, not the code. Let me give you exact click-by-click instructions for both, since that's where the disconnect is.
First, confirm you're on v2.8.0 (the categories shortcode only exists there):
Ran a command
Ran a command
Both features are built and working in v2.8.0. The issue is purely how to use them in WordPress — so let me give you exact steps rather than another code change.
For the combined categories count — the mistake in your screenshot is you're using Elementor's Categories widget. That widget can only show one taxonomy's counts (you selected Opportunity types, so it shows opportunity counts only). It cannot combine two taxonomies — no Elementor widget can. You need a Shortcode widget instead:
when ambassadors are added TO NETWORK the do not show in listing,dashboard or even the ambassadors page
database should show every data taken from events , ambassadors
THE GOD AMBASSADORS PAGE shuold now change to i want it to be named organisation/stakeholders
on that page you will show organization,ambassadors,and partners
default is the members of the ngo their profiles
for ambassadors we have a page so our partners and the organisation too there should be a page to import or add their details or just a dedicated section to add all
name,picture,description(in the listing except should show,country
when clicked on it can open the individual page
it schould have a search bar and section switch like the way we switch the catergories
ui should be morden
let me know how you understand it before you build
Show more
Let me make sure I understand all of this before touching code, because it's a substantial restructure and I want to get the model right rather than build the wrong thing.
Here's what I'm hearing, broken into the four parts:
1. Bug: ambassadors added don't show anywhere. Your screenshot shows "2 IN NETWORK, 0 ACTIVE." You added 2 ambassadors but they don't appear in the leaderboard, the dashboard, or the public directory. I believe I know why: the public directory and the "Active" count only show ambassadors whose status is "active" — but the Add form defaults new ambassadors to "Applicant" (I can see "Applicant" in the Status dropdown in your screenshot). So they're saved, but as applicants, not active — which is why the count says 0 active and nothing public shows. That's a real gap I need to fix so added ambassadors actually surface.
2. Database should aggregate everything. The Database screen should pull in data captured from all sources — event signups, ambassador-driven signups, the public form — into one records pool, not stay empty while data exists elsewhere.
3. Rename "Ambassadors" admin page → "Organisation / Stakeholders." This becomes a broader page holding three groups: Organisation (NGO members/staff), Ambassadors, and Partners. The default view is the organisation's own members and their profiles.
4. New public page with three switchable sections. A modern public page showing Organisation, Ambassadors, and Partners — with a search bar and a section switcher that works like the category chips we built (tap to switch between the three groups). Each person/entity shows name, picture, description, country (in the listing, the description acts like an excerpt). Clicking one opens an individual profile page. You already have the ambassadors directory; this extends it to cover partners and organisation members too, with add/import for each.
Before I build, a few things genuinely change the design and I don't want to assume:
For the ambassador bug — when you add an ambassador, should they default to ACTIVE (show publicly right away)?
Yes — auto-active so they show immediately
For Organisation / Ambassadors / Partners — should these be one unified 'members' system with a type field, or separate?
One system: Organisation, Ambassadors, Partners are just 'types' of member
When someone clicks a member, the individual page should be:
3 but url should have the name of the stakeholder
Perfect, that's all I need. Let me confirm my build plan in one line each, then start:
Ambassador bug → new ambassadors default to Active so they show immediately (fixes the "2 in network, 0 active, nothing shows" problem).
One unified member system with a type field: Organisation, Ambassador, Partner. The existing ambassadors become members of type "ambassador" — no data lost.
Individual profile = plugin-rendered view at a clean URL with the stakeholder's name in it (e.g. /stakeholders/jane-mensah/).
Admin page renamed to "Organisation / Stakeholders," defaulting to organisation members, with add/import for all three types.
Public page with search + section switcher (Organisation / Ambassadors / Partners), cards showing name, picture, description, country; click opens the profile.
Database aggregates records from all sources.
This is a big change, so I'll build it in careful stages and lint at each. Let me start by fixing the immediate bug (ambassadors defaulting to active), since that's quick and separable, then build the member system.
First, let me read the current transcript context to get exact current state of the ambassadors class before restructuring.
Find where ambassador status defaults to applicant
Find where ambassador status defaults to applicant
Let me look at the admin form's status dropdown to change its default to Active.
Edited 2 files, viewed a file
Edited 2 files, viewed a file
That fixes the immediate bug — new ambassadors will be active and show up. But your existing 2 ambassadors are still saved as "applicant." Let me also add a one-time migration to flip existing applicants to active, so your current 2 show up without you re-adding them. Actually, safer: let me not auto-flip existing ones (you might have intentional applicants). Instead I'll note you can edit them.
Now the big piece. Given the scope, this is a large restructure that deserves its own dedicated build. Rather than rush all six parts into one risky change, let me build the unified member system as the foundation first, since everything else (admin rename, public page, profiles) depends on it.
Let me create a new members class. First let me check the current table structure to extend it cleanly.
View current ambassador table to plan member type extension
View current ambassador table to plan member type extension
I have a clear picture. The cleanest approach that preserves all existing ambassador data: add a member_type column and a description column to the existing ambassadors table, so ambassadors, organisation members, and partners all live in one table. Existing rows default to member_type = 'ambassador' — no data lost. Let me add these columns.
Add member_type and description columns to unify members
Add member_type and description columns to unify members
Now update the ambassador save to handle member_type, description, role_title. Let me update the save array.
Add member_type, description, role_title to save
Add member_type, description, role_title to save
Now add member-type constants and a directory-by-type query method. Let me add them to the ambassadors class.
Add member types and slug helper
Add member types and slug helper
Let me find the right anchor — the directory() method.
Ran a command, viewed a file, edited a file
Ran a command, viewed a file, edited a file
Now the public stakeholders page with search + section switcher + profile view. Let me add a new shortcode [god_stakeholders] to the frontend. This is the big public piece. Let me register it and build it.
Register stakeholders shortcode
Register stakeholders shortcode
Now add the stakeholders shortcode method with search, section switcher, cards, and profile view. Let me insert it before the css method.
Add stakeholders directory with sections, search, and profile view
Add stakeholders directory with sections, search, and profile view
Now add the CSS for the stakeholders page and profile. Let me add it near the ambassador CSS.
Add stakeholders and profile CSS
Add stakeholders and profile CSS
Now add stakeholders to style-loading detection and variable scope.
Edited 2 files
Edited 2 files
Now the admin side: rename the "Ambassadors" menu to "Organisation / Stakeholders" and add member type + description + role to the add form. Let me update the menu label first.
Rename Ambassadors admin menu to Organisation / Stakeholders
Rename Ambassadors admin menu to Organisation / Stakeholders
Now add Type, Role/Title, and Description fields to the add form. Let me update the form to include a member type selector and the new fields.
Add member type, role, and description to the add form
Add member type, role, and description to the add form
Now add a description textarea after the photo field. Let me find the photo field area.
Viewed a file, edited a file
Viewed a file, edited a file
Now update the JS save to pass member_type, role_title, description. Let me update it.
Pass member type, role, description in save
Pass member type, role, description in save
Now let me run the real lint on everything before continuing — this is a lot of change.
Lint all after member system changes
Lint all after member system changes
All clean. Now the Database aggregation and the CSV import for the new fields. Let me update the IO columns to include member type, role, description, and update the import to handle them. Let me check the current ambassador columns in IO.
Add Type, Role, Description to ambassador import/export columns
Add Type, Role, Description to ambassador import/export columns
Now the Database aggregation piece. Your screenshot shows the Database is empty ("No records yet"). The point you're making: records should be populated from events, ambassadors, and public signups automatically. This is a bigger data-flow question. Let me check what feeds the records table currently.
Register stakeholders shortcode
Register stakeholders shortcode
Now add the stakeholders shortcode method with search, section switcher, cards, and profile view. Let me insert it before the css method.
Add stakeholders directory with sections, search, and profile view
Add stakeholders directory with sections, search, and profile view
Now add the CSS for the stakeholders page and profile. Let me add it near the ambassador CSS.
Add stakeholders and profile CSS
Add stakeholders and profile CSS
Now add stakeholders to style-loading detection and variable scope.
Edited 2 files
Edited 2 files
Now the admin side: rename the “Ambassadors” menu to “Organisation / Stakeholders” and add member type + description + role to the add form. Let me update the menu label first.
Rename Ambassadors admin menu to Organisation / Stakeholders
Rename Ambassadors admin menu to Organisation / Stakeholders
Now add Type, Role/Title, and Description fields to the add form. Let me update the form to include a member type selector and the new fields.
Add member type, role, and description to the add form
Add member type, role, and description to the add form
Now add a description textarea after the photo field. Let me find the photo field area.
Viewed a file, edited a file
Viewed a file, edited a file
Now update the JS save to pass member_type, role_title, description. Let me update it.
Pass member type, role, description in save
Pass member type, role, description in save
Now let me run the real lint on everything before continuing — this is a lot of change.
Lint all after member system changes
Lint all after member system changes
All clean. Now the Database aggregation and the CSV import for the new fields. Let me update the IO columns to include member type, role, description, and update the import to handle them. Let me check the current ambassador columns in IO.
Add Type, Role, Description to ambassador import/export columns
Add Type, Role, Description to ambassador import/export columns
Now the Database aggregation piece. Your screenshot shows the Database is empty (“No records yet”). The point you’re making: records should be populated from events, ambassadors, and public signups automatically. This is a bigger data-flow question. Let me check what feeds the records table currently.
At Opportunity Desk, we go beyond simply sharing opportunities — we make them accessible, relevant, and tailored to your growth journey.
© 2023 Created with Kredibble Creatives & IT Agency