2012-10-31 53 views
0

好吧,我必须在http://sergedenimes.com/products-page/WP电子商务的国家列表结账

商店它采用WP电子商务插件WordPress的。我已经修改了主题文件以获得我想要的外观和布局,但是另一天,另一个网站用户冒着更新插件的自由而无需备份文件,从而覆盖了我的更改。

(我知道这不应该发生,我应该在不同的目录中的主题文件,但是这是一个不同的问题)

不管怎么说,幸运的是我设法几乎所有的主题文件恢复到我的人商店又回到了原来的状态,除了一件事情:在结帐页面上有一个下拉菜单,用户可以选择他们的国家,这样商店就可以计算交货成本。此下拉列表中没有列出其中的任何国家/地区。我检查了结帐主题文件,并在正确的地方有<?php echo wpsc_shipping_country_list();?>标签。

任何想法为什么国家名单没有填充选择?我该如何解决?

(为了看到自己,你需要至少一个产品放入购物车,去收银台)

感谢

编辑在回答Marty的要点:

  • 总价格将始终包含运费 - 这是实物商品,并且已添加运费。默认发货国家是英国,这就是为什么它增加了£3.60
  • 不确定邮政编码框。你能提供一个截图吗?对我来说,它没有提供任何提供邮政编码 - 它说“请选择一个国家下面来计算您的运送成本”(因为它应该),然后有一个下拉菜单,没有选项可供选择。 (这是我的问题)。我在这里看不到文本字段,不应该有一个。
  • 尽管可能在加拿大服务器上,该网站和公司是基于英国的,因此货币反映了这一点
  • 感谢您的链接,尽管它似乎并未包含解决方案。尝试停用/重新激活,现在购物车窗口小部件中的结帐链接会转到错误页面。

(OK固定在车窗口小部件链接的问题,但该国的下拉仍然是断开)

另一个编辑: 这里是我的整个结账页面模板文件的引擎收录:http://pastebin.com/aGxqsTVt

更新 : 所以我试着检查核心文件中的查询,并添加wp_前缀到表名没有运气。 仍然真的很苦恼,看起来更新已经搞砸了很多东西,包括商店现在正在显示保存为草稿的产品。

任何建议非常感谢。

好吧,我添加了一个php和mysql标签,因为这是我相信问题所在。

这里是我认为应该是产生国家列表功能:

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 `" . WP_WPSC_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; 
} 
+0

奇怪的结账页面我的订单是49(Serge DeNimes Block(黑色)(M)),但总价是52.60,即使没有运费?同样是你的国家名单,它说:请提供一个邮政编码,然后点击计算以继续。即使它不是一个邮编的文本字段(也是它的一个加拿大托管网站),为什么英镑价格? 只是想知道! 关于主题:可能的原因在这里! http://getshopped.org/forums/topic/base-countryregion-list-is-empty/ – Marty

+0

感谢您的回复 - 我的分数高于 – harryg

回答

0

确定在看最新版本的checkout.class.php文件有dosnt似乎是有什么用途$ wpdb-> prefix在数据库表中使用前缀吗?不只是wp_?

$country_data = $wpdb->get_results("SELECT * FROM `" . WPSC_TABLE_CURRENCY_LIST . "` WHERE `visible`= '1' ORDER BY `country` ASC", ARRAY_A); 

应该是什么样的?

$country_data = $wpdb->get_results("SELECT * FROM `" . $wpdb->prefix.WPSC_TABLE_CURRENCY_LIST . "` WHERE `visible`= '1' ORDER BY `country` ASC", ARRAY_A); 

在phpmyadmin中检查您的数据库结构以查看表名是否匹配?

刚刚通过安装文件阅读,他们使用前缀, 但仍检查,以确保您仍然有这些表中的数据?

+0

我没有使用任何不寻常的前缀 - 只是默认的wp_。试图检查数据库,但似乎无法访问cPanel。立即与主持人取得联系。 – harryg

+0

确定如此检查我的phpmyadmin:该表被称为“wp_wpsc_currency_list”,并填充了所有的国家数据 – harryg

+0

SQL查询就像你提到的第一个(没有前缀)。我尝试在wpsc_shipping_country_list函数中添加'$ wpdb-> prefix',但没有运气。它调用wpsc_get_country_dropdown函数,但我不知道它的位置。这很荒谬,他们发布了有关这些问题的更新。 – harryg

0

我在更新时发生了完全相同的问题。我发现问题的原因是从英国到英国的变化。确保你在管理员中使用英国而不是旧英国,并且应该解决你的问题。

Frank。