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, так и на странице админки содержит нормальный русский текст!

Комментариев: 4

  1. ssl2 пишет:

    Да перевод реализован очень коряво.

    Reply

    ssl2 Reply:

    Буду признателен за перевод на почту

    Reply

  2. Андрей пишет:

    Привет!Вот я поменял все,как написано,теперь получается следующее.Виджеты в шаблоне перелетают из правой стороны в левую и ничего больше не происходит,где я что не так сделал,это на сайте,который указан

    Reply

    Трахтенберг Reply:

    Андрей,

    Дело в том, что описано все на собственном опыте, на собственной практике.
    Тему блога и виджеты изменения в работе с кодировкой не затрагивают.

    И, поймите правильно, но бесплатно заниматься выверением ошибок в теме у меня просто нет возможности - я плачу своим сотрудникам з/п, эти работы стоят денег :)

    Reply

Оставьте свой отзыв!

Я не робот.