Публикация в группе: Otshelnik-Fm - мои работы (код, плагины, дополнения, статьи и руководства)

Категории группы: Работаем с Wp-Recall

Привет. Эта заметка для разработчиков дополнений. Последние обновления WP-Recall стряхнуло покрытой пылью плагин (глобально ничего не происходило в нём > 3 лет) и начались глобальные изменения.

Здесь я расскажу как я обновил свои 55 дополнений за месяц в условиях вынужденной необходимости и не сошел с ума. Хотя нет - от выпитого кофе дергается глаз 😖

Хочу озвучить такое наблюдение:

не верьте что ваши дополнения работают - только лишь потому, что по ним никто вам репорт не создал на форуме поддержки!

Я это обнаружил на примере нескольких дополнений. У одного было 80 активных установок и оно распространялось бесплатно. Почему пользователи молчат? ну... Вы в магазине купили хлеб, пришли домой и поздно вечером обнаружили что он заплесневелый. Пойдете вы из-за такой мелочи разбираться? Большинство нет. Просто выбросите хлеб. Возможно к такому продавцу не пойдёте больше.
Так что внимательно перепроверьте свои дополнения - даже если пользователи вам никакого фидбека не давали. Так после каждого обновления реколл делать не нужно - но вот именно из за последних 16.21, 16.22, 16.23 - это сделать стоит. Об этом например мой второй пункт расскажет.

Здесь будет - на что стоит обратить внимание поиском по коду.
Я работаю в нетбинс и там каждый новый доп - отдельный проект. Поэтому я просто запускаю фразу - поиск по проектам и нахожу искомое:

 

Итак - поехали!


1. Апи новых настроек

(3-я версия за всю историю плагина) описано здесь
Тут все просто: вот базовый шаблон:

// где prefixaddon - ваш уникальный префикс

add_filter( 'rcl_options', 'prefixaddon_admin_addon_options' );
function prefixaddon_admin_addon_options( $options ) {
    // создаем блок
    $options->add_box( 'prefixaddon_box_id', array(
        'title' => 'Настройки ИМЯ ДОПОЛНЕНИЯ',
        'icon'  => 'fa-envelope-open-o'
    ) );

    // создаем группу 1
    // обратите внимание что prefixaddon_group_1 - цифра меняется у новой группы.
    // так как я пишу - не важно. Главное чтоб у вас там была уникальная строка
    $options->box( 'prefixaddon_box_id' )->add_group( 'prefixaddon_group_1', array(
        'title' => 'ПОДЗАГОЛОВОК 1-Й ГРУППЫ НАСТРОЕК:'
    ) )->add_options( array(
        [
            'title'   => '',
        ]
    ) );
    
    // создаем группу 2
    $options->box( 'prefixaddon_box_id' )->add_group( 'prefixaddon_group_2', array(
        'title' => 'ПОДЗАГОЛОВОК 2-Й ГРУППЫ НАСТРОЕК:'
    ) )->add_options( array(
        [
            'title'   => '',
        ]
    ) );

    return $options;
}

- с этого шаблона я стартую все настройки.

Потом просто массив полей:

 

- я закидываю вместо того, что указал выше.

Этот шаблон помогает мне стартануть настройки. В нетбинс его можно создать как отдельный сниппет и например через горячие клавиши: rcs + tab - я настроил вставку этого шаблона.

Данный пункт поможет тем, у кого апи настроек не первой версии, а второй. Там просто массивы перекинуть надо на то место, что я выделил скрином выше. С 1-м апи, переход на второе - надо понять структуру полей - но там вроде все просто:

2-й вариант апи настроек - массивы:

[
    'title'   => '',
    'type'    => 'number',
    'slug'    => '',
    'help'    => '',
    'notice'  => '',
],
[
    'title'   => '',
    'type'    => 'radio',
    'slug'    => 'gnp_day',
    'values'  => [ 'Mon' => 'Пн', 'Tue' => 'Вт'],
    'default' => 'Tue',
    'help'    => '',
    'notice'  => '',
],

- ну ведь просто? Я думаю с 1-го на 2-й вам только "копировать-вставить" надо делать в этот шаблон выше. Такая работа - утомительная - но ничего сложного.


2. Потерянные опции.

Просто убедиться что страница настроек у вас есть - этого оказалось недостаточно. С десятком моих дополнений вышла неприятная особенность: страница настроек есть, пункт настроек тоже присутствует, а вот в нём опции не сохраняются. Причина - это тип поля 'type' => 'custom'
Что в нем не так? Ищите в своем settings.php это: wp_dropdown_pages(
фрагмент кода страницы настроек:

'content' => wp_dropdown_pages( array(
    'selected'         => rcl_get_option( 'sstc_page' ),
    'name'             => 'global[sstc_page]',
    'show_option_none' => 'Не выбрано',
    'echo'             => 0
    )
),

- именно в global[sstc_page] переименуйте в rcl_global_options[sstc_page]
Найдите у себя все использования global[ и переименуйте. Настройки начнут сохраняться.

Я меня именно эта строка в кастомном поле и список страниц и загрузку картинок и своя верстка группы инпутов - я везде столкнулся что global[ переименовать в rcl_global_options[


3. Пропавший фильтр.

Фильтр rcl_custom_field_options не существует (с новым апи и структурой данных оставлять его было нельзя). Поищите по его названию - может где использовали.
Ему на замену пришел rcl_field_options
В прошлом был массив, теперь объект. Распечатывайте и смотрите данные. Просто переименовать фильтр - не выйдет.
Я решал этот вопрос например тут - подглядите


4. Данные уже не те.

Изменился тип хранения аватарки и обложки в мета поле юзера. Ищем rcl_cover и rcl_avatar. Раньше хранился прямой путь до аватарки. Сейчас число - id загруженной авы. Я раньше много допов и виджетов строил на этих данных. Теперь надо проверять через is_numeric() на новые значения
т.к. раньше был прямой путь до авы нужного юзера - я экономил на запросах в БД. Сейчас использовать get_avatar() или напрямую выбирать id из меты пользователя и потом получать путь до картинки - разницы нет.


5. Кнопка съехала.

rcl_get_button( - поищите у себя. Старый вариант 1м аргументом принимал строку. Новый - массив. Но это единственное изменение из ядра реколл, что не ломает ваш доп. Просто стили старых кнопок подцепятся и будет криво. Передавайте в функцию построения кнопки массив.


6. Аплоадер.

По загрузке аватарки и обложки в профиле и группах - если у вас кастомные эти вещи (шаблон ЛК например) - посмотрите. В дополнении Group Theme Replace я использовал старый аплоадер реколл, верней его форк чтоли и ссылался на несуществующие функции. Посмотрите это руководство если с аплоадером у вас также возникли проблемы . ну и подглядеть можно как в ядре загрузка авы происходит. Но это самый редкий случай. Хоть он у меня и отнял прилично времени на переработку.


Это все критичные случаи что я записал в блокнот и все допы по этим пунктам проходил. Прошел 55 дополнений. И это еще не все. Радует что премиум допы (процентов 90% из них) я проверил. И что популярные (с максимальным кол-вом установок) бесплатные допы тоже проверил и пофиксил.

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

Данную запись буду пополнять новыми пунктами по мере сил. Впереди еще большие изменения ядра. Но это вы узнаете из новостей сайта.

3

Автор публикации

не в сети 3 дня

Владимир (Otshelnik-Fm)

4 381
Перегорел
Почитать: https://otshelnik-fm.ru/post-group/goodbye-open-source/
Комментарии: 2201Публикации: 245Регистрация: 27-01-2013Продаж/Покупок: 0/0