PluginProbe
Forumax – AI Powered Advanced Community Forum Plugin / 1.2.1
Forumax – AI Powered Advanced Community Forum Plugin v1.2.1
2.4.4 2.4.3 2.4.2 2.4.1 2.4.0 trunk 1.0.8 1.1.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 1.3.2 1.3.3 1.4.0 1.4.1 2.0.0 2.1.0 All 29 releases
bbp-core / bbp-core.php

bbp-core.php in Forumax – AI Powered Advanced Community Forum Plugin 1.2.1, at bbp-core.php

223 lines 5.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /*
3 Plugin Name: BBP Core
4 Plugin URI: https://spider-themes.net/bbp-core
5 Description: Expand bbPress powered forums with useful features like - private reply, solved topics ...
6 Author: spider-themes
7 Author URI: https://profiles.wordpress.org/spiderdevs/
8 Text Domain: bbp-core
9 Version: 1.2.1
10 Requires at least: 5.0
11 Tested up to: 6.2
12 Requires PHP: 7.4
13 License: GPLv3 or later
14 License URI: https://www.gnu.org/licenses/gpl-3.0.html
15 */
16
17 defined( 'ABSPATH' ) || exit;
18
19 if ( ! function_exists( 'bc_fs' ) ) {
20 // Create a helper function for easy SDK access.
21 function bc_fs() {
22 global $bc_fs;
23
24 if ( ! isset( $bc_fs ) ) {
25 // Include Freemius SDK.
26 require_once dirname( __FILE__ ) . '/includes/fs/start.php';
27
28 $bc_fs = fs_dynamic_init( array(
29 'id' => '10864',
30 'slug' => 'bbp-core',
31 'type' => 'plugin',
32 'public_key' => 'pk_41277ad11125f6e2a1b4e66f40164',
33 'is_premium' => false,
34 'is_premium_only' => false,
35 'has_addons' => false,
36 'has_paid_plans' => true,
37 'trial' => array(
38 'days' => 14,
39 'is_require_payment' => true,
40 ),
41 'menu' => array(
42 'slug' => 'bbp-core',
43 'contact' => false,
44 'support' => false,
45 'first-path' => 'admin.php?page=bbp-core',
46 ),
47 ) );
48 }
49
50 return $bc_fs;
51 }
52
53 // Init Freemius.
54 bc_fs()->add_filter( 'deactivate_on_activation', '__return_false' );
55
56 // Signal that SDK was initiated.
57 do_action( 'bc_fs_loaded' );
58 }
59
60 require_once __DIR__ . '/autoloader.php';
61
62
63 /**
64 * Plugin's heart
65 */
66 final class BBP_Core {
67 const VERSION = '1.2.1';
68
69 /**
70 * Class constructor.
71 */
72 public function __construct() {
73
74 $this->define_constants();
75 $this->core_includes();
76
77 register_activation_hook( __FILE__, [ $this, 'activate' ] );
78 add_action( 'plugins_loaded', [ $this, 'init_plugin' ] );
79 }
80
81 /**
82 * Define Plugin Constants.
83 *
84 * @return void
85 */
86 public function define_constants() {
87 define( 'BBPC_VERSION', self::VERSION );
88 define( 'BBPC_FILE', __FILE__ );
89 define( 'BBPC_DIR', __DIR__ . '/' );
90 define( 'BBPC_URL', plugins_url( '/', __FILE__ ) );
91 define( 'BBPC_ASSETS', BBPC_URL . 'assets/' );
92 define( 'BBPC_IMG', BBPC_ASSETS . 'img/' );
93 }
94
95 /**
96 * File includes.
97 */
98 public function core_includes() {
99 require_once __DIR__ . '/includes/functions.php';
100 require_once __DIR__ . '/includes/admin/menu/Approve_Topic.php';
101 require_once __DIR__ . '/includes/admin/menu/Create_Forum.php';
102 require_once __DIR__ . '/includes/admin/menu/Create_Topic.php';
103 require_once __DIR__ . '/includes/admin/menu/Delete_Forum.php';
104 require_once __DIR__ . '/includes/admin/menu/Delete_Topic.php';
105 require_once __DIR__ . '/includes/Elementor/BBP_Widgets.php';
106 require_once __DIR__ . '/includes/ajax_actions.php';
107 include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
108 require_once __DIR__ . '/includes/Frontend/Assets.php';
109
110 require_once __DIR__ . '/includes/admin/widgets/forum-info/widgets.php';
111 require_once __DIR__ . '/includes/Elementor/inc/forum-ajax.php';
112
113 // Core installer notice
114 require_once __DIR__ . '/includes/admin/notices/notices.php';
115 require_once __DIR__ . '/includes/admin/notices/asking-for-review.php';
116
117 //Register Pro Widgets
118 $theme = wp_get_theme();
119
120 if ( $theme != 'Ama' || ! bbpc_is_premium() ) {
121 require_once __DIR__ . '/includes/admin/Pro_Widget_Map.php';
122 require_once __DIR__ . '/includes/admin/Pro_Widget_Service.php';
123 }
124
125 // Hooks
126 require BBPC_DIR . 'includes/hooks/actions.php';
127 require BBPC_DIR . 'includes/hooks/image_sizes.php';
128
129 // Load CSF
130 require BBPC_DIR . 'includes/admin/settings/csf/classes/setup.class.php';
131 require BBPC_DIR . 'includes/admin/settings/options/settings.php';
132 }
133
134 /**
135 * Initializing Bbp_core class.
136 *
137 * @return \Bbp_core
138 */
139 static function init() {
140 static $instance = false;
141
142 if ( ! $instance ) {
143 $instance = new self();
144 }
145 }
146
147 /**
148 * Actions on plugin activation.
149 *
150 * @return void
151 */
152 public function activate() {
153 $installed = get_option( 'bbpc_installed' );
154 if ( ! $installed ) {
155 update_option( 'bbpc_installed', time() );
156 }
157
158 update_option( 'bbpc_version', BBPC_VERSION );
159 }
160
161 /**
162 * Initialize the plugin functionality.
163 *
164 * @return void
165 */
166 public function init_plugin() {
167
168 $this->load_features();
169
170 if ( is_admin() ) {
171 new Admin();
172 new admin\Assets();
173 }elseif ( ! is_admin() ) {
174 new Frontend\Assets();
175 }
176
177 // If bbPress is not active, don't load assets and widgets.
178 if ( ! class_exists( 'bbPress' ) ) {
179 return;
180 }
181 new admin\Elementor\BBP_Widgets();
182 }
183
184
185 /**
186 * Load different features.
187 *
188 * @return void
189 */
190 public function load_features() {
191 $opt = get_option( 'bbp_core_settings' );
192 define( 'BBPC_FEAT_PATH', plugin_dir_path( __FILE__ ) . 'includes/features/' );
193
194 if ( $opt['is_solved_topics'] ?? true ) {
195 require BBPC_FEAT_PATH . 'bbp_solved_topic.php';
196 }
197
198 if ( $opt['is_private_replies'] ?? true ) {
199 require BBPC_FEAT_PATH . 'bbp-private-replies.php';
200 }
201
202 if ( $opt['is_votes'] ?? true ) {
203 new features\bbp_voting();
204 }
205
206 if ( $opt['is_attachment'] ?? true ) {
207 new features\bbp_attachments();
208 }
209
210 }
211
212 }
213
214 /**
215 * Initialize the bbp core plugin.
216 *
217 * @return \Bbp_core
218 */
219 function bbp_core() {
220 return Bbp_core::init();
221 }
222
223 bbp_core();