PLANS
wolfXcore offers two subscription tiers. Users purchase a plan via M-Pesa and gain access to the corresponding server allocation limits.
Plan comparison
| Feature | LIMITED KES 50 | UNLIMITED KES 100 |
|---|---|---|
| Monthly price | KES 50 | KES 100 |
| Server slots | Limited quota | No hard limit |
| Resource caps | Enforced per server | Configurable by admin |
| File manager | ✓ | ✓ |
| Console access | ✓ | ✓ |
| Scheduled tasks | ✓ | ✓ |
| Database management | ✓ | ✓ |
| Priority support | — | ✓ |
How plans are stored
Plan assignments are stored on the user record in the database. The billing webhook updates the user's plan field after a successful M-Pesa payment is confirmed by Paystack.
plan -- enum: 'none', 'limited', 'unlimited'
plan_expires_at -- timestamp: when the current plan expires
Plan enforcement
When a user attempts to create a server, the panel checks their current plan and whether it has expired. Actions are blocked at the controller level if the plan does not permit the requested action.
none and cannot create new
servers or use plan-gated features. Existing servers remain accessible but may have
reduced functionality until renewal.
Purchasing a plan
- Log into the panel and navigate to Billing (
/billing). - Select either the LIMITED or UNLIMITED plan.
- Enter your Safaricom M-Pesa phone number in
07XXXXXXXXXformat. - Click Pay Now — an STK push is sent to your phone.
- Approve the payment prompt on your phone using your M-Pesa PIN.
- The overlay will update to Success and your plan activates immediately.
Admin — manual plan assignment
Admins can manually assign or adjust a user's plan from the admin user editor, or directly in the database:
UPDATE users
SET plan = 'unlimited',
plan_expires_at = DATE_ADD(NOW(), INTERVAL 30 DAY)
WHERE email = 'user@example.com';
Changing plan prices
Plan prices are defined in the billing controller
(app/Http/Controllers/BillingController.php). To change a price:
- Open
app/Http/Controllers/BillingController.php. - Locate the
$plansarray and update theamountvalues (in KES). - Update the corresponding text in the billing view if needed.
- Deploy the change and rebuild the frontend.