*/ class Attp_admin_settings { public function attp_menu_setting_OnClick() { include_once plugin_dir_path(dirname(__FILE__)) . 'partials/settings/index.php'; } function ada_tracking_settings_init() { // Register a setting and its sanitization callback register_setting('ada_tracking_settings_group', 'attp_option', 'sanitize_callback'); // Add a section and fields to the settings page add_settings_section( 'ada_tracking_settings_section', '', //'Custom Plugin Settings Section', array($this, 'ada_tracking_settings_section_callback'), 'ada-tracking-plugin' ); add_settings_field( "attp_blockfrost_api", 'Blockfrost project ID', function () { $name = "attp_blockfrost_api"; $description = 'Blockfrost mainnet project id'; $options = get_option('attp_option'); $value = isset($options[$name]) ? esc_attr($options[$name]) : ''; ?>

/>

/>

/>

Enter your settings below:

'; } /** * Sanitization and validation callback function * * @param array $input Raw input data from the form * @return array Sanitized and validated data */ function sanitize_callback($input) { $sanitized_input = array(); // Validate and sanitize the ADA Receiving Address if (isset($input['receiving_address'])) { // Basic validation: check if the address is not empty if (!empty($input['receiving_address'])) { // Sanitize the address (as a simple text input) $sanitized_input['receiving_address'] = sanitize_text_field($input['receiving_address']); } else { // Set an error message if the address is empty add_settings_error( 'ada_tracking_option', 'ada_tracking_receiving_address_error', 'The ADA Receiving Address cannot be empty.', 'error' ); } } // Validate and sanitize the Notification Email Checkbox if (isset($input['notif_email_address_cb'])) { // Checkbox is either on or off $sanitized_input['notif_email_address_cb'] = $input['notif_email_address_cb'] === 'on' ? 'on' : ''; } // Validate and sanitize the Notification Email Address if (isset($input['notif_email_address'])) { // Basic validation: check if the email is valid if (is_email($input['notif_email_address'])) { $sanitized_input['notif_email_address'] = sanitize_email($input['notif_email_address']); } else { add_settings_error( 'ada_tracking_option', 'ada_tracking_notif_email_address_error', 'Invalid email address provided.', 'error' ); } } // Validate and sanitize other fields as needed... // For each additional field, repeat similar checks and sanitizations return $sanitized_input; } }