Admin Configuration Extension

Version 1.9.3

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);