=== Linstar - MultiPurpose ===
Original author: King-Theme (http://king-theme.com)
Updated edition by: TypoGuard.vip Dev Team (https://typoguard.vip)
Requires at least: 7.0
Tested up to: 7.1
Requires PHP: 8.0
Stable tag: 6.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html

Linstar is a multipurpose WordPress theme originally created by King-Theme. This is an updated edition, compatible with PHP 8+ and WordPress 7+, made available free of charge by the TypoGuard.vip Dev Team.


== Description ==

Linstar is a multipurpose theme with a large theme options panel, many header and footer layouts, blog layouts, custom post types (Our Team, Our Works, Testimonials, FAQ, Pricing Tables), WooCommerce integration (wishlist, product compare, ajax filter) and WPBakery Page Builder / LayerSlider support.

Linstar was created by King-Theme, and King-Theme is its original author and copyright holder. King-Theme no longer provides support or updates for the theme. The last release published by King-Theme was Linstar 5.0.2. That release no longer works on current versions of PHP and WordPress (see "Why this edition exists").

This edition, version 6.0, was prepared by the TypoGuard.vip Dev Team so that people who want to keep using Linstar can do so on PHP 8+ and WordPress 7+. It is distributed free of charge from https://typoguard.vip.

This is a compatibility and maintenance release. The design, the theme options and the features of Linstar 5.0.2 are unchanged, apart from the fixes listed below and the credits described in the "Footer credit" section.


== Why this edition exists ==

The Linstar package we started from (King-Theme's Linstar 5.x, identifying itself as version 5.0 in style.css; King-Theme's last release was 5.0.2) could not run on current software:

* On PHP 8 it stops with a parse error (curly-brace string offsets, removed in PHP 8.0), and further fatal errors follow from functions removed in PHP 7 and PHP 8 (`split()`, `create_function()`), from widgets whose old-style constructors no longer work, and from undefined constants that are now errors.
* On WordPress 5.9 and later, an empty file named `templates/index.html` made WordPress treat the theme as a block theme, so pages rendered blank.
* Saving the theme options, and several WooCommerce and WPBakery code paths, failed on PHP 8.
* The jQuery bundled with WordPress 7 (3.7.1) no longer supports several functions the theme scripts relied on.

Because King-Theme no longer maintains the theme, these problems would not have been fixed upstream.


== Compatibility ==

Tested with:

* PHP 8.5.11
* WordPress 7.1.2
* WooCommerce 11.1.2 (optional; only needed for the shop features)
* jQuery 3.7.1 (the version bundled with WordPress 7.1)

This edition targets PHP 8.0 and later. It has not been tested on PHP 7.x, and older WordPress versions are not supported.

Testing consisted of: syntax checks of every PHP file under PHP 8.5, requests to the front end and the admin (including the theme options panel, widgets screen, customizer and menus), all header, footer and blog layout variants, every widget and shortcode of the theme, saving the theme options, image resizing, importing content through the theme importer, and JavaScript console checks in a real browser.


== Changelog ==

= 6.0 - September 2026 - updated edition by the TypoGuard.vip Dev Team =

Changes compared with the King-Theme package (Linstar 5.x, last release 5.0.2):

PHP 8 compatibility
* Replaced `create_function()` (removed in PHP 8.0) with closures in the core class, the Code and Tabbed widgets and the wishlist.
* Converted the old-style constructors of 7 widgets (Code, Flickr, Twitter, Tabbed, WooCommerce Filter, Filter Reset, Compare) to `__construct()`.
* Removed `split()` and curly-brace string offsets, and quoted array keys that were used as constants in the theme options CSS templates (saving the options was fatal in PHP 8).
* Fixed deprecations of PHP 8.1 to 8.5: dynamic properties are now declared, optional parameters before required ones, the backtick operator, `curl_close()`, `imagedestroy()`, `xml_parser_free()`, `xml_set_object()` and `libxml_disable_entity_loader()`.
* Fixed runtime errors that are fatal in PHP 8: `count()` and `array_merge()` on null, an undefined WPBakery constant, a non-static method (`WP_Http::request`) called statically in the importer, a fatal error in the Flickr ajax handler when the feed is not valid XML, and PHP syntax errors in user-supplied code now return a failure instead of a fatal error.
* The theme options are no longer corrupted when they contain nested arrays (sidebars, typography): nested values were converted to the text "Array".

WordPress 7 compatibility
* Removed the empty `templates/index.html` that made WordPress 5.9 and later detect the theme as a block theme.
* Custom taxonomies of disabled post types no longer produce errors in the shortcode builder and the Customizer.
* Widget previews in the block-based widgets screen no longer fail for the Compare widget.
* Menu walkers no longer use an undefined variable.

jQuery 3 compatibility
* Replaced `.live()`, `.size()`, `.andSelf()` and `$(window).load()`.
* Rebuilt the button sets of the theme options panel without the jQuery UI `buttonset` widget, whose markup changed in newer jQuery UI versions.

WooCommerce
* Version detection failed for WooCommerce 10 and later (the version was read as 1.x), which disabled the whole WooCommerce integration. Fixed.
* Replaced functions and properties deprecated since WooCommerce 2.5 and 3.0 (`get_product`, `woocommerce_price`, `woocommerce_clean`, `woocommerce_get_page_id`, `get_cart_url`, `->id`, `->product_type`, `get_gallery_attachment_ids`, `get_related`, `list_attributes`, the `add_to_cart_fragments` filter and others).
* The wishlist, compare and filter modules no longer fail when there is no product in context.
* The product compare cookie is no longer unserialized with object instantiation allowed.

WPBakery Page Builder
* Removed calls to `endBlockComment()`, deprecated since WPBakery 4.7, from the theme's `vc_templates`.

Other
* Version 6.0.
* Added the updated-edition notice to style.css, to the welcome page ("Import Demos") and to the theme options panel.
* Added the footer credit bar (see "Footer credit").

= 5.0.2 and earlier =
Released by King-Theme. No changelog was published with the theme.


== Known limitations ==

* Bundled plugins: the plugin packages in `core/sample/plugins/` (LayerSlider 5.6.5, WPBakery / Visual Composer 4.11.2, Contact Form 7 4.4.1, Linstar Helper 1.0 and the Envato WordPress Toolkit) are the original 2015-2016 versions. They are NOT compatible with PHP 8 and were not updated in this edition. Install the current versions from their vendors instead (LayerSlider and WPBakery Page Builder are commercial products) and do not use the "Install Plugins" or "Import Data Sample" buttons of the theme importer to install them.
* Demo import: the sample data importer downloads its content from King-Theme servers (api.devn.co). These servers did not respond when tested on 25 September 2026, so the demo import may not work. The importer's routine for WXR export files was tested with a local export file and works, including downloading attachments.
* Twitter and Flickr widgets: these depend on third-party feeds and APIs that have changed or been retired. When the service is not available the widget shows an error message instead of content.
* Visual Composer templates: the templates in `vc_templates/` were written for WPBakery 4.x. They were checked for PHP errors only, because WPBakery Page Builder is a commercial plugin that was not available for testing.
* WooCommerce: the theme's WooCommerce template overrides date from the WooCommerce 2.x era. They work with WooCommerce 11, but WooCommerce may report some of them as outdated in its system status screen.
* Support: King-Theme no longer supports this theme. The TypoGuard.vip Dev Team provides this edition as it is, without a support commitment.


== Notes on security and behaviour ==

* The "Code" widget and the `[php]` shortcode run PHP code entered in the WordPress admin or in post content. Use them only on sites where all authors and administrators are trusted.
* On the first activation of the theme (when the `linstar_import` option does not exist yet) the theme applies bundled sample settings and widget data and may change the front page settings. Back up your database before activating the theme on an existing site.


== Footer credit ==

The footer of this edition shows the line "Linstar Theme is Updated by TypoGuard.vip Dev Team", linking to https://typoguard.vip, on a black bar below the copyright of every footer layout.

The authors ask that this credit is kept in place when you use this edition and in any copy of it that you redistribute.

This is a request for attribution. It is not an additional license term and it does not limit the rights that the GNU General Public License gives you, including the right to study, modify and redistribute the theme.


== License and copyright ==

Linstar is licensed under the GNU General Public License, version 2 or later. The license text is in `license.txt` and has not been modified.

* Original theme: Copyright King-Theme. King-Theme remains the original author and copyright holder of the theme.
* Modifications of this edition (see the changelog above and the list of modified files below): Copyright 2026 TypoGuard.vip Dev Team, released under the same license, GNU General Public License v2 or later.
* Third-party components bundled with the theme (for example JavaScript libraries, icon fonts and the plugin packages in `core/sample/plugins/`) keep their own licenses and copyrights.

As stated in sections 11 and 12 of the license, the theme is provided without warranty of any kind.

Original readme of the theme: "Technology by king-theme.com".


== Modified files ==

The following files were modified from the King-Theme package in September 2026 (see the changelog for what changed). One file was removed: `templates/index.html` (empty).

assets/js/custom.js
assets/js/jquery.flexslider.js
assets/js/pretty/js/jquery.prettyPhoto.js
core/king.ajax.php
core/king.class.php
core/king.functions.php
core/king.size.php
core/sample.php
core/sample/king.importer.php
core/sample/parsers.php
core/shortcodes/register.php
core/shortcodes/tools.php
core/widgets/flickr.php
core/widgets/tabbed.php
core/widgets/twitter.php
core/widgets/xcode.php
footer.php
options.php
options/css/options.css
options/fields/*/field_*.php (34 files: constructor signatures; button_set also has field_button_set.js)
options/fields/multi_text/field_multi_text.js
options/options.php
readme.txt
single-our-works.php
style.css
vc_templates/vc_accordion.php
vc_templates/vc_accordion_tab.php
vc_templates/vc_column.php
vc_templates/vc_column_inner.php
vc_templates/vc_raw_html.php
vc_templates/vc_row.php
vc_templates/vc_row_inner.php
vc_templates/vc_tab.php
vc_templates/vc_tabs.php
woocommerce/compare-product/assets/js/jquery.dataTables.min.js
woocommerce/compare-product/templates.php
woocommerce/compare-product/woocompare-frontend.php
woocommerce/compare-product/woocompare-widget.php
woocommerce/filter-product/widgets/king-filter-reset-widget.php
woocommerce/filter-product/widgets/king-filter-widget.php
woocommerce/settings/js/add-to-cart.js
woocommerce/settings/woo-functions.php
woocommerce/settings/woo-gate.php
woocommerce/single-product/product-image.php
woocommerce/single-product/product-thumbnails.php
woocommerce/single-product/related.php
woocommerce/single-product/tabs/additional-information.php
woocommerce/wishlist/add-to-cart.php
woocommerce/wishlist/templates/wishlist.php
woocommerce/wishlist/wishlist-init.php
woocommerce/wishlist/wishlist-shco.php
woocommerce/wishlist/wishlist-ui.php
woocommerce/wishlist/wishlist.php
