Нажмите для увеличения
Описание
Это библиотека из 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, потому что иначе у меня никогда ничего не заработает.
И я полагаю, что у многих других разработчиков возникла такая же проблема, когда они пытались создать функцию проверки обновлений для своих плагинов или их самих.
Кроме того, в этой библиотеке есть функция поиска по идентификатору элемента 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, потому что иначе у меня никогда ничего не заработает.
И я полагаю, что у многих других разработчиков возникла такая же проблема, когда они пытались создать функцию проверки обновлений для своих плагинов или их самих.
Похожие товары
Смотреть все
Хит продаж
WordPress
Хит продаж
WordPress