{"id":1306,"date":"2021-03-13T10:28:01","date_gmt":"2021-03-13T07:28:01","guid":{"rendered":"https:\/\/www.pexlechris.dev\/library-viewer\/?page_id=1306"},"modified":"2026-05-09T15:45:38","modified_gmt":"2026-05-09T12:45:38","slug":"changelog","status":"publish","type":"page","link":"https:\/\/www.pexlechris.dev\/library-viewer\/pro\/changelog\/","title":{"rendered":"Changelog"},"content":{"rendered":"\n\n\n\n<h2 class=\"wp-block-heading\">= 2.1.0 =<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tested up to: 6.9.4<\/li>\n\n\n\n<li>Tested up to PHP: 8.3<\/li>\n\n\n\n<li>[Enhancement]: Code refactor of class <code>Library_Viewer_Pro_Init<\/code>.<\/li>\n\n\n\n<li>[Enhancement]: Use <code>Library_Viewer_Init::should_load_shortcode()<\/code> &amp;&amp; <code>Library_Viewer_Init::should_load_file_viewer()<\/code> instead of <code>!is_admin()<\/code> to determine if Library Viewer Pro classes will be loaded<\/li>\n\n\n\n<li>[Bug Fix]: Fix a bug introduced in 2.0.9 related to filterable globals.<\/li>\n<\/ul>\n\n\n\n\n\n\n<h2 class=\"wp-block-heading\">= 2.0.9 =<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Global <code>abspath<\/code> introduced in Library Viewer 3.0.0, can be filtered in Library Viewer Pro 2.1.0 with WP filter <code>lv_filter_global_abspath<\/code><\/li>\n\n\n\n<li>Also file globals <code>file_fake_link<\/code>, <code>file_real_link<\/code>, <code>file_abs_path<\/code>, <code>file_name<\/code>, <code>file_extension<\/code>, <code>file_folder_real_path<\/code>, <code>file_folder_abs_path<\/code> now can be filtered with WP filter <code>lv_filter_global_{$global}<\/code><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">= 2.0.8 =<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Fix php Warning about url_suffix introduce in version 2.0.6<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">= 2.0.7 =<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tested up to WP 6.7.1<\/li>\n\n\n\n<li>Fix Notice &#8220;Function _load_textdomain_just_in_time was called&nbsp;incorrectly&#8221;<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">= 2.0.6 =<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">PLEASE UPDATE Library Viewer to version 2.0.8 in order Library Viewer Pro 2.0.6 can work!<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tested up to WP 6.6.2<\/li>\n\n\n\n<li>Required PHP version: 7.0<\/li>\n\n\n\n<li>Tested up to PHP: 8.2<\/li>\n\n\n\n<li>Minor Code Fixes<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">= 2.0.5 =<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">PLEASE UPDATE Library Viewer to version 2.0.7 in order Library Viewer Pro 2.0.5 can work!<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tested up to WP 6.6.1<\/li>\n\n\n\n<li>Required PHP version: 7.0<\/li>\n\n\n\n<li>[Enhancement]: Replaced <code>explode<\/code>, <code>ltrim<\/code>, and <code>rtrim<\/code> functions with <code>substr<\/code> to handle the <code>path<\/code> parameter more reliably and avoid potential bugs.<\/li>\n\n\n\n<li>[Enhancement]: The <code>path<\/code> parameter no longer needs to avoid starting or ending with a slash (<code>\/<\/code>). Any leading or trailing slashes will now be automatically trimmed.<\/li>\n\n\n\n<li>[Bug Fix]: Fix warnings in PHP 8.0<\/li>\n\n\n\n<li>[Bug Fix]: lv_filter_global_path filter not worked before. Now works!<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">= 2.0.4 =<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">PLEASE UPDATE Library Viewer to version 2.0.5 in order Library Viewer Pro 2.0.4 can work!<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tested up to WP 5.9.2<\/li>\n\n\n\n<li>[Enhancement]: &#8220;shown folders&#8221; parameter now looks at file path not only in file name in order to determine to show folder or not. So, just the first level folder need to satisfy the condition in order all the folders inside it to be visible.<\/li>\n\n\n\n<li>[Enhancement]: Better message if a shortcode used more than 1 times in the same page. Now, you cannot use shortcode 2 times in the same page without the parameter url_suffix in at least one of the shortcodes<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">= 2.0.3 =<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">[Bug Fix]: Bug fix in license system. Now the license object gets the domain from site_url not from $_SERVER[&#8216;REQUEST_URI&#8217;]\n\n\n\n<h2 class=\"wp-block-heading\">= 2.0.2 =<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"> PLEASE UPDATE Library Viewer to version 2.0.3 in order Library Viewer Pro 2.0.2 can work! <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tested up to WP 5.8<\/li>\n\n\n\n<li>[Enhancement]: If you use <code>url_suffix<\/code> parameter, the <code>dir<\/code> GET parameter in the URL maybe has been changed, and you can change it from your own:<\/li>\n\n\n\n<li>[New]: If <code>path<\/code>folder (shortcode path attribute) doesn&#8217;t exists, will be created automatically when the shortcode will called in the front-end.<\/li>\n\n\n\n<li>[New]: <code>lv_dir_name<\/code> filter introduced. You can change the name of <strong>dir <\/strong>get parameter (What is this <strong>dir<\/strong>? This: yoursite.com\/mylibrary?<strong>dir<\/strong>=library) <\/li>\n\n\n\n<li>[Enhancement]: From now and then, the <code>Library_Viewer_Pro_Shortcode<\/code> class extends the <code>Library_Viewer_Pro_Shortcode_Alias<\/code> class. This class is an alias maybe of <code>Library_Viewer_Shortcode<\/code> class, determined by the hooks.<\/li>\n\n\n\n<li>[Enhancement]: Documentation has been enhanced and <\/li>\n\n\n\n<li>[Enhancement]: Documentation URL has been changed.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">= 2.0.1 =<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Bug Fixed! From <span style=\"text-decoration: underline;\">2.0.1 version of Library Viewer Pro<\/span> and <span style=\"text-decoration: underline;\">2.0.2 version of Library Viewer<\/span>, you can use the <div class=\"library-viewer--container\" library-viewer-name=\"library\"><div class=\"library-viewer--breadcrumb\"><span class=\"library-viewer--breadcrumb_delimiter\">\/<\/span><a class=\"library-viewer--breadcrumb-item\" href=\"?dir=library\">library<\/a><\/div><div class=\"library-viewer--folder\"><h3 class=\"entry-title\"><a href=\"?dir=library\/folder%E2%80%931\"><span class=\"library-viewer--folder__icon\" style=\"background-image:url(https:\/\/www.pexlechris.dev\/library-viewer\/wp-content\/plugins\/library-viewer\/assets\/folder-icon.png)\"><\/span>folder 1<\/a><\/h3><\/div><div class=\"library-viewer--folder\"><h3 class=\"entry-title\"><a href=\"?dir=library\/folder%E2%80%933\"><span class=\"library-viewer--folder__icon\" style=\"background-image:url(https:\/\/www.pexlechris.dev\/library-viewer\/wp-content\/plugins\/library-viewer\/assets\/folder-icon.png)\"><\/span>folder 3<\/a><\/h3><\/div><div class=\"library-viewer--file\"><a class=\"library-viewer--file default_viewer\" target=\"_blank\" href=\"https:\/\/www.pexlechris.dev\/library-viewer\/library\/file 1.png\"><span class=\"library-viewer--file__icon library-viewer--png__icon\"><\/span>file 1.png<\/a><\/div><div class=\"library-viewer--file\"><a class=\"library-viewer--file default_viewer\" target=\"_blank\" href=\"https:\/\/www.pexlechris.dev\/library-viewer\/library\/file 4.pdf\"><span class=\"library-viewer--file__icon library-viewer--pdf__icon\"><\/span>file 4.pdf<\/a><\/div><div class=\"library-viewer--file\"><a class=\"library-viewer--file default_viewer\" target=\"_blank\" href=\"https:\/\/www.pexlechris.dev\/library-viewer\/library\/file 6.pdf\"><span class=\"library-viewer--file__icon library-viewer--pdf__icon\"><\/span>file 6.pdf<\/a><\/div><div class=\"library-viewer--file\"><a class=\"library-viewer--file default_viewer\" target=\"_blank\" href=\"https:\/\/www.pexlechris.dev\/library-viewer\/library\/file 7.mp3\"><span class=\"library-viewer--file__icon library-viewer--mp3__icon\"><\/span>file 7.mp3<\/a><\/div><\/div> shortcode more than one time in the same page, with the help of <code>url_suffix<\/code> parameter. How to use it? See <a aria-label=\"documentation (opens in a new tab)\" href=\"https:\/\/www.pexlechris.dev\/library-viewer\/pro\/docs\/parameters\/\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"rank-math-link\"><span style=\"text-decoration: underline;\">parameters&#8217; documentation<\/span><\/a>.<\/li>\n\n\n\n<li>License system has been fixed, so when the license server is down to see the appropriate messages.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">= 2.0.0 =<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">PLEASE UPDATE Library Viewer to version 2.0.0 in order Library Viewer Pro can work<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Major update for Library Viewer Pro<\/li>\n\n\n\n<li>Backward compatibility for [library-viewer-pro] shortcode has been removed. Please use the <div class=\"library-viewer--container\" library-viewer-name=\"library\"><div class=\"library-viewer--breadcrumb\"><span class=\"library-viewer--breadcrumb_delimiter\">\/<\/span><a class=\"library-viewer--breadcrumb-item\" href=\"?dir=library\">library<\/a><\/div><div class=\"library-viewer--folder\"><h3 class=\"entry-title\"><a href=\"?dir=library\/folder%E2%80%931\"><span class=\"library-viewer--folder__icon\" style=\"background-image:url(https:\/\/www.pexlechris.dev\/library-viewer\/wp-content\/plugins\/library-viewer\/assets\/folder-icon.png)\"><\/span>folder 1<\/a><\/h3><\/div><div class=\"library-viewer--folder\"><h3 class=\"entry-title\"><a href=\"?dir=library\/folder%E2%80%933\"><span class=\"library-viewer--folder__icon\" style=\"background-image:url(https:\/\/www.pexlechris.dev\/library-viewer\/wp-content\/plugins\/library-viewer\/assets\/folder-icon.png)\"><\/span>folder 3<\/a><\/h3><\/div><div class=\"library-viewer--file\"><a class=\"library-viewer--file default_viewer\" target=\"_blank\" href=\"https:\/\/www.pexlechris.dev\/library-viewer\/library\/file 1.png\"><span class=\"library-viewer--file__icon library-viewer--png__icon\"><\/span>file 1.png<\/a><\/div><div class=\"library-viewer--file\"><a class=\"library-viewer--file default_viewer\" target=\"_blank\" href=\"https:\/\/www.pexlechris.dev\/library-viewer\/library\/file 4.pdf\"><span class=\"library-viewer--file__icon library-viewer--pdf__icon\"><\/span>file 4.pdf<\/a><\/div><div class=\"library-viewer--file\"><a class=\"library-viewer--file default_viewer\" target=\"_blank\" href=\"https:\/\/www.pexlechris.dev\/library-viewer\/library\/file 6.pdf\"><span class=\"library-viewer--file__icon library-viewer--pdf__icon\"><\/span>file 6.pdf<\/a><\/div><div class=\"library-viewer--file\"><a class=\"library-viewer--file default_viewer\" target=\"_blank\" href=\"https:\/\/www.pexlechris.dev\/library-viewer\/library\/file 7.mp3\"><span class=\"library-viewer--file__icon library-viewer--mp3__icon\"><\/span>file 7.mp3<\/a><\/div><\/div> shortcode.<\/li>\n\n\n\n<li>Library Viewer Pro has been tested up to WP 5.6.2<\/li>\n\n\n\n<li>NEW PARAMETERS: hidden_folders, hidden_files, shown_folders, shown_files, waiting_seconds<br>More details here: <a href=\"https:\/\/www.pexlechris.dev\/library-viewer\/pro\/parameters\" target=\"_blank\" rel=\"noreferrer noopener\"><span style=\"text-decoration: underline;\">https:\/\/www.pexlechris.dev\/library-viewer\/pro\/parameters<\/span><\/a><\/li>\n\n\n\n<li>Many new hooks in Library Viewer plugin. See Library Viewer&#8217;s changelog: <a href=\"http:\/\/wordpress.org\/plugins\/library-viewer\/#developers\" data-type=\"URL\" data-id=\"wordpress.org\/plugins\/library-viewer\/#developers\"><span style=\"text-decoration: underline;\">wordpress.org\/plugins\/library-viewer\/#developers<\/span><\/a><br>More details here: <a href=\"https:\/\/www.pexlechris.dev\/library-viewer\/pro\/hooks\"><span style=\"text-decoration: underline;\">https:\/\/www.pexlechris.dev\/library-viewer\/pro\/hooks<\/span><\/a><\/li>\n\n\n\n<li>With Library Viewer Pro, now you can change the root identifier keyword, that you need to pass in the shortcode parameter<br><code>path<\/code> to display in the front-end the folders &amp; files of root directory of your site\/ftp server.<br>Also, this keyword will be displayed in the URL as get parameter <code>dir<\/code> and in the breadcrumb.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">= 1.1.4 =<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Move Library Viewer Pro&#8217;s license from file to DB<\/li>\n\n\n\n<li>License system communication issue fixed<\/li>\n\n\n\n<li>License messages has been fixed<\/li>\n\n\n\n<li>Delete option on uninstall<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">= 1.1.3 =<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Update dependencies about Library Viewer Plugin<\/li>\n\n\n\n<li>Instructions file updated<\/li>\n\n\n\n<li>Set file_get_contents function timeout 5 seconds<\/li>\n\n\n\n<li>More flexible updates<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">= 1.1.2 =<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Some error fixes<\/li>\n\n\n\n<li>Activate license even if php function file_get_contents not working<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">= 1.1.0 =<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>now is possible to restrict users from open files by a capability using the have_file_access parameter<\/li>\n\n\n\n<li>php die() replaced by wp_die() for more pretty messages<\/li>\n\n\n\n<li>now you can more easily add an icon in the front of a file using CSS<\/li>\n\n\n\n<li>Some filters hooks have been added (see in Filters &amp; Actions section)<\/li>\n\n\n\n<li>Library Viewer Pro now needs Library Viewer to work effectively<\/li>\n\n\n\n<li>The shortcode <div class=\"library-viewer--container\" library-viewer-name=\"library\"><div class=\"library-viewer--breadcrumb\"><span class=\"library-viewer--breadcrumb_delimiter\">\/<\/span><a class=\"library-viewer--breadcrumb-item\" href=\"?dir=library\">library<\/a><\/div><div class=\"library-viewer--folder\"><h3 class=\"entry-title\"><a href=\"?dir=library\/folder%E2%80%931\"><span class=\"library-viewer--folder__icon\" style=\"background-image:url(https:\/\/www.pexlechris.dev\/library-viewer\/wp-content\/plugins\/library-viewer\/assets\/folder-icon.png)\"><\/span>folder 1<\/a><\/h3><\/div><div class=\"library-viewer--folder\"><h3 class=\"entry-title\"><a href=\"?dir=library\/folder%E2%80%933\"><span class=\"library-viewer--folder__icon\" style=\"background-image:url(https:\/\/www.pexlechris.dev\/library-viewer\/wp-content\/plugins\/library-viewer\/assets\/folder-icon.png)\"><\/span>folder 3<\/a><\/h3><\/div><div class=\"library-viewer--file\"><a class=\"library-viewer--file default_viewer\" target=\"_blank\" href=\"https:\/\/www.pexlechris.dev\/library-viewer\/library\/file 1.png\"><span class=\"library-viewer--file__icon library-viewer--png__icon\"><\/span>file 1.png<\/a><\/div><div class=\"library-viewer--file\"><a class=\"library-viewer--file default_viewer\" target=\"_blank\" href=\"https:\/\/www.pexlechris.dev\/library-viewer\/library\/file 4.pdf\"><span class=\"library-viewer--file__icon library-viewer--pdf__icon\"><\/span>file 4.pdf<\/a><\/div><div class=\"library-viewer--file\"><a class=\"library-viewer--file default_viewer\" target=\"_blank\" href=\"https:\/\/www.pexlechris.dev\/library-viewer\/library\/file 6.pdf\"><span class=\"library-viewer--file__icon library-viewer--pdf__icon\"><\/span>file 6.pdf<\/a><\/div><div class=\"library-viewer--file\"><a class=\"library-viewer--file default_viewer\" target=\"_blank\" href=\"https:\/\/www.pexlechris.dev\/library-viewer\/library\/file 7.mp3\"><span class=\"library-viewer--file__icon library-viewer--mp3__icon\"><\/span>file 7.mp3<\/a><\/div><\/div> used now instead of [library-viewer-pro]<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">= 1.0.5 =<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Library Viewer Pro has been tested up to WP 5.3.2<\/li>\n\n\n\n<li>PHP Notices fixed<\/li>\n\n\n\n<li>Compatibility with sites that exist in a subdirectory fixed* Folders icons NOW are printed by css background-image attribute<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">= 1.0.4 =<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>SECURITY PATCH<\/li>\n\n\n\n<li>New License System<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">= 1.0.2 =<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Library Viewer Pro has been tested up to WP 5.2.3<\/li>\n\n\n\n<li>Compatibility with Visual Composer have been tested and works fine<\/li>\n\n\n\n<li>Instruction to fix the conflict with Remove Uppercase Ascents Plugin added in FAQ<\/li>\n\n\n\n<li>Go Back button have been added in error messages<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">= 1.0.1 =<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Library Viewer &amp; Library Viewer Pro compatibility fixed<br>(now the links of files of custom viewer are the same in free &amp; Pro Plugin)<\/li>\n\n\n\n<li>Incorrect instructions fixed in Instructions PDF!<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">= 1.0.0 =<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Initial Release<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>= 2.1.0 = = 2.0.9 = = 2.0.8 = = 2.0.7 = = 2.0.6 = PLEASE UPDATE Library Viewer to version 2.0.8 in order Library Viewer Pro 2.0.6 can work! = 2.0.5 = PLEASE UPDATE Library Viewer to version 2.0.7 in order Library Viewer Pro 2.0.5 can work! = 2.0.4 = PLEASE UPDATE Library Viewer [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":1258,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"zakra_page_container_layout":"customizer","zakra_page_sidebar_layout":"customizer","zakra_remove_content_margin":false,"zakra_sidebar":"customizer","zakra_transparent_header":"customizer","zakra_logo":0,"zakra_main_header_style":"default","zakra_menu_item_color":"","zakra_menu_item_hover_color":"","zakra_menu_item_active_color":"","zakra_menu_active_style":"","zakra_page_header":true,"footnotes":""},"class_list":["post-1306","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.pexlechris.dev\/library-viewer\/wp-json\/wp\/v2\/pages\/1306","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pexlechris.dev\/library-viewer\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.pexlechris.dev\/library-viewer\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.pexlechris.dev\/library-viewer\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pexlechris.dev\/library-viewer\/wp-json\/wp\/v2\/comments?post=1306"}],"version-history":[{"count":50,"href":"https:\/\/www.pexlechris.dev\/library-viewer\/wp-json\/wp\/v2\/pages\/1306\/revisions"}],"predecessor-version":[{"id":2845,"href":"https:\/\/www.pexlechris.dev\/library-viewer\/wp-json\/wp\/v2\/pages\/1306\/revisions\/2845"}],"up":[{"embeddable":true,"href":"https:\/\/www.pexlechris.dev\/library-viewer\/wp-json\/wp\/v2\/pages\/1258"}],"wp:attachment":[{"href":"https:\/\/www.pexlechris.dev\/library-viewer\/wp-json\/wp\/v2\/media?parent=1306"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}