Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Zusätzliches Feld für Titel einer Person (Dr./Prof.) kommt nicht in Checkout an

    mcm

    • Mitglied
    • Beiträge: 151
    Hallo,
    ich bin dabei, überall wo ein Kundenname auftaucht, auch ein Feld für den Titel der Person (Dr./Prof...) anzeigen/abfragen zu lassen.
    (Feldname ist entry_prefix in der Tabelle address_book)

    Das hat soweit auch geklappt, nur an einer Stelle verzweifle ich gerade:

    Für die Adresslisten bei Shipping und Payment wird ein Array mit den Adressdaten an die Funktion xtc_address_format übergeben:
    Code: PHP  [Auswählen]
    $address_content .= sprintf('<li>%s<label for="field_addresses_%s"> %s %s %s</label><br /><span class="address">%s</span></li>', xtc_draw_radio_field('address',$addresses['address_book_id'], ($addresses['address_book_id'] == $_SESSION['sendto']), 'id="field_addresses_'.$addresses['address_book_id'].'"'), $addresses['address_book_id'], $addresses['prefix'], $addresses['firstname'], $addresses['lastname'], xtc_address_format($format_id, $addresses, true, ' ', ', '));

    In der
    inc/xtc_address_format.inc.php
    wird die Adresse dann neu zusammengebaut, nach diversen Abfragen.

    Mein Feldwert wir auch ausgegeben, wenn ich ihn einzeln abfrage:
    $address['prefix'])

    Bei der Übergabe per  return $address; ist er aber nicht dabei.

    Und das verstehe ich irgendwie nicht.

    Ich behelfe mir jetzt erstmal mit folgender Variante:
    Code: PHP  [Auswählen]
    if($prefix) $address = stripslashes($prefix) . ' ' . stripslashes($address);

    Aber ich würde natürlich gern wissen, an welcher Stelle der Wert aus der Übergabe entfernt wird.

    Kann da jemand helfen?

    Danke
    - mcm -

    meine xtc_address_format.inc.php
    Shopversion: 1.05

    Code: PHP  [Auswählen]
    <?php
       
       require_once(DIR_FS_INC . 'xtc_get_zone_code.inc.php');
       require_once(DIR_FS_INC . 'xtc_get_country_name.inc.php');
       
    function xtc_address_format($address_format_id, $address, $html, $boln, $eoln) {
        $address_format_query = xtc_db_query("select address_format as format from " . TABLE_ADDRESS_FORMAT . " where address_format_id = '" . $address_format_id . "'");
        $address_format = xtc_db_fetch_array($address_format_query);

        $company = addslashes($address['company']);
        $firstname = addslashes($address['firstname']);
        $lastname = addslashes($address['lastname']);
        $prefix = addslashes($address['prefix']);
        $street = addslashes($address['street_address']);
        $suburb = addslashes($address['suburb']);
        $city = addslashes($address['city']);
        $state = addslashes($address['state']);
        $country_id = $address['country_id'];
        $zone_id = $address['zone_id'];
        $postcode = addslashes($address['postcode']);
        $zip = $postcode;
        $country = xtc_get_country_name($country_id);
        $state = xtc_get_zone_code($country_id, $zone_id, $state);

        if ($html) {
    // HTML Mode
          $HR = '<hr />';
          $hr = '<hr />';
          if ( ($boln == '') && ($eoln == "\n") ) { // Values not specified, use rational defaults
            $CR = '<br />';
            $cr = '<br />';
            $eoln = $cr;
          } else { // Use values supplied
            $CR = $eoln . $boln;
            $cr = $CR;
          }
        } else {
    // Text Mode
          $CR = $eoln;
          $cr = $CR;
          $HR = '----------------------------------------';
          $hr = '----------------------------------------';
        }

        $statecomma = '';
        $streets = $street;
        if ($suburb != '') $streets = $street . $cr . $suburb;
        if ($firstname == '') $firstname = addslashes($address['name']);
        if ($country == '') $country = addslashes($address['country']);
        if ($state != '') $statecomma = $state . ', ';

        $fmt = $address_format['format'];
        eval("\$address = \"$fmt\";");

        if ( (ACCOUNT_COMPANY == 'true') && (xtc_not_null($company)) ) {
          $address = $company . $cr . $address;
        }

        $address = stripslashes($address);
        // if($prefix) $address = stripslashes($prefix) . ' ' . stripslashes($address);
       
        return $address;
      }
     ?>
     


    Linkback: https://www.modified-shop.org/forum/index.php?topic=29754.0
    Werbung / Banner buchen

    ShopNix

    • Viel Schreiber
    • Beiträge: 1.208
    Wenn ich mich recht erinnere sind die Adressformate je Zielland hinterlegt, weil es in manchen Ländern üblich ist, z.B. die Postleitzahl vor dem Ort bzw. hinter dem Ort zu nennen.

    Die Adresse wird also pro Zielland nach dessen Regeln zusammengebastelt. Vielleicht hast Du diese Regeln nicht angepasst.

    mcm

    • Mitglied
    • Beiträge: 151
    Ah, danke für die Info.

    Wo kann man das länderspezifische Adressformat den anpassen? Hab da nichts gefunden...

    ShopNix

    • Viel Schreiber
    • Beiträge: 1.208
    Hmm. Schau doch mal in Deinen eigenen Post, da kommt das Dingen vor.

    Mir ist allerdings kein Verwaltungsprogramm für die Tabelle bekannt, vermutlich wirst Du's in der Datenbank richten müssen.

    mcm

    • Mitglied
    • Beiträge: 151
    Tatsächlich ließ sich die Ausgabe der Adresse z.B. für den Checkout direkt in der Datenbank editieren:

    Tabelle: address_format bei mir der 5. Eintrag (Deutschland)

    Ich habe nun auch hier die Ausgabe für den Titel ($prefix) ergänzt und jetzt werden überall die Namen korrekt angezeigt.

    Code: SQL  [Auswählen]
    $prefix $firstname $lastname$cr$streets$cr$postcode $city$cr$country

    Vielen Dank für die Hilfe, ShopNix!
    4 Antworten
    7373 Aufrufe
    13. März 2012, 20:18:01 von lasse2001
    7 Antworten
    4721 Aufrufe
    25. November 2012, 15:02:12 von NicoDeluxe
    30 Antworten
    1641 Aufrufe
    13. Mai 2023, 23:16:35 von noRiddle (revilonetz)
    1 Antworten
    3192 Aufrufe
    18. Februar 2010, 20:07:23 von MAx_Dungeon