PluginProbe ʕ •ᴥ•ʔ
FrontBlocks for Gutenberg/GeneratePress / 1.1.0
FrontBlocks for Gutenberg/GeneratePress v1.1.0
trunk 0.2.0 0.2.1 0.2.2 0.2.3 0.2.4 0.2.5 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.1.0 1.2.0 1.2.1 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 ci-artifacts
frontblocks / includes / Plugin_Main.php
frontblocks / includes Last commit date
Admin 8 months ago Frontend 8 months ago Plugin_Main.php 8 months ago
Plugin_Main.php
142 lines
1 <?php
2 /**
3 * Plugin Main
4 *
5 * @package FrontBlocks
6 * @author Closemarketing
7 * @copyright 2025 Closemarketing
8 * @version 1.0.3-beta.1
9 */
10
11 namespace FrontBlocks;
12
13 defined( 'ABSPATH' ) || exit;
14
15 /**
16 * Main FrontBlocks class.
17 *
18 * @since 1.0.0
19 */
20 class Plugin_Main {
21 /**
22 * Plugin instance.
23 *
24 * @var FrontBlocks
25 */
26 private static $instance = null;
27
28 /**
29 * Get plugin instance.
30 *
31 * @return FrontBlocks
32 */
33 public static function get_instance() {
34 if ( null === self::$instance ) {
35 self::$instance = new self();
36 }
37
38 return self::$instance;
39 }
40
41 /**
42 * Check if FrontBlocks PRO is active.
43 *
44 * @return bool
45 */
46 public static function is_pro_active() {
47 return defined( 'FRBLP_PRO_ACTIVE' ) && FRBLP_PRO_ACTIVE;
48 }
49
50 /**
51 * Constructor.
52 */
53 private function __construct() {
54 $this->init();
55 }
56
57 /**
58 * Initialize the plugin.
59 *
60 * @return void
61 */
62 private function init() {
63 // Load modules.
64 $this->load_modules();
65
66 // General enqueue scripts.
67 add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ), 99 );
68 }
69
70 /**
71 * Load plugin modules.
72 *
73 * @return void
74 */
75 private function load_modules() {
76 // Admin settings page.
77 if ( is_admin() ) {
78 new Admin\Settings();
79 }
80
81 // Carousel module.
82 new Frontend\Carousel();
83
84 // Animations module.
85 new Frontend\Animations();
86
87 // Sticky Column module.
88 new Frontend\StickyColumn();
89
90 // Gallery module.
91 new Frontend\Gallery();
92
93 // Insert Post Block module.
94 new Frontend\InsertPost();
95
96 // Testimonials module (includes settings).
97 new Frontend\Testimonials();
98
99 // Headline module (GenerateBlocks Headline enhancements).
100 new Frontend\Headline();
101
102 // Product Categories module (WooCommerce).
103 new Frontend\ProductCategories();
104
105 // Counter module (GenerateBlocks Headline counter effect).
106 new Frontend\Counter();
107
108 // Reading Time module.
109 new Frontend\ReadingTime();
110 }
111
112 /**
113 * Enqueue scripts.
114 *
115 * @return void
116 */
117 public function enqueue_scripts() {
118 wp_enqueue_style(
119 'frontblocks-carousel',
120 FRBL_PLUGIN_URL . 'assets/carousel/frontblocks-carousel.css',
121 array(),
122 FRBL_VERSION
123 );
124
125 wp_enqueue_script(
126 'frontblocks-carousel-custom',
127 FRBL_PLUGIN_URL . 'assets/carousel/frontblocks-carousel.js',
128 array( 'frontblocks-carousel' ),
129 FRBL_VERSION,
130 true
131 );
132
133 wp_enqueue_script(
134 'frontblocks-carousel',
135 FRBL_PLUGIN_URL . 'assets/carousel/glide.min.js',
136 array(),
137 FRBL_VERSION,
138 true
139 );
140 }
141 }
142