| | |
| | | |
| | | class AddIntegrationFields { |
| | | protected string $service_name; |
| | | protected Registrar $registrar; |
| | | private Registrar $registrar; |
| | | protected Integration $config; |
| | | protected array $allowed; |
| | | |
| | | public function __construct(string $service_name, ?Registrar $registrar = null) { |
| | | $this->initAllowed(); |
| | | if (!in_array($service_name, $this->allowed)) { |
| | | if (!array_key_exists($service_name, $this->allowed)) { |
| | | return; |
| | | } |
| | | |
| | |
| | | |
| | | $this->config = $registrar->getIntegration($service_name); |
| | | |
| | | add_action('jvb_define_integrations', [$this, 'addIntegrationFields'],20); |
| | | } |
| | | protected function initAllowed():void |
| | | { |
| | |
| | | public function addIntegrationFields():void |
| | | { |
| | | $fields = $this->getIntegrationFields(); |
| | | // error_log('[AddIntegrationFields] adding fields for '.$this->service_name.': '.print_r($fields, true)); |
| | | foreach ($fields as $fieldName => $fieldConfig) { |
| | | $this->registrar->fields()->addField($fieldName, $fieldConfig); |
| | | } |