Dziś po raz pierwszy otrzymałem zamówienie, w którym klient wpisał nazwę firmy w cudzysłowie "Firma_XXX". W e-mailu przyszło: Imię Nazwisko Firma: "Firma_XXX" ... Sprawdziłem zaraz na QC-4. To samo. Wygląda paskudnie. Rozwiązanie: QC-3 i QC-4: w pliku /core/orders.php na samym dole w funkcji sendEmailWithOrderDetails pod linijką: $aData=$this->throwOrder($iOrder); wpisać: $aData['sCompanyName']=html_entity_decode($aData['sCompanyName']); to samo (jeśli jest zainstalowany) w pluginie sendOrderToClient.
Można to też rozwiązać dodając w headerze e-maila w funkcji sendEmail (core/common.php) takie coś: 'Content-type:text/html;charset=UTF-8' Ale wtedy trzeba dodatkowo pogrzebać w templatce orders_print.tpl Inaczej e-mail się "rozjeżdża" (po prostu trzeba wstawić w odpowiednie miejsca <br/> aby wszystkie dane zamówienia nie były w jednej linii)
Heute bekam ich eine Bestellung von einem Kunden, der seinen Firmenname in die Apostrophe einfügte: "Seine Firma" In der angekommenen E-mail sah das häßlich aus: "Seine Firma" Habe sofort im QC-4 probiert: das gleiche. Die Lösung: im core/orders.php ganz unten in der Funktion sendEmailWithOrderDetails unter der Zeile: $aData=$this->throwOrder($iOrder); muß man einfügen: $aData['sCompanyName']=html_entity_decode($aData['sCompanyName']); Das gleiche gilt, wenn das Plug-In sendOrderToClient installiert ist. Man kann es auch anders lösen: im Header der mail Funktion (core/common.php) folgendes hinzufügen: 'Content-type:text/html;charset=UTF-8' Aber dann ist noch Arbeit in der Template orders_print.tpl angesagt - in die richtigen Plätze <br/> hinzufügen, sonst kommt die E-mail ohne Zeilenumbrüche an.
Jest w /core/orders.php funkcja: sendEmailWithOrderDetails a w niej linijka: $aSend['sMailContent'] = preg_replace( '/\|n\|/', "\n", $oTpl->tBlock( $sFile, 'ORDER_EMAIL_BODY' ) );
dodaj pod tą linijką: $aSend['sMailContent']=html_entity_decode($aSend['sMailContent']);
przy cenie chcesz grosze jako indeks górny? :) W oryginale przy wysyłaniu meila nie są obsługiwane znaczniki html, jeśli je dopisałeś i chcesz aby były wyświetlane to musisz zrobić zmiany w funkcji sendEmail
Chciałbym się ich pozbyć ponieważ na stronie głównej potrzebowałem tylko indeksu górnego a niestety otrzymałem efekt w całym skrypcie sklepu. Jest na to jakieś rozwiązanie ?
Myślałem żeby zrobić np na stronie głównej tam gdzie ma być indeks górny kopie tego czegoś co wyświetla cenę czyli: $aData[sPrice] np. żeby było $aData[sPrice2] a wtedy w całej pozostałości była by cena bez indeksu górnego. Tylko problem w tym że nie wiem gdzie tego szukać. Cenę z końcówką w indeksie górnym otrzymałem poprzez edycję pliku common.php za pomocą:
Jest w core/orders.php funkcja sendEmailWithOrderDetails w niej jest: $aData['sProducts']=$this->listProducts($sFile,$iOrder,'EMAIL_'); i tu dostajesz cenę z dobrodziejstwem inwentarza dodanego przez twoją funkcję displayPrice. Dlatego pod tą linijką: $aData['sProducts']=$this->listProducts($sFile,$iOrder,'EMAIL_'); dodaj linijkę czyszczącą z tagów html: $aData['sProducts']=strip_tags($aData['sProducts']); Nie testowałem, ale powinno zadziałać.
Oczywiście mowie tu o użytkowniku Selekcjoner, dziękuje serdecznie boboo za chęć pomocy ale to rozwiązanie które dal Selekcjoner pomogło i spełniło moje oczekiwania. Jeszcze raz dziękuję i Selekcjoner i boboo.
Działa ona bardzo dobrze zamieniając " na ", ale podczas gdy nie uzupełni się pola Firma na stronie oprócz normalnego potwierdzenia zamówienia wyświetlany jest napis: Notice: Undefined index: sCompanyName in /home/fasola/domains/hurtownia-kaletnicza.pl/public_html/core/orders.php on line 517