View Issue Details

IDProjectCategoryView StatusLast Update
0004960OXID eShop (all versions)1.05. Userspublic2014-04-08 07:45
Reporterhenrik.steffen 
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
PlatformallOSallOS Versionall
Product Version4.7.3 / 5.0.3 revision 54408 
Target Version4.8.5 / 5.1.5Fixed in Version4.9.0_5.2.0_beta1 
Summary0004960: Address country title is saved into user session and doesn't get updated, when user switches languages
DescriptionGo to http://demoshop.oxid-esales.com/community-edition and log in in shop frontend as user admin. Use shop frontend language "German".

Go to "my account" section and add a new shipping address with country "Österreich".

Put something into the basket, go to user address step. You see country "Österreich" for shipping. Now switch to language "English" in frontend. You still see "Österreich".... should be "Austria" now.

As soon as you go to "my account" section now to check your addresses, it will switch to "Austria" correctly. Seems as if the name of the country is being saved into the user session, instead relying on the oxcountryid and translate it according to set frontend language.

TagsNo tags attached.
ThemeBoth
BrowserAll
PHP Versionany
MySQL Versionany

Activities

saulius.stasiukaitis

2014-04-08 07:45

reporter   ~0009819

User address list creation moved to separate object:


From
    public function getUserAddresses( $sUserId = null )
    {
        $sUserId = isset( $sUserId ) ? $sUserId : $this->getId();
        if ( !isset( $this->_aAddresses[$sUserId] ) ) {
            $sSelect = "select * from oxaddress where oxaddress.oxuserid = " . oxDb::getDb()->quote( $sUserId );

            //P
            $this->_aAddresses[$sUserId] = oxNew( "oxlist" );
            $this->_aAddresses[$sUserId]->init( "oxaddress" );
            $this->_aAddresses[$sUserId]->selectString( $sSelect );

To

    public function getUserAddresses( $sUserId = null )
    {
        $sUserId = isset( $sUserId ) ? $sUserId : $this->getId();
        if ( !isset( $this->_aAddresses[$sUserId] ) ) {
            $oUserAddressList = oxNew('oxUserAddressList');
            $oUserAddressList->load($sUserId);
            $this->_aAddresses[$sUserId] = $oUserAddressList;