| | |
| | | abstract class Integrations |
| | | { |
| | | /** |
| | | * Queue types |
| | | * These types match with IntegrationExecutor |
| | | */ |
| | | protected static string $syncTo = 'sync_to'; |
| | | protected static string $deleteFrom = 'delete_from'; |
| | | protected static string $syncFrom = 'sync_from'; |
| | | protected static string $syncCustomer = 'sync_customer'; |
| | | protected static string $import = 'import'; |
| | | /** |
| | | * API Configuration |
| | | * These properties define how the integration connects to external services |
| | | */ |
| | |
| | | if (!$taxonomies) { |
| | | // Combine both content and taxonomy filtering |
| | | $taxonomies = []; |
| | | foreach (Registrar::getFeatured('is_content', 'term') as $type) { |
| | | foreach (Registrar::withFeature('is_content', 'term') as $type) { |
| | | $registrar = Registrar::getInstance($type); |
| | | if ($registrar->hasIntegration($this->service_name)) { |
| | | $taxonomies[] = $registrar->getSlug(); |
| | |
| | | return []; |
| | | } |
| | | |
| | | $key = BASE.$this->service_name.'_enabled_content_types'; |
| | | $enabled = get_option($key); |
| | | if (!$enabled) { |
| | | $enabled = []; |
| | | foreach (Registrar::getRegistered() as $registrar) { |
| | | $registrar = Registrar::getInstance($registrar); |
| | | if (!$registrar->hasIntegration($this->service_name)) { |
| | | continue; |
| | | } |
| | | $type = $registrar->getIntegration($this->service_name)->getContent_type(); |
| | | if (!$type) { |
| | | continue; |
| | | } |
| | | |
| | | if (!in_array($type, $enabled)) { |
| | | $enabled[] = $type; |
| | | } |
| | | } |
| | | update_option($key, $enabled); |
| | | } |
| | | return $enabled; |
| | | return array_filter(array_map(function($registrar) { |
| | | $registrar = Registrar::getInstance($registrar); |
| | | return $registrar->getIntegration($this->service_name)->getContentType(); |
| | | }, Registrar::withIntegration($this->service_name))); |
| | | } |
| | | |
| | | protected function getSupportedImage(int $imgID):int |