PluginProbe
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot / 3.5.3
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot v3.5.3
4.9.1 4.9.0 4.8.2 4.8.1 4.8.0 4.7.0 4.6.2 4.6.1 4.6.0 4.5.6 4.5.5 4.5.4 4.5.3 4.5.2 4.5.1 4.5.0 4.4.1 4.4.0 3.3.4 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.5.2 All 199 releases
← All changes | includes/Core/Install.php +122 -181 4.4.03.5.3 View file →
@@ -6,159 +6,152 @@
6 6 use WPDeveloper\BetterDocs\Utils\Database;
7 7 use WPDeveloper\BetterDocs\Dependencies\DI\Container;
8 8
9 9 class Install extends Base {
10 - /**
11 - * Container
12 - * @var Container
13 - */
14 - public $container;
15 - /**
16 - * Database
17 - * @var Database
18 - */
19 - public $database;
10 + /**
11 + * Container
12 + * @var Container
13 + */
14 + public $container;
15 + /**
16 + * Database
17 + * @var Database
18 + */
19 + public $database;
20 20
21 - public function __construct( Container $container ) {
22 - $this->container = $container;
23 - $this->database = $this->container->get( Database::class );
21 + public function __construct( Container $container ) {
22 + $this->container = $container;
23 + $this->database = $this->container->get( Database::class );
24 24
25 - register_activation_hook( BETTERDOCS_PLUGIN_FILE, [ $this, 'activate' ] );
26 - register_deactivation_hook( BETTERDOCS_PLUGIN_FILE, [ $this, 'deactivate' ] );
25 + register_activation_hook( BETTERDOCS_PLUGIN_FILE, [$this, 'activate'] );
26 + register_deactivation_hook( BETTERDOCS_PLUGIN_FILE, [$this, 'deactivate'] );
27 27
28 - //Update message for showing notice for new release
29 - add_action( 'in_plugin_update_message-betterdocs/betterdocs.php', [ $this, 'plugin_update_message' ], 10, 2 );
30 - add_action( 'init', [ $this, 'check_db_updates' ], 1 );
31 - add_action( 'init', [ $this, 'check_version' ], 5 );
32 - }
28 + //Update message for showing notice for new release
29 + add_action( 'in_plugin_update_message-betterdocs/betterdocs.php', [$this, 'plugin_update_message'], 10, 2 );
30 + add_action( 'init', [$this, 'check_db_updates'], 1 );
31 + add_action( 'init', [$this, 'check_version'], 5 );
32 + }
33 33
34 - /**
35 - * This is for upgrade message.
36 - *
37 - * @param mixed $plugin_data
38 - * @param mixed $response
39 - * @return void
40 - */
41 - public function plugin_update_message( $plugin_data, $response ) {
42 - if ( isset( $response->upgrade_notice ) ) {
43 - $new_version = $plugin_data['new_version'];
44 - $current_version = betterdocs()->version;
45 - $current_version_minor_part = explode( '.', $current_version )[1];
46 - $new_version_minor_part = explode( '.', $new_version )[1];
34 + /**
35 + * This is for upgrade message.
36 + *
37 + * @param mixed $plugin_data
38 + * @param mixed $response
39 + * @return void
40 + */
41 + public function plugin_update_message( $plugin_data, $response ) {
42 + if ( isset( $response->upgrade_notice ) ) {
43 + $new_version = $plugin_data['new_version'];
44 + $current_version = betterdocs()->version;
45 + $current_version_minor_part = explode( '.', $current_version )[1];
46 + $new_version_minor_part = explode( '.', $new_version )[1];
47 47
48 - betterdocs()->views->get(
49 - 'admin/notices/upgrade',
50 - [
51 - 'response' => $response,
52 - 'plugin_data' => $plugin_data,
53 - 'major' => ! ( $current_version_minor_part === $new_version_minor_part )
54 - ]
55 - );
56 - }
57 - }
48 + betterdocs()->views->get( 'admin/notices/upgrade', [
49 + 'response' => $response,
50 + 'plugin_data' => $plugin_data,
51 + 'major' => ! ( $current_version_minor_part === $new_version_minor_part )
52 + ] );
53 + }
54 + }
58 55
59 - /**
60 - * This method will run when version is updated.
61 - * @return void
62 - */
63 - public function check_version() {
64 - $betterdocs_version = get_option( 'betterdocs_version', '2.3.6' );
65 - $betterdocs_code_version = betterdocs()->version;
66 - $requires_update = version_compare( $betterdocs_version, $betterdocs_code_version, '<' );
56 + /**
57 + * This method will run when version is updated.
58 + * @return void
59 + */
60 + public function check_version() {
61 + $betterdocs_version = get_option( 'betterdocs_version', '2.3.6' );
62 + $betterdocs_code_version = betterdocs()->version;
63 + $requires_update = version_compare( $betterdocs_version, $betterdocs_code_version, '<' );
67 64
68 - if ( $requires_update ) {
69 - /**
70 - * This block of codes will execute
71 - * if this plugin is activated via PRO PLUGIN.
72 - */
73 - if ( $this->database->get_transient( 'maybe_betterdocs_installed_by_pro' ) ) {
74 - $this->activate();
65 + if ( $requires_update ) {
66 + /**
67 + * This block of codes will execute
68 + * if this plugin is activated via PRO PLUGIN.
69 + */
70 + if ( $this->database->get_transient( 'maybe_betterdocs_installed_by_pro' ) ) {
71 + $this->activate();
75 72
76 - $this->database->delete_transient( 'maybe_betterdocs_installed_by_pro' );
77 - }
73 + $this->database->delete_transient( 'maybe_betterdocs_installed_by_pro' );
74 + }
78 75
79 - // Re-check if any setup needed.
80 - $this->check_db_updates();
76 + // Re-check if any setup needed.
77 + $this->check_db_updates();
81 78
82 - if ( get_option( 'betterdocs_version' ) && str_replace( '.', '', $betterdocs_code_version ) >= 370 ) {
83 - $this->migrate_customizer();
84 - }
79 + // Re-check if any migration is needed.
80 + $this->container->get( Migration::class )->init( str_replace( '.', '', $betterdocs_code_version ) );
85 81
86 - // Re-check if any migration is needed.
87 - $this->container->get( Migration::class )->init( str_replace( '.', '', $betterdocs_code_version ) );
82 + // Updated current version number of plugin.
83 + $this->update_version();
84 + }
85 + }
88 86
89 - // Updated current version number of plugin.
90 - $this->update_version();
91 - }
92 - }
87 + /**
88 + * Update BetterDocs version to current.
89 + */
90 + private function update_version() {
91 + update_option( 'betterdocs_version', betterdocs()->version );
92 + }
93 93
94 - /**
95 - * Update BetterDocs version to current.
96 - */
97 - private function update_version() {
98 - update_option( 'betterdocs_version', betterdocs()->version );
99 - }
94 + /**
95 + * This method will run when activation hit
96 + * @return void
97 + */
98 + public function activate() {
99 + // Create DB Tables if not created.
100 + $this->check_db_updates();
100 101
101 - /**
102 - * This method will run when activation hit
103 - * @return void
104 - */
105 - public function activate() {
106 - // Create DB Tables if not created.
107 - $this->check_db_updates();
102 + // Set admin roles
103 + $this->container->get( Roles::class )->setup();
108 104
109 - // Set admin roles
110 - $this->container->get( Roles::class )->setup();
105 + // Save default settings.
106 + // $this->container->get( Settings::class )->save_default_settings();
111 107
112 - // Save default settings.
113 - // $this->container->get( Settings::class )->save_default_settings();
108 + // Set redirect transient
109 + if ( current_user_can( 'delete_users' ) ) {
110 + $this->database->set_transient( 'betterdocs_maybe_redirect', true );
111 + }
114 112
115 - // Set redirect transient
116 - if ( current_user_can( 'delete_users' ) ) {
117 - $this->database->set_transient( 'betterdocs_maybe_redirect', true );
118 - }
113 + $this->database->set_transient( 'betterdocs_flush_rewrite_rules', true );
114 + }
119 115
120 - $this->database->set_transient( 'betterdocs_flush_rewrite_rules', true );
121 - }
116 + /**
117 + * This method will run when deactivation hit.
118 + * @return void
119 + */
120 + public function deactivate() {
121 + // Flush all the existing rewrite rules
122 + flush_rewrite_rules();
122 123
123 - /**
124 - * This method will run when deactivation hit.
125 - * @return void
126 - */
127 - public function deactivate() {
128 - // Flush all the existing rewrite rules
129 - flush_rewrite_rules();
124 + // Reset admin roles
125 + $this->container->get( Roles::class )->setup( true );
126 + }
130 127
131 - // Reset admin roles
132 - $this->container->get( Roles::class )->setup( true );
133 - }
128 + /**
129 + * This method responsible for setup db tables for the plugin
130 + * @return void
131 + */
132 + public function check_db_updates() {
133 + $_db_version = get_option( 'betterdocs_db_version', '1.0' );
134 + $_db_code_version = betterdocs()->db_version;
135 + $requires_update = version_compare( $_db_version, $_db_code_version, '<' );
134 136
135 - /**
136 - * This method responsible for setup db tables for the plugin
137 - * @return void
138 - */
139 - public function check_db_updates() {
140 - $_db_version = get_option( 'betterdocs_db_version', '1.0' );
141 - $_db_code_version = betterdocs()->db_version;
142 - $requires_update = version_compare( $_db_version, $_db_code_version, '<' );
137 + if ( ! $requires_update ) {
138 + return;
139 + }
143 140
144 - if ( ! $requires_update ) {
145 - return;
146 - }
141 + global $wpdb;
147 142
148 - global $wpdb;
143 + $charset_collate = $wpdb->get_charset_collate();
149 144
150 - $charset_collate = $wpdb->get_charset_collate();
151 -
152 - $search_keyword_table = $wpdb->prefix . 'betterdocs_search_keyword';
153 - $search_keyword = "CREATE TABLE $search_keyword_table (
145 + $search_keyword_table = $wpdb->prefix . 'betterdocs_search_keyword';
146 + $search_keyword = "CREATE TABLE $search_keyword_table (
154 147 id bigint NOT NULL AUTO_INCREMENT,
155 148 keyword text NOT NULL,
156 149 PRIMARY KEY (id)
157 150 ) {$charset_collate};";
158 151
159 - $search_log_table = $wpdb->prefix . 'betterdocs_search_log';
160 - $search_log = "CREATE TABLE $search_log_table (
152 + $search_log_table = $wpdb->prefix . 'betterdocs_search_log';
153 + $search_log = "CREATE TABLE $search_log_table (
161 154 id bigint NOT NULL AUTO_INCREMENT,
162 155 keyword_id bigint NOT NULL,
163 156 count mediumint(9) NULL,
164 157 not_found_count mediumint(9) NULL,
@@ -167,10 +160,10 @@
167 160 KEY keyword_id (keyword_id),
168 161 KEY created_at (created_at)
169 162 ) {$charset_collate};";
170 163
171 - $_analytics_table = $wpdb->prefix . 'betterdocs_analytics';
172 - $analytics_table = "CREATE TABLE $_analytics_table (
164 + $_analytics_table = $wpdb->prefix . 'betterdocs_analytics';
165 + $analytics_table = "CREATE TABLE $_analytics_table (
173 166 id bigint NOT NULL AUTO_INCREMENT,
174 167 post_id bigint DEFAULT 0 NOT NULL,
175 168 impressions bigint DEFAULT 0 NOT NULL,
176 169 unique_visit bigint DEFAULT 0 NOT NULL,
@@ -187,63 +180,11 @@
187 180 KEY normal (normal),
188 181 KEY created_at (created_at)
189 182 ) {$charset_collate};";
190 183
191 - require_once ABSPATH . 'wp-admin/includes/upgrade.php';
192 - dbDelta( $search_keyword . $search_log . $analytics_table );
184 + require_once ABSPATH . 'wp-admin/includes/upgrade.php';
185 + dbDelta( $search_keyword . $search_log . $analytics_table );
193 186
194 - // Update DB Version
195 - update_option( 'betterdocs_db_version', $_db_code_version );
196 - }
197 -
198 - public function migrate_customizer() {
199 - $search_layout = get_theme_mod( 'betterdocs_search_layout_select' );
200 - if ( empty( $search_layout ) ) {
201 - set_theme_mod( 'betterdocs_search_layout_select', 'layout-1' );
202 - }
203 -
204 - $search_heading = get_theme_mod( 'betterdocs_live_search_heading_switch' );
205 - if ( empty( $search_heading ) ) {
206 - set_theme_mod( 'betterdocs_live_search_heading_switch', false );
207 - }
208 -
209 - $docs_layout = get_theme_mod( 'betterdocs_docs_layout_select' );
210 - if ( empty( $docs_layout ) ) {
211 - set_theme_mod( 'betterdocs_docs_layout_select', 'layout-1' );
212 - }
213 -
214 - $single_layout = get_theme_mod( 'betterdocs_single_layout_select' );
215 - if ( empty( $single_layout ) ) {
216 - set_theme_mod( 'betterdocs_single_layout_select', 'layout-1' );
217 - }
218 -
219 - $category_archive_layout = get_theme_mod( 'betterdocs_archive_layout_select' );
220 - if ( empty( $category_archive_layout ) ) {
221 - set_theme_mod( 'betterdocs_archive_layout_select', 'layout-1' );
222 - }
223 -
224 - $search_layout_select = get_theme_mod( 'betterdocs_search_layout_select' );
225 - if ( empty( $search_layout_select ) ) {
226 - set_theme_mod( 'betterdocs_search_layout_select', 'layout-1' );
227 - }
228 -
229 - $docs_faq = get_theme_mod( 'betterdocs_select_faq_template' );
230 - if ( empty( $docs_faq ) ) {
231 - set_theme_mod( 'betterdocs_select_faq_template', 'layout-1' );
232 - }
233 -
234 - if ( get_option( 'betterdocs_settings' ) && betterdocs()->settings->get( 'enable_estimated_reading_time' ) == false ) {
235 - betterdocs()->settings->save( 'enable_estimated_reading_time', false );
236 - }
237 -
238 - if ( function_exists( 'betterdocs_pro' ) ) {
239 - $mkb_layout = get_theme_mod( 'betterdocs_multikb_layout_select' );
240 - if ( empty( $mkb_layout ) ) {
241 - set_theme_mod( 'betterdocs_multikb_layout_select', 'layout-1' );
242 - }
243 - $mkb_faq = get_theme_mod( 'betterdocs_select_faq_template_mkb' );
244 - if ( empty( $mkb_faq ) ) {
245 - set_theme_mod( 'betterdocs_select_faq_template_mkb', 'layout-1' );
246 - }
247 - }
248 - }
187 + // Update DB Version
188 + update_option( 'betterdocs_db_version', $_db_code_version );
189 + }
249 190 }