WP Content Copy Protection & No Right Click - Version 2.9

Version Description

  • Important fix for content editable tags
  • Now compatible with wpDiscuz plugin & some chat wordpress plugins
  • Top bar icon has been returned, as it was inside previous version 2.6
  • New option inside main settings to control the visibility of the top bar icon
  • Stop the auto loading for the alert (warning.png) icon
  • Some linguistic mistakes were corrected
Download this release

Release Info

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

Code changes from version 2.6 to 2.9

admin-core.php CHANGED
@@ -11,7 +11,6 @@ $post_action = '';
11
  if(isset($_POST["action"])) $post_action = sanitize_text_field($_POST["action"]);
12
  if($post_action == 'update')
13
  {
14
- //----------------------------------------------------list the options array values
15
  //----------------------------------------------------list the options array values
16
  $single_posts_protection = '';
17
  if(isset($_POST["single_posts_protection"])) $single_posts_protection = sanitize_text_field($_POST["single_posts_protection"]);
@@ -20,6 +19,9 @@ if($post_action == 'update')
20
  $page_protection = '';
21
  if(isset($_POST["page_protection"])) $page_protection = sanitize_text_field($_POST["page_protection"]);
22
 
 
 
 
23
  $exclude_admin_from_protection = '';
24
  if(isset($_POST["exclude_admin_from_protection"])) $exclude_admin_from_protection = sanitize_text_field($_POST["exclude_admin_from_protection"]);
25
 
@@ -71,15 +73,16 @@ if($post_action == 'update')
71
  $prnt_scr_msg = '';
72
  if(isset($_POST["prnt_scr_msg"])) $prnt_scr_msg = sanitize_text_field($_POST["prnt_scr_msg"]);
73
 
74
- //----------------------------------------------------Get the options array values
75
  $wccp_settings =
76
  Array (
77
  'single_posts_protection' => $single_posts_protection, // prevent content copy, take 2 parameters
78
  'home_page_protection' => $home_page_protection, // PROTECT THE HOME PAGE OR NOT
79
  'page_protection' => $page_protection, // protect pages by javascript
80
- 'right_click_protection_posts' => $right_click_protection_posts, //
81
- 'right_click_protection_homepage' => $right_click_protection_homepage, //
82
- 'right_click_protection_pages' => $right_click_protection_pages, //
 
83
  'home_css_protection' => $home_css_protection, // premium option
84
  'posts_css_protection' => $posts_css_protection, // premium option (unlocked and become free option)
85
  'pages_css_protection' => 'No', // premium option
@@ -102,18 +105,18 @@ if($post_action == 'update')
102
  'prnt_scr_msg' => $prnt_scr_msg
103
  );
104
 
105
- if ($wccp_settings != '' ) {
106
  update_option( 'wccp_settings' , $wccp_settings );
107
  } else {
108
- $deprecated = ' ';
109
- $autoload = 'no';
110
  add_option( 'wccp_settings', $wccp_settings, $deprecated, $autoload );
111
  }
112
- }else //no update action
113
- {
114
- $wccp_settings = wccp_read_options();
115
  }
116
 
 
117
  ?>
118
  <style>
119
  #aio_admin_main {
@@ -289,6 +292,26 @@ if(localStorage.getItem('wpccp_subscribed') =='wpccp_subsbc_user')
289
  <td>
290
  <p><font face="Tahoma" size="2"><?php _e('Use Premium Settings tab to customize more options','wp-content-copy-protector'); ?></font></td>
291
  </tr>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
292
  <tr>
293
  <td width="221" height="33"><font face="Tahoma" size="2"><?php _e('Exclude <u>Admin</u> from protection','wp-content-copy-protector'); ?></font></td>
294
  <td width="88px">
@@ -362,14 +385,14 @@ if(localStorage.getItem('wpccp_subscribed') =='wpccp_subsbc_user')
362
  <p><font color="#FF0000" face="Tahoma" size="2"><?php _e('Remaining premium options preview image ','wp-content-copy-protector'); ?></font>
363
  <img src="<?php echo $pluginsurl ?>/images/click-here-arrow.png" id="irc_mi">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
364
  <b><font color="#0909FF"><u>
365
- <a href="http://www.wp-buy.com/product/wp-content-copy-protection-pro/">
366
  <font color="#0909FF"><?php _e('Preview & Pricing','wp-content-copy-protector'); ?></font></a></u></font></b>
367
  </td>
368
  </tr>
369
  <tr>
370
  <td height="264" colspan="2">
371
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
372
- <a href="http://www.wp-buy.com/product/wp-content-copy-protection-pro/">
373
  <img class="size-full" border="1" src="<?php echo $pluginsurl ?>/images/right-click-protection.jpg" style="border: 1px dotted #C0C0C0"></a><p>&nbsp;</td>
374
  </tr>
375
  </table></div>
@@ -438,68 +461,58 @@ if(localStorage.getItem('wpccp_subscribed') =='wpccp_subsbc_user')
438
 
439
  </div>
440
  <div class="simpleTabsContent" id="layer1">
441
- <a href="http://www.wp-buy.com/product/wp-content-copy-protection-pro/">
 
 
 
 
 
442
  <img class="size-full" border="1" src="<?php echo $pluginsurl ?>/images/smart-phones-protection.png" style="border: 1px dotted #C0C0C0">
443
  </a>
444
- <p></p>
445
- <a href="http://www.wp-buy.com/product/wp-content-copy-protection-pro/">
446
  <img class="size-full" border="1" src="<?php echo $pluginsurl ?>/images/watermark-adv.jpg" style="border: 1px dotted #C0C0C0">
447
  </a>
448
  <p></p>
449
- <a href="http://www.wp-buy.com/product/wp-content-copy-protection-pro/">
450
  <img class="size-full" border="1" src="<?php echo $pluginsurl ?>/images/watermarking-adv-examples.png" style="border: 1px dotted #C0C0C0">
451
  </a>
452
  <p></p>
453
  <p><b><font face="Tahoma" size="2" color="#FFFFFF">
 
 
454
  <span style="background-color: #008000"><?php _e('Basic features:','wp-content-copy-protector'); ?></span></font></b></p>
455
  <ul>
456
  <li><font style="font-size: 10pt" face="Tahoma"><?php _e('Protect your content from selection and copy. this plugin makes protecting your posts extremely simple without yelling at your readers','wp-content-copy-protector'); ?></font></li>
457
  <li><font style="font-size: 10pt" face="Tahoma"><?php _e('No one can save images from your site.','wp-content-copy-protector'); ?></font></li>
458
- <li><font style="font-size: 10pt" face="Tahoma"><?php _e('No right click or context menu.','wp-content-copy-protector'); ?></font></li>
459
- <li><font style="font-size: 10pt" face="Tahoma"><?php _e('Show alert message, Image Ad or HTML Ad on save images or right click.','wp-content-copy-protector'); ?></font></li>
460
- <li><font style="font-size: 10pt" face="Tahoma"><?php _e('Disable the following keys','wp-content-copy-protector'); ?> CTRL+A, CTRL+C, CTRL+X,CTRL+S or CTRL+V.</font></li>
461
  <li><font style="font-size: 10pt" face="Tahoma"><?php _e('Advanced and easy to use control panel.','wp-content-copy-protector'); ?></font></li>
462
- <li><font style="font-size: 10pt" face="Tahoma"><?php _e('No one can right click images on your site if you want','wp-content-copy-protector'); ?></font></li>
463
  </ul>
464
  <p><b><font face="Tahoma" size="2" color="#FFFFFF">
465
  <span style="background-color: #5B2473"><?php _e('Premium features:','wp-content-copy-protector'); ?></span></font></b></p>
466
  <ul>
467
- <li><font style="font-size: 10pt" face="Tahoma"><?php _e('Get full Control on Right click or context menu','wp-content-copy-protector'); ?></font></li>
468
  <li><font style="font-size: 10pt" face="Tahoma"><?php _e('Full watermarking','wp-content-copy-protector'); ?></font></li>
469
- <li><font style="font-size: 10pt" face="Tahoma"><?php _e('Show alert messages, when user made right click on images, text boxes, links, plain text.. etc','wp-content-copy-protector'); ?></font></li>
470
  <li><font style="font-size: 10pt" face="Tahoma"><?php _e('Admin can exclude Home page Or Single posts from being copy protected ','wp-content-copy-protector'); ?></font></li>
471
  <li><font style="font-size: 10pt" face="Tahoma"><?php _e('Admin can disable copy protection for admin users.','wp-content-copy-protector'); ?></font></li>
472
  <li><font face="Tahoma" size="2"><?php _e('3 protection layers (JavaScript protection, RightClick protection, CSS protection)','wp-content-copy-protector'); ?></font></li>
473
- <li><font style="font-size: 10pt" face="Tahoma"><?php _e('Aggressive image protection (its near impossible for expert users to steal your images !!)','wp-content-copy-protector'); ?></font></li>
474
  <li><font style="font-size: 10pt" face="Tahoma"><?php _e('Compatible with all major theme frameworks','wp-content-copy-protector'); ?></font></li>
475
  <li><font style="font-size: 10pt" face="Tahoma"><?php _e('Compatible with all major browsers','wp-content-copy-protector'); ?></font></li>
476
- <li><font style="font-size: 10pt" face="Tahoma"><?php _e('Tested in IE9, IE10, Firefox, Google Chrome, Opera','wp-content-copy-protector'); ?></font></li>
477
  <li><font style="font-size: 10pt" face="Tahoma"><?php _e('Disables image drag and drop function','wp-content-copy-protector'); ?></font></li>
478
- <li><font style="font-size: 10pt" face="Tahoma"><?php _e('Works on smart phones.','wp-content-copy-protector'); ?></font></li>
479
  <li><font style="font-size: 10pt" face="Tahoma"><?php _e('Ability to set varying levels of protection per page or post.','wp-content-copy-protector'); ?></font></li>
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>
487
-
488
- <div id="other-products">
489
- <?php
490
- $before_url = '';
491
- if(is_multisite()) $before_url = "network/";
492
- ?>
493
- <p>Recommended for you:</p>
494
- <a href="<?php echo $before_url ?>plugin-install.php?s=wp-buy+Captchinoo&tab=search&type=term">
495
- <img class="size-full" border="1" src="<?php echo $pluginsurl ?>/images/other-products/3.gif" style="margin: 10px">
496
- </a>
497
- <a href="<?php echo $before_url ?>plugin-install.php?s=wp-buy+Login+LockDown+–+Limit+Failed+Login+Attempts&tab=search&type=term">
498
- <img class="size-full" border="1" src="<?php echo $pluginsurl ?>/images/other-products/4.gif" style="margin: 10px">
499
- </a>
500
- <style>
501
- #other-products a,#other-products a:active,#other-products a:focus{
502
- color: #fff;
503
- }
504
- </style>
505
  </div>
11
  if(isset($_POST["action"])) $post_action = sanitize_text_field($_POST["action"]);
12
  if($post_action == 'update')
13
  {
 
14
  //----------------------------------------------------list the options array values
15
  $single_posts_protection = '';
16
  if(isset($_POST["single_posts_protection"])) $single_posts_protection = sanitize_text_field($_POST["single_posts_protection"]);
19
  $page_protection = '';
20
  if(isset($_POST["page_protection"])) $page_protection = sanitize_text_field($_POST["page_protection"]);
21
 
22
+ $top_bar_icon = '';
23
+ if(isset($_POST["top_bar_icon"])) $top_bar_icon = sanitize_text_field($_POST["top_bar_icon"]);
24
+
25
  $exclude_admin_from_protection = '';
26
  if(isset($_POST["exclude_admin_from_protection"])) $exclude_admin_from_protection = sanitize_text_field($_POST["exclude_admin_from_protection"]);
27
 
73
  $prnt_scr_msg = '';
74
  if(isset($_POST["prnt_scr_msg"])) $prnt_scr_msg = sanitize_text_field($_POST["prnt_scr_msg"]);
75
 
76
+ //----------------------------------------------------Get the options array values
77
  $wccp_settings =
78
  Array (
79
  'single_posts_protection' => $single_posts_protection, // prevent content copy, take 2 parameters
80
  'home_page_protection' => $home_page_protection, // PROTECT THE HOME PAGE OR NOT
81
  'page_protection' => $page_protection, // protect pages by javascript
82
+ 'top_bar_icon' => $top_bar_icon, // protection icon on top bar
83
+ 'right_click_protection_posts' => $right_click_protection_posts, //no comment here
84
+ 'right_click_protection_homepage' => $right_click_protection_homepage, //no comment here
85
+ 'right_click_protection_pages' => $right_click_protection_pages, //no comment here
86
  'home_css_protection' => $home_css_protection, // premium option
87
  'posts_css_protection' => $posts_css_protection, // premium option (unlocked and become free option)
88
  'pages_css_protection' => 'No', // premium option
105
  'prnt_scr_msg' => $prnt_scr_msg
106
  );
107
 
108
+ if (get_option('wccp_settings')) {
109
  update_option( 'wccp_settings' , $wccp_settings );
110
  } else {
111
+ $deprecated = '';
112
+ $autoload = 'yes';
113
  add_option( 'wccp_settings', $wccp_settings, $deprecated, $autoload );
114
  }
115
+ $new_url = "?page=wccpoptionspro";
116
+ header("Location: $new_url");
 
117
  }
118
 
119
+ $wccp_settings = wccp_read_options();
120
  ?>
121
  <style>
122
  #aio_admin_main {
292
  <td>
293
  <p><font face="Tahoma" size="2"><?php _e('Use Premium Settings tab to customize more options','wp-content-copy-protector'); ?></font></td>
294
  </tr>
295
+ <tr>
296
+ <td width="221" height="33"><font face="Tahoma" size="2"><?php _e('Plugin icon on top admin bar','wp-content-copy-protector'); ?></font></td>
297
+ <td>
298
+ <select size="1" name="top_bar_icon">
299
+ <?php
300
+ if ($wccp_settings['top_bar_icon'] == 'Visible')
301
+ {
302
+ echo '<option selected value="Visible">'. __('Visible','wp-content-copy-protector') .'</option>';
303
+ echo '<option value="Hidden">'. __('Hidden','wp-content-copy-protector') .'</option>';
304
+ }
305
+ else
306
+ {
307
+ echo '<option selected value="Hidden">'. __('Hidden','wp-content-copy-protector') .'</option>';
308
+ echo '<option value="Visible">'. __('Visible','wp-content-copy-protector') .'</option>';
309
+ }
310
+ ?>
311
+ </select></td>
312
+ <td>
313
+ <p><font face="Tahoma" size="2"><?php _e('Show/Hide the plugin icon on the top admin bar','wp-content-copy-protector'); ?></font></td>
314
+ </tr>
315
  <tr>
316
  <td width="221" height="33"><font face="Tahoma" size="2"><?php _e('Exclude <u>Admin</u> from protection','wp-content-copy-protector'); ?></font></td>
317
  <td width="88px">
385
  <p><font color="#FF0000" face="Tahoma" size="2"><?php _e('Remaining premium options preview image ','wp-content-copy-protector'); ?></font>
386
  <img src="<?php echo $pluginsurl ?>/images/click-here-arrow.png" id="irc_mi">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
387
  <b><font color="#0909FF"><u>
388
+ <a target="_blank" href="http://www.wp-buy.com/product/wp-content-copy-protection-pro/">
389
  <font color="#0909FF"><?php _e('Preview & Pricing','wp-content-copy-protector'); ?></font></a></u></font></b>
390
  </td>
391
  </tr>
392
  <tr>
393
  <td height="264" colspan="2">
394
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
395
+ <a target="_blank" href="http://www.wp-buy.com/product/wp-content-copy-protection-pro/">
396
  <img class="size-full" border="1" src="<?php echo $pluginsurl ?>/images/right-click-protection.jpg" style="border: 1px dotted #C0C0C0"></a><p>&nbsp;</td>
397
  </tr>
398
  </table></div>
461
 
462
  </div>
463
  <div class="simpleTabsContent" id="layer1">
464
+ <p><font color="#FF0000" face="Tahoma" size="3"><?php _e('Crazy discount offer is now running for a limited time!! You might love it','wp-content-copy-protector'); ?></font>
465
+ <img src="<?php echo $pluginsurl ?>/images/click-here-arrow.png" id="irc_mi">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
466
+ <b><font color="#0909FF"><u>
467
+ <a target="_blank" href="http://www.wp-buy.com/product/wp-content-copy-protection-pro/">
468
+ <font color="#0909FF" size="3"><?php _e('See it now','wp-content-copy-protector'); ?></font></a></u></font></b>
469
+ <a target="_blank" href="http://www.wp-buy.com/product/wp-content-copy-protection-pro/">
470
  <img class="size-full" border="1" src="<?php echo $pluginsurl ?>/images/smart-phones-protection.png" style="border: 1px dotted #C0C0C0">
471
  </a>
472
+ <p>&nbsp;</p>
473
+ <a target="_blank" href="http://www.wp-buy.com/product/wp-content-copy-protection-pro/">
474
  <img class="size-full" border="1" src="<?php echo $pluginsurl ?>/images/watermark-adv.jpg" style="border: 1px dotted #C0C0C0">
475
  </a>
476
  <p></p>
477
+ <a target="_blank" href="http://www.wp-buy.com/product/wp-content-copy-protection-pro/">
478
  <img class="size-full" border="1" src="<?php echo $pluginsurl ?>/images/watermarking-adv-examples.png" style="border: 1px dotted #C0C0C0">
479
  </a>
480
  <p></p>
481
  <p><b><font face="Tahoma" size="2" color="#FFFFFF">
482
+
483
+
484
  <span style="background-color: #008000"><?php _e('Basic features:','wp-content-copy-protector'); ?></span></font></b></p>
485
  <ul>
486
  <li><font style="font-size: 10pt" face="Tahoma"><?php _e('Protect your content from selection and copy. this plugin makes protecting your posts extremely simple without yelling at your readers','wp-content-copy-protector'); ?></font></li>
487
  <li><font style="font-size: 10pt" face="Tahoma"><?php _e('No one can save images from your site.','wp-content-copy-protector'); ?></font></li>
488
+ <li><font style="font-size: 10pt" face="Tahoma"><?php _e('No right-click or context menu.','wp-content-copy-protector'); ?></font></li>
489
+ <li><font style="font-size: 10pt" face="Tahoma"><?php _e('Show alert message, Image Ad, or HTML Ad on saving images or right-click.','wp-content-copy-protector'); ?></font></li>
490
+ <li><font style="font-size: 10pt" face="Tahoma"><?php _e('Disable the following keys','wp-content-copy-protector'); ?> CTRL+A, CTRL+C, CTRL+X, CTRL+S, or CTRL+V.</font></li>
491
  <li><font style="font-size: 10pt" face="Tahoma"><?php _e('Advanced and easy to use control panel.','wp-content-copy-protector'); ?></font></li>
492
+ <li><font style="font-size: 10pt" face="Tahoma"><?php _e('No one can right-click images on your site if you want','wp-content-copy-protector'); ?></font></li>
493
  </ul>
494
  <p><b><font face="Tahoma" size="2" color="#FFFFFF">
495
  <span style="background-color: #5B2473"><?php _e('Premium features:','wp-content-copy-protector'); ?></span></font></b></p>
496
  <ul>
497
+ <li><font style="font-size: 10pt" face="Tahoma"><?php _e('Get full control over Right-click or context menu','wp-content-copy-protector'); ?></font></li>
498
  <li><font style="font-size: 10pt" face="Tahoma"><?php _e('Full watermarking','wp-content-copy-protector'); ?></font></li>
499
+ <li><font style="font-size: 10pt" face="Tahoma"><?php _e('Show alert messages, when the user made right click on images, text boxes, links, plain text.. etc','wp-content-copy-protector'); ?></font></li>
500
  <li><font style="font-size: 10pt" face="Tahoma"><?php _e('Admin can exclude Home page Or Single posts from being copy protected ','wp-content-copy-protector'); ?></font></li>
501
  <li><font style="font-size: 10pt" face="Tahoma"><?php _e('Admin can disable copy protection for admin users.','wp-content-copy-protector'); ?></font></li>
502
  <li><font face="Tahoma" size="2"><?php _e('3 protection layers (JavaScript protection, RightClick protection, CSS protection)','wp-content-copy-protector'); ?></font></li>
503
+ <li><font style="font-size: 10pt" face="Tahoma"><?php _e('Aggressive image protection (it is nearly impossible for expert users to steal your images !!)','wp-content-copy-protector'); ?></font></li>
504
  <li><font style="font-size: 10pt" face="Tahoma"><?php _e('Compatible with all major theme frameworks','wp-content-copy-protector'); ?></font></li>
505
  <li><font style="font-size: 10pt" face="Tahoma"><?php _e('Compatible with all major browsers','wp-content-copy-protector'); ?></font></li>
506
+ <li><font style="font-size: 10pt" face="Tahoma"><?php _e('Tested in IE9, IE10, edge, Firefox, Google Chrome, Opera, safari','wp-content-copy-protector'); ?></font></li>
507
  <li><font style="font-size: 10pt" face="Tahoma"><?php _e('Disables image drag and drop function','wp-content-copy-protector'); ?></font></li>
508
+ <li><font style="font-size: 10pt" face="Tahoma"><?php _e('Works on smartphones.','wp-content-copy-protector'); ?></font></li>
509
  <li><font style="font-size: 10pt" face="Tahoma"><?php _e('Ability to set varying levels of protection per page or post.','wp-content-copy-protector'); ?></font></li>
510
  </ul>
511
+
512
+
513
+ <p><a target="_blank" href="https://www.wp-buy.com/wpccp-subscribe">Subscribe</a> to our mailing list to get flash discounts</p>
514
  </div>
515
  </div><!-- simple tabs div end -->
516
  <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>
517
  </form>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
518
  </div>
images/adminbaricon.png DELETED
Binary file
images/error.png DELETED
Binary file
images/live-demo.png DELETED
Binary file
images/logo.png DELETED
Binary file
images/other-products/1.gif DELETED
Binary file
images/other-products/2.gif DELETED
Binary file
images/other-products/3.gif DELETED
Binary file
images/other-products/4.gif DELETED
Binary file
images/success.png DELETED
Binary file
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.6
7
  Author: wp-buy
8
  Text Domain: wp-content-copy-protector
9
  Domain Path: /languages
@@ -11,10 +11,12 @@ Author URI: http://www.wp-buy.com/
11
  */
12
  ?>
13
  <?php
 
14
  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 +25,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,28 +38,25 @@ 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()
45
  {
46
  global $wccp_settings;
47
  ?>
48
- <script id="wpcp_disable_Right_Click" type="text/javascript">
49
- //<![CDATA[
50
- document.ondragstart = function() { return false;}
51
- /* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
52
- Disable context menu on images by GreenLava Version 1.0
53
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ */
54
- function nocontext(e) {
55
- return false;
56
- }
57
- document.oncontextmenu = nocontext;
58
- //]]>
59
- </script>
60
  <?php
61
  }
62
  //////////////////////////////////////////////////////////////////////////////////////
@@ -65,7 +65,6 @@ 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,18 +87,51 @@ 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;
 
95
  }else
96
  return true;
97
  }
98
  }
99
 
100
- //////////////////////////////////////////////////////////////////////////////////////
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
101
  function disable_copy(e)
102
  {
 
 
103
  var elemtype = e.target.tagName;
104
 
105
  elemtype = elemtype.toUpperCase();
@@ -108,6 +140,9 @@ function disable_copy(e)
108
  {
109
  elemtype = 'TEXT';
110
  }
 
 
 
111
  var isSafari = /Safari/.test(navigator.userAgent) && /Apple Computer/.test(navigator.vendor);
112
 
113
  var checker_IMG = '<?php echo $wccp_settings['img'];?>';
@@ -124,11 +159,13 @@ function disable_copy(e)
124
  }
125
  }
126
 
127
- //////////////////////////////////////////////////////////////////////////////////////
128
  function disable_copy_ie()
129
  {
 
130
  var elemtype = window.event.srcElement.nodeName;
131
  elemtype = elemtype.toUpperCase();
 
132
  if (elemtype == "IMG") {show_wpcp_message(alertMsg_IMG);return false;}
133
  if (elemtype != "TEXT" && elemtype != "TEXTAREA" && elemtype != "INPUT" && elemtype != "PASSWORD" && elemtype != "SELECT" && elemtype != "OPTION" && elemtype != "EMBED")
134
  {
@@ -234,8 +271,6 @@ function wccp_pro_is_passive() {
234
  return cold;
235
  }
236
  /*special for safari End*/
237
-
238
- /*]]>*/
239
  </script>
240
  <?php
241
  }
@@ -244,7 +279,7 @@ function alert_message()
244
  {
245
  global $wccp_settings;
246
  ?>
247
- <div id="wpcp-error-message" class="msgmsg-box-wpcp warning-wpcp hideme"><span>error: </span><?php echo $wccp_settings['smessage'];?></div>
248
  <script>
249
  var timeout_result;
250
  function show_wpcp_message(smessage)
@@ -292,6 +327,7 @@ function alert_message()
292
  visibility: visible;
293
  }
294
  .msgmsg-box-wpcp {
 
295
  border-radius: 10px;
296
  color: #555;
297
  font-family: Tahoma;
@@ -312,21 +348,9 @@ function alert_message()
312
  font-weight:bold;
313
  text-transform:uppercase;
314
  }
315
- .error-wpcp {<?php global $pluginsurl; ?>
316
- background:#ffecec url('<?php echo $pluginsurl ?>/images/error.png') no-repeat 10px 50%;
317
- border:1px solid #f5aca6;
318
- }
319
- .success {
320
- background:#e9ffd9 url('<?php echo $pluginsurl ?>/images/success.png') no-repeat 10px 50%;
321
- border:1px solid #a6ca8a;
322
- }
323
  .warning-wpcp {
324
  background:#ffecec url('<?php echo $pluginsurl ?>/images/warning.png') no-repeat 10px 50%;
325
- border:1px solid #f5aca6;
326
- }
327
- .notice {
328
- background:#e3f7fc url('<?php echo $pluginsurl ?>/images/notice.png') no-repeat 10px 50%;
329
- border:1px solid #8ed9f6;
330
  }
331
  </style>
332
  <?php
@@ -534,6 +558,7 @@ function wccp_default_options(){
534
  'single_posts_protection' => 'Enabled', // prevent content copy, take 3 parameters, 1.content: to prevent content copy only 2.all 3.none
535
  'home_page_protection' => 'Enabled', //
536
  'page_protection' => 'Enabled', //
 
537
  'right_click_protection_posts' => 'checked', //
538
  'right_click_protection_homepage' => 'checked', //
539
  'right_click_protection_pages' => 'checked', //
@@ -560,27 +585,10 @@ function wccp_default_options(){
560
  );
561
  return $wccp_settings;
562
  }
563
- //---------------------------------------------Add button to the admin bar
564
- add_action('admin_bar_menu', 'add_items', 40);
565
- function add_items($admin_bar)
566
- {
567
- global $pluginsurl;
568
- $wccpadminurl = get_admin_url();
569
- //The properties of the new item. Read More about the missing 'parent' parameter below
570
- $args = array(
571
- 'id' => 'Protection',
572
- 'title' => '<img src="'.$pluginsurl.'/images/adminbaricon.png" style="vertical-align:middle;margin-right:5px;width: 22px;" alt="Protection" title="Protection" />' . __('Protection', 'wp-content-copy-protector'),
573
- 'href' => $wccpadminurl.'options-general.php?page=wccpoptionspro',
574
- 'meta' => array('title' => __('WP Content Copy Protection', 'wp-content-copy-protector'),)
575
- );
576
-
577
- //This is where the magic works.
578
- $admin_bar->add_menu( $args);
579
- }
580
  //---------------------------------------- Add plugin settings link to Plugins page
581
  function wccp_plugin_add_settings_link( $links )
582
  {
583
- $settings_link = '<a href="options-general.php?page=wccpoptionspro">' . __( 'Settings', 'wp-content-copy-protector') . '</a>';
584
  array_push( $links, $settings_link );
585
 
586
  $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>';
@@ -591,10 +599,6 @@ function wccp_plugin_add_settings_link( $links )
591
  $plugin = plugin_basename( __FILE__ );
592
  add_filter( "plugin_action_links_$plugin", 'wccp_plugin_add_settings_link' );
593
  //------------------------------------------------------------------------
594
- function wccp_options_page_pro() {
595
- include 'admin-core.php';
596
- }
597
- //------------------------------------------------------------------------
598
  //Make a WordPress function to add to the correct menu.
599
  function wpccp_after_plugin_row( $plugin_file, $plugin_data, $status ) {
600
  $plugin_name = substr(__FILE__, strlen(ABSPATH . PLUGINDIR . '/'));
@@ -616,7 +620,6 @@ function wpccp_after_plugin_row( $plugin_file, $plugin_data, $status ) {
616
  }
617
  ?>
618
  <script type="text/javascript">
619
-
620
  function wccp_hide_upgrade_message()
621
  {
622
  jQuery("#wccp-update-message").empty();
@@ -648,11 +651,68 @@ function wpccp_after_plugin_row( $plugin_file, $plugin_data, $status ) {
648
  <?php
649
  $path = plugin_basename( __FILE__ );
650
  add_action("after_plugin_row_{$path}", "wpccp_after_plugin_row", 10, 3 );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
651
  //------------------------------------------------------------------------
652
  //Make our function to call the WordPress function to add to the correct menu.
653
  function wccp_add_options() {
654
- 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');
655
- }
 
 
 
 
 
 
 
 
 
 
656
  //First use the add_action to add onto the WordPress menu.
657
  add_action('admin_menu', 'wccp_add_options');
658
  ?>
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.9
7
  Author: wp-buy
8
  Text Domain: wp-content-copy-protector
9
  Domain Path: /languages
11
  */
12
  ?>
13
  <?php
14
+ //delete_option('wccp_settings'); //Just for testing purposes
15
  if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
16
  //define all variables the needed alot
17
  include 'the_globals.php';
18
  include_once('notifications.php');
19
+ include_once('settings-start-index.php'); //just include it and fix the add_submenu_page function to allow the united starting page
20
  $wccp_settings = wccp_read_options();
21
  //---------------------------------------------------------------------------------------------
22
  //Load plugin textdomain to load translations
25
  load_plugin_textdomain( 'wp-content-copy-protector', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' );
26
  }
27
  add_action( 'init', 'wccp_free_load_textdomain' );
28
+
29
  //---------------------------------------------------------<!-- SimpleTabs -->
30
  function wccp_enqueue_scripts() {
31
  global $pluginsurl;
38
 
39
  wp_register_style('simpletabscss', $pluginsurl.'/css/simpletabs.css');
40
  wp_enqueue_style('simpletabscss');
41
+
42
+ wp_register_style('font-awesome.min.css', 'https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css');
43
+ wp_enqueue_style('font-awesome.min.css');
44
  }
45
  }
46
  // Hook into the 'wp_enqueue_scripts' action
 
47
  add_action('admin_enqueue_scripts', 'wccp_enqueue_scripts');
48
  //------------------------------------------------------------------------
49
  function wpcp_disable_Right_Click()
50
  {
51
  global $wccp_settings;
52
  ?>
53
+ <script id="wpcp_disable_Right_Click" type="text/javascript">
54
+ document.ondragstart = function() { return false;}
55
+ function nocontext(e) {
56
+ return false;
57
+ }
58
+ document.oncontextmenu = nocontext;
59
+ </script>
 
 
 
 
 
60
  <?php
61
  }
62
  //////////////////////////////////////////////////////////////////////////////////////
65
  global $wccp_settings;
66
  ?>
67
  <script id="wpcp_disable_selection" type="text/javascript">
 
68
  var image_save_msg='You Can Not Save images!';
69
  var no_menu_msg='Context Menu disabled!';
70
  var smessage = "<?php echo $wccp_settings['smessage'];?>";
87
  else
88
  key = e.which; //firefox (97)
89
  //if (key != 17) alert(key);
90
+ 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))
91
  {
92
+ if(wccp_free_iscontenteditable(e)) return true;
93
+ show_wpcp_message('You are not allowed to copy content or view source');
94
+ return false;
95
  }else
96
  return true;
97
  }
98
  }
99
 
100
+
101
+ /*For contenteditable tags*/
102
+ function wccp_free_iscontenteditable(e)
103
+ {
104
+ var e = e || window.event; // also there is no e.target property in IE. instead IE uses window.event.srcElement
105
+
106
+ var target = e.target || e.srcElement;
107
+
108
+ var elemtype = e.target.nodeName;
109
+
110
+ elemtype = elemtype.toUpperCase();
111
+
112
+ var iscontenteditable = "false";
113
+
114
+ if(typeof target.getAttribute!="undefined" ) iscontenteditable = target.getAttribute("contenteditable"); // Return true or false as string
115
+
116
+ var iscontenteditable2 = false;
117
+
118
+ if(typeof target.isContentEditable!="undefined" ) iscontenteditable2 = target.isContentEditable; // Return true or false as boolean
119
+
120
+ if(target.parentElement.isContentEditable) iscontenteditable2 = true;
121
+
122
+ if (iscontenteditable == "true" || iscontenteditable2 == true)
123
+ {
124
+ if(typeof target.style!="undefined" ) target.style.cursor = "text";
125
+
126
+ return true;
127
+ }
128
+ }
129
+
130
+ ////////////////////////////////////
131
  function disable_copy(e)
132
  {
133
+ var e = e || window.event; // also there is no e.target property in IE. instead IE uses window.event.srcElement
134
+
135
  var elemtype = e.target.tagName;
136
 
137
  elemtype = elemtype.toUpperCase();
140
  {
141
  elemtype = 'TEXT';
142
  }
143
+
144
+ if(wccp_free_iscontenteditable(e)) return true;
145
+
146
  var isSafari = /Safari/.test(navigator.userAgent) && /Apple Computer/.test(navigator.vendor);
147
 
148
  var checker_IMG = '<?php echo $wccp_settings['img'];?>';
159
  }
160
  }
161
 
162
+ //////////////////////////////////////////
163
  function disable_copy_ie()
164
  {
165
+ var e = e || window.event;
166
  var elemtype = window.event.srcElement.nodeName;
167
  elemtype = elemtype.toUpperCase();
168
+ if(wccp_free_iscontenteditable(e)) return true;
169
  if (elemtype == "IMG") {show_wpcp_message(alertMsg_IMG);return false;}
170
  if (elemtype != "TEXT" && elemtype != "TEXTAREA" && elemtype != "INPUT" && elemtype != "PASSWORD" && elemtype != "SELECT" && elemtype != "OPTION" && elemtype != "EMBED")
171
  {
271
  return cold;
272
  }
273
  /*special for safari End*/
 
 
274
  </script>
275
  <?php
276
  }
279
  {
280
  global $wccp_settings;
281
  ?>
282
+ <div id="wpcp-error-message" class="msgmsg-box-wpcp hideme"><span>error: </span><?php echo $wccp_settings['smessage'];?></div>
283
  <script>
284
  var timeout_result;
285
  function show_wpcp_message(smessage)
327
  visibility: visible;
328
  }
329
  .msgmsg-box-wpcp {
330
+ border:1px solid #f5aca6;
331
  border-radius: 10px;
332
  color: #555;
333
  font-family: Tahoma;
348
  font-weight:bold;
349
  text-transform:uppercase;
350
  }
351
+ <?php global $pluginsurl; ?>
 
 
 
 
 
 
 
352
  .warning-wpcp {
353
  background:#ffecec url('<?php echo $pluginsurl ?>/images/warning.png') no-repeat 10px 50%;
 
 
 
 
 
354
  }
355
  </style>
356
  <?php
558
  'single_posts_protection' => 'Enabled', // prevent content copy, take 3 parameters, 1.content: to prevent content copy only 2.all 3.none
559
  'home_page_protection' => 'Enabled', //
560
  'page_protection' => 'Enabled', //
561
+ 'top_bar_icon' => 'Visible', //
562
  'right_click_protection_posts' => 'checked', //
563
  'right_click_protection_homepage' => 'checked', //
564
  'right_click_protection_pages' => 'checked', //
585
  );
586
  return $wccp_settings;
587
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
588
  //---------------------------------------- Add plugin settings link to Plugins page
589
  function wccp_plugin_add_settings_link( $links )
590
  {
591
+ $settings_link = '<a href="admin.php?page=cp_plugins_settings_start_page_slug">' . __( 'Settings', 'wp-content-copy-protector') . '</a>';
592
  array_push( $links, $settings_link );
593
 
594
  $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>';
599
  $plugin = plugin_basename( __FILE__ );
600
  add_filter( "plugin_action_links_$plugin", 'wccp_plugin_add_settings_link' );
601
  //------------------------------------------------------------------------
 
 
 
 
602
  //Make a WordPress function to add to the correct menu.
603
  function wpccp_after_plugin_row( $plugin_file, $plugin_data, $status ) {
604
  $plugin_name = substr(__FILE__, strlen(ABSPATH . PLUGINDIR . '/'));
620
  }
621
  ?>
622
  <script type="text/javascript">
 
623
  function wccp_hide_upgrade_message()
624
  {
625
  jQuery("#wccp-update-message").empty();
651
  <?php
652
  $path = plugin_basename( __FILE__ );
653
  add_action("after_plugin_row_{$path}", "wpccp_after_plugin_row", 10, 3 );
654
+ //---------------------------------------------Add button with icon to the admin bar
655
+ global $wccp_settings;
656
+ if(array_key_exists('top_bar_icon', $wccp_settings))
657
+ {
658
+ if($wccp_settings['top_bar_icon'] == 'Visible')
659
+ {
660
+ add_action('admin_bar_menu', 'wccp_free_add_items', 40);
661
+ add_action('wp_enqueue_scripts', 'wccp_free_top_bar_enqueue_style');
662
+ add_action('admin_enqueue_scripts', 'wccp_free_top_bar_enqueue_style');
663
+ }
664
+ }
665
+ function wccp_free_top_bar_enqueue_style() {
666
+ ?>
667
+ <style>
668
+ #wpadminbar #wp-admin-bar-wccp_free_top_button .ab-icon:before {
669
+ content: "\f160";
670
+ /*color: #02CA02;*/
671
+ top: 3px;
672
+ }
673
+ </style>
674
+ <?php
675
+ }
676
+
677
+ function wccp_free_add_items($admin_bar)
678
+ {
679
+ if ( ! current_user_can( 'manage_options' ) ) {
680
+ return;
681
+ }
682
+ global $pluginsurl;
683
+ //The properties of the new item. Read More about the missing 'parent' parameter below
684
+ $args = array(
685
+ 'id' => 'wccp_free_top_button',
686
+ 'parent' => null,
687
+ 'group' => null,
688
+ 'title' => '<span class="ab-icon"></span>'.'' . __('Protection', 'wp-content-copy-protector'),
689
+ 'href' => admin_url('admin.php?page=wccpoptionspro'),
690
+ 'meta' => array('title' => __('Copy Protection & No right click', 'wp-content-copy-protector'),//This title will show on hover
691
+ 'class' => '')
692
+ );
693
+
694
+ //This is where the magic works.
695
+ $admin_bar->add_menu( $args);
696
+ }
697
+ //------------------------------------------------------------------------
698
+ function wccp_options_page_pro() {
699
+ include 'admin-core.php';
700
+ }
701
  //------------------------------------------------------------------------
702
  //Make our function to call the WordPress function to add to the correct menu.
703
  function wccp_add_options() {
704
+ //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');
705
+ add_menu_page
706
+ (
707
+ 'WP Content Copy Protection', // use null for parent slug to hide it from admin menu
708
+ 'Copy Protection', // page title
709
+ 'manage_options', // capability
710
+ 'wccpoptionspro', // slug
711
+ 'wccp_options_page_pro', // callback
712
+ 'dashicons-lock',
713
+ 6
714
+ );
715
+ }
716
  //First use the add_action to add onto the WordPress menu.
717
  add_action('admin_menu', 'wccp_add_options');
718
  ?>
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.5
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!!
@@ -65,6 +65,28 @@ your posts extremely simple without yelling at your readers</li>
65
  </ul>
66
 
67
  == Changelog ==
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
68
  = 2.6 =
69
  <ul>
70
  <li>Test all features with wordpress version 5.5</li>
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!!
65
  </ul>
66
 
67
  == Changelog ==
68
+ = 2.9 =
69
+ <ul>
70
+ <li>Important fix for content editable tags</li>
71
+ <li>Now compatible with wpDiscuz plugin & some chat wordpress plugins</li>
72
+ <li>Top bar icon has been returned, as it was inside previous version 2.6</li>
73
+ <li>New option inside main settings to control the visibility of the top bar icon</li>
74
+ <li>Stop the auto loading for the alert (warning.png) icon</li>
75
+ <li>Some linguistic mistakes were corrected</li>
76
+ </ul>
77
+
78
+ = 2.8.1 =
79
+ <ul>
80
+ <li>Important fix for 2.7 update</li>
81
+ <li>Add links to dismiss the new start page links</li>
82
+ </ul>
83
+ = 2.7 =
84
+ <ul>
85
+ <li>Disable (CTRL + Shift + I) developer tools shortcut key</li>
86
+ <li>Remove recommended plugins section from admin page</li>
87
+ <li>Add one starting page for all of our plugins</li>
88
+ <li>Code fix</li>
89
+ </ul>
90
  = 2.6 =
91
  <ul>
92
  <li>Test all features with wordpress version 5.5</li>
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.1
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
+ // Hook into the 'wp_enqueue_scripts' action
30
+ add_action('admin_enqueue_scripts', 'cp_plugins_enqueue_scripts');
31
+ //---------------------------------------------------------------------------------------------
32
+ //start_page_remove_menu_choice
33
+ //---------------------------------------------------------------------------------------------
34
+ if (!function_exists('start_page_remove_menu_choice')){
35
+ function start_page_remove_menu_choice()
36
+ {
37
+ $start_page_remove_menu_links = get_site_option( 'start_page_remove_menu_links' );
38
+ if(isset($start_page_remove_menu_links) && $start_page_remove_menu_links == "yes")
39
+ return "yes";
40
+ else return "no";
41
+ }
42
+ }
43
+
44
+ if (!function_exists('start_page_hide_suggested_plugins_choice')){
45
+ function start_page_hide_suggested_plugins_choice()
46
+ {
47
+ $start_page_hide_suggested_plugins_boxes = get_site_option( 'start_page_hide_suggested_plugins_boxes' );
48
+ if(isset($start_page_hide_suggested_plugins_boxes) && $start_page_hide_suggested_plugins_boxes == "yes")
49
+ return "yes";
50
+ else return "no";
51
+ }
52
+ }
53
+ //---------------------------------------------------------------------------------------------
54
+ //Add button to the admin top 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.1
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: 15%;color: #007cba;text-decoration: none;
655
+ }
656
+
657
+ @media only screen and (max-width:990px){
658
+ .serviceBox{ margin: 0 0 40px; }
659
+ }
660
+ </style>