WP e-Commerce - как лечить крокозябры формы заказа
Сейчас в работе один заказ эконом-класса… интернет-магазин, который из-за его максимальной экономичности решили делать на WordPress плагине WP e-Commerce (кстати, другое его название WP Shopping Cart)
Рабочая конфигурация на момент разработки: WordPress 2.9.2 + WP e-Commerce 3.7.5.3
Плагин, конечно, “веселый”, сказать нечего. Одна руссификация его чего стоит - кстати, сейчас заканчиваем выверять файл руссификации для e-Commerce и выложим тут для скачивания, может кому-то будет полезен.
Забавное началось на странице заказа. Делаем тестовый заказ, все пишем по-русски (первая часть формы Your billing/contact details), форма обновляется – при проверке эта информация выводится у меня крокозябрами (полезняшка charset.ru и та не смогла раскодировать).
После проведенных изысканий выяснилось, что защита от ввода некорректных символов в этом скрипте реализована с помощью php-функции htmlentities().
Описание htmlentities()
Преобразует символы в соответствующие HTML сущности.
Формат - string htmlentities ( string string [, int quote_style [, string charset]] )
Нюанс в том, что в PHP 4.1.0 был добавлен необязательный аргумент string charset. И если он опущен - то функция каждую нелатинскую букву пытается перекодировать в ISO-8859-1 (начиная с PHP 4.3.0). Что в данном случае мы и имеем.
Русские буквы в форме заказа - как лечить?
Определив болезнь, лечить уже достаточно просто:
Идем в директорий плагина WP e-Commerce и ищем путь: \wp-content\plugins\wp-e-commerce\wpsc-includes\, а там нам надо 2 файла: purchaselogs.class.php и checkout.class.php
В этих двух файлах находим все (в checkout только одно нашлось) упоминания ENT_QUOTES и меняем их на ENT_QUOTES,’utf-8′
Все, теперь форма заказа как на странице front-end, так и на странице админки содержит нормальный русский текст!
21 Апрель 2010 в 8:42 пп
Да перевод реализован очень коряво.
Reply
ssl2 Reply:
Апрель 21st, 2010 at 8:43 пп
Буду признателен за перевод на почту
Reply
7 Май 2010 в 8:35 пп
Привет!Вот я поменял все,как написано,теперь получается следующее.Виджеты в шаблоне перелетают из правой стороны в левую и ничего больше не происходит,где я что не так сделал,это на сайте,который указан
Reply
Трахтенберг Reply:
Май 7th, 2010 at 8:58 пп
Андрей,
Дело в том, что описано все на собственном опыте, на собственной практике.
Тему блога и виджеты изменения в работе с кодировкой не затрагивают.
И, поймите правильно, но бесплатно заниматься выверением ошибок в теме у меня просто нет возможности - я плачу своим сотрудникам з/п, эти работы стоят денег
Reply