lukash4 Posted April 27, 2023 Share Posted April 27, 2023 Cześć wszystkim, Chciałbym usunąć miejsca po przecinku w cenach produktów, ale tylko na w przypadku gdy cena kończy się zerami - .00 zł Czy ktoś wie jak to zrobić? Prestashop 1.6.1.24 Z góry dzięki! Link to comment Share on other sites More sharing options...
atomek Posted April 27, 2023 Share Posted April 27, 2023 Tak na szybko to spróbuj zmienić funkcję Tolls::displayPrice(), w stringu który funkcja zwraca zamień ",00" na pusty łańcuch. To samo zrób dla funkcji js formatCurrency, jest w pliku /js/tools.js. Być może trzeba będzie zrobić też inne zmiany. Link to comment Share on other sites More sharing options...
lukash4 Posted April 28, 2023 Author Share Posted April 28, 2023 W pliku szablonu użyłem {convertPrice|replace:'.00':'' price=$productPrice} i działa ok, natomiast problem pojawia się w produktach posiadających kombinacje - cena ponownie wyświetlana jest z ",00" na końcu... Jest jakaś opcja aby przy kombinacjach też to zadziałało? Link to comment Share on other sites More sharing options...
get3code Posted May 5, 2023 Share Posted May 5, 2023 Jak kolega atomek radził, edytuj plik js który odpowiada za wyświetlanie formatu ceny. Po każdym wykonaniu ajax cena zmienia się za pomocą js. Więc to będzie dobre rozwiązanie. Link to comment Share on other sites More sharing options...
lukash4 Posted May 7, 2023 Author Share Posted May 7, 2023 Chyba nie poradzę sobie z modyfikacją kodu... Może ktoś pomóc w tym zakresie? Link to comment Share on other sites More sharing options...
atomek Posted May 7, 2023 Share Posted May 7, 2023 W funkcji formatCurrency tam gdzie jest zwracany wynik dodaj na końcu .replace(',00', '') lub .replace('.00', ''), w zależności od tego jaki masz ustawiony separator miejsc dziesiętnych zmień tak jak w przykładzie if (currencyFormat == XX) return (formatNumber(price, priceDisplayPrecision, ' ', ',') + blank + currencySign); na: if (currencyFormat == XX) return (formatNumber(price, priceDisplayPrecision, ' ', ',') + blank + currencySign).replace(',00', ''); XX to Twój format waluty po zmianach wyczyść cache presty i przeglądarki Link to comment Share on other sites More sharing options...
atomek Posted May 7, 2023 Share Posted May 7, 2023 Po zmianach kod tej funkcji może wyglądać tak: function formatCurrency(price, currencyFormat, currencySign, currencyBlank) { // if you modified this function, don't forget to modify the PHP function displayPrice (in the Tools.php class) var blank = ''; price = parseFloat(price).toFixed(10); price = ps_round(price, priceDisplayPrecision); if (currencyBlank > 0) blank = ' '; if (currencyFormat == 1) return currencySign + blank + formatNumber(price, priceDisplayPrecision, ',', '.').replace('.00', ''); if (currencyFormat == 2) return (formatNumber(price, priceDisplayPrecision, ' ', ',') + blank + currencySign).replace(',00', ''); if (currencyFormat == 3) return (currencySign + blank + formatNumber(price, priceDisplayPrecision, '.', ',')).replace(',00', ''); if (currencyFormat == 4) return (formatNumber(price, priceDisplayPrecision, ',', '.') + blank + currencySign).replace('.00', ''); if (currencyFormat == 5) return (currencySign + blank + formatNumber(price, priceDisplayPrecision, '\'', '.')).replace('.00', ''); return price; // .replace('.00', ''); } nie testowałem, sprawdź Link to comment Share on other sites More sharing options...
lukash4 Posted May 8, 2023 Author Share Posted May 8, 2023 13 hours ago, atomek said: Po zmianach kod tej funkcji może wyglądać tak: function formatCurrency(price, currencyFormat, currencySign, currencyBlank) { // if you modified this function, don't forget to modify the PHP function displayPrice (in the Tools.php class) var blank = ''; price = parseFloat(price).toFixed(10); price = ps_round(price, priceDisplayPrecision); if (currencyBlank > 0) blank = ' '; if (currencyFormat == 1) return currencySign + blank + formatNumber(price, priceDisplayPrecision, ',', '.').replace('.00', ''); if (currencyFormat == 2) return (formatNumber(price, priceDisplayPrecision, ' ', ',') + blank + currencySign).replace(',00', ''); if (currencyFormat == 3) return (currencySign + blank + formatNumber(price, priceDisplayPrecision, '.', ',')).replace(',00', ''); if (currencyFormat == 4) return (formatNumber(price, priceDisplayPrecision, ',', '.') + blank + currencySign).replace('.00', ''); if (currencyFormat == 5) return (currencySign + blank + formatNumber(price, priceDisplayPrecision, '\'', '.')).replace('.00', ''); return price; // .replace('.00', ''); } nie testowałem, sprawdź Wielkie dzięki, kod działa Możesz mi jeszcze napisać jak powinna wyglądać modyfikacja funkcji displayPrice w Tools.php? Link to comment Share on other sites More sharing options...
atomek Posted May 8, 2023 Share Posted May 8, 2023 W metodzie displayPrice zmień instrukcje switch, tak jak w przykładzie switch ($c_format) { /* X 0,000.00 */ case 1: $ret = $c_char.$blank.number_format($price, $c_decimals, '.', ','); $ret = str_replace('.00', '', $ret); // <- dodane break; /* 0 000,00 X*/ case 2: $ret = number_format($price, $c_decimals, ',', ' ').$blank.$c_char; $ret = str_replace(',00', '', $ret); // <- dodane break; /* X 0.000,00 */ case 3: $ret = $c_char.$blank.number_format($price, $c_decimals, ',', '.'); $ret = str_replace(',00', '', $ret); // <- dodane break; /* 0,000.00 X */ case 4: $ret = number_format($price, $c_decimals, '.', ',').$blank.$c_char; $ret = str_replace('.00', '', $ret); // <- dodane break; /* X 0'000.00 Added for the switzerland currency */ case 5: $ret = number_format($price, $c_decimals, '.', "'").$blank.$c_char; $ret = str_replace('.00', '', $ret); // <- dodane break; } Link to comment Share on other sites More sharing options...
lukash4 Posted May 8, 2023 Author Share Posted May 8, 2023 Wielkie dzięki za pomoc 👍 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now