HEX
Server: LiteSpeed
System: Linux melbournecleaninggroup 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: www-data (33)
PHP: 7.3.33-1+focal
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,
Upload Files
File: /var/www/html/wp-content/plugins/brizy-pro/admin/integrations.php
<?php


class BrizyPro_Admin_Integrations {

	const INTEGRATIONS = 'brizy-integrations';

	/**
	 * @var Brizy_TwigEngine
	 */
	private $twigEngine;

	/**
	 * @return BrizyPro_Admin_Integrations
	 * @throws Exception
	 */
	public static function _init() {

		static $instance;

		return $instance ? $instance : $instance = new self();
	}

	/**
	 * Brizy_Admin_Integrations constructor.
	 *
	 * @throws Exception
	 */
	protected function __construct() {

		if ( Brizy_Editor::is_user_allowed() ) {
			add_action( 'admin_menu', array( $this, 'actionRegisterIntegrationsPage' ), 11 );
			add_action( 'current_screen', array( $this, 'actionDeleteAccounts' ) );
		}
		$this->twigEngine = Brizy_TwigEngine::instance( BRIZY_PRO_PLUGIN_PATH . "/admin/views/integrations" );
	}

	public function actionRegisterIntegrationsPage() {
		add_submenu_page( Brizy_Admin_Settings::menu_slug(), __( 'Integrations', 'brizy-pro' ), __( 'Integrations', 'brizy-pro' ), 'manage_options', self::INTEGRATIONS, array(
			$this,
			'render'
		) );
	}

	public function render() {
		try {
			$params = array(
				'content' => $this->renderContent( false ),
			);

			echo $this->twigEngine->render( 'wrapper.html.twig', $params );

		} catch ( Exception $e ) {

		}
	}

	public function renderContent( $echo = true ) {
		try {
			$accountManager = new Brizy_Editor_Accounts_ServiceAccountManager( Brizy_Editor_Project::get() );

			$params = array(
				'title'    => __( 'Integrations', 'brizy-pro' ),
				'accounts' => $accountManager->getAccountsByGroup( Brizy_Editor_Accounts_AbstractAccount::INTEGRATIONS_GROUP ),
				'pageLink' => menu_page_url( self::INTEGRATIONS, false )
			);

			$this->twigEngine->getEnvironment()->addFilter( new Twig_SimpleFilter( 'secret', function ( $value ) {
				$str1 = substr( $value, 0, 8 );

				return "{$str1}XXXXXXXXXXXXXXX";
			} ) );

			$content = $this->twigEngine->render( 'view.html.twig', $params );

			if ( $echo ) {
				echo $content;
			}

			return $content;
		} catch ( Exception $e ) {
			$y = 0;
		}
	}

	public function actionDeleteAccounts() {
		if ( isset( $_REQUEST['delete-service-account'] ) && count( $_REQUEST['delete-service-account'] ) > 0 ) {
			// delete accounts
			$formManager = new Brizy_Editor_Forms_FormManager( Brizy_Editor_Project::get() );
			foreach ( $_REQUEST['delete-service-account'] as $serviceId => $accounts ) {
				foreach ( $accounts as $accountId ) {
					$forms = $formManager->getAllForms();
					foreach ( $forms as $form ) {
						$integrations = $form->getIntegrations();
						foreach ( $integrations as $integration ) {
							if ( $integration instanceof Brizy_Editor_Forms_ServiceIntegration && $integration->getUsedAccount() == $accountId ) {
								$integration->setUsedAccount( null );
								$integration->setCompleted( false );
								$integration->setUsedList( null );
								$integration->setLists( array() );
								$integration->setFields( array() );
								$integration->setFieldsMap( '[]' );
								$formManager->addForm( $form );
							}
						}
					}
					$accountManager = new Brizy_Editor_Accounts_ServiceAccountManager( Brizy_Editor_Project::get() );
					$accountManager->deleteAccountById( $accountId );
				}
			}
			wp_redirect( menu_page_url( self::INTEGRATIONS, false ) );
		}
	}

}