/** * @param string $action_name One of the allowed action names: 'manage_with_types' * @param array $field Field definition model passed from JS. * @param string $domain Field domain name. * @param mixed $action_specific_data * @return bool|mixed|null|WP_Error|WP_Error[]|WPCF_Field_Definition An error, array of errors, boolean indicating * success or a result value to be passed back to JS. * @since 2.0 */ private function single_field_control_action($action_name, $field, $domain, $action_specific_data) { $field_slug = wpcf_getarr($field, 'slug'); switch ($action_name) { case 'manage_with_types': return Types_Field_Utils::start_managing_field(wpcf_getarr($field, 'metaKey'), $domain); case 'stop_managing_with_types': return Types_Field_Utils::stop_managing_field($field_slug, $domain); case 'change_group_assignment': return Types_Field_Utils::change_assignment_to_groups($field_slug, $domain, $action_specific_data); case 'delete_field': return Types_Field_Utils::delete_field($field_slug, $domain); case 'change_field_type': return Types_Field_Utils::change_field_type($field_slug, $domain, $action_specific_data); case 'change_field_cardinality': return Types_Field_Utils::change_field_cardinality($field_slug, $domain, $action_specific_data); default: return new WP_Error(42, __('Invalid action name.', 'wpcf')); } }