/** * Hooks into taxonomy-specific actions if there are some term field groups associated. */ private function add_hooks() { $factory = Types_Field_Group_Term_Factory::get_instance(); $groups_by_taxonomies = $factory->get_groups_by_taxonomies(); $is_toolset_forms_support_needed = false; // Hooks for editing term fields foreach ($groups_by_taxonomies as $taxonomy => $groups) { if (!empty($groups)) { add_action("{$taxonomy}_add_form_fields", array($this, 'on_term_add')); add_action("{$taxonomy}_edit_form_fields", array($this, 'on_term_edit'), 10, 2); add_action("create_{$taxonomy}", array($this, 'on_term_update'), 10, 2); add_action("edit_{$taxonomy}", array($this, 'on_term_update'), 10, 2); $is_toolset_forms_support_needed = true; } } // Columns on the term listing $main_controller = Types_Main::get_instance(); $is_term_listing_page = $main_controller->is_admin() && 'edit' != wpcf_getget('action'); if ($is_term_listing_page) { $screen = get_current_screen(); add_action("manage_{$screen->id}_columns", array($this, 'manage_term_listing_columns')); add_filter("manage_{$screen->taxonomy}_custom_column", array($this, 'manage_term_listing_cell'), 10, 3); add_filter('hidden_columns', array($this, 'filter_hidden_columns'), 10, 3); } if ($is_toolset_forms_support_needed) { $this->add_toolset_forms_support(); } }
/** * Store field definition array in the options. * * This is a low-level method that doesn't perform any kind of validation or sanitization. Use with care. * * @param string $field_slug * @param array $definition_array * @since 2.0 */ private function set_field_definition($field_slug, $definition_array) { $fields_from_options = $this->get_fields_from_options(); $fields_from_options[$field_slug] = $definition_array; $this->update_field_definition_option($fields_from_options); // This can be called during an AJAX call, in which case the legacy code is not loaded Types_Main::get_instance()->require_legacy_functions(); // Clear the underlying legacy cache. wpcf_admin_fields_get_fields(false, false, false, $this->get_option_name(), false, true); }