Member User Access

Klub stores provider data, gates, and progress on the member user. Use this page to shape the member blueprint and permissions.

Member blueprint

Create a member role (or any role in bnomei.klub.members.roles) and disable Panel access.

site/blueprints/users/member.yml
title: Member

permissions:
  access:
    panel: false

fields:
  klub_provider:
    type: hidden
    translate: false
  gates:
    type: hidden
  progress:
    type: hidden

Notes:

  • The provider data field name comes from bnomei.klub.providers.{provider}.field (default: provider key).
  • If you use a stable field name like klub_provider, set bnomei.klub.providers.{provider}.field to that field name.
  • gates and progress field names are defined by ProviderGates::$field and UserFieldProgress::$field.
  • Provider fields can be encrypted when you enable bnomei.klub.crypto.encrypt.
  • If you keep the default field name (provider key), Klub ships hidden field presets: fields/klub/{provider} (stripe, mollie, lemonsqueezy, chargebee, polar, paypal, paddle).

Example config if you use a stable provider data field name:

config/config.php
<?php

$provider = 'paddle'; // change to your provider key

return [
  'bnomei.klub.providers.' . $provider . '.field' => 'klub_provider',
];

User helpers

The plugin adds user methods like:

  • $user->hasGate($priceId)
  • $user->owns($priceIdOrProduct)
  • $user->owned() (array of owned products)
  • $user->allGates() (Field with all gate IDs)
  • $user->subscriptions()
  • $user->allOwned()
  • $user->hasProgress($page)
  • $user->isMember() / $user->isAdmin()
  • $user->toCustomer() (provider customer data)
  • $user->updateKlub($data) (blueprint-filtered updates)
Kirby Klub is not affiliated with the developers of Kirby CMS. We are merely standing on the shoulder of giants.
© 2026 Bruno Meilick All rights reserved.