function validate_page_slug_seamless_donations_admin_thanks_callback($_submitted_array, $_existing_array, $_setup_object) { $_submitted_array = apply_filters('validate_page_slug_seamless_donations_admin_thanks_callback', $_submitted_array, $_existing_array, $_setup_object); $section = seamless_donations_get_submitted_admin_section($_submitted_array); // no real need for switch, but structured this way for easy expansion switch ($section) { case 'seamless_donations_admin_thanks_section_note': // SAVE EMAILS // $note = trim($_submitted_array[$section]['dgx_donate_thanks_text']); $note = sanitize_text_field($note); if ($note == "") { $_aErrors[$section]['dgx_donate_thanks_text'] = __('Field must not be empty.', 'seamless-donations'); $_setup_object->setFieldErrors($_aErrors); $_setup_object->setSettingNotice(__('There were errors in your submission.', 'seamless-donations')); return $_existing_array; } update_option('dgx_donate_thanks_text', $note); $_setup_object->setSettingNotice('Form updated successfully.', 'updated'); break; case 'seamless_donations_admin_thanks_section_extension': // LET EXTENSIONS DO THE PROCESSING break; default: $_setup_object->setSettingNotice(__('There was an unexpected error in your entry.', 'seamless-donations')); } }
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 validate_page_slug_seamless_donations_admin_settings_callback($_submitted_array, $_existing_array, $_setup_object) { $_submitted_array = apply_filters('validate_page_slug_seamless_donations_admin_settings_callback', $_submitted_array, $_existing_array, $_setup_object); $section = seamless_donations_get_submitted_admin_section($_submitted_array); switch ($section) { case 'seamless_donations_admin_settings_section_emails': // SAVE EMAILS // $email = $_submitted_array[$section]['dgx_donate_notify_emails']; $email = sanitize_email($email); if (!is_email($email)) { $_aErrors[$section]['dgx_donate_notify_emails'] = __('Valid email address required.', 'seamless-donations'); $_setup_object->setFieldErrors($_aErrors); $_setup_object->setSettingNotice(__('There were errors in your submission.', 'seamless-donations')); return $_existing_array; } update_option('dgx_donate_notify_emails', $email); $_setup_object->setSettingNotice('Form updated successfully.', 'updated'); break; case 'seamless_donations_admin_settings_section_paypal': // SAVE PAYPAL // $email = $_submitted_array[$section]['dgx_donate_paypal_email']; $email = sanitize_email($email); $option = $_submitted_array[$section]['dgx_donate_paypal_server']; if (!is_email($email)) { $_aErrors[$section]['dgx_donate_paypal_email'] = __('Valid email address required.', 'seamless-donations'); $_setup_object->setFieldErrors($_aErrors); $_setup_object->setSettingNotice(__('There were errors in your submission.', 'seamless-donations')); return $_existing_array; } update_option('dgx_donate_paypal_email', $email); update_option('dgx_donate_paypal_server', $option); $_setup_object->setSettingNotice('Form updated successfully.', 'updated'); break; case 'seamless_donations_admin_settings_section_tabs': // SAVE TABS // update_option('dgx_donate_display_admin_donors_tab', 'show'); update_option('dgx_donate_display_admin_donations_tab', 'show'); update_option('dgx_donate_display_admin_funds_tab', 'show'); $_setup_object->setSettingNotice('Form updated successfully.', 'updated'); break; case 'seamless_donations_admin_settings_section_debug': // SAVE DEBUG // update_option('dgx_donate_debug_mode', $_submitted_array[$section]['dgx_donate_debug_mode']); $_setup_object->setSettingNotice('Form updated successfully.', 'updated'); break; case 'seamless_donations_admin_settings_section_extension': // LET EXTENSIONS DO THE PROCESSING break; default: $_setup_object->setSettingNotice(__('There was an unexpected error in your entry.', 'seamless-donations')); } }
function validate_page_slug_seamless_donations_admin_licenses_callback($_submitted_array, $_existing_array, $_setup_object) { $_submitted_array = apply_filters('validate_page_slug_seamless_donations_admin_licenses_callback', $_submitted_array, $_existing_array, $_setup_object); $section = seamless_donations_get_submitted_admin_section($_submitted_array); // no real need for switch, but structured this way for easy expansion switch ($section) { case 'seamless_donations_admin_licenses_section_extension': // LET EXTENSIONS DO THE PROCESSING break; default: $_setup_object->setSettingNotice(__('There was an unexpected error in your entry.', 'seamless-donations')); } }
function validate_page_slug_seamless_donations_admin_logs_callback($_submitted_array, $_existing_array, $_setup_object) { $section = seamless_donations_get_submitted_admin_section($_submitted_array); // no real need for switch, but structured this way for easy expansion switch ($section) { case 'seamless_donations_admin_logs_section_data': delete_option('dgx_donate_log'); $_setup_object->setSettingNotice('Log data cleared.', 'updated'); break; case 'seamless_donations_admin_log_section_extension': // LET EXTENSIONS DO THE PROCESSING break; default: $_setup_object->setSettingNotice(__('There was an unexpected error in your entry.', 'seamless-donations')); } }
function validate_page_slug_seamless_donations_admin_donations_callback($_submitted_array, $_existing_array, $_setup_object) { $section = seamless_donations_get_submitted_admin_section($_submitted_array); // no real need for switch, but structured this way for easy expansion switch ($section) { case 'seamless_donations_admin_donations_section_help': update_option('dgx_donate_display_admin_donations_tab', 'hide'); $_setup_object->setSettingNotice('Donations tab hidden. Restore using Settings Tab.', 'updated'); wp_redirect(admin_url('admin.php?page=seamless_donations_admin_main')); exit; // required to make wp_redirect work break; case 'seamless_donations_admin_donations_section_extension': // LET EXTENSIONS DO THE PROCESSING break; default: $_setup_object->setSettingNotice(__('There was an unexpected error in your entry.', 'seamless-donations')); } }
function validate_page_slug_seamless_donations_admin_settings_callback($_submitted_array, $_existing_array, $_setup_object) { $_submitted_array = apply_filters('validate_page_slug_seamless_donations_admin_settings_callback', $_submitted_array, $_existing_array, $_setup_object); $section = seamless_donations_get_submitted_admin_section($_submitted_array); switch ($section) { case 'seamless_donations_admin_settings_section_emails': // SAVE EMAILS // $email_list = $_submitted_array[$section]['dgx_donate_notify_emails']; $email_array = explode(',', $email_list); $clean_email_array = array(); foreach ($email_array as $email) { $email = trim($email); $email = sanitize_email($email); array_push($clean_email_array, $email); if (!is_email($email)) { $_aErrors[$section]['dgx_donate_notify_emails'] = __('Valid email address required.', 'seamless-donations'); $_setup_object->setFieldErrors($_aErrors); $_setup_object->setSettingNotice(__('There were errors in your submission.', 'seamless-donations')); return $_existing_array; } } $email_list = implode(',', $clean_email_array); update_option('dgx_donate_notify_emails', $email_list); $_setup_object->setSettingNotice('Form updated successfully.', 'updated'); break; case 'seamless_donations_admin_settings_section_paypal': // SAVE PAYPAL // $email = $_submitted_array[$section]['dgx_donate_paypal_email']; $email = sanitize_email($email); $option = $_submitted_array[$section]['dgx_donate_paypal_server']; if (!is_email($email)) { $_aErrors[$section]['dgx_donate_paypal_email'] = __('Valid email address required.', 'seamless-donations'); $_setup_object->setFieldErrors($_aErrors); $_setup_object->setSettingNotice(__('There were errors in your submission.', 'seamless-donations')); return $_existing_array; } update_option('dgx_donate_paypal_email', $email); update_option('dgx_donate_paypal_server', $option); update_option('dgx_donate_obsolete_legacy_ssl_mode', $_submitted_array[$section]['dgx_donate_obsolete_legacy_ssl_mode']); $_setup_object->setSettingNotice('Form updated successfully.', 'updated'); break; case 'seamless_donations_admin_settings_section_hosts': // SAVE HOSTS // $settings_notice = 'Form updated successfully.'; update_option('dgx_donate_form_via_action', $_submitted_array[$section]['dgx_donate_form_via_action']); update_option('dgx_donate_browser_uuid', $_submitted_array[$section]['dgx_donate_browser_uuid']); update_option('dgx_donate_ignore_form_nonce', $_submitted_array[$section]['dgx_donate_ignore_form_nonce']); $_setup_object->setSettingNotice($settings_notice, 'updated'); break; case 'seamless_donations_admin_settings_section_tweaks': // SAVE TWEAKS // $settings_notice = 'Form updated successfully.'; update_option('dgx_donate_compact_menus', $_submitted_array[$section]['dgx_donate_compact_menus']); $_setup_object->setSettingNotice($settings_notice, 'updated'); break; case 'seamless_donations_admin_settings_section_tabs': // SAVE TABS // update_option('dgx_donate_display_admin_donors_tab', 'show'); update_option('dgx_donate_display_admin_donations_tab', 'show'); update_option('dgx_donate_display_admin_funds_tab', 'show'); $_setup_object->setSettingNotice('Form updated successfully.', 'updated'); break; case 'seamless_donations_admin_settings_section_debug': // SAVE DEBUG // $settings_notice = 'Form updated successfully.'; update_option('dgx_donate_debug_mode', $_submitted_array[$section]['dgx_donate_debug_mode']); update_option('dgx_donate_log_obscure_name', $_submitted_array[$section]['dgx_donate_log_settings'][0]); if ($_submitted_array[$section]['dgx_donate_rebuild_xref_by_name'] == "1") { dgx_donate_debug_log('----------------------------------------'); dgx_donate_debug_log('INDEX CROSS-REFERENCE ATTEMPTED'); seamless_donations_rebuild_donor_index(); seamless_donations_rebuild_funds_index(); seamless_donations_rebuild_donor_anon_flag(); $settings_notice .= ' Cross-reference index rebuild by name complete.'; dgx_donate_debug_log('Cross-reference index rebuild by name complete.'); } $_setup_object->setSettingNotice($settings_notice, 'updated'); break; case 'seamless_donations_admin_settings_section_extension': // LET EXTENSIONS DO THE PROCESSING break; default: $_setup_object->setSettingNotice(__('There was an unexpected error in your entry.', 'seamless-donations')); } }
function validate_page_slug_seamless_donations_admin_templates_callback($_submitted_array, $_existing_array, $_setup_object) { $_submitted_array = apply_filters('validate_page_slug_seamless_donations_admin_templates_callback', $_submitted_array, $_existing_array, $_setup_object); $section = seamless_donations_get_submitted_admin_section($_submitted_array); switch ($section) { case 'seamless_donations_admin_templates_section_test': // SAVE EMAILS // $test_mail = $_submitted_array[$section]['email_test_address']; $test_mail = sanitize_email($test_mail); if (!is_email($test_mail)) { // check address $_aErrors[$section]['email_test_address'] = __('Valid email address required.', 'seamless-donations'); $_setup_object->setFieldErrors($_aErrors); $_setup_object->setSettingNotice(__('There were errors in your submission.', 'seamless-donations')); return $_existing_array; } dgx_donate_send_thank_you_email(0, $test_mail); $_setup_object->setSettingNotice('Test email sent.', 'updated'); break; case 'seamless_donations_admin_templates_section_template': // SAVE TEMPLATE // // check email address $email = $_submitted_array[$section]['dgx_donate_email_reply']; $email = sanitize_email($email); if (!is_email($email)) { $_aErrors[$section]['dgx_donate_paypal_email'] = __('Valid email address required.', 'seamless-donations'); $_setup_object->setFieldErrors($_aErrors); $_setup_object->setSettingNotice(__('There were errors in your submission.', 'seamless-donations')); return $_existing_array; } // check array fields for clean and not-empty for ($i = 0; $i < count($_submitted_array[$section]); ++$i) { $key = seamless_donations_name_of($_submitted_array[$section], $i); $value = trim($_submitted_array[$section][$key]); $value = wp_kses_post($value); if ($key == 'submit') { continue; // not a text field } if ($key == 'dgx_donate_email_reply') { continue; // already tested for validation } if ($value == "") { $_aErrors[$section][$key] = __('This field must not be empty.', 'seamless-donations'); $_setup_object->setFieldErrors($_aErrors); $_setup_object->setSettingNotice(__('There were errors in your submission.', 'seamless-donations')); return $_existing_array; } } // save array fields as clean, sanitized options for ($i = 0; $i < count($_submitted_array[$section]); ++$i) { $key = seamless_donations_name_of($_submitted_array[$section], $i); $value = trim($_submitted_array[$section][$key]); if ($key == 'dgx_donate_email_reply') { $value = sanitize_email($value); } else { $value = wp_kses_post($value); } if ($key == 'submit') { continue; // not a text field } update_option($key, $value); } $_setup_object->setSettingNotice('Form updated successfully.', 'updated'); break; case 'seamless_donations_admin_templates_section_extension': // LET EXTENSIONS DO THE PROCESSING break; default: $_setup_object->setSettingNotice(__('There was an unexpected error in your entry.', 'seamless-donations')); } }