Статьи

Интеграция Envato WordPress Toolkit с вашей темой: Плагин

Как авторы WordPress в ThemeForest, нам нравится радовать наших клиентов, предоставляя им время от времени исправления ошибок и улучшения наших тем. Но одной из ключевых проблем для нас является то, как уведомить наших пользователей, когда обновление доступно для загрузки.

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

Разве не было бы лучше, если бы уведомления об обновлениях отображались внутри самого администратора WordPress? И что обновления могут быть выполнены прямо в админке? К счастью для нас, у нас теперь есть плагин Envato WordPress Toolkit и библиотека инструментов.

В этой серии вы узнаете, как интегрировать эти наборы инструментов в свои темы.


В этом уроке мы собираемся реализовать плагин Envato WordPress Toolkit и библиотеку в нашей теме. Когда наша тема активирована, пользователю будет предложено установить и активировать плагин Toolkit.

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

Учебник разделен на две части:

  • Часть 1. Интеграция класса активации плагина TGM, чтобы сделать плагин Envato WordPress Toolkit обязательным при использовании нашей темы; и
  • Часть 2. Внедрение библиотеки Envato WordPress Toolkit в нашу тему для проверки и обновления новой версии темы.

Envato WordPress Toolkit поставляется в двух формах, которые имеют различное использование и назначение. Чтобы мы не запутались с этими двумя, вот сравнение:

  • Toolkit Plugin — это автономный плагин, который может быть установлен любым клиентом Envato на своем сайте WordPress. При активации все ранее приобретенные темы, а также обновления тем будут доступны для скачивания непосредственно из администратора.
  • Библиотека наборов инструментов — код, который авторы могут включать в свои темы WordPress, который позволяет этой теме использовать API Envato Marketplace для проверки наличия обновлений версии темы и ее обновления.

Сначала нам нужно включить некоторые файлы в наш проект. Мы собираемся связать плагин Toolkit с нашей темой, и мы будем использовать активацию плагина TGM для установки и активации Toolkit.

  1. Загрузите активацию плагина TGM и поместите скрипт основного класса в папку inc вашей темы. Путь должен быть: mytheme / inc / class-tgm-plugin-активации.php
  2. Затем загрузите ZIP-файл плагина Envato WordPress Toolkit и поместите его в новую папку в вашей теме под названием плагины. Путь должен быть: mytheme / plugins / envato-wordpress-toolkit-master.zip

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


Теперь, когда у нас есть необходимые файлы, давайте начнем кодировать. Нам нужно будет включить класс активации плагина TGM в наш functions.php и подключиться к пользовательскому действию WordPress. Здесь мы разместим некоторые настройки для TGM и определим, какие плагины включить.

01
02
03
04
05
06
07
08
09
10
11
/**
 * Load the TGM Plugin Activator class to notify the user
 * to install the Envato WordPress Toolkit Plugin
 */
require_once( get_template_directory() . ‘/inc/class-tgm-plugin-activation.php’ );
function tgmpa_register_toolkit() {
 
    // Code here
 
}
add_action( ‘tgmpa_register’, ‘tgmpa_register_toolkit’ );

Далее мы настраиваем параметры, которые нам нужно включить плагин Toolkit. Внутри функции tgmpa_register_toolkit добавьте следующий код. Измените путь в параметре источника, если вы указали другую папку плагина на шаге 1 .

01
02
03
04
05
06
07
08
09
10
11
12
13
// Specify the Envato Toolkit plugin
$plugins = array(
    array(
        ‘name’ => ‘Envato WordPress Toolkit’,
        ‘slug’ => ‘envato-wordpress-toolkit-master’,
        ‘source’ => get_template_directory() .
        ‘required’ => true,
        ‘version’ => ‘1.5’,
        ‘force_activation’ => true,
        ‘force_deactivation’ => false,
        ‘external_url’ => »,
    ),
);

Вы также можете добавить другие плагины, добавив больше массивов в переменную $plugins .


Затем настройте параметры для TGM. Также внутри функции tgmpa_register_toolkit добавьте следующий код ниже предыдущего шага для настройки TGM. Я не буду вдаваться в подробности того, что делают отдельные настройки. Если вам нужна дополнительная информация об этих настройках, веб-сайт активации плагинов TGM хорошо объяснит каждый из них.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// i18n text domain used for translation purposes
$theme_text_domain = ‘default’;
 
// Configuration of TGM
$config = array(
    ‘domain’ => $theme_text_domain,
    ‘default_path’ => »,
    ‘parent_menu_slug’ => ‘admin.php’,
    ‘parent_url_slug’ => ‘admin.php’,
    ‘menu’ => ‘install-required-plugins’,
    ‘has_notices’ => true,
    ‘is_automatic’ => true,
    ‘message’ => »,
    ‘strings’ => array(
        ‘page_title’ => __( ‘Install Required Plugins’, $theme_text_domain ),
        ‘menu_title’ => __( ‘Install Plugins’, $theme_text_domain ),
        ‘installing’ => __( ‘Installing Plugin: %s’, $theme_text_domain ),
        ‘oops’ => __( ‘Something went wrong with the plugin API.’, $theme_text_domain ),
        ‘notice_can_install_required’ => _n_noop( ‘This theme requires the following plugin: %1$s.’, ‘This theme requires the following plugins: %1$s.’ ),
        ‘notice_can_install_recommended’ => _n_noop( ‘This theme recommends the following plugin: %1$s.’, ‘This theme recommends the following plugins: %1$s.’ ),
        ‘notice_cannot_install’ => _n_noop( ‘Sorry, but you do not have the correct permissions to install the %s plugin. Contact the administrator of this site for help on getting the plugin installed.’, ‘Sorry, but you do not have the correct permissions to install the %s plugins. Contact the administrator of this site for help on getting the plugins installed.’ ),
        ‘notice_can_activate_required’ => _n_noop( ‘The following required plugin is currently inactive: %1$s.’, ‘The following required plugins are currently inactive: %1$s.’ ),
        ‘notice_can_activate_recommended’ => _n_noop( ‘The following recommended plugin is currently inactive: %1$s.’, ‘The following recommended plugins are currently inactive: %1$s.’ ),
        ‘notice_cannot_activate’ => _n_noop( ‘Sorry, but you do not have the correct permissions to activate the %s plugin. Contact the administrator of this site for help on getting the plugin activated.’, ‘Sorry, but you do not have the correct permissions to activate the %s plugins. Contact the administrator of this site for help on getting the plugins activated.’ ),
        ‘notice_ask_to_update’ => _n_noop( ‘The following plugin needs to be updated to its latest version to ensure maximum compatibility with this theme: %1$s.’, ‘The following plugins need to be updated to their latest version to ensure maximum compatibility with this theme: %1$s.’ ),
        ‘notice_cannot_update’ => _n_noop( ‘Sorry, but you do not have the correct permissions to update the %s plugin. Contact the administrator of this site for help on getting the plugin updated.’, ‘Sorry, but you do not have the correct permissions to update the %s plugins. Contact the administrator of this site for help on getting the plugins updated.’ ),
        ‘install_link’ => _n_noop( ‘Begin installing plugin’, ‘Begin installing plugins’ ),
        ‘activate_link’ => _n_noop( ‘Activate installed plugin’, ‘Activate installed plugins’ ),
        ‘return’ => __( ‘Return to Required Plugins Installer’, $theme_text_domain ),
        ‘plugin_activated’ => __( ‘Plugin activated successfully.’, $theme_text_domain ),
        ‘complete’ => __( ‘All plugins installed and activated successfully. %s’, $theme_text_domain ),
        ‘nag_type’ => ‘updated’
    )
);

Измените переменную $theme_text_domain на текстовый домен, который вы используете, или оставьте его по default .


Наконец, давайте инициализируем TGM непосредственно перед завершением функции tgmpa_register_toolkit .

1
tgmpa( $plugins, $config );

Теперь сохраните ваши functions.php


Попробуйте активировать свою тему. Если у вас еще не установлен или не активирован плагин Envato WordPress Toolkit , то вы должны увидеть уведомление, подобное этому:

Envato-инструментарий-part1-плагин-уведомление

Из того, что у нас есть сейчас, мы можем на самом деле остановиться на серии, и ваши пользователи смогут обновить тему изнутри администратора; тем не менее, пользователи смогут видеть, что есть обновление, только если они находятся внутри панели администратора Toolkit.

Во второй части учебного пособия вы узнаете, как интегрировать библиотеку Envato WordPress Toolkit и как отображать уведомление администратора, когда обновление темы доступно в ThemeForest.