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]);
    }
}
Ejemplo n.º 2
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;
}
Ejemplo n.º 3
0
 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";
 }