Awedesk admin settings are built from setting groups and menu filters. Useful hooks include alsp_config_menu, alsp_config_description, alsp_config, alsp_validate_field, alsp_config_set, alsp_config_add, alsp_config_del, and awedesk_config_get.
add_filter('alsp_config_menu', function (array $menu): array {
$menu['crm'] = [
'id' => 'crm',
'label' => __('CRM', 'my-extension'),
];
return $menu;
});
add_filter('alsp_config_description', function (array $desc): array {
$desc['crm_api_url_text'] = __('Base URL for the CRM API.', 'my-extension');
return $desc;
});
add_filter('alsp_config', function (array $config, string $position): array {
if ($position !== 'crm') {
return $config;
}
$config['crm_connection'] = [
'id' => 'crm_connection',
'title' => __('Connection', 'my-extension'),
'icon' => 'alsp-i-gears',
'position' => 'crm-left',
'items' => [
'crm_api_url_text' => ALSP_Config_Panel::admin_item('crm_api_url_text', false, __('API URL', 'my-extension')),
'crm_api_key_password' => ALSP_Config_Panel::admin_item('crm_api_key_password', false, __('API Key', 'my-extension')),
],
];
return $config;
}, 10, 2);
add_filter('alsp_validate_field', function ($valid, string $name, $value) {
if ($name !== 'crm_api_url_text') {
return $valid;
}
return filter_var($value, FILTER_VALIDATE_URL) ? true : __('Enter a valid CRM URL.', 'my-extension');
}, 10, 3);