wpCentral - Version 1.4.3

Version Description

  • wpCentral notice on admin panel can now be dismissed manually.
  • Added remove directory file function.
  • Improved plugins/themes update code.
  • Function to fetch wpCentral installed plugin version.
Download this release

Release Info

Developer softacpriya
Plugin Icon 128x128 wpCentral
Version 1.4.3
Comparing to
See all releases

Code changes from version 1.4.2 to 1.4.3

Files changed (6) hide show
  1. actions.php +65 -34
  2. file_actions.php +1 -1
  3. readme.txt +8 -2
  4. verify.php +2 -0
  5. wpc_functions.php +166 -10
  6. wpcentral.php +6 -4
actions.php CHANGED
@@ -71,6 +71,8 @@ function wpc_site_actions(){
71
  if(!empty($upgrade_error)){
72
  $return['error'] = 'error: '.implode("\n", $upgrade_error);
73
  }
 
 
74
  }
75
 
76
  if(wpc_optGET('plugins') || wpc_optGET('plugin')){
@@ -152,20 +154,33 @@ function wpc_site_actions(){
152
 
153
  $plugin_name = urldecode(wpc_optREQ('plugin'));
154
  $download_link = urldecode(wpc_optREQ('source'));
155
- $site_url = urldecode(wpc_optREQ('siteurl'));
156
 
157
- $filename = basename(parse_url($download_link, PHP_URL_PATH));
 
 
158
 
159
- $download_dest = $wp_config['uploads_dir'].'/'.$filename;
160
- $unzip_dest = $wp_config['plugins_root_dir'];
161
 
162
- wpc_get_web_file($download_link, $download_dest);
 
163
 
164
- if(wpc_sfile_exists($download_dest)){
165
- $res = wpc_unzip($download_dest, $unzip_dest);
166
- }
167
 
168
- @wpc_sunlink($download_dest);
 
 
 
 
 
 
 
 
 
 
 
 
 
169
 
170
  // Lets visit the installation once to make the changes in the database
171
  $resp = wp_remote_get($site_url);
@@ -179,27 +194,30 @@ function wpc_site_actions(){
179
  $themes = urldecode(wpc_optREQ('themes'));
180
  $arr_themes = explode(',', $themes);
181
 
182
- $active_theme = array_keys(wpc_get_active_theme());
183
-
184
- //Do not activate/delete the theme if it is active
185
- foreach($arr_themes as $tk => $tv){
186
- if($active_theme[0] == $tv){
187
- unset($arr_themes[$tk]);
188
- }
189
- }
190
 
191
  if($request == 'activate' && count($arr_themes) == 1){//Activate
192
 
193
- $res = wpc_activate_theme($arr_themes);
194
- if(!empty($error)){
195
- $return['error'] = $error;
196
- }
197
- if(!$res){
198
- $return['error'] = $l['err_activating_theme'];
 
 
 
199
  }
200
 
201
  }elseif($request == 'delete'){//Delete
202
-
 
 
 
 
 
 
 
203
  $res = wpc_delete_theme($arr_themes);
204
  if(!empty($error)){
205
  $return['error'] = $error;
@@ -238,23 +256,36 @@ function wpc_site_actions(){
238
  $return['error'] = $error;
239
  }
240
  }elseif($request == 'update'){//Update Theme
241
-
242
  $theme_name = urldecode(wpc_optREQ('theme'));
243
  $download_link = urldecode(wpc_optREQ('source'));
244
- $site_url = urldecode(wpc_optREQ('siteurl'));
245
 
246
- $filename = basename(parse_url($download_link, PHP_URL_PATH));
 
 
247
 
248
- $download_dest = $wp_config['uploads_dir'].'/'.$filename;
249
- $unzip_dest = $wp_config['themes_root_dir'].'/';
250
 
251
- wpc_get_web_file($download_link, $download_dest);
 
252
 
253
- if(wpc_sfile_exists($download_dest)){
254
- $res = wpc_unzip($download_dest, $unzip_dest);
255
- }
256
 
257
- @wpc_sunlink($download_dest);
 
 
 
 
 
 
 
 
 
 
 
 
 
258
 
259
  // Lets visit the installation once to make the changes in the database
260
  $resp = wp_remote_get($site_url);
71
  if(!empty($upgrade_error)){
72
  $return['error'] = 'error: '.implode("\n", $upgrade_error);
73
  }
74
+
75
+ $return['updatedto'] = wpc_version_wp();
76
  }
77
 
78
  if(wpc_optGET('plugins') || wpc_optGET('plugin')){
154
 
155
  $plugin_name = urldecode(wpc_optREQ('plugin'));
156
  $download_link = urldecode(wpc_optREQ('source'));
 
157
 
158
+ //For backward compatibility
159
+ if(!is_array($plugin_name)) $plugin_name = array($plugin_name);
160
+ if(!is_array($download_link)) $download_link = array($download_link);
161
 
162
+ $sources = urldecode(wpc_optREQ('sources'));
163
+ $arr_sources = explode(',', $sources);
164
 
165
+ $arr_plugins = array_merge($plugin_name, $arr_plugins);
166
+ $arr_sources = array_merge($download_link, $arr_sources);
167
 
168
+ $site_url = urldecode(wpc_optREQ('siteurl'));
 
 
169
 
170
+ foreach($arr_plugins as $plk => $plval){
171
+ $filename = basename(parse_url($arr_sources[$plk], PHP_URL_PATH));
172
+
173
+ $download_dest = $wp_config['uploads_dir'].'/'.$filename;
174
+ $unzip_dest = $wp_config['plugins_root_dir'];
175
+
176
+ wpc_get_web_file($arr_sources[$plk], $download_dest);
177
+
178
+ if(wpc_sfile_exists($download_dest)){
179
+ $res = wpc_unzip($download_dest, $unzip_dest);
180
+ }
181
+
182
+ @wpc_sunlink($download_dest);
183
+ }
184
 
185
  // Lets visit the installation once to make the changes in the database
186
  $resp = wp_remote_get($site_url);
194
  $themes = urldecode(wpc_optREQ('themes'));
195
  $arr_themes = explode(',', $themes);
196
 
197
+ $active_theme = array_keys(wpc_get_active_theme());
 
 
 
 
 
 
 
198
 
199
  if($request == 'activate' && count($arr_themes) == 1){//Activate
200
 
201
+ //Do not activate/delete the theme if it is active
202
+ if($active_theme[0] != $arr_themes[0]){
203
+ $res = wpc_activate_theme($arr_themes);
204
+ if(!empty($error)){
205
+ $return['error'] = $error;
206
+ }
207
+ if(!$res){
208
+ $return['error'] = $l['err_activating_theme'];
209
+ }
210
  }
211
 
212
  }elseif($request == 'delete'){//Delete
213
+
214
+ //Do not delete the theme if it is active
215
+ foreach($arr_themes as $tk => $tv){
216
+ if($active_theme[0] == $tv){
217
+ unset($arr_themes[$tk]);
218
+ }
219
+ }
220
+
221
  $res = wpc_delete_theme($arr_themes);
222
  if(!empty($error)){
223
  $return['error'] = $error;
256
  $return['error'] = $error;
257
  }
258
  }elseif($request == 'update'){//Update Theme
259
+
260
  $theme_name = urldecode(wpc_optREQ('theme'));
261
  $download_link = urldecode(wpc_optREQ('source'));
 
262
 
263
+ //For backward compatibility
264
+ if(!is_array($theme_name)) $theme_name = array($theme_name);
265
+ if(!is_array($download_link)) $download_link = array($download_link);
266
 
267
+ $sources = urldecode(wpc_optREQ('sources'));
268
+ $arr_sources = explode(',', $sources);
269
 
270
+ $arr_themes = array_merge($theme_name, $arr_themes);
271
+ $arr_sources = array_merge($download_link, $arr_sources);
272
 
273
+ $site_url = urldecode(wpc_optREQ('siteurl'));
 
 
274
 
275
+ foreach($arr_themes as $thk => $thval){
276
+ $filename = basename(parse_url($arr_sources[$thk], PHP_URL_PATH));
277
+
278
+ $download_dest = $wp_config['uploads_dir'].'/'.$filename;
279
+ $unzip_dest = $wp_config['themes_root_dir'];
280
+
281
+ wpc_get_web_file($arr_sources[$thk], $download_dest);
282
+
283
+ if(wpc_sfile_exists($download_dest)){
284
+ $res = wpc_unzip($download_dest, $unzip_dest);
285
+ }
286
+
287
+ @wpc_sunlink($download_dest);
288
+ }
289
 
290
  // Lets visit the installation once to make the changes in the database
291
  $resp = wp_remote_get($site_url);
file_actions.php CHANGED
@@ -46,7 +46,7 @@ function wpc_file_actions(){
46
  }else{
47
  $func_response = call_user_func('wpc_'.$action);
48
  }
49
- //$return['func_response'] = $func_response;
50
 
51
  if($func_response){
52
  $return['done'] = $l['done'];
46
  }else{
47
  $func_response = call_user_func('wpc_'.$action);
48
  }
49
+ $return['func_response'] = $func_response;
50
 
51
  if($func_response){
52
  $return['done'] = $l['done'];
readme.txt CHANGED
@@ -2,9 +2,9 @@
2
  Contributors: softaculous
3
  Tags: wpcentral, softaculous, sites, manage sites, backup, plugins, themes, manage wordpress,
4
  Requires at least: 4.4
5
- Tested up to: 5.1
6
  Requires PHP: 5.3
7
- Stable tag: 1.4.2
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -40,6 +40,12 @@ Should you have any suggestions to improve wpcentral, want to see some related f
40
 
41
  == Changelog ==
42
 
 
 
 
 
 
 
43
  = 1.4.2 =
44
  * Added 1-click website connection utility.
45
  * Added rename file function.
2
  Contributors: softaculous
3
  Tags: wpcentral, softaculous, sites, manage sites, backup, plugins, themes, manage wordpress,
4
  Requires at least: 4.4
5
+ Tested up to: 5.2
6
  Requires PHP: 5.3
7
+ Stable tag: 1.4.3
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
40
 
41
  == Changelog ==
42
 
43
+ = 1.4.3 =
44
+ * wpCentral notice on admin panel can now be dismissed manually.
45
+ * Added remove directory file function.
46
+ * Improved plugins/themes update code.
47
+ * Function to fetch wpCentral installed plugin version.
48
+
49
  = 1.4.2 =
50
  * Added 1-click website connection utility.
51
  * Added rename file function.
verify.php CHANGED
@@ -37,6 +37,8 @@ function wpc_verify($auth_key = ''){
37
  $site_settings['wpc_backupdir'] = $wp_config['plugins_root_dir'].'/wp-central/'.(!empty($auth_key) ? $auth_key : wpc_optREQ('auth_key'));
38
 
39
  $site_settings['createdir'] = wpc_can_createdir($site_settings['wpc_backupdir']);
 
 
40
 
41
  $return['data'] = $site_settings;
42
 
37
  $site_settings['wpc_backupdir'] = $wp_config['plugins_root_dir'].'/wp-central/'.(!empty($auth_key) ? $auth_key : wpc_optREQ('auth_key'));
38
 
39
  $site_settings['createdir'] = wpc_can_createdir($site_settings['wpc_backupdir']);
40
+
41
+ $site_settings['wpc_ver'] = wpc_fetch_version();
42
 
43
  $return['data'] = $site_settings;
44
 
wpc_functions.php CHANGED
@@ -220,7 +220,7 @@ function wpc_filelist($startdir="./", $searchSubdirs=1, $directoriesonly=0, $max
220
  $directorylist[$startdir . $file]['path'] = $startdir;
221
  if ($searchSubdirs) {
222
  if ((($maxlevel) == "all") or ($maxlevel > $level)) {
223
- filelist_fn($startdir . $file . "/", $searchSubdirs, $directoriesonly, $maxlevel, ($level + 1), 0);
224
  }
225
  }
226
 
@@ -1947,6 +1947,22 @@ function wpc_delete($filename){
1947
  return wpc_sunlink($filename);
1948
  }
1949
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1950
  /**
1951
  * Used in file_functions to perform backup
1952
  *
@@ -2046,7 +2062,7 @@ function wpc_fetch_authkey(){
2046
  function wpc_deactivation_hook(){
2047
  delete_option('wpcentral_auth_key');
2048
  delete_option('wpcentral_connected');
2049
-
2050
  return true;
2051
  }
2052
 
@@ -2284,6 +2300,7 @@ function wpc_parse_update_plugins($updates){
2284
  function wpc_deactivate(){
2285
  delete_option('wpcentral_auth_key');
2286
  delete_option('wpcentral_connected');
 
2287
  }
2288
 
2289
  /**
@@ -2294,18 +2311,20 @@ function wpc_deactivate(){
2294
  */
2295
  function wpc_authorize(){
2296
  global $l, $error;
 
 
2297
 
2298
  $auth_key = wpc_optREQ('auth_key');
2299
  if(empty($auth_key)){
2300
- $error = 'Unauthorized Access!!';
2301
- echo json_encode($error);
2302
  die();
2303
  }
2304
 
2305
  $verify_authkey = wpc_get_option('wpcentral_auth_key');
2306
  if($auth_key != $verify_authkey){
2307
- $error = $l['invalid_auth_key'];
2308
- echo json_encode($error);
2309
  die();
2310
  }
2311
  }
@@ -2413,6 +2432,10 @@ function my_wpc_actions_init(){
2413
  case 'can_createdir':
2414
  wpc_can_createdir();
2415
  break;
 
 
 
 
2416
  }
2417
  }
2418
 
@@ -2446,6 +2469,29 @@ function wpc_can_createdir($path = ''){
2446
  return $resp;
2447
  }
2448
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2449
  /**
2450
  * Provides access to the website's admin panel
2451
  *
@@ -2486,6 +2532,46 @@ function wpc_get_curr_user_role(){
2486
  return wp_get_current_user()->roles[0];
2487
  }
2488
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2489
  /**
2490
  * Display wpCentral notice in dashboard
2491
  *
@@ -2498,6 +2584,18 @@ function wpc_admin_notice(){
2498
  if($role == 'administrator' && !wpc_get_option('wpcentral_connected')){
2499
 
2500
  echo '
 
 
 
 
 
 
 
 
 
 
 
 
2501
  <style>
2502
  .wpc_sub_head{
2503
  font-size: 20px !important;
@@ -2581,15 +2679,15 @@ function wpc_admin_notice(){
2581
  }
2582
  </style>
2583
 
2584
- <div class="updated wpc_notice">
2585
  <div style="width:100%; padding-top:10px;">
2586
  <div class="wpc_main_head">
2587
- <img src="http://wpcentral.co/images/icon_dark.png" style="height:40px; padding:5px 0;">
2588
- <img src="http://wpcentral.co/images/logo_dark.png" alt="wpcentral" title="wpcentral" style="height:40px; padding:5px 0;">
2589
  </div><br />
2590
  <div class="wpc_row">
2591
  <div class="wpc_head wpc_col-sm-3"><b>Website URL:</b></div>
2592
- <div class="wpc_col-sm-8">'.get_option('siteurl').'</div>
2593
  </div><br /><br />
2594
  <div class="wpc_row">
2595
  <div class="wpc_head wpc_col-sm-3"><b>wpCentral Connection Key:</b></div>
@@ -2614,4 +2712,62 @@ function wpc_admin_notice(){
2614
  </div>
2615
  </div>';
2616
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2617
  }
220
  $directorylist[$startdir . $file]['path'] = $startdir;
221
  if ($searchSubdirs) {
222
  if ((($maxlevel) == "all") or ($maxlevel > $level)) {
223
+ wpc_filelist($startdir . $file . "/", $searchSubdirs, $directoriesonly, $maxlevel, ($level + 1), 0);
224
  }
225
  }
226
 
1947
  return wpc_sunlink($filename);
1948
  }
1949
 
1950
+ /**
1951
+ * Removes a directory
1952
+ *
1953
+ * @param string $directory path
1954
+ * @returns bool
1955
+ * @since 1.4.3
1956
+ */
1957
+ function wpc_srm($path){
1958
+
1959
+ if(is_dir($path)){
1960
+ return wpc_rmdir_recursive($path);
1961
+ }
1962
+ // So its a file !
1963
+ return wpc_sunlink($path);
1964
+ }
1965
+
1966
  /**
1967
  * Used in file_functions to perform backup
1968
  *
2062
  function wpc_deactivation_hook(){
2063
  delete_option('wpcentral_auth_key');
2064
  delete_option('wpcentral_connected');
2065
+ delete_option('wpc_dismiss_notice_date');
2066
  return true;
2067
  }
2068
 
2300
  function wpc_deactivate(){
2301
  delete_option('wpcentral_auth_key');
2302
  delete_option('wpcentral_connected');
2303
+ delete_option('wpc_dismiss_notice_date');
2304
  }
2305
 
2306
  /**
2311
  */
2312
  function wpc_authorize(){
2313
  global $l, $error;
2314
+
2315
+ $return = array();
2316
 
2317
  $auth_key = wpc_optREQ('auth_key');
2318
  if(empty($auth_key)){
2319
+ $return['error'] = 'Unauthorized Access!!';
2320
+ echo json_encode($return);
2321
  die();
2322
  }
2323
 
2324
  $verify_authkey = wpc_get_option('wpcentral_auth_key');
2325
  if($auth_key != $verify_authkey){
2326
+ $return['error'] = $l['invalid_auth_key'];
2327
+ echo json_encode($return);
2328
  die();
2329
  }
2330
  }
2432
  case 'can_createdir':
2433
  wpc_can_createdir();
2434
  break;
2435
+
2436
+ case 'wpcentral_version':
2437
+ wpc_fetch_version();
2438
+ break;
2439
  }
2440
  }
2441
 
2469
  return $resp;
2470
  }
2471
 
2472
+ /**
2473
+ * Fetch the installed version of wpcentral plugin in the website
2474
+ *
2475
+ * @returns string wpcentral version number
2476
+ * @since 1.4.3
2477
+ */
2478
+ function wpc_fetch_version(){
2479
+ global $wp_config;
2480
+
2481
+ $plugin_data = wpc_get_plugin_data($wp_config['plugins_root_dir'].'/wp-central/wpcentral.php');
2482
+
2483
+ $wpc_version = $plugin_data['Version'];
2484
+
2485
+ if(isset($_GET['callfetch'])){
2486
+ $return = array();
2487
+ $return['wpc_ver'] = $wpc_version;
2488
+
2489
+ echo json_encode($return);
2490
+ }
2491
+
2492
+ return $wpc_version;
2493
+ }
2494
+
2495
  /**
2496
  * Provides access to the website's admin panel
2497
  *
2532
  return wp_get_current_user()->roles[0];
2533
  }
2534
 
2535
+ /**
2536
+ * Dismiss wpCentral notice and save the dismiss date.
2537
+ *
2538
+ * @since 1.4.3
2539
+ */
2540
+ function wpc_dismiss_notice(){
2541
+
2542
+ $wpc_dismissable_notice_date = get_option('wpc_dismiss_notice_date');
2543
+
2544
+ if(empty($wpc_dismissable_notice_date)){
2545
+ add_option('wpc_dismiss_notice_date', date('Y-m-d'));
2546
+ }else{
2547
+ update_option('wpc_dismiss_notice_date', date('Y-m-d'));
2548
+ }
2549
+ }
2550
+
2551
+ /**
2552
+ * Display wpCentral notice on the basis of last dismiss date. When user manually dismisses the notice, it remains for 1 month
2553
+ *
2554
+ * @since 1.4.3
2555
+ */
2556
+ function wpc_is_display_notice(){
2557
+
2558
+ $wpc_dismissable_notice_date = get_option('wpc_dismiss_notice_date');
2559
+
2560
+ if(empty($wpc_dismissable_notice_date)){
2561
+ return true;
2562
+ }
2563
+
2564
+ $wpc_dismissable_notice_date2 = new DateTime($wpc_dismissable_notice_date);
2565
+ $current_date = new DateTime(date('Y-m-d'));
2566
+ $date_diff_month = $wpc_dismissable_notice_date2->diff($current_date);
2567
+
2568
+ //Do not display notice again for a month
2569
+ if($date_diff_month->m < 1){
2570
+ return false;
2571
+ }
2572
+
2573
+ return true;
2574
+ }
2575
  /**
2576
  * Display wpCentral notice in dashboard
2577
  *
2584
  if($role == 'administrator' && !wpc_get_option('wpcentral_connected')){
2585
 
2586
  echo '
2587
+ <script type="text/javascript">
2588
+ jQuery(document).ready(function(){
2589
+ jQuery(document).on("click", ".my-wpc-dismiss-notice .notice-dismiss", function(){
2590
+ var data = {
2591
+ action: "wpc_dismissnotice"
2592
+ };
2593
+ var site_url = jQuery(".wpc_siteurl").text()+"/wp-admin/admin-ajax.php";
2594
+ jQuery.post(site_url, data, function(response){
2595
+ });
2596
+ });
2597
+ });
2598
+ </script>
2599
  <style>
2600
  .wpc_sub_head{
2601
  font-size: 20px !important;
2679
  }
2680
  </style>
2681
 
2682
+ <div class="updated wpc_notice notice notice-success my-wpc-dismiss-notice is-dismissible">
2683
  <div style="width:100%; padding-top:10px;">
2684
  <div class="wpc_main_head">
2685
+ <img src="https://wpcentral.co/images/icon_dark.png" style="height:40px; padding:5px 0;">
2686
+ <img src="https://wpcentral.co/images/logo_dark.png" alt="wpcentral" title="wpcentral" style="height:40px; padding:5px 0;">
2687
  </div><br />
2688
  <div class="wpc_row">
2689
  <div class="wpc_head wpc_col-sm-3"><b>Website URL:</b></div>
2690
+ <div class="wpc_col-sm-8 wpc_siteurl">'.get_option('siteurl').'</div>
2691
  </div><br /><br />
2692
  <div class="wpc_row">
2693
  <div class="wpc_head wpc_col-sm-3"><b>wpCentral Connection Key:</b></div>
2712
  </div>
2713
  </div>';
2714
  }
2715
+ }
2716
+
2717
+ /* Removes a Directory Recursively
2718
+ *
2719
+ * @param string $path The path of the folder to be removed
2720
+ * @return boolean
2721
+ * @since 1.4.3
2722
+ */
2723
+ function wpc_rmdir_recursive($path){
2724
+ if(!wpc_is_safe_file($path)) return false;
2725
+
2726
+ $path = (substr($path, -1) == '/' || substr($path, -1) == '\\' ? $path : $path.'/');
2727
+
2728
+ wpc_resetfilelist();
2729
+
2730
+ $files = wpc_filelist($path, 1, 0, 'all');
2731
+ $files = (!is_array($files) ? array() : $files);
2732
+
2733
+ //First delete the files only
2734
+ foreach($files as $k => $v){
2735
+ if(wpc_is_safe_file($k)){
2736
+ @chmod($k, 0777);
2737
+ }
2738
+ if(file_exists($k) && is_file($k) && @filetype($k) == "file"){
2739
+ @unlink($k);
2740
+ }
2741
+ }
2742
+
2743
+ @clearstatcache();
2744
+
2745
+ $folders = wpc_filelist($path, 1, 1, 'all');
2746
+ $folders = (!is_array($folders) ? array() : $folders);
2747
+ @krsort($folders);
2748
+
2749
+ //Now Delete the FOLDERS
2750
+ foreach($folders as $k => $v){
2751
+ if(wpc_is_safe_file($k)){
2752
+ @chmod($k, 0777);
2753
+ }
2754
+ if(is_dir($k)){
2755
+ @rmdir($k);
2756
+ }
2757
+ }
2758
+
2759
+ @rmdir($path);
2760
+
2761
+ @clearstatcache();
2762
+
2763
+ return true;
2764
+ }
2765
+
2766
+ /* A Function that reset lists files
2767
+ *
2768
+ * @since 1.4.3
2769
+ */
2770
+ function wpc_resetfilelist(){
2771
+ global $directorylist;
2772
+ $directorylist = array();
2773
  }
wpcentral.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: wpCentral
4
  Plugin URI: https://wpcentral.co
5
  Description: wpCentral provides a centralized area where you can manage all your WordPress websites singularly, unitedly as well as efficiently.
6
- Version: 1.4.2
7
  Author: Softaculous Ltd.
8
  Author URI: https://wpcentral.co
9
  License: GPL2
@@ -49,9 +49,11 @@ if(is_plugin_active($wpc_slug)){
49
  add_action( 'plugins_loaded', 'wpc_load_plugin' );
50
 
51
  include_once(ABSPATH.'wp-includes/pluggable.php');
52
-
53
- add_action('admin_notices', 'wpc_admin_notice');
54
-
 
 
55
  add_action('wp_ajax_nopriv_my_wpc_actions', 'my_wpc_actions_init');
56
 
57
  if(is_user_logged_in()){
3
  Plugin Name: wpCentral
4
  Plugin URI: https://wpcentral.co
5
  Description: wpCentral provides a centralized area where you can manage all your WordPress websites singularly, unitedly as well as efficiently.
6
+ Version: 1.4.3
7
  Author: Softaculous Ltd.
8
  Author URI: https://wpcentral.co
9
  License: GPL2
49
  add_action( 'plugins_loaded', 'wpc_load_plugin' );
50
 
51
  include_once(ABSPATH.'wp-includes/pluggable.php');
52
+
53
+ if(wpc_is_display_notice()){
54
+ add_action('admin_notices', 'wpc_admin_notice');
55
+ }
56
+ add_action('wp_ajax_wpc_dismissnotice', 'wpc_dismiss_notice');
57
  add_action('wp_ajax_nopriv_my_wpc_actions', 'my_wpc_actions_init');
58
 
59
  if(is_user_logged_in()){