File "class-plugin.php"

Full path: /home/dora/public_html/wp-content/plugins/wp-grid-builder-bricks/includes/class-plugin.php
File size: 1.99 KB
MIME-type: --
Charset: utf-8

<?php
/**
 * Plugin
 *
 * @package   WP Grid Builder - Bricks
 * @author    Loïc Blascos
 * @copyright 2019-2022 Loïc Blascos
 */

namespace WP_Grid_Builder_Bricks\Includes;

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

/**
 * Main Instance of the plugin
 *
 * @class WP_Grid_Builder_Bricks\Includes\Plugin
 * @since 1.0.0
 */
final class Plugin {

	/**
	 * Constructor
	 *
	 * @since 1.0.0
	 * @access public
	 */
	public function __construct() {

		add_action( 'after_setup_theme', [ $this, 'init' ] );
		add_filter( 'wp_grid_builder/register', [ $this, 'register' ] );
		add_filter( 'wp_grid_builder/plugin_info', [ $this, 'plugin_info' ], 10, 2 );

	}

	/**
	 * Init instances
	 *
	 * @since 1.0.0
	 * @access public
	 */
	public function init() {

		if ( ! defined( 'BRICKS_VERSION' ) || version_compare( BRICKS_VERSION, '1.5.5', '<' ) ) {

			add_action( 'admin_notices', '\WP_Grid_Builder_Bricks\bricks_notice' );
			return;

		}

		new Providers();
		new Builder();
		new Render();
		new Filter();
		new Extend();

	}

	/**
	 * Register add-on
	 *
	 * @since 1.0.0
	 * @access public
	 *
	 * @param array $addons Holds registered add-ons.
	 * @return array
	 */
	public function register( $addons ) {

		$addons[] = [
			'name'    => 'Bricks',
			'slug'    => WPGB_BRICKS_BASE,
			'option'  => 'wpgb_bricks',
			'version' => WPGB_BRICKS_VERSION,
		];

		return $addons;

	}

	/**
	 * Set plugin info
	 *
	 * @since 1.0.0
	 * @access public
	 *
	 * @param array  $info Holds plugin info.
	 * @param string $name Current plugin name.
	 * @return array
	 */
	public function plugin_info( $info, $name ) {

		if ( 'Bricks' !== $name ) {
			return $info;
		}

		$info['icons'] = [
			'1x' => WPGB_BRICKS_URL . 'assets/imgs/icon.png',
			'2x' => WPGB_BRICKS_URL . 'assets/imgs/icon.png',
		];

		if ( ! empty( $info['info'] ) ) {

			$info['info']->banners = [
				'low'  => WPGB_BRICKS_URL . 'assets/imgs/banner.png',
				'high' => WPGB_BRICKS_URL . 'assets/imgs/banner.png',
			];
		}

		return $info;

	}
}