Jake Vanderwerf
2026-06-29 4089ba01e0881c89a72332e13bc3a80b6bddec2a
inc/integrations/Integrations.php
@@ -28,6 +28,17 @@
 */
abstract class Integrations
{
   //Flag to allow for custom settings (defaults, etc) for an integration in the dashboard
   public static bool $hasExtraOptions = false;
   /**
    * 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
@@ -57,7 +68,7 @@
    * Used for UI rendering in admin interfaces
    */
   public string $title;  // Human-readable service name (e.g., 'Google My Business')
   public string $icon;   // Phosphoricons icon slug
   public string $icon = '';   // Phosphoricons icon slug
   /**
    * Credentials & State
@@ -319,7 +330,7 @@
      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();
@@ -2705,6 +2716,20 @@
      return $this->title;
   }
   public static function title():string
   {
      return (new static())->getTitle();
   }
   public static function icon():string
   {
      return (new static())->getIcon();
   }
   public static function hasExtraOptions():bool
   {
      return (new static())::$hasExtraOptions;
   }
   /*********************************************************************
      RENDERING
    *********************************************************************/
@@ -3340,27 +3365,10 @@
         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
@@ -3543,4 +3551,9 @@
   {
      return [];
   }
   public function getIcon():string
   {
      return $this->icon;
   }
}