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]); } }
function dgx_donate_get_donation_section($formContent) { $output = ""; $output .= "<div class='dgx-donate-form-section' id='dgx-donate-form-donation-section'>\n"; $output .= "<h2>" . esc_html__('Donation Information', 'dgx-donate') . "</h2>\n"; $output .= "<p>" . esc_html__('I would like to make a donation in the amount of:', 'dgx-donate') . "</p>"; $output .= "<p>"; $checked = " checked=\"checked\" "; $classmod = ""; $givingLevels = dgx_donate_get_giving_levels(); foreach ($givingLevels as $givingLevel) { $key = dgx_donate_get_giving_level_key($givingLevel); if (dgx_donate_is_giving_level_enabled($givingLevel)) { $formattedAmount = dgx_donate_get_escaped_formatted_amount($givingLevel, 0); $output .= "<input {$classmod} type=\"radio\" name=\"_dgx_donate_amount\" value=\"{$givingLevel}\" {$checked} /> {$formattedAmount} "; $checked = ""; // only select the first one $classmod = " class=\"horiz\" "; // only classmod the second and higher ones } } $output .= "</p>"; $output .= "<p><input type='radio' name='_dgx_donate_amount' value='OTHER' id='dgx-donate-other-radio' />"; $output .= esc_html__('Other: ', 'dgx-donate'); $output .= "<input type=\"text\" class=\"aftertext\" id=\"dgx-donate-other-input\" name=\"_dgx_donate_user_amount\" />"; $output .= "</p>\n"; // Designated Funds if ('true' == get_option('dgx_donate_show_designated_funds_section')) { $showFundCount = 0; $fundArray = get_option('dgx_donate_designated_funds'); if (!empty($fundArray)) { ksort($fundArray); foreach ((array) $fundArray as $key => $value) { if (strcasecmp($fundArray[$key], "SHOW") == 0) { $showFundCount = $showFundCount + 1; } } } if ($showFundCount > 0) { $output .= "<p>"; $output .= "<input type='checkbox' id='dgx-donate-designated' name='_dgx_donate_designated'/>"; $output .= esc_html__("I would like to designate this donation to a specific fund", "dgx-donate"); $output .= "</p>"; $output .= "<div class='dgx-donate-form-designated-box'>"; $output .= "<p>" . esc_html__('Designated Fund: ', 'dgx-donate') . " "; $output .= "<select class='aftertext' name='_dgx_donate_designated_fund'>"; foreach ((array) $fundArray as $key => $value) { if (strcasecmp($fundArray[$key], "SHOW") == 0) { $fundName = stripslashes($key); $output .= "<option value='" . esc_attr($fundName) . "' > " . esc_html($fundName) . "</option>"; } } $output .= "</select>"; $output .= "</p>"; $output .= "</div>"; /* dgx-donate-form-designated-box */ } } // Repeating donations if ('true' == get_option('dgx_donate_show_repeating_option')) { $output .= "<p>"; $output .= "<input type='checkbox' id='dgx-donate-repeating' name='_dgx_donate_repeating'/>"; $output .= esc_html__("I would like this donation to automatically repeat each month", "dgx-donate"); $output .= "</p>"; } $output .= "</div>"; /* dgx-donate-form-section */ $formContent .= $output; return $formContent; }
function menu_page() { if (!current_user_can('manage_options')) { wp_die(__('You do not have sufficient permissions to access this page.', 'dgx-donate')); } $form_option_whitelist = array('false', 'true', 'required'); // If we have form arguments, we must validate the nonce if (count($_POST)) { $nonce = $_POST['dgx_donate_form_options_nonce']; if (!wp_verify_nonce($nonce, 'dgx_donate_form_options_nonce')) { wp_die(__('You do not have sufficient permissions to access this page.', 'dgx-donate')); } // Save options table settings (if present) foreach ((array) $this->form_options as $form_option) { $key = $form_option['key']; $new_option_value = isset($_POST[$key]) ? $_POST[$key] : ''; if (!empty($new_option_value)) { if (in_array($new_option_value, $form_option_whitelist)) { update_option($key, $new_option_value); $message = __('Settings updated.', 'dgx-donate'); } } } // Save giving level selections (if present) $giving_levels = isset($_POST['dgx_donate_giving_levels']) ? $_POST['dgx_donate_giving_levels'] : ''; if (!empty($giving_levels)) { dgx_donate_save_giving_levels_settings(); $message = __('Settings updated.', 'dgx-donate'); } // Save currency (if present) $currency = isset($_POST['dgx_donate_currency']) ? $_POST['dgx_donate_currency'] : ''; if (!empty($currency)) { update_option('dgx_donate_currency', $currency); $message = __('Settings updated.', 'dgx-donate'); } // Save default country (if present) $default_country = isset($_POST['dgx_donate_default_country']) ? $_POST['dgx_donate_default_country'] : ''; if (!empty($default_country)) { update_option('dgx_donate_default_country', $default_country); $message = __('Settings updated.', 'dgx-donate'); } // Save default state (if present) $default_state = isset($_POST['dgx_donate_default_state']) ? $_POST['dgx_donate_default_state'] : ''; if (!empty($default_state)) { update_option('dgx_donate_default_state', $default_state); $message = __('Settings updated.', 'dgx-donate'); } // Save default province (if present) $default_province = isset($_POST['dgx_donate_default_province']) ? $_POST['dgx_donate_default_province'] : ''; if (!empty($default_province)) { update_option('dgx_donate_default_province', $default_province); $message = __('Settings updated.', 'dgx-donate'); } } // Set up a nonce $nonce = wp_create_nonce('dgx_donate_form_options_nonce'); echo "<div class='wrap'>\n"; echo "<div id='icon-edit-pages' class='icon32'></div>"; echo "<h2>" . esc_html__('Form Options', 'dgx-donate') . "</h2>"; // Display any message if (!empty($message)) { echo "<div id='message' class='updated below-h2'>"; echo "<p>" . esc_html($message) . "</p>"; echo "</div>"; } echo "<div id='col-container'>"; echo "<div id='col-right'>"; echo "<div class='col-wrap'>"; // Fields and Sections Table echo "<h3>" . esc_html__('Form Fields and Sections', 'dgx-donate') . "</h3>"; echo "<p>" . esc_html__('Choose which form fields and sections you would like to show or require.', 'dgx-donate') . "</p>"; echo "<form method='POST' action=''>"; echo "<input type='hidden' name='dgx_donate_form_options_nonce' value='" . esc_attr($nonce) . "' />"; echo "<table class='widefat'>"; echo "<tbody>"; echo "<tr>"; echo "<th>" . esc_html__('Field/Section', 'dgx-donate') . "</th>"; echo "<th style='text-align: center;'>" . esc_html__("Don't Show", 'dgx-donate') . "</th>"; echo "<th style='text-align: center;'>" . esc_html__('Show', 'dgx-donate') . "</th>"; echo "<th style='text-align: center;'>" . esc_html__('Require', 'dgx-donate') . "</th>"; echo "</tr>"; foreach ((array) $this->form_options as $form_option) { echo "<tr>"; echo "<td>" . esc_html($form_option['prompt']) . "</td>"; foreach ($form_option_whitelist as $setting) { echo "<td style='text-align: center;'>"; $key = $form_option['key']; $current_setting = get_option($key); if ('required' !== $setting || $form_option['show_require_option']) { echo "<input type='radio' name='" . esc_attr($key) . "' value='" . esc_attr($setting) . "' " . checked($current_setting, $setting, false) . " />"; } echo "</td>"; } echo "</tr>"; } echo "</tbody>"; echo "</table>"; echo "<p><input id='submit' class='button' type='submit' value='" . esc_attr__('Update', 'dgx-donate') . "' name='submit'></p>\n"; echo "</form>"; echo "<br/>"; do_action('dgx_donate_admin_footer'); echo "</div>\n"; echo "</div>\n"; echo "<div id='col-left'>\n"; echo "<div class='col-wrap'>\n"; // Giving Levels echo "<h3>" . esc_html__('Giving Levels', 'dgx-donate') . "</h3>"; echo "<p>" . esc_html__('Select one or more suggested giving levels for your donors to choose from.', 'dgx-donate') . "</p>"; echo "<form method='POST' action=''>\n"; echo "<input type='hidden' name='dgx_donate_form_options_nonce' value='" . esc_attr($nonce) . "' />\n"; echo "<input type='hidden' name='dgx_donate_giving_levels' value='1' />"; $giving_levels = dgx_donate_get_giving_levels(); foreach ($giving_levels as $giving_level) { $key = dgx_donate_get_giving_level_key($giving_level); echo "<p><input type='checkbox' name='" . esc_attr($key) . "' value='yes' "; checked(dgx_donate_is_giving_level_enabled($giving_level)); echo " />" . esc_html($giving_level) . "</p>"; } echo "<p><input id='submit' class='button' type='submit' value='" . esc_attr__('Update', 'dgx-donate') . "' name='submit' /></p>\n"; echo "</form>"; echo "<br/>"; // Currency echo "<h3>" . esc_html__('Currency', 'dgx-donate') . "</h3>"; echo "<p>" . esc_html__("Select the currency you'd like to receive donations in.", 'dgx-donate') . "</p>"; echo "<form method='POST' action=''>\n"; echo "<input type='hidden' name='dgx_donate_form_options_nonce' value='" . esc_attr($nonce) . "' />\n"; $currency = get_option('dgx_donate_currency'); echo "<p>"; echo dgx_donate_get_currency_selector('dgx_donate_currency', $currency); echo "</p>"; echo "<p><input id='submit' class='button' type='submit' value='" . esc_attr__('Update', 'dgx-donate') . "' name='submit' /></p>\n"; echo "</form>"; echo "<br/>"; // Default country/state/province for donor // jQuery will take care of hiding / showing the state and province selector based on the country code echo "<h3>" . esc_html__('Default Country / State / Province', 'dgx-donate') . "</h3>"; echo "<p>" . esc_html__('Select the default country / state / province for the donation form.', 'dgx-donate') . "</p>"; echo "<div class='dgx_donate_geography_selects'>"; echo "<form method='POST' action=''>\n"; echo "<input type='hidden' name='dgx_donate_form_options_nonce' value='" . esc_attr($nonce) . "' />\n"; $default_country = get_option('dgx_donate_default_country'); echo "<p>"; echo dgx_donate_get_country_selector('dgx_donate_default_country', $default_country); echo "</p>"; $default_state = get_option('dgx_donate_default_state'); echo "<p>"; echo dgx_donate_get_state_selector('dgx_donate_default_state', $default_state); echo "</p>"; $default_province = get_option('dgx_donate_default_province'); echo "<p>"; echo dgx_donate_get_province_selector('dgx_donate_default_province', $default_province); echo "</p>"; echo "<p><input id='submit' class='button' type='submit' value='" . esc_attr__('Update', 'dgx-donate') . "' name='submit' /></p>\n"; echo "</form>"; echo "</div>"; // dgx_donate_geography_selects echo "<br/>"; echo "</div>\n"; echo "</div>\n"; echo "</div>\n"; echo "</div>\n"; }