HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: /var/www/html/shootinschool/wp-content/plugins/gf-form-multicolumn/includes/WH_GF_Multicolumn.php
<?php

/**
 * The core Multi Columns class that overrides GFAddOn.
 *
 * @link       https://wordpress.org/plugins/gf-form-multicolumn/
 * @since      3.1.1
 *
 * @package    gf-form-multicolumn
 * @subpackage gf-form-multicolumn/includes
 */

namespace WH\GF\Multicolumn\Classes;

use GFAddOn;
use GFForms;
use WH\GF\Multicolumn\Admin\WH_GF_Multicolumn_Admin;
use WH\GF\Multicolumn\Site\WH_GF_Multicolumn_Public;

GFForms::include_addon_framework();

class WH_GF_Multicolumn extends GFAddOn {
	protected $plugin_name = 'gf-form-multicolumn';

	// Gravity Forms Class Variables
	protected $_version = '4.0.6';
	protected $_min_gravityforms_version = '1.9';
	protected $_slug = 'gfmc';
	protected $_path = 'gf-form-multicolumn/gf-form-multicolumn.php';
	protected $_full_path = __FILE__;

	private static $_instance = null;

	public static function get_instance() {
		if ( self::$_instance == null ) {
			self::$_instance = new self();
		}

		return self::$_instance;
	}

	public function minimum_requirements() {
		return array (
			'php' => array (
				'version' => '7.0',
			),
		);
	}

	public function pre_init() {
		parent::pre_init();

		add_action( 'plugins_loaded', array ( $this, 'set_locale' ) );
	}

	public function init() {
		parent::init();

		add_filter( 'gform_preview_styles',
		            array ( $this, 'enqueue_admin_preview_scripts' ), 10,
		            2 );
	}

	public function init_admin() {

		// Used to apply backend only functionality such as adding additional
		// features to the Gravity Forms GUI.
		if ( is_admin() ) {
			new WH_GF_Multicolumn_Admin(
				$this->get_plugin_name(), $this->_version
			);

			parent::init_admin();
		}
	}

	public function init_frontend() {
		parent::init_frontend();

		$public = new WH_GF_Multicolumn_Public(
			$this->get_plugin_name(), $this->get_version() );

		add_action( 'gform_enqueue_scripts',
		            array ( $public, 'dequeue_selected_scripts' ), 11 );

		$public->display();
	}

	public function init_ajax() {
		parent::init_ajax();

		$ajaxForm = new WH_GF_Multicolumn_Public(
			$this->get_plugin_name(), $this->get_version() );

		$ajaxForm->display();
	}

	public function scripts() {
		$scripts[] =
			array (
				'handle'    => 'gfmc_scripts_public',
				'src'       => plugins_url( '/public/js/gf-form-multicolumn.min.js',
				                            __FILE__ ),
				'version'   => $this->get_version(),
				'deps'      => array ( 'jquery', 'gform_conditional_logic' ),
				'in_footer' => true,
				'callback'  => array ( $this, 'dequeue_if_in_admin_area' ),
				'enqueue'   => array (
					array (
						'field_types' => array (
							'column_start',
							'column_break',
							'column_end',
						),
					),
				),
			);

		$scripts[] =
			array (
				'handle'  => 'gfmc_scripts_admin',
				'src'     => plugins_url( '/admin/js/gf-form-multicolumn-admin.min.js',
				                          __FILE__ ),
				'version' => $this->get_version(),
				'strings' => array (
					'tooManyColumnStarts' => __( ' too many Row Starts to Row Ends. Please review and remove the excess Row Starts.',
					                             'gf-form-multicolumn' ),
					'tooManyColumnEnds'   => __( ' too many Row Ends to Row Starts. Please review and remove the excess Row Ends.',
					                             'gf-form-multicolumn' ),
				),
				'enqueue' => array (
					array (
						'admin_page' => array (
							'form_editor',
							'form_settings',
						),
					),
				),
			);

		return array_merge( parent::scripts(), $scripts );
	}

	public function dequeue_if_in_admin_area() {
		if ( is_admin() ) {
			wp_dequeue_script(
				'gfmc_scripts_public'
			);
			wp_deregister_script( 'gfmc_scripts_public' );
		}

		return true;
	}

	public function styles() {
		// Styles needs to be present in admin also for Gutenberg blocks preview
		$styles = array (
			array (
				'handle'  => 'gfmc_styles',
				'src'     => plugins_url( '/public/css/gf-form-multicolumn.min.css',
				                          __FILE__ ),
				'version' => $this->get_version(),
				'enqueue' => array (
					array (
						'field_types' => array (
							'column_start',
							'column_break',
							'column_end',
						),
					),
				),
			),
		);

		return array_merge( parent::styles(), $styles );
	}

	public function enqueue_admin_preview_scripts() {
		wp_register_style(                          'preview_stylesheet',
		                                            plugins_url( '/public/css/gf-form-multicolumn.css',
		                                                         __FILE__ ),
		                                            array (), $this->_version );

		return array ( 'preview_stylesheet' );

	}

	public function set_locale() {
		new WH_GF_Multicolumn_i18n();
	}

	public function get_plugin_name() {
		return $this->plugin_name;
	}

	public function get_version() {
		return $this->_version;
	}
}