Hallo,
wir verwenden modified eCommerce Shopsoftware v1.05 dated: 2010-07-18 SP1b.
Als wir wieder einmal einen Newsletter versenden wollten, bemerkten wir, das sehr viele Empfänger als Gast geführt wurden, von denen wir aber wusten , das sie eigentlich zur Gruppe der Kunden gehören sollten.
In der "Customers"-Tabelle steht die Gruppe auch korrekt , aber in der Tabelle "newsletter_recipients" nicht. Dort sind sie als Gast geführt.
In der Classe Newsletter in der Datei "class.newsletter.php" wird der Status aus der Session abgefragt:
function AddUser
($check,$postCode,$mail) {// global $db; // Check if email exists $this->generateCode(); if (($check == 'inp') && (($postCode == $_SESSION['vvcode'] && $_SESSION['vvcode']!='') || $this->auto==true)) { $check_mail_query = xtc_db_query
("select customers_email_address, mail_status from ".TABLE_NEWSLETTER_RECIPIENTS
." where customers_email_address = '".xtc_db_input
($mail)."'"); if (!xtc_db_num_rows
($check_mail_query)) { if (isset ($_SESSION['customer_id'])) { $customers_id = $_SESSION['customer_id']; $customers_status = $_SESSION['customers_status']['customers_status_id']; $customers_firstname = $_SESSION['customer_first_name']; $customers_lastname = $_SESSION['customer_last_name']; } else { $check_customer_mail_query = xtc_db_query
("select customers_id, customers_status, customers_firstname, customers_lastname, customers_email_address from ".TABLE_CUSTOMERS
." where customers_email_address = '".xtc_db_input
($mail)."'"); if (!xtc_db_num_rows
($check_customer_mail_query)) { $customers_id = '0'; $customers_status = '1'; $customers_firstname = TEXT_CUSTOMER_GUEST
; $customers_lastname = ''; } else { $check_customer = xtc_db_fetch_array
($check_customer_mail_query); $customers_id = $check_customer['customers_id']; $customers_status = $check_customer['customers_status']; $customers_firstname = $check_customer['customers_firstname']; $customers_lastname = $check_customer['customers_lastname']; } } Zu diesem Zeitpunkt besteht der Eintrag "customers_id" in der Session schon aber enthält noch die Gruppe Gast. Obwohl schon der Status Kunde in die Datenbank geschrieben wurde.
Array ( [tracking
] => Array ( [ip
] => ....... [date] => 2012-02-26 14:25:02 [browser
] => Mozilla
/5.0 (Windows NT
6.0; rv
:10
.0
.2
) Gecko
/20100101 Firefox
/10
.0
.2
[pageview_history
] => Array ( [0] => [1] => Array ( [scheme
] => http
[host
] => www
........at
[path
] => /index
.php
) [2] => Array ( [scheme
] => https
[host
] => www
.......at
[path
] => /create_account
.php
) [3] => Array ( [scheme
] => https
[host
] => www
.......at
[path
] => /create_account
.php
) [4] => Array ( [scheme
] => https
[host
] => www
.......at
[path
] => /create_account
.php
) ) ) [language
] => german
[languages_id
] => 2 [language_charset
] => iso
-8859-15 [language_code
] => de
[currency
] => EUR
[customers_status
] => Array ( [customers_status_id
] => 1 [customers_status_name
] => Gast
[customers_status_image
] => guest_status
.gif
[customers_status_discount
] => 0.00 [customers_status_public
] => 1 [customers_status_min_order
] => 0 [customers_status_max_order
] => 0 [customers_status_ot_discount_flag
] => 0 [customers_status_ot_discount
] => 0.00 [customers_status_graduated_prices
] => 0 [customers_status_show_price
] => 1 [customers_status_show_price_tax
] => 1 [customers_status_add_tax_ot
] => 0 [customers_status_payment_unallowed
] => invoice
[customers_status_shipping_unallowed
] => [customers_status_discount_attributes
] => 0 [customers_fsk18
] => 1 [customers_fsk18_display
] => 1 [customers_status_write_reviews
] => 1 [customers_status_read_reviews
] => 1 ) [cart
] => shoppingCart Object
( [contents
] => Array ( ) [total
] => 0 [weight
] => 0 [content_type
] => ) [account_type
] => 0 [magnaIsInstalled
] => 1 [metatitleid
] => Konto_erstellen
[metatitle
] => Konto erstellen
[actual_content
] => Array ( [] => Array ( [qty
] => 0 ) ) [customer_id
] => 13222 [customer_first_name
] => Max [customer_last_name
] => Mustermann
[customer_default_address_id
] => 14218 [customer_country_id
] => 14 [customer_zone_id
] => 95 [customer_vat_id
] => [customer_gender
] => m
) Entweder habe ich etwas übersehen, oder ich habe einen Denkfehler.
Wäre es nicht besser, die Kundengruppe einfach aus der Datenbank zu siehen, wie es ein paar Zeilen darunter gemacht wird und die ganze IF-Abfrage darauf zu reduzieren, ob der Kunde in der DB existiert oder nicht - also nur den inneren Teil. Dann würde auf jeden Fall die korrekte Gruppe in die Tabelle "newsletter_recipients" geschrieben werden.
Ich hoffe ich habe mich nicht zu umständlich ausgedrückt.
Ich bin für jeden Tipp dankbar.
Grüße
Rene
Linkback: https://www.modified-shop.org/forum/index.php?topic=18498.0