Inny email do admina i inny do kupujcego QC ver.6.0

pisiorek

Avatar: pisiorek

2013-01-09 09:21

Kilkanaście dni temu przewijał się na forum temat zróżnicowania wiadomości wysyłanych do aministratora i klienta w wersji Quick Cart 5.2. Było to wyjaśnione w tamtym temacie przystępnie i zrozumiale przez kolegę boboo. Próbuję przesiąść się na wersję 6.0 i z tego co zauważyłem sposobu opisanego przez boboo nie można przenieść na wersję 6.0. Choćby z tego powodu, że katalog templates nie zawiera już plików *.tpl tylko *.php. Czy mógłby ktoś światły zrobić bładzącym w ciemnościach kodu jakiś tutorial ? Pozdrawiam

» Quick.Cart v6.x

pi

boboo

Avatar: boboo

2013-01-09 11:20

Fakt, kiedyś (w tpl'ach) było to jakby łatwiej.
Teraz musisz jakby podwoić funkcję sendEmailWithOrderDetails() w /core/orders.php
W zależności od tego, czy $bSendToCustomer==true wysyłasz jeden albo dwa e-maile (przy true idą dwa: jeden do admina, jeden do klienta).
Musisz stworzyć dodatkowy array $aSend (np. $aSendCustomer) i wstawić w niego na wzór $aSend potrzebne zmienne w odpowiednim formacie a następnie wrzucić go do wysyłki pod statementem if $bSendToCustomer==true
Na pierwszy rzut oka wygląda brrr, ale jak uporządkujesz tę funkcję (ładnie wyrównać enterami i tabami) to nie jest tak źle.

www.kimla.de

boboo

Avatar: boboo

2013-01-09 12:12

$lang['Order_customer_email_head'].
"\n------------------------\n".
$lang['Order_customer_personal'].
"\n------------------------\n".
$aData['sFirstName'].' '.$aData['sLastName'].
(isset(
$aData['sCompanyName'])?
 
"\n".$aData['sCompanyName']
 :
null).
"\n".
$aData['sStreet']."\n".
$aData['sZipCode'].' '.$aData['sCity']."\n".
$aData['sPhone']."\n".
$aData['sEmail'].
(isset(
$aData['sComment'])?
 
"\n\n".$lang['Comment'].': '.$aData['sComment']
 :
null
).
"\n------------------------\n".
$lang['Order_customer_products'].
"\n------------------------".
$sProducts."\n------------------------\n".
(isset(
$aData['iShipping'])?
 
$lang['Order_customer_shipping'].
 
"\n------------------------\n".
 
$aData['mShipping'].' ('.$aData['mPayment'].') = '.$this->aOrders[$iOrder]['sPaymentShippingPrice'].' '.$config['currency_symbol']."\n\n"
 
:null
).
$lang['Summary_cost'].': '.$this->aOrders[$iOrder]['sOrderSummary'].' '.$config['currency_symbol'].
"\n------------------------\n".
$lang['Order_customer_email_foot']



Wygląda dużo lepiej :-)

www.kimla.de

pisiorek

Avatar: pisiorek

2013-01-09 13:43

Dzięki wielkie za wsparcie, jakoś to zrobiłem, ale mam prośbę abyś sprawdził poniższy kod całej funkcji, czy jest ok. Obawiam się, czy nie popełniłem jakiegoś błędu, który się w tej chwili nie ujawnił, a gdzieś coś psuje w innym miejscu skryptu, a ja o tym nie wiem. Maile dochodzą, ale są w jednej linii - jednym cięgiem bez entera, co zmienić żeby sformatować to poprawnie ?
Kod funkcji:

public function sendEmailWithOrderDetails( $iOrder, $bSendToCustomer = null ){
global $lang, $config;

$aData = $this->throwOrder( $iOrder );

$sProducts = $this->listProducts( $iOrder, true );
$aData['sOrderSummary'] = $this->aOrders[$iOrder]['sOrderSummary'];
$aUrls = throwSiteUrls( );
$sOrderUrlEmail = $aUrls['sHomeUrl'].$GLOBALS['oPage']->aPages[$config['order_print']]['sLinkName'].'&sKey='.$this- >throwOrderKey( $aData );

$aSend['sMailContent'] = preg_replace( '/\|n\|/', "\n", $lang['Order_customer_email_head']."\n------------------------\n".$lang['Order_customer_personal'].&qu ot;\n------------------------\n".$aData['sFirstName'].' '.$aData['sLastName'].( isset( $aData['sCompanyName'] ) ? "\n".$aData['sCompanyName'] : null )."\n".$aData['sStreet']."\n".$aData['sZipCode'].' '.$aData['sCity']."\n".$aData['sPhone']."\n".$aData['sEmail'].( isset( $aData['sComment'] ) ? "\n\n".$lang['Comment'].': '.$aData['sComment'] : null )."\n------------------------\n".$lang['Order_customer_products']."\n------------------------".& #36;sProducts.( isset( $_SESSION['oneDiscount'] ) ? "\n-------\n".$lang['Info_discount'].''.$config['discount_percent'].'%' : null )."\n------------------------\n".( isset( $aData['iShipping'] ) ? $lang['Order_customer_shipping']."\n------------------------\n".$aData['mShipping'].' ('.$aData['mPayment'].') = '.$this->aOrders[$iOrder]['sPaymentShippingPrice'].' '.$config['currency_symbol']."\n\n" : null ).$lang['Summary_cost'].': '.$this->aOrders[$iOrder]['sOrderSummary'].' '.$config['currency_symbol']."\n------------------------\n".$lang['Check_order_status_url']."\n&q uot;.$sOrderUrlEmail."\n-------------------\n".$lang['Order_customer_email_foot'] );
$aSend['sTopic'] = $lang['Order_customer_info_title'].$iOrder;
$aSend['sSender'] = $GLOBALS['config']['orders_email'];

/* to jest oryginał
if( $bSendToCustomer === true )
sendEmail( $aSend, null, $aData['sEmail'] );
*/

if( $bSendToCustomer === true ){ // to dodałem
$aSendCustomer['sMailContent'] =
$lang['Order_customer_email_head'].
"\n------------------------\n".
$lang['Order_customer_personal'].
"\n------------------------\n".
$aData['sFirstName'].' '.$aData['sLastName'].
(isset($aData['sCompanyName'])?
"\n".$aData['sCompanyName']
:null).
"\n".
$aData['sStreet']."\n".
$aData['sZipCode'].' '.$aData['sCity']."\n".
$aData['sPhone']."\n".
$aData['sEmail'].
(isset($aData['sComment'])?
"\n\n".$lang['Comment'].': '.$aData['sComment']
:null
).
"\n------------------------\n".
$lang['Order_customer_products'].
"\n------------------------".
$sProducts."\n------------------------\n".
(isset($aData['iShipping'])?
$lang['Order_customer_shipping'].
"\n------------------------\n".
$aData['mShipping'].' ('.$aData['mPayment'].') = '.$this->aOrders[$iOrder]['sPaymentShippingPrice'].' '.$config['currency_symbol']."\n\n"
:null
).
$lang['Summary_cost'].': '.$this->aOrders[$iOrder]['sOrderSummary'].' '.$config['currency_symbol'].
"\n------------------------\n".
$lang['Order_customer_email_foot'].
$lang['Check_order_status_url']."\n".$sOrderUrlEmail;

$aSendCustomer['sTopic'] = $lang['Order_customer_info_title'].$iOrder;
$aSendCustomer['sSender'] = $GLOBALS['config']['orders_email'];

sendEmail( $aSendCustomer, null, $aData['sEmail'] );
}

pi

pisiorek

Avatar: pisiorek

2013-01-09 13:51

Z formatowaniem wyglądu maili sobie poradziiłem, prośba tylko o sprawdzenie samej funkcji, czy nie ma tam jakiegoś babola.

pi

exite

Avatar: exite

2013-01-14 15:44

W którym miejscu należy umieścić ten kod który podał boboo ?

fler

Avatar: fler

2013-03-03 15:07

@exite - w plikach stylu którego używasz w sklepie.

http://www.zamurowany.pl

jakub_kaczmarek

Avatar: jakub_kaczmarek

2013-10-24 12:45

Czy idzie jeszcze to: <!-- BEGIN EMAIL_PRODUCTS --><!-- START LIST --> odróżnić klient/admin

Do góry
o nas | kontakt