Erik Nisler Posted July 2, 2020 Share Posted July 2, 2020 Zdravím, potřeboval bych pomoci s formátem telefonu. Zákazník si může zadat libovolný počet cifer u telefonu a objednávku dokončit. Někdy se stane, že zákazník vynechá číslo nebo omylem jedno přidá a ztěžuje nám to dopravu, kontrolovat u každé objednávky telefonní číslo je dost otrava. Moje otázka je tedy, jak nastavit, aby zákazník mohl zadat pouze 9 cifer? Děkuji, Link to comment Share on other sites More sharing options...
Guest Posted July 7, 2020 Share Posted July 7, 2020 (edited) Verze Prestashopu ? Upravuje se to ve Validation.php Hledej funkci isPhoneNumber. Zde se přidá podmínka if (strlen($number)==9){ return preg_match ....} else { return false; } celé to bude takto ./classic/Validation.php: public static function isPhoneNumber($number) { if (strlen($number)==9){ return preg_match('/^[+0-9. ()\/-]*$/', $number); } else { return false; } } Samozřejmě jde napsat i override, aby jsi o úpravu v případě aktualizace Prestashopu nepřišel. Stačí tento kód uložit do složky ./override/classes/Validate.php <?php class Validate extends ValidateCore { public static function isPhoneNumber($number) { if (strlen($number)==9){ return preg_match('/^[+0-9. ()\/-]*$/', $number); } else { return false; } } } Edited July 7, 2020 by Guest (see edit history) Link to comment Share on other sites More sharing options...
Erik Nisler Posted July 7, 2020 Author Share Posted July 7, 2020 Změnil jsem to jak jsi napsal ale při vyplňování objednávky (v košíku) mi to hodilo error 500, Prestashop verze 1.7.2.4 Link to comment Share on other sites More sharing options...
Guest Posted July 7, 2020 Share Posted July 7, 2020 Napsal jsem ti dvě možné verze. Kterou jsi použil ? Link to comment Share on other sites More sharing options...
Erik Nisler Posted July 7, 2020 Author Share Posted July 7, 2020 Tu první v ./classic/Validation.php, v override jsem soubor validate.php nenašel. Link to comment Share on other sites More sharing options...
Guest Posted July 7, 2020 Share Posted July 7, 2020 🙂 ten druhý by jsi zkopíroval do txt souboru, uložil jako Validate.php a uložil do ovwrride/classes složky. No, to nevadí. Ještě bych tu funkci upravil např. takto: public static function isPhoneNumber($number) { return (preg_match('/^[+0-9. ()-]*$/', $number) AND strlen($number) == 9); } A ještě by bylo potřeba upravit funkci v validate.js. Otevři si soubor ./js/validate.js Najdi : function validate_isPhoneNumber(s) { var reg = /^[+0-9. ()-]+$/; return reg.test(s); } a uprav na: function validate_isPhoneNumber(s) { var reg = /^[+0-9. ()-]+$/; return (reg.test(s) && s.length == 9); } Link to comment Share on other sites More sharing options...
Guest Posted July 7, 2020 Share Posted July 7, 2020 Tohle by ti mělo 100% fungovat. Nezapomeň vymazat cache. Link to comment Share on other sites More sharing options...
Erik Nisler Posted July 7, 2020 Author Share Posted July 7, 2020 Zkusil jsem a udělal vše ale jakmile se změní kod v ./classic/Validate.php, tak to háže chybu 500 Link to comment Share on other sites More sharing options...
Guest Posted July 7, 2020 Share Posted July 7, 2020 Funguje. Něco děláš špatně. Link to comment Share on other sites More sharing options...
Guest Posted July 7, 2020 Share Posted July 7, 2020 Nástroje => výkon Drž se podle obrázku a vymaž cache. Musíš taky i ve tvém prohlížeči vymazat cache, nejen v administraci !!! Link to comment Share on other sites More sharing options...
Guest Posted July 7, 2020 Share Posted July 7, 2020 Kdyžtak mi pošleš do PM přístupy na FTP a do administrace a já ti na oplátku pošlu číslo účtu 😉 Link to comment Share on other sites More sharing options...
Erik Nisler Posted July 7, 2020 Author Share Posted July 7, 2020 Ok, pohraju si s tím, zatím děkuju Link to comment Share on other sites More sharing options...
Guest Posted July 7, 2020 Share Posted July 7, 2020 Před chvilkou jsem to nahodil na dev eshop a výsledek vidíš na obrázku. Zadal jsem pouze 8 čísel. Link to comment Share on other sites More sharing options...
Guest Posted July 7, 2020 Share Posted July 7, 2020 Úprava je to na max. 2 minuty 😉 Link to comment Share on other sites More sharing options...
Erik Nisler Posted July 13, 2020 Author Share Posted July 13, 2020 Ok, tak jsem to udělal přesně podle návodu a sice mi to neháže error, za to se víceméně nic nestalo, dál to ignoruje počet čísel, vymazal jsem cache jak v prestashopu, tak i v prohlížeči. Link to comment Share on other sites More sharing options...
Guest Posted July 13, 2020 Share Posted July 13, 2020 A jak je možné, že to u mně funguje na stejné verzi Prestashopu? Je úprava v obou souborech ? Validate.php a validate.js ? Link to comment Share on other sites More sharing options...
Guest Posted July 13, 2020 Share Posted July 13, 2020 Používáš vestavěnou pokladnu nebo nějaký one page checkout ? Link to comment Share on other sites More sharing options...
Guest Posted July 13, 2020 Share Posted July 13, 2020 Nahraj sem ty dva soubory které jsi upravoval. Link to comment Share on other sites More sharing options...
Erik Nisler Posted July 14, 2020 Author Share Posted July 14, 2020 Normálně vestavěná pokladna, stejná jako jsi poslal ty, Posílám: validate.js Validate.php Link to comment Share on other sites More sharing options...
Guest Posted July 14, 2020 Share Posted July 14, 2020 Samozřejmě, že to máš blbě. To je tak, když se nečtou celé příspěvky. tento příspěvek Validate.php máš: public static function isPhoneNumber($number) { if (strlen($number)==9){ return preg_match('/^[+0-9. ()\/-]*$/', $number); } else { return false; } } má být: public static function isPhoneNumber($number) { return (preg_match('/^[+0-9. ()-]*$/', $number) AND strlen($number) == 9); } Link to comment Share on other sites More sharing options...
Erik Nisler Posted July 14, 2020 Author Share Posted July 14, 2020 Jo, super, už to funguje, netuším, kde jsem dělal chybu, ten druhý způsob co jsi poslal už funguje, zkusil jsem ten první ale nešel, ten druhý jsem taky zkoušel a taky nešel, teď najednou ano, příště budu pozornější, děkuju za tvou pomoc! Link to comment Share on other sites More sharing options...
Guest Posted July 14, 2020 Share Posted July 14, 2020 Njn. Můžeš dát like kliknutím na šedé srdce pod příspěvky 😉 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