HEX
Server: Apache/2
System: Linux cat17246.lnwhostname.com 3.10.0-1160.53.1.el7.x86_64 #1 SMP Fri Jan 14 13:59:45 UTC 2022 x86_64
User: firststeps (1017)
PHP: 7.3.33
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: /home/firststeps/public_html/wp-content/plugins/jetformbuilder/modules/wp-experiments/module.php
<?php


namespace JFB_Modules\Wp_Experiments;

// If this file is called directly, abort.
use Jet_Form_Builder\Blocks\Block_Helper;
use Jet_Form_Builder\Classes\Arrayable\Array_Tools;
use JFB_Components\Module\Base_Module_After_Install_It;
use JFB_Components\Module\Base_Module_It;

if ( ! defined( 'WPINC' ) ) {
	die;
}

/**
 * @since 3.1.0
 *
 * Class Wp_Experiments
 * @package JFB_Modules\Wp_Experiments
 */
class Module implements Base_Module_It, Base_Module_After_Install_It {

	const SUPPORT_CUSTOM_LAYOUT = 'jetCustomWrapperLayout';

	private $layout_prop = 'layout';

	public function rep_item_id() {
		return 'wp-experiments';
	}

	public function condition(): bool {
		return true;
	}

	public function init_hooks() {
		add_filter(
			'block_type_metadata',
			array( $this, 'disable_layout_support' )
		);
	}

	public function remove_hooks() {
		remove_filter(
			'block_type_metadata',
			array( $this, 'disable_layout_support' )
		);
	}

	public function on_install() {
		if ( function_exists( 'wp_is_development_mode' ) ) {
			return;
		}
		$this->layout_prop = '__experimentalLayout';
	}

	public function on_uninstall() {
	}

	public function disable_layout_support( array $metadata ): array {
		if (
			! Block_Helper::is_field( $metadata['name'] ) ||
			! is_array( $metadata['supports'] ) ||
			! Array_Tools::get( $metadata['supports'], array( self::SUPPORT_CUSTOM_LAYOUT ), false )
		) {
			return $metadata;
		}

		$metadata['supports'][ self::SUPPORT_CUSTOM_LAYOUT ] = $metadata['supports'][ $this->layout_prop ];
		unset( $metadata['supports'][ $this->layout_prop ] );

		return $metadata;
	}

	public function enable_native_layout() {
		$block_type = Block_Helper::current_block_type();

		if ( ! $block_type ) {
			return;
		}

		$block_type->supports[ $this->layout_prop ] = $block_type->supports[ self::SUPPORT_CUSTOM_LAYOUT ];
		unset( $block_type->supports[ self::SUPPORT_CUSTOM_LAYOUT ] );
	}

	public function remove_native_layout() {
		$block_type = Block_Helper::current_block_type();

		if ( ! $block_type ) {
			return;
		}

		$block_type->supports[ self::SUPPORT_CUSTOM_LAYOUT ] = $block_type->supports[ $this->layout_prop ];
		unset( $block_type->supports[ $this->layout_prop ] );
	}
}