HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
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/govancoz/www/wp-content/plugins/pro-elements/core/integrations/exceptions/exception-base.php
<?php

namespace ElementorPro\Core\Integrations\Exceptions;

use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

abstract class Exception_Base extends \Exception {

	/**
	 * @var string
	 */
	protected $action;

	/**
	 * @var array
	 */
	protected $meta = [];

	/**
	 * Get a formatted message specific to the current exception type.
	 *
	 * @param string $message
	 *
	 * @return string
	 */
	abstract protected function format_message( $message );

	/**
	 * Exception_Base constructor.
	 *
	 * @param string $action - Action name that failed (ideally the class name, e.g. Email::class).
	 * @param string $message - Message to show.
	 * @param array  $meta   - Exception meta data. Used for logging.
	 *
	 */
	public function __construct( $action, $message = '', $meta = [] ) {
		$this->action = $action;
		$this->meta = $meta;

		$message = $this->format_message( $message );

		parent::__construct( $message );
	}

	/**
	 * Log the exception to Elementor's log.
	 *
	 * @return void
	 */
	public function log() {
		Plugin::elementor()->logger->get_logger()->error( $this->getMessage(), [ 'meta' => $this->meta ] );
	}

	/**
	 * Get the error format.
	 *
	 * @return string
	 */
	public function __toString() {
		return sprintf(
			'%s: %s',
			__CLASS__,
			$this->getMessage()
		);
	}
}