Hub managers
Services
The Services component exists to serve one other component. It holds the paid subscriptions that let an employer use the hub's job board: what an employer service costs, how long it runs for, and where each employer's subscription stands. Nothing else on the hub reads it.
It has no site pages of its own. Employers buy and renew a subscription from the job board's own screens; this component is where an administrator sees the result, takes a payment that arrived some other way, and switches a subscription on.
It is unrelated to Storefront and Cart, which are the hub's actual shop. Services predates them and shares no code, no tables, and no checkout. If a hub does not run a job board, this component has nothing in it.
So the decision is not made here. It is made in Jobs, by the Allow user subscriptions? setting: turn that on and members can become employers, employers need subscriptions, and subscriptions land on this screen for someone to activate. Turn it off, or never link to the job board at all — which is what most hubs do — and nothing ever appears here.
The screens
Components → Services, gated on core.manage for com_services. Two
sub-navigation entries.
Services
The catalogue of things an employer can subscribe to. The list shows the ID, Title, Category, and Status — Active or Inactive. Toolbar: Options, New, Edit, Delete.
The edit form:
| Field | Meaning |
|---|---|
| Category | Required. The job board asks for services in the jobs category, so anything else is invisible to it. |
| Title | Required. Shown to the employer. |
| Alias | Letters, numbers, dashes and underscores. Must be unique. The job board looks services up by alias. |
| Description | Shown to the employer. |
| Currency | A symbol, printed in front of prices. |
| Price | The price of one unit. |
| Points | The price of one unit in hub points, if the hub lets employers pay that way. |
| Minimum # of units and Maximum # of units | How many units an employer may buy at once. |
| Size and Measure | What a unit is — 1 and month in the services the job board creates. |
| Parameters | Newline-separated key=value pairs. The job board reads maxads (how many adverts the subscription allows), promo (promotional text), and promomaxunits (how many units the promotion covers). |
| Restricted | Marks the service as reserved for members of the job board's Special services group. See the warning below. |
| Status | Published, Unpublished, or Trashed. Only a published service is offered. |
The first time an employer reaches the job board's subscription screen and
finds no jobs services at all, the job board creates two for you:
Employer Service, Basic (free, one advert, first three months promotional)
and Employer Service, Premium (unpublished, $500 a month, three adverts).
Edit those rather than starting from nothing.
Subscriptions
One row per employer subscription. Filter by offers Pending, Active, Cancelled, and All. The list shows the ID and code, the status, the service, the pending payment and units, the member, and the added, updated and expiry dates.
Opening a subscription shows the service and its price, the member's profile and employer details, the amounts paid and pending, and an Administrator Notes box. Below that, Manage Subscription offers one action at a time:
| Action | What it does |
|---|---|
| No action / send message to user | Records the note and mails the member. Shown as Subscription on hold for a subscription that is not cancelled. |
| Activate / Extend this subscription | Takes a New payment received amount and a number of units, adds the payment to the total paid, extends the expiry date by units × unit size months, and sets the status to active. |
| Cancel this subscription | Sets the status to cancelled and clears the pending amounts. See the warning below. |
| Process refund / remove pending items | Only offered on a cancelled subscription that still shows a pending payment. Records the refund as posted and clears the pending amounts. |
Anything typed into Send user a message, and the status change itself, are appended to the notes with a timestamp and mailed to the member.
Activating a subscription somebody has paid for
An employer has chosen the Premium service and sent the department a cheque for three months. This is the sequence.
- Components → Services → Subscriptions. Set Filter by to Pending. That filter does work; Active does not.
- Open the subscription. Check the service, its unit price and unit size against what was actually paid — nothing here validates the amount, and nothing reconciles it against a payment system.
- Choose Activate / Extend this subscription.
- Enter the amount in New payment received and the number of units. Units × the service's unit size gives the number of months. On a first activation those months are counted from today; on a renewal they are added to the existing expiry date, so an employer renewing late does not lose the time they already had. Pressing Activate / Extend twice adds the months twice.
- Type an explanation into Send user a message if you want one. Whatever you write is appended to the notes with a timestamp and mailed to the member, so write it for them, not for your colleagues. The Administrator Notes box is the place for anything internal.
- Save. The status becomes active and the employer's postings can be published against their quota.
If the employer later wants out, be aware of what cancelling does before you press it: read the warning above, work out the refund yourself, and record it in Administrator Notes — because after the cancellation the component will show nothing owed and offer you no way to say otherwise.
Options
One setting, plus the usual Permissions tab. Both are listed in the generated reference.
Auto-approve employer subscriptions decides what happens when an employer subscribes to a service that costs nothing — a free tier, or a paid one inside its promotional period. With it on, the subscription activates immediately. With it off, it is created as pending and waits for someone to open it here and press Activate / Extend.
The setting is read by the job board, not by this component.
Rewritten and checked against 2.4-main @ 009ec973b7 on 2026-09-10.