Witam,
W jednym wątku napiszę o moich dwóch bolączkach, z którymi niestety nie mogę sobie poradzić w preście 1.4.9.0.
1. WYBÓR METODY PŁATNOŚCIMam dwie możliwości: albo
Płatne przy odbiorze lub
Zapłać przez PayU.pl.Domyślnie moduły są zrobione tak by wyświetlał się obrazek w wielkim bloku. Postanowiłem to zmienić na pola wyboru typu
input radio oraz dołożenie przycisku
Potwierdzam, który ma za zadanie przenieść nas na odpowiednią stronę w zależności od dokonanego wyboru.
W templatce
order-payment.tpl wyrzuciłem
<div id="HOOK_PAYMENT">{$HOOK_PAYMENT}</div>, a zamist jego wpisałem poniższy kod:
<form method="get" name="platnosc">
<table>
<tr>
<td class="carrier_action radio"><input type="radio" name="platnosc" id="platnosc" value="odbior" onclick="java script:second_choice('odbior');" checked="checked" /></td>
<td><a style="padding-left: 10px; color: #444444; text-decoration: none; font: normal normal 400 11px/16px Tahoma;" href="{$this_path_ssl}validation.php" title="{l s='Pay with cash on delivery (COD)' mod='cashondelivery'}">{l s='Płatne przy odbiorze ' mod='cashondelivery'}</a></td>
</tr>
<tr style="background-color: #F1F2F4; text-align: left;">
<td class="carrier_action radio"><input type="radio" name="platnosc" id="platnosc" value="c_payu" onclick="java script:second_choice('c_payu');" /></td>
<td style="padding-left: 10px; width: 100%; height: 40px;"><a style="color: #444444; text-decoration: none; font: normal normal 400 11px/16px Tahoma; padding: 0 10 10 1px" href="{$module_dir}payment.php" title="{l s='Zapłać przez PayU.pl' mod='payu'}" style="overflow: hidden" >Zapłać przez PayU.pl</a></td>
</tr>
</table>
</form>
<div id="choice_odbior" >
<div style="display:block; float:left; width:100%; height:60px; padding:10px; clear:both; ">
<a href="{$this_path_ssl}validation.php" class="button_large" style=" display:block; float:left; clear:left; background:#99CC00; width:130px; height:30px; line-height:30px;padding:0 10px;">{l s='Potwierdzam' mod='cashondelivery'}</a>
</div>
</div>
<div id="choice_payu" style="display:none;">
<div style="display:block; float:left; width:100%; height:60px; padding:10px; clear:both; ">
<a href="{$module_dir}payment.php" class="button_large" style=" display:block; float:left; clear:left; background:#99CC00; width:130px; height:30px; line-height:30px;padding:0 10px;">{l s='Potwierdzam' mod='cashondelivery'}</a>
</div>
</div>
<script type="text/javascript">
function second_choice(type)
{
var choice_odbior = document.getElementById('choice_odbior');
var choice_payu = document.getElementById('choice_payu');
switch(type)
{
case 'c_payu':
choice_odbior.style.display = 'none';
choice_payou.style.display = 'block';
break;
case 'odbior':
choice_odbior.style.display = 'block';
choice_payu.style.display = 'none';
break;
}
}
</script>
Czyli w założeniu polegać ma na tym, że po zaznaczeniu odpowiedniego pola, ma się pojawiać blok z odpowiednim przyciskiem
choice_odbior lub
choice_payu. Probelm polega na tym, że bloki się nie zmieniają, cały czas wyświetla się ten, który nie jest ukryty. A ja niestety nie mam pojęcia co jest nie tak
2. WYBÓR MIEJSCA ODBIORU OSOBISTEGODrugi problem polega na tym, że chciałem zrobić przy wyborze Odbioru osobistego listę rozwijaną z nazwą miasta, w której miałby być towar odebrany i adres placówki automatycznie byłby wysłany do klienta po złożeniu zamówienia. Z naczytanych się tematów, doszedłem jednak do wniosku, że z tym jest więcej problemu niż pożytku, więc wpadłem na inny pomysł.
Otóż, w założeniu chciałbym aby po złożeniu zamówienia, w informacji jaka zostanie przesłana klientowi był również adres sklepu najbliżej jego zamieszkania. Wykombinowałem, że można by było wykorzystać
{delivery_postal_code} oraz
{carrier}w /mails/order_conf.html zaraz pod polem
Wysyłka. Ogólny zaryz algorytmu:
if ( {carrier} == odbiór osobisty) {
if ( {delivery_postal_code} == 55 | 59 | 57 ) // sprawdza tylko dwie pierwsze liczby i porównuje
echo "odbierz paczkę we wrocławiu;
if ( {delivery_postal_code} == 62 | 64 )
echo "odbierz paczkę w poznaniu;
if ( {delivery_postal_code} == 06 | 26 | 25 )
echo "odbierz paczkę w warszawie;
}
else
{carrier}
Niestety nie wiem jak się dobrać do tych danych. A nawet jak się dobiorę, to aby się wykonał kod PHP muszę zmienić rozszerzenie pliku z html na php, co za sobą ciągnie, jak podejrzewam zmienienie również funkcji odpowiadającej za wysłanie, której to nie wiem gdzie się znajduje i co tam zmienić by się nie wysypało.
Pomysł wydaje mi się ok, i jest chyba bardziej bezpieczny od kombinowania z listą rozwijaną przy odbiorze osobistym. A może się mylę?
Także jeśli ktoś wie, to prosiłbym o wskazówki jak rozwiązać te dwa punkty.