/**
  * Get registered control fields
  *
  * @since  1.0.0
  * @param  mixed  $term     current term object.
  * @param  [type] $taxonomy current taxonomy name.
  * @return string
  */
 public function get_fields($term, $taxonomy, $format = '%s')
 {
     $result = '';
     foreach ($this->args['fields'] as $key => $field) {
         if (in_array($key, Cherry_Term_Meta::$register_fields)) {
             continue;
         } else {
             Cherry_Term_Meta::$register_fields[] = $key;
         }
         if (false !== $term) {
             $value = get_term_meta($term->term_id, $key, true);
         } else {
             $value = '';
         }
         $value = !empty($value) ? $value : Cherry_Toolkit::get_arg($field, 'value', '');
         if (isset($field['options_callback'])) {
             $options = call_user_func($field['options_callback']);
         } else {
             $options = Cherry_Toolkit::get_arg($field, 'options', array());
         }
         $args = array('type' => Cherry_Toolkit::get_arg($field, 'type', 'text'), 'id' => $key, 'name' => $key, 'value' => $value, 'label' => Cherry_Toolkit::get_arg($field, 'label', ''), 'options' => $options, 'multiple' => Cherry_Toolkit::get_arg($field, 'multiple', false), 'filter' => Cherry_Toolkit::get_arg($field, 'filter', false), 'size' => Cherry_Toolkit::get_arg($field, 'size', 1), 'null_option' => Cherry_Toolkit::get_arg($field, 'null_option', 'None'), 'multi_upload' => Cherry_Toolkit::get_arg($field, 'multi_upload', true), 'library_type' => Cherry_Toolkit::get_arg($field, 'library_type', 'image'), 'upload_button_text' => Cherry_Toolkit::get_arg($field, 'upload_button_text', 'Choose'), 'max_value' => Cherry_Toolkit::get_arg($field, 'max_value', '100'), 'min_value' => Cherry_Toolkit::get_arg($field, 'min_value', '0'), 'max' => Cherry_Toolkit::get_arg($field, 'max', '100'), 'min' => Cherry_Toolkit::get_arg($field, 'min', '0'), 'step_value' => Cherry_Toolkit::get_arg($field, 'step_value', '1'), 'style' => Cherry_Toolkit::get_arg($field, 'style', 'normal'), 'display_input' => Cherry_Toolkit::get_arg($field, 'display_input', true), 'controls' => Cherry_Toolkit::get_arg($field, 'controls', array()), 'fields' => Cherry_Toolkit::get_arg($field, 'fields', array()), 'auto_parse' => Cherry_Toolkit::get_arg($field, 'auto_parse', false), 'icon_data' => Cherry_Toolkit::get_arg($field, 'icon_data', array()), 'toggle' => Cherry_Toolkit::get_arg($field, 'toggle', array('true_toggle' => 'On', 'false_toggle' => 'Off', 'true_slave' => '', 'false_slave' => '')), 'class' => Cherry_Toolkit::get_arg($field, 'class'), 'required' => Cherry_Toolkit::get_arg($field, 'required', false), 'placeholder' => Cherry_Toolkit::get_arg($field, 'placeholder'), 'master' => Cherry_Toolkit::get_arg($field, 'master'), 'title_field' => Cherry_Toolkit::get_arg($field, 'title_field'), 'ui_kit' => Cherry_Toolkit::get_arg($field, 'ui_kit', true));
         $current_element = $this->ui_builder->get_ui_element_instance($args['type'], $args);
         $result .= sprintf($format, $current_element->render());
     }
     return $result;
 }
 /**
  * Safely get file content.
  *
  * @since  1.1.4
  * @global object $wp_filesystem
  * @param  string $file File path.
  * @return bool
  */
 public function get_file($file)
 {
     if (!function_exists('WP_Filesystem')) {
         include_once ABSPATH . '/wp-admin/includes/file.php';
     }
     WP_Filesystem();
     global $wp_filesystem;
     $result = '';
     if ($wp_filesystem->abspath()) {
         $result = $wp_filesystem->get_contents($file);
     } else {
         $result = Cherry_Toolkit::get_file($file);
     }
     return $result;
 }
 /**
  * Get registered control fields
  *
  * @since  1.0.0
  * @since  1.1.3 Using dirname( __FILE__ ) instead of __DIR__.
  * @since  1.2.0 Use interface builder for HTML rendering.
  *
  * @param  mixed $post Current post object.
  * @return void
  */
 public function get_fields($post)
 {
     if (is_array($this->args['single']) && isset($this->args['single']['key'])) {
         $this->meta_values = get_post_meta($post->ID, $this->args['single']['key'], true);
     }
     $zero_allowed = apply_filters('cherry_zero_allowed_controls', array('stepper', 'slider'));
     foreach ($this->args['fields'] as $key => $field) {
         $default = Cherry_Toolkit::get_arg($field, 'value', '');
         $value = $this->get_meta($post, $key, $default);
         if (isset($field['options_callback'])) {
             $field['options'] = call_user_func($field['options_callback']);
         }
         $element = Cherry_Toolkit::get_arg($field, 'element', 'control');
         $field['id'] = Cherry_Toolkit::get_arg($field, 'id', $key);
         $field['name'] = Cherry_Toolkit::get_arg($field, 'name', $key);
         $field['type'] = Cherry_Toolkit::get_arg($field, 'type', '');
         $field['value'] = $value;
         // Fix zero values for stepper and slider
         if (!$value && in_array($field['type'], $zero_allowed)) {
             $field['value'] = 0;
         }
         $register_callback = 'register_' . $element;
         if (method_exists($this->builder, $register_callback)) {
             call_user_func(array($this->builder, $register_callback), $field);
         }
     }
     $this->builder->render();
 }
 /**
  * Render html UI_Text.
  *
  * @since  4.0.0
  */
 public function render()
 {
     $html = Cherry_Toolkit::render_view(dirname(__FILE__) . '/view/button-view.php', $this->settings);
     return $html;
 }
 /**
  * Show widget form
  *
  * @since  1.0.0
  * @see    WP_Widget->form
  * @param  array $instance current widget instance.
  * @return void
  */
 public function form($instance)
 {
     if (empty($this->settings)) {
         return;
     }
     foreach ($this->settings as $key => $setting) {
         $value = isset($instance[$key]) ? $instance[$key] : Cherry_Toolkit::get_arg($setting, 'value', '');
         if (isset($setting['options_callback'])) {
             $callback = $this->get_callback_data($setting['options_callback']);
             $options = call_user_func_array($callback['callback'], $callback['args']);
         } else {
             $options = Cherry_Toolkit::get_arg($setting, 'options', array());
         }
         $args = array('type' => Cherry_Toolkit::get_arg($setting, 'type', 'text'), 'id' => $this->get_field_id($key), 'name' => $this->get_field_name($key), 'value' => $value, 'label' => Cherry_Toolkit::get_arg($setting, 'label', ''), 'options' => $options, 'multiple' => Cherry_Toolkit::get_arg($setting, 'multiple', false), 'filter' => Cherry_Toolkit::get_arg($setting, 'filter', false), 'size' => Cherry_Toolkit::get_arg($setting, 'size', 1), 'null_option' => Cherry_Toolkit::get_arg($setting, 'null_option', 'None'), 'multi_upload' => Cherry_Toolkit::get_arg($setting, 'multi_upload', true), 'library_type' => Cherry_Toolkit::get_arg($setting, 'library_type', 'image'), 'upload_button_text' => Cherry_Toolkit::get_arg($setting, 'upload_button_text', 'Choose'), 'max_value' => Cherry_Toolkit::get_arg($setting, 'max_value', '100'), 'min_value' => Cherry_Toolkit::get_arg($setting, 'min_value', '0'), 'step_value' => Cherry_Toolkit::get_arg($setting, 'step_value', '1'), 'style' => Cherry_Toolkit::get_arg($setting, 'style', 'normal'), 'placeholder' => Cherry_Toolkit::get_arg($setting, 'placeholder', ''), 'toggle' => Cherry_Toolkit::get_arg($setting, 'toggle', array('true_toggle' => 'On', 'false_toggle' => 'Off', 'true_slave' => '', 'false_slave' => '')), 'master' => Cherry_Toolkit::get_arg($setting, 'master', ''), 'icon_data' => Cherry_Toolkit::get_arg($setting, 'icon_data', array()), 'title_field' => Cherry_Toolkit::get_arg($setting, 'title_field'), 'add_label' => Cherry_Toolkit::get_arg($setting, 'add_label', ''), 'fields' => Cherry_Toolkit::get_arg($setting, 'fields', array()), 'ui_kit' => Cherry_Toolkit::get_arg($setting, 'ui_kit', true));
         $this->render_control($args);
     }
 }
 /**
  * Get view for interface elements.
  *
  * @since  1.0.0
  * @access protected
  * @param  string $type View type.
  * @param  array  $args Input data.
  * @return string
  */
 protected function get_view($type = 'control', array $args = array())
 {
     if (empty($view)) {
         $path = dirname(__FILE__) . '/';
         $path .= array_key_exists($type, $this->args['views']) ? $this->args['views'][$type] : $this->args['views']['control'];
     } else {
         $path = $view;
     }
     $view = Cherry_Toolkit::render_view($path, $args);
     return $view;
 }
<?php

/**
 * Ui-Button view
 *
 * @package    Cherry_UI_Elements
 * @subpackage View
 * @author     Cherry Team <*****@*****.**>
 * @copyright  Copyright (c) 2012 - 2016, Cherry Team
 * @link       http://www.cherryframework.com/
 * @license    http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
 */
// If this file is called directly, abort.
if (!defined('WPINC')) {
    die;
}
$class = trim(implode(' ', array('ui-button', 'ui-button-' . $__data['style'] . '-style ', $__data['master'], $__data['class'])));
$attrs = Cherry_Toolkit::join(array('type' => esc_attr($__data['type']), 'id' => esc_attr($__data['id']), 'name' => esc_attr($__data['name']), 'class' => esc_attr($class), 'disabled' => filter_var($__data['disabled'], FILTER_VALIDATE_BOOLEAN), 'form' => esc_attr($__data['form']), 'formaction' => esc_attr($__data['formaction'])));
?>

<button <?php 
echo $attrs;
?>
><?php 
echo $__data['content'];
?>
</button>