Configuration
Paymenter allows you to define configuration options for your extensions and themes using a simple array structure.
Basic Example
public function getConfig($values = [])
{
return [
[
'name' => 'api_key',
'label' => 'API Key',
'type' => 'password',
'description' => 'Your service API key',
'required' => true,
],
[
'name' => 'environment',
'label' => 'Environment',
'type' => 'select',
'options' => [
'sandbox' => 'Sandbox',
'production' => 'Production',
],
'default' => 'sandbox',
]
];
}
Field Options
Required Fields
name
- string
The field identifier used as the key for storing values.
label
- string
Display name shown to users.
type
- string
Field type.
Available options: text
, textarea
, markdown
, password
, email
, number
, select
, tags
, checkbox
, color
, file
, placeholder
Note: Checkout configs only support:
select
,radio
,text
,password
,number
,checkbox
Optional Fields
default
- string
Default value when field is empty.
description
- string
Help text displayed below the field.
required
- boolean
Whether the field must be filled out.
validation
- string|array
Laravel validation rules (e.g., 'url|required'
or ['url', 'required']
).
options
- array
Required for select
, radio
, and tags
types.
Options for select
fields:
'options' => [
'value1' => 'Display Name 1',
'value2' => 'Display Name 2',
]
disabled
- boolean
Whether the field is read-only.
live
- boolean
Triggers real-time updates when field value changes.
Advanced Example
public function getConfig($values = [])
{
return [
[
'name' => 'host',
'label' => 'Server URL',
'type' => 'text',
'default' => 'https://api.example.com',
'description' => 'The base URL for your API server',
'required' => true,
'validation' => 'url',
],
[
'name' => 'location',
'label' => 'Server Location',
'type' => 'select',
'description' => 'Choose your preferred server location',
'required' => true,
'options' => [
'us-east' => 'US East',
'us-west' => 'US West',
'eu-central' => 'EU Central',
],
'live' => true,
],
[
'name' => 'debug_mode',
'label' => 'Enable Debug Mode',
'type' => 'checkbox',
'description' => 'Enable detailed logging for troubleshooting',
'default' => false,
]
];
}