configHandler = $configHandler; } /** * @inheritdoc */ protected function doInit() { parent::doInit(); add_action('wpcf7_save_contact_form', [$this, 'updateOptions'], 10, 1); } /** * @inheritdoc */ public function handleAction() { // } /** * @param \WPCF7_ContactForm $contactForm */ public function updateOptions(\WPCF7_ContactForm $contactForm) { $enabled = filter_input(INPUT_POST, 'aid-cf7cr-form-settings-enabled', FILTER_SANITIZE_STRING); $enabled = $enabled === 'on' ? true : false; $groupId = filter_input(INPUT_POST, 'aid-cf7cr-form-settings-group', FILTER_SANITIZE_STRING); if (!$groupId) { $groupId = null; } $formId = filter_input(INPUT_POST, 'aid-cf7cr-form-settings-form', FILTER_SANITIZE_STRING); if (!$formId) { $formId = null; } $mapping = filter_input(INPUT_POST, 'aid-cf7cr-form-settings-mapping', FILTER_SANITIZE_STRING, FILTER_REQUIRE_ARRAY); if (!is_array($mapping)) { $mapping = []; } $this->configHandler->saveOptions($contactForm->id(), [ 'enabled' => $enabled, 'group_id' => $groupId, 'form_id' => $formId, 'field_mappings' => $mapping ]); } }