/** * Get the country dropdown options, presumably for the checkout or customer profile pages * * @param string|array $args * * @return string HTML representation of the dropdown */ function _wpsc_country_dropdown_options($args = '') { $defaults = array('acceptable' => null, 'acceptable_ids' => null, 'selected' => '', 'disabled' => null, 'disabled_ids' => null, 'placeholder' => __('Please select a country', 'wpsc'), 'include_invisible' => false); $args = wp_parse_args($args, $defaults); $output = ''; $countries = WPSC_Countries::get_countries($args['include_invisible']); // if the user has a choice of countries the if (count($countries) > 1 && !empty($args['placeholder'])) { $output .= "<option value=''>" . esc_html($args['placeholder']) . "</option>\n\r"; } foreach ($countries as $country) { $isocode = $country->get_isocode(); $name = $country->get_name(); // if there is only one country in the list select it if (count($countries) == 1) { $args['selected'] = $isocode; } // if we're in admin area, and the legacy country code "UK" or "TP" is selected as the // base country, we should display both this and the more proper "GB" or "TL" options // and distinguish these choices somehow if (is_admin() && 11 > wpsc_core_get_db_version()) { if (in_array($isocode, array('TP', 'UK'))) { /* translators: This string will mark the legacy isocode "UK" and "TP" in the country selection dropdown as "legacy" */ $name = sprintf(__('%s (legacy)', 'wpsc'), $name); } elseif (in_array($isocode, array('GB', 'TL'))) { /* translators: This string will mark the legacy isocode "GB" and "TL" in the country selection dropdown as "ISO 3166" */ $name = sprintf(__('%s (ISO 3166)', 'wpsc'), $name); } } $output .= sprintf('<option value="%1$s" %2$s %3$s>%4$s</option>' . "\n\r", esc_attr($isocode), selected($args['selected'], $isocode, false), disabled(_wpsc_is_country_disabled($country, $args), true, false), esc_html($name)); } return $output; }
/** * add countries data to the wpec javascript localizations * * @access private * @since 3.8.14 * * @param array localizations other localizations that can be added to * * @return array localizations array with countries information added */ function _wpsc_countries_localizations($localizations_array) { $localizations_array['no_country_selected'] = __('Please select a country', 'wpsc'); $localizations_array['no_region_selected_format'] = __('Please select a %s', 'wpsc'); $localizations_array['no_region_label'] = __('State/Province', 'wpsc'); $localizations_array['base_country'] = get_option('base_country'); $country_list = array(); foreach (WPSC_Countries::get_countries() as $country_id => $wpsc_country) { if ($wpsc_country->is_visible()) { $country_list[$wpsc_country->get_isocode()] = $wpsc_country->get_name(); if ($wpsc_country->has_regions()) { $regions = $wpsc_country->get_regions(); $region_list = array(); foreach ($regions as $region_id => $wpsc_region) { $region_list[$region_id] = $wpsc_region->get_name(); } if (!empty($region_list)) { $localizations_array['wpsc_country_' . $wpsc_country->get_isocode() . '_regions'] = $region_list; } } $region_label = $wpsc_country->get('region_label'); if (!empty($region_label)) { $localizations_array['wpsc_country_' . $wpsc_country->get_isocode() . '_region_label'] = $region_label; } } } if (!empty($country_list)) { $localizations_array['wpsc_countries'] = $country_list; } return $localizations_array; }
public function no_target_markets() { $countries = WPSC_Countries::get_countries(); if (empty($countries)) { ?> <div class="notice error is-dismissible below-h2"> <p><?php _e('<strong>You have not enabled any target markets.</strong> To sell tangible goods, you will need to set at least one target market.', 'wpsc'); ?> </p> </div> <?php } }
/** * get a country list for checkout * * @param string|null $form_id * @param deprecated|null $ajax * @param string|null $selected_country * @param deprecated|null $selected_region * @param string|null $supplied_form_id * @param boolean $shippingfields * @return string */ function wpsc_country_list($form_id = null, $ajax = null, $selected_country = null, $selected_region = null, $supplied_form_id = null, $shippingfields = false) { global $wpdb; $output = ''; if ($form_id != null) { $html_form_id = "region_country_form_{$form_id}"; } else { $html_form_id = 'region_country_form'; } if ($shippingfields) { $js = ''; $title = 'shippingcountry'; $id = 'shippingcountry'; } else { $js = ''; $title = 'billingcountry'; $id = 'billingcountry'; } if (empty($supplied_form_id)) { $supplied_form_id = $id; } // if there is only one country to choose from we are going to set that as the shipping country, // later in the UI generation the same thing will happen to make the single country the current // selection $countries = WPSC_Countries::get_countries(false); if (count($countries) == 1) { reset($countries); $id_of_only_country_available = key($countries); $wpsc_country = new WPSC_Country($id_of_only_country_available); wpsc_update_customer_meta($id, $wpsc_country->get_isocode()); } $additional_attributes = 'data-wpsc-meta-key="' . $title . '" title="' . $title . '" ' . $js; $output .= "<div id='{$html_form_id}'>\n\r"; $output .= wpsc_get_country_dropdown(array('id' => $supplied_form_id, 'name' => "collected_data[{$form_id}][0]", 'class' => 'current_country wpsc-visitor-meta', 'selected' => $selected_country, 'additional_attributes' => $additional_attributes, 'placeholder' => __('Please select a country', 'wp-e-commerce'))); $output .= "</div>\n\r"; return $output; }
function wpsc_shipping_country_list($shippingdetails = false) { global $wpsc_shipping_modules; $wpsc_checkout = new wpsc_checkout(); $wpsc_checkout->checkout_item = $shipping_country_checkout_item = $wpsc_checkout->get_checkout_item('shippingcountry'); $output = ''; if ($shipping_country_checkout_item && $shipping_country_checkout_item->active) { if (!$shippingdetails) { $output = "<input type='hidden' name='wpsc_ajax_action' value='update_location' />"; } $acceptable_countries = wpsc_get_acceptable_countries(); // if there is only one country to choose from we are going to set that as the shipping country, // later in the UI generation the same thing will happen to make the single country the current // selection $countries = WPSC_Countries::get_countries(false); if (count($countries) == 1) { reset($countries); $id_of_only_country_available = key($countries); $wpsc_country = new WPSC_Country($id_of_only_country_available); wpsc_update_customer_meta('shippingcountry', $wpsc_country->get_isocode()); } $selected_country = wpsc_get_customer_meta('shippingcountry'); $additional_attributes = 'data-wpsc-meta-key="shippingcountry" '; $output .= wpsc_get_country_dropdown(array('id' => 'current_country', 'name' => 'country', 'class' => 'current_country wpsc-visitor-meta', 'acceptable_ids' => $acceptable_countries, 'selected' => $selected_country, 'additional_attributes' => $additional_attributes, 'placeholder' => __('Please select a country', 'wp-e-commerce'))); } $output .= wpsc_checkout_shipping_state_and_region(); $zipvalue = (string) wpsc_get_customer_meta('shippingpostcode'); $zip_code_text = __('Your Zipcode', 'wp-e-commerce'); if ($zipvalue != '' && $zipvalue != $zip_code_text) { $color = '#000'; wpsc_update_customer_meta('shipping_zip', $zipvalue); } else { $zipvalue = $zip_code_text; $color = '#999'; } $uses_zipcode = false; $custom_shipping = get_option('custom_shipping_options'); foreach ((array) $custom_shipping as $shipping) { if (isset($wpsc_shipping_modules[$shipping]->needs_zipcode) && $wpsc_shipping_modules[$shipping]->needs_zipcode == true) { $uses_zipcode = true; } } if ($uses_zipcode) { $output .= " <input data-wpsc-meta-key='shippingpostcode' class='wpsc-visitor-meta' type='text' style='color:" . $color . ";' onclick='if (this.value==\"" . esc_js($zip_code_text) . "\") {this.value=\"\";this.style.color=\"#000\";}' onblur='if (this.value==\"\") {this.style.color=\"#999\"; this.value=\"" . esc_js($zip_code_text) . "\"; }' value='" . esc_attr($zipvalue) . "' size='10' name='zipcode' id='zipcode'>"; } return $output; }
public static function get_all($include_invisible = false) { $function = __CLASS__ . '::' . __FUNCTION__ . '()'; $replacement = 'WPSC_Countries::get_country()'; _wpsc_deprecated_function($function, '3.8.14', $replacement); if (defined('WPSC_LOAD_DEPRECATED') && WPSC_LOAD_DEPRECATED) { $list = WPSC_Countries::get_countries($include_invisible); return apply_filters('wpsc_country_get_all_countries', $list); } }
function _wpsc_filter_control_select_country($output, $field, $args) { extract($field); $country_data = WPSC_Countries::get_countries(); $options = array(); foreach ($country_data as $country) { $isocode = $country->get_isocode(); $alternatives = array($country->get_isocode()); switch ($isocode) { case 'US': $alternatives[] = __('United States of America', 'wp-e-commerce'); break; case 'GB': $alternatives[] = __('Great Britain', 'wp-e-commerce'); $alternatives[] = __('England', 'wp-e-commerce'); $alternatives[] = __('Wales', 'wp-e-commerce'); $alternatives[] = __('UK', 'wp-e-commerce'); $alternatives[] = __('Scotland', 'wp-e-commerce'); $alternatives[] = __('Northern Ireland', 'wp-e-commerce'); break; } $alternatives = apply_filters('wpsc_country_alternative_spellings', $alternatives, $isocode, $country); $options[$country->get_isocode()] = array('title' => $country->get_name(), 'attributes' => array('data-alternative-spellings' => implode(' ', $alternatives))); } $output .= wpsc_form_select($name, $value, $options, array('id' => $id . '-control', 'class' => 'wpsc-form-select-country'), false); return $output; }