Polskie wsparcie PrestaShop
PrestaShop => PrestaShop 1.6 => Wątek zaczęty przez: grany w Kwiecień 20, 2017, 01:43:17 pm
-
Witam,
Mam pewien problem, a mianowicie, wpadł mi do głowy pewien pomysł, ale jako laik w programowaniu nie wiem jak go wcielić w życie.
W sklepie mamy wybór koloru towaru i jego personalizacji (tekst),
atrybuty kolor: zółty, niebieski
Personalizacja jest jako radio z opcjami tak, nie, opcja Tak podnosi cene o x złotych.
Mam moduł, który pojawia się pod buttonem dodaj do koszyka i pozwala wpisać i zapisać tekst personalizacji.
Czy jest opcja, żeby ten moduł pojawiał się tylko po wybraniu Personalizacja "tak"?
Podejrzewam, że będzie potrzebny jakiś warunek, ale szczerze nie do końca ogarniam php i smarty.
Szukam tylko odpowiedniego {if} - jak wiadomo po zmianie atrybutu cena wzrasta, ten sam warunek mógłby być do wyświetlenia albo nie bloku z modułem, tylko gdzie go znaleźć?
Próbowałem {if $product->id_product_attribute == 18} (atrybut tak ma id 18) ale nie działa nie ważne czy klikne tak czy nie
Pozdrawiam
Jakub
-
Źle szukasz do pokazywania / ukrywania elementów strony służy Jquery - javascript. Poczytaj o funkcjach onclick np. Modyfikujesz plik product,js
-
Adres strony z produktem i personalizacja:
http://supron1.pl/sklep/glowna/1-kominiarka-strazacka-eagle-fr-pro-pbi.html
Pod koszykiem jest moduł personalizacji. (customize)
Powiem szczerze, że z js mam jeszcze mniej do czynienia niż z php...
Pewnie gdzieś po tym kodzie, bo widzę jakieś funkcje zmieniające cenę, dostępność itp. po wybraniu kombinacji...
//update display of the availability of the product AND the prices of the product
function updateDisplay()
-
Dostalem odpowiedź na innym forum.
W product.js po
$('#attributes select, #attributes input[type=hidden], ' + radio_inputs).each(function(){
choice.push(parseInt($(this).val()));
});
wklej:
if(choice.indexOf(123) != -1) {
$('#rsic').show();
} else {
$('#rsic').hide();
}
123 to id atrybutu.
-
Dzięki za rozwiązanie problemu. Mogę zamknąć wątek ?