function validate_page_slug_seamless_donations_admin_forms_callback($_submitted_array, $_existing_array, $_setup_object) { $_submitted_array = apply_filters('validate_page_slug_seamless_donations_admin_forms_callback', $_submitted_array, $_existing_array, $_setup_object); $section = seamless_donations_get_submitted_admin_section($_submitted_array); switch ($section) { case 'seamless_donations_admin_forms_section_levels': // SAVE LEVELS // $none_enabled = true; $giving_levels = dgx_donate_get_giving_levels(); foreach ($giving_levels as $giving_level) { if ($_submitted_array[$section]['giving_levels'][$giving_level]) { dgx_donate_enable_giving_level($giving_level); $none_enabled = false; } else { dgx_donate_disable_giving_level($giving_level); } } if ($none_enabled) { $_aErrors[$section]['giving_levels'] = __('At least one giving level is required.', 'seamless-donations'); $_setup_object->setFieldErrors($_aErrors); $_setup_object->setSettingNotice(__('There were errors in your submission.', 'seamless-donations')); return $_existing_array; } $_setup_object->setSettingNotice('Form updated successfully.', 'updated'); break; case 'seamless_donations_admin_forms_section_defaults': // SAVE DEFAULTS // update_option('dgx_donate_currency', $_submitted_array[$section]['dgx_donate_currency']); update_option('dgx_donate_default_country', $_submitted_array[$section]['dgx_donate_default_country']); $_setup_object->setSettingNotice('Form updated successfully.', 'updated'); break; case 'seamless_donations_admin_forms_section_fields': // SAVE FIELDS // update_option('dgx_donate_show_designated_funds_section', $_submitted_array[$section]['dgx_donate_show_designated_funds_section']); update_option('dgx_donate_show_repeating_option', $_submitted_array[$section]['dgx_donate_show_repeating_option']); update_option('dgx_donate_show_tribute_section', $_submitted_array[$section]['dgx_donate_show_tribute_section']); update_option('dgx_donate_show_employer_section', $_submitted_array[$section]['dgx_donate_show_employer_section']); update_option('dgx_donate_show_donor_telephone_field', $_submitted_array[$section]['dgx_donate_show_donor_telephone_field']); update_option('dgx_donate_show_donor_employer_field', $_submitted_array[$section]['dgx_donate_show_donor_employer_field']); update_option('dgx_donate_show_donor_occupation_field', $_submitted_array[$section]['dgx_donate_show_donor_occupation_field']); update_option('dgx_donate_show_mailing_list_option', $_submitted_array[$section]['dgx_donate_show_mailing_list_option']); update_option('dgx_donate_show_anonymous_option', $_submitted_array[$section]['dgx_donate_show_anonymous_option']); update_option('dgx_donate_show_donor_address_fields', $_submitted_array[$section]['dgx_donate_show_donor_address_fields']); $_setup_object->setSettingNotice('Form updated successfully.', 'updated'); break; case 'seamless_donations_admin_forms_section_tweaks': // SAVE TWEAKS // update_option('dgx_donate_labels_for_input', $_submitted_array[$section]['dgx_donate_labels_for_input']); $_setup_object->setSettingNotice('Form updated successfully.', 'updated'); break; case 'seamless_donations_admin_forms_section_extension': // LET EXTENSIONS DO THE PROCESSING break; default: $_setup_object->setSettingNotice(__('There was an unexpected error in your entry.', 'seamless-donations')); } }
function dgx_donate_save_giving_levels_settings() { $noneEnabled = true; $givingLevels = dgx_donate_get_giving_levels(); foreach ($givingLevels as $givingLevel) { $key = dgx_donate_get_giving_level_key($givingLevel); if (isset($_POST[$key])) { dgx_donate_enable_giving_level($givingLevel); $noneEnabled = false; } else { dgx_donate_disable_giving_level($givingLevel); } } // If they are all disabled, at least enable the first one if ($noneEnabled) { dgx_donate_enable_giving_level($givingLevels[0]); } }