# OptionTree

`meteorgpl-plugin/option-tree` — a WordPress plugin as a Composer package.

Theme Options UI Builder for WordPress. A simple way to create & save Theme Options and Meta Boxes for free or premium themes.

- Author: Derek Herman (Custom by 7uptheme) — http://valendesigns.com
- Homepage: https://github.com/valendesigns/option-tree/
- License: not declared
- Buy a license from the vendor: https://github.com/valendesigns/option-tree/
- Page: https://meteorgpl.com/packages/meteorgpl-plugin/option-tree
- Requires WordPress: 3.8
- Tested up to WordPress: 4.4
- Translations: et
- Vendor: Derek Herman (Custom by 7uptheme) — https://meteorgpl.com/vendors/valendesigns.com

## About

OptionTree attempts to bridge the gap between WordPress developers, designers and end-users by creating fully responsive option panels and meta boxes with an ease unlike any other plugin. OptionTree has many advanced features with well placed hooks and filters to adjust every aspect of the user experience. 

Build your Theme Options panel locally with an easy to use drag & drop interface and then export a functioning `theme-options.php` file for production use that is i18n translation ready, with your custom text domain automatically inserted. 

And, in just a few simple lines of code, save settings to the database with a unique array ID so none of your Theme Options conflict with other themes that use OptionTree. 

Also, OptionTree now takes full advantage of the new color schemes introduced in WordPress 3.8, it looks and feels built-in.

#### Theme Integration
If you're like me, you want to know how everything works. Download and activate the [OptionTree Theme](https://github.com/valendesigns/option-tree-theme) and see first hand how to integrate OptionTree into your own project. I'll walk you through installing OptionTree and you'll get a chance to see all the various options and filters first hand and in the wild.

#### Contributing
To contribute or report bugs, please go to the [OptionTree Github](https://github.com/valendesigns/option-tree) repository.

#### Sponsorship
OptionTree is a project partly sponsored by ThemeForest, the largest WordPress theme marketplace on the web.

#### Option Types
This is a complete list of all the available option types that come shipped with OptionTree.

* Background
* Border
* Box Shadow
* Category Checkbox
* Category Select
* Checkbox
* Colorpicker
* Colorpicker Opacity
* CSS
* Custom Post Type Checkbox
* Custom Post Type Select
* Date Picker
* Date Time Picker
* Dimension
* Gallery
* Google Fonts
* JavaScript
* Link Color
* List Item
* Measurement
* Numeric Slider
* On/Off
* Page Checkbox
* Page Select
* Post Checkbox
* Post Select
* Radio
* Radio Image
* Select
* Sidebar Select
* Slider
* Social Links
* Spacing
* Tab
* Tag Checkbox
* Tag Select
* Taxonomy Checkbox
* Taxonomy Select
* Text
* Textarea
* Textarea Simple
* Textblock
* Textblock Titled
* Typography
* Upload

## Changelog

### 2.7.3

* Hotfix - Update regex for Object Injection check to include `+` bypass and PHP serialized classes. props @erwanlr

### 2.7.2

* Hotfix - Extend the `unfiltered_html` `iframe` capabilities to support additional `style` attributes.

### 2.7.1

* Hotfix - Fix error cannot redeclare `_sanitize_recursive()`. props @shramee
* Hotfix - Ensure `iframe` supports the `style` attribute for users with `unfiltered_html` capabilities.
* Hotfix - Ensure `noscript` is supported for users with `unfiltered_html` capabilities.

### 2.7.0

* Require PHP 5.3+
* Fix all PHPCS errors and warnings.
* Fix a vulnerability where Object Injection could take place if someone has a valid nonce.
* Force all settings to be sanitized and escaped before saving and during display.
* Add filter `ot_validate_setting_input_safe` which is used to validate the input value of a custom setting type. All values must be validated!
* Add a notice to let users know that a custom setting type is not properly validating saved data and do a best-effort sanitize of the user data before saving it.
* Fix issue with Composer autoload and only load OptionTree if we have access to WordPress. props @infomaniac50
* Fix deprecated `create_function` notice in PHP 7.2+. props @modesthatred
* Fix notice "Only variables should be passed by reference". props @SergeAx
* Add `wordpress-plugin` project type to composer file. props @egifford
* Removed translation files.
* Removed the deprecated XML file import method.
* Fix SQL syntax issue. props @ryanlabelle
* Fix metabox radio & checkbox style issues. props @ryanlabelle

### 2.6.0

* Fix a reflected XSS vulnerability with the `add_list_item` & `add_social_links` Ajax requests.
* Fix the Google Fonts URL so it passed the W3 Validator. props @BassemN
* Fix `global_admin_css` so it's only enqueued when needed.
* Fix `dynamic.css` so that a child theme doesn't load the styles saved to the parent theme.
* Add filter `ot_recognized_post_format_meta_boxes` to support additional post formats meta boxes. props @BassemN
* Add action `ot_do_settings_fields_before` & `ot_do_settings_fields_after`. props @BassemN, @valendesigns
* Add Text Domain to plugin file to fully support the new translate.wordpress.org Language Packs.
* Fix notice in PHP 7.0.0 props @Zackio

Full changelog: https://meteorgpl.com/packages/meteorgpl-plugin/option-tree/changelog

## Install

```sh
composer config repositories.meteorgpl composer https://composer.meteorgpl.com
composer require meteorgpl-plugin/option-tree
```

The repository needs a token (see https://meteorgpl.com/docs). The vendor's license checks are intact: activate the plugin in WordPress with a key bought from the vendor.

## Versions

No version has been published yet.

