/** * wpsc_change_tax function, used through ajax and in normal page loading. * No parameters, returns nothing */ function wpsc_change_tax() { global $wpdb, $wpsc_cart, $wpsc_theme_path; $form_id = absint($_POST['form_id']); $wpsc_selected_country = $wpsc_cart->selected_country; $wpsc_selected_region = $wpsc_cart->selected_region; $wpsc_delivery_country = $wpsc_cart->delivery_country; $wpsc_delivery_region = $wpsc_cart->delivery_region; $previous_country = $_SESSION['wpsc_selected_country']; if (isset($_POST['billing_country'])) { $wpsc_selected_country = $wpdb->escape($_POST['billing_country']); $_SESSION['wpsc_selected_country'] = $wpsc_selected_country; } if (isset($_POST['billing_region'])) { $wpsc_selected_region = absint($_POST['billing_region']); $_SESSION['wpsc_selected_region'] = $wpsc_selected_region; } //if(!wpsc_has_shipping_form()) { // $_POST['shipping_country'] = $wpsc_selected_country; // $_POST['shipping_region'] = $wpsc_selected_region; //} $check_country_code = $wpdb->get_var(" SELECT `country`.`isocode` FROM `" . WPSC_TABLE_REGION_TAX . "` AS `region` INNER JOIN `" . WPSC_TABLE_CURRENCY_LIST . "` AS `country` ON `region`.`country_id` = `country`.`id` WHERE `region`.`id` = '" . $_SESSION['wpsc_selected_region'] . "' LIMIT 1"); if ($_SESSION['wpsc_selected_country'] != $check_country_code) { $wpsc_selected_region = null; } if (isset($_POST['shipping_country'])) { $wpsc_delivery_country = $wpdb->escape($_POST['shipping_country']); $_SESSION['wpsc_delivery_country'] = $wpsc_delivery_country; } if (isset($_POST['shipping_region'])) { $wpsc_delivery_region = absint($_POST['shipping_region']); $_SESSION['wpsc_delivery_region'] = $wpsc_delivery_region; } $check_country_code = $wpdb->get_var(" SELECT `country`.`isocode` FROM `" . WPSC_TABLE_REGION_TAX . "` AS `region` INNER JOIN `" . WPSC_TABLE_CURRENCY_LIST . "` AS `country` ON `region`.`country_id` = `country`.`id` WHERE `region`.`id` = '" . $wpsc_delivery_region . "' LIMIT 1"); if ($wpsc_delivery_country != $check_country_code) { $wpsc_delivery_region = null; } $wpsc_cart->update_location(); $wpsc_cart->get_shipping_method(); $wpsc_cart->get_shipping_option(); if ($wpsc_cart->selected_shipping_method != '') { $wpsc_cart->update_shipping($wpsc_cart->selected_shipping_method, $wpsc_cart->selected_shipping_option); } $tax = $wpsc_cart->calculate_total_tax(); $total = wpsc_cart_total(); ob_start(); $cur_wpsc_theme_folder = apply_filters('wpsc_theme_folder', $wpsc_theme_path . WPSC_THEME_DIR); include_once $cur_wpsc_theme_folder . "/cart_widget.php"; $output = ob_get_contents(); ob_end_clean(); //exit("/*<pre>".print_r($wpsc_cart,true)."</pre>*/"); $output = str_replace(array("\n", "\r"), array("\\n", "\\r"), addslashes($output)); if (get_option('lock_tax') == 1) { //echo "jQuery('#region').val(".$_SESSION['wpsc_delivery_region']."); \n"; echo "jQuery('#current_country').val('" . $_SESSION['wpsc_delivery_country'] . "'); \n"; if ($_SESSION['wpsc_delivery_country'] == 'US' && get_option('lock_tax') == 1) { //exit('<pre>'.print_r($_SESSION, true).'</pre>'); $output = wpsc_shipping_region_list($_SESSION['wpsc_delivery_country'], $_SESSION['wpsc_delivery_region']); // echo 'jQuery("#change_country").append(\''.$output.'\');\n\r'; $output = str_replace(array("\n", "\r"), array("\\n", "\\r"), addslashes($output)); echo "jQuery('#region').remove();\n\r"; echo "jQuery('#change_country').append(\"" . $output . "\");\n\r"; } } foreach ($wpsc_cart->cart_items as $key => $cart_item) { echo "jQuery('#shipping_{$key}').html(\"" . $wpsc_cart->process_as_currency($cart_item->shipping) . "\");\n\r"; } echo "jQuery('#checkout_shipping').html(\"" . wpsc_cart_shipping() . "\");\n\r"; echo "jQuery('div.shopping-cart-wrapper').html('{$output}');\n"; if (get_option('lock_tax') == 1) { echo "jQuery('.shipping_country').val('" . $_SESSION['wpsc_delivery_country'] . "') \n"; $sql = "SELECT `country` FROM `" . WPSC_TABLE_CURRENCY_LIST . "` WHERE `isocode`='" . $_SESSION['wpsc_selected_country'] . "'"; $country_name = $wpdb->get_var($sql); echo "jQuery('.shipping_country_name').html('" . $country_name . "') \n"; } $form_selected_country = null; $form_selected_region = null; $onchange_function = null; if ($_POST['billing_country'] != 'undefined' && !isset($_POST['shipping_country'])) { $form_selected_country = $wpsc_selected_country; $form_selected_region = $wpsc_selected_region; $onchange_function = 'set_billing_country'; $title = 'billingregion'; } else { if ($_POST['shipping_country'] != 'undefined' && !isset($_POST['billing_country'])) { $form_selected_country = $wpsc_delivery_country; $form_selected_region = $wpsc_delivery_region; $onchange_function = 'set_shipping_country'; $title = 'shippingregion'; } } if ($form_selected_country != null && $onchange_function != null) { $region_list = $wpdb->get_results("SELECT `" . WPSC_TABLE_REGION_TAX . "`.* FROM `" . WPSC_TABLE_REGION_TAX . "`, `" . WPSC_TABLE_CURRENCY_LIST . "` WHERE `" . WPSC_TABLE_CURRENCY_LIST . "`.`isocode` IN('" . $form_selected_country . "') AND `" . WPSC_TABLE_CURRENCY_LIST . "`.`id` = `" . WPSC_TABLE_REGION_TAX . "`.`country_id`", ARRAY_A); if ($region_list != null) { $output = "<select title='{$title}' name='collected_data[" . $form_id . "][1]' class='current_region' onchange='{$onchange_function}(\"region_country_form_{$form_id}\", \"{$form_id}\");'>\n\r"; foreach ($region_list as $region) { if ($form_selected_region == $region['id']) { $selected = "selected='selected'"; } else { $selected = ""; } $output .= " <option value='" . $region['id'] . "' {$selected}>" . htmlspecialchars($region['name']) . "</option>\n\r"; } $output .= "</select>\n\r"; $output = str_replace(array("\n", "\r"), array("\\n", "\\r"), addslashes($output)); echo "jQuery('#region_select_{$form_id}').html(\"" . $output . "\");\n\r"; } else { if (get_option('lock_tax') == 1) { echo "jQuery('#region').hide();"; } echo "jQuery('#region_select_{$form_id}').html('');\n\r"; } } if ($tax > 0) { echo "jQuery(\"tr.total_tax\").show();\n\r"; } else { echo "jQuery(\"tr.total_tax\").hide();\n\r"; } echo "jQuery('#checkout_tax').html(\"<span class='pricedisplay'>" . wpsc_cart_tax() . "</span>\");\n\r"; echo "jQuery('#checkout_total').html(\"<span class='pricedisplay'>{$total}</span><input id='shopping_cart_total_price' type='hidden' value='{$total}' />\");\n\r"; //echo "\n\r/*\n\r{$wpsc_cart->tax_percentage}\n\r*/\n\r"; exit; }
/** * wpsc_change_tax function, used through ajax and in normal page loading. * No parameters, returns nothing */ function wpsc_change_tax() { global $wpdb, $wpsc_cart; $form_id = absint($_POST['form_id']); $wpsc_selected_country = $wpsc_cart->selected_country; $wpsc_selected_region = $wpsc_cart->selected_region; $wpsc_delivery_country = $wpsc_cart->delivery_country; $wpsc_delivery_region = $wpsc_cart->delivery_region; $previous_country = $_SESSION['wpsc_selected_country']; if (isset($_POST['billing_country'])) { $wpsc_selected_country = $wpdb->escape($_POST['billing_country']); $_SESSION['wpsc_selected_country'] = $wpsc_selected_country; } if (isset($_POST['billing_region'])) { $wpsc_selected_region = absint($_POST['billing_region']); $_SESSION['wpsc_selected_region'] = $wpsc_selected_region; } $check_country_code = $wpdb->get_var(" SELECT `country`.`isocode` FROM `" . WPSC_TABLE_REGION_TAX . "` AS `region` INNER JOIN `" . WPSC_TABLE_CURRENCY_LIST . "` AS `country` ON `region`.`country_id` = `country`.`id` WHERE `region`.`id` = '" . $_SESSION['wpsc_selected_region'] . "' LIMIT 1"); if ($_SESSION['wpsc_selected_country'] != $check_country_code) { $wpsc_selected_region = null; } if (isset($_POST['shipping_country'])) { $wpsc_delivery_country = $wpdb->escape($_POST['shipping_country']); $_SESSION['wpsc_delivery_country'] = $wpsc_delivery_country; } if (isset($_POST['shipping_region'])) { $wpsc_delivery_region = absint($_POST['shipping_region']); $_SESSION['wpsc_delivery_region'] = $wpsc_delivery_region; } $check_country_code = $wpdb->get_var(" SELECT `country`.`isocode` FROM `" . WPSC_TABLE_REGION_TAX . "` AS `region` INNER JOIN `" . WPSC_TABLE_CURRENCY_LIST . "` AS `country` ON `region`.`country_id` = `country`.`id` WHERE `region`.`id` = '" . $wpsc_delivery_region . "' LIMIT 1"); if ($wpsc_delivery_country != $check_country_code) { $wpsc_delivery_region = null; } $wpsc_cart->update_location(); $wpsc_cart->get_shipping_method(); $wpsc_cart->get_shipping_option(); if ($wpsc_cart->selected_shipping_method != '') { $wpsc_cart->update_shipping($wpsc_cart->selected_shipping_method, $wpsc_cart->selected_shipping_option); } $tax = $wpsc_cart->calculate_total_tax(); $total = wpsc_cart_total(); $total_input = wpsc_cart_total(false); if ($wpsc_cart->coupons_amount >= wpsc_cart_total() && !empty($wpsc_cart->coupons_amount)) { $total = 0; } if ($wpsc_cart->total_price < 0) { $wpsc_cart->coupons_amount += $wpsc_cart->total_price; $wpsc_cart->total_price = null; $wpsc_cart->calculate_total_price(); } ob_start(); include_once wpsc_get_template_file_path('wpsc-cart_widget.php'); $output = ob_get_contents(); ob_end_clean(); $output = str_replace(array("\n", "\r"), array("\\n", "\\r"), addslashes($output)); if (get_option('lock_tax') == 1) { echo "jQuery('#current_country').val('" . $_SESSION['wpsc_delivery_country'] . "'); \n"; if ($_SESSION['wpsc_delivery_country'] == 'US' && get_option('lock_tax') == 1) { $output = wpsc_shipping_region_list($_SESSION['wpsc_delivery_country'], $_SESSION['wpsc_delivery_region']); $output = str_replace(array("\n", "\r"), array("\\n", "\\r"), addslashes($output)); echo "jQuery('#region').remove();\n\r"; echo "jQuery('#change_country').append(\"" . $output . "\");\n\r"; } } foreach ($wpsc_cart->cart_items as $key => $cart_item) { echo "jQuery('#shipping_{$key}').html(\"" . wpsc_currency_display($cart_item->shipping) . "\");\n\r"; } echo "jQuery('#checkout_shipping').html(\"" . wpsc_cart_shipping() . "\");\n\r"; echo "jQuery('div.shopping-cart-wrapper').html('{$output}');\n"; if (get_option('lock_tax') == 1) { echo "jQuery('.shipping_country').val('" . $_SESSION['wpsc_delivery_country'] . "') \n"; $sql = "SELECT `country` FROM `" . WPSC_TABLE_CURRENCY_LIST . "` WHERE `isocode`='" . $_SESSION['wpsc_selected_country'] . "'"; $country_name = $wpdb->get_var($sql); echo "jQuery('.shipping_country_name').html('" . $country_name . "') \n"; } $form_selected_country = null; $form_selected_region = null; $onchange_function = null; if ($_POST['billing_country'] != 'undefined' && !isset($_POST['shipping_country'])) { $form_selected_country = $wpsc_selected_country; $form_selected_region = $wpsc_selected_region; $onchange_function = 'set_billing_country'; } else { if ($_POST['shipping_country'] != 'undefined' && !isset($_POST['billing_country'])) { $form_selected_country = $wpsc_delivery_country; $form_selected_region = $wpsc_delivery_region; $onchange_function = 'set_shipping_country'; } } if ($form_selected_country != null && $onchange_function != null) { $region_list = $wpdb->get_results("SELECT `" . WPSC_TABLE_REGION_TAX . "`.* FROM `" . WPSC_TABLE_REGION_TAX . "`, `" . WPSC_TABLE_CURRENCY_LIST . "` WHERE `" . WPSC_TABLE_CURRENCY_LIST . "`.`isocode` IN('" . $form_selected_country . "') AND `" . WPSC_TABLE_CURRENCY_LIST . "`.`id` = `" . WPSC_TABLE_REGION_TAX . "`.`country_id`", ARRAY_A); if ($region_list != null) { $title = empty($_POST['billing_country']) ? 'shippingstate' : 'billingstate'; $output = "<select name='collected_data[" . $form_id . "][1]' class='current_region' onchange='{$onchange_function}(\"region_country_form_{$form_id}\", \"{$form_id}\");' title='" . $title . "'>\n\r"; foreach ($region_list as $region) { if ($form_selected_region == $region['id']) { $selected = "selected='selected'"; } else { $selected = ""; } $output .= " <option value='" . $region['id'] . "' {$selected}>" . htmlspecialchars($region['name']) . "</option>\n\r"; } $output .= "</select>\n\r"; $output = str_replace(array("\n", "\r"), array("\\n", "\\r"), addslashes($output)); echo "jQuery('#region_select_{$form_id}').html(\"" . $output . "\");\n\r"; echo "\n\t\t\t\tvar wpsc_checkout_table_selector = jQuery('#region_select_{$form_id}').parents('.wpsc_checkout_table').attr('class');\n\t\t\t\twpsc_checkout_table_selector = wpsc_checkout_table_selector.replace(' ','.');\n\t\t\t\twpsc_checkout_table_selector = '.'+wpsc_checkout_table_selector;\n\t\t\t\tjQuery(wpsc_checkout_table_selector + ' input.billing_region').attr('disabled', 'disabled');\n\t\t\t\tjQuery(wpsc_checkout_table_selector + ' input.shipping_region').attr('disabled', 'disabled');\n\t\t\t\tjQuery(wpsc_checkout_table_selector + ' .billing_region').parent().parent().hide();\n\t\t\t\tjQuery(wpsc_checkout_table_selector + ' .shipping_region').parent().parent().hide();\n\t\t\t"; } else { if (get_option('lock_tax') == 1) { echo "jQuery('#region').hide();"; } echo "jQuery('#region_select_{$form_id}').html('');\n\r"; echo "\n\t\t\t\tvar wpsc_checkout_table_selector = jQuery('#region_select_{$form_id}').parents('.wpsc_checkout_table').attr('class');\n\t\t\t\twpsc_checkout_table_selector = wpsc_checkout_table_selector.replace(' ','.');\n\t\t\t\twpsc_checkout_table_selector = '.'+wpsc_checkout_table_selector;\n\t\t\t\tjQuery(wpsc_checkout_table_selector + ' input.billing_region').removeAttr('disabled');\n\t\t\t\tjQuery(wpsc_checkout_table_selector + ' input.shipping_region').removeAttr('disabled');\n\t\t\t\tjQuery(wpsc_checkout_table_selector + ' .billing_region').parent().parent().show();\n\t\t\t\tjQuery(wpsc_checkout_table_selector + ' .shipping_region').parent().parent().show();\n\t\t\t"; } } if ($tax > 0) { echo "jQuery(\"tr.total_tax\").show();\n\r"; } else { echo "jQuery(\"tr.total_tax\").hide();\n\r"; } echo "jQuery('#checkout_tax').html(\"<span class='pricedisplay'>" . wpsc_cart_tax() . "</span>\");\n\r"; echo "jQuery('#checkout_total').html(\"{$total}<input id='shopping_cart_total_price' type='hidden' value='{$total_input}' />\");\n\r"; echo "if(jQuery(\"#shippingSameBilling\").is(\":checked\")) wpsc_shipping_same_as_billing();"; exit; }
function wpsc_shipping_country_list($shippingdetails = false) { global $wpdb, $wpsc_shipping_modules; $js = ''; $output = ''; if (!$shippingdetails) { $output = "<input type='hidden' name='wpsc_ajax_actions' value='update_location' />"; $js = " onchange='submit_change_country();'"; } $selected_country = $_SESSION['wpsc_delivery_country']; $selected_region = $_SESSION['wpsc_delivery_region']; if (empty($selected_country)) { $selected_country = esc_attr(get_option('base_country')); } if (empty($selected_region)) { $selected_region = esc_attr(get_option('base_region')); } $country_data = $wpdb->get_results("SELECT * FROM `" . WPSC_TABLE_CURRENCY_LIST . "` WHERE `visible`= '1' ORDER BY `country` ASC", ARRAY_A); $output .= "<select name='country' id='current_country' " . $js . " >"; foreach ($country_data as $country) { $selected = ''; if ($selected_country == $country['isocode']) { $selected = "selected='selected'"; } $output .= "<option value='" . $country['isocode'] . "' {$selected}>" . esc_attr(htmlspecialchars($country['country'])) . "</option>"; } $output .= "</select>"; $output .= wpsc_shipping_region_list($selected_country, $selected_region, $shippingdetails); if (isset($_POST['wpsc_update_location']) && $_POST['wpsc_update_location'] == 'true') { $_SESSION['wpsc_update_location'] = true; } else { $_SESSION['wpsc_update_location'] = false; } if (isset($_POST['zipcode'])) { if ($_POST['zipcode'] == '') { $zipvalue = ''; $_SESSION['wpsc_zipcode'] = ''; } else { $zipvalue = $_POST['zipcode']; $_SESSION['wpsc_zipcode'] = $_POST['zipcode']; } } else { if (isset($_SESSION['wpsc_zipcode']) && $_SESSION['wpsc_zipcode'] != '') { $zipvalue = $_SESSION['wpsc_zipcode']; } else { $zipvalue = ''; $_SESSION['wpsc_zipcode'] = ''; } } if ($zipvalue != '' && $zipvalue != 'Insira o CEP') { $color = '#000'; } else { $zipvalue = 'Insira o CEP'; $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 == true) { $output .= " <input type='text' style='color:" . $color . ";' onclick='if (this.value==\"Insira o CEP\") {this.value=\"\";this.style.color=\"#000\";}' onblur='if (this.value==\"\") {this.style.color=\"#999\"; this.value=\"Insira o CEP\"; }' value='" . $zipvalue . "' size='10' name='zipcode' id='zipcode'>"; } return $output; }
function wpsc_shipping_country_list($shippingdetails = false) { global $wpdb, $wpsc_shipping_modules, $wpsc_country_data; $js = ''; $output = ''; if (!$shippingdetails) { $output = "<input type='hidden' name='wpsc_ajax_actions' value='update_location' />"; $js = " onchange='submit_change_country();'"; } $selected_country = (string) wpsc_get_customer_meta('shipping_country'); $selected_region = (string) wpsc_get_customer_meta('shipping_region'); if (empty($selected_country)) { $selected_country = esc_attr(get_option('base_country')); } if (empty($selected_region)) { $selected_region = esc_attr(get_option('base_region')); } if (empty($wpsc_country_data)) { $country_data = $wpdb->get_results("SELECT * FROM `" . WPSC_TABLE_CURRENCY_LIST . "` WHERE `visible`= '1' ORDER BY `country` ASC", ARRAY_A); } else { $country_data = $wpsc_country_data; } $acceptable_countries = wpsc_get_acceptable_countries(); $output .= wpsc_get_country_dropdown(array('name' => 'country', 'id' => 'current_country', 'additional_attributes' => $js, 'acceptable_ids' => $acceptable_countries, 'selected' => $selected_country, 'placeholder' => '')); $output .= wpsc_shipping_region_list($selected_country, $selected_region, $shippingdetails); if (isset($_POST['wpsc_update_location']) && $_POST['wpsc_update_location'] == 'true') { wpsc_update_customer_meta('update_location', true); } else { wpsc_delete_customer_meta('update_location'); } $zipvalue = (string) wpsc_get_customer_meta('shipping_zip'); if (!empty($_POST['zipcode'])) { $zipvalue = $_POST['zipcode']; } $zip_code_text = __('Your Zipcode', 'wpsc'); 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 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; }
/** * wpsc_change_tax function, used through ajax and in normal page loading. * No parameters, returns nothing */ function wpsc_change_tax() { global $wpdb, $wpsc_cart; $form_id = absint($_POST['form_id']); $wpsc_selected_country = $wpsc_cart->selected_country; $wpsc_selected_region = $wpsc_cart->selected_region; $wpsc_delivery_country = $wpsc_cart->delivery_country; $wpsc_delivery_region = $wpsc_cart->delivery_region; $previous_country = wpsc_get_customer_meta('billingcountry'); global $wpdb, $user_ID, $wpsc_customer_checkout_details; if (isset($_POST['billing_country'])) { $wpsc_selected_country = $_POST['billing_country']; wpsc_update_customer_meta('billingcountry', $wpsc_selected_country); } if (isset($_POST['billing_region'])) { $wpsc_selected_region = absint($_POST['billing_region']); wpsc_update_customer_meta('billingregion', $wpsc_selected_region); } $check_country_code = WPSC_Countries::country_id(wpsc_get_customer_meta('billing_region')); if (wpsc_get_customer_meta('billingcountry') != $check_country_code) { $wpsc_selected_region = null; } if (isset($_POST['shipping_country'])) { $wpsc_delivery_country = $_POST['shipping_country']; wpsc_update_customer_meta('shippingcountry', $wpsc_delivery_country); } if (isset($_POST['shipping_region'])) { $wpsc_delivery_region = absint($_POST['shipping_region']); wpsc_update_customer_meta('shippingregion', $wpsc_delivery_region); } $check_country_code = WPSC_Countries::country_id($wpsc_delivery_region); if ($wpsc_delivery_country != $check_country_code) { $wpsc_delivery_region = null; } $wpsc_cart->update_location(); $wpsc_cart->get_shipping_method(); $wpsc_cart->get_shipping_option(); if ($wpsc_cart->selected_shipping_method != '') { $wpsc_cart->update_shipping($wpsc_cart->selected_shipping_method, $wpsc_cart->selected_shipping_option); } $tax = $wpsc_cart->calculate_total_tax(); $total = wpsc_cart_total(); $total_input = wpsc_cart_total(false); if ($wpsc_cart->coupons_amount >= $total_input && !empty($wpsc_cart->coupons_amount)) { $total = 0; } if ($wpsc_cart->total_price < 0) { $wpsc_cart->coupons_amount += $wpsc_cart->total_price; $wpsc_cart->total_price = null; $wpsc_cart->calculate_total_price(); } $delivery_country = wpsc_get_customer_meta('shipping_country'); $output = _wpsc_ajax_get_cart(false); $output = $output['widget_output']; $json_response = array(); global $wpsc_checkout; if (empty($wpsc_checkout)) { $wpsc_checkout = new wpsc_checkout(); } $json_response['delivery_country'] = esc_js($delivery_country); $json_response['billing_country'] = esc_js($wpsc_selected_country); $json_response['widget_output'] = $output; $json_response['shipping_keys'] = array(); $json_response['cart_shipping'] = wpsc_cart_shipping(); $json_response['form_id'] = $form_id; $json_response['tax'] = $tax; $json_response['display_tax'] = wpsc_cart_tax(); $json_response['total'] = $total; $json_response['total_input'] = $total_input; $json_response['lock_tax'] = get_option('lock_tax'); $json_response['country_name'] = wpsc_get_country($delivery_country); if ('US' == $delivery_country || 'CA' == $delivery_country) { $output = wpsc_shipping_region_list($delivery_country, wpsc_get_customer_meta('shipping_region')); $output = str_replace(array("\n", "\r"), '', $output); $json_response['shipping_region_list'] = $output; } foreach ($wpsc_cart->cart_items as $key => $cart_item) { $json_response['shipping_keys'][$key] = wpsc_currency_display($cart_item->shipping); } $form_selected_country = null; $form_selected_region = null; $onchange_function = null; if (!empty($_POST['billing_country']) && $_POST['billing_country'] != 'undefined' && !isset($_POST['shipping_country'])) { $form_selected_country = $wpsc_selected_country; $form_selected_region = $wpsc_selected_region; $onchange_function = 'set_billing_country'; } else { if (!empty($_POST['shipping_country']) && $_POST['shipping_country'] != 'undefined' && !isset($_POST['billing_country'])) { $form_selected_country = $wpsc_delivery_country; $form_selected_region = $wpsc_delivery_region; $onchange_function = 'set_shipping_country'; } } if ($form_selected_country != null && $onchange_function != null) { $checkoutfields = 'set_shipping_country' == $onchange_function; $region_list = wpsc_country_region_list($form_id, false, $form_selected_country, $form_selected_region, $form_id, $checkoutfields); if ($region_list != null) { $json_response['region_list'] = str_replace(array("\n", "\r"), '', $region_list); } } echo json_encode($json_response); exit; }
function wpsc_shipping_country_list($shippingdetails = false) { global $wpdb, $wpsc_shipping_modules; $js = ''; if (!$shippingdetails) { $output = "<input type='hidden' name='wpsc_ajax_actions' value='update_location' />"; $js = " onchange='submit_change_country();'"; } $selected_country = $_SESSION['wpsc_delivery_country']; $selected_region = $_SESSION['wpsc_delivery_region']; if ($selected_country == null) { $selected_country = get_option('base_country'); } if ($selected_region == null) { $selected_region = get_option('base_region'); } $country_data = $wpdb->get_results("SELECT * FROM `" . WPSC_TABLE_CURRENCY_LIST . "` ORDER BY `country` ASC", ARRAY_A); $output .= "<select name='country' id='current_country' " . $js . " >"; foreach ($country_data as $country) { // 23-02-09 fix for custom target market by jeffry // recon this should be taken out and put into a function somewhere maybe,,, if ($country['visible'] == '1') { $selected = ''; if ($selected_country == $country['isocode']) { $selected = "selected='selected'"; } $output .= "<option value='" . $country['isocode'] . "' {$selected}>" . htmlspecialchars($country['country']) . "</option>"; } } $output .= "</select>"; $output .= wpsc_shipping_region_list($selected_country, $selected_region, $shippingdetails); if ($_POST['wpsc_update_location'] == 'true') { $_SESSION['wpsc_update_location'] = true; } else { $_SESSION['wpsc_update_location'] = false; } if (isset($_POST['zipcode'])) { if ($_POST['zipcode'] == '') { $zipvalue = ''; $_SESSION['wpsc_zipcode'] = ''; } else { $zipvalue = $_POST['zipcode']; $_SESSION['wpsc_zipcode'] = $_POST['zipcode']; } } else { if (isset($_SESSION['wpsc_zipcode']) && $_SESSION['wpsc_zipcode'] != '') { $zipvalue = $_SESSION['wpsc_zipcode']; } else { $zipvalue = ''; $_SESSION['wpsc_zipcode'] = ''; } } if ($zipvalue != '' && $zipvalue != 'Your Zipcode') { $color = '#000'; } else { $zipvalue = 'Your Zipcode'; $color = '#999'; } $uses_zipcode = false; $custom_shipping = get_option('custom_shipping_options'); foreach ((array) $custom_shipping as $shipping) { if ($wpsc_shipping_modules[$shipping]->needs_zipcode == true) { $uses_zipcode = true; } } if ($uses_zipcode == true) { $output .= " <input type='text' style='color:" . $color . ";' onclick='if (this.value==\"Your Zipcode\") {this.value=\"\";this.style.color=\"#000\";}' onblur='if (this.value==\"\") {this.style.color=\"#999\"; this.value=\"Your Zipcode\"; }' value='" . $zipvalue . "' size='10' name='zipcode' id='zipcode'>"; } return $output; }