From d957a4ff3272cc4f32888b950eb762a8e3b47310 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucas=20Garc=C3=ADa?= <lucas@codeccoop.org> Date: Tue, 23 Apr 2024 20:54:55 +0200 Subject: [PATCH] feat: dropdown form id select --- includes/class-settings.php | 30 ++++++++++++++++++++++++++++++ wpct-erp-forms.php | 3 --- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/includes/class-settings.php b/includes/class-settings.php index 18ee8b2..de370a6 100644 --- a/includes/class-settings.php +++ b/includes/class-settings.php @@ -15,4 +15,34 @@ class Settings extends Abstract\Settings $this->register_field('endpoints', $setting_name); } + + public function input_render($setting, $field, $value) + { + if (preg_match('/^endpoints.*form_id$/', $field)) { + return $this->render_forms_dropdown($setting, $field, $value); + } + + return parent::input_render($setting, $field, $value); + } + + private function render_forms_dropdown($setting, $field, $value) + { + $forms = $this->get_forms(); + $options = array_map(function ($form) use ($value) { + $selected = $form->id == $value ? 'selected' : ''; + return "<option value='{$form->id}' {$selected}>{$form->title}</option>"; + }, $forms); + return "<select name='{$setting}[{$field}]'>" . implode('', $options) . '</select>'; + } + + private function get_forms() + { + global $wpdb; + if (apply_filters('wpct_dc_is_plugin_active', false, 'contact-form-7/wp-contact-form-7.php')) { + return $wpdb->get_results("SELECT id, post_title title FROM wp_posts WHERE post_status = 'publish'"); + } elseif (apply_filters('wpct_dc_is_plugin_active', false, 'gravityforms/gravityforms.php')) { + return $wpdb->get_results("SELECT id, title FROM wp_gf_form WHERE is_active = TRUE"); + } + + } } diff --git a/wpct-erp-forms.php b/wpct-erp-forms.php index eac352d..a0c207e 100755 --- a/wpct-erp-forms.php +++ b/wpct-erp-forms.php @@ -36,9 +36,6 @@ require_once 'includes/class-settings.php'; require_once 'custom-blocks/form/form.php'; require_once 'custom-blocks/form-control/form-control.php'; -require_once 'includes/fields/gf/iban/class-field-adapter.php'; -require_once 'includes/fields/gf/vat-id/class-field-adapter.php'; - class Wpct_Erp_Forms extends Abstract\Plugin { private $_integrations = []; -- GitLab