好的我在http://sergedenimes.com/products-page/
有一家商店它在wordpress上使用wp电子商务插件。我修改了主题文件以获得我想要的外观和布局,但有一天,另一个网站用户可以自由更新插件而无需备份文件,从而覆盖我的更改。
(我知道这不应该发生,我应该将主题文件放在不同的目录中,但这是一个不同的问题)
无论如何,幸运的是我设法将几乎所有的主题文件恢复到我的主题文件并且商店又回到原来的状态,除了一件事:在结帐页面上有一个下拉列表,用户选择他们的国家,所以商店可以计算运费。此下拉列表现在没有列出其中的国家/地区。我检查了结帐主题文件,它在正确的位置有<?php echo wpsc_shipping_country_list();?>
标记。
为什么国家/地区列表不再包含选择的任何想法?我该如何解决?
(为了亲眼看看,您需要将至少一件商品添加到购物车并转到结帐处)
由于
编辑回答Marty的观点:
(确定购物车小部件链接问题,但国家/地区下拉列表仍然已损坏)
另一个编辑: 这是我整个结帐页面模板文件的粘贴框: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 :(得分:0)
好的,查看checkout.class.php文件的最新版本,dosnt似乎是使用$ wpdb-&gt;前缀你在数据库表上使用前缀吗?不只是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中的数据库结构,看看表名是否匹配?
[更新]是的,只需阅读安装文件并使用前缀, 但仍然检查以确保这些表中仍有数据?
答案 1 :(得分:0)
我更新时遇到了完全相同的问题。我发现问题的原因是从英国到英国的转变。确保你在管理员中使用英国而不是旧的英国,你的问题应该得到解决。
弗兰克。