function dgx_donate_get_billing_section($form_content) { if ('true' == get_option('dgx_donate_show_donor_address_fields')) { $donor_state = get_option('dgx_donate_default_state'); $donor_province = get_option('dgx_donate_default_province'); $donor_country = get_option('dgx_donate_default_country'); $output = ""; $output .= "<div class='dgx-donate-form-section' id='dgx-donate-form-address-section'>\n"; $output .= "<h2>" . esc_html__('Donor Address', 'dgx_donate') . "</h2>\n"; $output .= "<p>"; $output .= "<label for='_dgx_donate_donor_address'>" . esc_html__('Address:', 'dgx-donate') . " </label>"; $output .= "<input type='text' class='required' name='_dgx_donate_donor_address' size='20' value='' />"; $output .= "</p>"; $output .= "<p>"; $output .= "<label for='_dgx_donate_donor_address2'>" . esc_html__('Address 2:', 'dgx-donate'); $output .= " <span class='dgx-donate-comment'>" . esc_html__('(optional)', 'dgx-donate') . "</span> </label>"; $output .= "<input type='text' name='_dgx_donate_donor_address2' size='20' value='' />"; $output .= "</p>"; $output .= "<p>"; $output .= "<label for='_dgx_donate_donor_city'>" . esc_html__('City:', 'dgx-donate') . " </label>"; $output .= "<input type='text' class='required' name='_dgx_donate_donor_city' value='' /> "; $output .= "</p>"; $output .= "<div class='dgx_donate_geography_selects'>"; $output .= "<p>"; $output .= "<label for='_dgx_donate_donor_state'>" . esc_html__('State:', 'dgx-donate') . "</label>"; $output .= dgx_donate_get_state_selector("_dgx_donate_donor_state", $donor_state); $output .= "</p>"; $output .= "<p>"; $output .= "<label for='_dgx_donate_donor_province'>" . esc_html__('Province:', 'dgx-donate') . "</label>"; $output .= dgx_donate_get_province_selector("_dgx_donate_donor_province", $donor_province); $output .= "</p>"; $output .= "<p>"; $output .= "<label for='_dgx_donate_donor_country'>" . esc_html__('Country:', 'dgx-donate') . "</label>"; $output .= dgx_donate_get_country_selector("_dgx_donate_donor_country", $donor_country); $output .= "</p>"; $output .= "<p>"; $output .= "<label for='_dgx_donate_donor_zip'>" . esc_html__('Postal Code:', 'dgx-donate') . "</label>"; $output .= "<input class='dgx_donate_zip_input' type='text' name='_dgx_donate_donor_zip' size='10' value='' />"; $output .= "</p>"; $output .= "<p>"; $output .= "<input class='dgx_donate_uk_gift_aid' type='checkbox' name='_dgx_donate_uk_gift_aid' />"; $output .= esc_html('I am a UK taxpayer and my gift qualifies for Gift Aid.', 'dgx-donate'); $output .= "</p>"; $output .= "</div>"; // dgx_donate_geography_selects $output .= "</div>\n"; $form_content .= $output; } return $form_content; }
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"; }