construct = 'we are in the child class';
}
public function date_time_picker($field, $args,$post_id) {
$acfvc_option = get_option('acfvc_default');
if ($acfvc_option) {
if (array_key_exists('date_time_format',$acfvc_option['general'])) {
$date_time_format_selected = $acfvc_option['general']['date_time_format'];
}
}
if ( $date_time_format_selected == "acf_default" ) {
$output = $field["value"];
} else {
$dateObj = DateTime::createFromFormat($field["return_format"], $field["value"]);
$unixtimestamp = $dateObj->getTimestamp();
$date_format = get_option( 'date_format' );
$time_format = get_option( 'time_format' );
$date_time_format = $date_format.' '.$time_format;
$output = date_i18n($date_time_format,$unixtimestamp);
}
return apply_filters('acfvc_date_time_picker',$output,$field,$post_id);
}
public function time_picker($field, $args,$post_id) {
$acfvc_option = get_option('acfvc_default');
if ($acfvc_option) {
if (array_key_exists('time_format',$acfvc_option['general'])) {
$time_format_selected = $acfvc_option['general']['time_format'];
}
}
if ( $time_format_selected == "acf_default" ) {
$output = $field["value"];
} else {
$unixtimestamp = strtotime($field["value"]);
$time_format = get_option( 'time_format' );
$output = date_i18n($time_format,$unixtimestamp);
}
return apply_filters('acfvc_time_picker',$output,$field,$post_id);
}
public function range($field, $args, $post_id) {
$prepend = "";
$append = "";
$prepend_append_array = array();
if ( array_key_exists( 'prepend_append', $args ) ) {
$prepend_append_array = explode( ',', $args["prepend_append"] );
if ( $field["prepend"] && in_array( 'prepend', $prepend_append_array ) ) {
$prepend = ''.$field["prepend"].' ';
}
if ( $field["append"] && in_array( 'append', $prepend_append_array ) ) {
$append = ' '.$field["append"].'';
}
}
$output = $prepend.$field["value"].$append;
return apply_filters('acfvc_range',$output,$field,$post_id);
}
public function button_group($field, $args,$post_id) {
$button_values = $field["value"];
$output = '';
if ( $field["return_format"] == "array" ) {
$output = $button_values["label"];
} else {
if ( !empty($button_values) ) {
$output = $button_values;
}
}
return apply_filters('acfvc_button_group',$output,$field,$post_id);
}
public function clone_field($field,$args,$post_id) {
$field_key = $args["field_key"];
$clone_field_key = $args["clone_field_key"];
$acf_version = $args["acf_version"];
$link_text = $args["link_text"];
$gallery_options = $args["gallery_options"];
$clone_field_data = get_field_object($clone_field_key);
if ( !empty($field["value"]) ) {
foreach ($field["value"] as $key => $value) {
if ($key == $clone_field_data["name"]) {
$clone_field_data["value"] = $value;
$field_data = $clone_field_data;
$output .= '
';
if ( 'text' === $field_data["type"] ) {
if ( !empty($field_data["value"]) ) {
$output .= parent::text($field_data, $args, $post_id);
}
} elseif ( 'textarea' === $field_data["type"] ) {
if ( !empty($field_data["value"]) ) {
$output .= parent::textarea($field_data, $args, $post_id);
}
} elseif ( 'wysiwyg' === $field_data["type"] ) {
if ( !empty($field_data["value"]) ) {
$output .= parent::wysiwyg($field_data, $args, $post_id);
}
} elseif ( 'number' === $field_data["type"] ) {
if ( !empty($field_data["value"]) ) {
$output .= parent::number($field_data, $args, $post_id);
}
} elseif ( 'email' === $field_data["type"] ) {
if ( !empty($field_data["value"]) ) {
$output .= parent::email($field_data, $args, $post_id);
}
} elseif ( 'password' === $field_data["type"] ) {
if ( !empty($field_data["value"]) ) {
$output .= parent::password($field_data, $args, $post_id);
}
} elseif ( 'image' === $field_data["type"]) {
if ( !empty($field_data["value"]) ) {
$output .= parent::image($field_data, $args, $post_id);
}
} elseif('file' === $field_data["type"]) {
if ( !empty($field_data["value"]) ) {
$output .= parent::file($field_data, $args, $post_id);
}
} elseif ( 'select' === $field_data["type"]) {
if ( !empty($field_data["value"]) ) {
$output .= parent::select($field_data, $args, $post_id);
}
} elseif ( 'checkbox' === $field_data["type"] ) {
if ( !empty($field_data["value"]) ) {
$output .= parent::checkbox($field_data, $args, $post_id);
}
} elseif ( 'radio' === $field_data["type"] ) {
if ( !empty($field_data["value"]) ) {
$output .= parent::radio($field_data, $args, $post_id);
}
} elseif ( 'user' === $field_data["type"] ) {
if ( !empty($field_data["value"]) ) {
$output .= parent::user($field_data, $args, $post_id);
}
} elseif ( 'page_link' === $field_data["type"] ) {
if ( !empty($field_data["value"]) ) {
$output .= parent::page_link($field_data, $args, $post_id);
}
} elseif ( 'google_map' === $field_data["type"] ) {
if ( !empty($field_data["value"]) ) {
$output .= parent::google_map($field_data, $args, $post_id);
}
} elseif ('date_picker' === $field_data["type"]) {
if ( !empty($field_data["value"]) ) {
$output .= parent::date_picker($field_data, $args, $post_id);
}
} elseif ('color_picker' === $field_data["type"]) {
if ( !empty($field_data["value"]) ) {
$output .= parent::color_picker($field_data, $args, $post_id);
}
} elseif ('true_false' === $field_data["type"]) {
$output .= parent::true_false($field_data, $args, $post_id);
} elseif ('taxonomy' === $field_data["type"]) {
$output .= parent::taxonomy($field_data, $args, $post_id);
} elseif('post_object' === $field_data["type"]) {
if ( !empty($field_data["value"]) ) {
$output .= parent::post_object($field_data, $args, $post_id);
}
} elseif('relationship' === $field_data["type"]) {
if ( !empty($field_data["value"]) ) {
$output .= parent::relationship($field_data, $args, $post_id);
}
} elseif('url' === $field_data["type"]) {
$output .= parent::url($field_data, $args, $post_id);
} elseif('link' === $field["type"]) {
$output .= parent::link($field, $args, $post_id);
} elseif('oembed' === $field_data["type"]) {
$output .= parent::oembed($field_data, $args, $post_id);
} elseif('gallery' === $field_data["type"]) {
$output .= parent::gallery($field_data, $args, $post_id);
} elseif('repeater' === $field_data["type"]) {
$output .= parent::repeater($field_data, $args, $post_id);
} else {
// $output .= $field_data["type"]." is not supported";
$output_filter = apply_filters( "acf_vc_clone_add_on_fields",$field_data,$args,$post_id );
if ( is_array( $output_filter ) ) {
$output .= $output_filter["type"]." is not supported";
} else {
$output .= $output_filter;
}
}
$output .= '
';
}
}
}
// $output = $field["value"];
return apply_filters('acfvc_clone',$output,$field,$args,$post_id);
}
public static function flexible_content($field,$args,$post_id) {
$acf_version = $args["acf_version"];
$link_text = $args["link_text"];
$gallery_options = $args["gallery_options"];
if( have_rows($field["key"]) ):
while ( have_rows($field["key"]) ) : the_row();
$layout = get_row_layout();
$row_fields = get_row();
unset($row_fields["acf_fc_layout"]);
$output .= '';
foreach ($row_fields as $key => $value) {
$field_data = get_sub_field_object($key);
$output .= '
';
if ( 'text' === $field_data["type"] ) {
if ( !empty($field_data["value"]) ) {
$output .= parent::text($field_data, $args, $post_id);
}
} elseif ( 'textarea' === $field_data["type"] ) {
if ( !empty($field_data["value"]) ) {
$output .= parent::textarea($field_data, $args, $post_id);
}
} elseif ( 'wysiwyg' === $field_data["type"] ) {
if ( !empty($field_data["value"]) ) {
$output .= parent::wysiwyg($field_data, $args, $post_id);
}
} elseif ( 'number' === $field_data["type"] ) {
if ( !empty($field_data["value"]) ) {
$output .= parent::number($field_data, $args, $post_id);
}
} elseif ( 'email' === $field_data["type"] ) {
if ( !empty($field_data["value"]) ) {
$output .= parent::email($field_data, $args, $post_id);
}
} elseif ( 'password' === $field_data["type"] ) {
if ( !empty($field_data["value"]) ) {
$output .= parent::password($field_data, $args, $post_id);
}
} elseif ( 'image' === $field_data["type"]) {
if ( !empty($field_data["value"]) ) {
$output .= parent::image($field_data, $args, $post_id);
}
} elseif('file' === $field_data["type"]) {
if ( !empty($field_data["value"]) ) {
$output .= parent::file($field_data, $args, $post_id);
}
} elseif ( 'select' === $field_data["type"]) {
if ( !empty($field_data["value"]) ) {
$output .= parent::select($field_data, $args, $post_id);
}
} elseif ( 'checkbox' === $field_data["type"] ) {
if ( !empty($field_data["value"]) ) {
$output .= parent::checkbox($field_data, $args, $post_id);
}
} elseif ( 'radio' === $field_data["type"] ) {
if ( !empty($field_data["value"]) ) {
$output .= parent::radio($field_data, $args, $post_id);
}
} elseif ( 'user' === $field_data["type"] ) {
if ( !empty($field_data["value"]) ) {
$output .= parent::user($field_data, $args, $post_id);
}
} elseif ( 'page_link' === $field_data["type"] ) {
if ( !empty($field_data["value"]) ) {
$output .= parent::page_link($field_data, $args, $post_id);
}
} elseif ( 'google_map' === $field_data["type"] ) {
if ( !empty($field_data["value"]) ) {
$output .= parent::google_map($field_data, $args, $post_id);
}
} elseif ('date_picker' === $field_data["type"]) {
if ( !empty($field_data["value"]) ) {
$output .= parent::date_picker($field_data, $args, $post_id);
}
} elseif ('color_picker' === $field_data["type"]) {
if ( !empty($field_data["value"]) ) {
$output .= parent::color_picker($field_data, $args, $post_id);
}
} elseif ('true_false' === $field_data["type"]) {
$output .= parent::true_false($field_data, $args, $post_id);
} elseif ('taxonomy' === $field_data["type"]) {
$output .= parent::taxonomy($field_data, $args, $post_id);
} elseif('post_object' === $field_data["type"]) {
if ( !empty($field_data["value"]) ) {
$output .= parent::post_object($field_data, $args, $post_id);
}
} elseif('relationship' === $field_data["type"]) {
if ( !empty($field_data["value"]) ) {
$output .= parent::relationship($field_data, $args, $post_id);
}
} elseif('url' === $field_data["type"]) {
$output .= parent::url($field_data, $args, $post_id);
} elseif('link' === $field["type"]) {
$output .= parent::link($field, $args, $post_id);
} elseif('oembed' === $field_data["type"]) {
$output .= parent::oembed($field_data, $args, $post_id);
} elseif('gallery' === $field_data["type"]) {
$output .= parent::gallery($field_data, $args, $post_id);
} elseif('repeater' === $field_data["type"]) {
$output .= parent::repeater($field_data, $args, $post_id);
} else {
// $output .= $field_data["type"]." is not supported";
$output_filter = apply_filters( "acf_vc_flexible_content_add_on_fields",$field_data,$args,$post_id );
if ( is_array( $output_filter ) ) {
$output .= $output_filter["type"]." is not supported";
} else {
$output .= $output_filter;
}
}
$output .= '
';
}
$output .= '
';
endwhile;
else :
// no layouts found
endif;
return apply_filters('acfvc_flexible_content',$output,$field,$post_id);
}
}
}
add_filter( "acf_vc_repeater_add_on_fields", "acf_vc_add_pro_fields_to_fields",1,3 );
add_filter( "acf_vc_flexible_content_add_on_fields", "acf_vc_add_pro_fields_to_fields",1,3 );
add_filter( "acf_vc_clone_add_on_fields", "acf_vc_add_pro_fields_to_fields",1,3 );
function acf_vc_add_pro_fields_to_fields ($field, $args, $post_id ) {
if (class_exists('acf_vc_helper_pro')) {
$acf_vc_helper_pro = new acf_vc_helper_pro();
if('date_time_picker' === $field["type"]) {
$field = $acf_vc_helper_pro->date_time_picker($field, $args, $post_id);
} elseif('time_picker' === $field["type"]) {
$field = $acf_vc_helper_pro->time_picker($field, $args, $post_id);
} elseif('range' === $field["type"]) {
$field = $acf_vc_helper_pro->range($field, $args, $post_id);
} elseif('button_group' === $field["type"]) {
$field = $acf_vc_helper_pro->button_group($field, $args, $post_id);
} elseif('flexible_content' === $field["type"]) {
$field = '';
$field .= $acf_vc_helper_pro->flexible_content($field, $args, $post_id);
$field .= '
';
} elseif('clone' === $field["type"]) {
$field = $acf_vc_helper_pro->clone_field($field,$args,$post_id);
}
}
return $field;
}
add_filter( "acf_vc_add_on_fields", "acf_vc_add_pro_fields",1,3 );
function acf_vc_add_pro_fields ($field,$args,$post_id ) {
if (class_exists('acf_vc_helper_pro')) {
$acf_vc_helper_pro = new acf_vc_helper_pro();
if('date_time_picker' === $field["type"]) {
$field = $acf_vc_helper_pro->date_time_picker($field, $args, $post_id);
} elseif('time_picker' === $field["type"]) {
$field = $acf_vc_helper_pro->time_picker($field, $args, $post_id);
} elseif('range' === $field["type"]) {
$field = $acf_vc_helper_pro->range($field, $args, $post_id);
} elseif('button_group' === $field["type"]) {
$field = $acf_vc_helper_pro->button_group($field, $args, $post_id);
} elseif('flexible_content' === $field["type"]) {
$field = $acf_vc_helper_pro->flexible_content($field, $args, $post_id);
} elseif('clone' === $field["type"]) {
$field = $acf_vc_helper_pro->clone_field($field, $args, $post_id);
}
}
return $field;
}
/*Add filter hooks to the admin guide*/
add_action("acf_vc_add_to_filter_hook_guide", "acf_vc_date_time_filter_guide",10,1);
function acf_vc_date_time_filter_guide($text_array) {
if (class_exists('acf_vc_helper_pro')) {
?>
Date Time picker field
add_filter('acfvc_date_time_picker','function_name',10,3);
Parameters
- $output
- $field
- $post_id
Time picker field
add_filter('acfvc_time_picker','function_name',10,3);
Parameters
- $output
- $field
- $post_id
Range field
add_filter('acfvc_time_picker','function_name',10,3);
Parameters
- $output
- $field
- $post_id
Button group field
add_filter('acfvc_button_group','function_name',10,3);
Parameters
- $output
- $field
- $post_id
Clone field
add_filter('acfvc_clone','function_name',10,5);
Parameters
- $output
- $field
- $args
- $args["field_key"]
- $args["clone_field_key"]
- $args["acf_version"]
- $args["link_text"]
- $args["gallery_options"]
- $post_id
Flexible content field
add_filter('acfvc_flexible_content','function_name',10,5);
Parameters
- $output
- $field
- $args
- $args["field_key"]
- $args["clone_field_key"]
- $args["acf_version"]
- $args["link_text"]
- $args["gallery_options"]
- $post_id