ReexyStore
WordPress

Envato Toolkit v1.4

65
1
02.01.2026
Бесплатно FREE
Безопасно
Мгновенно
Поддержка
Версия 1.4
Размер файла 33.54 KB
Категория WordPress

Описание

Это библиотека из 3 файлов + визуальный пользовательский интерфейс для проверки кодов покупки ваших клиентов, получения подробной информации о конкретном пользователе Envato (страна, город, общее количество подписчиков, общий объем продаж, аватар), получения информации о покупке лицензии и сроков действия поддержки, типа купленной лицензии, проверки обновлений приобретенных плагинов и тем и получения ссылок для их скачивания.

Кроме того, в этой библиотеке есть функция поиска по идентификатору элемента Envato, указав имя и автора плагина или темы. Итак - да, это инструмент, который вы, как разработчик/автор, искали месяцами.

Если вы ищете версию, предназначенную только для библиотеки, для интеграции в ваш плагин/тему, она находится на GitHub:

Набор инструментов Envato (автономный)

Основная цель этого плагина - помочь вам начать намного проще, не испытывая головной боли, пытаясь понять код плагинов WordPress - Envato Market, который является единственным, созданным Envato, и имеет настолько сложный и неясный код, что вы никогда не поймете, как он работает (см. пример ниже).

Когда я сам попытался создать в плагине функциональные кнопки [Проверить наличие обновлений] и [Проверить код покупки] и увидел код плагина WordPress - Envato Market, я был шокирован тем, насколько плохо он написан и как не следует его кодировать.

Например, вы хотите выдать сообщение об ошибке, если токен пользователя Envato пуст, что является обязательной строкой, то есть - pAA0aBCdeFGhiJKlmNOpqRStuVWxyZ44. Если вам нравятся K.I.S.S., PSR-2, D.R.Y., стандарты и парадигмы чистого кодирования, у вас, вероятно, будут только эти пять строк кода, чтобы каждый разработчик мог их понять:

$token = get_user_meta(get_current_user_id(), "envato_token", TRUE);
если($токен == "")
{
return new \WP_Error("api_token_error", __("Требуется токен API.", "envato-toolkit"));
}

Теперь давайте посмотрим, как выглядит та же трассировка задач в плагине WordPress - Envato Market:

- [Api.php -> request(..)] Проверьте, пуст ли токен:

если (пусто($токен))
{
return new WP_Error("api_token_error", __("Требуется токен API.", "envato-market") );
}

- [Api.php -> request(..)] Проанализируйте его из другой строки:

$token = Trim(str_replace("Носитель", "", $args["headers"]["Авторизация"] ) );

- [Api.php -> request(..)] Проанализируйте его еще раз - на этот раз из массива аргументов:

запрос публичной функции ($url, $args = array()) {
$по умолчанию = массив(
"тайм-аут" => 20,
);
$args = wp_parse_args($args, $defaults);
}

- [Api.php -> download(..)] Передайте переменную токена еще раз - на этот раз через параметры:

класс Envato_Market_API {
загрузка общедоступной функции ($id, $args = array()) {
$url = "https://api.envato.com/v2/market/buyer/download?item_id=" . $идентификатор. "&shorten_url=true";
вернуть $this->request($url, $args);
}
}

- [admin.php -> may_deferred_download(..)] Передайте его еще раз - на этот раз перенесите его в массив args из другого вызова метода:

функция may_deferred_download($options) {
$args = $this->set_bearer_args();
$options["package"] = envato_market()->api()->download($vars["item_id"], $args );
вернуть $опции;
}

- [admin.php -> set_bearer_args(..)] Оберните токен в многомерный массив строк:

$args = массив(
"заголовки" => массив(
"Авторизация" => "Носитель" . $токен,
),
);

- [admin.php -> set_bearer_args(..)] Передайте завернутый токен еще раз - на этот раз получите его из get_option:

foreach (envato_market()->get_option("items", array()) as $item) {
if ( $item["id"] === $id ) {
$токен = $item["токен"];
перерыв;
}
}

- [admin.php -> get_option(..)] Так что же в этом get_option? - Правильно, еще один вызов другого метода - get_options():

общественная функция get_option($name, $default = "") {
$options = self::get_options();
$name = self::sanitize_key($name);
return isset($options[$name])? $options[$name]: $default;
}

- [admin.php -> get_options()] Наконец, после почти 10 шагов по дереву, мы наконец-то получаем оригинал

Вызов метода WordPress, но теперь я снова запутался - что это за переменная option_name здесь:

публичная функция get_options() {
return get_option($this->имя_опции, массив());
}

- [envato-market.php -> init_globals()] Вот оно - имя ключа имени опции… Ой, подождите…

Нет, это не здесь. Она равна другой переменной, которая ставится

в другой функции очистки - похоже, я вижу это уже второй раз в дереве - очистка очистки:

$this->option_name = self::sanitize_key($this->slug);

- [envato-market.php -> init_globals()] Таким образом, имя ключа имени опции - это имя $this->slug.

Теперь давайте посмотрим, каково значение $this->slug:

$this->slug = "envato-market";

Итак, чтобы понять одну переменную, требуется одиннадцать (!) шагов. И весь код этого плагина такой. Приведенный выше пример был моей головной болью, пока я не понял, что мне нужно написать новый набор инструментов управления API Envato, вместо того, чтобы пытаться использовать то, что дает Envato, потому что иначе у меня никогда ничего не заработает.

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

Похожие товары

Смотреть все
Admin and Site Enhancements Pro v7.4.8 Хит продаж

Admin and Site Enhancements Pro v7.4.8

Мощный модульный плагин для WordPress, заменяющий десятки других плагинов. Настройка админки, оптимизация, безопасность — всё в одном.

Бесплатно
Ultimate Membership Pro v13.4 Хит продаж

Ultimate Membership Pro v13.4

Мощный плагин для создания платных подписок и членства на WordPress. Ограничение контента, рекуррентные платежи, интеграция с WooCommerce.

Бесплатно
Contact Form 7 v6.1.4 Хит продаж

Contact Form 7 v6.1.4

Бесплатно
WooCommerce v10.4.2 Хит продаж

WooCommerce v10.4.2

Бесплатно