function dgx_donate_get_province_selector($select_name, $select_initial_value) { $output = "<select class='dgx_donate_province_select' id='" . esc_attr($select_name) . "' name='" . esc_attr($select_name) . "'>"; $provinces = dgx_donate_get_provinces(); foreach ($provinces as $province_abbr => $province_name) { $selected = ""; if (strcasecmp($select_initial_value, $province_abbr) == 0) { $selected = " selected "; } $output .= "<option value='" . esc_attr($province_abbr) . "'" . esc_attr($selected) . ">" . esc_html($province_name) . "</option>"; } $output .= "</select>"; return $output; }
function seamless_donations_get_billing_section() { $show_address = get_option('dgx_donate_show_donor_address_fields'); if ($show_address != 'true') { return array(); } $default_country = get_option('dgx_donate_default_country'); $countries_array = dgx_donate_get_countries(); $states_array = dgx_donate_get_states(); $provinces_array = dgx_donate_get_provinces(); $postal_code_array = dgx_donate_get_countries_requiring_postal_code(); $postal_code_reveal_array = array(); for ($postal_code_index = 0; $postal_code_index < count($postal_code_array); ++$postal_code_index) { $postal_code_country = $postal_code_array[$postal_code_index]; switch ($postal_code_country) { case 'US': $postal_code_reveal_array['US'] = 'conceal-donor-state conceal-donor-postcode'; break; case 'CA': $postal_code_reveal_array['CA'] = 'conceal-donor-province conceal-donor-postcode'; break; case 'GB': $postal_code_reveal_array['GB'] = 'gift-aid conceal-donor-postcode'; break; default: $postal_code_reveal_array[$postal_code_country] = 'conceal-donor-postcode'; } } $billing_section = array('id' => 'dgx-donate-form-billing-section', 'class' => 'dgx-donate-form-section', 'elements' => array('donation_header' => array('type' => 'static', 'before' => '<h2>', 'after' => '</h2>', 'value' => esc_html__('Donor Address', 'seamless-donations')), '_dgx_donate_donor_address' => array('type' => 'text', 'size' => 20, 'validation' => 'required', 'before' => esc_html__('Address: ', 'seamless-donations')), '_dgx_donate_donor_address2' => array('type' => 'text', 'size' => 20, 'before' => esc_html__('Address 2: ', 'seamless-donations'), 'after' => "<span class='dgx-donate-comment'>" . esc_html__('(optional)', 'seamless-donations') . "</span>"), '_dgx_donate_donor_city' => array('type' => 'text', 'size' => 20, 'validation' => 'required', 'before' => esc_html__('City: ', 'seamless-donations')), '_dgx_donate_donor_state' => array('type' => 'select', 'size' => 1, 'options' => $states_array, 'before' => esc_html__('State : ', 'seamless-donations')), '_dgx_donate_donor_province' => array('type' => 'select', 'size' => 1, 'options' => $provinces_array, 'before' => esc_html__('Province: ', 'seamless-donations')), '_dgx_donate_donor_country' => array('type' => 'select', 'conceal' => 'conceal-donor-state conceal-donor-postcode conceal-donor-province gift-aid', 'reveal' => $postal_code_reveal_array, 'options' => $countries_array, 'value' => $default_country, 'size' => 1, 'before' => esc_html__('Country: ', 'seamless-donations')), '_dgx_donate_donor_zip' => array('type' => 'text', 'size' => 10, 'before' => esc_html__('Postal Code: ', 'seamless-donations')), 'dgx_donate_uk_gift_aid' => array('type' => 'checkbox', 'prompt' => esc_html__("I am a UK taxpayer and my gift qualifies for Gift Aid.", 'seamless-donations')))); // since these fields are visible on page load, we need to make certain fields visible based on country // therefore, we don't want them cloaked, but we want them still interactive, so we'll put them in // class instead. switch ($default_country) { case 'US': $billing_section['elements']['_dgx_donate_donor_state']['class'] = 'conceal-donor-state'; $billing_section['elements']['_dgx_donate_donor_province']['cloak'] = 'conceal-donor-province'; $billing_section['elements']['_dgx_donate_donor_zip']['class'] = 'conceal-donor-postcode'; $billing_section['elements']['dgx_donate_uk_gift_aid']['cloak'] = 'gift-aid'; break; case 'CA': $billing_section['elements']['_dgx_donate_donor_state']['cloak'] = 'conceal-donor-state'; $billing_section['elements']['_dgx_donate_donor_province']['class'] = 'conceal-donor-province'; $billing_section['elements']['_dgx_donate_donor_zip']['class'] = 'conceal-donor-postcode'; $billing_section['elements']['dgx_donate_uk_gift_aid']['cloak'] = 'gift-aid'; break; case 'GB': $billing_section['elements']['_dgx_donate_donor_state']['cloak'] = 'conceal-donor-state'; $billing_section['elements']['_dgx_donate_donor_province']['cloak'] = 'conceal-donor-province'; $billing_section['elements']['_dgx_donate_donor_zip']['class'] = 'conceal-donor-postcode'; $billing_section['elements']['dgx_donate_uk_gift_aid']['class'] = 'gift-aid'; break; default: $billing_section['elements']['_dgx_donate_donor_state']['cloak'] = 'conceal-donor-state'; $billing_section['elements']['_dgx_donate_donor_province']['cloak'] = 'conceal-donor-province'; $billing_section['elements']['_dgx_donate_donor_zip']['cloak'] = 'conceal-donor-postcode'; $billing_section['elements']['dgx_donate_uk_gift_aid']['cloak'] = 'gift-aid'; } $billing_section = apply_filters('seamless_donations_form_billing_section', $billing_section); return $billing_section; }