Templateshop - Eine große Auswahl an neuen und modernen Templates für die modified eCommerce Shopsoftware
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: MODUL: Versandkostenberechnung im Warenkorb mit Zielland- und Versandartdropdown

    Koala

    • Frisch an Board
    • Beiträge: 69
     unset($_SESSION['cart_block']['COUNTRY_DROWDOWN']);

    $_SESSION['cart_block'] enthält anscheinend eine Zeichenkette.

    Scheib dort statt  unset($_SESSION['cart_block']['COUNTRY_DROWDOWN']);

    var_dump($_SESSION['cart_block']);
    exit();

    und poste das Ergebnis.

    rechtstexte für onlineshop

    0815

    • Viel Schreiber
    • Beiträge: 905
    Moin,

    hier das Ergebnis:

    Code: PHP  [Auswählen]
    array(1) { ["shipping"]=> string(11) "table_table" }

    Koala

    • Frisch an Board
    • Beiträge: 69
    suchen:
    Code: PHP  [Auswählen]
    // Dropdown für Länderauswahl
                            unset($_SESSION['cart_block']['COUNTRY_DROWDOWN']);
                            if(count(xtc_get_countriesList()) > 1) {
                                    $_SESSION['cart_block']['COUNTRY_DROWDOWN'] = xtc_get_country_list('country_dropdown', $order->delivery['country']['id'], ' onchange="this.form.submit()" style="width: 100%;"');
                            }
                           
                            // Dropdown für Versandart
                            unset($_SESSION['cart_block']['SHIPPING_DROWDOWN']);
                            if (count($shipping_dropdown) > 1) {
                                    $_SESSION['cart_block']['SHIPPING_DROWDOWN'] = xtc_draw_pull_down_menu('shipping_dropdown', $shipping_dropdown, $_SESSION['cart_block']['shipping'], ' onchange="this.form.submit()" style="width: 100%;"');
                            }
                           
                            // Ausgabe
                            unset($_SESSION['cart_block']['SHIPPING_INFO']);
                            $_SESSION['cart_block']['SHIPPING_INFO'] = $main->getShippingLink().': '.$shipping[$_SESSION['cart_block']['shipping']]['text'].'<br />';

    ersetzen:
    Code: PHP  [Auswählen]
    // Dropdown für Länderauswahl
                            $_SESSION['cart_block']['COUNTRY_DROWDOWN'] = array();
                            if(count(xtc_get_countriesList()) > 1) {
                                    $_SESSION['cart_block']['COUNTRY_DROWDOWN'] = xtc_get_country_list('country_dropdown', $order->delivery['country']['id'], ' onchange="this.form.submit()" style="width: 100%;"');
                            }
                           
                            // Dropdown für Versandart
                            $_SESSION['cart_block']['SHIPPING_DROWDOWN'] = array();
                            if (count($shipping_dropdown) > 1) {
                                    $_SESSION['cart_block']['SHIPPING_DROWDOWN'] = xtc_draw_pull_down_menu('shipping_dropdown', $shipping_dropdown, $_SESSION['cart_block']['shipping'], ' onchange="this.form.submit()" style="width: 100%;"');
                            }
                           
                            // Ausgabe
                            // unset($_SESSION['cart_block']['SHIPPING_INFO']);
                            $_SESSION['cart_block']['SHIPPING_INFO'] = $main->getShippingLink().': '.$shipping[$_SESSION['cart_block']['shipping']]['text'].'<br />';

    ungetestet

    0815

    • Viel Schreiber
    • Beiträge: 905
    Perfekt!

    Vielen Dank :-)

    Bleibt jetzt nur noch die Frage, wo ich anpassen kann, dass sowohl im Dropdown, als auch in der Anzeige darüber nur die Titel der Versandarten ausgegeben werden.
    Bei mir wird neben dem Titel (MODULE_SHIPPING_TABLE_TEXT_TITLE) leider auch der Text (MODULE_SHIPPING_TABLE_TEXT_WAY) mit ausgegeben.

    Außerdem hätte ich gerne den Link zur Versandkostenseite entfernt, denn den habe ich bereits an einer anderen Stelle im Warenkorb.

    Wo und wie kann man denn das Layout entsprechend anpassen?

    Koala

    • Frisch an Board
    • Beiträge: 69
    mir fehlt die Vorstellungskraft oder die Phantasie
    oder beides ...

    Poste Screenshots und markiere die Teile die Du meinst.

    0815

    • Viel Schreiber
    • Beiträge: 905
    Hier der Screenshot:

    Koala

    • Frisch an Board
    • Beiträge: 69
    kommentier mal unter Punkt 5 (includes/application_top.php):

    das hier aus, also:

    Code: PHP  [Auswählen]
    // $text .= !empty($quotes[$i]['methods'][$j]['title']) ? ' ('.$quotes[$i]['methods'][$j]['title'].')' : '';
    // $text .= ': '.$xtPrice->xtcFormat(xtc_add_tax($quotes[$i]['methods'][$j]['cost'], $quotes[$i]['tax']), true, 0, true);

    ChristianB

    • Fördermitglied
    • Beiträge: 56
    @Koala

    Vielen Dank für Deine Mühe, also für mich hat sich Dein Einsatz sehr gelohnt - Danke.

    Allerdings musste ich nur

    Code: PHP  [Auswählen]
    // $text .= !empty($quotes[$i]['methods'][$j]['title']) ? ' ('.$quotes[$i]['methods'][$j]['title'].')' : '';
    auskommentieren.

    Wenn die zweite Zeile auch auskommentiert wird, wird nichts mehr angezeigt.

    Ergebnis siehe Bild! - Ich zumindestens, bin nun sehr glücklich  :mrgreen:

    0815

    • Viel Schreiber
    • Beiträge: 905
    Code: PHP  [Auswählen]
    // $text .= !empty($quotes[$i]['methods'][$j]['title']) ? ' ('.$quotes[$i]['methods'][$j]['title'].')' : '';
    // $text .= ': '.$xtPrice->xtcFormat(xtc_add_tax($quotes[$i]['methods'][$j]['cost'], $quotes[$i]['tax']), true, 0, true);

    Wenn ich beide Zeilen auskommentiere wird kein Preis angezeigt.
    Kommentiere ich nur die erste Zeile aus, wird mir sowohl im Dropdown, als auch im Text darüber der Preis angezeigt. Kann man das auch so steuern, dass nur im Text der Preis angezeigt wird, im Dropdown jedoch nur der Titel?

    ... dafür müsste man vermutlich die Variable $text ($text und $text1) aufteilen oder?

    Koala

    • Frisch an Board
    • Beiträge: 69
    Zitat
    Wenn ich beide Zeilen auskommentiere wird kein Preis angezeigt.
    ja, das hatte Christian schon geschrieben.

    Zitat
    Kommentiere ich nur die erste Zeile aus, wird mir sowohl im Dropdown, als auch im Text darüber der Preis angezeigt. Kann man das auch so steuern, dass nur im Text der Preis angezeigt wird, im Dropdown jedoch nur der Titel?

    hmmmmm .....

    Zitat
    ... dafür müsste man vermutlich die Variable $text ($text und $text1) aufteilen oder?
    zu kompliziert ...

    hmmmmm .....

    Code: PHP  [Auswählen]
    $text = $quotes[$i]['module'];
    $text .= !empty($quotes[$i]['methods'][$j]['title']) ? ' ('.$quotes[$i]['methods'][$j]['title'].')' : '';
    $text .= '%%%%';
    $text .= ': '.$xtPrice->xtcFormat(xtc_add_tax($quotes[$i]['methods'][$j]['cost'], $quotes[$i]['tax']), true, 0, true);

    Code: PHP  [Auswählen]
    // Dropdown für Versandart
    $_SESSION['cart_block']['SHIPPING_DROWDOWN'] = array();
    if (count($shipping_dropdown) > 1) {

            foreach($shipping_dropdown as $key => $value){
                   
                    $tmp = '';     
                   
                    $tmp = explode('%%%%', $value['text']);
           
                    if(is_array($tmp) && count($tmp) == 2) $shipping_dropdown[]$key['text'] = $tmp[0];
            }

            $_SESSION['cart_block']['SHIPPING_DROWDOWN'] = xtc_draw_pull_down_menu('shipping_dropdown', $shipping_dropdown,

            $_SESSION['cart_block']['shipping'], ' onchange="this.form.submit()" style="width: 100%;"');
    }
     

    Jetzt muß nur noch an die Stelle gefunden werden die Du mit "Text" bezeichnest.

    0815

    • Viel Schreiber
    • Beiträge: 905
    Oh, prima!
    Werde ich später mal ausprobieren.

    ... bin gerade am kochen und muss mich nebenbei noch um meine kleine Tochter kümmern.

    0815

    • Viel Schreiber
    • Beiträge: 905
    ... für diese Zeile:
    Code: PHP  [Auswählen]
    if(is_array($tmp) && count($tmp) == 2) $shipping_dropdown[]$key['text'] = $tmp[0];
            }

    erhalte ich folgende Fehlermeldung:
    Code: PHP  [Auswählen]
    Fatal error: Cannot use [] for reading in /var/www/vhosts/xxx/httpdocs/includes/application_top.php on line 754

    ... muss da noch etwas zwischen die Klammern?

    Koala

    • Frisch an Board
    • Beiträge: 69
    Code: PHP  [Auswählen]
                                                    unset($text);
                                                    $text = $quotes[$i]['module'];
                                            $text .= !empty($quotes[$i]['methods'][$j]['title']) ? ' ('.$quotes[$i]['methods'][$j]['title'].')' : '';
                                            $text .= '%%%%';
                                            $text .= ': '.$xtPrice->xtcFormat(xtc_add_tax($quotes[$i]['methods'][$j]['cost'], $quotes[$i]['tax']), true, 0, true);

                                                    $tmp = '';    
                   
                                                    $tmp = explode('%%%%', $text);
                               
                                                    if(is_array($tmp) && count($tmp) == 2) $tmp = $tmp[1];
                                   
                                                    $shipping[$quotes[$i]['id'].'_'.$quotes[$i]['methods'][$j]['id']] = array('id' =>

    $quotes[$i]['id'].'_'.$quotes[$i]['methods'][$j]['id'],
                                                                                                             'text' => $tmp,
                                                                                                             'cost' =>

    xtc_add_tax($quotes[$i]['methods'][$j]['cost'], $quotes[$i]['tax']),
                                                                                                             'tax' => $quotes[$i]['tax']);
                                                   
                                                    $shipping_dropdown[]  = array('id' => $quotes[$i]['id'].'_'.$quotes[$i]['methods'][$j]['id'],
                                                                                                             'text' => $text);
                                                                                                             
                                                    if ($_SESSION['cart_block']['shipping'] == $quotes[$i]['id'].'_'.$quotes[$i]['methods'][$j]['id'])

    {
                                                            $change_error = 0;
                                                    }

    Code: PHP  [Auswählen]
    if(is_array($tmp) && count($tmp) == 2) $shipping_dropdown[]$key['text'] = $tmp[0];
    Tippfehler, so ists richtig:
    Code: PHP  [Auswählen]
    if(is_array($tmp) && count($tmp) == 2) $shipping_dropdown[$key]['text'] = $tmp[0];

    0815

    • Viel Schreiber
    • Beiträge: 905
    Hallo,

    bei der Textausgabe über den Dropdowns fehlt nun der Titel der Versandart und im Dropdown ist der Preis zwar wie gewünscht entfernt, dafür ist die Beschreibung der Versandart allerdings noch da.

    siehe Screenshot ....

    Koala

    • Frisch an Board
    • Beiträge: 69
    das ist mir zu mühsam so.

    Wenn Du mir nen ftp-Zugang schickst,
    ändre ich das.

    Schreib mir ne PN.

    Modulshop - Eine große Auswahl an neuen und hilfreichen Modulen für die modified eCommerce Shopsoftware
    2 Antworten
    3424 Aufrufe
    18. Juli 2011, 14:06:44 von treets
    2 Antworten
    2690 Aufrufe
    02. November 2010, 20:19:33 von Tomcraft
    0 Antworten
    1472 Aufrufe
    06. Oktober 2015, 15:31:41 von gonzo88
    4 Antworten
    2168 Aufrufe
    12. August 2016, 10:11:57 von Bonsai
               
    anything