HEX
Server: Apache/2.4.34 (Red Hat) OpenSSL/1.0.2k-fips
System: Linux WORDPRESS 3.10.0-1160.118.1.el7.x86_64 #1 SMP Thu Apr 4 03:33:23 EDT 2024 x86_64
User: digital (1020)
PHP: 7.2.24
Disabled: NONE
Upload Files
File: /datos/www/expodubai/wp-content/plugins/acf-vc-integrator/inc/acf_vc_helper_pro.php
<?php
  if ( ! class_exists( 'acf_vc_helper_pro' ) ) {
    class acf_vc_helper_pro extends acf_vc_helper {
      public $construct;

      public function __construct() {
          parent::__construct();
          $this->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 = '<span class="prepend" >'.$field["prepend"].'</span> ';
                }
                if ( $field["append"] && in_array( 'append', $prepend_append_array ) ) {
                    $append = ' <span class="append" >'.$field["append"].'</span>';
                }
            }

          $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 .= '<div id="' . $clone_field_key . '" class="'.$field_data["name"].' '.$field_data["type"].'">';

              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 .= '</div>';
            }

          }
        }
        // $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 .= '<div class="flexible-content-row row-'.get_row_index().'">';

              foreach ($row_fields as $key => $value) {
                $field_data = get_sub_field_object($key);
                  $output .= '<div id="' . $key . '" class="'.$field_data["name"].' '.$field_data["type"].'">';

                  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 .= '</div>';
              }

              $output .= '</div>';

            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 = '<div class="flexible-content-row row-'.get_row_index().'">';
        $field .= $acf_vc_helper_pro->flexible_content($field, $args, $post_id);
        $field .= '</div>';
      } 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')) {
      ?>
      <div class="acf-vc-hook-wrapper">
          <h3>Date Time picker field</h3>
          <p>add_filter('acfvc_date_time_picker','function_name',10,3);</p>
          <p class="parameters">Parameters</p>
          <ol>
              <li>$output
                  <p><?php echo $text_array["output_text"]; ?></p>
              </li>
              <li>$field
                  <p><?php echo $text_array["field_text"]; ?></p>
              </li>
              <li>$post_id
                  <p><?php echo $text_array["post_id_text"]; ?></p>
              </li>
          </ol>
      </div>
      <?php
    }
  }

  add_action("acf_vc_add_to_filter_hook_guide", "acf_vc_time_filter_guide",10,1);
  function acf_vc_time_filter_guide($text_array) {
    if (class_exists('acf_vc_helper_pro')) {
      ?>
      <div class="acf-vc-hook-wrapper">
          <h3>Time picker field</h3>
          <p>add_filter('acfvc_time_picker','function_name',10,3);</p>
          <p class="parameters">Parameters</p>
          <ol>
            <li>$output
                <p><?php echo $text_array["output_text"]; ?></p>
            </li>
            <li>$field
                <p><?php echo $text_array["field_text"]; ?></p>
            </li>
            <li>$post_id
                <p><?php echo $text_array["post_id_text"]; ?></p>
            </li>
          </ol>
      </div>
      <?php
    }
  }

  add_action("acf_vc_add_to_filter_hook_guide", "acf_vc_range_filter_guide",10,1);
  function acf_vc_range_filter_guide($text_array) {
    if (class_exists('acf_vc_helper_pro')) {
      ?>
      <div class="acf-vc-hook-wrapper">
          <h3>Range field</h3>
          <p>add_filter('acfvc_time_picker','function_name',10,3);</p>
          <p class="parameters">Parameters</p>
          <ol>
            <li>$output
                <p><?php echo $text_array["output_text"]; ?></p>
            </li>
            <li>$field
                <p><?php echo $text_array["field_text"]; ?></p>
            </li>
            <li>$post_id
                <p><?php echo $text_array["post_id_text"]; ?></p>
            </li>
          </ol>
      </div>
      <?php
    }
  }

  add_action("acf_vc_add_to_filter_hook_guide", "acf_vc_button_group_filter_guide",10,1);
  function acf_vc_button_group_filter_guide($text_array) {
    if (class_exists('acf_vc_helper_pro')) {
      ?>
      <div class="acf-vc-hook-wrapper">
          <h3>Button group field</h3>
          <p>add_filter('acfvc_button_group','function_name',10,3);</p>
          <p class="parameters">Parameters</p>
          <ol>
            <li>$output
                <p><?php echo $text_array["output_text"]; ?></p>
            </li>
            <li>$field
                <p><?php echo $text_array["field_text"]; ?></p>
            </li>
            <li>$post_id
                <p><?php echo $text_array["post_id_text"]; ?></p>
            </li>
          </ol>
      </div>
      <?php
    }
  }

  add_action("acf_vc_add_to_filter_hook_guide", "acf_vc_clone_filter_guide",10,1);
  function acf_vc_clone_filter_guide($text_array) {
    if (class_exists('acf_vc_helper_pro')) {
      ?>
      <div class="acf-vc-hook-wrapper">
          <h3>Clone field</h3>
          <p>add_filter('acfvc_clone','function_name',10,5);</p>
          <p class="parameters">Parameters</p>
          <ol>
              <li>$output
                  <p><?php echo $text_array["output_text"]; ?></p>
              </li>
              <li>$field
                  <p><?php echo $text_array["field_text"]; ?></p>
              </li>
              <li>$args
                  <p><?php echo $text_array["args_text"]; ?></p>
                  <ol>
                    <li>$args["field_key"]
                        <p><?php echo $text_array["field_key_text"]; ?></p>
                    </li>
                    <li>$args["clone_field_key"]
                        <p><?php echo $text_array["clone_field_key_text"]; ?></p>
                    </li>
                    <li>$args["acf_version"]
                        <p><?php echo $text_array["acf_version_text"]; ?></p>
                    </li>
                    <li>$args["link_text"]
                        <p><?php echo $text_array["link_text_text"]; ?></p>
                    </li>
                    <li>$args["gallery_options"]
                        <p><?php echo $text_array["gallery_option_text"]; ?></p>
                    </li>
                  </ol>
              </li>
              <li>$post_id
                  <p><?php echo $text_array["post_id_text"]; ?></p>
              </li>
          </ol>
      </div>
      <?php
    }
  }

  add_action("acf_vc_add_to_filter_hook_guide", "acf_vc_flexible_content_filter_guide",10,1);
  function acf_vc_flexible_content_filter_guide($text_array) {
    if (class_exists('acf_vc_helper_pro')) {
      ?>
      <div class="acf-vc-hook-wrapper">
          <h3>Flexible content field</h3>
          <p>add_filter('acfvc_flexible_content','function_name',10,5);</p>
          <p class="parameters">Parameters</p>
          <ol>
              <li>$output
                  <p><?php echo $text_array["output_text"]; ?></p>
              </li>
              <li>$field
                  <p><?php echo $text_array["field_text"]; ?></p>
              </li>
              <li>$args
                  <p><?php echo $text_array["args_text"]; ?></p>
                  <ol>
                    <li>$args["field_key"]
                        <p><?php echo $text_array["field_key_text"]; ?></p>
                    </li>
                    <li>$args["clone_field_key"]
                        <p><?php echo $text_array["clone_field_key_text"]; ?></p>
                    </li>
                    <li>$args["acf_version"]
                        <p><?php echo $text_array["acf_version_text"]; ?></p>
                    </li>
                    <li>$args["link_text"]
                        <p><?php echo $text_array["link_text_text"]; ?></p>
                    </li>
                    <li>$args["gallery_options"]
                        <p><?php echo $text_array["gallery_option_text"]; ?></p>
                    </li>
                  </ol>
              </li>
              <li>$post_id
                  <p><?php echo $text_array["post_id_text"]; ?></p>
              </li>
          </ol>
      </div>
      <?php
    }
  }