/** * Associate a field definition with this group. * * @param WPCF_Field_Definition $field_definition * @return bool True on success, false otherwise. * @since 2.0 */ public function add_field_definition($field_definition) { $field_slugs = $this->get_field_slugs(); $slug_to_add = $field_definition->get_slug(); if (!in_array($slug_to_add, $field_slugs)) { $field_slugs[] = $slug_to_add; $is_success = $this->set_field_slugs($field_slugs); } else { $is_success = true; } return $is_success; }
/** * Update existing field definition. * * @param WPCF_Field_Definition $field_definition * @throws InvalidArgumentException * @return bool True when the update was successful, false otherwise. * @since 2.0 */ public function update_definition($field_definition) { if (!$field_definition instanceof WPCF_Field_Definition) { throw new InvalidArgumentException('Not a Types field definition.'); } $fields_from_options = $this->get_fields_from_options(); if (!array_key_exists($field_definition->get_slug(), $fields_from_options)) { return false; } $this->set_field_definition($field_definition->get_slug(), $field_definition->get_definition_array()); return true; }
/** * Remove field definition from this group. * * @param WPCF_Field_Definition $field_definition * @return bool */ public function remove_field_definition($field_definition) { $field_slugs = $this->get_field_slugs(); $slug_to_remove = $field_definition->get_slug(); $key = array_search($slug_to_remove, $field_slugs); if ($key !== false) { unset($field_slugs[$key]); } $is_success = $this->set_field_slugs($field_slugs); return $is_success; }