template_key; } /** * Returns the localized template name * * @return mixed|void */ abstract public function get_name(); /** * Returns the feature image url * * @return string */ public function get_feature_image() { return ''; } /** * Returns the localized template description * Passes through a filter allowing for customization * * @return mixed|void */ abstract public function get_description(); /** * Returns all data for the template * * @return array */ public function get_data() { $key = $this->get_key(); $config = apply_filters( "userfeedback_get_template_config_{$key}", $this->get_config() ); return array( 'key' => $key, 'name' => $this->get_name(), 'description' => $this->get_description(), 'categories' => $this->categories, 'feature_image' => $this->get_feature_image(), 'tags' => $this->tags, 'config' => $config, 'is_available' => ! $this->is_pro || ( userfeedback_is_pro_version() && userfeedback_is_licensed() ), 'required_addons' => $this->get_required_addons(), ); } /** * Get array of the addons required by this template * * @return array */ public function get_required_addons() { return array(); } /** * Returns the template config. * Returns null if the template is not supported (is Pro only) * * @return array|null */ abstract function get_config(); }