Начало работы в Setka Editor Технические проблемы при установке и использовании плагина WordPress

Технические проблемы при установке и использовании плагина WordPress

Устаревшая версия PHP 

Что вы видите

 

obsolete_php.png

 

Причина

Старая версия PHP, которая не поддерживает новые возможности языка программирования, используемые в одной из библиотек.

 

Решение

Обновите PHP. Сейчас минимальная допустимая версия для нашего плагина — PHP 5.5.9. Разработчики WordPress рекомендуют использовать PHP 7. 

Версия 5.5 слишком старая, она вышла в 2013 году и критические уязвимости в ней не закрываются. Посмотреть жизненный цикл версий можно здесь

Обновить версию PHP у себя на сервере, как правило, можно в панели управления хостингом – Cpanel, ISPManager и др. В большинстве случаев процесс обновления  занимает не более 5 минут и не влечет за собой сбоев в работе сайта. При необходимости вы всегда можете вернуться  к прежней версии.

Ниже доступны инструкции для обновления версии PHP на наиболее крупных хостинг-площадках WordPress:

BluehostDreamhostSiteground, IPageHostgator, 1&1, Ehost, MediaTemple, GoDaddy, Pagely.

Если вашего провайдера нет в этом списке, пожалуйста, обратитесь в службу поддержки своего хостинга или к вашему системному администратору.

После обновления PHP деактивируйте и снова активируйте плагин Setka Editor.

 


Плагин загружен не полностью

 

 

Когда плагин загружен не полностью (то есть когда не все файлы плагина скопировались на сервер), возникают ошибки в PHP. Такое происходит, если соединение пропало в момент ручной заливки файлов на FTP.

 

Что вы видите

В большинстве случаев вы увидите белую страницу с ошибками или без. Сообщение об ошибке можно увидеть, если включен WP_DEBUG  (без него будет отображаться белая страница) или заглянуть в error.log на сервере (полный адрес до файла зависит от конфигурации сервера) при условии, что в настройках веб-сервера включен этот лог.

Warning: include(/var/www/wordpress/htdocs/1/wp-content/plugins/setka-editor/source/Plugin.php): failed to open stream: No such file or directory in /var/www/wordpress/htdocs/1/wp-content/plugins/setka-editor/vendor/composer/ClassLoader.php on line 412

Warning: include(): Failed opening '/var/www/wordpress/htdocs/1/wp-content/plugins/setka-editor/source/Plugin.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/wordpress/htdocs/1/wp-content/plugins/setka-editor/vendor/composer/ClassLoader.php on line 412

Fatal error: Class 'Setka\Editor\Plugin' not found in /var/www/wordpress/htdocs/1/wp-content/plugins/setka-editor/plugin.php on line 30

 

Причина

Часть файлов не была загружена или некоторые файлы были удалены. Еще одна возможная причина — часть файлов имеет неправильное содержимое (например, кто-то изменил их вручную и удалил оттуда содержимое).

 

Решение

Полностью удалите плагин. Если части файлов нет, это не получится сделать через панель управления плагинами, так как при удалении плагина мы используем некоторые из файлов, чтобы удалить настройки плагина. 

Если плагин не удаляется через панель управления, просто удалите папку плагина с сервера через FTP (SFTP или SSH), а затем заново загрузите последнюю версию плагина. Загрузить новую версию плагина также можно любым удобным способом — через панель управления или через FTP.

 

Размер плагина превышает максимальный разрешенный для загрузки 

 

Screen_Shot_2017-04-14_at_17.40.23.png

 

Что вы видите

При попытке загрузить плагин через панель администратора WordPress вы видите страницу с надписью.

Важно: скриншот и текст актуальны для WordPress 4.7, в старых версиях ошибка выглядит по-другому.

Are you sure you want to do this?

Please try again.

 

Решение

Проверьте максимальный разрешенный размер файлов для загрузки. Самый простой способ сделать это — зайти на страницу "Upload New Media". В самом низу страницы будет указан максимальный допустимый размер файла. Например: "Maximum upload file size: 3 MB." (см. скриншот).

Максимальный допустимый размер файла должен быть больше, чем размер ZIP-архива с плагином.

Чтобы изменить эту настройку, обратитесь к службе поддержки хостинга и попросите увеличить размер файлов, разрешенных для загрузки (например, до 20 Мб). 

Если поддержка не понимает, что нужно сделать, или вы хотите внести изменения самостоятельно, то найдити файл php.ini и внесите два изменения. Обычно файл php.ini находится по адресу /etc/php/apache2/php.ini (но может находиться и в другом месте в зависимости от ОС сервера и его конфигурации).

Внутри файла нужно изменить две настройки upload_max_filesize и post_max_size. Они могут иметь разные значения, но post_max_size  не должна быть меньше upload_max_filesize. Можно установить любое значение, например, 1024M (гигабайт).

Важно: после внесения изменений в файл перезапустите веб-сервер или PHP-FPM (в зависимости от конфигурации сервера) для того, что бы применить новые настройки. Если все сделано верно, то на странице Upload New Media вы увидите новую цифру.

Иногда данные настройки могут быть указаны несколько раз в разных местах (например, в .htaccess файле или в других PHP-конфигурациях) и перезаписывать значения из php.ini. Также эту настройку может переопределять какой-либо из плагинов WordPress или даже тема (хотя вероятность этого крайне мала).

 

 

Не открывается одна из страниц настроек плагина

Что вы видите 

Одна из страниц настроек нашего плагина не открывается. 

 

Причина 

Такая проблема возникает при использовании HHVM и его настроек.

 

Решение 

Добавьте в конфигурацию HHVM строчку ниже.  

hhvm.libxml.ext_entity_whitelist = file,http

Более подробное описание и обсуждение проблемы вы можете прочитать здесь.

 

Заблокированный wp-admin

Что вы видите

Не доходят обновления стилей. Не появляются новые темы. Редактор перестал работать. Плагин показывает, что истекла подписка и редактор не открывается. 

 

Причина

API Setka Editor не смогло доставить обновления на сайт с обновленными CSS и JS-файлами, а также обновить информацию о продлении подписки. Это может случится по нескольким причинам:

  1. Когда API обращалось к сайту, сервер был недоступен (выключен, сильно загружен, без доступа в интернет) или неисправен.
  2. Доступ к файлу wp-admin/admin-post.php заблокирован на стороне сервера или WordPress.
  3. Используется слишком старая версия плагина, которая не поддерживается текущим API от Setka Editor.
  4. В настройках аккаунта доменное имя указано без учета http/https. Обращаем внимание, что если на вашем домене установлено защищенное соединение, URL должен быть указан как https://

 

Решение

Уточните у поддержки хостинга, не включен ли fierwall или другие ограничения на доступ к файлу wp-admin/admin-post.php. Чтобы все работало, внешние подключения к этому файлу должны быть разрешены.

Блокировать доступ могут и плагины. Например, некоторые плагины ограничивают доступ к файлам внутри папки wp-admin, если пользователь не авторизован. Один из таких плагинов — Lockdown WP Admin.

К файлу wp-admin/admin-post.php  должны быть разрешены запросы POST (а также желательно GET, PUT и т. п.).

Более подробно об этом файле и запросах к нему вы можете прочитать в кодексе WordPress 

Чтобы проверить возможность подключения вручную, откройте страницу http://your-domain.com/wp-admin/admin-post.php, указав свой домен. Если в веб-инспекторе на вкладке Resources в секции Request & Response будет указан Status OK, Code 200 — значит, скорее всего, все в порядке.

 

Установленный плагин Lockdown WP Admin

Это частный случай предыдущей проблемы, но рассмотрим его отдельно.

Решение

Напишите следующий код в любом другом плагине, теме или mu-плагине.


function lockdown_wp_admin_no_check_files_2016_12_29($files) {
   $files[] = 'admin-post.php';
   return $files;
}
add_filter('no_check_files', 'lockdown_wp_admin_no_check_files_2016_12_29');

Проверьте работу кода, открыв страницу example.com/wp-admin/admin-post.php. Если откроется белая страница — все работает. Если откроется страница 404 — значит, код не сработал. Возможно, вы добавили его в файл, который не подключается в WordPress.

  

Не подключаются стили и шрифты

Что вы видите

При просмотре сайта вне CMS видно, что верстка постов «разваливается», а у всех элементов из Setka Editor нет стилей (пост выглядят как обычный текст).

 

Причина

В теме подключение всех CSS и JS файлов сделано не в общепринятой практике WorldPress, поэтому сторонние плагины не могут добавить или убрать необходимые файлы.

 

Решение

Есть два варианта решения проблемы:

  1. Поправьте логику подключения CSS и JS файлов внутри темы, как это рекомендуют делать разработчики WordPress. Этот подход позволяет добиться точно такого же результата, как сейчас, т. е. этот подход не накладывает технических ограничений. Уберите все жестко подключенные CSS и JS файлы внутри файла raw_header.php (обычно в темах файлы такого типа называют header.php) и вынесите всю логику их добавления в отдельные файлы. Добавьте вызов функции wp_head() внутри секции <head>.
  2. Если вы не хотите переписывать тему, то вручную подключите CSS от Setka Editor. Этой цели можно достичь разными путями, но на тестовом сайте мы сделали так, как будет описано ниже. Мы сделали дополнительный файл setka-editor-resources.php. Он подключается в raw-header.php. Ниже содержимое файла с комментариями. 

Замечание 1. Способ, описанный ниже, подключает только CSS файл. Для подключения шрифтов TypeKit и т. п. необходимо подключить их JS похожим образом.


<?
php
// Added by Setka Editor team
function setka_editor_print_head_resources() {
   global $wp_styles;
 
   // Проверяем наличие активированного плагина Setka Editor
   // А также функцию, которую хотим вызвать
   if( !is_callable( array( '\Setka\Editor\Service\ScriptStyles', 'register' ) ) )
       return;
 
   // Вызываем регистрацию необходимых CSS и JS для Setka Editor
   // Обычно это делает WorldPress в момент вызова wp_head() (о которой писалось выше)
   \Setka\Editor\Service\ScriptStyles::register();
   \Setka\Editor\Service\ScriptStyles::register_theme_resources();
   
   // Проверяем, есть ли нужный нам CSS файл и выводим  с ним
   if( isset( $wp_styles->registered['setka-editor-theme-resources'] ) ) {
       $url =& $wp_styles->registered['setka-editor-theme-resources']->src;
       ?><?php
   }
}
setka_editor_print_head_resources(); // Сразу вызываем функцию

Замечание 2. Ссылка на CSS хранится в опции setka_editor_theme_resource_css. Ее можно получить вручную с помощью get_option('setka_editor_theme_resource_css').

// Перед вызовом рекомендуется проверить существование класса для предотвращения фатальных ошибок в PHP
$css = new Setka\Editor\Admin\Options\ThemeResourceCSS\Option();
// Отдает всегда один тип данных (если ссылки нет, вернется пустая строчка)
$url = $css->getValue();
// или (может вернуть false, если значения нет)
$url = $css->getValueRaw();




Нет вкладки Setka Editor на странице создания новой записи

 

Пожалуйста, сперва убедитесь, что:

  • Плагин Setka Editor установлен и активирован (Plugins > Installed plugins).
  • Setka Editor включен для работы с записями: стоит галочка напротив Posts (Setka Editor > Settings):

 

Screen_Shot_2017-09-15_at_15.53.32.png

  • В настройках редактора указан license key (Setka Editor > Account > License key):

Screen_Shot_2017-09-18_at_14.52.36.png

 

Если на странице создания новой записи вы по-прежнему видите

Screen_Shot_2017-09-15_at_15.43.35.png

вместо

Screen_Shot_2017-09-15_at_15.44.18.png

 

Пожалуйста, перейдите в браузере в режим разработки, откройте консоль браузера (ctrl + shift + i), сделайте снимок страницы и направьте его нам в виде файла при создании обращения в службу поддержки.