/** * Constructor for class. * * Pass an array of field_name => sanatization_callback * * @param array $fields */ public function __construct($fields) { $this->fields = $fields; add_filter('lasso_api_params', function ($params) { foreach ($this->fields as $field => $cbs) { $field = lasso_clean_string($field); $params['process_meta_update'][$field] = $cbs; } return $params; }); add_filter('lasso_meta_fields', function ($allowed) { foreach (array_keys($this->fields) as $field) { $field = lasso_clean_string($field); $allowed[] = $field; } return $allowed; }); }
/** * Used internally as a callback to build a tab or content area for modal addons * * @param $tab object * @param $type string tab or content * @uses lasso_modal_addons() * @since 0.9.4 */ function lasso_modal_addons_content($tab = '', $type) { $name = lasso_clean_string($tab['name']); if ('tab' == $type) { $out = sprintf('<li data-addon-name="%s">%s</li>', $name, $tab['name']); } else { if ('content' == $type) { $content = isset($tab['content']) && is_callable($tab['content']) ? call_user_func($tab['content']) : false; $options = isset($tab['options']) && is_callable($tab['options']) ? call_user_func($tab['options']) : false; $out = sprintf('<div class="lasso--modal__content not-visible" data-addon-content="%s"> %s%s </div>', $name, $content, lasso_option_form($name, $options)); } } return $out; }
/** * Build settings inputs for settings fields * * @param $name * @param $option mixed object * @param $type string text, textarea, checkbox, color * @since 5.0 */ function lasso_option_engine_option($name = '', $option = '', $type = '') { if (empty($type) || empty($option)) { return; } $id = isset($option['id']) ? $option['id'] : false; $id = $id ? lasso_clean_string($id) : false; $desc = isset($option['desc']) ? $option['desc'] : false; $value = get_post_meta(get_the_id(), $option['id'], true); switch ($type) { case 'text': $out = sprintf('<label for="lasso--post-option-%s">%s</label><input id="lasso--post-option-%s" name="%s" type="text" value="%s">', $id, esc_html($desc), $id, $id, $value); break; case 'textarea': $out = sprintf('<label for="lasso--post-option-%s">%s</label><textarea id="lasso--post-option-%s" name="%s">%s</textarea>', $id, esc_html($desc), $id, $id, $value); break; case 'checkbox': $out = sprintf('<label for="lasso--post-option-%s" class="checkbox-control checkbox"><input id="lasso--post-option-%s" type="checkbox" name="%s" class="checkbox"><span class="control-indicator"></span>%s', $id, $id, $id, esc_html($desc)); break; } return $out; }