plugins-wp/wp-product-importer/includes/class-api-importer.php

67 lines
1.7 KiB
PHP

<?php
class WPI_API_Importer
{
private static function api_url($url)
{
$base_url = WPI_Config_Model::get_config('base_api');
return $base_url . $url;
}
public static function products(array $args = [])
{
$page = isset($args['page'])
? (int) $args['page']
: (int) WPI_Config_Model::get_config('current_page', 1);
$limit = isset($args['limit'])
? (int) $args['limit']
: (int) WPI_Config_Model::get_config('limit_per_time', 20);
$import_api = WPI_Config_Model::get_config('import_api');
$authen_key = WPI_Config_Model::get_config('authen_key');
if (!$import_api || !$authen_key) {
WPI_Logger::log('Missing API config');
return;
}
$url = add_query_arg([
'page' => $page,
'perPage' => $limit,
], $import_api);
WPI_Logger::log("Calling API: {$url}");
return wp_remote_get(self::api_url($url), [
'timeout' => 30,
'headers' => [
'Accept' => 'application/json',
'Authorization' => 'Bearer ' . $authen_key,
],
]);
}
public static function categories()
{
$url = WPI_Config_Model::get_config('categories_api');
$authen_key = WPI_Config_Model::get_config('authen_key');
if (!$url || !$authen_key) {
WPI_Logger::log('Missing API config');
return;
}
return wp_remote_get(self::api_url($url), [
'timeout' => 30,
'headers' => [
'Accept' => 'application/json',
'Authorization' => 'Bearer ' . $authen_key,
],
]);
}
}