dirs = $this->getTemplateDirectories(); } /** * Render a given template. * * @param $template * @param array $data * @param null $templateDir * * @return string */ public function render($template, $data = [], $templateDir = null) { if (is_null($templateDir)) { foreach ($this->dirs as $dir) { if (file_exists($dir . $template . '.php')) { $templateDir = $dir; break; } } } extract($data); ob_start(); require $templateDir . $template . '.php'; return ob_get_clean(); } /** * Get valid template directories and pass them through a filter * * @return array */ protected function getTemplateDirectories() { global $gdpr; $directories = array_filter([ get_stylesheet_directory() . '/gdpr-framework/', get_template_directory() . '/gdpr-framework/', $gdpr->PluginTemplatePath, ], 'is_dir'); return array_unique(apply_filters('gdpr/views', $directories)); } }