Jump to content
xt:Commerce Community Forum

Länderwahl - Standardauswahl ändern


cjung

Recommended Posts

Hallo,

ich habe seit einige Zeit immer ein paar Kunden, die es nicht schaffen das richtige Land in der Länderauswahl zu wählen. Standardgemäß ist "Deutschland" eingetragen. Ich hätte aber lieber sowas wie "Bitte Wählen..." dort stehen und einer Abfrage, ob das Feld auch gewählt wurde.

Hab leider nichts sinnvolles im WWW gefunden und auch der Shop selber gibt dazu nichts her.

Hat da jemand einen Tipp für mich? Egal ob nun einen "Hack" oder ein Plugin dafür.

Danke

C. Jung

Link to comment
Share on other sites

Naja es ist ein Pflichtfeld, aber es soll geändert werden. Also als Standard gewählt soll "Bitte Wählen" stehen und dann MUSS man sein Land (korrekt) auswählen damit die Adresse, die Mwst. uws. stimmten. Wer dann falsch wählt, da kann man nichts machen.

Hab mir erstmal mit einem kleinen Hack geholfen, aber lieber wäre mir ein getestetes Plugin.

Der Hack sieht so aus, dass ich beim erstellen der Länderliste ein Element vorab eintragen "Bitte Wählen" mit der value="XX" und diese dann mit einer neuen vergleichsfunktion überprüfe. Ich prüfe das Land-Input einfach auf != "XX".

Hier die Änderungen der dafür benötigten Datein:

Für die Prüfung des Feldes eine neue Funktion

class.check_fields.php


//HACK
function _checkNotMatch($data, $data_match, $error_message){
global $xtPlugin, $info;

($plugin_code = $xtPlugin->PluginCode('class.customer_check.php:_checkNotMatch_top')) ? eval($plugin_code) : false;
if(isset($plugin_return_value))
return $plugin_return_value;

if ($data == $data_match) {
$this->error = true;
$info->_addInfo($error_message);
}
}
//END HACK[/PHP]

Für die Combobox der Länder (fast ganz am Anfang der Datei)

class.countries.php

Nach

[PHP] $qry = "SELECT * FROM " . TABLE_COUNTRIES." c, ".TABLE_COUNTRIES_DESCRIPTION." cd WHERE c.countries_iso_code_2=cd.countries_iso_code_2 and cd.language_code='".$language->code."'".$sql_qry;

$record = $db->Execute($qry);[/PHP]

[PHP]

//HACK

$record->fields['id'] = 'XX';
$record->fields['text'] = TEXT_COUNTRY_SELECT;
$data[$record->fields['countries_iso_code_2']] = $record->fields;
($plugin_code = $xtPlugin->PluginCode(__CLASS__.'_buildCountryList_data')) ? eval($plugin_code) : false;
$record->MoveNext();

//END HACK
[/PHP]

und vor

[PHP] if($record->RecordCount() > 0){[/PHP]

Und für die Ausführung der Prüfnung auf das Land:

class.customer.php

[PHP] function _checkCustomerAddressData($data, $add_type = 'insert', $check_data=true){
global $db, $xtPlugin;

$data['error'] = false;

if($check_data == true){
if (_STORE_ACCOUNT_GENDER == 'true')
$this->_checkGender($data['customers_gender']);

$this->_checkLenght($data['customers_firstname'], _STORE_FIRST_NAME_MIN_LENGTH, ERROR_FIRST_NAME);
$this->_checkLenght($data['customers_lastname'], _STORE_LAST_NAME_MIN_LENGTH, ERROR_LAST_NAME);
$this->_checkLenght($data['customers_street_address'], _STORE_STREET_ADDRESS_MIN_LENGTH, ERROR_STREET_ADDRESS);
$this->_checkLenght($data['customers_postcode'], _STORE_POSTCODE_MIN_LENGTH, ERROR_POST_CODE);
$this->_checkLenght($data['customers_city'], _STORE_CITY_MIN_LENGTH, ERROR_CITY);
//HACK
$this->_checkNotMatch($data['customers_country_code'], 'XX', ERROR_COUNTRY_SELECT);
//END HACK

($plugin_code = $xtPlugin->PluginCode('class.customer.php:_CustomerAddressData_check')) ? eval($plugin_code) : false;
}

if($this->error == true){
$data['error'] = true;
return false;
}

}[/PHP]

Evtl noch die Login.html anpassen, wenn man dort das Standard ausgewählt Land über das Standardland des Schops auswählen lässt

Klappt auch bisher mit meinen Tests.

Leider ist das dann wieder weg, wenn ich ein Update fahren sollte.

Link to comment
Share on other sites

  • 3 weeks later...

Hallo,

ich habe seit einige Zeit immer ein paar Kunden, die es nicht schaffen das richtige Land in der Länderauswahl zu wählen. Standardgemäß ist "Deutschland" eingetragen. Ich hätte aber lieber sowas wie "Bitte Wählen..." dort stehen und einer Abfrage, ob das Feld auch gewählt wurde.

Hab leider nichts sinnvolles im WWW gefunden und auch der Shop selber gibt dazu nichts her.

Hat da jemand einen Tipp für mich? Egal ob nun einen "Hack" oder ein Plugin dafür.

Danke

C. Jung

Hallo,

ich habe dasselbe Problem daß Kunden das falsche Land bzw. einfach das standardmäßig eingestellte Land belassen und es dann zu falschen Versandkosten kommt.

Mein Ansatz wäre gewesen das Land aus dem Browser auszulesen. Scheint aber nicht so einfach zu sein. Vielleicht hat jemand in der Community Erfahrung damit.

Danke - Max

Link to comment
Share on other sites

  • 1 month later...

ich hätte hier auch gerne eine einfache und problemlose lösung, da es immer wieder zu problemen kommt, wenn kunden aus dem ausland bestellen und ihr land nicht korrekt auswählen.

da standardmäßig DEUTSCHLAND ausgewählt ist, werden immer die versandkosten für deutschland berechnet.

für nicht-EU länder wie die schweiz ist es noch dämlicher, da dann auch noch die steuer berechnet wird.

hier ist dringend abhilfe geboten.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...