Jake Vanderwerf
7 hours ago 3baf3d2545ba6ece6b74a64c0def59bd0774cf54
inc/integrations/Integrations.php
@@ -29,6 +29,15 @@
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
    */
@@ -57,7 +66,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 +328,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 +2714,15 @@
      return $this->title;
   }
   public static function title():string
   {
      return (new static())->getTitle();
   }
   public static function icon():string
   {
      return (new static())->getIcon();
   }
   /*********************************************************************
      RENDERING
    *********************************************************************/
@@ -2945,7 +2963,7 @@
      ?>
      <form id="<?=$this->service_name?>" class="integration <?php echo $is_connected ? 'connected' : 'disconnected'; ?>"
          data-service="<?php echo esc_attr($this->service_name); ?>">
         <div class="header row btw">
         <div class="header row x-btw">
            <h3><?php echo esc_html($this->title); ?></h3>
            <div class="setup">
               <?php if ($is_connected): ?>
@@ -3056,7 +3074,7 @@
            }
            ?>
         </div>
         <div class="actions row btw wrap">
         <div class="actions row x-btw wrap">
            <?php
            foreach ($this->buttons as $action => $label) {
               if (!$is_connected && $action !== 'save_credentials') {
@@ -3340,27 +3358,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 +3544,9 @@
   {
      return [];
   }
   public function getIcon():string
   {
      return $this->icon;
   }
}