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: Barzahlung für mehrere Selbstabholungsmodule aktivieren

    konuan

    • Neu im Forum
    • Beiträge: 15
    Hallo!

    Ich habe mehrere Selbstabholungsmodule installiert. Dazu habe ich die selfpickup.php und die zugehörige language Datei kopiert und umbenannt. Den Code habe ich ebenfalls angepasst.

    Die Dateien heissen jetzt: selfpickup1.php usw.. Das funktioniert auch super.

    Nun mein Problem:

    Ich möchte für alle Selbstabholungsmodule Barzahlung aktivieren. Das Modul wird aber nur angezeigt, wenn die original "selfpickup.php" genutzt wird. Bei den anderen angepassten Selbstabholungsmodulen wird Barzahlung nicht angezeigt.

    Der folgende Code der cash.php scheint verantwortlich zu sein:

    Code: PHP  [Auswählen]
    if ($_SESSION['shipping']['id'] != 'selfpickup_selfpickup') {
                            $this->enabled = false;
                    }
    Setze ich den Wert auf "true" wird das Modul bei allen Versandarten angezeigt. Ändere ich die Werte in "selfpickup1_selfpickup1" klappt es nicht.

    Was muss ich machen?

    Anbei der gesamte Code der cash.php:

    Code: PHP  [Auswählen]
    <?php

    class cash {
            var $code, $title, $description, $enabled;

            function cash() {
                    global $order;

                    $this->code = 'cash';
                    $this->title = MODULE_PAYMENT_CASH_TEXT_TITLE;
                    $this->description = MODULE_PAYMENT_CASH_TEXT_DESCRIPTION;
                    $this->sort_order = MODULE_PAYMENT_CASH_SORT_ORDER;
                    $this->enabled = ((MODULE_PAYMENT_CASH_STATUS == 'True') ? true : false);
                    $this->info = MODULE_PAYMENT_CASH_TEXT_INFO;
                    if ((int) MODULE_PAYMENT_CASH_ORDER_STATUS_ID> 0) {
                            $this->order_status = MODULE_PAYMENT_CASH_ORDER_STATUS_ID;
                    }

                    if (is_object($order))
                            $this->update_status();

                    $this->email_footer = MODULE_PAYMENT_CASH_TEXT_EMAIL_FOOTER;
            }

            function update_status() {
                    global $order;

                    if ($_SESSION['shipping']['id'] != 'selfpickup_selfpickup') {
                            $this->enabled = false;
                    }

                    if (($this->enabled == true) && ((int) MODULE_PAYMENT_CASH_ZONE> 0)) {
                            $check_flag = false;
                            $check_query = xtc_db_query("select zone_id from ".TABLE_ZONES_TO_GEO_ZONES." where geo_zone_id = '".MODULE_PAYMENT_CASH_ZONE."' and zone_country_id = '".$order->billing['country']['id']."' order by zone_id");
                            while ($check = xtc_db_fetch_array($check_query)) {
                                    if ($check['zone_id'] <1) {
                                            $check_flag = true;
                                            break;
                                    }
                                    elseif ($check['zone_id'] == $order->billing['zone_id']) {
                                            $check_flag = true;
                                            break;
                                    }
                            }

                            if ($check_flag == false) {
                                    $this->enabled = false;
                            }
                    }
            }

            function javascript_validation() {
                    return false;
            }

            function selection() {
                    return array ('id' => $this->code, 'module' => $this->title, 'description' => $this->info);
            }

            function pre_confirmation_check() {
                    return false;
            }

            function confirmation() {
                    return array ('title' => MODULE_PAYMENT_CASH_TEXT_DESCRIPTION);
            }

            function process_button() {
                    return false;
            }

            function before_process() {
                    return false;
            }

            function after_process() {
                    global $insert_id;
                    if ($this->order_status)
                            xtc_db_query("UPDATE ".TABLE_ORDERS." SET orders_status='".$this->order_status."' WHERE orders_id='".$insert_id."'");

            }

            function get_error() {
                    return false;
            }

            function check() {
                    if (!isset ($this->_check)) {
                            $check_query = xtc_db_query("select configuration_value from ".TABLE_CONFIGURATION." where configuration_key = 'MODULE_PAYMENT_CASH_STATUS'");
                            $this->_check = xtc_db_num_rows($check_query);
                    }
                    return $this->_check;
            }

            function install() {
                    xtc_db_query("insert into ".TABLE_CONFIGURATION." ( configuration_key, configuration_value,  configuration_group_id, sort_order, set_function, date_added) values ('MODULE_PAYMENT_CASH_STATUS', 'True', '6', '1', 'xtc_cfg_select_option(array(\'True\', \'False\'), ', now());");
                    xtc_db_query("insert into ".TABLE_CONFIGURATION." ( configuration_key, configuration_value,  configuration_group_id, sort_order, date_added) values ('MODULE_PAYMENT_CASH_ALLOWED', '',   '6', '0', now())");
                    xtc_db_query("insert into ".TABLE_CONFIGURATION." ( configuration_key, configuration_value,  configuration_group_id, sort_order, date_added) values ('MODULE_PAYMENT_CASH_SORT_ORDER', '0', '6', '0', now())");
                    xtc_db_query("insert into ".TABLE_CONFIGURATION." ( configuration_key, configuration_value,  configuration_group_id, sort_order, use_function, set_function, date_added) values ('MODULE_PAYMENT_CASH_ZONE', '0',  '6', '2', 'xtc_get_zone_class_title', 'xtc_cfg_pull_down_zone_classes(', now())");
                    xtc_db_query("insert into ".TABLE_CONFIGURATION." ( configuration_key, configuration_value,  configuration_group_id, sort_order, set_function, use_function, date_added) values ('MODULE_PAYMENT_CASH_ORDER_STATUS_ID', '0', '6', '0', 'xtc_cfg_pull_down_order_statuses(', 'xtc_get_order_status_name', now())");
            }

            function remove() {
                    xtc_db_query("delete from ".TABLE_CONFIGURATION." where configuration_key in ('".implode("', '", $this->keys())."')");
            }

            function keys() {
                    return array ('MODULE_PAYMENT_CASH_STATUS', 'MODULE_PAYMENT_CASH_ALLOWED', 'MODULE_PAYMENT_CASH_ZONE', 'MODULE_PAYMENT_CASH_ORDER_STATUS_ID', 'MODULE_PAYMENT_CASH_SORT_ORDER');
            }
    }
    ?>


    Linkback: https://www.modified-shop.org/forum/index.php?topic=8776.0

    ARS

    • Fördermitglied
    • Beiträge: 345
    • Geschlecht:
    Re: Barzahlung für mehrere Selbstabholungsmodule aktivieren
    Antwort #1 am: 09. Dezember 2015, 09:21:12
    Hallo zusammen,

    an genau der gleichen Frage hänge ich auch gerade.

    @konuan: Hast du hier des Rätsels Lösung finden können?

    Oder hat sonst jemand eine Idee?

    Vielen Dank

    LG

    hendrik

    • Experte
    • Beiträge: 2.038
    Re: Barzahlung für mehrere Selbstabholungsmodule aktivieren
    Antwort #2 am: 09. Dezember 2015, 11:00:56
    Schreib mal vor das "if ($_SESSION['shipping']['id'] != 'selfpickup_selfpickup')" folgende Zeile:

    Code: PHP  [Auswählen]
    echo '$_SESSION[shipping][id]='.$_SESSION['shipping']['id']."<br>\n";  

    Jetzt klicke die verschiedenen Selbstabholungsmodule durch und notiere dir die angezeigten Werte.

    Nun formuliere die IF-Abfrage um.

    Code: PHP  [Auswählen]
     
    if(  ($_SESSION['shipping']['id'] != [erster notierter Selfpickup-Wert] )
        && ($_SESSION['shipping']['id'] != [zweiter notierter Selfpickup-Wert] )
         && ($_SESSION['shipping']['id'] != [dritter notierter Selfpickup-Wert] )
        u.s.w.
      ) {
     

    Gruß
    Hen

    PS: Nicht getestet

    ARS

    • Fördermitglied
    • Beiträge: 345
    • Geschlecht:
    Re: Barzahlung für mehrere Selbstabholungsmodule aktivieren
    Antwort #3 am: 09. Dezember 2015, 12:07:59
    Danke dir hendrik,

    ergibt leider eine weisse Seite :-/

    Code: PHP  [Auswählen]
    echo '$_SESSION[shipping][id]='.$_SESSION['shipping']['id']."<br>\n";  
    if(  ($_SESSION['shipping']['id'] != [selfpickup] )
        && ($_SESSION['shipping']['id'] != [selfpickupsil] )
         && ($_SESSION['shipping']['id'] != [selfpickupsilpank] ) {
                            $this->enabled = false;
                   

    Ich habs nochmal getestet a la [selfpickup_selfpickup] - gleiche Ergebniss

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Re: Barzahlung für mehrere Selbstabholungsmodule aktivieren
    Antwort #4 am: 09. Dezember 2015, 12:54:17
    Weiße Seite -> Error reporting anstellen https://www.(( Wir dulden keine kommerziellen Werbelinks - Bitte Forenregeln beachten! ))/de/post/error-reporting-im-modified-shop-aktivieren

    oder ins error log des Webservers schauen

    hendrik

    • Experte
    • Beiträge: 2.038
    Re: Barzahlung für mehrere Selbstabholungsmodule aktivieren
    Antwort #5 am: 09. Dezember 2015, 13:05:31
    Synatxfehler
    Code: PHP  [Auswählen]
    if(  ($_SESSION['shipping']['id'] != ['selfpickup'] )
        && ($_SESSION['shipping']['id'] != ['selfpickupsil'] )
         && ($_SESSION['shipping']['id'] != ['selfpickupsilpank'] ) ) {
                            $this->enabled = false;

    Gruß
    Hen

    ARS

    • Fördermitglied
    • Beiträge: 345
    • Geschlecht:
    Re: Barzahlung für mehrere Selbstabholungsmodule aktivieren
    Antwort #6 am: 09. Dezember 2015, 18:34:46
    Danke Hendrik für deine Hilfe!

    Nun ist die weisse Seite weg, aber leider erscheint die "Barzahlung bei Abholung" auch nicht.

    Die Original funktioniert, einwandfrei, nur bei den vervielfältigungen gehts nicht :-/

    ARS

    • Fördermitglied
    • Beiträge: 345
    • Geschlecht:
    Re: Barzahlung für mehrere Selbstabholungsmodule aktivieren
    Antwort #7 am: 09. Dezember 2015, 20:26:52
    Kleiner Nachtrag hierzu:

    Ich habe jetzt einfach die cash.php vervielfacht und jeweils bei 'selfpick_selfpickup' die Werte der einzelnen Versandarten reingeschrieben. Danach alle installiert und nun gehts.

    Danke nochmal für die Hilfe.
    1 Antworten
    1979 Aufrufe
    25. Mai 2011, 13:44:01 von Tomcraft
    7 Antworten
    5255 Aufrufe
    09. Juli 2016, 14:31:01 von Teratek
    7 Antworten
    3926 Aufrufe
    08. April 2011, 10:22:15 von Tomcraft
    7 Antworten
    5997 Aufrufe
    30. Mai 2015, 11:01:38 von cplasa