' . wp_unslash($global_settings['custom_css']) . ''; } if(!empty($global_settings['custom_code_in_head'])){ echo wp_kses(wp_unslash($global_settings['custom_code_in_head']), [ 'meta' => [ 'charset' => [], 'content' => [], 'http-equiv' => [], 'name' => [], ] ]); } } public function blockpress_show_footer_scripts() { $global_settings = get_option('blockpress_options'); if(!empty($global_settings['custom_js'])){ echo ''; } if(!empty($global_settings['custom_code_before_closed_body'])){ echo wp_kses_post($global_settings['custom_code_before_closed_body']); } } public function blockpress_admin_page() { $parent_slug = 'blockpress_dashboard'; add_submenu_page( $parent_slug, esc_html__('Settings', 'blockpress'), esc_html__('Settings', 'blockpress'), 'manage_options', 'blockpress_settings', array($this, 'settings_page') ); } public function settings_page() { if (!current_user_can('manage_options')) { wp_die('Unauthorized user'); } // Get the active tab from the $_GET param $default_tab = null; $tab = isset($_GET['tab']) ? sanitize_text_field($_GET['tab']) : $default_tab; ?>

[ 'charset' => [], 'content' => [], 'http-equiv' => [], 'name' => [], ] ]); $global_settings['custom_code_before_closed_body'] = wp_kses_post(wp_unslash($_POST['custom_code_before_closed_body'])); update_option('blockpress_options', $global_settings); } $custom_css = !empty($global_settings['custom_css']) ? wp_unslash($global_settings['custom_css']) : ''; $custom_js = !empty($global_settings['custom_js']) ? wp_unslash($global_settings['custom_js']) : ''; $custom_code_in_head = !empty($global_settings['custom_code_in_head']) ? wp_unslash($global_settings['custom_code_in_head']) : ''; $custom_code_before_closed_body = !empty($global_settings['custom_code_before_closed_body']) ? wp_unslash($global_settings['custom_code_before_closed_body']) : ''; ?>
" class="button button-primary button-large">
blockpress_save_general_form($_POST, $_FILES); } ?>

allowed_font_ext; require_once BLOCKPRESS_THEME_PATH . '/inc/admin_menu/templates/settings_general_form.php'; ?>
allowed_font_ext; ob_start(); require_once BLOCKPRESS_THEME_PATH . '/inc/admin_menu/templates/settings_general_font_item.php'; $html = ob_get_contents(); ob_get_clean(); wp_send_json(['html' => $html]); } public function blockpress_save_general_form($data, $files) { $global_settings = get_option('blockpress_global_settings'); $fonts_urls = $this->blockpress_save_files($files); $arr = []; for ($i = 0; (int)$data['fonts_count'] > $i; $i++) { //$item_arr = ['label' => sanitize_text_field($data['font_specific_style_name'][$i])]; foreach ($this->allowed_font_ext as $ext) { $item_arr[$ext] = !empty($fonts_urls[$i][$ext]) ? $fonts_urls[$i][$ext] : sanitize_text_field($data[$ext][$i]); } $arr[sanitize_text_field($data['font_family_name'][$i])] = $item_arr; } $new_localfont = json_encode($arr); $global_settings['localfont'] = $new_localfont; $localfontcss = ''; if (!empty($arr)) { foreach ($arr as $i => $value) { $localfontcss .= '@font-face {'; $localfontcss .= 'font-family: "' . $i . '";'; $localfontcss .= 'src: '; if (!empty($value['woff2'])) { $localfontcss .= 'url(' . $value["woff2"] . ') format("woff2"), '; } if (!empty($value['woff'])) { $localfontcss .= 'url(' . $value["woff"] . ') format("woff"), '; } if (!empty($value['ttf'])) { $localfontcss .= 'url(' . $value["ttf"] . ') format("ttf"), '; } if (!empty($value['tiff'])) { $localfontcss .= 'url(' . $value["tiff"] . ') format("tiff"), '; } $localfontcss .= ';'; $localfontcss .= 'font-display: swap;}'; } $localfontcss = str_replace(', ;', ';', $localfontcss); $global_settings['localfontcss'] = $localfontcss; $gs_global_css = (!empty($global_settings['globalcss'])) ? $global_settings['globalcss'] : ''; $upload_dir = wp_upload_dir(); require_once ABSPATH . 'wp-admin/includes/file.php'; global $wp_filesystem; $dir = trailingslashit($upload_dir['basedir']) . 'blockpress/'; // Set storage directory path WP_Filesystem(); // WP file system if (!$wp_filesystem->is_dir($dir)) { $wp_filesystem->mkdir($dir); } $blockpress_css_filename = 'globalstyle.css'; $gs_global_css = str_replace('!important', '', $gs_global_css); if (!$wp_filesystem->put_contents($dir . $blockpress_css_filename, $gs_global_css . $localfontcss)) { throw new Exception(__('CSS not saved due the permission!!!', 'blockpress')); } } update_option('blockpress_global_settings', $global_settings); } public function blockpress_save_files($files) { $result = []; $upload = wp_upload_dir(); $upload_dir = $upload['basedir'] . '/blockpress/fonts'; $upload_url = $upload['baseurl'] . '/blockpress/fonts'; foreach (array_keys($files) as $filename) { foreach ($files[$filename]["error"] as $key => $error) { if ($error == UPLOAD_ERR_OK) { $tmp_name = $files[$filename]["tmp_name"][$key]; $name = basename($files[$filename]["name"][$key]); $ext = pathinfo($name, PATHINFO_EXTENSION); $font_dir = $upload_dir . '/font_' . ($key + 1) . '/' . $ext; $this->blockpress_rm_rec($font_dir); //clean up dir before download if (!wp_mkdir_p($font_dir)) { return false; } if (move_uploaded_file($tmp_name, "$font_dir/$name")) { $result[$key][$ext] = $upload_url . '/font_' . ($key + 1) . '/' . $ext . '/' . $name; } } } } return $result; } public function blockpress_rm_rec($path) { if (is_file($path)) return unlink($path); if (is_dir($path)) { foreach (scandir($path) as $p) if (($p != '.') && ($p != '..')) $this->blockpress_rm_rec($path . '/' . $p); return rmdir($path); } return false; } } } ?>