Mam taki problem, otóż dodałem kilka dodatkowych pól do opisu produktu, i teraz chciałbym, aby wartość tych pól była również wysyłana na maila, podczas gdy user kliknie "zamawiam produkt"
Dodatkowe pole musisz przekazać do funkcji wysyłającej mail. Może jest prostszy sposób ale u mnie wygląda to mniej więcej tak: 1. w funkcji saveBasket dodajesz swoje zmienne 2. w funkcji addOrder równiez dodajesz swoje zmienne 3. uzupełniasz funkcje sendEmailWithOrderDetails 4. uzupelniasz _fields.php
Znalazłem już funkcje, ale nie bardzo wiem w jaki sposób dodać moje zmienne. Mam tutaj ta funkcję: [code]public function saveBasket( $aData, $bAdd = null ){ if( isset( $aData ) && is_array( $aData ) ){ $iOrder = $_SESSION['iCustomer'.LANGUAGE]; $oFFS = FlatFilesSerialize::getInstance( ); $oProduct = Products::getInstance( );
Widzę że wgl moje pole sField2 nie jest przekazywane dalej (w tym podsumowaniu zamówienia) wyświetlam: <dt class="email">$lang[sField2]:</dt><dd class="email">$aOrder[sField2]</dd> ale się nie wyświetla, a więc tak jakby coś źle zrobiłem w funkcji saveBasket
Pełnego rozwiązania nie mogę Ci podać. Była to płatna modyfikacja dla innego klienta i byłoby nie w porządku gdybym podał tu pełne rozwiązanie. Mała podpowiedź. 1. Zerknij na mój pierwszy post. Tam są cztery punkty, w tym ważny 2 i 4 2. W _fields.php zmianę zrobiłem nie w jednym ale w 2 lub 3 miejscach.
Nie, nie. Nawet bym nie chciał pełnego rozwiązania, bo bym miał zero frajdy ;) Nie rozumiem takiego zapisu: $oProduct->aProducts[$iProduct]['sField3'] tzn. dlaczego nieraz jest o, a lub i przed Product?
Wydaje mi się że w _fields.php podaję dobrze, tak samo w funkcji saveBasket, natomiast w funkcji addOrder, dodaję tak: 'sField3' => $aData['sField3']
I dodałem, aby wyświetlało wartość tego pola (wartość jest podawana przez admina w momencie dodawania produktu), w kroku 3 przy składaniu zamówienia, ale tam też nie wyświetla.
Cały czas mam problem z funkcją saveBasket. Ogólnie sprawdziłem na przykładzie fPrice - faktycznie jak usunę to pole z funkcji saveBaket - cena nie idzie do koszyka, dodaje więc do tej tablicy moje pole sField3, dokładnie w tych samych miejscach w pliku _field.php gdzie znajduje się fPrice, dodaję sField3, ale mimo to moje pole nie jest przekazywane do kroku order_step3.tpl
Udało mi się zrobić z funkcją saveBasket, pole sField3 jest przekazywane, jednak co w przypadku gdy klient dokona zakupu 2 lub więcej produktów, które mają pole sField3? Bo wtedy idzie tylko wartość pola ostatniego produktu dodanego do koszyka, a musiałby iść z wszystkich produktów.
Coś źle zrobiłeś lub ja nie rozumiem Twoich zmian. Zerknij na to zdjęcie http://www.rhh.pl/files/mahla_sku.jpg Tu Klient zamówił dodatkowe pole o nazwie SKU (indywidualny kod towaru) Każdy produkt ma swój własny kod SKU nadawany przez Klienta w momencie tworzenia produktu (lub później) Ten kod przechodzi przez cały proces zamówienia (ilość produktów w koszyku nie ma tu znaczenia). Mało tego, "idzie" dalej bo widać go na generowanej fakturze (dodatkowa opcja w tym projekcie) To wszystko (za wyjątkiem generowania faktury pdf) zostało zrobione w ramach opisanych na początku 4 punktów.
Ja z kolei dodaję to pole (numer porównawczy) w tym miejscu: http://jakubkaczmarek.unixstorm.org/forumweb/ag.jpg czyli trzeba kliknąć na konkretny produkt. I teraz tak: (sField3) 1. W funkcji saveBasket zmodyfikowałem tylko linijkę z tablicą, czyli: $aBasket[$iOrder][$iProduct] = Array( 'iQuantity' => (int) $iQuantity, 'fPrice' => $oProduct->aProducts[$iProduct]['mPrice'], 'sName' => $oProduct->aProducts[$iProduct]['sName'], 'sField3' => $oProduct->aProducts[$iProduct]['sField3'], 'nip: ' => $sData2[$iProduct]);
4. W plik _fields.php dodałem do następujących tablic: $aPaymentsShippingFields $aOrdersFields $aOrdersExtFields $aOrdersProductsFields $aOrdersTempFields
5. W podsumowaniu (czyli tam gdzie wyświetla się tylko jeden numer porównawczy), wyświetlam go w taki sposób: <dt class="email">$lang[sField3]:</dt><dd class="email">$aData[sField3]</dd> - i może tu jest pies pogrzebany?
Tzn. podzieliłem to Sobie na dwa etapy, a wiec najpierw niech chociaż uda mi się zapisywać i przekazywać dalej - udało się, dzięki Twojej pomocy :) A drugi etap - wysyłanie, no właśnie domyślam się, że musiałbym przekazać tą zmienną do zmiennych funkcji e-mail w pierwszej linii: public function sendEmailWithOrderDetails($sFile, $iOrder, $bSendToCustomer = null ){
No ale jak dodam $aData[sField3] to na stronce wyskakuje error, a jak dodam samo $aData to i tak to nic nie daje.