На текущий момент происходит странное: после выбора товара и перехода к проверке выводится надпись «Пожалуйста, приобретите какие-либо товары, прежде чем использовать эту страницу». При этом корзина становится пустой, но если туда ещё что-нибудь добавить, предыдущее содержимое появляется снова. Проверял на товарах из раздела «Музыкальные игрушки».
Это только есть браузер — Опера. Во всех других браузерах это ошибки нет. Сам не пойму в чем дело, задал этот вопрос на сайте у локализатора http://www.mikolka.info/2008/06/05/wp-e-commerce-part-2/?cp=3#comment-147933
Я смотрел в Firefox. Сейчас попробовал в IE 8 — там то же самое.
Спасибо, Сергей, все дело было в WP Super Cache. Пришлось отключить на всем сайте. В настройках плагина, как я понял, можно отключить кэширование отдельных страниц:
«Add here strings (not a filename) that forces a page not to be cached. For example, if your URLs include year and you dont want to cache last year posts, it’s enough to specify the year, i.e. ’/2004/’. WP-Cache will search if that string is part of the URI and if so, it will not cache that page.
Попробовал вставлять в это поле адреса страниц магазина, чтобы исключить кэширование — не помогло. Может не так вставлял? Как можно исключить страницы магазина из кэширования? Может в functions.php темы что-нибудь прописать, вроде того, что вы мне советовали по CopyProtect?
Можно попробовать указать /?page_id=5626
(если это главная страница магазина).
Спасибо! Вроде заработало, я вставил все три главных страницы магазина (плюс старницу проверки корзины и «Спасибо за покупку») в виде /?page_id, а раньше вставлял полный адрес страниц. Осталась фигня с краказябрами в полях формы заказа. Очень вам благодарен за помощь.
Скорее всего, проблема в этой строчке функции form_field()
в файле wp-content/plugins/wp-e-commerce/wpsc-includes/checkout.class.php
:
$saved_form_data = htmlentities(stripslashes($_SESSION['wpsc_checkout_saved_values'][$this->checkout_item->id]), ENT_QUOTES);
Нужно убрать htmlentities()
совсем:
$saved_form_data = stripslashes($_SESSION['wpsc_checkout_saved_values'][$this->checkout_item->id]);
или добавить указание кодировки:
$saved_form_data = htmlentities(stripslashes($_SESSION['wpsc_checkout_saved_values'][$this->checkout_item->id]), ENT_QUOTES, 'UTF-8');
Добавление кодировки не помогло, а удаление всей строки решило проблему. Огромное вам спасибо, Сергей!