WP Content Copy Protection & No Right Click - Version 2.8.1

Version Description

  • Important fix for 2.7 update
  • Add links to dismiss the new start page links
Download this release

Release Info

Developer wp-buy
Plugin Icon 128x128 WP Content Copy Protection & No Right Click
Version 2.8.1
Comparing to
See all releases

Code changes from version 2.3 to 2.8.1

admin-core.php CHANGED
@@ -215,7 +215,6 @@ if(localStorage.getItem('wpccp_subscribed') =='wpccp_subsbc_user')
215
  <li><a href="#"><?php _e('Premium RightClick Protection','wp-content-copy-protector'); ?></a></li>
216
  <li><a href="#"><?php _e('Premium Protection by CSS','wp-content-copy-protector'); ?></a></li>
217
  <li><a href="#"><?php _e('More with pro','wp-content-copy-protector'); ?></a></li>
218
- <li><a href="#"><?php _e('Other products','wp-content-copy-protector'); ?></a></li>
219
  </ul>
220
  <div class="simpleTabsContent">
221
  <table border="0" width="100%" cellspacing="0" cellpadding="0">
@@ -481,33 +480,7 @@ if(localStorage.getItem('wpccp_subscribed') =='wpccp_subsbc_user')
481
  </ul>
482
  <p><a href="https://www.wp-buy.com/wpccp-subscribe">Subscribe</a> to our mailing list to get flash discounts</p>
483
  </div>
484
- <div class="simpleTabsContent" id="a55">
485
- <h4><?php _e('Other products:','wp-content-copy-protector'); ?></h4>
486
- <div id="other-products">
487
- <?php
488
- $before_url = '';
489
- if(is_multisite()) $before_url = "network/";
490
- ?>
491
- <a href="<?php echo $before_url ?>plugin-install.php?s=wp-buy+codepressplugins++WP+Maintenance+Mode+Site+Under+Construction&tab=search&type=term">
492
- <img class="size-full" border="1" src="<?php echo $pluginsurl ?>/images/other-products/1.gif" style="margin: 10px">
493
- </a>
494
- <a href="<?php echo $before_url ?>plugin-install.php?s=Post+List+Creator&tab=search&type=tag">
495
- <img class="size-full" border="1" src="<?php echo $pluginsurl ?>/images/other-products/2.gif" style="margin: 10px">
496
- </a>
497
- <a href="<?php echo $before_url ?>plugin-install.php?s=wp-buy+Captchinoo&tab=search&type=term">
498
- <img class="size-full" border="1" src="<?php echo $pluginsurl ?>/images/other-products/3.gif" style="margin: 10px">
499
- </a>
500
- <a href="<?php echo $before_url ?>plugin-install.php?s=wp-buy+Login+LockDown+–+Limit+Failed+Login+Attempts&tab=search&type=term">
501
- <img class="size-full" border="1" src="<?php echo $pluginsurl ?>/images/other-products/4.gif" style="margin: 10px">
502
- </a>
503
- <style>
504
- #other-products a,#other-products a:active,#other-products a:focus{
505
- color: #fff;
506
- }
507
- </style>
508
- </div>
509
  </div><!-- simple tabs div end -->
510
  <p align="right"><input class="btn btn-success" type="submit" value=" <?php _e('Save Settings','wp-content-copy-protector'); ?> " name="B4" style="width: 193; height: 29;">&nbsp;&nbsp;</p>
511
  </form>
512
- </div>
513
-
215
  <li><a href="#"><?php _e('Premium RightClick Protection','wp-content-copy-protector'); ?></a></li>
216
  <li><a href="#"><?php _e('Premium Protection by CSS','wp-content-copy-protector'); ?></a></li>
217
  <li><a href="#"><?php _e('More with pro','wp-content-copy-protector'); ?></a></li>
 
218
  </ul>
219
  <div class="simpleTabsContent">
220
  <table border="0" width="100%" cellspacing="0" cellpadding="0">
480
  </ul>
481
  <p><a href="https://www.wp-buy.com/wpccp-subscribe">Subscribe</a> to our mailing list to get flash discounts</p>
482
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
483
  </div><!-- simple tabs div end -->
484
  <p align="right"><input class="btn btn-success" type="submit" value=" <?php _e('Save Settings','wp-content-copy-protector'); ?> " name="B4" style="width: 193; height: 29;">&nbsp;&nbsp;</p>
485
  </form>
486
+ </div>
 
preventer-index.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: WP Content Copy Protection & No Right Click
4
  Plugin URI: http://wordpress.org/plugins/w-p-content-copy-protector/
5
  Description: This wp plugin protect the posts content from being copied by any other web site author , you dont want your content to spread without your permission!!
6
- Version: 2.3
7
  Author: wp-buy
8
  Text Domain: wp-content-copy-protector
9
  Domain Path: /languages
@@ -15,6 +15,7 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
15
  //define all variables the needed alot
16
  include 'the_globals.php';
17
  include_once('notifications.php');
 
18
  $wccp_settings = wccp_read_options();
19
  //---------------------------------------------------------------------------------------------
20
  //Load plugin textdomain to load translations
@@ -23,6 +24,7 @@ function wccp_free_load_textdomain() {
23
  load_plugin_textdomain( 'wp-content-copy-protector', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' );
24
  }
25
  add_action( 'init', 'wccp_free_load_textdomain' );
 
26
  //---------------------------------------------------------<!-- SimpleTabs -->
27
  function wccp_enqueue_scripts() {
28
  global $pluginsurl;
@@ -35,10 +37,12 @@ function wccp_enqueue_scripts() {
35
 
36
  wp_register_style('simpletabscss', $pluginsurl.'/css/simpletabs.css');
37
  wp_enqueue_style('simpletabscss');
 
 
 
38
  }
39
  }
40
  // Hook into the 'wp_enqueue_scripts' action
41
- //add_action( 'admin_head', 'wccp_enqueue_scripts' );
42
  add_action('admin_enqueue_scripts', 'wccp_enqueue_scripts');
43
  //------------------------------------------------------------------------
44
  function wpcp_disable_Right_Click()
@@ -65,7 +69,7 @@ function wpcp_disable_selection()
65
  global $wccp_settings;
66
  ?>
67
  <script id="wpcp_disable_selection" type="text/javascript">
68
- //<![CDATA[
69
  var image_save_msg='You Can Not Save images!';
70
  var no_menu_msg='Context Menu disabled!';
71
  var smessage = "<?php echo $wccp_settings['smessage'];?>";
@@ -88,7 +92,7 @@ function disableEnterKey(e)
88
  else
89
  key = e.which; //firefox (97)
90
  //if (key != 17) alert(key);
91
- if (elemtype!= 'TEXT' && (key == 97 || key == 65 || key == 67 || key == 99 || key == 88 || key == 120 || key == 26 || key == 85 || key == 86 || key == 83 || key == 43))
92
  {
93
  show_wpcp_message('You are not allowed to copy content or view source');
94
  return false;
@@ -163,7 +167,79 @@ function disableSelection(target)
163
  }
164
  //Calling the JS function directly just after body load
165
  window.onload = function(){disableSelection(document.body);};
166
- //]]>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
167
  </script>
168
  <?php
169
  }
@@ -488,36 +564,20 @@ function wccp_default_options(){
488
  );
489
  return $wccp_settings;
490
  }
491
- //---------------------------------------------Add button to the admin bar
492
- add_action('admin_bar_menu', 'add_items', 40);
493
- function add_items($admin_bar)
494
- {
495
- global $pluginsurl;
496
- $wccpadminurl = get_admin_url();
497
- //The properties of the new item. Read More about the missing 'parent' parameter below
498
- $args = array(
499
- 'id' => 'Protection',
500
- 'title' => __('<img src="'.$pluginsurl.'/images/adminbaricon.png" style="vertical-align:middle;margin-right:5px;width: 22px;" alt="Protection" title="Protection" />Protection' ),
501
- 'href' => $wccpadminurl.'options-general.php?page=wccpoptionspro',
502
- 'meta' => array('title' => __('WP Content Copy Protection'),)
503
- );
504
-
505
- //This is where the magic works.
506
- $admin_bar->add_menu( $args);
507
- }
508
  //---------------------------------------- Add plugin settings link to Plugins page
509
- function wccp_plugin_add_settings_link( $links ) {
510
- $settings_link = '<a href="options-general.php?page=wccpoptionspro">' . __( 'Settings' ) . '</a>';
 
511
  array_push( $links, $settings_link );
 
 
 
 
512
  return $links;
513
  }
514
  $plugin = plugin_basename( __FILE__ );
515
  add_filter( "plugin_action_links_$plugin", 'wccp_plugin_add_settings_link' );
516
  //------------------------------------------------------------------------
517
- function wccp_options_page_pro() {
518
- include 'admin-core.php';
519
- }
520
- //------------------------------------------------------------------------
521
  //Make a WordPress function to add to the correct menu.
522
  function wpccp_after_plugin_row( $plugin_file, $plugin_data, $status ) {
523
  $plugin_name = substr(__FILE__, strlen(ABSPATH . PLUGINDIR . '/'));
@@ -532,7 +592,7 @@ function wpccp_after_plugin_row( $plugin_file, $plugin_data, $status ) {
532
  echo '<th class="check-column" scope="row"></th>';
533
  echo '<td colspan="3" class="plugin-update">';
534
  echo '<div id="wccp-update-message" style="background:#edf4f7;padding:10px;" >';
535
- echo __('You are running WP Content Copy Protection & No Right Click (free). To get more features, you can ') . '<a href="' .$p_url. '" target="_blank"><strong>' . __('Upgrade Now') . '</strong></a>, <a id="HideMe" href="javascript:void(0)"><strong>' . __('Dismiss') . '</strong></a>.';
536
  echo '</div>';
537
  echo '</td>';
538
  echo '</tr>';
@@ -563,6 +623,7 @@ function wpccp_after_plugin_row( $plugin_file, $plugin_data, $status ) {
563
  }
564
 
565
  });
 
566
  </script>
567
  <?php
568
  }
@@ -571,10 +632,24 @@ function wpccp_after_plugin_row( $plugin_file, $plugin_data, $status ) {
571
  $path = plugin_basename( __FILE__ );
572
  add_action("after_plugin_row_{$path}", "wpccp_after_plugin_row", 10, 3 );
573
  //------------------------------------------------------------------------
 
 
 
 
574
  //Make our function to call the WordPress function to add to the correct menu.
575
  function wccp_add_options() {
576
- add_options_page(__('WP Content Copy Protection', 'wp-content-copy-protector'), __('WP Content Copy Protection', 'wp-content-copy-protector'), 'manage_options', 'wccpoptionspro', 'wccp_options_page_pro');
577
- }
 
 
 
 
 
 
 
 
 
 
578
  //First use the add_action to add onto the WordPress menu.
579
  add_action('admin_menu', 'wccp_add_options');
580
  ?>
3
  Plugin Name: WP Content Copy Protection & No Right Click
4
  Plugin URI: http://wordpress.org/plugins/w-p-content-copy-protector/
5
  Description: This wp plugin protect the posts content from being copied by any other web site author , you dont want your content to spread without your permission!!
6
+ Version: 2.8.1
7
  Author: wp-buy
8
  Text Domain: wp-content-copy-protector
9
  Domain Path: /languages
15
  //define all variables the needed alot
16
  include 'the_globals.php';
17
  include_once('notifications.php');
18
+ include_once('settings-start-index.php'); //just include it and fix the add_submenu_page function to allow the united starting page
19
  $wccp_settings = wccp_read_options();
20
  //---------------------------------------------------------------------------------------------
21
  //Load plugin textdomain to load translations
24
  load_plugin_textdomain( 'wp-content-copy-protector', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' );
25
  }
26
  add_action( 'init', 'wccp_free_load_textdomain' );
27
+
28
  //---------------------------------------------------------<!-- SimpleTabs -->
29
  function wccp_enqueue_scripts() {
30
  global $pluginsurl;
37
 
38
  wp_register_style('simpletabscss', $pluginsurl.'/css/simpletabs.css');
39
  wp_enqueue_style('simpletabscss');
40
+
41
+ wp_register_style('font-awesome.min.css', 'https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css');
42
+ wp_enqueue_style('font-awesome.min.css');
43
  }
44
  }
45
  // Hook into the 'wp_enqueue_scripts' action
 
46
  add_action('admin_enqueue_scripts', 'wccp_enqueue_scripts');
47
  //------------------------------------------------------------------------
48
  function wpcp_disable_Right_Click()
69
  global $wccp_settings;
70
  ?>
71
  <script id="wpcp_disable_selection" type="text/javascript">
72
+ /*<![CDATA[*/
73
  var image_save_msg='You Can Not Save images!';
74
  var no_menu_msg='Context Menu disabled!';
75
  var smessage = "<?php echo $wccp_settings['smessage'];?>";
92
  else
93
  key = e.which; //firefox (97)
94
  //if (key != 17) alert(key);
95
+ if (elemtype!= 'TEXT' && (key == 97 || key == 65 || key == 67 || key == 99 || key == 88 || key == 120 || key == 26 || key == 85 || key == 86 || key == 83 || key == 43 || key == 73))
96
  {
97
  show_wpcp_message('You are not allowed to copy content or view source');
98
  return false;
167
  }
168
  //Calling the JS function directly just after body load
169
  window.onload = function(){disableSelection(document.body);};
170
+
171
+ //////////////////special for safari Start////////////////
172
+ var onlongtouch;
173
+ var timer;
174
+ var touchduration = 1000; //length of time we want the user to touch before we do something
175
+
176
+ var elemtype = "";
177
+ function touchstart(e) {
178
+ var e = e || window.event;
179
+ // also there is no e.target property in IE.
180
+ // instead IE uses window.event.srcElement
181
+ var target = e.target || e.srcElement;
182
+
183
+ elemtype = window.event.srcElement.nodeName;
184
+
185
+ elemtype = elemtype.toUpperCase();
186
+
187
+ if(!wccp_pro_is_passive()) e.preventDefault();
188
+ if (!timer) {
189
+ timer = setTimeout(onlongtouch, touchduration);
190
+ }
191
+ }
192
+
193
+ function touchend() {
194
+ //stops short touches from firing the event
195
+ if (timer) {
196
+ clearTimeout(timer);
197
+ timer = null;
198
+ }
199
+ onlongtouch();
200
+ }
201
+
202
+ onlongtouch = function(e) { //this will clear the current selection if anything selected
203
+
204
+ if (elemtype != "TEXT" && elemtype != "TEXTAREA" && elemtype != "INPUT" && elemtype != "PASSWORD" && elemtype != "SELECT" && elemtype != "EMBED" && elemtype != "OPTION")
205
+ {
206
+ if (window.getSelection) {
207
+ if (window.getSelection().empty) { // Chrome
208
+ window.getSelection().empty();
209
+ } else if (window.getSelection().removeAllRanges) { // Firefox
210
+ window.getSelection().removeAllRanges();
211
+ }
212
+ } else if (document.selection) { // IE?
213
+ document.selection.empty();
214
+ }
215
+ return false;
216
+ }
217
+ };
218
+
219
+ document.addEventListener("DOMContentLoaded", function(event) {
220
+ window.addEventListener("touchstart", touchstart, false);
221
+ window.addEventListener("touchend", touchend, false);
222
+ });
223
+
224
+ function wccp_pro_is_passive() {
225
+
226
+ var cold = false,
227
+ hike = function() {};
228
+
229
+ try {
230
+ const object1 = {};
231
+ var aid = Object.defineProperty(object1, 'passive', {
232
+ get() {cold = true}
233
+ });
234
+ window.addEventListener('test', hike, aid);
235
+ window.removeEventListener('test', hike, aid);
236
+ } catch (e) {}
237
+
238
+ return cold;
239
+ }
240
+ /*special for safari End*/
241
+
242
+ /*]]>*/
243
  </script>
244
  <?php
245
  }
564
  );
565
  return $wccp_settings;
566
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
567
  //---------------------------------------- Add plugin settings link to Plugins page
568
+ function wccp_plugin_add_settings_link( $links )
569
+ {
570
+ $settings_link = '<a href="admin.php?page=cp_plugins_settings_start_page_slug">' . __( 'Settings', 'wp-content-copy-protector') . '</a>';
571
  array_push( $links, $settings_link );
572
+
573
+ $go_pro_link = '<a title="Upgrade to PRO verion Now" target="_blank" style="font-weight:bold;color: chocolate;" href="https://www.wp-buy.com/product/wp-content-copy-protection-pro/#wccp_go_pro">' . __( 'Go PRO', 'wp-content-copy-protector') . '</a>';
574
+ array_push( $links, $go_pro_link );
575
+
576
  return $links;
577
  }
578
  $plugin = plugin_basename( __FILE__ );
579
  add_filter( "plugin_action_links_$plugin", 'wccp_plugin_add_settings_link' );
580
  //------------------------------------------------------------------------
 
 
 
 
581
  //Make a WordPress function to add to the correct menu.
582
  function wpccp_after_plugin_row( $plugin_file, $plugin_data, $status ) {
583
  $plugin_name = substr(__FILE__, strlen(ABSPATH . PLUGINDIR . '/'));
592
  echo '<th class="check-column" scope="row"></th>';
593
  echo '<td colspan="3" class="plugin-update">';
594
  echo '<div id="wccp-update-message" style="background:#edf4f7;padding:10px;" >';
595
+ echo __('You are running WP Content Copy Protection & No Right Click (free). To get more features, you can ', 'wp-content-copy-protector') . '<a href="' .$p_url. '" target="_blank"><strong>' . __('Upgrade Now', 'wp-content-copy-protector') . '</strong></a>, <a id="HideMe" href="javascript:void(0)"><strong>' . __('Dismiss', 'wp-content-copy-protector') . '</strong></a>.';
596
  echo '</div>';
597
  echo '</td>';
598
  echo '</tr>';
623
  }
624
 
625
  });
626
+
627
  </script>
628
  <?php
629
  }
632
  $path = plugin_basename( __FILE__ );
633
  add_action("after_plugin_row_{$path}", "wpccp_after_plugin_row", 10, 3 );
634
  //------------------------------------------------------------------------
635
+ function wccp_options_page_pro() {
636
+ include 'admin-core.php';
637
+ }
638
+ //------------------------------------------------------------------------
639
  //Make our function to call the WordPress function to add to the correct menu.
640
  function wccp_add_options() {
641
+ //add_options_page(__('WP Content Copy Protection', 'wp-content-copy-protector'), __('WP Content Copy Protection', 'wp-content-copy-protector'), 'manage_options', 'wccpoptionspro', 'wccp_options_page_pro');
642
+ add_menu_page
643
+ (
644
+ 'WP Content Copy Protection', // parent slug is null to hide it from admin menu
645
+ 'Copy Protection', // page title
646
+ 'manage_options', // capability
647
+ 'wccpoptionspro', // slug
648
+ 'wccp_options_page_pro', // callback
649
+ 'dashicons-lock',
650
+ 6
651
+ );
652
+ }
653
  //First use the add_action to add onto the WordPress menu.
654
  add_action('admin_menu', 'wccp_add_options');
655
  ?>
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: wp-buy
3
  Donate link: http://goo.gl/UJVpbi
4
  Tags: content, content copy protection, content protection, copy protection, prevent copy, protect blog, image protect, image protection, no right click, plagiarism, secure content, content theft
5
  Requires at least: 3.5
6
- Tested up to: 5.4
7
  Stable tag: trunk
8
 
9
  This wp plugin protect the posts content from being copied by any other web site author (content copy protection) , you dont want your content to spread without your permission!!
@@ -30,6 +30,7 @@ your posts extremely simple without yelling at your readers</li>
30
 
31
  **The Pro Edition Features include:**
32
  <ul>
 
33
  <li>Watermarking</li>
34
  <li>Using htacsess rules</li>
35
  <li>Support jquery overlay protection</li>
@@ -64,9 +65,31 @@ your posts extremely simple without yelling at your readers</li>
64
  </ul>
65
 
66
  == Changelog ==
67
- =2.4=
68
  <ul>
69
- <li>This update is happen because of help, alot of help from Kenedy Torcatt https://wordpress.org/support/users/kenedyt/, So many thanks to him forever</li>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
70
  </ul>
71
  = 2.3 =
72
  <ul>
3
  Donate link: http://goo.gl/UJVpbi
4
  Tags: content, content copy protection, content protection, copy protection, prevent copy, protect blog, image protect, image protection, no right click, plagiarism, secure content, content theft
5
  Requires at least: 3.5
6
+ Tested up to: 5.5.1
7
  Stable tag: trunk
8
 
9
  This wp plugin protect the posts content from being copied by any other web site author (content copy protection) , you dont want your content to spread without your permission!!
30
 
31
  **The Pro Edition Features include:**
32
  <ul>
33
+ <li><a href="https://www.wp-buy.com/product/wp-content-copy-protection-pro/"><strong>PRO version product page</strong></li>
34
  <li>Watermarking</li>
35
  <li>Using htacsess rules</li>
36
  <li>Support jquery overlay protection</li>
65
  </ul>
66
 
67
  == Changelog ==
68
+ = 2.8.1 =
69
  <ul>
70
+ <li>Important fix for 2.7 update</li>
71
+ <li>Add links to dismiss the new start page links</li>
72
+ </ul>
73
+ = 2.7 =
74
+ <ul>
75
+ <li>Disable (CTRL + Shift + I) developer tools shortcut key</li>
76
+ <li>Remove recommended plugins section from admin page</li>
77
+ <li>Add one starting page for all of our plugins</li>
78
+ <li>Code fix</li>
79
+ </ul>
80
+ = 2.6 =
81
+ <ul>
82
+ <li>Test all features with wordpress version 5.5</li>
83
+ </ul>
84
+ = 2.5 =
85
+ <ul>
86
+ <li>Code fix</li>
87
+ </ul>
88
+ = 2.4 =
89
+ <ul>
90
+ <li>Safari update and fix</li>
91
+ <li>checking with new wordpress version</li>
92
+ <li>Admin page Fix</li>
93
  </ul>
94
  = 2.3 =
95
  <ul>
settings-start-index.php ADDED
@@ -0,0 +1,271 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ ob_start();
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ // Exit if accessed directly.
5
+ exit;
6
+ }
7
+ //file_version 2.0
8
+
9
+ //---------------------------------------------------------------------------------------------
10
+ //Register required scripts.
11
+ //---------------------------------------------------------------------------------------------
12
+ if (!function_exists('cp_plugins_enqueue_scripts')){
13
+ function cp_plugins_enqueue_scripts() {
14
+ $pluginsurl = plugins_url( '', __FILE__ ); // Get the current plugin url
15
+ $admincore = '';
16
+ if (isset($_GET['page'])) $admincore = sanitize_text_field($_GET['page']);
17
+ if( ( current_user_can('editor') || current_user_can('administrator') ) && $admincore == 'cp_plugins_settings_start_page_slug')
18
+ {
19
+ wp_enqueue_script('jquery');
20
+
21
+ wp_enqueue_style('thickbox'); //include thickbox .css
22
+ wp_enqueue_script('thickbox'); //include Thickbox jQuery plugin
23
+
24
+ wp_register_style('bootstrap-grid.min', $pluginsurl.'/start-page-assests/css/bootstrap-grid.min.css');
25
+ wp_enqueue_style('bootstrap-grid.min');
26
+ }
27
+ }
28
+ }
29
+ //---------------------------------------------------------------------------------------------
30
+ //start_page_remove_menu_choice
31
+ //---------------------------------------------------------------------------------------------
32
+ if (!function_exists('start_page_remove_menu_choice')){
33
+ function start_page_remove_menu_choice()
34
+ {
35
+ $start_page_remove_menu_links = get_site_option( 'start_page_remove_menu_links' );
36
+ if(isset($start_page_remove_menu_links) && $start_page_remove_menu_links == "yes")
37
+ return "yes";
38
+ else return "no";
39
+ }
40
+ }
41
+
42
+ if (!function_exists('start_page_hide_suggested_plugins_choice')){
43
+ function start_page_hide_suggested_plugins_choice()
44
+ {
45
+ $start_page_hide_suggested_plugins_boxes = get_site_option( 'start_page_hide_suggested_plugins_boxes' );
46
+ if(isset($start_page_hide_suggested_plugins_boxes) && $start_page_hide_suggested_plugins_boxes == "yes")
47
+ return "yes";
48
+ else return "no";
49
+ }
50
+ }
51
+ // Hook into the 'wp_enqueue_scripts' action
52
+ add_action('admin_enqueue_scripts', 'cp_plugins_enqueue_scripts');
53
+ //---------------------------------------------------------------------------------------------
54
+ //Add button to the admin bar
55
+ //---------------------------------------------------------------------------------------------
56
+ if(start_page_remove_menu_choice() != "yes"){
57
+ add_action('admin_bar_menu', 'cp_plugins_add_items', 40);
58
+ }
59
+ if (!function_exists('cp_plugins_add_items')){
60
+ function cp_plugins_add_items($admin_bar)
61
+ {
62
+ $pluginsurl = plugins_url( '', __FILE__ ); // Get the current plugin url
63
+ $wccpadminurl = get_admin_url();
64
+ //The properties of the new item. Read More about the missing 'parent' parameter below
65
+ $args = array(
66
+ 'id' => 'cp_plugins_top_button',
67
+ 'title' => '<img src="'.$pluginsurl.'/start-page-assests/icons/cp-plugins-new-logo.png" style="vertical-align:middle;margin-right:5px;width: 22px;" alt="CP Plugins" title="CP Plugins" />' . 'CP Plugins',
68
+ 'href' => $wccpadminurl.'admin.php?page=cp_plugins_settings_start_page_slug',
69
+ 'meta' => array('title' => 'CP Plugins')
70
+ );
71
+
72
+ //This is where the magic works.
73
+ $admin_bar->add_menu( $args);
74
+ }
75
+ }
76
+
77
+ //---------------------------------------------------------------------------------------------
78
+ //Our plugins array
79
+ //---------------------------------------------------------------------------------------------
80
+ $wp_buy_plugins_list = array(
81
+ "captchinoo-captcha-for-login-form-protection/Captcha.php" => Array(
82
+ "TextDomain" => "captchinoo-captcha-for-login-form-protection",
83
+ "Title" => "Captcha Login Form Protection",
84
+ "settings_url" => "admin.php?page=logincform"
85
+ ),
86
+
87
+ "login-as-customer-or-user/loginas.php" => Array
88
+ (
89
+ "TextDomain" => "login-as-customer-or-user",
90
+ "Title" => "Login As Customer or User",
91
+ "settings_url" => "admin.php?page=loginas"
92
+ ),
93
+
94
+ "conditional-marketing-mailer/woo-conditional-marketing-mailer.php" => Array
95
+ (
96
+ "TextDomain" => "conditional-marketing-mailer",
97
+ "Title" => "Woo Conditional Marketing Mailer",
98
+ "settings_url" => "edit.php?post_type=wcmm"
99
+ ),
100
+
101
+ "wp-content-copy-protector/preventer-index.php" => Array
102
+ (
103
+ "TextDomain" => "wp-content-copy-protector",
104
+ "Title" => "WP Content Copy Protection (Free)",
105
+ "settings_url" => "admin.php?page=wccpoptionspro"
106
+ ),
107
+
108
+ "wccp-pro/preventer-index.php" => Array
109
+ (
110
+ "TextDomain" => "wccp_pro_translation_slug",
111
+ "Title" => "WP Content Copy Protection (PRO)",
112
+ "settings_url" => "options-general.php?page=wccp-options-pro"
113
+ ),
114
+
115
+ "tree-website-map/tree-website-map.php" => Array
116
+ (
117
+ "TextDomain" => "tree-website-map",
118
+ "Title" => "WP Tree Page View (Free)",
119
+ "settings_url" => "admin.php?page=wm_website_maps"
120
+ ),
121
+ "wp-tree-pro/wp-tree-pro.php" => Array
122
+ (
123
+ "TextDomain" => "tree-website-map-pro",
124
+ "Title" => "WP Tree Page View (PRO)",
125
+ "settings_url" => "admin.php?page=wm_website_maps"
126
+ ),
127
+ "visitors-traffic-real-time-statistics/Visitors-Traffic-Real-Time-Statistics.php" => Array
128
+ (
129
+ "TextDomain" => "visitors-traffic-real-time-statistics",
130
+ "Title" => "Visitor Traffic Statistics (Free)",
131
+ "settings_url" => "admin.php?page=ahc_hits_counter_menu_free"
132
+ ),
133
+ "visitors-traffic-real-time-statistics-pro/visitors-traffic-real-time-statistics-pro.php" => Array
134
+ (
135
+ "TextDomain" => "visitors-traffic-real-time-statistics-pro",
136
+ "Title" => "Visitor Traffic Statistics (PRO)",
137
+ "settings_url" => "admin.php?page=ahc_hits_counter_menu_pro"
138
+ ),
139
+ "ultimate-content-views/ultimate-content-views.php" => Array
140
+ (
141
+ "TextDomain" => "ultimate-content-views",
142
+ "Title" => "Custom Post List Builder",
143
+ "settings_url" => "edit.php?post_type=wpucv_list"
144
+ ),
145
+ "wp-limit-failed-login-attempts/failed.php" => Array
146
+ (
147
+ "TextDomain" => "wp-limit-failed-login-attempts",
148
+ "Title" => "Limit failed login attempts",
149
+ "settings_url" => "admin.php?page=WPLFLA"
150
+ ),
151
+ "wp-maintenance-mode-site-under-construction/maintenance.php" => Array
152
+ (
153
+ "TextDomain" => "wp-maintenance-mode-site-under-construction",
154
+ "Title" => "Maintenance Mode Plugin",
155
+ "settings_url" => "admin.php?page=SUM"
156
+ ),
157
+ "easy-popup-lightbox-maker/easy_popup_lightbox_maker.php" => Array
158
+ (
159
+ "TextDomain" => "easy-popup-lightbox-maker",
160
+ "Title" => "WP Popup Window Maker",
161
+ "settings_url" => "admin.php?page=eplm_popups"
162
+ )
163
+ );
164
+ //---------------------------------------------------------------------------------------------
165
+ //Register a custom menu page.
166
+ //---------------------------------------------------------------------------------------------
167
+ if (!function_exists('cp_plugins_settings_start_page')){
168
+ function cp_plugins_settings_start_page() {
169
+ include 'start-page-assests/settings-start.php';
170
+ }
171
+ }
172
+ // add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position );
173
+ if (!function_exists('cp_plugins_register_my_custom_menu_page')){
174
+ function cp_plugins_register_my_custom_menu_page() {
175
+ if(start_page_remove_menu_choice() != "yes")
176
+ {//show menu in normal
177
+ add_menu_page(
178
+ 'CP Plugins start page',
179
+ 'CP Plugins',
180
+ 'manage_options',
181
+ 'cp_plugins_settings_start_page_slug',
182
+ 'cp_plugins_settings_start_page',
183
+ plugins_url( '', __FILE__ ) . '/start-page-assests/icons/cp-plugins-new-logo.png',
184
+ 6
185
+ );
186
+ add_submenu_page //First sub-item
187
+ (
188
+ 'cp_plugins_settings_start_page_slug', // parent slug
189
+ 'Start Page', // page title
190
+ 'Start Page', // menu title
191
+ 'manage_options', // capability
192
+ 'cp_plugins_settings_start_page_slug', // slug
193
+ '' // callback
194
+ );
195
+ }
196
+ else
197
+ {//just activate the starting page without menu link
198
+ add_submenu_page //First sub-item
199
+ (
200
+ '', // parent slug is null to hide menu link
201
+ 'Start Page', // page title
202
+ 'Start Page', // menu title
203
+ 'manage_options', // capability
204
+ 'cp_plugins_settings_start_page_slug', // slug
205
+ 'cp_plugins_settings_start_page' // callback
206
+ );
207
+ }
208
+
209
+ global $wp_buy_plugins_list;
210
+ $admincore = '';
211
+ if (isset($_GET['page'])) $admincore = sanitize_text_field($_GET['page']);
212
+ if ($admincore == 'cp_plugins_settings_start_page_slug')
213
+ {
214
+ foreach ($wp_buy_plugins_list as $plugin_file => $plugin_data) {
215
+ if (is_plugin_active($plugin_file) || is_plugin_active_for_network($plugin_file)) {
216
+ add_submenu_page
217
+ (
218
+ 'cp_plugins_settings_start_page_slug', // parent slug
219
+ $plugin_data["Title"], // page title
220
+ $plugin_data["Title"], // menu title
221
+ 'manage_options', // capability
222
+ $plugin_data["settings_url"], // slug
223
+ '' // callback
224
+ );
225
+ }
226
+ }
227
+ }
228
+
229
+ }
230
+ }
231
+
232
+ add_action( 'admin_menu', 'cp_plugins_register_my_custom_menu_page' );
233
+
234
+ //---------------------------------------------------------------------------------------------
235
+ //Setup Ajax action hook
236
+ //---------------------------------------------------------------------------------------------
237
+ add_action( 'wp_ajax_do_button_job_later', 'cp_plugins_do_button_job_later_callback' );
238
+
239
+ if (!function_exists('cp_plugins_do_button_job_later_callback')){
240
+ function cp_plugins_do_button_job_later_callback() {
241
+
242
+ $result = "";
243
+
244
+ if(isset($_POST['plugin_file']))
245
+ {
246
+ $result = $_POST['plugin_file'];
247
+
248
+ activate_plugin( $result );
249
+ }
250
+
251
+ if(isset($_POST['slug']))
252
+ {
253
+ include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
254
+
255
+ wp_cache_flush();
256
+
257
+ $upgrader = new Plugin_Upgrader();
258
+
259
+ $installed = $upgrader->install( "https://downloads.wordpress.org/plugin/" . $_POST["slug"] . ".zip" );
260
+
261
+ return $installed;
262
+ }
263
+
264
+ if ( is_wp_error( $result ) ) {
265
+ echo "wp_error happened";
266
+ }
267
+
268
+ wp_die();
269
+ }
270
+ }
271
+ ?>
start-page-assests/css/bootstrap-grid.min.css ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ /*!
2
+ * Bootstrap Grid v4.0.0 (https://getbootstrap.com)
3
+ * Copyright 2011-2018 The Bootstrap Authors
4
+ * Copyright 2011-2018 Twitter, Inc.
5
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6
+ */@-ms-viewport{width:device-width}html{box-sizing:border-box;-ms-overflow-style:scrollbar}*,::after,::before{box-sizing:inherit}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;min-height:1px;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-sm-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-sm-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-sm-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-sm-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-sm-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-sm-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-sm-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-sm-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-sm-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-sm-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-sm-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-sm-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-sm-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-sm-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-sm-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-sm-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-md-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-md-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-md-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-md-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-md-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-md-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-md-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-md-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-md-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-md-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-md-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-md-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-md-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-md-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-md-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-md-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-lg-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-lg-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-lg-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-lg-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-lg-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-lg-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-lg-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-lg-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-lg-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-lg-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-lg-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-lg-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-lg-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-lg-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-lg-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-lg-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-xl-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-xl-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-xl-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-xl-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-xl-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-xl-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-xl-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-xl-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-xl-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-xl-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-xl-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-xl-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-xl-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-xl-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-xl-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-xl-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}.flex-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-sm-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-md-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-lg-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-xl-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}
7
+ /*# sourceMappingURL=bootstrap-grid.min.css.map */
start-page-assests/icons/captchinoo-captcha-for-login-form-protection.png ADDED
Binary file
start-page-assests/icons/codepressFailed.png ADDED
Binary file
start-page-assests/icons/conditional-marketing-mailer.png ADDED
Binary file
start-page-assests/icons/cp-plugins-new-logo.png ADDED
Binary file
start-page-assests/icons/easy-popup-lightbox-maker.png ADDED
Binary file
start-page-assests/icons/login-as-customer-or-user.png ADDED
Binary file
start-page-assests/icons/tree-website-map-pro.png ADDED
Binary file
start-page-assests/icons/tree-website-map.png ADDED
Binary file
start-page-assests/icons/ultimate-content-views.png ADDED
Binary file
start-page-assests/icons/visitors-traffic-real-time-statistics-pro.png ADDED
Binary file
start-page-assests/icons/visitors-traffic-real-time-statistics.png ADDED
Binary file
start-page-assests/icons/wccp-pro.png ADDED
Binary file
start-page-assests/icons/wp-content-copy-protector.png ADDED
Binary file
start-page-assests/icons/wp-limit-failed-login-attempts.png ADDED
Binary file
start-page-assests/icons/wp-maintenance-mode-site-under-construction.png ADDED
Binary file
start-page-assests/images/wp-buy-new-logo.png ADDED
Binary file
start-page-assests/settings-start.php ADDED
@@ -0,0 +1,660 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ ob_start();
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ // Exit if accessed directly.
5
+ exit;
6
+ }
7
+ //file_version 2.0
8
+
9
+ $wp_buy_plugins_list = array(
10
+ "captchinoo-captcha-for-login-form-protection/Captcha.php" => Array(
11
+ "WC requires at least" => "",
12
+ "WC tested up to" => "",
13
+ "Woo" => "",
14
+ "Name" => "Captchinoo Captcha for Login Form Protection",
15
+ "PluginURI" => "",
16
+ "Version" => 1.8,
17
+ "Description" => "This is the best security solution to protect your WordPress login form from spam entries.",
18
+ "Author" => "wp-buy",
19
+ "AuthorURI" => "https://profiles.wordpress.org/wp-buy/#content-plugins",
20
+ "TextDomain" => "captchinoo-captcha-for-login-form-protection",
21
+ "DomainPath" => "/languages",
22
+ "Network" => "",
23
+ "RequiresWP" => "",
24
+ "RequiresPHP" => "",
25
+ "Title" => "Captcha Login Form Protection",
26
+ "AuthorName" => "wp-buy",
27
+ "icon>" => "",
28
+ "color" => "red",
29
+ "version_type" => "free",
30
+ "pro_version_link" => "no_pro_link",
31
+ "pro_version_file" => "no_pro_file",
32
+ "settings_url" => "admin.php?page=logincform"
33
+ ),
34
+
35
+ "login-as-customer-or-user/loginas.php" => Array
36
+ (
37
+ "WC requires at least" => "",
38
+ "WC tested up to" => "",
39
+ "Woo" => "",
40
+ "Name" => "Login As Customer or User",
41
+ "PluginURI" => "",
42
+ "Version" => 1.3,
43
+ "Description" => "It's very helpful for admins or customer support users to access any user account in one click.",
44
+ "Author" => "codepressplugins",
45
+ "AuthorURI" => "https://codepress.pro/",
46
+ "TextDomain" => "login-as-customer-or-user",
47
+ "DomainPath" => "/languages/",
48
+ "Network" => "",
49
+ "RequiresWP" => "",
50
+ "RequiresPHP" => "",
51
+ "Title" => "Login As Customer or User",
52
+ "AuthorName" => "codepressplugins",
53
+ "icon>" => "",
54
+ "color" => "green",
55
+ "version_type" => "free",
56
+ "pro_version_link" => "no_pro_link",
57
+ "pro_version_file" => "no_pro_file",
58
+ "settings_url" => "admin.php?page=loginas"
59
+ ),
60
+
61
+ "conditional-marketing-mailer/woo-conditional-marketing-mailer.php" => Array
62
+ (
63
+ "WC requires at least" => "",
64
+ "WC tested up to" => "",
65
+ "Woo" => "",
66
+ "Name" => "Woocommerce Conditional Marketing Mailer",
67
+ "PluginURI" => "",
68
+ "Version" => 1.3,
69
+ "Description" => "Create professional emailed notifications based on custom conditions. Fully customizable.",
70
+ "Author" => "wp-buy",
71
+ "AuthorURI" => "https://profiles.wordpress.org/wp-buy/#content-plugins",
72
+ "TextDomain" => "conditional-marketing-mailer",
73
+ "DomainPath" => "/languages",
74
+ "Network" => "",
75
+ "RequiresWP" => "",
76
+ "RequiresPHP" => "",
77
+ "Title" => "Woo Conditional Marketing Mailer",
78
+ "AuthorName" => "wp-buy",
79
+ "icon>" => "",
80
+ "color" => "yellow",
81
+ "version_type" => "free",
82
+ "pro_version_link" => "no_pro_link",
83
+ "pro_version_file" => "no_pro_file",
84
+ "settings_url" => "edit.php?post_type=wcmm"
85
+ ),
86
+
87
+ "wp-content-copy-protector/preventer-index.php" => Array
88
+ (
89
+ "WC requires at least" => "",
90
+ "WC tested up to" => "",
91
+ "Woo" => "",
92
+ "Name" => "WP Content Copy Protection & No Right Click",
93
+ "PluginURI" => "http://wordpress.org/plugins/w-p-content-copy-protector/",
94
+ "Version" => 2.6,
95
+ "Description" => "This plugin protects the content of the post from being copied, Just basic protection provided with it!!",
96
+ "Author" => "wp-buy",
97
+ "AuthorURI" => "http://www.wp-buy.com/",
98
+ "TextDomain" => "wp-content-copy-protector",
99
+ "DomainPath" => "/languages",
100
+ "Network" => "",
101
+ "RequiresWP" => "",
102
+ "RequiresPHP" => "",
103
+ "Title" => "WP Content Copy Protection (Free)",
104
+ "AuthorName" => "wp-buy",
105
+ "icon>" => "",
106
+ "color" => "gray",
107
+ "version_type" => "free",
108
+ "pro_version_link" => "https://www.wp-buy.com/product/wp-content-copy-protection-pro/",
109
+ "pro_version_file" => "wccp-pro/preventer-index.php",
110
+ "settings_url" => "admin.php?page=wccpoptionspro"
111
+ ),
112
+
113
+ "wccp-pro/preventer-index.php" => Array
114
+ (
115
+ "WC requires at least" => "",
116
+ "WC tested up to" => "",
117
+ "Woo" => "",
118
+ "Name" => "WP Content Copy Protection & No Right Click (premium)",
119
+ "PluginURI" => "https://www.wp-buy.com/product/wp-content-copy-protection-pro/",
120
+ "Version" => 9.6,
121
+ "Description" => "This plugin protects the content of the post from being copied, Premium protection provided with it!!",
122
+ "Author" => "wp-buy",
123
+ "AuthorURI" => "http://www.wp-buy.com/",
124
+ "TextDomain" => "wccp-pro",
125
+ "DomainPath" => "/languages",
126
+ "Network" => "",
127
+ "RequiresWP" => "",
128
+ "RequiresPHP" => "",
129
+ "Title" => "WP Content Copy Protection (PRO)",
130
+ "AuthorName" => "wp-buy",
131
+ "icon>" => "",
132
+ "color" => "gray",
133
+ "version_type" => "pro",
134
+ "pro_version_link" => "no_pro_link",
135
+ "pro_version_file" => "no_pro_file",
136
+ "settings_url" => "options-general.php?page=wccp-options-pro"
137
+ ),
138
+
139
+ "tree-website-map/tree-website-map.php" => Array
140
+ (
141
+ "WC requires at least" => "",
142
+ "WC tested up to" => "",
143
+ "Woo" => "",
144
+ "Name" => "WP Tree Page View",
145
+ "PluginURI" => "",
146
+ "Version" => 2.4,
147
+ "Description" => "Vertical & Horizontal Tree Builder is an awesome WordPress plug-in to add a tree view of all pages.",
148
+ "Author" => "wp-buy",
149
+ "AuthorURI" => "https://www.wp-buy.com/",
150
+ "TextDomain" => "tree-website-map",
151
+ "DomainPath" => "/languages",
152
+ "Network" => "",
153
+ "RequiresWP" => "",
154
+ "RequiresPHP" => "",
155
+ "Title" => "WP Tree Page View (Free)",
156
+ "AuthorName" => "wp-buy",
157
+ "icon>" => "",
158
+ "color" => "red",
159
+ "version_type" => "free",
160
+ "pro_version_link" => "https://www.wp-buy.com/product/wp-tree-pro/",
161
+ "pro_version_file" => "wp-tree-pro/wp-tree-pro.php",
162
+ "settings_url" => "admin.php?page=wm_website_maps"
163
+ ),
164
+ "wp-tree-pro/wp-tree-pro.php" => Array
165
+ (
166
+ "WC requires at least" => "",
167
+ "WC tested up to" => "",
168
+ "Woo" => "",
169
+ "Name" => "WP Tree Page View PRO",
170
+ "PluginURI" => "",
171
+ "Version" => 2.4,
172
+ "Description" => "PRO Vertical & Horizontal Tree Builder is an awesome WordPress plug-in to add a tree view of all pages.",
173
+ "Author" => "wp-buy",
174
+ "AuthorURI" => "https://www.wp-buy.com/",
175
+ "TextDomain" => "tree-website-map-pro",
176
+ "DomainPath" => "/languages",
177
+ "Network" => "",
178
+ "RequiresWP" => "",
179
+ "RequiresPHP" => "",
180
+ "Title" => "WP Tree Page View (PRO)",
181
+ "AuthorName" => "wp-buy",
182
+ "icon>" => "",
183
+ "color" => "red",
184
+ "version_type" => "pro",
185
+ "pro_version_link" => "https://www.wp-buy.com/product/wp-tree-pro/",
186
+ "pro_version_file" => "no_pro_file",
187
+ "settings_url" => "admin.php?page=wm_website_maps"
188
+ ),
189
+ "visitors-traffic-real-time-statistics/Visitors-Traffic-Real-Time-Statistics.php" => Array
190
+ (
191
+ "WC requires at least" => "",
192
+ "WC tested up to" => "",
193
+ "Woo" => "",
194
+ "Name" => "Visitor Traffic Real Time Statistics",
195
+ "PluginURI" => "",
196
+ "Version" => "2.6",
197
+ "Description" => "Hits counter that shows analytical numbers & data of your WordPress site visitors and hits (Basic version)",
198
+ "Author" => "wp-buy",
199
+ "AuthorURI" => "https://www.wp-buy.com/",
200
+ "TextDomain" => "visitors-traffic-real-time-statistics",
201
+ "DomainPath" => "/languages",
202
+ "Network" => "",
203
+ "RequiresWP" => "",
204
+ "RequiresPHP" => "",
205
+ "Title" => "Visitor Traffic Statistics (Free)",
206
+ "AuthorName" => "wp-buy",
207
+ "icon>" => "",
208
+ "color" => "green",
209
+ "version_type" => "free",
210
+ "pro_version_link" => "https://www.wp-buy.com/product/visitors-traffic-real-time-statistics-pro/",
211
+ "pro_version_file" => "visitors-traffic-real-time-statistics-pro/visitors-traffic-real-time-statistics-pro.php",
212
+ "settings_url" => "admin.php?page=ahc_hits_counter_menu_free"
213
+ ),
214
+ "visitors-traffic-real-time-statistics-pro/visitors-traffic-real-time-statistics-pro.php" => Array
215
+ (
216
+ "WC requires at least" => "",
217
+ "WC tested up to" => "",
218
+ "Woo" => "",
219
+ "Name" => "Visitor Traffic Real Time Statistics pro",
220
+ "PluginURI" => "",
221
+ "Version" => "6.6",
222
+ "Description" => "Hits counter that shows analytical numbers & data of your WordPress site visitors and hits (PRO version)",
223
+ "Author" => "wp-buy",
224
+ "AuthorURI" => "https://www.wp-buy.com/",
225
+ "TextDomain" => "visitors-traffic-real-time-statistics-pro",
226
+ "DomainPath" => "/languages",
227
+ "Network" => "",
228
+ "RequiresWP" => "",
229
+ "RequiresPHP" => "",
230
+ "Title" => "Visitor Traffic Statistics (PRO)",
231
+ "AuthorName" => "wp-buy",
232
+ "icon>" => "",
233
+ "color" => "green",
234
+ "version_type" => "pro",
235
+ "pro_version_link" => "no_pro_link",
236
+ "pro_version_file" => "no_pro_file",
237
+ "settings_url" => "admin.php?page=ahc_hits_counter_menu_pro"
238
+ ),
239
+ "ultimate-content-views/ultimate-content-views.php" => Array
240
+ (
241
+ "WC requires at least" => "",
242
+ "WC tested up to" => "",
243
+ "Woo" => "",
244
+ "Name" => "Custom Post List",
245
+ "PluginURI" => "https://preview.codepress.pro",
246
+ "Version" => "2.5",
247
+ "Description" => "Easy-to-use plugin to make lists of posts, list posts by category in a post or page using the short-code.",
248
+ "Author" => "wp-buy",
249
+ "AuthorURI" => "https://www.codepress.pro",
250
+ "TextDomain" => "ultimate-content-views",
251
+ "DomainPath" => "/languages",
252
+ "Network" => "",
253
+ "RequiresWP" => "",
254
+ "RequiresPHP" => "",
255
+ "Title" => "Custom Post List Builder",
256
+ "AuthorName" => "wp-buy",
257
+ "icon>" => "",
258
+ "color" => "yellow",
259
+ "version_type" => "free",
260
+ "pro_version_link" => "no_pro_link",
261
+ "pro_version_file" => "no_pro_file",
262
+ "settings_url" => "edit.php?post_type=wpucv_list"
263
+ ),
264
+ "wp-limit-failed-login-attempts/failed.php" => Array
265
+ (
266
+ "WC requires at least" => "",
267
+ "WC tested up to" => "",
268
+ "Woo" => "",
269
+ "Name" => "WP limit failed login attempts",
270
+ "PluginURI" => "",
271
+ "Version" => "1.7",
272
+ "Description" => "Limit the number of retry attempts when logging in per IP. Fully customizable and easy to use.",
273
+ "Author" => "wp-buy",
274
+ "AuthorURI" => "https://wp-buy.com",
275
+ "TextDomain" => "wp-limit-failed-login-attempts",
276
+ "DomainPath" => "/languages/",
277
+ "Network" => "",
278
+ "RequiresWP" => "",
279
+ "RequiresPHP" => "",
280
+ "Title" => "Limit failed login attempts",
281
+ "AuthorName" => "wp-buy",
282
+ "icon>" => "",
283
+ "color" => "gray",
284
+ "version_type" => "free",
285
+ "pro_version_link" => "no_pro_link",
286
+ "pro_version_file" => "no_pro_file",
287
+ "settings_url" => "admin.php?page=WPLFLA"
288
+ ),
289
+ "wp-maintenance-mode-site-under-construction/maintenance.php" => Array
290
+ (
291
+ "WC requires at least" => "",
292
+ "WC tested up to" => "",
293
+ "Woo" => "",
294
+ "Name" => "WP Maintenance Mode & Site Under Construction",
295
+ "PluginURI" => "https://wordpress.org/plugins/wp-maintenance-mode-site-under-construction",
296
+ "Version" => "1.6",
297
+ "Description" => "Let's tell your visitors about the maintenance time you want, by showing a very beautiful counter",
298
+ "Author" => "wp-buy",
299
+ "AuthorURI" => "https://wordpress.org/plugins/wp-maintenance-mode-site-under-construction",
300
+ "TextDomain" => "wp-maintenance-mode-site-under-construction",
301
+ "DomainPath" => "/languages",
302
+ "Network" => "",
303
+ "RequiresWP" => "",
304
+ "RequiresPHP" => "",
305
+ "Title" => "Maintenance Mode Plugin",
306
+ "AuthorName" => "wp-buy",
307
+ "icon>" => "",
308
+ "color" => "red",
309
+ "version_type" => "free",
310
+ "pro_version_link" => "no_pro_link",
311
+ "pro_version_file" => "no_pro_file",
312
+ "settings_url" => "admin.php?page=SUM"
313
+ ),
314
+ "easy-popup-lightbox-maker/easy_popup_lightbox_maker.php" => Array
315
+ (
316
+ "WC requires at least" => "",
317
+ "WC tested up to" => "",
318
+ "Woo" => "",
319
+ "Name" => "WP Popup Window Maker",
320
+ "PluginURI" => "https://codepress.pro",
321
+ "Version" => "1.6",
322
+ "Description" => "Looking for the best lightbox plugin for your WordPress website؟ Activate this and enjoy it!",
323
+ "Author" => "wp-buy",
324
+ "AuthorURI" => "https://codepress.pro",
325
+ "TextDomain" => "easy-popup-lightbox-maker",
326
+ "DomainPath" => "/languages",
327
+ "Network" => "",
328
+ "RequiresWP" => "",
329
+ "RequiresPHP" => "",
330
+ "Title" => "WP Popup Window Maker",
331
+ "AuthorName" => "wp-buy",
332
+ "icon>" => "",
333
+ "color" => "green",
334
+ "version_type" => "free",
335
+ "pro_version_link" => "no_pro_link",
336
+ "pro_version_file" => "no_pro_file",
337
+ "settings_url" => "admin.php?page=eplm_popups"
338
+ )
339
+ );
340
+
341
+ function start_page_remove_menu_links()
342
+ {
343
+ if ( ! is_admin() ||
344
+ ! current_user_can( 'manage_options' ) ||
345
+ ! isset( $_GET['_wpnonce'] ) ||
346
+ ! wp_verify_nonce( sanitize_key( wp_unslash( $_GET['_wpnonce'] ) ), 'start_page_menu_links_nonce' ) ||
347
+ ! isset( $_GET['start_page_remove_menu_links'] ) ) :
348
+
349
+ return;
350
+ endif;
351
+
352
+ update_site_option( 'start_page_remove_menu_links', sanitize_text_field($_GET['start_page_remove_menu_links']) );
353
+ # redirect
354
+ $new_url = "?page=cp_plugins_settings_start_page_slug";
355
+ header("Location: $new_url");
356
+ }
357
+
358
+ function start_page_hide_suggested_plugins_boxes()
359
+ {
360
+ if ( ! is_admin() ||
361
+ ! current_user_can( 'manage_options' ) ||
362
+ ! isset( $_GET['_wpnonce'] ) ||
363
+ ! wp_verify_nonce( sanitize_key( wp_unslash( $_GET['_wpnonce'] ) ), 'suggested_plugins_boxes_nonce' ) ||
364
+ ! isset( $_GET['start_page_hide_suggested_plugins_boxes'] ) ) :
365
+
366
+ return;
367
+ endif;
368
+
369
+ update_site_option( 'start_page_hide_suggested_plugins_boxes', sanitize_text_field($_GET['start_page_hide_suggested_plugins_boxes']));
370
+ # redirect
371
+ $new_url = "?page=cp_plugins_settings_start_page_slug";
372
+ header("Location: $new_url");
373
+ }
374
+
375
+ start_page_remove_menu_links();
376
+ start_page_hide_suggested_plugins_boxes();
377
+
378
+ ?>
379
+ <div class="demo">
380
+ <div class="container">
381
+ <div class="row"><div class="col-sm-6 left">
382
+ <!-- logo -->
383
+ <div class="logo">
384
+ <img src="<?php echo plugins_url( '', __FILE__ ) . '/images/wp-buy-new-logo.png' ?>" alt="Premium Wordpress Plugins" style="margin-top: 20px;">
385
+ <p><b>Note:</b> All plugins listed here are coded by us (<a href="https://profiles.wordpress.org/wp-buy/#content-plugins" target="_blank">Profile</a>) and this page does not contain any ADS at all</p>
386
+ </div>
387
+ <!-- end logo -->
388
+ </div>
389
+ <div class="col-sm-6 right" style="margin: auto; text-align: right;">
390
+ <?php
391
+ $suggested_plugins_boxes_href = "";
392
+ $scheme = ( wp_parse_url( $_SERVER['REQUEST_URI'], PHP_URL_QUERY ) ) ? '&' : '?';
393
+ $title_hint = "Please make sure that our plugins are all updated to enable this feature";
394
+ /////////
395
+ if(start_page_remove_menu_choice() != "yes"){
396
+ $url = $_SERVER['REQUEST_URI'] . $scheme . 'start_page_remove_menu_links=yes';
397
+ $start_page_remove_menu_links_url = wp_nonce_url( $url, 'start_page_menu_links_nonce' );
398
+ $show_hide_menu_href = '<p><a title="'. $title_hint .'" href="' . $start_page_remove_menu_links_url . '">Hide menu links for this page</a></p>';
399
+ }else
400
+ {
401
+ $url = $_SERVER['REQUEST_URI'] . $scheme . 'start_page_remove_menu_links=no';
402
+ $start_page_remove_menu_links_url = wp_nonce_url( $url, 'start_page_menu_links_nonce' );
403
+ $show_hide_menu_href = '<p><a title="'. $title_hint .'" href="' . $start_page_remove_menu_links_url . '">Show menu links for this page</a></p>';
404
+ }
405
+ /////////
406
+ if(start_page_hide_suggested_plugins_choice() != "yes"){
407
+ $url = $_SERVER['REQUEST_URI'] . $scheme . 'start_page_hide_suggested_plugins_boxes=yes';
408
+ $hide_suggested_plugins_boxes_url = wp_nonce_url( $url, 'suggested_plugins_boxes_nonce' );
409
+ $suggested_plugins_boxes_href = '<p><a title="'. $title_hint .'" href="' . $hide_suggested_plugins_boxes_url . '">Dismiss suggested plugins boxes</a></p>';
410
+ }else
411
+ {
412
+ $url = $_SERVER['REQUEST_URI'] . $scheme . 'start_page_hide_suggested_plugins_boxes=no';
413
+ $hide_suggested_plugins_boxes_url = wp_nonce_url( $url, 'suggested_plugins_boxes_nonce' );
414
+ $suggested_plugins_boxes_href = '<p><a title="'. $title_hint .'" href="' . $hide_suggested_plugins_boxes_url . '">Show suggested plugins boxes</a></p>';
415
+ }
416
+ ?>
417
+ <?php echo $show_hide_menu_href; ?>
418
+ <?php echo $suggested_plugins_boxes_href; ?>
419
+ </div>
420
+ <div class="row">
421
+ <?php
422
+ if (!function_exists('get_plugins') || !function_exists('is_plugin_active')) {
423
+ include_once ABSPATH . 'wp-admin/includes/plugin.php';
424
+ }
425
+ //print_r(get_plugins());
426
+
427
+ start_plugins_listing($wp_buy_plugins_list);
428
+
429
+ function start_plugins_listing($wp_buy_plugins_list)
430
+ {
431
+ $plugins = $wp_buy_plugins_list;
432
+ foreach ($plugins as $plugin_file => $plugin_data) {
433
+ $active_inactive_result = "";
434
+ $pathpluginurl = WP_PLUGIN_DIR . '/' . $plugin_file;
435
+ $isinstalled = file_exists( $pathpluginurl );
436
+ if(!$isinstalled)
437
+ {
438
+ $active_inactive_result = "not_installed";
439
+ }else
440
+ {
441
+ if (is_plugin_active($plugin_file) || is_plugin_active_for_network($plugin_file)) {$active_inactive_result = "active";}
442
+ if (is_plugin_inactive($plugin_file)) {$active_inactive_result = "inactive";}
443
+ }
444
+ $current_plugin_data = get_plugin_data( __DIR__ );
445
+ $current_plugin_data_TextDomain = $current_plugin_data["TextDomain"];
446
+ if(start_page_hide_suggested_plugins_choice() == "yes")
447
+ {//Just show the installed or activated plugins boxes
448
+ if($active_inactive_result == "active" || $active_inactive_result == "inactive" )
449
+ {
450
+ start_page_show_product_box($plugin_file, $plugin_data, $active_inactive_result, $current_plugin_data_TextDomain);
451
+ }
452
+ }else
453
+ {//Show all boxes
454
+ start_page_show_product_box($plugin_file, $plugin_data, $active_inactive_result, $current_plugin_data_TextDomain);
455
+ }
456
+ }
457
+ }
458
+ ?>
459
+ <?php
460
+ function start_page_show_product_box($plugin_file = '', $plugin_data = array() ,$active_inactive_result = "", $current_plugin_data_TextDomain)
461
+ {
462
+ $pro_version_file = $plugin_data["pro_version_file"];
463
+
464
+ $is_pro_plugin_active_or_installed = false;
465
+
466
+ $is_pro_plugin_active_or_installed = file_exists( WP_PLUGIN_DIR . '/' . $pro_version_file );
467
+
468
+ $is_pro_plugin_active_result = false;
469
+
470
+ $settings_url = "";
471
+
472
+ $settings_url = $plugin_data["settings_url"];
473
+
474
+ if ($pro_version_file != "no_pro_file" && is_plugin_active($pro_version_file))
475
+ {
476
+ $is_pro_plugin_active_result = true;
477
+ }
478
+
479
+ $show_first_box = "";
480
+
481
+ if($current_plugin_data_TextDomain == $plugin_data["TextDomain"]) $show_first_box = "order-first ";
482
+
483
+ if($active_inactive_result != "active") $show_first_box = "order-last ";
484
+
485
+ if($plugin_data["version_type"] == "free" && $is_pro_plugin_active_result) return;
486
+
487
+ if($plugin_data["version_type"] == "pro" && $active_inactive_result == "not_installed") return; //Hide the PRO box if its not installed
488
+
489
+ $go_pro_link = '';
490
+
491
+ // Build the link if its free & not installed & has a pro version & pro in not installed
492
+ if($plugin_data["version_type"] == "free" && $active_inactive_result != "not_installed" && $pro_version_file != "no_pro_file" && !$is_pro_plugin_active_or_installed)
493
+ {
494
+ $pro_version_link = "";
495
+
496
+ $pro_version_link = $plugin_data["pro_version_link"];
497
+
498
+ $go_pro_link = '<a class="go_pro_link" target="_blank" href="' . $pro_version_link .'">Go PRO</a>';
499
+ }
500
+
501
+ $show_details_link = "";
502
+
503
+ if($plugin_data["version_type"] == "free")
504
+ {
505
+ $pro_version_link = network_admin_url("plugin-install.php?tab=plugin-information&plugin=" . $plugin_data["TextDomain"] . "&TB_iframe=true&width=600&height=550");
506
+
507
+ $show_details_link = '<a title="show plugin details on wordpress.org" class="thickbox show_details_link" style="" target="_blank" href="' . $pro_version_link .'">Details</a>';
508
+ }
509
+
510
+ $url = wp_nonce_url(self_admin_url('update.php?action=install-plugin&plugin=' . $plugin_data["TextDomain"]), 'install-plugin_' . $plugin_data["TextDomain"]);
511
+
512
+ if($active_inactive_result == "active") $url = self_admin_url($settings_url);
513
+
514
+ $url = self_admin_url($settings_url);
515
+
516
+ $plugin_name = $plugin_data["TextDomain"];
517
+
518
+ $icon_url = plugin_dir_url( __FILE__ ).'/icons/' . $plugin_data["TextDomain"] . '.png';
519
+ ?>
520
+ <div class="<?php echo $show_first_box; ?>col-md-3 col-sm-6 start-product-box">
521
+ <div class="serviceBox <?php echo $plugin_data["color"]; ?>">
522
+ <div class="service-icon">
523
+ <span><img style="width:90px; height:90px;" src="<?php echo $icon_url ?>"></span>
524
+ </div>
525
+ <h3 class="title"><?php echo $plugin_data["Title"]; ?></h3>
526
+ <p class="description"><?php echo $plugin_data["Description"]; ?></p>
527
+ <?php if($active_inactive_result == "not_installed"){ ?>
528
+ <a class="button-primary install-now button" plugin_file="<?php echo $plugin_file; ?>" plugin_slug="<?php echo $plugin_data["TextDomain"]; ?>" href="<?php echo $url; ?>" aria-label="" data-name="">Try for Free</a>
529
+ <?php }else if($active_inactive_result == "active"){ ?>
530
+ <a class="button-primary dashboard-now button" plugin_file="<?php echo $plugin_file; ?>" href="<?php echo $url; ?>" aria-label="" data-name="">Dashboard</a>
531
+ <?php }else if($active_inactive_result == "inactive"){ ?>
532
+ <a class="button-primary activate-now button" plugin_file="<?php echo $plugin_file; ?>" href="<?php echo $url; ?>" aria-label="" data-name="">Activate</a>
533
+ <?php } ?>
534
+ <?php echo $go_pro_link; ?>
535
+ <?php echo $show_details_link; ?>
536
+
537
+ </div>
538
+ </div>
539
+ <?php
540
+ }
541
+ ?>
542
+ </div>
543
+ </div>
544
+ </div>
545
+
546
+ <?php
547
+ add_action('admin_footer', 'cp_start_plugins_js_action');
548
+
549
+ function cp_start_plugins_js_action() {
550
+ ?>
551
+ <script type="text/javascript" >
552
+ jQuery(document).ready( function(){
553
+ jQuery('body').on("click", "a.activate-now", function(e){
554
+ e.preventDefault();
555
+ var target_link = jQuery(this);
556
+ jQuery(this).text("Activating..");
557
+ var data = {
558
+ 'action': 'do_button_job_later',
559
+ 'plugin_file' : jQuery(this).attr("plugin_file")
560
+ };
561
+ // since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
562
+ jQuery.post(ajaxurl, data, function(data) {
563
+ target_link.text("Dashboard");
564
+ target_link.removeClass( "activate-now" ).addClass( "dashboard-now" );
565
+ });
566
+ });
567
+ //Install new plugin with ajax
568
+ jQuery('body').on("click", "a.install-now", function(e){
569
+ e.preventDefault();
570
+ var target_link = jQuery(this);
571
+ jQuery(this).text("Installing..");
572
+ var data = {
573
+ 'action': 'do_button_job_later',
574
+ 'slug' : jQuery(this).attr("plugin_slug")
575
+ };
576
+ // since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
577
+ jQuery.post(ajaxurl, data, function(data) {
578
+ target_link.text("Activate");
579
+ target_link.removeClass( "install-now" ).addClass( "activate-now" );
580
+ });
581
+ });
582
+ });
583
+ </script>
584
+ <?php
585
+ }
586
+ ?>
587
+ <style>
588
+ .start-product-box{margin-bottom: 40px; min-width:320px;}
589
+ .serviceBox{
590
+ color: #555;
591
+ background: #fff;
592
+ font-family: 'Cabin', sans-serif;
593
+ text-align: center;
594
+ padding: 40px 15px 20px;
595
+ border-radius: 30px;
596
+ overflow: hidden;
597
+ position: relative;
598
+ z-index: 1;
599
+ transition: all 0.3s ease 0s;
600
+ }
601
+ .serviceBox h3{
602
+ min-height: 60px;
603
+ }
604
+ .serviceBox:hover{ box-shadow: 0 0 15px #999; }
605
+ .serviceBox:before{
606
+ content: "";
607
+ background: linear-gradient(45deg,#139627,#4BB85D,#139627);
608
+ width: 125%;
609
+ height: 230px;
610
+ border-radius: 50%;
611
+ position: absolute;
612
+ top: -75px;
613
+ left: -50px;
614
+ z-index: -1;
615
+ }
616
+ .serviceBox .service-icon{
617
+ color: #fff;
618
+ font-size: 75px;
619
+ line-height: 20px;
620
+ margin: 0 auto 65px;
621
+ }
622
+ .serviceBox .service-icon i{
623
+ transform: rotateX(0deg) rotateY(0deg);
624
+ transition: all 0.3s ease 0s;
625
+ }
626
+ .serviceBox:hover .service-icon i{
627
+ text-shadow: 0 0 5px #fff;
628
+ transform: rotateX(360deg) rotateY(360deg);
629
+ }
630
+ .serviceBox .title{
631
+ font-size: 20px;
632
+ font-weight: 700;
633
+ text-transform: uppercase;
634
+ margin: 0 0 10px;
635
+ transition: all 0.3s;
636
+ line-height: initial;
637
+ }
638
+ .serviceBox:hover .title{ color: #139627; }
639
+ .serviceBox .description{
640
+ font-size: 15px;
641
+ line-height: 25px;
642
+ }
643
+ .serviceBox.yellow:before{ background: linear-gradient(45deg,#db9e11,#FEC132,#db9e11); }
644
+ .serviceBox.yellow:hover .title{ color: #db9e11; }
645
+ .serviceBox.red:before{ background: linear-gradient(45deg,#d1082d,#ED2D52,#d1082d); }
646
+ .serviceBox.red:hover .title{ color: #d1082d; }
647
+ .serviceBox.gray:before{ background: linear-gradient(45deg,#343538,#626367,#343538); }
648
+ .serviceBox.gray:hover .title{ color: #343538; }
649
+
650
+ .go_pro_link{
651
+ width: 55px;height: 22px; position: absolute; top: 22px; left: 10px; transform: rotate(-45deg);color: white; text-decoration: none;
652
+ }
653
+ .show_details_link{
654
+ width: 55px;height: 22px;position: absolute;bottom: 22px;right: 19%;color: #007cba;text-decoration: none;
655
+ }
656
+
657
+ @media only screen and (max-width:990px){
658
+ .serviceBox{ margin: 0 0 40px; }
659
+ }
660
+ </style>
the_globals.php CHANGED
@@ -2,4 +2,9 @@
2
  if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
3
  //Get The Plugins URL as http://www.yrsite.com/dir/subdir
4
  $pluginsurl = plugins_url( '', __FILE__ );
 
 
 
 
 
5
  ?>
2
  if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
3
  //Get The Plugins URL as http://www.yrsite.com/dir/subdir
4
  $pluginsurl = plugins_url( '', __FILE__ );
5
+ if(is_ssl())
6
+ {
7
+ $pluginsurl = str_replace("https:", "http:", $pluginsurl);// just to make sure that there is no https there
8
+ $pluginsurl = str_replace("http:", "https:", $pluginsurl);
9
+ }
10
  ?>