HEX
Server: Apache
System: Linux server11 5.10.0-33-amd64 #1 SMP Debian 5.10.226-1 (2024-10-03) x86_64
User: web95 (5097)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/clients/client1/web95/web/wp-content/plugins/wpai-acf-add-on/src/fields/FieldFactory.php
<?php

namespace wpai_acf_add_on\fields;

use wpai_acf_add_on\ACFService;
use wpai_acf_add_on\fields\acf\FieldEmpty;
use wpai_acf_add_on\fields\acf\FieldNotSupported;

/**
 * Class FieldFactory
 * @package wpai_acf_add_on\fields
 */
final class FieldFactory {

    /**
     *
     * An array of fields which are doesn't have any functionality
     *
     * @var array
     */
    public static $hiddenFields = array('accordion', 'tab', 'message');

    /**
     * @param $fieldData
     * @param $post
     * @param $fieldName
     * @param $fieldParent
     * @return bool|FieldEmpty
     */
    public static function create($fieldData, $post, $fieldName = "", $fieldParent = false) {
        $field = FALSE;
        $class_suffix = str_replace(" ", "", ucwords(str_replace(array("_","-"), " ", $fieldData['type'])));
        $class = '\\wpai_acf_add_on\\fields\\acf\\Field' . $class_suffix;
        if (!class_exists($class)) {
            $class = '\\wpai_acf_add_on\\fields\\acf\\' . $fieldData['type'] . '\\Field' . $class_suffix;

			// If class still doesn't exist check using alternate field name in namespace. Ensure the class isn't
	        // using a version specific name before using the alternate.
	        if(!class_exists($class) && !class_exists($class.'V5') && !class_exists($class.'V4')){
		        $class = '\\wpai_acf_add_on\\fields\\acf\\' . 'field_' . $fieldData['type'] . '\\Field' . $class_suffix;
	        }
        }
	    $class = apply_filters( 'wp_all_import_acf_field_class', $class , $fieldData, $post, $fieldName, $fieldParent );
	    $field = apply_filters( 'wp_all_import_acf_field_field', $field,  $class, $fieldData, $post, $fieldName, $fieldParent );
	    if (!empty($field)){
		    return $field;
        }
        if (empty($fieldData['type']) || in_array($fieldData['type'], self::$hiddenFields)) {
            $field = new FieldEmpty($fieldData, $post, $fieldName);
        } elseif (ACFService::isACFNewerThan('5.0.0') && class_exists($class.'V5')){
            $class .= 'V5';
            $field = new $class($fieldData, $post, $fieldName, $fieldParent);
        } elseif (!ACFService::isACFNewerThan('5.0.0') && class_exists($class.'V4')){
            $class .= 'V4';
            $field = new $class($fieldData, $post, $fieldName, $fieldParent);
        } elseif (class_exists($class)) {
            $field = new $class($fieldData, $post, $fieldName, $fieldParent);
        }

        if (empty($field)){
            $field = new FieldNotSupported(false, $post);
        }
        return $field;
    }
}