PluginProbe
Booktics – Appointment Booking Calendar for Service Businesses / 1.0.27
Booktics – Appointment Booking Calendar for Service Businesses v1.0.27
1.0.29 1.0.28 1.0.27 1.0.26 1.0.25 1.0.24 1.0.23 1.0.22 1.0.21 1.0.20 1.0.19 trunk 1.0.0 1.0.1 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.2 1.0.3 All 31 releases
← All changes | base/booktics.php +260 -190 1.0.1 → 1.0.27 View file →
@@ -1,190 +1,260 @@
1 -<?php
2 -/**
3 - * Booktics Main Class
4 - *
5 - * @package Booktics/Booktics
6 - */
7 -
8 -namespace Booktics;
9 -
10 -use Booktics\Container\Container;
11 -
12 -/**
13 - * Class Booktics
14 - */
15 -class Booktics {
16 -
17 - /**
18 - * Plugin version.
19 - *
20 - * @var string
21 - */
22 - public $version;
23 -
24 - /**
25 - * Plugin file.
26 - *
27 - * @var string
28 - */
29 - public $plugin_file;
30 -
31 - /**
32 - * Plugin directory.
33 - *
34 - * @var string
35 - */
36 - public $plugin_directory;
37 -
38 - /**
39 - * @var string
40 - */
41 - public $build_url;
42 -
43 - /**
44 - * Plugin base name.
45 - *
46 - * @var string
47 - */
48 - public $basename;
49 -
50 - /**
51 - * Plugin text directory path.
52 - *
53 - * @var string
54 - */
55 - public $text_domain_directory;
56 -
57 - /**
58 - * Plugin text directory path.
59 - *
60 - * @var string
61 - */
62 - public $template_directory;
63 -
64 - /**
65 - * Plugin assets directory path.
66 - *
67 - * @var string
68 - */
69 - public $assets_url;
70 -
71 - /**
72 - * Plugin url.
73 - *
74 - * @var string
75 - */
76 - public $plugin_url;
77 -
78 - /**
79 - * Container that holds all the services.
80 - *
81 - * @var Container
82 - */
83 - public $container;
84 -
85 - /**
86 - * Booktics Constructor.
87 - */
88 - public function __construct() {
89 - $this->init();
90 - add_action( 'init', array( $this, 'init_classes' ) );
91 - }
92 -
93 - /**
94 - * Initialize the plugin.
95 - *
96 - * @return void
97 - */
98 - protected function init(): void {
99 - $this->version = '1.0.1';
100 - $this->plugin_file = BOOKTICS_FILE;
101 - $this->plugin_directory = BOOKTICS_DIR;
102 - $this->basename = plugin_basename( $this->plugin_file );
103 - $this->text_domain_directory = $this->plugin_directory . '/languages';
104 - $this->template_directory = $this->plugin_directory . '/templates';
105 - $this->plugin_url = plugins_url( '', $this->plugin_file );
106 - $this->assets_url = $this->plugin_url . '/assets';
107 - $this->build_url = $this->plugin_url . '/build';
108 - register_activation_hook(
109 - $this->plugin_file, array(
110 - $this,
111 - 'activate',
112 - )
113 - );
114 - register_deactivation_hook(
115 - $this->plugin_file, array(
116 - $this,
117 - 'deactivate',
118 - )
119 - );
120 - }
121 -
122 - /**
123 - * Init classes
124 - *
125 - * @return void
126 - */
127 - public function init_classes() {
128 - if ( ! session_id() ) {
129 - session_start();
130 - }
131 - $service_provider = $this->get_container()->get( 'global' );
132 -
133 - // Initilize Plugin Banner Notice.
134 - Plugin_Notice::run();
135 - }
136 -
137 - /**
138 - * Get container
139 - *
140 - * @return Container
141 - */
142 - public function get_container() {
143 - return booktics_container();
144 - }
145 -
146 - /**
147 - * Initializes the Booktics class.
148 - *
149 - * Checks for an existing WeMeal instance
150 - * and if it doesn't find one, creates it.
151 - *
152 - * @return Booktics
153 - */
154 - public static function instance(): Booktics {
155 - static $instance = false;
156 -
157 - if ( ! $instance ) {
158 - $instance = new self();
159 - }
160 -
161 - return $instance;
162 - }
163 -
164 - /**
165 - * Trigger plugin activation class
166 - *
167 - * @return void
168 - */
169 - public function activate() {
170 - Activate::handle();
171 - }
172 -
173 - /**
174 - * Trigger plugin deactivation
175 - *
176 - * @return void
177 - */
178 - public function deactivate() {
179 - Deactivate::handle();
180 - }
181 -
182 - /**
183 - * returns assets url
184 - *
185 - * @return string
186 - */
187 - public static function assets_url(): string {
188 - return trailingslashit( plugins_url( '', BOOKTICS_FILE ) . '/assets' );
189 - }
190 -}
1 +<?php
2 +/**
3 + * Booktics Main Class
4 + *
5 + * @package Booktics/Booktics
6 + */
7 +
8 +namespace Booktics;
9 +
10 +if ( ! defined( 'ABSPATH' ) ) exit;
11 +
12 +use Booktics\Container\Container;
13 +
14 +/**
15 + * Class Booktics
16 + */
17 +class Booktics {
18 +
19 + /**
20 + * Plugin version.
21 + *
22 + * @var string
23 + */
24 + public $version;
25 +
26 + /**
27 + * Plugin file.
28 + *
29 + * @var string
30 + */
31 + public $plugin_file;
32 +
33 + /**
34 + * Plugin directory.
35 + *
36 + * @var string
37 + */
38 + public $plugin_directory;
39 +
40 + /**
41 + * @var string
42 + */
43 + public $build_url;
44 +
45 + /**
46 + * Plugin base name.
47 + *
48 + * @var string
49 + */
50 + public $basename;
51 +
52 + /**
53 + * Plugin text directory path.
54 + *
55 + * @var string
56 + */
57 + public $text_domain_directory;
58 +
59 + /**
60 + * Plugin text directory path.
61 + *
62 + * @var string
63 + */
64 + public $template_directory;
65 +
66 + /**
67 + * Plugin assets directory path.
68 + *
69 + * @var string
70 + */
71 + public $assets_url;
72 +
73 + /**
74 + * Plugin url.
75 + *
76 + * @var string
77 + */
78 + public $plugin_url;
79 +
80 + /**
81 + * Container that holds all the services.
82 + *
83 + * @var Container
84 + */
85 + public $container;
86 +
87 + /**
88 + * Booktics Constructor.
89 + */
90 + public function __construct() {
91 + $this->init();
92 + add_action( 'init', array( $this, 'init_classes' ) );
93 + }
94 +
95 + /**
96 + * Initialize the plugin.
97 + *
98 + * @return void
99 + */
100 + protected function init(): void {
101 + $this->version = BOOKTICS_VERSION;
102 + $this->plugin_file = BOOKTICS_FILE;
103 + $this->plugin_directory = BOOKTICS_DIR;
104 + $this->basename = plugin_basename( $this->plugin_file );
105 + $this->text_domain_directory = $this->plugin_directory . '/languages';
106 + $this->template_directory = $this->plugin_directory . '/templates';
107 + $this->plugin_url = plugins_url( '', $this->plugin_file );
108 + $this->assets_url = $this->plugin_url . '/assets';
109 + $this->build_url = $this->plugin_url . '/build';
110 + register_activation_hook(
111 + $this->plugin_file, array(
112 + $this,
113 + 'activate',
114 + )
115 + );
116 + register_deactivation_hook(
117 + $this->plugin_file, array(
118 + $this,
119 + 'deactivate',
120 + )
121 + );
122 + }
123 +
124 + /**
125 + * Init classes
126 + *
127 + * @return void
128 + */
129 + public function init_classes() {
130 + if ( ! session_id() ) {
131 + session_start();
132 + }
133 + self::register_custom_post_type();
134 +
135 + ( new \Booktics\Base\Services\Post_Status_Service() )->register();
136 +
137 + $service_provider = $this->get_container()->get( 'global' );
138 +
139 + // Initilize Plugin Banner Notice.
140 + Plugin_Notice::run();
141 +
142 + self::version_check();
143 + }
144 +
145 + /**
146 + * Get container
147 + *
148 + * @return Container
149 + */
150 + public function get_container() {
151 + return booktics_container();
152 + }
153 +
154 + /**
155 + * Initializes the Booktics class.
156 + *
157 + * Checks for an existing WeMeal instance
158 + * and if it doesn't find one, creates it.
159 + *
160 + * @return Booktics
161 + */
162 + public static function instance(): Booktics {
163 + static $instance = false;
164 +
165 + if ( ! $instance ) {
166 + $instance = new self();
167 + }
168 +
169 + return $instance;
170 + }
171 +
172 + /**
173 + * Trigger plugin activation class
174 + *
175 + * @return void
176 + */
177 + public function activate() {
178 + Activate::handle();
179 + }
180 +
181 + /**
182 + * Trigger plugin deactivation
183 + *
184 + * @return void
185 + */
186 + public function deactivate() {
187 + Deactivate::handle();
188 + }
189 +
190 + /**
191 + * returns assets url
192 + *
193 + * @return string
194 + */
195 + public static function assets_url(): string {
196 + return trailingslashit( plugins_url( '', BOOKTICS_FILE ) . '/assets' );
197 + }
198 +
199 + /**
200 + * Check if the plugin version is up to date
201 + *
202 + * @return void
203 + */
204 + public static function version_check() {
205 + $latest_version = BOOKTICS_VERSION;
206 + if ( is_multisite() ) {
207 + $sites = get_sites();
208 +
209 + foreach ( $sites as $site ) {
210 + switch_to_blog( $site->blog_id );
211 +
212 + $installed_version = booktics_get_option( 'booktics_version' );
213 + if ( $installed_version < $latest_version ) {
214 + self::run_migration();
215 + booktics_update_option( 'booktics_version', booktics()->version );
216 + }
217 +
218 + restore_current_blog();
219 + }
220 + } else {
221 + $installed_version = booktics_get_option( 'booktics_version' );
222 + if ( $installed_version < $latest_version ) {
223 + self::run_migration();
224 + booktics_update_option( 'booktics_version', booktics()->version );
225 + }
226 + }
227 + }
228 +
229 + /**
230 + * Run migration
231 + *
232 + * @return void
233 + */
234 + public static function run_migration() {
235 + Installer::create_tables();
236 + }
237 +
238 + /**
239 + * Register post type
240 + *
241 + * @return void
242 + */
243 + public static function register_custom_post_type() {
244 + register_post_type(
245 + 'booktics-service', array(
246 + 'labels' => array(
247 + 'name' => __( 'Services', 'booktics' ),
248 + 'singular_name' => __( 'Service', 'booktics' ),
249 + ),
250 + 'public' => true,
251 + 'has_archive' => true,
252 + 'has_single' => true,
253 + 'rewrite' => true,
254 + 'supports' => array( 'title', 'editor', 'thumbnail' ),
255 + 'show_in_rest' => true,
256 + 'show_in_menu' => false,
257 + )
258 + );
259 + }
260 +}