• Никакой политики на форуме. Иначе - бан!
  • Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
  • Темы озаглавленные с маленькой буквы или капсом удаляются без предупреждения!

Почта России и EMS для WooCommerce плюс наложенный платеж.

artemkomarov

Специалист
Местный
Проверьте логи там. Это может помочь выяснить причину проблемы.
ох. Попробуйте пожалуйста запихнуть этот код в functions.php для теста если все норм то на сайте увидите массив данных если же что то не то то опять будет ошибка.

PHP:
$arrOptions = array('http' =>
array( 'header'  => 'Accept-Encoding: gzip','timeout' => 5, 'user_agent' => phpversion() )
);
$Request = file_get_contents('http://test.postcalc.ru/?f=Москва&t=Сергиев Посад&w=1000&v=1000&o=php', false , stream_context_create($arrOptions));
$Response=gzinflate(substr($Request,10,-8));
$arrResponse = unserialize($Response);
var_dump($arrResponse);
 

artemkomarov

Специалист
Местный
Warning: file_get_contents(http://test.postcalc.ru/?f=Москва&t=Сергиев Посад&w=1000&v=1000&o=php): failed to open stream: Connection timed out in /home/u314600351/public_html/key/wp-content/themes/GoldKey/functions.php on line 70

Warning: gzinflate(): data error in /home/u314600351/public_html/key/wp-content/themes/GoldKey/functions.php on line 71
bool(false)

Попробуйте вот с этим кодом тут другой сайт в качестве теста
PHP:
$Request = file_get_contents('http://tariff.russianpost.ru/tariff/v1/calculate?json&object=4030&isavia=1&weight=1000&from=675000&to=101000&date=20161212&closed=1');
var_dump($Request);
 

tuxfighter

Гуру
Местный
новый ответ от ТП:
"Deprecated - это ошибка возникает именно в тех случаях, когда требуется более старая версия РНР для работы скрипта.
Попробуйт погуглить, пожалуйста.
Или обратитесь к разаработчику скрипта за помощью."
 

tuxfighter

Гуру
Местный
при попытки сохранения изменений
"string(1302) "{"version": "1.5.5.200", "id": 4030, "name": "Посылка нестандартная", "typ": 4, "cat": 3, "dir": 0, "isavia": 1, "weight": 1000, "from": 675000, "to": 101000, "isclosed": 1, "date": 20161212, "postoffice": [{"index": 675000, "region": 1010, "place": 1000000033501, "parent": 675700, "aviaport": ["Благовещенск"]},{"index": 101000, "region": 1000000001045, "place": 1000000001045, "parent": 127950, "aviaport": ["Москва"], "aviazone": 1}], "route": [{"trans":1, "transid":1, "from_postoffice":675000, "to_postoffice":101000}], "typcatname": "Посылка нестандартная", "trans": 3, "transid": 2, "transname": "авиа", "tariff": [{"id":"133/21af249", "name":"Авиасбор при доставке воздушным транспортом", "from":"БЛАГОВЕЩЕНСК ПОЧТАМТ", "fromi":675000, "to":"МОСКВА", "toi":101000, "avia": {"val":8500, "valnds":10030}},{"id":"143/143pb3", "name":"Почтовый сбор при доставке воздушным транспортом", "from":"БЛАГОВЕЩЕНСК ПОЧТАМТ", "fromi":675000, "ground": {"val":37288, "valnds":44000}}], "ground": {"val":37288, "valnds":44000}, "avia": {"val":8500, "valnds":10030}, "pay": 45788, "paynds": 54030, "date-first": 20160415}"
Warning: gzinflate(): data error in /home/u314600351/public_html/key/wp-content/themes/GoldKey/functions.php on line 72
bool(false)"
 

artemkomarov

Специалист
Местный
Отлично значит скорее всего глючит API postcalc так API почты возвращает все нормально.

По поводу HTTP_RAW_POST_DATA это у вас где то еще прописано. так как в плагине почты России подобного нет. и Warning: gzinflate(): data error относится туда же в плагине таких функций нет.
 

artemkomarov

Специалист
Местный
так есть надежда на исправление?
Отправил результат наших экспериментов владельцу API
Если он забьет на проблему то переключимся на официальный API

Хотя на моем хостинге все работает попрежнему и на локальном точно так же без ошибок пашет. Видимо проблема с обеих сторон у кого то сервер настроен чуть криво а может и API не хочет работать с этим.

Вообщем ждем ответа от владельца API
 

skyglider

Новичок
После вставки в functions.php следующего кода:

Код:
function action_woocommerce_after_checkout_form( $wccm_after_checkout ) {
$arrOptions = array('http' =>
array( 'header'  => 'Accept-Encoding: gzip','timeout' => 5, 'user_agent' => phpversion() )
);
$Request = file_get_contents('http://test.postcalc.ru/?f=Москва&t=Сергиев Посад&w=1000&v=1000&o=php', false , stream_context_create($arrOptions));
$Response=gzinflate(substr($Request,10,-8));
$arrResponse = unserialize($Response);
var_dump($arrResponse);
};
      
// add the action
add_action( 'woocommerce_after_checkout_form', 'action_woocommerce_after_checkout_form', 10, 1 );

На странице корзины на калькуляторе вижу - "Не удалось соединиться с api.postcalc.ru!"

А после перехода на страницу чекаута под формой вижу bool(false)
 

artemkomarov

Специалист
Местный
На странице корзины вижу - "Не удалось соединиться с api.postcalc.ru!"
не обязательно это через action делать это просто тест.
А попробуйте просто вот это
PHP:
$Request = file_get_contents('http://tariff.russianpost.ru/tariff/v1/calculate?json&object=4030&isavia=1&weight=1000&from=675000&to=101000&date=20161212&closed=1');
var_dump($Request);

если и у вас вернется ответ тогда будет больше уверености что что то не то с postcalc. Спасибо.
 

skyglider

Новичок
В браузере на странице чекаута, после того, как в functions.php добавил просто строчку
Код:
$Request = file_get_contents('http://tariff.russianpost.ru/tariff/v1/calculate?json&object=4030&isavia=1&weight=1000&from=675000&to=101000&date=20161212&closed=1');
var_dump($Request);
вижу только bool(false)
 

skyglider

Новичок
Извиняюсь...после сброса кэша получил:

string(1302) "{"version": "1.5.5.200", "id": 4030, "name": "Посылка нестандартная", "typ": 4, "cat": 3, "dir": 0, "isavia": 1, "weight": 1000, "from": 675000, "to": 101000, "isclosed": 1, "date": 20161212, "postoffice": [{"index": 675000, "region": 1010, "place": 1000000033501, "parent": 675700, "aviaport": ["Благовещенск"]},{"index": 101000, "region": 1000000001045, "place": 1000000001045, "parent": 127950, "aviaport": ["Москва"], "aviazone": 1}], "route": [{"trans":1, "transid":1, "from_postoffice":675000, "to_postoffice":101000}], "typcatname": "Посылка нестандартная", "trans": 3, "transid": 2, "transname": "авиа", "tariff": [{"id":"133/21af249", "name":"Авиасбор при доставке воздушным транспортом", "from":"БЛАГОВЕЩЕНСК ПОЧТАМТ", "fromi":675000, "to":"МОСКВА", "toi":101000, "avia": {"val":8500, "valnds":10030}},{"id":"143/143pb3", "name":"Почтовый сбор при доставке воздушным транспортом", "from":"БЛАГОВЕЩЕНСК ПОЧТАМТ", "fromi":675000, "ground": {"val":37288, "valnds":44000}}], "ground": {"val":37288, "valnds":44000}, "avia": {"val":8500, "valnds":10030}, "pay": 45788, "paynds": 54030, "date-first": 20160415}"
 

skyglider

Новичок
Чувствую всё это долго будет...)))

Он даже новости не разместил у себя на сайте.
 

artemkomarov

Специалист
Местный
Чувствую всё это долго будет...)))

Он даже новости не разместил у себя на сайте.

Вовсе нет. обычно в течении рабочего дня отвечает. Но так или иначе будем посмотреть. Если что переведем на оф API а если вам горит и надо сдавать проект то я отправил вам ссылку на хостинг на котором лично у меня все работает)
 

skyglider

Новичок
Кстати, пытаясь разобраться с проблемой самостоятельно, обратил внимание на следующий момент...в шапке плагина и на его странице указана версия 0.7, а в коде модуля 0.6 (при формировании строки запроса)...)))
 

skyglider

Новичок
И кстати...по поводу моих предложений, можно ли выделить в отдельную строку дополнительную стоимость ("не бензин").

А то, получается не очень корректно - заказчик видит одну цену на сайте, а на почте ему называют меньше.

Просто сделать отдельным полем с лейблом, ну например "Упаковка заказа" или "Обработка заказа"?
 

skyglider

Новичок
Я самостоятельно написал на postcalc...вот ответ:
Все прекрасно работает, подключено более 700 магазинов. Если у Вас проблемы - разбирайтесь с ними сами. Либо хотя бы составьте правильно запрос в техподдержку.

И как это понимать? Он разбирается или нет???
 
Сверху Снизу