input_type = $input_type;
}
/**
* Field Title
*
* @hook wpcomment_{$field_type}_input_meta_title
*/
function title() {
$title = isset( self::$input_meta['title'] ) ? stripslashes( self::$input_meta['title'] ): '';
$title = wpcomment_wpml_translate($title, 'wp-comment-fields');
return apply_filters("wpcomment_input_meta_title", $title, self::$input_meta);
}
/**
* Field Desciption
*
* @hook wpcomment_{$field_type}_input_meta_desc
* @hook wpcomment_description_content
*/
function desc() {
$desc = isset( self::$input_meta['description'] ) ? stripslashes( self::$input_meta['description'] ): '';
$desc = wpcomment_wpml_translate($desc, 'wp-comment-fields');
// old Filter
$desc = apply_filters( 'wpcomment_description_content', $desc, self::$input_meta );
return apply_filters("wpcomment_input_meta_desc", $desc, self::$input_meta);
}
/**
* Field Required
*
* @hook wpcomment_{$field_type}_input_meta_required
*/
function required() {
$required = isset( self::$input_meta['required'] ) ? self::$input_meta['required']: '';
return apply_filters("wpcomment_input_meta_required", $required, self::$input_meta);
}
/**
* Field Desc Tooltip
*/
function enable_tooltip() {
$required = isset( self::$input_meta['desc_tooltip'] ) ? self::$input_meta['desc_tooltip']: '';
return $required;
}
/**
* Field dataname (Field Unique ID)
*
* @hook wpcomment_{$field_type}_input_meta_data_name
*/
function data_name() {
$data_name = isset( self::$input_meta['data_name'] ) ? sanitize_key( self::$input_meta['data_name'] ): $this->title();
return apply_filters("wpcomment_input_meta_data_name", $data_name, self::$input_meta);
}
/**
* Field Placeholder
*
* @hook wpcomment_{$field_type}_input_meta_placeholder
*/
function placeholder() {
$placeholder = isset( self::$input_meta['placeholder'] ) ? stripslashes( self::$input_meta['placeholder'] ): '';
$placeholder = wpcomment_wpml_translate($placeholder, 'wp-comment-fields');
return apply_filters("wpcomment_input_meta_placeholder", $placeholder, self::$input_meta);
}
/**
* Field Error Message
*
* @hook wpcomment_{$field_type}_input_meta_error_msg
*/
function error_msg() {
$error_msg = isset( self::$input_meta['error_message'] ) ? self::$input_meta['error_message']: '';
$error_msg = wpcomment_wpml_translate($error_msg, 'wp-comment-fields');
return apply_filters("wpcomment_input_meta_error_msg", $error_msg, self::$input_meta);
}
/**
* Field Label
*
* Show Asterisk If Require On
*
* Show Description If Not Null
*
* @hook wpcomment_field_description
* @hook wpcomment_{$field_type}_input_meta_label_html
*/
function field_label($tooltip=true, $desc=true, $asterisk=true){
$asterisk_symbol = ( !empty($this->required()) && $this->title() != '' ) ? ' *' : '';
$show_desc = ( !empty( $this->desc() ) ) ? '' : '';
if ($desc) {
$show_desc = apply_filters('wpcomment_field_description', $show_desc, self::$input_meta);
}
$field_label = $this->title();
// $field_label = $this->title() . $asterisk_symbol . $show_desc;
if ($asterisk) {
$field_label = $field_label . $asterisk_symbol;
}
if ($tooltip) {
$field_label = $field_label . $show_desc;
}
return apply_filters("wpcomment_input_meta_label_html", $field_label, self::$input_meta);
}
/**
* Field Desciption With Tooltip
*
* @hook wpcomment_input_meta_tooltip_desc
*/
function tooltip(){
$show_desc = ( !empty( $this->desc() ) ) ? '' : '';
$show_desc = apply_filters('wpcomment_field_description', $show_desc, self::$input_meta);
return apply_filters("wpcomment_input_meta_tooltip_desc", $show_desc, self::$input_meta);
}
/**
* Field Multiple Options
*
* Checkbox|Radio|Select|Image|Pallete
*
* @hook wpcomment_{$field_type}_input_meta_multi_options
*/
function options() {
$options = isset( self::$input_meta['options'] ) ? self::$input_meta['options']: array();
if(is_array($options)){
$options = array_map("wpcomment_translation_options", $options);
}
return apply_filters("wpcomment_input_meta_multi_options", $options, self::$input_meta);
}
/**
* Images Options
*
* @hook wpcomment_{$field_type}_input_meta_images
*/
function images() {
$images = isset( self::$input_meta['images'] ) ? self::$input_meta['images']: array();
return apply_filters("wpcomment_input_meta_images", $images, self::$input_meta);
}
/**
* Audio/Video Options
*
* @hook wpcomment_{$field_type}_input_meta_audio
*/
function audio_video() {
$audios = isset( self::$input_meta['audio'] ) ? self::$input_meta['audio']: array();
return apply_filters("wpcomment_input_meta_audio", $audios, self::$input_meta);
}
/*===================================
Wrapper Classes Section
===================================*/
/**
* Field inner Wrapper Classes
*
* @hook wpcomment_input_wrapper_class
*/
function field_inner_wrapper_classes() {
$classes = ['form-group'];
$wrapper_classes = implode(' ',$classes);
// return apply_filters_deprecated( 'wpcomment_input_wrapper_class', array( $wrapper_classes, self::$input_meta ), '21.3', 'wpcomment_input_wrapper_classes' );
return apply_filters('wpcomment_input_wrapper_class', $wrapper_classes, self::$input_meta);
}
/**
* Field Label Classes
*
* @hook wpcomment_{$this->input_type}_input_label_classes
*/
function label_classes() {
$classes = ['form-control-label'];
$label_classes = apply_filters("wpcomment_input_label_classes", $classes, self::$input_meta);
$label_classes = implode(' ',$label_classes);
return $label_classes;
}
/**
* Field Classes Array
*
* @hook wpcomment_{$this->input_type}_input_meta_classes
* @hook wpcomment_input_classes
*/
function input_classes_array() {
$classes = isset( self::$input_meta['class'] ) ? explode(',',self::$input_meta['class']): array();
if( !empty( $classes ) ) {
$classes[] = 'form-control';
} else {
$classes = array('form-control');
}
if ($this->input_type == 'color') {
$classes[] = 'text';
}else{
$classes[] = $this->input_type;
}
$classes[] = 'wpcomment-input';
if($this->required()){
$classes[] = "wpcomment-required";
}
if (($this->input_type == 'radio' && ($key = array_search('form-control', $classes)) !== false) ||
($this->input_type == 'checkbox' && ($key = array_search('form-control', $classes)) !== false ) ||
($this->input_type == 'image' && ($key = array_search('form-control', $classes)) !== false)) {
unset($classes[$key]);
$classes[] = 'wpcomment-check-input';
}
if ($this->input_type == 'select' && ($key = array_search('form-control', $classes)) !== false){
unset($classes[$key]);
$classes[] = 'form-control';
$classes[] = 'form-select';
}
$classes = apply_filters("wpcomment_input_meta_classes", $classes, self::$input_meta);
return $classes;
}
/**
* Field Classes
*
* @hook wpcomment_{$this->input_type}_input_meta_classes
* @hook wpcomment_input_classes
*/
function input_classes() {
$classes = $this->input_classes_array();
// $input_classes = apply_filters_deprecated( 'wpcomment_input_classes', array( $classes, self::$input_meta ), '21.3', 'wpcomment_form_input_classes' );
$input_classes = apply_filters('wpcomment_input_classes', $classes, self::$input_meta);
$input_classes = implode(' ',$input_classes);
return $input_classes;
}
/**
* Radio Input label classes
*
* @hook wpcomment_radio_input_label_classes
*/
function radio_label_classes() {
$classes = ['form-check-label'];
$label_class = apply_filters('wpcomment_radio_input_label_classes', $classes, self::$input_meta);
$label_class = implode(' ',$label_class);
return $label_class;
}
/**
* Checkbox Input label classes
*
* @hook wpcomment_checkbox_input_label_classes
*/
function checkbox_label_classes() {
$classes = ['form-check-label'];
$label_class = apply_filters('wpcomment_checkbox_input_label_classes', $classes, self::$input_meta);
$label_class = implode(' ',$label_class);
return $label_class;
}
/**
* Generate Field Attribute Name Key
*
* @hook wpcomment_{$this->input_type}_input_name_attr
*/
function form_name() {
$form_name = "wpcomment[fields][".esc_attr($this->data_name())."]";
if( $this->input_type == 'checkbox' ) {
$form_name .= '[]';
}
return apply_filters("wpcomment_input_name_attr", $form_name, self::$input_meta);
}
/**
* Get input meta value by key
*
* @hook wpcomment_{$this->input_type}_input_meta_value_by_key
*/
function get_meta_value($key, $default=null) {
$value = ! is_null($default) ? $default : '';
if( isset(self::$input_meta[$key]) && self::$input_meta[$key] !='' ) {
$value = self::$input_meta[$key];
}
$value = apply_filters("wpcomment_{$this->input_type}_input_meta_value_by_key", $value, $key, self::$input_meta);
return apply_filters('wpcomment_field_meta_value', $value, $key, self::$input_meta);
}
}