Contact Form by BestWebSoft - Version 4.0.4

Version Description

  • 15.12.2016 =
  • Update : BWS Panel section was updated.
  • Update : The French language file is updated.
Download this release

Release Info

Developer bestwebsoft
Plugin Icon 128x128 Contact Form by BestWebSoft
Version 4.0.4
Comparing to
See all releases

Code changes from version 4.0.3 to 4.0.4

bws_menu/bws_functions.php CHANGED
@@ -3,8 +3,30 @@
3
  * General functions for BestWebSoft plugins
4
  */
5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
  /* Internationalization, first(!) */
7
- load_plugin_textdomain( 'bestwebsoft', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
 
 
 
 
 
 
8
 
9
  /**
10
  * Function add BWS Plugins page - for old plugin version
@@ -33,7 +55,7 @@ if ( ! function_exists ( 'bws_general_menu' ) ) {
33
  }
34
  }
35
 
36
- add_menu_page( 'BWS Panel', 'BWS Panel', 'manage_options', 'bws_panel', 'bws_add_menu_render', plugins_url( 'images/logo-white-min.png', __FILE__ ), '1001' );
37
 
38
  add_submenu_page( 'bws_panel', __( 'Plugins', 'bestwebsoft' ), __( 'Plugins', 'bestwebsoft' ), 'manage_options', 'bws_panel', 'bws_add_menu_render' );
39
  add_submenu_page( 'bws_panel', __( 'Themes', 'bestwebsoft' ), __( 'Themes', 'bestwebsoft' ), 'manage_options', 'bws_themes', 'bws_add_menu_render' );
@@ -68,7 +90,7 @@ if ( ! function_exists ( 'bws_wp_min_version_check' ) ) {
68
  if ( is_plugin_active( $plugin_basename ) ) {
69
  deactivate_plugins( $plugin_basename );
70
  $admin_url = ( function_exists( 'get_admin_url' ) ) ? get_admin_url( null, 'plugins.php' ) : esc_url( '/wp-admin/plugins.php' );
71
- wp_die(
72
  sprintf(
73
  "<strong>%s</strong> %s <strong>WordPress %s</strong> %s <br /><br />%s <a href='%s'>%s</a>.",
74
  $plugin_info['Name'],
@@ -107,19 +129,19 @@ if ( ! function_exists( 'bws_admin_notices' ) ) {
107
  }
108
 
109
  /* banner_to_settings notice */
110
- if ( ! empty( $bws_plugin_banner_to_settings ) ) {
111
  if ( 1 == count( $bws_plugin_banner_to_settings ) ) { ?>
112
  <div class="updated" style="padding: 0; margin: 0; border: none; background: none;">
113
  <div class="bws_banner_on_plugin_page bws_banner_to_settings">
114
  <div class="icon">
115
  <img title="" src="<?php echo esc_attr( $bws_plugin_banner_to_settings[0]['banner_url'] ); ?>" alt="" />
116
- </div>
117
  <div class="text">
118
  <strong><?php _e( 'Thank you for installing', 'bestwebsoft' ); ?> <?php echo $bws_plugin_banner_to_settings[0]['plugin_info']['Name']; ?> plugin!</strong><br />
119
- <?php _e( "Let's get started", 'bestwebsoft' ); ?>:
120
- <a href="<?php echo $bws_plugin_banner_to_settings[0]['settings_url']; ?>"><?php _e( 'Settings', 'bestwebsoft' ); ?></a>
121
  <?php if ( false != $bws_plugin_banner_to_settings[0]['post_type_url'] ) { ?>
122
- <?php _e( 'or', 'bestwebsoft' ); ?>
123
  <a href="<?php echo $bws_plugin_banner_to_settings[0]['post_type_url']; ?>"><?php _e( 'Add New', 'bestwebsoft' ); ?></a>
124
  <?php } ?>
125
  </div>
@@ -129,34 +151,34 @@ if ( ! function_exists( 'bws_admin_notices' ) ) {
129
  <?php wp_nonce_field( plugin_basename( __FILE__ ), 'bws_settings_nonce_name' ); ?>
130
  </form>
131
  </div>
132
- </div>
133
  <?php } else { ?>
134
  <div class="updated" style="padding: 0; margin: 0; border: none; background: none;">
135
- <div class="bws_banner_on_plugin_page bws_banner_to_settings_joint">
136
  <form action="" method="post">
137
  <button class="notice-dismiss bws_hide_settings_notice" title="<?php _e( 'Close notice', 'bestwebsoft' ); ?>"></button>
138
  <div class="bws-text">
139
  <div class="icon">
140
  <span class="dashicons dashicons-admin-plugins"></span>
141
- </div>
142
  <strong><?php _e( 'Thank you for installing plugins by BestWebSoft!', 'bestwebsoft' ); ?></strong>
143
  <div class="hide-if-no-js bws-more-links">
144
- <a href="#" class="bws-more"><?php _e( 'More Details', 'bestwebsoft' ); ?></a>
145
- <a href="#" class="bws-less hidden"><?php _e( 'Less Details', 'bestwebsoft' ); ?></a>
146
- </div>
147
- <?php wp_nonce_field( plugin_basename( __FILE__ ), 'bws_settings_nonce_name' ); ?>
148
  <div class="clear"></div>
149
  </div>
150
  <div class="bws-details hide-if-js">
151
- <?php foreach ( $bws_plugin_banner_to_settings as $value ) { ?>
152
- <div>
153
- <strong><?php echo str_replace( ' by BestWebSoft', '', $value['plugin_info']['Name'] ); ?></strong>&ensp;<a href="<?php echo $value['settings_url']; ?>"><?php _e( 'Settings', 'bestwebsoft' ); ?></a>
154
  <?php if ( false != $value['post_type_url'] ) { ?>
155
  &ensp;|&ensp;<a target="_blank" href="<?php echo $value['post_type_url']; ?>"><?php _e( 'Add New', 'bestwebsoft' ); ?></a>
156
  <?php } ?>
157
  <input type="hidden" name="bws_hide_settings_notice_<?php echo $value['plugin_options_name']; ?>" value="hide" />
158
- </div>
159
- <?php } ?>
160
  </div>
161
  </div>
162
  </form>
@@ -169,7 +191,7 @@ if ( ! function_exists( 'bws_admin_notices' ) ) {
169
  if ( ! function_exists( 'bws_plugin_banner' ) ) {
170
  function bws_plugin_banner( $plugin_info, $this_banner_prefix, $link_slug, $link_key, $link_pn, $banner_url_or_slug ) {
171
  global $wp_version, $bstwbsftwppdtplgns_cookie_add, $bstwbsftwppdtplgns_banner_array;
172
-
173
  if ( empty( $bstwbsftwppdtplgns_banner_array ) ) {
174
  if ( ! function_exists( 'bws_get_banner_array' ) )
175
  require_once( dirname( __FILE__ ) . '/bws_menu.php' );
@@ -189,7 +211,7 @@ if ( ! function_exists( 'bws_plugin_banner' ) ) {
189
  foreach ( $bstwbsftwppdtplgns_banner_array as $key => $value ) {
190
  if ( $this_banner == $value[0] ) {
191
  if ( ! isset( $bstwbsftwppdtplgns_cookie_add ) ) {
192
- echo '<script type="text/javascript" src="' . plugins_url( 'js/c_o_o_k_i_e.js', __FILE__ ) . '"></script>';
193
  $bstwbsftwppdtplgns_cookie_add = true;
194
  } ?>
195
  <script type="text/javascript">
@@ -213,13 +235,13 @@ if ( ! function_exists( 'bws_plugin_banner' ) ) {
213
  <button class="<?php echo $this_banner_prefix; ?>_close_icon close_icon notice-dismiss bws_hide_settings_notice" title="<?php _e( 'Close notice', 'bestwebsoft' ); ?>"></button>
214
  <div class="icon">
215
  <img title="" src="<?php echo esc_attr( $banner_url_or_slug ); ?>" alt="" />
216
- </div>
217
  <div class="text"><?php
218
  _e( 'It’s time to upgrade your', 'bestwebsoft' ); ?> <strong><?php echo $plugin_info['Name']; ?> plugin</strong> <?php _e( 'to', 'bestwebsoft' ); ?> <strong>Pro</strong> <?php _e( 'version!', 'bestwebsoft' ); ?><br />
219
  <span><?php _e( 'Extend standard plugin functionality with new great options.', 'bestwebsoft' ); ?></span>
220
  </div>
221
  <div class="button_div">
222
- <a class="button" target="_blank" href="http://bestwebsoft.com/products/<?php echo $link_slug; ?>/?k=<?php echo $link_key; ?>&amp;pn=<?php echo $link_pn; ?>&amp;v=<?php echo $plugin_info["Version"]; ?>&amp;wp_v=<?php echo $wp_version; ?>"><?php _e( 'Learn More', 'bestwebsoft' ); ?></a>
223
  </div>
224
  </div>
225
  </div>
@@ -245,7 +267,7 @@ if ( ! function_exists( 'bws_plugin_reviews_block' ) ) {
245
  </div>
246
  <div class="bws-plugin-reviews-donate">
247
  <?php _e( 'Donations play an important role in supporting great projects', 'bestwebsoft' ); ?>:
248
- <a href="https://www.2checkout.com/checkout/purchase?sid=1430388&quantity=10&product_id=13">Donate</a>
249
  </div>
250
  </div>
251
  <?php }
@@ -268,7 +290,7 @@ if ( ! function_exists( 'bws_go_pro_tab_check' ) ) {
268
  if ( false !== $key ) {
269
  unset( $plugin_options['hide_premium_options'][ $key ] );
270
  }
271
-
272
  if ( $is_network_option )
273
  update_site_option( $plugin_options_name, $plugin_options );
274
  else
@@ -279,7 +301,7 @@ if ( ! function_exists( 'bws_go_pro_tab_check' ) ) {
279
  }
280
 
281
  if ( isset( $_POST['bws_license_submit'] ) && check_admin_referer( $plugin_basename, 'bws_license_nonce_name' ) ) {
282
- if ( '' != $bws_license_key ) {
283
  if ( strlen( $bws_license_key ) != 18 ) {
284
  $result['error'] = __( "Wrong license key", 'bestwebsoft' );
285
  } else {
@@ -296,7 +318,7 @@ if ( ! function_exists( 'bws_go_pro_tab_check' ) ) {
296
  require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
297
 
298
  $all_plugins = get_plugins();
299
-
300
  if ( ! array_key_exists( $bws_license_plugin, $all_plugins ) ) {
301
  $current = get_site_transient( 'update_plugins' );
302
  if ( is_array( $all_plugins ) && !empty( $all_plugins ) && isset( $current ) && is_array( $current->response ) ) {
@@ -317,7 +339,7 @@ if ( ! function_exists( 'bws_go_pro_tab_check' ) ) {
317
  if ( is_array( $response ) && !empty( $response ) ) {
318
  foreach ( $response as $key => $value ) {
319
  if ( "wrong_license_key" == $value->package ) {
320
- $result['error'] = __( "Wrong license key", 'bestwebsoft' );
321
  } elseif ( "wrong_domain" == $value->package ) {
322
  $result['error'] = __( "This license key is bind to another site", 'bestwebsoft' );
323
  } elseif ( "you_are_banned" == $value->package ) {
@@ -334,8 +356,8 @@ if ( ! function_exists( 'bws_go_pro_tab_check' ) ) {
334
  $url = 'http://bestwebsoft.com/wp-content/plugins/paid-products/plugins/downloads/?bws_first_download=' . $bws_license_plugin . '&bws_license_key=' . $bws_license_key . '&download_from=5';
335
  $uploadDir = wp_upload_dir();
336
  $zip_name = explode( '/', $bws_license_plugin );
337
-
338
- if ( !function_exists( 'curl_init' ) ) {
339
  $received_content = file_get_contents( $url );
340
  } else {
341
  $ch = curl_init();
@@ -377,7 +399,7 @@ if ( ! function_exists( 'bws_go_pro_tab_check' ) ) {
377
 
378
  /* activate Pro */
379
  if ( file_exists( WP_PLUGIN_DIR . '/' . $zip_name[0] ) ) {
380
- if ( is_multisite() && is_plugin_active_for_network( plugin_basename( __FILE__ ) ) ) {
381
  /* if multisite and free plugin is network activated */
382
  $active_plugins = get_site_option( 'active_sitewide_plugins' );
383
  $active_plugins[ $bws_license_plugin ] = time();
@@ -394,7 +416,7 @@ if ( ! function_exists( 'bws_go_pro_tab_check' ) ) {
394
  }
395
  }
396
  } else {
397
- $result['error'] = __( "Something went wrong. Try again later or upload the plugin manually. We are sorry for inconvenience.", 'bestwebsoft' );
398
  }
399
  }
400
  }
@@ -402,7 +424,7 @@ if ( ! function_exists( 'bws_go_pro_tab_check' ) ) {
402
  $bstwbsftwppdtplgns_options[ $bws_license_plugin ] = $bws_license_key;
403
  /* activate Pro */
404
  if ( ! is_plugin_active( $bws_license_plugin ) ) {
405
- if ( is_multisite() && is_plugin_active_for_network( plugin_basename( __FILE__ ) ) ) {
406
  /* if multisite and free plugin is network activated */
407
  $network_wide = true;
408
  } else {
@@ -454,7 +476,7 @@ if ( ! function_exists( 'bws_go_pro_tab_show' ) ) {
454
  </script>
455
  <p><?php _e( "Congratulations! Pro version of the plugin is successfully installed and activated.", 'bestwebsoft' ); ?></p>
456
  <p>
457
- <?php _e( "Please, go to", 'bestwebsoft' ); ?> <a href="admin.php?page=<?php echo $pro_page; ?>"><?php _e( 'the setting page', 'bestwebsoft' ); ?></a>
458
  (<?php _e( "You will be redirected automatically in 5 seconds.", 'bestwebsoft' ); ?>)
459
  </p>
460
  <?php } else {
@@ -469,17 +491,17 @@ if ( ! function_exists( 'bws_go_pro_tab_show' ) ) {
469
  <?php } ?>
470
  <form method="post" action="">
471
  <p>
472
- <?php _e( 'Enter your license key to install and activate', 'bestwebsoft' ); ?>
473
- <a href="http://bestwebsoft.com/products/<?php echo $link_slug; ?>/?k=<?php echo $link_key; ?>&amp;pn=<?php echo $link_pn; ?>&amp;v=<?php echo $plugin_info["Version"]; ?>&amp;wp_v=<?php echo $wp_version; ?>" target="_blank" title="<?php echo $plugin_info["Name"]; ?> Pro">Pro</a>
474
  <?php _e( 'version of the plugin.', 'bestwebsoft' ); ?><br />
475
  <span class="bws_info">
476
- <?php _e( 'License key can be found in the', 'bestwebsoft' ); ?>
477
- <a href="http://bestwebsoft.com/wp-login.php">Client Area</a>
478
  <?php _e( '(your username is the email address specified during the purchase).', 'bestwebsoft' ); ?>
479
  </span>
480
  </p>
481
  <?php if ( $trial_days_number !== false )
482
- $trial_days_number = __( 'or', 'bestwebsoft' ) . ' <a href="http://bestwebsoft.com/products/' . $link_slug . '/trial/" target="_blank">' . sprintf( __( 'Start Your Free %s-Day Trial Now', 'bestwebsoft' ), $trial_days_number ) . '</a>';
483
  if ( isset( $bstwbsftwppdtplgns_options['go_pro'][ $bws_license_plugin ]['count'] ) &&
484
  '5' < $bstwbsftwppdtplgns_options['go_pro'][ $bws_license_plugin ]['count'] &&
485
  $bstwbsftwppdtplgns_options['go_pro'][ $bws_license_plugin ]['time'] > ( time() - ( 24 * 60 * 60 ) ) ) { ?>
@@ -511,11 +533,11 @@ if ( ! function_exists( 'bws_go_pro_from_trial_tab' ) ) {
511
  if ( $trial_license_is_set ) { ?>
512
  <form method="post" action="">
513
  <p>
514
- <?php echo sprintf( __( 'In order to continue using the plugin it is necessary to buy a %s license.', 'bestwebsoft' ), '<a href="http://bestwebsoft.com/products/' . $link_slug . '/?k=' . $link_key . '&amp;pn=' . $link_pn . '&amp;v=' . $plugin_info["Version"] . '&amp;wp_v=' . $wp_version .'" target="_blank" title="' . $plugin_info["Name"] . '">Pro</a>' ) . ' ';
515
  _e( 'After that you can activate it by entering your license key.', 'bestwebsoft' ); ?><br />
516
  <span class="bws_info">
517
- <?php _e( 'License key can be found in the', 'bestwebsoft' ); ?>
518
- <a href="http://bestwebsoft.com/wp-login.php">Client Area</a>
519
  <?php _e( '(your username is the email address specified during the purchase).', 'bestwebsoft' ); ?>
520
  </span>
521
  </p>
@@ -545,7 +567,7 @@ if ( ! function_exists( 'bws_go_pro_from_trial_tab' ) ) {
545
  </script>
546
  <p><?php _e( "Congratulations! The Pro license of the plugin is successfully activated.", 'bestwebsoft' ); ?></p>
547
  <p>
548
- <?php _e( "Please, go to", 'bestwebsoft' ); ?> <a href="admin.php?page=<?php echo $page; ?>"><?php _e( 'the setting page', 'bestwebsoft' ); ?></a>
549
  (<?php _e( "You will be redirected automatically in 5 seconds.", 'bestwebsoft' ); ?>)
550
  </p>
551
  <?php }
@@ -559,7 +581,7 @@ if ( ! function_exists( 'bws_check_pro_license' ) ) {
559
 
560
  if ( isset( $_POST['bws_license_submit'] ) && check_admin_referer( $plugin_basename, 'bws_license_nonce_name' ) ) {
561
  $license_key = isset( $_POST['bws_license_key'] ) ? stripslashes( esc_html( trim( $_POST['bws_license_key'] ) ) ) : '';
562
-
563
  if ( '' != $license_key ) {
564
 
565
  delete_transient( 'bws_plugins_update' );
@@ -587,7 +609,7 @@ if ( ! function_exists( 'bws_check_pro_license' ) ) {
587
  if ( is_array( $response ) && !empty( $response ) ) {
588
  foreach ( $response as $key => $value ) {
589
  if ( "wrong_license_key" == $value->package ) {
590
- $result['error'] = __( 'Wrong license key.', 'bestwebsoft' );
591
  } else if ( "wrong_domain" == $value->package ) {
592
  $result['error'] = __( 'This license key is bind to another site.', 'bestwebsoft' );
593
  } else if ( "time_out" == $value->package ) {
@@ -607,7 +629,7 @@ if ( ! function_exists( 'bws_check_pro_license' ) ) {
607
  $result['message'] .= ' ' . __( 'Your license will expire on', 'bestwebsoft' ) . ' ' . $value->time_out . '.';
608
 
609
  if ( isset( $value->trial ) && $trial_plugin != false )
610
- $result['message'] .= ' ' . sprintf( __( 'In order to continue using the plugin it is necessary to buy a %s license.', 'bestwebsoft' ), '<a href="http://bestwebsoft.com/products/' . $trial_plugin['link_slug'] . '/?k=' . $trial_plugin['link_key'] . '&pn=' . $trial_plugin['link_pn'] . '&v=' . $trial_plugin['plugin_info']['Version'] . '&wp_v=' . $wp_version . '" target="_blank" title="' . $trial_plugin['plugin_info']['Name'] . '">Pro</a>' );
611
 
612
  if ( isset( $value->trial ) ) {
613
  $bstwbsftwppdtplgns_options['trial'][ $plugin_basename ] = 1;
@@ -618,7 +640,7 @@ if ( ! function_exists( 'bws_check_pro_license' ) ) {
618
  if ( empty( $result['error'] ) ) {
619
  if ( $bstwbsftwppdtplgns_options[ $plugin_basename ] != $license_key ) {
620
  $bstwbsftwppdtplgns_options[ $plugin_basename ] = $license_key;
621
-
622
  $file = @fopen( dirname( dirname( __FILE__ ) ) . "/license_key.txt" , "w+" );
623
  if ( $file ) {
624
  @fwrite( $file, $license_key );
@@ -626,12 +648,12 @@ if ( ! function_exists( 'bws_check_pro_license' ) ) {
626
  }
627
  $update_option = true;
628
  }
629
-
630
- if ( $bstwbsftwppdtplgns_options['time_out'][ $plugin_basename ] != $value->time_out ) {
631
  $bstwbsftwppdtplgns_options['time_out'][ $plugin_basename ] = $value->time_out;
632
  $update_option = true;
633
  }
634
-
635
  if ( isset( $update_option ) ) {
636
  if ( is_multisite() )
637
  update_site_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
@@ -701,7 +723,7 @@ if ( ! function_exists ( 'bws_plugin_update_row' ) ) {
701
  if ( $wp_version >= 4.6 )
702
  echo '<p>';
703
  if ( isset( $bstwbsftwppdtplgns_options['trial'][ $plugin_key ] ) && $link_slug != false ) {
704
- echo __( 'Notice: Your Pro Trial license has expired. To continue using the plugin you should buy a Pro license', 'bestwebsoft' ) . ' - <a href="http://bestwebsoft.com/products/' . $link_slug .'/">http://bestwebsoft.com/products/' . $link_slug . '/</a>';
705
  } else {
706
  echo __( 'Your license has expired. To continue getting top-priority support and plugin updates you should extend it.', 'bestwebsoft' ) . ' <a target="_new" href="http://support.bestwebsoft.com/entries/53487136">' . __( "Learn more", 'bestwebsoft' ) . '</a>';
707
  }
@@ -741,7 +763,7 @@ if ( ! function_exists ( 'bws_plugin_banner_timeout' ) ) {
741
  global $bstwbsftwppdtplgns_options, $bstwbsftwppdtplgns_cookie_add;
742
  if ( isset( $bstwbsftwppdtplgns_options['time_out'][ $plugin_key ] ) && ( strtotime( $bstwbsftwppdtplgns_options['time_out'][ $plugin_key ] ) < strtotime( date("m/d/Y") . '+1 month' ) ) && ( strtotime( $bstwbsftwppdtplgns_options['time_out'][ $plugin_key ] ) > strtotime( date("m/d/Y") ) ) ) {
743
  if ( ! isset( $bstwbsftwppdtplgns_cookie_add ) ) {
744
- echo '<script type="text/javascript" src="' . plugins_url( 'js/c_o_o_k_i_e.js', __FILE__ ) . '"></script>';
745
  $bstwbsftwppdtplgns_cookie_add = true;
746
  } ?>
747
  <script type="text/javascript">
@@ -749,25 +771,25 @@ if ( ! function_exists ( 'bws_plugin_banner_timeout' ) ) {
749
  $(document).ready( function() {
750
  var hide_message = $.cookie( "<?php echo $plugin_prefix; ?>_timeout_hide_banner_on_plugin_page" );
751
  if ( hide_message == "true" ) {
752
- $( ".<?php echo $plugin_prefix; ?>_message" ).css( "display", "none" );
753
  } else {
754
- $( ".<?php echo $plugin_prefix; ?>_message" ).css( "display", "block" );
755
  }
756
  $( ".<?php echo $plugin_prefix; ?>_close_icon" ).click( function() {
757
- $( ".<?php echo $plugin_prefix; ?>_message" ).css( "display", "none" );
758
  $.cookie( "<?php echo $plugin_prefix; ?>_timeout_hide_banner_on_plugin_page", "true", { expires: 30 } );
759
  });
760
  });
761
  })(jQuery);
762
  </script>
763
  <div class="updated" style="padding: 0; margin: 0; border: none; background: none;">
764
- <div class="<?php echo $plugin_prefix; ?>_message bws_banner_on_plugin_page bws_banner_timeout" style="display:none;">
765
  <button class="<?php echo $plugin_prefix; ?>_close_icon close_icon notice-dismiss bws_hide_settings_notice" title="<?php _e( 'Close notice', 'bestwebsoft' ); ?>"></button>
766
  <div class="icon">
767
  <img title="" src="<?php echo $banner_url; ?>" alt="" />
768
  </div>
769
  <div class="text"><?php _e( "You license for", 'bestwebsoft' ); ?> <strong><?php echo $plugin_name; ?></strong> <?php echo __( "expires on", 'bestwebsoft' ) . ' ' . $bstwbsftwppdtplgns_options['time_out'][ $plugin_key ] . ' ' . __( "and you won't be granted TOP-PRIORITY SUPPORT or UPDATES.", 'bestwebsoft' ); ?> <a target="_new" href="http://support.bestwebsoft.com/entries/53487136"><?php _e( "Learn more", 'bestwebsoft' ); ?></a></div>
770
- </div>
771
  </div>
772
  <?php }
773
  }
@@ -783,7 +805,7 @@ if ( ! function_exists( 'bws_plugin_banner_to_settings' ) ) {
783
 
784
  if ( isset( $plugin_options['display_settings_notice'] ) && 0 == $plugin_options['display_settings_notice'] )
785
  return;
786
-
787
  if ( isset( $_POST['bws_hide_settings_notice_' . $plugin_options_name ] ) && check_admin_referer( plugin_basename( __FILE__ ), 'bws_settings_nonce_name' ) ) {
788
  $plugin_options['display_settings_notice'] = 0;
789
  if ( $is_network_admin )
@@ -795,10 +817,10 @@ if ( ! function_exists( 'bws_plugin_banner_to_settings' ) ) {
795
 
796
  if ( false == strrpos( $banner_url_or_slug, '/' ) ) {
797
  $banner_url_or_slug = '//ps.w.org/' . $banner_url_or_slug . '/assets/icon-128x128.png';
798
- }
799
 
800
  $bws_plugin_banner_to_settings[] = array(
801
- 'plugin_info' => $plugin_info,
802
  'plugin_options_name' => $plugin_options_name,
803
  'banner_url' => $banner_url_or_slug,
804
  'settings_url' => $settings_url,
@@ -842,7 +864,7 @@ if ( ! function_exists( 'bws_plugin_suggest_feature_banner' ) ) {
842
 
843
  if ( isset( $return ) )
844
  return;
845
-
846
  if ( isset( $_POST['bws_hide_suggest_feature_banner_' . $plugin_options_name ] ) && check_admin_referer( $plugin_info['Name'], 'bws_settings_nonce_name' ) ) {
847
  $plugin_options['display_suggest_feature_banner'] = 0;
848
  if ( $is_network_admin )
@@ -859,11 +881,11 @@ if ( ! function_exists( 'bws_plugin_suggest_feature_banner' ) ) {
859
  <div class="bws_banner_on_plugin_page bws_suggest_feature_banner">
860
  <div class="icon">
861
  <img title="" src="<?php echo esc_attr( $banner_url_or_slug ); ?>" alt="" />
862
- </div>
863
  <div class="text">
864
  <strong><?php _e( 'Thank you for choosing', 'bestwebsoft' ); ?> <?php echo $plugin_info['Name']; ?> plugin!</strong><br />
865
- <?php _e( "If you have a feature, suggestion or idea you'd like to see in the plugin, we'd love to hear about it!", 'bestwebsoft' ); ?>
866
- <a target="_blank" href="http://support.bestwebsoft.com/hc/en-us/requests/new"><?php _e( 'Suggest a Feature', 'bestwebsoft' ); ?></a>
867
  </div>
868
  <form action="" method="post">
869
  <button class="notice-dismiss bws_hide_settings_notice" title="<?php _e( 'Close notice', 'bestwebsoft' ); ?>"></button>
@@ -879,7 +901,7 @@ if ( ! function_exists( 'bws_show_settings_notice' ) ) {
879
  function bws_show_settings_notice() { ?>
880
  <div id="bws_save_settings_notice" class="updated fade below-h2" style="display:none;">
881
  <p>
882
- <strong><?php _e( 'Notice', 'bestwebsoft' ); ?></strong>: <?php _e( "The plugin's settings have been changed.", 'bestwebsoft' ); ?>
883
  <a class="bws_save_anchor" href="#bws-submit-button"><?php _e( 'Save Changes', 'bestwebsoft' ); ?></a>
884
  </p>
885
  </div>
@@ -890,10 +912,10 @@ if ( ! function_exists( 'bws_hide_premium_options' ) ) {
890
  function bws_hide_premium_options( $options ) {
891
  if ( ! isset( $options['hide_premium_options'] ) || ! is_array( $options['hide_premium_options'] ) )
892
  $options['hide_premium_options'] = array();
893
-
894
  $options['hide_premium_options'][] = get_current_user_id();
895
 
896
- return array(
897
  'message' => __( 'You can always look at premium options by clicking on the "Show Pro features" in the "Go PRO" tab', 'bestwebsoft' ),
898
  'options' => $options );
899
  }
@@ -913,8 +935,8 @@ if ( ! function_exists ( 'bws_plugins_admin_init' ) ) {
913
 
914
  if ( isset( $_GET['bws_activate_plugin'] ) && check_admin_referer( 'bws_activate_plugin' . $_GET['bws_activate_plugin'] ) ) {
915
 
916
- $plugin = isset( $_GET['bws_activate_plugin'] ) ? $_GET['bws_activate_plugin'] : '';
917
- $result = activate_plugin( $plugin, '', is_network_admin() );
918
  if ( is_wp_error( $result ) ) {
919
  if ( 'unexpected_output' == $result->get_error_code() ) {
920
  $redirect = self_admin_url( 'admin.php?page=bws_panel&error=true&charsout=' . strlen( $result->get_error_data() ) . '&plugin=' . $plugin );
@@ -950,12 +972,12 @@ if ( ! function_exists ( 'bws_plugins_admin_init' ) ) {
950
  if ( ! function_exists ( 'bws_admin_enqueue_scripts' ) ) {
951
  function bws_admin_enqueue_scripts() {
952
  global $wp_version;
953
- wp_enqueue_style( 'bws-admin-css', plugins_url( 'css/general_style.css', __FILE__ ) );
954
- wp_enqueue_script( 'bws-admin-scripts', plugins_url( 'js/general_script.js', __FILE__ ), array( 'jquery' ) );
955
 
956
  if ( isset( $_GET['page'] ) && in_array( $_GET['page'], array( 'bws_panel', 'bws_themes', 'bws_system_status' ) ) ) {
957
- wp_enqueue_style( 'bws_menu_style', plugins_url( 'css/style.css', __FILE__ ) );
958
- wp_enqueue_script( 'bws_menu_script', plugins_url( 'js/bws_menu.js' , __FILE__ ) );
959
  wp_enqueue_script( 'theme-install' );
960
  add_thickbox();
961
  wp_enqueue_script( 'plugin-install' );
@@ -975,16 +997,14 @@ if ( ! function_exists ( 'bws_plugins_admin_head' ) ) {
975
  </style>
976
  </noscript>
977
  <?php }
978
- if ( 4.2 > $wp_version ) {
979
- $plugin_dir_array = explode( '/', plugin_basename( __FILE__ ) );
980
- $plugin_dir = $plugin_dir_array[0]; ?>
981
  <style type="text/css">
982
  .bws_hide_settings_notice,
983
  .bws_hide_premium_options {
984
  width: 11px;
985
  height: 11px;
986
  border: none;
987
- background: url("<?php echo plugins_url( $plugin_dir . '/bws_menu/images/close_banner.png' ); ?>") no-repeat center center;
988
  box-shadow: none;
989
  float: right;
990
  margin: 8px;
@@ -1004,11 +1024,11 @@ if ( ! function_exists ( 'bws_plugins_admin_head' ) ) {
1004
  var bws_shortcode_button = {
1005
  'label': '<?php esc_attr_e( "Add BWS Shortcode", "bestwebsoft" ); ?>',
1006
  'title': '<?php esc_attr_e( "Add BWS Plugins Shortcode", "bestwebsoft" ); ?>',
1007
- 'icon_url': '<?php echo plugins_url( "images/shortcode-icon.png" , __FILE__ ); ?>',
1008
  'function_name': [
1009
  <?php foreach ( $bws_shortcode_list as $key => $value ) {
1010
  if ( isset( $value['js_function'] ) )
1011
- echo "'" . $value['js_function'] . "',";
1012
  } ?>
1013
  ],
1014
  'wp_version' : '<?php echo $wp_version; ?>'
@@ -1022,9 +1042,9 @@ if ( ! function_exists ( 'bws_plugins_admin_head' ) ) {
1022
  'actions' => array(
1023
  'click' => false,
1024
  'onload' => true
1025
- ),
1026
  'content' => '<h3>' . __( 'Add shortcode', 'bestwebsoft' ) . '</h3><p>' . __( "Add BestWebSoft plugins' shortcodes using this button.", 'bestwebsoft' ) . '</p>',
1027
- 'position' => array(
1028
  'edge' => 'right'
1029
  ),
1030
  'set_timeout' => 2000
@@ -1033,14 +1053,14 @@ if ( ! function_exists ( 'bws_plugins_admin_head' ) ) {
1033
  $tooltip_args['css_selector'] = '.mce_add_bws_shortcode';
1034
  bws_add_tooltip_in_admin( $tooltip_args );
1035
  }
1036
- }
1037
  }
1038
  }
1039
 
1040
  if ( ! function_exists ( 'bws_plugins_include_codemirror' ) ) {
1041
  function bws_plugins_include_codemirror() {
1042
- wp_enqueue_style( 'codemirror.css', plugins_url( 'css/codemirror.css', __FILE__ ) );
1043
- wp_enqueue_script( 'codemirror.js', plugins_url( 'js/codemirror.js', __FILE__ ), array( 'jquery' ) );
1044
  }
1045
  }
1046
 
@@ -1062,13 +1082,13 @@ if ( ! class_exists( 'BWS_admin_tooltip' ) ) {
1062
  if ( 3.3 > $wp_version )
1063
  return;
1064
  /* Default arguments */
1065
- $tooltip_args_default = array(
1066
  'tooltip_id' => false,
1067
- 'css_selector' => false,
1068
  'actions' => array(
1069
  'click' => true,
1070
  'onload' => false,
1071
- ),
1072
  'buttons' => array(
1073
  'close' => array(
1074
  'type' => 'dismiss',
@@ -1076,11 +1096,11 @@ if ( ! class_exists( 'BWS_admin_tooltip' ) ) {
1076
  ),
1077
  ),
1078
  'position' => array(
1079
- 'edge' => 'top',
1080
  'align' => 'center',
1081
- 'pos-left' => 0,
1082
- 'pos-top' => 0,
1083
- 'zindex' => 10000
1084
  ),
1085
  'set_timeout' => 0
1086
  );
@@ -1146,7 +1166,7 @@ if ( ! class_exists( 'BWS_admin_tooltip' ) ) {
1146
  public function add_scripts() {
1147
  global $bstwbsftwppdtplgns_tooltip_script_add;
1148
  if ( ! isset( $bstwbsftwppdtplgns_tooltip_script_add ) ) {
1149
- echo '<script type="text/javascript" src="' . plugins_url( 'js/bws_tooltip.js', __FILE__ ) . '"></script>';
1150
  $bstwbsftwppdtplgns_tooltip_script_add = true;
1151
  }
1152
  $tooltip_args = $this->tooltip_args; ?>
@@ -1163,9 +1183,9 @@ if ( ! class_exists( 'BWS_admin_tooltip' ) ) {
1163
 
1164
  if ( ! function_exists ( 'bws_form_restore_default_settings' ) ) {
1165
  function bws_form_restore_default_settings( $plugin_basename, $change_permission_attr = '' ) { ?>
1166
- <form method="post" action="">
1167
  <p><?php _e( 'Restore all plugin settings to defaults', 'bestwebsoft' ); ?></p>
1168
- <p>
1169
  <input <?php echo $change_permission_attr; ?> type="submit" class="button" value="<?php _e( 'Restore settings', 'bestwebsoft' ); ?>" />
1170
  </p>
1171
  <input type="hidden" name="bws_restore_default" value="submit" />
@@ -1180,7 +1200,7 @@ if ( ! function_exists ( 'bws_form_restore_default_confirm' ) ) {
1180
  <p><?php _e( 'Are you sure you want to restore all settings by default?', 'bestwebsoft' ) ?></p>
1181
  <form method="post" action="">
1182
  <p>
1183
- <button class="button" name="bws_restore_confirm"><?php _e( 'Yes, restore all settings', 'bestwebsoft' ) ?></button>
1184
  <button class="button" name="bws_restore_deny"><?php _e( 'No, go back to the settings page', 'bestwebsoft' ) ?></button>
1185
  <?php wp_nonce_field( $plugin_basename, 'bws_settings_nonce_name' ); ?>
1186
  </p>
@@ -1204,7 +1224,7 @@ if ( ! function_exists( 'bws_add_editor_buttons' ) ) {
1204
 
1205
  if ( ! function_exists( 'bws_add_buttons' ) ){
1206
  function bws_add_buttons( $plugin_array ) {
1207
- $plugin_array['add_bws_shortcode'] = plugins_url( 'js/shortcode-button.js', __FILE__ );
1208
  return $plugin_array;
1209
  }
1210
  }
@@ -1218,7 +1238,7 @@ if ( ! function_exists( 'bws_register_buttons' ) ) {
1218
 
1219
  /* Generate inline content for the popup window when the "bws shortcode" button is clicked */
1220
  if ( ! function_exists( 'bws_shortcode_media_button_popup' ) ) {
1221
- function bws_shortcode_media_button_popup() {
1222
  global $bws_shortcode_list, $wp_version;
1223
  if ( $wp_version < '3.3' )
1224
  return;
@@ -1255,7 +1275,7 @@ if ( ! function_exists( 'bws_shortcode_media_button_popup' ) ) {
1255
  if ( $wp_version < '3.9' ) { ?>
1256
  <script type="text/javascript">
1257
  (function($){
1258
- $( '.bws_shortcode_insert' ).on( 'click',function() {
1259
  var shortcode = $( '#TB_ajaxContent #bws_shortcode_display' ).text();
1260
  if ( '' != shortcode ) {
1261
  /* insert shortcode to tinymce */
@@ -1263,14 +1283,14 @@ if ( ! function_exists( 'bws_shortcode_media_button_popup' ) ) {
1263
  $( 'textarea#content' ).val( shortcode );
1264
  } else {
1265
  tinyMCE.execCommand( 'mceInsertContent', false, shortcode );
1266
- }
1267
  }
1268
  /* close the thickbox after adding shortcode to editor */
1269
  self.parent.tb_remove();
1270
  });
1271
  })(jQuery);
1272
  </script>
1273
- <?php }
1274
  }
1275
  }
1276
 
@@ -1281,7 +1301,7 @@ if ( ! function_exists( 'bws_help_tab' ) ) {
1281
 
1282
  $content = '<p><a href="' . $url . '" target="_blank">' . __( 'Visit Help Center', 'bestwebsoft' ) . '</a></p>';
1283
 
1284
- $screen->add_help_tab(
1285
  array(
1286
  'id' => $args['id'] . '_help_tab',
1287
  'title' => __( 'FAQ', 'bestwebsoft' ),
@@ -1321,14 +1341,14 @@ if ( ! function_exists( 'bws_custom_code_tab' ) ) {
1321
  if ( ! file_exists( $index_file ) ) {
1322
  if ( $f = fopen( $index_file, 'w+' ) )
1323
  fclose( $f );
1324
- }
1325
  }
1326
 
1327
  $css_file = 'bws-custom-code.css';
1328
  $real_css_file = $folder . '/' . $css_file;
1329
 
1330
- $php_file = 'bws-custom-code.php';
1331
- $real_php_file = $folder . '/' . $php_file;
1332
 
1333
  $is_multisite = is_multisite();
1334
  if ( $is_multisite )
@@ -1337,7 +1357,7 @@ if ( ! function_exists( 'bws_custom_code_tab' ) ) {
1337
  if ( isset( $_REQUEST['bws_update_custom_code'] ) && check_admin_referer( 'bws_update_' . $css_file ) ) {
1338
 
1339
  /* CSS */
1340
- $newcontent_css = wp_unslash( $_POST['bws_newcontent_css'] );
1341
  if ( ! empty( $newcontent_css ) && isset( $_REQUEST['bws_custom_css_active'] ) ) {
1342
  if ( $is_multisite )
1343
  $bstwbsftwppdtplgns_options['custom_code'][ $blog_id ][ $css_file ] = $upload_dir['baseurl'] . '/bws-custom-code/' . $css_file;
@@ -1388,7 +1408,7 @@ if ( ! function_exists( 'bws_custom_code_tab' ) ) {
1388
  }
1389
  } else {
1390
  $error .= __( 'Not enough permissions to create the file', 'bestwebsoft' ) . ' ' . $index_file . '. ';
1391
- }
1392
 
1393
  if ( ! empty( $error ) )
1394
  $error .= ' <a href="https://codex.wordpress.org/Changing_File_Permissions" target="_blank">' . __( 'Learn more', 'bestwebsoft' ) . '</a>';
@@ -1420,9 +1440,9 @@ if ( ! function_exists( 'bws_custom_code_tab' ) ) {
1420
 
1421
  if ( ! empty( $message ) ) { ?>
1422
  <div id="message" class="below-h2 updated notice is-dismissible"><p><?php echo $message; ?></p></div>
1423
- <?php } ?>
1424
  <form action="" method="post">
1425
- <?php foreach ( array( 'css', 'php' ) as $extension ) { ?>
1426
  <p>
1427
  <?php if ( 'css' == $extension )
1428
  _e( 'These styles will be added to the header on all pages of your site.', 'bestwebsoft' );
@@ -1440,14 +1460,14 @@ if ( ! function_exists( 'bws_custom_code_tab' ) ) {
1440
  <textarea cols="70" rows="25" name="bws_newcontent_<?php echo $extension; ?>" id="bws_newcontent_<?php echo $extension; ?>"><?php if ( isset( ${"content_{$extension}"} ) ) echo ${"content_{$extension}"}; ?></textarea>
1441
  <p class="description">
1442
  <a href="<?php echo ( 'css' == $extension ) ? 'https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_started' : 'http://php.net/' ?>" target="_blank">
1443
- <?php printf( __( 'Learn more about %s', 'bestwebsoft' ), strtoupper( $extension ) ); ?>
1444
  </a>
1445
- </p>
1446
  <?php }
1447
  if ( ( ! file_exists( $real_css_file ) || is_writeable( $real_css_file ) ) && ( ! file_exists( $real_php_file ) || is_writeable( $real_php_file ) ) ) { ?>
1448
  <p class="submit">
1449
- <input type="hidden" name="bws_update_custom_code" value="submit" />
1450
- <?php submit_button( __( 'Save Changes', 'bestwebsoft' ), 'primary', 'submit', false );
1451
  wp_nonce_field( 'bws_update_' . $css_file ); ?>
1452
  </p>
1453
  <?php } else { ?>
@@ -1456,7 +1476,7 @@ if ( ! function_exists( 'bws_custom_code_tab' ) ) {
1456
  '</a>' ); ?></em></p>
1457
  <?php } ?>
1458
  </form>
1459
- <?php }
1460
  }
1461
 
1462
  if ( ! function_exists( 'bws_enqueue_custom_code_css' ) ) {
@@ -1496,7 +1516,7 @@ if ( ! function_exists( 'bws_enqueue_custom_code_php' ) ) {
1496
  $blog_id = get_current_blog_id();
1497
 
1498
  if ( ! $is_multisite && ! empty( $bstwbsftwppdtplgns_options['custom_code']['bws-custom-code.php'] ) ) {
1499
-
1500
  if ( file_exists( $bstwbsftwppdtplgns_options['custom_code']['bws-custom-code.php'] ) ) {
1501
  if ( ! defined( 'BWS_GLOBAL' ) )
1502
  define( 'BWS_GLOBAL', true );
@@ -1541,7 +1561,7 @@ if ( ! function_exists( 'bws_delete_plugin' ) ) {
1541
  /* if empty ['bws_menu']['version'] - there is no other bws plugins - delete all */
1542
  if ( empty( $bstwbsftwppdtplgns_options['bws_menu']['version'] ) ) {
1543
  /* remove options */
1544
- if ( $is_multisite )
1545
  delete_site_option( 'bstwbsftwppdtplgns_options' );
1546
  else
1547
  delete_option( 'bstwbsftwppdtplgns_options' );
@@ -1570,7 +1590,22 @@ if ( ! function_exists( 'bws_delete_plugin' ) ) {
1570
  rmdir( $folder );
1571
  }
1572
  }
1573
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1574
  }
1575
  }
1576
 
3
  * General functions for BestWebSoft plugins
4
  */
5
 
6
+ /**
7
+ * Function to add 'bestwebsoft' slug for BWS_Menu MO file if BWS_Menu loaded from theme.
8
+ *
9
+ * @since 1.9.7
10
+ */
11
+ if ( ! function_exists ( 'bws_get_mofile' ) ) {
12
+ function bws_get_mofile( $mofile, $domain ) {
13
+ if ( 'bestwebsoft' == $domain ) {
14
+ $locale = get_locale();
15
+ return str_replace( $locale, "bestwebsoft-{$locale}", $mofile );
16
+ }
17
+
18
+ return $mofile;
19
+ }
20
+ }
21
+
22
  /* Internationalization, first(!) */
23
+ if ( isset( $bws_menu_source ) && 'themes' == $bws_menu_source ) {
24
+ add_filter( 'load_textdomain_mofile', 'bws_get_mofile', 10, 2 );
25
+ load_theme_textdomain( 'bestwebsoft', get_stylesheet_directory() . '/inc/bws_menu/languages' );
26
+ remove_filter( 'load_textdomain_mofile', 'bws_get_mofile' );
27
+ } else {
28
+ load_plugin_textdomain( 'bestwebsoft', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
29
+ }
30
 
31
  /**
32
  * Function add BWS Plugins page - for old plugin version
55
  }
56
  }
57
 
58
+ add_menu_page( 'BWS Panel', 'BWS Panel', 'manage_options', 'bws_panel', 'bws_add_menu_render', bws_menu_url( 'images/logo-white-min.png' ), '1001' );
59
 
60
  add_submenu_page( 'bws_panel', __( 'Plugins', 'bestwebsoft' ), __( 'Plugins', 'bestwebsoft' ), 'manage_options', 'bws_panel', 'bws_add_menu_render' );
61
  add_submenu_page( 'bws_panel', __( 'Themes', 'bestwebsoft' ), __( 'Themes', 'bestwebsoft' ), 'manage_options', 'bws_themes', 'bws_add_menu_render' );
90
  if ( is_plugin_active( $plugin_basename ) ) {
91
  deactivate_plugins( $plugin_basename );
92
  $admin_url = ( function_exists( 'get_admin_url' ) ) ? get_admin_url( null, 'plugins.php' ) : esc_url( '/wp-admin/plugins.php' );
93
+ wp_die(
94
  sprintf(
95
  "<strong>%s</strong> %s <strong>WordPress %s</strong> %s <br /><br />%s <a href='%s'>%s</a>.",
96
  $plugin_info['Name'],
129
  }
130
 
131
  /* banner_to_settings notice */
132
+ if ( ! empty( $bws_plugin_banner_to_settings ) ) {
133
  if ( 1 == count( $bws_plugin_banner_to_settings ) ) { ?>
134
  <div class="updated" style="padding: 0; margin: 0; border: none; background: none;">
135
  <div class="bws_banner_on_plugin_page bws_banner_to_settings">
136
  <div class="icon">
137
  <img title="" src="<?php echo esc_attr( $bws_plugin_banner_to_settings[0]['banner_url'] ); ?>" alt="" />
138
+ </div>
139
  <div class="text">
140
  <strong><?php _e( 'Thank you for installing', 'bestwebsoft' ); ?> <?php echo $bws_plugin_banner_to_settings[0]['plugin_info']['Name']; ?> plugin!</strong><br />
141
+ <?php _e( "Let's get started", 'bestwebsoft' ); ?>:
142
+ <a href="<?php echo $bws_plugin_banner_to_settings[0]['settings_url']; ?>"><?php _e( 'Settings', 'bestwebsoft' ); ?></a>
143
  <?php if ( false != $bws_plugin_banner_to_settings[0]['post_type_url'] ) { ?>
144
+ <?php _e( 'or', 'bestwebsoft' ); ?>
145
  <a href="<?php echo $bws_plugin_banner_to_settings[0]['post_type_url']; ?>"><?php _e( 'Add New', 'bestwebsoft' ); ?></a>
146
  <?php } ?>
147
  </div>
151
  <?php wp_nonce_field( plugin_basename( __FILE__ ), 'bws_settings_nonce_name' ); ?>
152
  </form>
153
  </div>
154
+ </div>
155
  <?php } else { ?>
156
  <div class="updated" style="padding: 0; margin: 0; border: none; background: none;">
157
+ <div class="bws_banner_on_plugin_page bws_banner_to_settings_joint">
158
  <form action="" method="post">
159
  <button class="notice-dismiss bws_hide_settings_notice" title="<?php _e( 'Close notice', 'bestwebsoft' ); ?>"></button>
160
  <div class="bws-text">
161
  <div class="icon">
162
  <span class="dashicons dashicons-admin-plugins"></span>
163
+ </div>
164
  <strong><?php _e( 'Thank you for installing plugins by BestWebSoft!', 'bestwebsoft' ); ?></strong>
165
  <div class="hide-if-no-js bws-more-links">
166
+ <a href="#" class="bws-more"><?php _e( 'More Details', 'bestwebsoft' ); ?></a>
167
+ <a href="#" class="bws-less hidden"><?php _e( 'Less Details', 'bestwebsoft' ); ?></a>
168
+ </div>
169
+ <?php wp_nonce_field( plugin_basename( __FILE__ ), 'bws_settings_nonce_name' ); ?>
170
  <div class="clear"></div>
171
  </div>
172
  <div class="bws-details hide-if-js">
173
+ <?php foreach ( $bws_plugin_banner_to_settings as $value ) { ?>
174
+ <div>
175
+ <strong><?php echo str_replace( ' by BestWebSoft', '', $value['plugin_info']['Name'] ); ?></strong>&ensp;<a href="<?php echo $value['settings_url']; ?>"><?php _e( 'Settings', 'bestwebsoft' ); ?></a>
176
  <?php if ( false != $value['post_type_url'] ) { ?>
177
  &ensp;|&ensp;<a target="_blank" href="<?php echo $value['post_type_url']; ?>"><?php _e( 'Add New', 'bestwebsoft' ); ?></a>
178
  <?php } ?>
179
  <input type="hidden" name="bws_hide_settings_notice_<?php echo $value['plugin_options_name']; ?>" value="hide" />
180
+ </div>
181
+ <?php } ?>
182
  </div>
183
  </div>
184
  </form>
191
  if ( ! function_exists( 'bws_plugin_banner' ) ) {
192
  function bws_plugin_banner( $plugin_info, $this_banner_prefix, $link_slug, $link_key, $link_pn, $banner_url_or_slug ) {
193
  global $wp_version, $bstwbsftwppdtplgns_cookie_add, $bstwbsftwppdtplgns_banner_array;
194
+
195
  if ( empty( $bstwbsftwppdtplgns_banner_array ) ) {
196
  if ( ! function_exists( 'bws_get_banner_array' ) )
197
  require_once( dirname( __FILE__ ) . '/bws_menu.php' );
211
  foreach ( $bstwbsftwppdtplgns_banner_array as $key => $value ) {
212
  if ( $this_banner == $value[0] ) {
213
  if ( ! isset( $bstwbsftwppdtplgns_cookie_add ) ) {
214
+ echo '<script type="text/javascript" src="' . bws_menu_url( 'js/c_o_o_k_i_e.js' ) . '"></script>';
215
  $bstwbsftwppdtplgns_cookie_add = true;
216
  } ?>
217
  <script type="text/javascript">
235
  <button class="<?php echo $this_banner_prefix; ?>_close_icon close_icon notice-dismiss bws_hide_settings_notice" title="<?php _e( 'Close notice', 'bestwebsoft' ); ?>"></button>
236
  <div class="icon">
237
  <img title="" src="<?php echo esc_attr( $banner_url_or_slug ); ?>" alt="" />
238
+ </div>
239
  <div class="text"><?php
240
  _e( 'It’s time to upgrade your', 'bestwebsoft' ); ?> <strong><?php echo $plugin_info['Name']; ?> plugin</strong> <?php _e( 'to', 'bestwebsoft' ); ?> <strong>Pro</strong> <?php _e( 'version!', 'bestwebsoft' ); ?><br />
241
  <span><?php _e( 'Extend standard plugin functionality with new great options.', 'bestwebsoft' ); ?></span>
242
  </div>
243
  <div class="button_div">
244
+ <a class="button" target="_blank" href="http://bestwebsoft.com/products/wordpress/plugins/<?php echo $link_slug; ?>/?k=<?php echo $link_key; ?>&amp;pn=<?php echo $link_pn; ?>&amp;v=<?php echo $plugin_info["Version"]; ?>&amp;wp_v=<?php echo $wp_version; ?>"><?php _e( 'Learn More', 'bestwebsoft' ); ?></a>
245
  </div>
246
  </div>
247
  </div>
267
  </div>
268
  <div class="bws-plugin-reviews-donate">
269
  <?php _e( 'Donations play an important role in supporting great projects', 'bestwebsoft' ); ?>:
270
+ <a href="http://bestwebsoft.com/donate/">Donate</a>
271
  </div>
272
  </div>
273
  <?php }
290
  if ( false !== $key ) {
291
  unset( $plugin_options['hide_premium_options'][ $key ] );
292
  }
293
+
294
  if ( $is_network_option )
295
  update_site_option( $plugin_options_name, $plugin_options );
296
  else
301
  }
302
 
303
  if ( isset( $_POST['bws_license_submit'] ) && check_admin_referer( $plugin_basename, 'bws_license_nonce_name' ) ) {
304
+ if ( '' != $bws_license_key ) {
305
  if ( strlen( $bws_license_key ) != 18 ) {
306
  $result['error'] = __( "Wrong license key", 'bestwebsoft' );
307
  } else {
318
  require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
319
 
320
  $all_plugins = get_plugins();
321
+
322
  if ( ! array_key_exists( $bws_license_plugin, $all_plugins ) ) {
323
  $current = get_site_transient( 'update_plugins' );
324
  if ( is_array( $all_plugins ) && !empty( $all_plugins ) && isset( $current ) && is_array( $current->response ) ) {
339
  if ( is_array( $response ) && !empty( $response ) ) {
340
  foreach ( $response as $key => $value ) {
341
  if ( "wrong_license_key" == $value->package ) {
342
+ $result['error'] = __( "Wrong license key", 'bestwebsoft' );
343
  } elseif ( "wrong_domain" == $value->package ) {
344
  $result['error'] = __( "This license key is bind to another site", 'bestwebsoft' );
345
  } elseif ( "you_are_banned" == $value->package ) {
356
  $url = 'http://bestwebsoft.com/wp-content/plugins/paid-products/plugins/downloads/?bws_first_download=' . $bws_license_plugin . '&bws_license_key=' . $bws_license_key . '&download_from=5';
357
  $uploadDir = wp_upload_dir();
358
  $zip_name = explode( '/', $bws_license_plugin );
359
+
360
+ if ( !function_exists( 'curl_init' ) ) {
361
  $received_content = file_get_contents( $url );
362
  } else {
363
  $ch = curl_init();
399
 
400
  /* activate Pro */
401
  if ( file_exists( WP_PLUGIN_DIR . '/' . $zip_name[0] ) ) {
402
+ if ( is_multisite() && is_plugin_active_for_network( $plugin_basename ) ) {
403
  /* if multisite and free plugin is network activated */
404
  $active_plugins = get_site_option( 'active_sitewide_plugins' );
405
  $active_plugins[ $bws_license_plugin ] = time();
416
  }
417
  }
418
  } else {
419
+ $result['error'] = __( "Something went wrong. Try again later or upload the plugin manually. We are sorry for inconvenience.", 'bestwebsoft' );
420
  }
421
  }
422
  }
424
  $bstwbsftwppdtplgns_options[ $bws_license_plugin ] = $bws_license_key;
425
  /* activate Pro */
426
  if ( ! is_plugin_active( $bws_license_plugin ) ) {
427
+ if ( is_multisite() && is_plugin_active_for_network( $plugin_basename ) ) {
428
  /* if multisite and free plugin is network activated */
429
  $network_wide = true;
430
  } else {
476
  </script>
477
  <p><?php _e( "Congratulations! Pro version of the plugin is successfully installed and activated.", 'bestwebsoft' ); ?></p>
478
  <p>
479
+ <?php _e( "Please, go to", 'bestwebsoft' ); ?> <a href="admin.php?page=<?php echo $pro_page; ?>"><?php _e( 'the setting page', 'bestwebsoft' ); ?></a>
480
  (<?php _e( "You will be redirected automatically in 5 seconds.", 'bestwebsoft' ); ?>)
481
  </p>
482
  <?php } else {
491
  <?php } ?>
492
  <form method="post" action="">
493
  <p>
494
+ <?php _e( 'Enter your license key to install and activate', 'bestwebsoft' ); ?>
495
+ <a href="http://bestwebsoft.com/products/wordpress/plugins/<?php echo $link_slug; ?>/?k=<?php echo $link_key; ?>&amp;pn=<?php echo $link_pn; ?>&amp;v=<?php echo $plugin_info["Version"]; ?>&amp;wp_v=<?php echo $wp_version; ?>" target="_blank" title="<?php echo $plugin_info["Name"]; ?> Pro">Pro</a>
496
  <?php _e( 'version of the plugin.', 'bestwebsoft' ); ?><br />
497
  <span class="bws_info">
498
+ <?php _e( 'License key can be found in the', 'bestwebsoft' ); ?>
499
+ <a href="http://bestwebsoft.com/wp-login.php">Client Area</a>
500
  <?php _e( '(your username is the email address specified during the purchase).', 'bestwebsoft' ); ?>
501
  </span>
502
  </p>
503
  <?php if ( $trial_days_number !== false )
504
+ $trial_days_number = __( 'or', 'bestwebsoft' ) . ' <a href="http://bestwebsoft.com/products/wordpress/plugins/' . $link_slug . '/trial/" target="_blank">' . sprintf( __( 'Start Your Free %s-Day Trial Now', 'bestwebsoft' ), $trial_days_number ) . '</a>';
505
  if ( isset( $bstwbsftwppdtplgns_options['go_pro'][ $bws_license_plugin ]['count'] ) &&
506
  '5' < $bstwbsftwppdtplgns_options['go_pro'][ $bws_license_plugin ]['count'] &&
507
  $bstwbsftwppdtplgns_options['go_pro'][ $bws_license_plugin ]['time'] > ( time() - ( 24 * 60 * 60 ) ) ) { ?>
533
  if ( $trial_license_is_set ) { ?>
534
  <form method="post" action="">
535
  <p>
536
+ <?php echo sprintf( __( 'In order to continue using the plugin it is necessary to buy a %s license.', 'bestwebsoft' ), '<a href="http://bestwebsoft.com/products/wordpress/plugins/' . $link_slug . '/?k=' . $link_key . '&amp;pn=' . $link_pn . '&amp;v=' . $plugin_info["Version"] . '&amp;wp_v=' . $wp_version .'" target="_blank" title="' . $plugin_info["Name"] . '">Pro</a>' ) . ' ';
537
  _e( 'After that you can activate it by entering your license key.', 'bestwebsoft' ); ?><br />
538
  <span class="bws_info">
539
+ <?php _e( 'License key can be found in the', 'bestwebsoft' ); ?>
540
+ <a href="http://bestwebsoft.com/wp-login.php">Client Area</a>
541
  <?php _e( '(your username is the email address specified during the purchase).', 'bestwebsoft' ); ?>
542
  </span>
543
  </p>
567
  </script>
568
  <p><?php _e( "Congratulations! The Pro license of the plugin is successfully activated.", 'bestwebsoft' ); ?></p>
569
  <p>
570
+ <?php _e( "Please, go to", 'bestwebsoft' ); ?> <a href="admin.php?page=<?php echo $page; ?>"><?php _e( 'the setting page', 'bestwebsoft' ); ?></a>
571
  (<?php _e( "You will be redirected automatically in 5 seconds.", 'bestwebsoft' ); ?>)
572
  </p>
573
  <?php }
581
 
582
  if ( isset( $_POST['bws_license_submit'] ) && check_admin_referer( $plugin_basename, 'bws_license_nonce_name' ) ) {
583
  $license_key = isset( $_POST['bws_license_key'] ) ? stripslashes( esc_html( trim( $_POST['bws_license_key'] ) ) ) : '';
584
+
585
  if ( '' != $license_key ) {
586
 
587
  delete_transient( 'bws_plugins_update' );
609
  if ( is_array( $response ) && !empty( $response ) ) {
610
  foreach ( $response as $key => $value ) {
611
  if ( "wrong_license_key" == $value->package ) {
612
+ $result['error'] = __( 'Wrong license key.', 'bestwebsoft' );
613
  } else if ( "wrong_domain" == $value->package ) {
614
  $result['error'] = __( 'This license key is bind to another site.', 'bestwebsoft' );
615
  } else if ( "time_out" == $value->package ) {
629
  $result['message'] .= ' ' . __( 'Your license will expire on', 'bestwebsoft' ) . ' ' . $value->time_out . '.';
630
 
631
  if ( isset( $value->trial ) && $trial_plugin != false )
632
+ $result['message'] .= ' ' . sprintf( __( 'In order to continue using the plugin it is necessary to buy a %s license.', 'bestwebsoft' ), '<a href="http://bestwebsoft.com/products/wordpress/plugins/' . $trial_plugin['link_slug'] . '/?k=' . $trial_plugin['link_key'] . '&pn=' . $trial_plugin['link_pn'] . '&v=' . $trial_plugin['plugin_info']['Version'] . '&wp_v=' . $wp_version . '" target="_blank" title="' . $trial_plugin['plugin_info']['Name'] . '">Pro</a>' );
633
 
634
  if ( isset( $value->trial ) ) {
635
  $bstwbsftwppdtplgns_options['trial'][ $plugin_basename ] = 1;
640
  if ( empty( $result['error'] ) ) {
641
  if ( $bstwbsftwppdtplgns_options[ $plugin_basename ] != $license_key ) {
642
  $bstwbsftwppdtplgns_options[ $plugin_basename ] = $license_key;
643
+
644
  $file = @fopen( dirname( dirname( __FILE__ ) ) . "/license_key.txt" , "w+" );
645
  if ( $file ) {
646
  @fwrite( $file, $license_key );
648
  }
649
  $update_option = true;
650
  }
651
+
652
+ if ( ! isset( $bstwbsftwppdtplgns_options['time_out'][ $plugin_basename ] ) || $bstwbsftwppdtplgns_options['time_out'][ $plugin_basename ] != $value->time_out ) {
653
  $bstwbsftwppdtplgns_options['time_out'][ $plugin_basename ] = $value->time_out;
654
  $update_option = true;
655
  }
656
+
657
  if ( isset( $update_option ) ) {
658
  if ( is_multisite() )
659
  update_site_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
723
  if ( $wp_version >= 4.6 )
724
  echo '<p>';
725
  if ( isset( $bstwbsftwppdtplgns_options['trial'][ $plugin_key ] ) && $link_slug != false ) {
726
+ echo __( 'Notice: Your Pro Trial license has expired. To continue using the plugin you should buy a Pro license', 'bestwebsoft' ) . ' - <a href="http://bestwebsoft.com/products/wordpress/plugins/' . $link_slug .'/">http://bestwebsoft.com/products/wordpress/plugins/' . $link_slug . '/</a>';
727
  } else {
728
  echo __( 'Your license has expired. To continue getting top-priority support and plugin updates you should extend it.', 'bestwebsoft' ) . ' <a target="_new" href="http://support.bestwebsoft.com/entries/53487136">' . __( "Learn more", 'bestwebsoft' ) . '</a>';
729
  }
763
  global $bstwbsftwppdtplgns_options, $bstwbsftwppdtplgns_cookie_add;
764
  if ( isset( $bstwbsftwppdtplgns_options['time_out'][ $plugin_key ] ) && ( strtotime( $bstwbsftwppdtplgns_options['time_out'][ $plugin_key ] ) < strtotime( date("m/d/Y") . '+1 month' ) ) && ( strtotime( $bstwbsftwppdtplgns_options['time_out'][ $plugin_key ] ) > strtotime( date("m/d/Y") ) ) ) {
765
  if ( ! isset( $bstwbsftwppdtplgns_cookie_add ) ) {
766
+ echo '<script type="text/javascript" src="' . bws_menu_url( 'js/c_o_o_k_i_e.js' ) . '"></script>';
767
  $bstwbsftwppdtplgns_cookie_add = true;
768
  } ?>
769
  <script type="text/javascript">
771
  $(document).ready( function() {
772
  var hide_message = $.cookie( "<?php echo $plugin_prefix; ?>_timeout_hide_banner_on_plugin_page" );
773
  if ( hide_message == "true" ) {
774
+ $( ".<?php echo $plugin_prefix; ?>_message_timeout" ).css( "display", "none" );
775
  } else {
776
+ $( ".<?php echo $plugin_prefix; ?>_message_timeout" ).css( "display", "block" );
777
  }
778
  $( ".<?php echo $plugin_prefix; ?>_close_icon" ).click( function() {
779
+ $( ".<?php echo $plugin_prefix; ?>_message_timeout" ).css( "display", "none" );
780
  $.cookie( "<?php echo $plugin_prefix; ?>_timeout_hide_banner_on_plugin_page", "true", { expires: 30 } );
781
  });
782
  });
783
  })(jQuery);
784
  </script>
785
  <div class="updated" style="padding: 0; margin: 0; border: none; background: none;">
786
+ <div class="<?php echo $plugin_prefix; ?>_message_timeout bws_banner_on_plugin_page bws_banner_timeout" style="display:none;">
787
  <button class="<?php echo $plugin_prefix; ?>_close_icon close_icon notice-dismiss bws_hide_settings_notice" title="<?php _e( 'Close notice', 'bestwebsoft' ); ?>"></button>
788
  <div class="icon">
789
  <img title="" src="<?php echo $banner_url; ?>" alt="" />
790
  </div>
791
  <div class="text"><?php _e( "You license for", 'bestwebsoft' ); ?> <strong><?php echo $plugin_name; ?></strong> <?php echo __( "expires on", 'bestwebsoft' ) . ' ' . $bstwbsftwppdtplgns_options['time_out'][ $plugin_key ] . ' ' . __( "and you won't be granted TOP-PRIORITY SUPPORT or UPDATES.", 'bestwebsoft' ); ?> <a target="_new" href="http://support.bestwebsoft.com/entries/53487136"><?php _e( "Learn more", 'bestwebsoft' ); ?></a></div>
792
+ </div>
793
  </div>
794
  <?php }
795
  }
805
 
806
  if ( isset( $plugin_options['display_settings_notice'] ) && 0 == $plugin_options['display_settings_notice'] )
807
  return;
808
+
809
  if ( isset( $_POST['bws_hide_settings_notice_' . $plugin_options_name ] ) && check_admin_referer( plugin_basename( __FILE__ ), 'bws_settings_nonce_name' ) ) {
810
  $plugin_options['display_settings_notice'] = 0;
811
  if ( $is_network_admin )
817
 
818
  if ( false == strrpos( $banner_url_or_slug, '/' ) ) {
819
  $banner_url_or_slug = '//ps.w.org/' . $banner_url_or_slug . '/assets/icon-128x128.png';
820
+ }
821
 
822
  $bws_plugin_banner_to_settings[] = array(
823
+ 'plugin_info' => $plugin_info,
824
  'plugin_options_name' => $plugin_options_name,
825
  'banner_url' => $banner_url_or_slug,
826
  'settings_url' => $settings_url,
864
 
865
  if ( isset( $return ) )
866
  return;
867
+
868
  if ( isset( $_POST['bws_hide_suggest_feature_banner_' . $plugin_options_name ] ) && check_admin_referer( $plugin_info['Name'], 'bws_settings_nonce_name' ) ) {
869
  $plugin_options['display_suggest_feature_banner'] = 0;
870
  if ( $is_network_admin )
881
  <div class="bws_banner_on_plugin_page bws_suggest_feature_banner">
882
  <div class="icon">
883
  <img title="" src="<?php echo esc_attr( $banner_url_or_slug ); ?>" alt="" />
884
+ </div>
885
  <div class="text">
886
  <strong><?php _e( 'Thank you for choosing', 'bestwebsoft' ); ?> <?php echo $plugin_info['Name']; ?> plugin!</strong><br />
887
+ <?php _e( "If you have a feature, suggestion or idea you'd like to see in the plugin, we'd love to hear about it!", 'bestwebsoft' ); ?>
888
+ <a target="_blank" href="http://support.bestwebsoft.com/hc/en-us/requests/new"><?php _e( 'Suggest a Feature', 'bestwebsoft' ); ?></a>
889
  </div>
890
  <form action="" method="post">
891
  <button class="notice-dismiss bws_hide_settings_notice" title="<?php _e( 'Close notice', 'bestwebsoft' ); ?>"></button>
901
  function bws_show_settings_notice() { ?>
902
  <div id="bws_save_settings_notice" class="updated fade below-h2" style="display:none;">
903
  <p>
904
+ <strong><?php _e( 'Notice', 'bestwebsoft' ); ?></strong>: <?php _e( "The plugin's settings have been changed.", 'bestwebsoft' ); ?>
905
  <a class="bws_save_anchor" href="#bws-submit-button"><?php _e( 'Save Changes', 'bestwebsoft' ); ?></a>
906
  </p>
907
  </div>
912
  function bws_hide_premium_options( $options ) {
913
  if ( ! isset( $options['hide_premium_options'] ) || ! is_array( $options['hide_premium_options'] ) )
914
  $options['hide_premium_options'] = array();
915
+
916
  $options['hide_premium_options'][] = get_current_user_id();
917
 
918
+ return array(
919
  'message' => __( 'You can always look at premium options by clicking on the "Show Pro features" in the "Go PRO" tab', 'bestwebsoft' ),
920
  'options' => $options );
921
  }
935
 
936
  if ( isset( $_GET['bws_activate_plugin'] ) && check_admin_referer( 'bws_activate_plugin' . $_GET['bws_activate_plugin'] ) ) {
937
 
938
+ $plugin = isset( $_GET['bws_activate_plugin'] ) ? $_GET['bws_activate_plugin'] : '';
939
+ $result = activate_plugin( $plugin, '', is_network_admin() );
940
  if ( is_wp_error( $result ) ) {
941
  if ( 'unexpected_output' == $result->get_error_code() ) {
942
  $redirect = self_admin_url( 'admin.php?page=bws_panel&error=true&charsout=' . strlen( $result->get_error_data() ) . '&plugin=' . $plugin );
972
  if ( ! function_exists ( 'bws_admin_enqueue_scripts' ) ) {
973
  function bws_admin_enqueue_scripts() {
974
  global $wp_version;
975
+ wp_enqueue_style( 'bws-admin-css', bws_menu_url( 'css/general_style.css' ) );
976
+ wp_enqueue_script( 'bws-admin-scripts', bws_menu_url( 'js/general_script.js' ), array( 'jquery' ) );
977
 
978
  if ( isset( $_GET['page'] ) && in_array( $_GET['page'], array( 'bws_panel', 'bws_themes', 'bws_system_status' ) ) ) {
979
+ wp_enqueue_style( 'bws_menu_style', bws_menu_url( 'css/style.css' ) );
980
+ wp_enqueue_script( 'bws_menu_script', bws_menu_url( 'js/bws_menu.js' ) );
981
  wp_enqueue_script( 'theme-install' );
982
  add_thickbox();
983
  wp_enqueue_script( 'plugin-install' );
997
  </style>
998
  </noscript>
999
  <?php }
1000
+ if ( 4.2 > $wp_version ) { ?>
 
 
1001
  <style type="text/css">
1002
  .bws_hide_settings_notice,
1003
  .bws_hide_premium_options {
1004
  width: 11px;
1005
  height: 11px;
1006
  border: none;
1007
+ background: url("<?php echo bws_menu_url( 'images/close_banner.png' ); ?>") no-repeat center center;
1008
  box-shadow: none;
1009
  float: right;
1010
  margin: 8px;
1024
  var bws_shortcode_button = {
1025
  'label': '<?php esc_attr_e( "Add BWS Shortcode", "bestwebsoft" ); ?>',
1026
  'title': '<?php esc_attr_e( "Add BWS Plugins Shortcode", "bestwebsoft" ); ?>',
1027
+ 'icon_url': '<?php echo bws_menu_url( "images/shortcode-icon.png" ); ?>',
1028
  'function_name': [
1029
  <?php foreach ( $bws_shortcode_list as $key => $value ) {
1030
  if ( isset( $value['js_function'] ) )
1031
+ echo "'" . $value['js_function'] . "',";
1032
  } ?>
1033
  ],
1034
  'wp_version' : '<?php echo $wp_version; ?>'
1042
  'actions' => array(
1043
  'click' => false,
1044
  'onload' => true
1045
+ ),
1046
  'content' => '<h3>' . __( 'Add shortcode', 'bestwebsoft' ) . '</h3><p>' . __( "Add BestWebSoft plugins' shortcodes using this button.", 'bestwebsoft' ) . '</p>',
1047
+ 'position' => array(
1048
  'edge' => 'right'
1049
  ),
1050
  'set_timeout' => 2000
1053
  $tooltip_args['css_selector'] = '.mce_add_bws_shortcode';
1054
  bws_add_tooltip_in_admin( $tooltip_args );
1055
  }
1056
+ }
1057
  }
1058
  }
1059
 
1060
  if ( ! function_exists ( 'bws_plugins_include_codemirror' ) ) {
1061
  function bws_plugins_include_codemirror() {
1062
+ wp_enqueue_style( 'codemirror.css', bws_menu_url( 'css/codemirror.css' ) );
1063
+ wp_enqueue_script( 'codemirror.js', bws_menu_url( 'js/codemirror.js' ), array( 'jquery' ) );
1064
  }
1065
  }
1066
 
1082
  if ( 3.3 > $wp_version )
1083
  return;
1084
  /* Default arguments */
1085
+ $tooltip_args_default = array(
1086
  'tooltip_id' => false,
1087
+ 'css_selector' => false,
1088
  'actions' => array(
1089
  'click' => true,
1090
  'onload' => false,
1091
+ ),
1092
  'buttons' => array(
1093
  'close' => array(
1094
  'type' => 'dismiss',
1096
  ),
1097
  ),
1098
  'position' => array(
1099
+ 'edge' => 'top',
1100
  'align' => 'center',
1101
+ 'pos-left' => 0,
1102
+ 'pos-top' => 0,
1103
+ 'zindex' => 10000
1104
  ),
1105
  'set_timeout' => 0
1106
  );
1166
  public function add_scripts() {
1167
  global $bstwbsftwppdtplgns_tooltip_script_add;
1168
  if ( ! isset( $bstwbsftwppdtplgns_tooltip_script_add ) ) {
1169
+ echo '<script type="text/javascript" src="' . bws_menu_url( 'js/bws_tooltip.js' ) . '"></script>';
1170
  $bstwbsftwppdtplgns_tooltip_script_add = true;
1171
  }
1172
  $tooltip_args = $this->tooltip_args; ?>
1183
 
1184
  if ( ! function_exists ( 'bws_form_restore_default_settings' ) ) {
1185
  function bws_form_restore_default_settings( $plugin_basename, $change_permission_attr = '' ) { ?>
1186
+ <form method="post" action="">
1187
  <p><?php _e( 'Restore all plugin settings to defaults', 'bestwebsoft' ); ?></p>
1188
+ <p>
1189
  <input <?php echo $change_permission_attr; ?> type="submit" class="button" value="<?php _e( 'Restore settings', 'bestwebsoft' ); ?>" />
1190
  </p>
1191
  <input type="hidden" name="bws_restore_default" value="submit" />
1200
  <p><?php _e( 'Are you sure you want to restore all settings by default?', 'bestwebsoft' ) ?></p>
1201
  <form method="post" action="">
1202
  <p>
1203
+ <button class="button button-primary" name="bws_restore_confirm"><?php _e( 'Yes, restore all settings', 'bestwebsoft' ) ?></button>
1204
  <button class="button" name="bws_restore_deny"><?php _e( 'No, go back to the settings page', 'bestwebsoft' ) ?></button>
1205
  <?php wp_nonce_field( $plugin_basename, 'bws_settings_nonce_name' ); ?>
1206
  </p>
1224
 
1225
  if ( ! function_exists( 'bws_add_buttons' ) ){
1226
  function bws_add_buttons( $plugin_array ) {
1227
+ $plugin_array['add_bws_shortcode'] = bws_menu_url( 'js/shortcode-button.js' );
1228
  return $plugin_array;
1229
  }
1230
  }
1238
 
1239
  /* Generate inline content for the popup window when the "bws shortcode" button is clicked */
1240
  if ( ! function_exists( 'bws_shortcode_media_button_popup' ) ) {
1241
+ function bws_shortcode_media_button_popup() {
1242
  global $bws_shortcode_list, $wp_version;
1243
  if ( $wp_version < '3.3' )
1244
  return;
1275
  if ( $wp_version < '3.9' ) { ?>
1276
  <script type="text/javascript">
1277
  (function($){
1278
+ $( '.bws_shortcode_insert' ).on( 'click',function() {
1279
  var shortcode = $( '#TB_ajaxContent #bws_shortcode_display' ).text();
1280
  if ( '' != shortcode ) {
1281
  /* insert shortcode to tinymce */
1283
  $( 'textarea#content' ).val( shortcode );
1284
  } else {
1285
  tinyMCE.execCommand( 'mceInsertContent', false, shortcode );
1286
+ }
1287
  }
1288
  /* close the thickbox after adding shortcode to editor */
1289
  self.parent.tb_remove();
1290
  });
1291
  })(jQuery);
1292
  </script>
1293
+ <?php }
1294
  }
1295
  }
1296
 
1301
 
1302
  $content = '<p><a href="' . $url . '" target="_blank">' . __( 'Visit Help Center', 'bestwebsoft' ) . '</a></p>';
1303
 
1304
+ $screen->add_help_tab(
1305
  array(
1306
  'id' => $args['id'] . '_help_tab',
1307
  'title' => __( 'FAQ', 'bestwebsoft' ),
1341
  if ( ! file_exists( $index_file ) ) {
1342
  if ( $f = fopen( $index_file, 'w+' ) )
1343
  fclose( $f );
1344
+ }
1345
  }
1346
 
1347
  $css_file = 'bws-custom-code.css';
1348
  $real_css_file = $folder . '/' . $css_file;
1349
 
1350
+ $php_file = 'bws-custom-code.php';
1351
+ $real_php_file = $folder . '/' . $php_file;
1352
 
1353
  $is_multisite = is_multisite();
1354
  if ( $is_multisite )
1357
  if ( isset( $_REQUEST['bws_update_custom_code'] ) && check_admin_referer( 'bws_update_' . $css_file ) ) {
1358
 
1359
  /* CSS */
1360
+ $newcontent_css = wp_unslash( $_POST['bws_newcontent_css'] );
1361
  if ( ! empty( $newcontent_css ) && isset( $_REQUEST['bws_custom_css_active'] ) ) {
1362
  if ( $is_multisite )
1363
  $bstwbsftwppdtplgns_options['custom_code'][ $blog_id ][ $css_file ] = $upload_dir['baseurl'] . '/bws-custom-code/' . $css_file;
1408
  }
1409
  } else {
1410
  $error .= __( 'Not enough permissions to create the file', 'bestwebsoft' ) . ' ' . $index_file . '. ';
1411
+ }
1412
 
1413
  if ( ! empty( $error ) )
1414
  $error .= ' <a href="https://codex.wordpress.org/Changing_File_Permissions" target="_blank">' . __( 'Learn more', 'bestwebsoft' ) . '</a>';
1440
 
1441
  if ( ! empty( $message ) ) { ?>
1442
  <div id="message" class="below-h2 updated notice is-dismissible"><p><?php echo $message; ?></p></div>
1443
+ <?php } ?>
1444
  <form action="" method="post">
1445
+ <?php foreach ( array( 'css', 'php' ) as $extension ) { ?>
1446
  <p>
1447
  <?php if ( 'css' == $extension )
1448
  _e( 'These styles will be added to the header on all pages of your site.', 'bestwebsoft' );
1460
  <textarea cols="70" rows="25" name="bws_newcontent_<?php echo $extension; ?>" id="bws_newcontent_<?php echo $extension; ?>"><?php if ( isset( ${"content_{$extension}"} ) ) echo ${"content_{$extension}"}; ?></textarea>
1461
  <p class="description">
1462
  <a href="<?php echo ( 'css' == $extension ) ? 'https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_started' : 'http://php.net/' ?>" target="_blank">
1463
+ <?php printf( __( 'Learn more about %s', 'bestwebsoft' ), strtoupper( $extension ) ); ?>
1464
  </a>
1465
+ </p>
1466
  <?php }
1467
  if ( ( ! file_exists( $real_css_file ) || is_writeable( $real_css_file ) ) && ( ! file_exists( $real_php_file ) || is_writeable( $real_php_file ) ) ) { ?>
1468
  <p class="submit">
1469
+ <input type="hidden" name="bws_update_custom_code" value="submit" />
1470
+ <?php submit_button( __( 'Save Changes', 'bestwebsoft' ), 'primary', 'submit', false );
1471
  wp_nonce_field( 'bws_update_' . $css_file ); ?>
1472
  </p>
1473
  <?php } else { ?>
1476
  '</a>' ); ?></em></p>
1477
  <?php } ?>
1478
  </form>
1479
+ <?php }
1480
  }
1481
 
1482
  if ( ! function_exists( 'bws_enqueue_custom_code_css' ) ) {
1516
  $blog_id = get_current_blog_id();
1517
 
1518
  if ( ! $is_multisite && ! empty( $bstwbsftwppdtplgns_options['custom_code']['bws-custom-code.php'] ) ) {
1519
+
1520
  if ( file_exists( $bstwbsftwppdtplgns_options['custom_code']['bws-custom-code.php'] ) ) {
1521
  if ( ! defined( 'BWS_GLOBAL' ) )
1522
  define( 'BWS_GLOBAL', true );
1561
  /* if empty ['bws_menu']['version'] - there is no other bws plugins - delete all */
1562
  if ( empty( $bstwbsftwppdtplgns_options['bws_menu']['version'] ) ) {
1563
  /* remove options */
1564
+ if ( $is_multisite )
1565
  delete_site_option( 'bstwbsftwppdtplgns_options' );
1566
  else
1567
  delete_option( 'bstwbsftwppdtplgns_options' );
1590
  rmdir( $folder );
1591
  }
1592
  }
1593
+ }
1594
+ }
1595
+ }
1596
+
1597
+ /**
1598
+ * Function to getting url to current BWS_Menu.
1599
+ *
1600
+ * @since 1.9.7
1601
+ */
1602
+ if ( ! function_exists ( 'bws_menu_url' ) ) {
1603
+ function bws_menu_url( $path = '' ) {
1604
+ $bws_menu_current_dir = str_replace( '\\', '/', dirname( __FILE__ ) );
1605
+ $bws_menu_abspath = str_replace( '\\', '/', ABSPATH );
1606
+ $bws_menu_current_url = site_url( str_replace( $bws_menu_abspath, '', $bws_menu_current_dir ) );
1607
+
1608
+ return sprintf( '%s/%s', $bws_menu_current_url, $path );
1609
  }
1610
  }
1611
 
bws_menu/bws_include.php CHANGED
@@ -4,12 +4,21 @@
4
  */
5
 
6
  if ( ! function_exists ( 'bws_include_init' ) ) {
7
- function bws_include_init( $base ) {
8
  global $bstwbsftwppdtplgns_options, $bstwbsftwppdtplgns_added_menu;
9
  if ( ! function_exists( 'get_plugin_data' ) )
10
  require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
11
 
12
- $bws_menu_info = get_plugin_data( dirname( dirname( plugin_dir_path( __FILE__ ) ) ) . '/' . dirname( $base ) . '/bws_menu/bws_menu.php' );
 
 
 
 
 
 
 
 
 
13
  $bws_menu_version = $bws_menu_info["Version"];
14
 
15
  if ( ! isset( $bstwbsftwppdtplgns_options ) ) {
@@ -42,14 +51,17 @@ if ( ! function_exists ( 'bws_include_init' ) ) {
42
  require_once( dirname( __FILE__ ) . '/bws_menu.php' );
43
  require_once( dirname( __FILE__ ) . '/bws_functions.php' );
44
  } else if ( ! isset( $bstwbsftwppdtplgns_added_menu ) ) {
 
45
  $all_plugins = get_plugins();
 
 
46
  foreach ( $bstwbsftwppdtplgns_options['bws_menu']['version'] as $key => $value ) {
47
- if ( array_key_exists( $key, $all_plugins ) ) {
48
- if ( $bws_menu_version < $value && is_plugin_active( $base ) ) {
49
- if ( ! isset( $plugin_with_newer_menu ) )
50
- $plugin_with_newer_menu = $key;
51
- elseif ( $bstwbsftwppdtplgns_options['bws_menu']['version'][ $plugin_with_newer_menu ] < $bstwbsftwppdtplgns_options['bws_menu']['version'][ $key ] )
52
- $plugin_with_newer_menu = $key;
53
  }
54
  } else {
55
  unset( $bstwbsftwppdtplgns_options['bws_menu']['version'][ $key ] );
@@ -59,24 +71,31 @@ if ( ! function_exists ( 'bws_include_init' ) ) {
59
  update_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
60
  }
61
  }
62
- if ( ! isset( $plugin_with_newer_menu ) )
63
- $plugin_with_newer_menu = $base;
64
- $plugin_with_newer_menu = explode( '/', $plugin_with_newer_menu );
65
- $wp_content_dir = defined( 'WP_CONTENT_DIR' ) ? basename( WP_CONTENT_DIR ) : 'wp-content';
66
 
67
- if ( file_exists( ABSPATH . $wp_content_dir . '/plugins/' . $plugin_with_newer_menu[0] . '/bws_menu/bws_menu.php' ) ) {
68
- require_once( ABSPATH . $wp_content_dir . '/plugins/' . $plugin_with_newer_menu[0] . '/bws_menu/bws_menu.php' );
 
 
 
 
 
 
 
 
 
69
  } else {
70
- require_once( dirname( __FILE__ ) . '/bws_menu.php' );
71
  }
72
 
73
- if ( file_exists( ABSPATH . $wp_content_dir . '/plugins/' . $plugin_with_newer_menu[0] . '/bws_menu/bws_functions.php' ) ) {
74
- require_once( ABSPATH . $wp_content_dir . '/plugins/' . $plugin_with_newer_menu[0] . '/bws_menu/bws_functions.php' );
 
75
  } else {
 
76
  require_once( dirname( __FILE__ ) . '/bws_functions.php' );
77
  }
78
 
79
  $bstwbsftwppdtplgns_added_menu = true;
80
- }
81
  }
82
  }
4
  */
5
 
6
  if ( ! function_exists ( 'bws_include_init' ) ) {
7
+ function bws_include_init( $base, $bws_menu_source = 'plugins' ) {
8
  global $bstwbsftwppdtplgns_options, $bstwbsftwppdtplgns_added_menu;
9
  if ( ! function_exists( 'get_plugin_data' ) )
10
  require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
11
 
12
+ $wp_content_dir = defined( 'WP_CONTENT_DIR' ) ? WP_CONTENT_DIR : ABSPATH . 'wp-content';
13
+ $wp_plugins_dir = defined( 'WP_PLUGIN_DIR' ) ? WP_PLUGIN_DIR : $wp_content_dir . '/plugins';
14
+
15
+ if ( $bws_menu_source == 'plugins' ) {
16
+ $bws_menu_dir = $wp_plugins_dir . '/' . dirname( $base ) . '/bws_menu/bws_menu.php';
17
+ } else {
18
+ $bws_menu_dir = $wp_content_dir . '/themes/' . $base . '/inc/bws_menu/bws_menu.php';
19
+ }
20
+
21
+ $bws_menu_info = get_plugin_data( $bws_menu_dir );
22
  $bws_menu_version = $bws_menu_info["Version"];
23
 
24
  if ( ! isset( $bstwbsftwppdtplgns_options ) ) {
51
  require_once( dirname( __FILE__ ) . '/bws_menu.php' );
52
  require_once( dirname( __FILE__ ) . '/bws_functions.php' );
53
  } else if ( ! isset( $bstwbsftwppdtplgns_added_menu ) ) {
54
+
55
  $all_plugins = get_plugins();
56
+ $all_themes = wp_get_themes();
57
+
58
  foreach ( $bstwbsftwppdtplgns_options['bws_menu']['version'] as $key => $value ) {
59
+ if ( array_key_exists( $key, $all_plugins ) || array_key_exists( $key, $all_themes ) ) {
60
+ if ( $bws_menu_version < $value && ( is_plugin_active( $key ) || preg_match( '|' . $key . '$|', get_template_directory() ) ) ) {
61
+ if ( ! isset( $product_with_newer_menu ) )
62
+ $product_with_newer_menu = $key;
63
+ elseif ( $bstwbsftwppdtplgns_options['bws_menu']['version'][ $product_with_newer_menu ] < $bstwbsftwppdtplgns_options['bws_menu']['version'][ $key ] )
64
+ $product_with_newer_menu = $key;
65
  }
66
  } else {
67
  unset( $bstwbsftwppdtplgns_options['bws_menu']['version'][ $key ] );
71
  update_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
72
  }
73
  }
 
 
 
 
74
 
75
+ if ( ! isset( $product_with_newer_menu ) )
76
+ $product_with_newer_menu = $base;
77
+
78
+ $folder_with_newer_menu = explode( '/', $product_with_newer_menu );
79
+
80
+ if ( array_key_exists( $product_with_newer_menu, $all_plugins ) ) {
81
+ $bws_menu_source = 'plugins';
82
+ $bws_menu_new_dir = $wp_plugins_dir . '/' . $folder_with_newer_menu[0];
83
+ } else if ( array_key_exists( $product_with_newer_menu, $all_themes ) ) {
84
+ $bws_menu_source = 'themes';
85
+ $bws_menu_new_dir = $wp_content_dir . '/themes/' . $folder_with_newer_menu[0] . '/inc';
86
  } else {
87
+ $bws_menu_new_dir = '';
88
  }
89
 
90
+ if ( file_exists( $bws_menu_new_dir . '/bws_menu/bws_functions.php' ) ) {
91
+ require_once( $bws_menu_new_dir . '/bws_menu/bws_functions.php' );
92
+ require_once( $bws_menu_new_dir . '/bws_menu/bws_menu.php' );
93
  } else {
94
+ require_once( dirname( __FILE__ ) . '/bws_menu.php' );
95
  require_once( dirname( __FILE__ ) . '/bws_functions.php' );
96
  }
97
 
98
  $bstwbsftwppdtplgns_added_menu = true;
99
+ }
100
  }
101
  }
bws_menu/bws_menu.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  * Function for displaying BestWebSoft menu
4
- * Version: 1.9.2
5
  */
6
 
7
  if ( ! function_exists ( 'bws_admin_enqueue_scripts' ) )
@@ -10,7 +10,7 @@ if ( ! function_exists ( 'bws_admin_enqueue_scripts' ) )
10
  if ( ! function_exists( 'bws_add_menu_render' ) ) {
11
  function bws_add_menu_render() {
12
  global $wpdb, $wp_version, $bws_plugin_info, $bstwbsftwppdtplgns_options;
13
- $error = $message = $bwsmn_form_email = '';
14
 
15
  if ( 'bws_panel' == $_GET['page'] ) {
16
 
@@ -18,10 +18,10 @@ if ( ! function_exists( 'bws_add_menu_render' ) ) {
18
  require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
19
 
20
  /* get $bws_plugins */
21
- require_once( dirname( __FILE__ ) . '/product_list.php' );
22
 
23
  $all_plugins = get_plugins();
24
- $active_plugins = get_option( 'active_plugins' );
25
  $sitewide_active_plugins = ( function_exists( 'is_multisite' ) && is_multisite() ) ? get_site_option( 'active_sitewide_plugins' ) : array();
26
  $update_availible_all = get_site_transient( 'update_plugins' );
27
 
@@ -29,7 +29,7 @@ if ( ! function_exists( 'bws_add_menu_render' ) ) {
29
 
30
  if ( ( isset( $_GET['sub'] ) && 'installed' == $_GET['sub'] ) || ! isset( $_GET['sub'] ) ) {
31
  $bws_plugins_update_availible = $bws_plugins_expired = array();
32
- foreach ( $bws_plugins as $key_plugin => $value_plugin ) {
33
 
34
  foreach ( $value_plugin['category'] as $category_key ) {
35
  $bws_plugins_category[ $category_key ]['count'] = isset( $bws_plugins_category[ $category_key ]['count'] ) ? $bws_plugins_category[ $category_key ]['count'] + 1 : 1;
@@ -37,14 +37,14 @@ if ( ! function_exists( 'bws_add_menu_render' ) ) {
37
 
38
  $is_installed = array_key_exists( $key_plugin, $all_plugins );
39
  $is_pro_installed = false;
40
- if ( isset( $value_plugin['pro_version'] ) ) {
41
  $is_pro_installed = array_key_exists( $value_plugin['pro_version'], $all_plugins );
42
  }
43
  /* check update_availible */
44
- if ( $is_pro_installed && array_key_exists( $value_plugin['pro_version'], $update_availible_all->response ) ) {
45
  unset( $bws_plugins[ $key_plugin ] );
46
  $value_plugin['update_availible'] = $value_plugin['pro_version'];
47
- $bws_plugins_update_availible[ $key_plugin ] = $value_plugin;
48
  } else if ( $is_installed && array_key_exists( $key_plugin, $update_availible_all->response ) ) {
49
  unset( $bws_plugins[ $key_plugin ] );
50
  $value_plugin['update_availible'] = $key_plugin;
@@ -60,20 +60,20 @@ if ( ! function_exists( 'bws_add_menu_render' ) ) {
60
  }
61
  $bws_plugins = $bws_plugins_update_availible + $bws_plugins_expired + $bws_plugins;
62
  } else {
63
- foreach ( $bws_plugins as $key_plugin => $value_plugin ) {
64
  foreach ( $value_plugin['category'] as $category_key ) {
65
  $bws_plugins_category[ $category_key ]['count'] = isset( $bws_plugins_category[ $category_key ]['count'] ) ? $bws_plugins_category[ $category_key ]['count'] + 1 : 1;
66
  }
67
  }
68
  }
69
 
70
- /*** membership ***/
71
  $bws_license_plugin = 'bws_get_list_for_membership';
72
  $bws_license_key = isset( $bstwbsftwppdtplgns_options[ $bws_license_plugin ] ) ? $bstwbsftwppdtplgns_options[ $bws_license_plugin ] : '';
73
  $update_membership_list = true;
74
 
75
  if ( isset( $_POST['bws_license_key'] ) )
76
- $bws_license_key = stripslashes( esc_html( trim( $_POST['bws_license_key'] ) ) );
77
 
78
  if ( isset( $_SESSION['bws_membership_time_check'] ) && isset( $_SESSION['bws_membership_list'] ) && $_SESSION['bws_membership_time_check'] < strtotime( '+12 hours' ) ) {
79
  $update_membership_list = false;
@@ -82,11 +82,11 @@ if ( ! function_exists( 'bws_add_menu_render' ) ) {
82
 
83
  if ( ( $update_membership_list && ! empty( $bws_license_key ) ) || ( isset( $_POST['bws_license_submit'] ) && check_admin_referer( plugin_basename(__FILE__), 'bws_license_nonce_name' ) ) ) {
84
 
85
- if ( '' != $bws_license_key ) {
86
  if ( strlen( $bws_license_key ) != 18 ) {
87
  $error = __( 'Wrong license key', 'bestwebsoft' );
88
  } else {
89
-
90
  if ( isset( $bstwbsftwppdtplgns_options['go_pro'][ $bws_license_plugin ]['count'] ) && $bstwbsftwppdtplgns_options['go_pro'][ $bws_license_plugin ]['time'] > ( time() - (24 * 60 * 60) ) ) {
91
  $bstwbsftwppdtplgns_options['go_pro'][ $bws_license_plugin ]['count'] = $bstwbsftwppdtplgns_options['go_pro'][ $bws_license_plugin ]['count'] + 1;
92
  } else {
@@ -111,7 +111,7 @@ if ( ! function_exists( 'bws_add_menu_render' ) ) {
111
  if ( is_array( $response ) && !empty( $response ) ) {
112
  foreach ( $response as $key => $value ) {
113
  if ( "wrong_license_key" == $value->package ) {
114
- $error = __( "Wrong license key", 'bestwebsoft' );
115
  } elseif ( "wrong_domain" == $value->package ) {
116
  $error = __( 'This license key is bind to another website. Change it via personal Client Area.', 'bestwebsoft' ) . '<a target="_blank" href="http://bestwebsoft.com/wp-admin/admin.php?page=client-area">' . __( 'Log in', 'bestwebsoft' ) . '</a>';
117
  } elseif ( "you_are_banned" == $value->package ) {
@@ -123,23 +123,23 @@ if ( ! function_exists( 'bws_add_menu_render' ) ) {
123
  } elseif ( is_array( $value->package ) && ! empty( $value->package ) ) {
124
  $plugins_array = $_SESSION['bws_membership_list'] = $value->package;
125
  $_SESSION['bws_membership_time_check'] = strtotime( 'now' );
126
-
127
  if ( $bws_license_key == $bstwbsftwppdtplgns_options[ $bws_license_plugin ] ) {
128
  $message = __( 'The license key is valid.', 'bestwebsoft' );
129
  if ( isset( $value->time_out ) && $value->time_out != '' )
130
  $message .= ' ' . __( 'Your license will expire on', 'bestwebsoft' ) . ' ' . $value->time_out . '.';
131
  } else {
132
  $message = __( 'Congratulations! Pro Membership license is successfully activated.', 'bestwebsoft' );
133
- }
134
 
135
- $bstwbsftwppdtplgns_options[ $bws_license_plugin ] = $bws_license_key;
136
  }
137
  }
138
  } else {
139
- $error = __( "Something went wrong. Try again later or upload the plugin manually. We are sorry for inconvenience.", 'bestwebsoft' );
140
  }
141
  }
142
-
143
  if ( is_multisite() )
144
  update_site_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
145
  else
@@ -148,7 +148,7 @@ if ( ! function_exists( 'bws_add_menu_render' ) ) {
148
  } else {
149
  $error = __( "Please enter your license key.", 'bestwebsoft' );
150
  }
151
- }
152
  }
153
 
154
  if ( 'bws_system_status' == $_GET['page'] ) {
@@ -217,7 +217,7 @@ if ( ! function_exists( 'bws_add_menu_render' ) ) {
217
  else
218
  $system_info['inactive_plugins'][ $plugin['Name'] ] = $plugin['Version'];
219
  }
220
-
221
 
222
  if ( ( isset( $_REQUEST['bwsmn_form_submit'] ) && check_admin_referer( plugin_basename(__FILE__), 'bwsmn_nonce_submit' ) ) || ( isset( $_REQUEST['bwsmn_form_submit_custom_email'] ) && check_admin_referer( plugin_basename(__FILE__), 'bwsmn_nonce_submit_custom_email' ) ) ) {
223
  if ( isset( $_REQUEST['bwsmn_form_email'] ) ) {
@@ -269,10 +269,10 @@ if ( ! function_exists( 'bws_add_menu_render' ) ) {
269
  }
270
  } ?>
271
  <div class="bws-wrap">
272
- <div class="bws-header">
273
  <div class="bws-title">
274
  <a href="<?php echo self_admin_url( 'admin.php?page=bws_panel' ); ?>">
275
- <img class="bws-logo" src="<?php echo plugins_url( 'images/bestwebsoft-logo-white.svg', __FILE__ ); ?>" />
276
  BestWebSoft
277
  <span>panel</span>
278
  </a>
@@ -284,18 +284,18 @@ if ( ! function_exists( 'bws_add_menu_render' ) ) {
284
  </div>
285
  <div class="bws-help-links-wrapper">
286
  <a <?php if ( 'bws_system_status' == $_GET['page'] ) echo ' class="bws-nav-tab-active"'; ?> href="<?php echo self_admin_url( 'admin.php?page=bws_system_status' ); ?>"><?php _e( 'System status', 'bestwebsoft' ); ?></a>
287
- <a href="<?php echo esc_url( 'http://support.bestwebsoft.com/home' ); ?>" target="_blank"><?php _e( 'Support', 'bestwebsoft' ); ?></a>
288
- <a href="<?php echo esc_url( 'http://bestwebsoft.com/wp-admin/admin.php?page=client-area' ); ?>" target="_blank" title="<?php _e( 'Manage purchased licenses & subscriptions', 'bestwebsoft' ); ?>"><?php _e( 'Client Area', 'bestwebsoft' ); ?></a>
289
- </div>
290
  <div class="clear"></div>
291
  </div>
292
  <?php if ( 'bws_panel' == $_GET['page'] && ! isset( $_POST['bws_plugin_action_submit'] ) ) { ?>
293
  <div class="bws-membership-wrap">
294
  <div class="bws-membership-backround"></div>
295
- <div class="bws-membership">
296
- <div class="bws-membership-title"><?php printf( __( 'Get Access to %s+ Premium Plugins', 'bestwebsoft' ), '30' ); ?></div>
297
  <form class="bws-membership-form" method="post" action="">
298
- <span class="bws-membership-link"><a target="_blank" href="http://bestwebsoft.com/membership/"><?php _e( 'Subscribe to Pro Membership', 'bestwebsoft' ); ?></a> <?php _e( 'or', 'bestwebsoft' ); ?></span>
299
  <?php if ( isset( $bstwbsftwppdtplgns_options['go_pro'][ $bws_license_plugin ]['count'] ) &&
300
  '5' < $bstwbsftwppdtplgns_options['go_pro'][ $bws_license_plugin ]['count'] &&
301
  $bstwbsftwppdtplgns_options['go_pro'][ $bws_license_plugin ]['time'] > ( time() - ( 24 * 60 * 60 ) ) ) { ?>
@@ -303,9 +303,9 @@ if ( ! function_exists( 'bws_add_menu_render' ) ) {
303
  <input disabled="disabled" type="text" name="bws_license_key" value="<?php echo $bws_license_key; ?>" />
304
  <div class="bws_error"><?php _e( "Unfortunately, you have exceeded the number of available tries per day.", 'bestwebsoft' ); ?></div>
305
  </div>
306
- <input disabled="disabled" type="submit" class="bws-button" value="<?php _e( 'Check license key', 'bestwebsoft' ); ?>" />
307
  <?php } else { ?>
308
- <div class="bws_form_input_wrap">
309
  <input <?php if ( "" != $error ) echo "class=\"bws_input_error\""; ?> type="text" placeholder="<?php _e( 'Enter your license key', 'bestwebsoft' ); ?>" maxlength="100" name="bws_license_key" value="<?php echo $bws_license_key; ?>" />
310
  <div class="bws_error" <?php if ( "" == $error ) echo "style=\"display:none\""; ?>><?php echo $error; ?></div>
311
  </div>
@@ -315,15 +315,15 @@ if ( ! function_exists( 'bws_add_menu_render' ) ) {
315
  <input type="submit" class="bws-button" value="<?php _e( 'Activate', 'bestwebsoft' ); ?>" />
316
  <?php } else { ?>
317
  <input type="submit" class="bws-button" value="<?php _e( 'Check license key', 'bestwebsoft' ); ?>" />
318
- <?php } ?>
319
- <?php wp_nonce_field( plugin_basename(__FILE__), 'bws_license_nonce_name' ); ?>
320
- <?php } ?>
321
  </form>
322
- <div class="clear"></div>
323
  </div>
324
- </div>
325
  <?php } ?>
326
- <div class="bws-wrap-content wrap">
327
  <?php if ( 'bws_panel' == $_GET['page'] ) { ?>
328
  <div class="updated notice is-dismissible inline" <?php if ( '' == $message || '' != $error ) echo "style=\"display:none\""; ?>><p><?php echo $message; ?></p></div>
329
  <h1>
@@ -350,12 +350,12 @@ if ( ! function_exists( 'bws_add_menu_render' ) ) {
350
 
351
  $url = $plugins_array[ $bws_license_plugin ]['link'] . '&download_from=5';
352
 
353
- echo '<p>' . __( "Downloading install package from", 'bestwebsoft' ) . ' ' . $url . '</p>';
354
 
355
  $uploadDir = wp_upload_dir();
356
  $zip_name = explode( '/', $bws_license_plugin );
357
-
358
- if ( !function_exists( 'curl_init' ) ) {
359
  $received_content = file_get_contents( $url );
360
  } else {
361
  $ch = curl_init();
@@ -364,7 +364,7 @@ if ( ! function_exists( 'bws_add_menu_render' ) ) {
364
  curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, true );
365
  $received_content = curl_exec( $ch );
366
  curl_close( $ch );
367
- }
368
 
369
  if ( ! $received_content ) {
370
  $error = __( "Failed to download the zip archive. Please, upload the plugin manually", 'bestwebsoft' );
@@ -410,18 +410,18 @@ if ( ! function_exists( 'bws_add_menu_render' ) ) {
410
  } else {
411
  if ( empty( $error ) )
412
  $error = __( "Failed to download the zip archive. Please, upload the plugin manually", 'bestwebsoft' );
413
-
414
  echo '<p class="error">' . $error . '</p>';
415
  echo '<p><a href="' . self_admin_url( 'admin.php?page=bws_panel' ) . '" target="_parent">' . __( 'Return to BestWebSoft Panel', 'bestwebsoft' ) . '</a></p>';
416
  }
417
- } else { ?>
418
  <ul class="subsubsub">
419
  <li><a <?php if ( !isset( $_GET['sub'] ) ) echo 'class="current" '; ?>href="admin.php?page=bws_panel<?php if ( 'all' != $plugin_category ) echo '&amp;category=' . $plugin_category; ?>"><?php _e( 'All', 'bestwebsoft' ); ?></a></li> |
420
  <li><a <?php if ( isset( $_GET['sub'] ) && 'installed' == $_GET['sub'] ) echo 'class="current" '; ?>href="admin.php?page=bws_panel&amp;sub=installed<?php if ( 'all' != $plugin_category ) echo '&amp;category=' . $plugin_category; ?>"><?php _e( 'Installed', 'bestwebsoft' ); ?></a></li> |
421
  <li><a <?php if ( isset( $_GET['sub'] ) && 'not_installed' == $_GET['sub'] ) echo 'class="current" '; ?>href="admin.php?page=bws_panel&amp;sub=not_installed<?php if ( 'all' != $plugin_category ) echo '&amp;category=' . $plugin_category; ?>"><?php _e( 'Not Installed', 'bestwebsoft' ); ?></a></li>
422
  </ul>
423
  <div class="clear"></div>
424
- <div class="bws-filter-top">
425
  <h2>
426
  <span class="bws-toggle-indicator"></span>
427
  <?php _e( 'Filter results', 'bestwebsoft' ); ?>
@@ -433,13 +433,13 @@ if ( ! function_exists( 'bws_add_menu_render' ) ) {
433
  <?php $sub_in_url = ( isset( $_GET['sub'] ) && in_array( $_GET['sub'], array( 'installed', 'not_installed' ) ) ) ? '&amp;sub=' . $_GET['sub'] : ''; ?>
434
  <a <?php if ( 'all' == $plugin_category ) echo ' class="bws-active"'; ?> href="<?php echo self_admin_url( 'admin.php?page=bws_panel' . $sub_in_url ); ?>"><?php _e( 'All', 'bestwebsoft' ); ?>
435
  <span>(<?php echo count( $bws_plugins ); ?>)</span>
436
- </a>
437
  </li>
438
  <?php foreach ( $bws_plugins_category as $category_key => $category_value ) { ?>
439
  <li>
440
  <a <?php if ( $category_key == $plugin_category ) echo ' class="bws-active"'; ?> href="<?php echo esc_url( self_admin_url( 'admin.php?page=bws_panel' . $sub_in_url . '&amp;category=' . $category_key ) ); ?>"><?php echo $category_value['name']; ?>
441
  <span>(<?php echo $category_value['count']; ?>)</span>
442
- </a>
443
  </li>
444
  <?php } ?>
445
  </ul>
@@ -447,14 +447,14 @@ if ( ! function_exists( 'bws_add_menu_render' ) ) {
447
  </div>
448
  <div class="bws-products">
449
  <?php $nothing_found = true;
450
- foreach ( $bws_plugins as $key_plugin => $value_plugin ) {
451
 
452
- if ( 'all' != $plugin_category && isset( $bws_plugins_category[ $plugin_category ] ) && ! in_array( $plugin_category, $value_plugin['category'] ) )
453
  continue;
454
 
455
  $key_plugin_explode = explode( '/', $key_plugin );
456
 
457
- $icon = isset( $value_plugin['icon'] ) ? $value_plugin['icon'] : '//ps.w.org/' . $key_plugin_explode[0] . '/assets/icon-128x128.png';
458
  $is_pro_isset = isset( $value_plugin['pro_version'] );
459
  $is_installed = array_key_exists( $key_plugin, $all_plugins );
460
  $is_active = in_array( $key_plugin, $active_plugins ) || isset( $sitewide_active_plugins[ $key_plugin ] );
@@ -467,7 +467,7 @@ if ( ! function_exists( 'bws_add_menu_render' ) ) {
467
 
468
  if ( ( isset( $_GET['sub'] ) && 'installed' == $_GET['sub'] && ! $is_pro_installed && ! $is_installed ) ||
469
  ( isset( $_GET['sub'] ) && 'not_installed' == $_GET['sub'] && ( $is_pro_installed || $is_installed ) ) )
470
- continue;
471
 
472
  $link_attr = isset( $value_plugin['install_url'] ) ? 'href="' . $value_plugin['install_url'] . '" target="_blank"' : 'href="' . esc_url( self_admin_url( 'plugin-install.php?tab=plugin-information&plugin=' . $key_plugin_explode[0] . '&from=import&TB_iframe=true&width=600&height=550' ) ) . '" class="thickbox open-plugin-details-modal"';
473
 
@@ -479,7 +479,7 @@ if ( ! function_exists( 'bws_add_menu_render' ) ) {
479
  <div class="bws_product_content">
480
  <div class="bws_product_title"><a <?php echo $link_attr; ?>><?php echo $value_plugin['name']; ?></a></div>
481
  <div class="bws-version">
482
- <?php
483
  if ( $is_pro_installed ) {
484
  echo '<span';
485
  if ( ! empty( $value_plugin['expired'] ) || ! empty( $value_plugin['update_availible'] ) )
@@ -489,9 +489,9 @@ if ( ! function_exists( 'bws_add_menu_render' ) ) {
489
  echo '<span';
490
  if ( ! empty( $value_plugin['expired'] ) || ! empty( $value_plugin['update_availible'] ) )
491
  echo ' class="bws-update-available"';
492
- echo '>v ' . $all_plugins[ $key_plugin ]['Version'] . '</span>';
493
  } else {
494
- echo '<span>' . __( 'Not installed', 'bestwebsoft' ) . '</span>';
495
  }
496
 
497
  if ( ! empty( $value_plugin['expired'] ) ) {
@@ -502,7 +502,7 @@ if ( ! function_exists( 'bws_add_menu_render' ) ) {
502
  } ?>
503
  </div>
504
  <div class="bws_product_description">
505
- <?php echo ( strlen( $value_plugin['description'] ) > 100 ) ? substr( $value_plugin['description'], 0, 100 ) . '...' : $value_plugin['description']; ?>
506
  </div>
507
  <div class="bws_product_links">
508
  <?php if ( $is_active || $is_pro_active ) {
@@ -528,7 +528,7 @@ if ( ! function_exists( 'bws_add_menu_render' ) ) {
528
  <?php } else { ?>
529
  <a class="bws_settings" href="<?php echo $bws_plugins[ $key_plugin ]["settings"]; ?>"><?php _e( 'Settings', 'bestwebsoft' ); ?></a>
530
  <?php }
531
- } else {
532
  if ( $is_pro_installed ) { ?>
533
  <a class="button button-secondary" href="<?php echo wp_nonce_url( 'admin.php?page=bws_panel&amp;bws_activate_plugin=' . $value_plugin['pro_version'], 'bws_activate_plugin' . $value_plugin['pro_version'] ); ?>" title="<?php _e( 'Activate this plugin', 'bestwebsoft' ); ?>"><?php _e( 'Activate', 'bestwebsoft' ); ?></a>
534
  <?php } elseif ( ! empty( $plugins_array ) && isset( $value_plugin['pro_version'] ) && array_key_exists( $value_plugin['pro_version'], $plugins_array ) ) { ?>
@@ -540,15 +540,15 @@ if ( ! function_exists( 'bws_add_menu_render' ) ) {
540
  </form>
541
  <?php } elseif ( $is_installed ) { ?>
542
  <a class="button button-secondary" href="<?php echo wp_nonce_url( 'admin.php?page=bws_panel&amp;bws_activate_plugin=' . $key_plugin, 'bws_activate_plugin' . $key_plugin ); ?>" title="<?php _e( 'Activate this plugin', 'bestwebsoft' ); ?>"><?php _e( 'Activate', 'bestwebsoft' ); ?></a>
543
- <?php } else {
544
- $install_url = isset( $value_plugin['install_url'] ) ? $value_plugin['install_url'] : esc_url( self_admin_url( 'plugin-install.php?tab=search&type=term&s=' . str_replace( ' ', '+', $value_plugin['name'] ) . '+BestWebSoft&plugin-search-input=Search+Plugins' ) ); ?>
545
  <a class="button button-secondary" href="<?php echo $install_url; ?>" title="<?php _e( 'Install this plugin', 'bestwebsoft' ); ?>" target="_blank"><?php _e( 'Install Now', 'bestwebsoft' ); ?></a>
546
  <?php }
547
  } ?>
548
  </div>
549
  </div>
550
  <div class="clear"></div>
551
- </div>
552
  <?php }
553
  if ( $nothing_found ) { ?>
554
  <p class="description"><?php _e( 'Nothing found. Try another criteria.', 'bestwebsoft' ); ?></p>
@@ -562,22 +562,22 @@ if ( ! function_exists( 'bws_add_menu_render' ) ) {
562
  <?php $sub_in_url = ( isset( $_GET['sub'] ) && in_array( $_GET['sub'], array( 'installed', 'not_installed' ) ) ) ? '&amp;sub=' . $_GET['sub'] : ''; ?>
563
  <a <?php if ( 'all' == $plugin_category ) echo ' class="bws-active"'; ?> href="<?php echo self_admin_url( 'admin.php?page=bws_panel' . $sub_in_url ); ?>"><?php _e( 'All', 'bestwebsoft' ); ?>
564
  <span>(<?php echo count( $bws_plugins ); ?>)</span>
565
- </a>
566
  </li>
567
  <?php foreach ( $bws_plugins_category as $category_key => $category_value ) { ?>
568
  <li>
569
  <a <?php if ( $category_key == $plugin_category ) echo ' class="bws-active"'; ?> href="<?php echo esc_url( self_admin_url( 'admin.php?page=bws_panel' . $sub_in_url . '&amp;category=' . $category_key ) ); ?>"><?php echo $category_value['name']; ?>
570
  <span>(<?php echo $category_value['count']; ?>)</span>
571
- </a>
572
  </li>
573
  <?php } ?>
574
  </ul>
575
  </div>
576
- </div><!-- #bws-filter-wrapper -->
577
  <div class="clear"></div>
578
  <?php }
579
- } elseif ( 'bws_themes' == $_GET['page'] ) {
580
- require_once( dirname( __FILE__ ) . '/product_list.php' ); ?>
581
  <h1><?php _e( 'Themes', 'bestwebsoft' ); ?></h1>
582
  <div id="availablethemes" class="bws-availablethemes">
583
  <?php if ( $wp_version < '3.9' ) {
@@ -585,7 +585,7 @@ if ( ! function_exists( 'bws_add_menu_render' ) ) {
585
  <div class="available-theme installable-theme"><?php
586
  $installed_theme = wp_get_theme( $theme->slug ); ?>
587
  <a class="screenshot" href="<?php echo esc_url( $theme->href ); ?>">
588
- <img src="<?php echo plugins_url( "icons/themes/" , __FILE__ ) . $theme->slug . '.png'; ?>" width='150' />
589
  </a>
590
  <h3><?php echo $theme->name; ?></h3>
591
  <div class="theme-author"><?php printf( __( 'By %s', 'bestwebsoft' ), 'BestWebSoft' ); ?></div>
@@ -606,14 +606,14 @@ if ( ! function_exists( 'bws_add_menu_render' ) ) {
606
  $installed_theme = wp_get_theme( $theme->slug ); ?>
607
  <div class="theme" tabindex="0">
608
  <div class="theme-screenshot">
609
- <img src="<?php echo plugins_url( "icons/themes/" , __FILE__ ) . $theme->slug . '.png'; ?>" alt="" />
610
  </div>
611
  <div class="theme-author"><?php printf( __( 'By %s', 'bestwebsoft' ), 'BestWebSoft' ); ?></div>
612
  <h3 class="theme-name"><?php echo $theme->name; ?></h3>
613
  <div class="theme-actions">
614
  <a class="button button-secondary preview install-theme-preview" href="<?php echo $theme->href; ?>" target="_blank"><?php esc_html_e( 'Learn More', 'bestwebsoft' ); ?></a>
615
  </div>
616
- <?php if ( $installed_theme->exists() ) {
617
  if ( $wp_version < '4.6' ) { ?>
618
  <div class="theme-installed"><?php _e( 'Already Installed', 'bestwebsoft' ); ?></div>
619
  <?php } else { ?>
@@ -628,7 +628,7 @@ if ( ! function_exists( 'bws_add_menu_render' ) ) {
628
  <?php } ?>
629
  <p><a class="bws_browse_link" href="http://bestweblayout.com/categories/themes/" target="_blank"><?php _e( 'Browse Free WordPress Themes', 'bestwebsoft' ); ?> <span class="dashicons dashicons-arrow-right-alt2"></span></a></p>
630
  </div>
631
- <?php } elseif ( 'bws_system_status' == $_GET['page'] ) { ?>
632
  <h1><?php _e( 'System status', 'bestwebsoft' ); ?></h1>
633
  <div class="updated fade notice is-dismissible inline" <?php if ( ! ( isset( $_REQUEST['bwsmn_form_submit'] ) || isset( $_REQUEST['bwsmn_form_submit_custom_email'] ) ) || $error != "" ) echo "style=\"display:none\""; ?>><p><strong><?php echo $message; ?></strong></p></div>
634
  <div class="error" <?php if ( "" == $error ) echo "style=\"display:none\""; ?>><p><strong><?php echo $error; ?></strong></p></div>
@@ -685,7 +685,7 @@ if ( ! function_exists( 'bws_add_menu_render' ) ) {
685
  } ?>
686
  </tbody>
687
  </table>
688
- <div class="clear"></div>
689
  </div>
690
  <?php } ?>
691
  </div>
@@ -696,7 +696,10 @@ if ( ! function_exists( 'bws_add_menu_render' ) ) {
696
  if ( ! function_exists( 'bws_get_banner_array' ) ) {
697
  function bws_get_banner_array() {
698
  global $bstwbsftwppdtplgns_banner_array;
699
- $bstwbsftwppdtplgns_banner_array = array(
 
 
 
700
  array( 'crrntl_hide_banner_on_plugin_page', 'car-rental/car-rental.php', '1.0.0' ),
701
  array( 'lnkdn_hide_banner_on_plugin_page', 'bws-linkedin/bws-linkedin.php', '1.0.1' ),
702
  array( 'pntrst_hide_banner_on_plugin_page', 'bws-pinterest/bws-pinterest.php', '1.0.1' ),
@@ -704,7 +707,7 @@ if ( ! function_exists( 'bws_get_banner_array' ) ) {
704
  array( 'gglcptch_hide_banner_on_plugin_page', 'google-captcha/google-captcha.php', '1.18' ),
705
  array( 'mltlngg_hide_banner_on_plugin_page', 'multilanguage/multilanguage.php', '1.1.1' ),
706
  array( 'adsns_hide_banner_on_plugin_page', 'adsense-plugin/adsense-plugin.php', '1.36' ),
707
- array( 'vstrsnln_hide_banner_on_plugin_page', 'visitors-online/visitors-online.php', '0.2' ),
708
  array( 'cstmsrch_hide_banner_on_plugin_page', 'custom-search-plugin/custom-search-plugin.php', '1.28' ),
709
  array( 'prtfl_hide_banner_on_plugin_page', 'portfolio/portfolio.php', '2.33' ),
710
  array( 'rlt_hide_banner_on_plugin_page', 'realty/realty.php', '1.0.0' ),
1
  <?php
2
  /*
3
  * Function for displaying BestWebSoft menu
4
+ * Version: 1.9.7
5
  */
6
 
7
  if ( ! function_exists ( 'bws_admin_enqueue_scripts' ) )
10
  if ( ! function_exists( 'bws_add_menu_render' ) ) {
11
  function bws_add_menu_render() {
12
  global $wpdb, $wp_version, $bws_plugin_info, $bstwbsftwppdtplgns_options;
13
+ $error = $message = $bwsmn_form_email = '';
14
 
15
  if ( 'bws_panel' == $_GET['page'] ) {
16
 
18
  require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
19
 
20
  /* get $bws_plugins */
21
+ require( dirname( __FILE__ ) . '/product_list.php' );
22
 
23
  $all_plugins = get_plugins();
24
+ $active_plugins = get_option( 'active_plugins' );
25
  $sitewide_active_plugins = ( function_exists( 'is_multisite' ) && is_multisite() ) ? get_site_option( 'active_sitewide_plugins' ) : array();
26
  $update_availible_all = get_site_transient( 'update_plugins' );
27
 
29
 
30
  if ( ( isset( $_GET['sub'] ) && 'installed' == $_GET['sub'] ) || ! isset( $_GET['sub'] ) ) {
31
  $bws_plugins_update_availible = $bws_plugins_expired = array();
32
+ foreach ( $bws_plugins as $key_plugin => $value_plugin ) {
33
 
34
  foreach ( $value_plugin['category'] as $category_key ) {
35
  $bws_plugins_category[ $category_key ]['count'] = isset( $bws_plugins_category[ $category_key ]['count'] ) ? $bws_plugins_category[ $category_key ]['count'] + 1 : 1;
37
 
38
  $is_installed = array_key_exists( $key_plugin, $all_plugins );
39
  $is_pro_installed = false;
40
+ if ( isset( $value_plugin['pro_version'] ) ) {
41
  $is_pro_installed = array_key_exists( $value_plugin['pro_version'], $all_plugins );
42
  }
43
  /* check update_availible */
44
+ if ( $is_pro_installed && array_key_exists( $value_plugin['pro_version'], $update_availible_all->response ) ) {
45
  unset( $bws_plugins[ $key_plugin ] );
46
  $value_plugin['update_availible'] = $value_plugin['pro_version'];
47
+ $bws_plugins_update_availible[ $key_plugin ] = $value_plugin;
48
  } else if ( $is_installed && array_key_exists( $key_plugin, $update_availible_all->response ) ) {
49
  unset( $bws_plugins[ $key_plugin ] );
50
  $value_plugin['update_availible'] = $key_plugin;
60
  }
61
  $bws_plugins = $bws_plugins_update_availible + $bws_plugins_expired + $bws_plugins;
62
  } else {
63
+ foreach ( $bws_plugins as $key_plugin => $value_plugin ) {
64
  foreach ( $value_plugin['category'] as $category_key ) {
65
  $bws_plugins_category[ $category_key ]['count'] = isset( $bws_plugins_category[ $category_key ]['count'] ) ? $bws_plugins_category[ $category_key ]['count'] + 1 : 1;
66
  }
67
  }
68
  }
69
 
70
+ /*** membership ***/
71
  $bws_license_plugin = 'bws_get_list_for_membership';
72
  $bws_license_key = isset( $bstwbsftwppdtplgns_options[ $bws_license_plugin ] ) ? $bstwbsftwppdtplgns_options[ $bws_license_plugin ] : '';
73
  $update_membership_list = true;
74
 
75
  if ( isset( $_POST['bws_license_key'] ) )
76
+ $bws_license_key = stripslashes( esc_html( trim( $_POST['bws_license_key'] ) ) );
77
 
78
  if ( isset( $_SESSION['bws_membership_time_check'] ) && isset( $_SESSION['bws_membership_list'] ) && $_SESSION['bws_membership_time_check'] < strtotime( '+12 hours' ) ) {
79
  $update_membership_list = false;
82
 
83
  if ( ( $update_membership_list && ! empty( $bws_license_key ) ) || ( isset( $_POST['bws_license_submit'] ) && check_admin_referer( plugin_basename(__FILE__), 'bws_license_nonce_name' ) ) ) {
84
 
85
+ if ( '' != $bws_license_key ) {
86
  if ( strlen( $bws_license_key ) != 18 ) {
87
  $error = __( 'Wrong license key', 'bestwebsoft' );
88
  } else {
89
+
90
  if ( isset( $bstwbsftwppdtplgns_options['go_pro'][ $bws_license_plugin ]['count'] ) && $bstwbsftwppdtplgns_options['go_pro'][ $bws_license_plugin ]['time'] > ( time() - (24 * 60 * 60) ) ) {
91
  $bstwbsftwppdtplgns_options['go_pro'][ $bws_license_plugin ]['count'] = $bstwbsftwppdtplgns_options['go_pro'][ $bws_license_plugin ]['count'] + 1;
92
  } else {
111
  if ( is_array( $response ) && !empty( $response ) ) {
112
  foreach ( $response as $key => $value ) {
113
  if ( "wrong_license_key" == $value->package ) {
114
+ $error = __( "Wrong license key", 'bestwebsoft' );
115
  } elseif ( "wrong_domain" == $value->package ) {
116
  $error = __( 'This license key is bind to another website. Change it via personal Client Area.', 'bestwebsoft' ) . '<a target="_blank" href="http://bestwebsoft.com/wp-admin/admin.php?page=client-area">' . __( 'Log in', 'bestwebsoft' ) . '</a>';
117
  } elseif ( "you_are_banned" == $value->package ) {
123
  } elseif ( is_array( $value->package ) && ! empty( $value->package ) ) {
124
  $plugins_array = $_SESSION['bws_membership_list'] = $value->package;
125
  $_SESSION['bws_membership_time_check'] = strtotime( 'now' );
126
+
127
  if ( $bws_license_key == $bstwbsftwppdtplgns_options[ $bws_license_plugin ] ) {
128
  $message = __( 'The license key is valid.', 'bestwebsoft' );
129
  if ( isset( $value->time_out ) && $value->time_out != '' )
130
  $message .= ' ' . __( 'Your license will expire on', 'bestwebsoft' ) . ' ' . $value->time_out . '.';
131
  } else {
132
  $message = __( 'Congratulations! Pro Membership license is successfully activated.', 'bestwebsoft' );
133
+ }
134
 
135
+ $bstwbsftwppdtplgns_options[ $bws_license_plugin ] = $bws_license_key;
136
  }
137
  }
138
  } else {
139
+ $error = __( "Something went wrong. Try again later or upload the plugin manually. We are sorry for inconvenience.", 'bestwebsoft' );
140
  }
141
  }
142
+
143
  if ( is_multisite() )
144
  update_site_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
145
  else
148
  } else {
149
  $error = __( "Please enter your license key.", 'bestwebsoft' );
150
  }
151
+ }
152
  }
153
 
154
  if ( 'bws_system_status' == $_GET['page'] ) {
217
  else
218
  $system_info['inactive_plugins'][ $plugin['Name'] ] = $plugin['Version'];
219
  }
220
+
221
 
222
  if ( ( isset( $_REQUEST['bwsmn_form_submit'] ) && check_admin_referer( plugin_basename(__FILE__), 'bwsmn_nonce_submit' ) ) || ( isset( $_REQUEST['bwsmn_form_submit_custom_email'] ) && check_admin_referer( plugin_basename(__FILE__), 'bwsmn_nonce_submit_custom_email' ) ) ) {
223
  if ( isset( $_REQUEST['bwsmn_form_email'] ) ) {
269
  }
270
  } ?>
271
  <div class="bws-wrap">
272
+ <div class="bws-header">
273
  <div class="bws-title">
274
  <a href="<?php echo self_admin_url( 'admin.php?page=bws_panel' ); ?>">
275
+ <img class="bws-logo" src="<?php echo bws_menu_url( 'images/bestwebsoft-logo-white.svg' ); ?>" />
276
  BestWebSoft
277
  <span>panel</span>
278
  </a>
284
  </div>
285
  <div class="bws-help-links-wrapper">
286
  <a <?php if ( 'bws_system_status' == $_GET['page'] ) echo ' class="bws-nav-tab-active"'; ?> href="<?php echo self_admin_url( 'admin.php?page=bws_system_status' ); ?>"><?php _e( 'System status', 'bestwebsoft' ); ?></a>
287
+ <a href="<?php echo esc_url( 'http://support.bestwebsoft.com/home' ); ?>" target="_blank"><?php _e( 'Support', 'bestwebsoft' ); ?></a>
288
+ <a href="<?php echo esc_url( 'http://bestwebsoft.com/wp-admin/admin.php?page=client-area' ); ?>" target="_blank" title="<?php _e( 'Manage purchased licenses & subscriptions', 'bestwebsoft' ); ?>"><?php _e( 'Client Area', 'bestwebsoft' ); ?></a>
289
+ </div>
290
  <div class="clear"></div>
291
  </div>
292
  <?php if ( 'bws_panel' == $_GET['page'] && ! isset( $_POST['bws_plugin_action_submit'] ) ) { ?>
293
  <div class="bws-membership-wrap">
294
  <div class="bws-membership-backround"></div>
295
+ <div class="bws-membership">
296
+ <div class="bws-membership-title"><?php printf( __( 'Get Access to %s+ Premium Plugins', 'bestwebsoft' ), '30' ); ?></div>
297
  <form class="bws-membership-form" method="post" action="">
298
+ <span class="bws-membership-link"><a target="_blank" href="http://bestwebsoft.com/membership/"><?php _e( 'Subscribe to Pro Membership', 'bestwebsoft' ); ?></a> <?php _e( 'or', 'bestwebsoft' ); ?></span>
299
  <?php if ( isset( $bstwbsftwppdtplgns_options['go_pro'][ $bws_license_plugin ]['count'] ) &&
300
  '5' < $bstwbsftwppdtplgns_options['go_pro'][ $bws_license_plugin ]['count'] &&
301
  $bstwbsftwppdtplgns_options['go_pro'][ $bws_license_plugin ]['time'] > ( time() - ( 24 * 60 * 60 ) ) ) { ?>
303
  <input disabled="disabled" type="text" name="bws_license_key" value="<?php echo $bws_license_key; ?>" />
304
  <div class="bws_error"><?php _e( "Unfortunately, you have exceeded the number of available tries per day.", 'bestwebsoft' ); ?></div>
305
  </div>
306
+ <input disabled="disabled" type="submit" class="bws-button" value="<?php _e( 'Check license key', 'bestwebsoft' ); ?>" />
307
  <?php } else { ?>
308
+ <div class="bws_form_input_wrap">
309
  <input <?php if ( "" != $error ) echo "class=\"bws_input_error\""; ?> type="text" placeholder="<?php _e( 'Enter your license key', 'bestwebsoft' ); ?>" maxlength="100" name="bws_license_key" value="<?php echo $bws_license_key; ?>" />
310
  <div class="bws_error" <?php if ( "" == $error ) echo "style=\"display:none\""; ?>><?php echo $error; ?></div>
311
  </div>
315
  <input type="submit" class="bws-button" value="<?php _e( 'Activate', 'bestwebsoft' ); ?>" />
316
  <?php } else { ?>
317
  <input type="submit" class="bws-button" value="<?php _e( 'Check license key', 'bestwebsoft' ); ?>" />
318
+ <?php } ?>
319
+ <?php wp_nonce_field( plugin_basename(__FILE__), 'bws_license_nonce_name' ); ?>
320
+ <?php } ?>
321
  </form>
322
+ <div class="clear"></div>
323
  </div>
324
+ </div>
325
  <?php } ?>
326
+ <div class="bws-wrap-content wrap">
327
  <?php if ( 'bws_panel' == $_GET['page'] ) { ?>
328
  <div class="updated notice is-dismissible inline" <?php if ( '' == $message || '' != $error ) echo "style=\"display:none\""; ?>><p><?php echo $message; ?></p></div>
329
  <h1>
350
 
351
  $url = $plugins_array[ $bws_license_plugin ]['link'] . '&download_from=5';
352
 
353
+ echo '<p>' . __( "Downloading install package from", 'bestwebsoft' ) . ' ' . $url . '</p>';
354
 
355
  $uploadDir = wp_upload_dir();
356
  $zip_name = explode( '/', $bws_license_plugin );
357
+
358
+ if ( !function_exists( 'curl_init' ) ) {
359
  $received_content = file_get_contents( $url );
360
  } else {
361
  $ch = curl_init();
364
  curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, true );
365
  $received_content = curl_exec( $ch );
366
  curl_close( $ch );
367
+ }
368
 
369
  if ( ! $received_content ) {
370
  $error = __( "Failed to download the zip archive. Please, upload the plugin manually", 'bestwebsoft' );
410
  } else {
411
  if ( empty( $error ) )
412
  $error = __( "Failed to download the zip archive. Please, upload the plugin manually", 'bestwebsoft' );
413
+
414
  echo '<p class="error">' . $error . '</p>';
415
  echo '<p><a href="' . self_admin_url( 'admin.php?page=bws_panel' ) . '" target="_parent">' . __( 'Return to BestWebSoft Panel', 'bestwebsoft' ) . '</a></p>';
416
  }
417
+ } else { ?>
418
  <ul class="subsubsub">
419
  <li><a <?php if ( !isset( $_GET['sub'] ) ) echo 'class="current" '; ?>href="admin.php?page=bws_panel<?php if ( 'all' != $plugin_category ) echo '&amp;category=' . $plugin_category; ?>"><?php _e( 'All', 'bestwebsoft' ); ?></a></li> |
420
  <li><a <?php if ( isset( $_GET['sub'] ) && 'installed' == $_GET['sub'] ) echo 'class="current" '; ?>href="admin.php?page=bws_panel&amp;sub=installed<?php if ( 'all' != $plugin_category ) echo '&amp;category=' . $plugin_category; ?>"><?php _e( 'Installed', 'bestwebsoft' ); ?></a></li> |
421
  <li><a <?php if ( isset( $_GET['sub'] ) && 'not_installed' == $_GET['sub'] ) echo 'class="current" '; ?>href="admin.php?page=bws_panel&amp;sub=not_installed<?php if ( 'all' != $plugin_category ) echo '&amp;category=' . $plugin_category; ?>"><?php _e( 'Not Installed', 'bestwebsoft' ); ?></a></li>
422
  </ul>
423
  <div class="clear"></div>
424
+ <div class="bws-filter-top">
425
  <h2>
426
  <span class="bws-toggle-indicator"></span>
427
  <?php _e( 'Filter results', 'bestwebsoft' ); ?>
433
  <?php $sub_in_url = ( isset( $_GET['sub'] ) && in_array( $_GET['sub'], array( 'installed', 'not_installed' ) ) ) ? '&amp;sub=' . $_GET['sub'] : ''; ?>
434
  <a <?php if ( 'all' == $plugin_category ) echo ' class="bws-active"'; ?> href="<?php echo self_admin_url( 'admin.php?page=bws_panel' . $sub_in_url ); ?>"><?php _e( 'All', 'bestwebsoft' ); ?>
435
  <span>(<?php echo count( $bws_plugins ); ?>)</span>
436
+ </a>
437
  </li>
438
  <?php foreach ( $bws_plugins_category as $category_key => $category_value ) { ?>
439
  <li>
440
  <a <?php if ( $category_key == $plugin_category ) echo ' class="bws-active"'; ?> href="<?php echo esc_url( self_admin_url( 'admin.php?page=bws_panel' . $sub_in_url . '&amp;category=' . $category_key ) ); ?>"><?php echo $category_value['name']; ?>
441
  <span>(<?php echo $category_value['count']; ?>)</span>
442
+ </a>
443
  </li>
444
  <?php } ?>
445
  </ul>
447
  </div>
448
  <div class="bws-products">
449
  <?php $nothing_found = true;
450
+ foreach ( $bws_plugins as $key_plugin => $value_plugin ) {
451
 
452
+ if ( 'all' != $plugin_category && isset( $bws_plugins_category[ $plugin_category ] ) && ! in_array( $plugin_category, $value_plugin['category'] ) )
453
  continue;
454
 
455
  $key_plugin_explode = explode( '/', $key_plugin );
456
 
457
+ $icon = isset( $value_plugin['icon'] ) ? $value_plugin['icon'] : '//ps.w.org/' . $key_plugin_explode[0] . '/assets/icon-128x128.png';
458
  $is_pro_isset = isset( $value_plugin['pro_version'] );
459
  $is_installed = array_key_exists( $key_plugin, $all_plugins );
460
  $is_active = in_array( $key_plugin, $active_plugins ) || isset( $sitewide_active_plugins[ $key_plugin ] );
467
 
468
  if ( ( isset( $_GET['sub'] ) && 'installed' == $_GET['sub'] && ! $is_pro_installed && ! $is_installed ) ||
469
  ( isset( $_GET['sub'] ) && 'not_installed' == $_GET['sub'] && ( $is_pro_installed || $is_installed ) ) )
470
+ continue;
471
 
472
  $link_attr = isset( $value_plugin['install_url'] ) ? 'href="' . $value_plugin['install_url'] . '" target="_blank"' : 'href="' . esc_url( self_admin_url( 'plugin-install.php?tab=plugin-information&plugin=' . $key_plugin_explode[0] . '&from=import&TB_iframe=true&width=600&height=550' ) ) . '" class="thickbox open-plugin-details-modal"';
473
 
479
  <div class="bws_product_content">
480
  <div class="bws_product_title"><a <?php echo $link_attr; ?>><?php echo $value_plugin['name']; ?></a></div>
481
  <div class="bws-version">
482
+ <?php
483
  if ( $is_pro_installed ) {
484
  echo '<span';
485
  if ( ! empty( $value_plugin['expired'] ) || ! empty( $value_plugin['update_availible'] ) )
489
  echo '<span';
490
  if ( ! empty( $value_plugin['expired'] ) || ! empty( $value_plugin['update_availible'] ) )
491
  echo ' class="bws-update-available"';
492
+ echo '>v ' . $all_plugins[ $key_plugin ]['Version'] . '</span>';
493
  } else {
494
+ echo '<span>' . __( 'Not installed', 'bestwebsoft' ) . '</span>';
495
  }
496
 
497
  if ( ! empty( $value_plugin['expired'] ) ) {
502
  } ?>
503
  </div>
504
  <div class="bws_product_description">
505
+ <?php echo ( strlen( $value_plugin['description'] ) > 100 ) ? substr( $value_plugin['description'], 0, 100 ) . '...' : $value_plugin['description']; ?>
506
  </div>
507
  <div class="bws_product_links">
508
  <?php if ( $is_active || $is_pro_active ) {
528
  <?php } else { ?>
529
  <a class="bws_settings" href="<?php echo $bws_plugins[ $key_plugin ]["settings"]; ?>"><?php _e( 'Settings', 'bestwebsoft' ); ?></a>
530
  <?php }
531
+ } else {
532
  if ( $is_pro_installed ) { ?>
533
  <a class="button button-secondary" href="<?php echo wp_nonce_url( 'admin.php?page=bws_panel&amp;bws_activate_plugin=' . $value_plugin['pro_version'], 'bws_activate_plugin' . $value_plugin['pro_version'] ); ?>" title="<?php _e( 'Activate this plugin', 'bestwebsoft' ); ?>"><?php _e( 'Activate', 'bestwebsoft' ); ?></a>
534
  <?php } elseif ( ! empty( $plugins_array ) && isset( $value_plugin['pro_version'] ) && array_key_exists( $value_plugin['pro_version'], $plugins_array ) ) { ?>
540
  </form>
541
  <?php } elseif ( $is_installed ) { ?>
542
  <a class="button button-secondary" href="<?php echo wp_nonce_url( 'admin.php?page=bws_panel&amp;bws_activate_plugin=' . $key_plugin, 'bws_activate_plugin' . $key_plugin ); ?>" title="<?php _e( 'Activate this plugin', 'bestwebsoft' ); ?>"><?php _e( 'Activate', 'bestwebsoft' ); ?></a>
543
+ <?php } else {
544
+ $install_url = isset( $value_plugin['install_url'] ) ? $value_plugin['install_url'] : esc_url( self_admin_url( 'plugin-install.php?tab=search&type=term&s=' . str_replace( ' ', '+', str_replace( '-', '', $value_plugin['name'] ) ) . '+BestWebSoft&plugin-search-input=Search+Plugins' ) ); ?>
545
  <a class="button button-secondary" href="<?php echo $install_url; ?>" title="<?php _e( 'Install this plugin', 'bestwebsoft' ); ?>" target="_blank"><?php _e( 'Install Now', 'bestwebsoft' ); ?></a>
546
  <?php }
547
  } ?>
548
  </div>
549
  </div>
550
  <div class="clear"></div>
551
+ </div>
552
  <?php }
553
  if ( $nothing_found ) { ?>
554
  <p class="description"><?php _e( 'Nothing found. Try another criteria.', 'bestwebsoft' ); ?></p>
562
  <?php $sub_in_url = ( isset( $_GET['sub'] ) && in_array( $_GET['sub'], array( 'installed', 'not_installed' ) ) ) ? '&amp;sub=' . $_GET['sub'] : ''; ?>
563
  <a <?php if ( 'all' == $plugin_category ) echo ' class="bws-active"'; ?> href="<?php echo self_admin_url( 'admin.php?page=bws_panel' . $sub_in_url ); ?>"><?php _e( 'All', 'bestwebsoft' ); ?>
564
  <span>(<?php echo count( $bws_plugins ); ?>)</span>
565
+ </a>
566
  </li>
567
  <?php foreach ( $bws_plugins_category as $category_key => $category_value ) { ?>
568
  <li>
569
  <a <?php if ( $category_key == $plugin_category ) echo ' class="bws-active"'; ?> href="<?php echo esc_url( self_admin_url( 'admin.php?page=bws_panel' . $sub_in_url . '&amp;category=' . $category_key ) ); ?>"><?php echo $category_value['name']; ?>
570
  <span>(<?php echo $category_value['count']; ?>)</span>
571
+ </a>
572
  </li>
573
  <?php } ?>
574
  </ul>
575
  </div>
576
+ </div><!-- #bws-filter-wrapper -->
577
  <div class="clear"></div>
578
  <?php }
579
+ } elseif ( 'bws_themes' == $_GET['page'] ) {
580
+ require( dirname( __FILE__ ) . '/product_list.php' ); ?>
581
  <h1><?php _e( 'Themes', 'bestwebsoft' ); ?></h1>
582
  <div id="availablethemes" class="bws-availablethemes">
583
  <?php if ( $wp_version < '3.9' ) {
585
  <div class="available-theme installable-theme"><?php
586
  $installed_theme = wp_get_theme( $theme->slug ); ?>
587
  <a class="screenshot" href="<?php echo esc_url( $theme->href ); ?>">
588
+ <img src="<?php echo bws_menu_url( "icons/themes/" ) . $theme->slug . '.png'; ?>" width='150' />
589
  </a>
590
  <h3><?php echo $theme->name; ?></h3>
591
  <div class="theme-author"><?php printf( __( 'By %s', 'bestwebsoft' ), 'BestWebSoft' ); ?></div>
606
  $installed_theme = wp_get_theme( $theme->slug ); ?>
607
  <div class="theme" tabindex="0">
608
  <div class="theme-screenshot">
609
+ <img src="<?php echo bws_menu_url( "icons/themes/" ) . $theme->slug . '.png'; ?>" alt="" />
610
  </div>
611
  <div class="theme-author"><?php printf( __( 'By %s', 'bestwebsoft' ), 'BestWebSoft' ); ?></div>
612
  <h3 class="theme-name"><?php echo $theme->name; ?></h3>
613
  <div class="theme-actions">
614
  <a class="button button-secondary preview install-theme-preview" href="<?php echo $theme->href; ?>" target="_blank"><?php esc_html_e( 'Learn More', 'bestwebsoft' ); ?></a>
615
  </div>
616
+ <?php if ( $installed_theme->exists() ) {
617
  if ( $wp_version < '4.6' ) { ?>
618
  <div class="theme-installed"><?php _e( 'Already Installed', 'bestwebsoft' ); ?></div>
619
  <?php } else { ?>
628
  <?php } ?>
629
  <p><a class="bws_browse_link" href="http://bestweblayout.com/categories/themes/" target="_blank"><?php _e( 'Browse Free WordPress Themes', 'bestwebsoft' ); ?> <span class="dashicons dashicons-arrow-right-alt2"></span></a></p>
630
  </div>
631
+ <?php } elseif ( 'bws_system_status' == $_GET['page'] ) { ?>
632
  <h1><?php _e( 'System status', 'bestwebsoft' ); ?></h1>
633
  <div class="updated fade notice is-dismissible inline" <?php if ( ! ( isset( $_REQUEST['bwsmn_form_submit'] ) || isset( $_REQUEST['bwsmn_form_submit_custom_email'] ) ) || $error != "" ) echo "style=\"display:none\""; ?>><p><strong><?php echo $message; ?></strong></p></div>
634
  <div class="error" <?php if ( "" == $error ) echo "style=\"display:none\""; ?>><p><strong><?php echo $error; ?></strong></p></div>
685
  } ?>
686
  </tbody>
687
  </table>
688
+ <div class="clear"></div>
689
  </div>
690
  <?php } ?>
691
  </div>
696
  if ( ! function_exists( 'bws_get_banner_array' ) ) {
697
  function bws_get_banner_array() {
698
  global $bstwbsftwppdtplgns_banner_array;
699
+ $bstwbsftwppdtplgns_banner_array = array(
700
+ array( 'sclbttns_hide_banner_on_plugin_page', 'social-buttons-pack/social-buttons-pack.php', '1.1.0' ),
701
+ array( 'tmsht_hide_banner_on_plugin_page', 'timesheet/timesheet.php', '0.1.3' ),
702
+ array( 'pgntn_hide_banner_on_plugin_page', 'pagination/pagination.php', '1.0.6' ),
703
  array( 'crrntl_hide_banner_on_plugin_page', 'car-rental/car-rental.php', '1.0.0' ),
704
  array( 'lnkdn_hide_banner_on_plugin_page', 'bws-linkedin/bws-linkedin.php', '1.0.1' ),
705
  array( 'pntrst_hide_banner_on_plugin_page', 'bws-pinterest/bws-pinterest.php', '1.0.1' ),
707
  array( 'gglcptch_hide_banner_on_plugin_page', 'google-captcha/google-captcha.php', '1.18' ),
708
  array( 'mltlngg_hide_banner_on_plugin_page', 'multilanguage/multilanguage.php', '1.1.1' ),
709
  array( 'adsns_hide_banner_on_plugin_page', 'adsense-plugin/adsense-plugin.php', '1.36' ),
710
+ array( 'vstrsnln_hide_banner_on_plugin_page', 'visitors-online/visitors-online.php', '0.2' ),
711
  array( 'cstmsrch_hide_banner_on_plugin_page', 'custom-search-plugin/custom-search-plugin.php', '1.28' ),
712
  array( 'prtfl_hide_banner_on_plugin_page', 'portfolio/portfolio.php', '2.33' ),
713
  array( 'rlt_hide_banner_on_plugin_page', 'realty/realty.php', '1.0.0' ),
bws_menu/css/general_style.css CHANGED
@@ -1,7 +1,7 @@
1
- #adminmenu #toplevel_page_bws_panel .wp-submenu li:nth-child(4) a {
2
- border-bottom: 1px solid #444;
3
- padding-bottom: 12px;
4
- margin-bottom: 5px;
5
  }
6
  .bws_info {
7
  color: #888;
@@ -48,7 +48,7 @@
48
  color: #000000;
49
  }
50
  /*
51
- * styles for pro_version settings and tooltip
52
  */
53
  td.bws_pro_version,
54
  tr.bws_pro_version,
@@ -67,7 +67,7 @@ td.bws_pro_version_tooltip {
67
  max-width: 800px;
68
  overflow: hidden;
69
  }
70
- .bws_table_bg {
71
  background: #f8e268 url("../images/pattern.png");
72
  opacity: 0.11;
73
  filter:progid:DXImageTransform.Microsoft.Alpha(opacity=11); /* IE 5.5+*/
@@ -80,13 +80,13 @@ td.bws_pro_version_tooltip {
80
  .bws_hide_premium_options {
81
  z-index: 5;
82
  }
83
- .bws_pro_version_table_bloc table.bws_pro_version {
84
  background: transparent;
85
  margin: 0;
86
  border: none;
87
  width: 100%;
88
  }
89
- table.bws_pro_version {
90
  background: #E0E0E0;
91
  border: 1px solid #AAA;
92
  margin-bottom: 5px;
@@ -103,8 +103,8 @@ table.bws_pro_version td {
103
  background: #FFF;
104
  border-top: 1px solid #AAA;
105
  position: relative;
106
- z-index: 2;
107
- padding: 10px;
108
  font-size: 14px;
109
  }
110
  .bws_pro_version_tooltip .bws_button {
@@ -147,7 +147,7 @@ a.bws_plugin_pro_version {
147
  color: #666;
148
  }
149
  /* style for mini-block (ex. google map) */
150
- .bws_pro_version_bloc_mini .bws_pro_version_table_bloc table.bws_pro_version {
151
  width: auto;
152
  }
153
  .bws_pro_version_bloc_mini .bws_pro_version_tooltip {
@@ -155,7 +155,7 @@ a.bws_plugin_pro_version {
155
  text-align: center;
156
  width: 200px;
157
  }
158
- .bws_pro_version_bloc_mini .bws_pro_version_tooltip a {
159
  display: inline-block;
160
  line-height: 1.5;
161
  }
@@ -174,7 +174,7 @@ a.bws_plugin_pro_version {
174
  float: none;
175
  text-align: center;
176
  }
177
- .bws_pro_version_tooltip a {
178
  display: inline-block;
179
  line-height: 1.5;
180
  }
@@ -189,7 +189,7 @@ a.bws_plugin_pro_version {
189
  }
190
 
191
  /*
192
- * styles for banner
193
  */
194
  .bws_banner_on_plugin_page {
195
  border: 1px solid #d4d4d4;
@@ -213,7 +213,7 @@ a.bws_plugin_pro_version {
213
  }
214
  div.bws_banner_on_plugin_page .button {
215
  float: right;
216
- border: none;
217
  font-size: 14px;
218
  margin: 18px 40px;
219
  padding: 12px 29px;
@@ -232,7 +232,7 @@ div.bws_banner_on_plugin_page .button {
232
  line-height: 26px;
233
  }
234
  .bws_banner_on_plugin_page .button:hover,
235
- .bws_banner_on_plugin_page .button:focus {
236
  background: #222;
237
  color: #FFF;
238
  }
@@ -262,7 +262,7 @@ div.bws_banner_on_plugin_page .icon {
262
  color: #000;
263
  font-size: 16px;
264
  line-height: 26px;
265
- padding: 13px 14px 14px;
266
  }
267
  .bws_banner_to_settings_joint .icon span.dashicons-admin-plugins {
268
  font-size: 48px;
@@ -320,7 +320,7 @@ div.bws_banner_on_plugin_page .icon {
320
  /* #### Mobile Phones Portrait or Landscape #### */
321
  @media screen and (max-device-width: 768px) {
322
  .bws_banner_on_plugin_page .text,
323
- .bws_banner_on_plugin_page .icon,
324
  .bws_banner_on_plugin_page .button_div,
325
  .bws_banner_on_plugin_page .button {
326
  float: none;
@@ -355,7 +355,7 @@ span.bws_code {
355
  position: relative;
356
  margin: 3px 5px;
357
  width: 28px;
358
- display: inline-block;
359
  }
360
  .bws_help_box:not(.dashicons) {
361
  vertical-align: middle;
1
+ #adminmenu #toplevel_page_bws_panel .wp-submenu li:nth-child(5) a {
2
+ border-top: 1px solid #444;
3
+ padding-top: 12px;
4
+ margin-top: 6px;
5
  }
6
  .bws_info {
7
  color: #888;
48
  color: #000000;
49
  }
50
  /*
51
+ * styles for pro_version settings and tooltip
52
  */
53
  td.bws_pro_version,
54
  tr.bws_pro_version,
67
  max-width: 800px;
68
  overflow: hidden;
69
  }
70
+ .bws_table_bg {
71
  background: #f8e268 url("../images/pattern.png");
72
  opacity: 0.11;
73
  filter:progid:DXImageTransform.Microsoft.Alpha(opacity=11); /* IE 5.5+*/
80
  .bws_hide_premium_options {
81
  z-index: 5;
82
  }
83
+ .bws_pro_version_table_bloc table.bws_pro_version {
84
  background: transparent;
85
  margin: 0;
86
  border: none;
87
  width: 100%;
88
  }
89
+ table.bws_pro_version {
90
  background: #E0E0E0;
91
  border: 1px solid #AAA;
92
  margin-bottom: 5px;
103
  background: #FFF;
104
  border-top: 1px solid #AAA;
105
  position: relative;
106
+ z-index: 2;
107
+ padding: 10px;
108
  font-size: 14px;
109
  }
110
  .bws_pro_version_tooltip .bws_button {
147
  color: #666;
148
  }
149
  /* style for mini-block (ex. google map) */
150
+ .bws_pro_version_bloc_mini .bws_pro_version_table_bloc table.bws_pro_version {
151
  width: auto;
152
  }
153
  .bws_pro_version_bloc_mini .bws_pro_version_tooltip {
155
  text-align: center;
156
  width: 200px;
157
  }
158
+ .bws_pro_version_bloc_mini .bws_pro_version_tooltip a {
159
  display: inline-block;
160
  line-height: 1.5;
161
  }
174
  float: none;
175
  text-align: center;
176
  }
177
+ .bws_pro_version_tooltip a {
178
  display: inline-block;
179
  line-height: 1.5;
180
  }
189
  }
190
 
191
  /*
192
+ * styles for banner
193
  */
194
  .bws_banner_on_plugin_page {
195
  border: 1px solid #d4d4d4;
213
  }
214
  div.bws_banner_on_plugin_page .button {
215
  float: right;
216
+ border: none;
217
  font-size: 14px;
218
  margin: 18px 40px;
219
  padding: 12px 29px;
232
  line-height: 26px;
233
  }
234
  .bws_banner_on_plugin_page .button:hover,
235
+ .bws_banner_on_plugin_page .button:focus {
236
  background: #222;
237
  color: #FFF;
238
  }
262
  color: #000;
263
  font-size: 16px;
264
  line-height: 26px;
265
+ padding: 13px 14px 14px;
266
  }
267
  .bws_banner_to_settings_joint .icon span.dashicons-admin-plugins {
268
  font-size: 48px;
320
  /* #### Mobile Phones Portrait or Landscape #### */
321
  @media screen and (max-device-width: 768px) {
322
  .bws_banner_on_plugin_page .text,
323
+ .bws_banner_on_plugin_page .icon,
324
  .bws_banner_on_plugin_page .button_div,
325
  .bws_banner_on_plugin_page .button {
326
  float: none;
355
  position: relative;
356
  margin: 3px 5px;
357
  width: 28px;
358
+ display: inline-block;
359
  }
360
  .bws_help_box:not(.dashicons) {
361
  vertical-align: middle;
bws_menu/css/style.css CHANGED
@@ -179,6 +179,7 @@ a.toplevel_page_bws_panel.wp-has-current-submenu:after {
179
  .bws_error {
180
  color: #c5412b;
181
  margin-top: 1px;
 
182
  }
183
  .bws_error a {
184
  color: #fff;
179
  .bws_error {
180
  color: #c5412b;
181
  margin-top: 1px;
182
+ max-width: 230px;
183
  }
184
  .bws_error a {
185
  color: #fff;
bws_menu/product_list.php CHANGED
@@ -12,7 +12,7 @@ $bws_plugins_category = array(
12
  'site-stats' => array( 'name' => __( 'Site Stats', 'bestwebsoft' ) ),
13
  'social' => array( 'name' => __( 'Social', 'bestwebsoft' ) ),
14
  'utilities' => array( 'name' => __( 'Utilities', 'bestwebsoft' ) ),
15
- 'other' => array( 'name' => __( 'Other', 'bestwebsoft' ) ),
16
  );
17
 
18
  $bws_plugins = array(
@@ -20,479 +20,495 @@ $bws_plugins = array(
20
  'category' => array( 'security', 'recommended' ),
21
  'name' => 'Captcha',
22
  'description' => 'Protect WordPress website forms from spam entries by means of math logic.',
23
- 'link' => 'http://bestwebsoft.com/products/captcha/?k=d678516c0990e781edfb6a6c874f0b8a&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
24
  'settings' => 'admin.php?page=captcha.php',
25
  'pro_version' => 'captcha-pro/captcha_pro.php',
26
- 'purchase' => 'http://bestwebsoft.com/products/captcha/buy/?k=ff7d65e55e5e7f98f219be9ed711094e&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
27
  'pro_settings' => 'admin.php?page=captcha_pro.php'
28
  ),
29
  'car-rental/car-rental.php' => array(
30
  'category' => array( 'content-and-media' ),
31
  'name' => 'Car Rental',
32
  'description' => 'Create your personal car rental/booking and reservation website.',
33
- 'link' => 'http://bestwebsoft.com/products/car-rental/?k=444cac6df9a0d3a9763ab4753d24941b&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
34
  'settings' => 'admin.php?page=car-rental-settings',
35
  'pro_version' => 'car-rental-pro/car-rental-pro.php',
36
- 'purchase' => 'http://bestwebsoft.com/products/car-rental/buy/?k=7643d4f0698252fa1159de078d22269c&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
37
  'pro_settings' => 'admin.php?page=car-rental-pro-settings'
38
  ),
39
  'contact-form-plugin/contact_form.php' => array(
40
  'category' => array( 'other', 'recommended' ),
41
  'name' => 'Contact Form',
42
  'description' => 'Allow customers to reach you using secure contact form plugin any website must have.',
43
- 'link' => 'http://bestwebsoft.com/products/contact-form/?k=012327ef413e5b527883e031d43b088b&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
44
  'settings' => 'admin.php?page=contact_form.php',
45
  'pro_version' => 'contact-form-pro/contact_form_pro.php',
46
- 'purchase' => 'http://bestwebsoft.com/products/contact-form/buy/?k=773dc97bb3551975db0e32edca1a6d71&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
47
  'pro_settings' => 'admin.php?page=contact_form_pro.php'
48
  ),
49
  'contact-form-multi/contact-form-multi.php' => array(
50
  'category' => array( 'other', 'recommended' ),
51
  'name' => 'Contact Form Multi',
52
  'description' => 'Add unlimited number of contact forms to WordPress website.',
53
- 'link' => 'http://bestwebsoft.com/products/contact-form-multi/?k=83cdd9e72a9f4061122ad28a67293c72&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
54
  'settings' => '',
55
  'pro_version' => 'contact-form-multi-pro/contact-form-multi-pro.php',
56
- 'purchase' => 'http://bestwebsoft.com/products/contact-form-multi/buy/?k=fde3a18581c143654f060c398b07e8ac&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
57
  'pro_settings' => ''
58
  ),
59
  'contact-form-to-db/contact_form_to_db.php' => array(
60
  'category' => array( 'other', 'recommended' ),
61
  'name' => 'Contact Form to DB',
62
  'description' => 'Save and manage contact form messages. Never lose important data.',
63
- 'link' => 'http://bestwebsoft.com/products/contact-form-to-db/?k=ba3747d317c2692e4136ca096a8989d6&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
64
  'settings' => 'admin.php?page=cntctfrmtdb_settings',
65
  'pro_version' => 'contact-form-to-db-pro/contact_form_to_db_pro.php',
66
- 'purchase' => 'http://bestwebsoft.com/products/contact-form-to-db/buy/?k=6ce5f4a9006ec906e4db643669246c6a&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
67
  'pro_settings' => 'admin.php?page=cntctfrmtdbpr_settings'
68
  ),
69
  'custom-admin-page/custom-admin-page.php' => array(
70
  'category' => array( 'utilities' ),
71
  'name' => 'Custom Admin Page',
72
  'description' => 'Add unlimited custom pages to WordPress admin dashboard.',
73
- 'link' => 'http://bestwebsoft.com/products/custom-admin-page/?k=9ac03f16c25e845e8e055a221c3e1467&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
74
  'settings' => 'admin.php?page=custom-admin-page.php'
75
  ),
76
  'custom-fields-search/custom-fields-search.php' => array(
77
  'category' => array( 'content-and-media' ),
78
  'name' => 'Custom Fields Search',
79
  'description' => 'Add custom fields to WordPress website search results.',
80
- 'link' => 'http://bestwebsoft.com/products/custom-fields-search/?k=f3f8285bb069250c42c6ffac95ed3284&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
81
  'settings' => 'admin.php?page=custom_fields_search.php'
82
  ),
83
  'custom-search-plugin/custom-search-plugin.php' => array(
84
  'category' => array( 'content-and-media' ),
85
  'name' => 'Custom Search',
86
  'description' => 'Add custom post types to WordPress website search results.',
87
- 'link' => 'http://bestwebsoft.com/products/custom-search/?k=933be8f3a8b8719d95d1079d15443e29&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
88
  'settings' => 'admin.php?page=custom_search.php',
89
  'pro_version' => 'custom-search-pro/custom-search-pro.php',
90
- 'purchase' => 'http://bestwebsoft.com/products/custom-search/buy/?k=062b652ac6ac8ba863c9f30fc21d62c6&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
91
  'pro_settings' => 'admin.php?page=custom_search_pro.php'
92
- ),
93
  'db-manager/db-manager.php' => array(
94
  'category' => array( 'utilities' ),
95
  'name' => 'DB Manager',
96
  'description' => 'Manage database and file system right from your WordPress admin dashboard.',
97
- 'link' => 'http://bestwebsoft.com/products/db-manager/?k=01ed9731780d87f85f5901064b7d76d8&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
98
- 'install_url' => 'http://bestwebsoft.com/products/db-manager/download/?k=01ed9731780d87f85f5901064b7d76d8&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
99
  'settings' => 'admin.php?page=db-manager.php',
100
- 'icon' => plugins_url( 'icons/plugins/', __FILE__ ) . 'db-manager.png'
101
  ),
102
  'donate-button/donate.php' => array(
103
  'category' => array( 'other' ),
104
  'name' => 'Donate',
105
  'description' => 'Add PayPal and 2CO donate buttons to receive charity payments.',
106
- 'link' => 'http://bestwebsoft.com/products/donate/?k=a8b2e2a56914fb1765dd20297c26401b&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
107
  'settings' => 'admin.php?page=donate.php'
108
  ),
109
  'email-queue/email-queue.php' => array(
110
  'category' => array( 'other' ),
111
  'name' => 'Email Queue',
112
  'description' => 'Automatically add outgoing email messages to queue instead of sending them immediately.',
113
- 'link' => 'http://bestwebsoft.com/products/email-queue/?k=e345e1b6623f0dca119bc2d9433b130b&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
114
  'settings' => 'admin.php?page=mlq_settings'
115
  ),
116
  'error-log-viewer/error-log-viewer.php' => array(
117
  'category' => array( 'utilities' ),
118
  'name' => 'Error Log Viewer',
119
  'description' => 'Get latest error log messages to diagnose website problems. Define and fix issues faster.',
120
- 'link' => 'http://bestwebsoft.com/products/error-log-viewer/?k=da0de8bd2c7a0b2fea5df64d55a368b3&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
121
  'settings' => 'admin.php?page=rrrlgvwr.php&tab=settings'
122
  ),
123
  'facebook-button-plugin/facebook-button-plugin.php' => array(
124
  'category' => array( 'social' ),
125
  'name' => 'Facebook Button',
126
  'description' => 'Add Facebook Like, Share and Profile buttons to WordPress posts, pages and widgets.',
127
- 'link' => 'http://bestwebsoft.com/products/facebook-like-button/?k=05ec4f12327f55848335802581467d55&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
128
  'settings' => 'admin.php?page=facebook-button-plugin.php',
129
  'pro_version' => 'facebook-button-pro/facebook-button-pro.php',
130
- 'purchase' => 'http://bestwebsoft.com/products/facebook-like-button/buy/?k=8da168e60a831cfb3525417c333ad275&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
131
  'pro_settings' => 'admin.php?page=facebook-button-pro.php'
132
  ),
133
  'bws-featured-posts/bws-featured-posts.php' => array(
134
  'category' => array( 'content-and-media' ),
135
  'name' => 'Featured Posts',
136
  'description' => 'Add featured posts to WordPress posts or widgets. Highlight important information.',
137
- 'link' => 'http://bestwebsoft.com/products/featured-posts/?k=f0afb31185ba7c7d6d598528d69f6d97&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
138
  'settings' => 'admin.php?page=featured-posts.php'
139
- ),
140
  'gallery-plugin/gallery-plugin.php' => array(
141
  'category' => array( 'content-and-media', 'recommended' ),
142
  'name' => 'Gallery',
143
  'description' => 'Add beautiful galleries, albums & images to your Wordpress website in few clicks.',
144
- 'link' => 'http://bestwebsoft.com/products/gallery/?k=2da21c0a64eec7ebf16337fa134c5f78&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
145
  'settings' => 'admin.php?page=gallery-plugin.php',
146
  'pro_version' => 'gallery-plugin-pro/gallery-plugin-pro.php',
147
- 'purchase' => 'http://bestwebsoft.com/products/gallery/buy/?k=382e5ce7c96a6391f5ffa5e116b37fe0&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
148
  'pro_settings' => 'admin.php?page=gallery-plugin-pro.php'
149
  ),
150
  'gallery-categories/gallery-categories.php' => array(
151
  'category' => array( 'content-and-media' ),
152
  'name' => 'Gallery Categories',
153
  'description' => 'Add unlimited gallery categories. Organize images to make the navigation through content easier.',
154
- 'link' => 'http://bestwebsoft.com/products/gallery-categories/?k=7d68c7bfec2486dc350c67fff57ad433&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
155
  'settings' => ''
156
  ),
157
  'google-one/google-plus-one.php' => array(
158
  'category' => array( 'social' ),
159
  'name' => 'Google +1',
160
  'description' => 'Add Google +1 Share, Follow, Hangout buttons and profile badge to WordPress posts, pages and widgets.',
161
- 'link' => 'http://bestwebsoft.com/products/google-plus-one/?k=ce7a88837f0a857b3a2bb142f470853c&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
162
  'settings' => 'admin.php?page=google-plus-one.php',
163
  'pro_version' => 'google-one-pro/google-plus-one-pro.php',
164
- 'purchase' => 'http://bestwebsoft.com/products/google-plus-one/buy/?k=f4b0a62d155c9df9601a0531ad5bd832&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
165
  'pro_settings' => 'admin.php?page=google-plus-one-pro.php'
166
  ),
167
  'adsense-plugin/adsense-plugin.php' => array(
168
  'category' => array( 'advertisement' ),
169
  'name' => 'Google AdSense',
170
  'description' => 'Add Adsense ads to pages, posts, custom posts, search results, categories, tags, pages, and widgets.',
171
- 'link' => 'http://bestwebsoft.com/products/google-adsense/?k=60e3979921e354feb0347e88e7d7b73d&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
172
  'settings' => 'admin.php?page=adsense-plugin.php',
173
  'pro_version' => 'adsense-pro/adsense-pro.php',
174
- 'purchase' => 'http://bestwebsoft.com/products/google-adsense/buy/?k=c23889b293d62aa1ad2c96513405f0e1&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
175
  'pro_settings' => 'admin.php?page=adsense-pro.php'
176
  ),
177
  'bws-google-analytics/bws-google-analytics.php' => array(
178
  'category' => array( 'site-stats' ),
179
  'name' => 'Google Analytics',
180
  'description' => 'Add Google Analytics code to WordPress website and track basic stats.',
181
- 'link' => 'http://bestwebsoft.com/products/bws-google-analytics/?k=261c74cad753fb279cdf5a5db63fbd43&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
182
  'settings' => 'admin.php?page=bws-google-analytics.php',
183
  'pro_version' => 'bws-google-analytics-pro/bws-google-analytics-pro.php',
184
- 'purchase' => 'http://bestwebsoft.com/products/bws-google-analytics/buy/?k=83796e84fec3f70ecfcc8894a73a6c4a&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
185
  'pro_settings' => 'admin.php?page=bws-google-analytics-pro.php'
186
  ),
187
  'google-captcha/google-captcha.php' => array(
188
  'category' => array( 'security', 'recommended' ),
189
  'name' => 'Google Captcha (reCAPTCHA)',
190
  'description' => 'Protect WordPress website forms from spam entries with Google Captcha (reCaptcha).',
191
- 'link' => 'http://bestwebsoft.com/products/google-captcha/?k=7b59fbe542acf950b29f3e020d5ad735&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
192
  'settings' => 'admin.php?page=google-captcha.php',
193
  'pro_version' => 'google-captcha-pro/google-captcha-pro.php',
194
- 'purchase' => 'http://bestwebsoft.com/products/google-captcha/buy/?k=773d30149acf1edc32e5c0766b96c134&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
195
  'pro_settings' => 'admin.php?page=google-captcha-pro.php'
196
  ),
197
  'bws-google-maps/bws-google-maps.php' => array(
198
  'category' => array( 'content-and-media' ),
199
  'name' => 'Google Maps',
200
  'description' => 'Add customized Google maps to WordPress posts, pages and widgets.',
201
- 'link' => 'http://bestwebsoft.com/products/bws-google-maps/?k=d8fac412d7359ebaa4ff53b46572f9f7&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
202
  'settings' => 'admin.php?page=bws-google-maps.php',
203
  'pro_version' => 'bws-google-maps-pro/bws-google-maps-pro.php',
204
- 'purchase' => 'http://bestwebsoft.com/products/bws-google-maps/buy/?k=117c3f9fc17f2c83ef430a8a9dc06f56&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
205
  'pro_settings' => 'admin.php?page=bws-google-maps-pro.php'
206
  ),
207
  'google-sitemap-plugin/google-sitemap-plugin.php' => array(
208
  'category' => array( 'other', 'recommended' ),
209
  'name' => 'Google Sitemap',
210
  'description' => 'Generate and add XML sitemap to WordPress website. Help search engines index your blog.',
211
- 'link' => 'http://bestwebsoft.com/products/google-sitemap/?k=5202b2f5ce2cf85daee5e5f79a51d806&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
212
  'settings' => 'admin.php?page=google-sitemap-plugin.php',
213
  'pro_version' => 'google-sitemap-pro/google-sitemap-pro.php',
214
- 'purchase' => 'http://bestwebsoft.com/products/google-sitemap/buy/?k=7ea384a5cc36cb4c22741caa20dcd56d&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
215
  'pro_settings' => 'admin.php?page=google-sitemap-pro.php'
216
- ),
217
  'google-shortlink/google-shortlink.php' => array(
218
  'category' => array( 'other' ),
219
  'name' => 'Google Shortlink',
220
  'description' => 'Replace external WordPress website links with Google shortlinks and track click stats.',
221
- 'link' => 'http://bestwebsoft.com/products/google-shortlink/?k=afcf3eaed021bbbbeea1090e16bc22db&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
222
  'settings' => 'admin.php?page=gglshrtlnk_options'
223
- ),
224
  'htaccess/htaccess.php' => array(
225
  'category' => array( 'security' ),
226
  'name' => 'Htaccess',
227
  'description' => 'Protect WordPress website – allow and deny access for certain IP addresses, hostnames, etc.',
228
- 'link' => 'http://bestwebsoft.com/products/htaccess/?k=2b865fcd56a935d22c5c4f1bba52ed46&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
229
  'settings' => 'admin.php?page=htaccess.php',
230
  'pro_version' => 'htaccess-pro/htaccess-pro.php',
231
- 'purchase' => 'http://bestwebsoft.com/products/htaccess/buy/?k=59e9209a32864be534fda77d5e591c15&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
232
  'pro_settings' => 'admin.php?page=htaccess-pro.php'
233
  ),
234
  'job-board/job-board.php' => array(
235
  'category' => array( 'content-and-media' ),
236
  'name' => 'Job Board',
237
  'description' => 'Create your personal job board and listing WordPress website. Search jobs, submit CV/resumes, choose candidates.',
238
- 'link' => 'http://bestwebsoft.com/products/job-board/?k=b0c504c9ce6edd6692e04222af3fed6f&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
239
  'settings' => 'admin.php?page=job-board.php'
240
  ),
241
  'bws-latest-posts/bws-latest-posts.php' => array(
242
  'category' => array( 'content-and-media' ),
243
  'name' => 'Latest Posts',
244
  'description' => 'Add latest posts or latest posts for selected categories widgets to WordPress website.',
245
- 'link' => 'http://bestwebsoft.com/products/latest-posts/?k=ef4e125aadadd8d219140daa184a9399&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
246
  'settings' => 'admin.php?page=latest-posts.php'
247
  ),
248
  'limit-attempts/limit-attempts.php' => array(
249
  'category' => array( 'security', 'recommended' ),
250
  'name' => 'Limit Attempts',
251
  'description' => 'Protect WordPress website against brute force attacks. Limit rate of login attempts.',
252
- 'link' => 'http://bestwebsoft.com/products/limit-attempts/?k=b14e1697ee4d008abcd4bd34d492573a&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
253
  'settings' => 'admin.php?page=limit-attempts.php',
254
  'pro_version' => 'limit-attempts-pro/limit-attempts-pro.php',
255
- 'purchase' => 'http://bestwebsoft.com/products/limit-attempts/buy/?k=9d42cdf22c7fce2c4b6b447e6a2856e0&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
256
  'pro_settings' => 'admin.php?page=limit-attempts-pro.php'
257
  ),
258
  'bws-linkedin/bws-linkedin.php' => array(
259
  'category' => array( 'social' ),
260
  'name' => 'LinkedIn',
261
  'description' => 'Add LinkedIn Share and Follow buttons to WordPress posts, pages and widgets. 5 plugins included – profile, insider, etc.',
262
- 'link' => 'http://bestwebsoft.com/products/linkedin/?k=d63c7319622ccc5f589dd2d545c1d77c&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
263
  'settings' => 'admin.php?page=linkedin.php',
264
  'pro_version' => 'bws-linkedin-pro/bws-linkedin-pro.php',
265
- 'purchase' => 'http://bestwebsoft.com/products/linkedin/buy/?k=41dcc36192994408d24b103a02134567&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
266
  'pro_settings' => 'admin.php?page=linkedin-pro.php'
267
  ),
268
  'multilanguage/multilanguage.php' => array(
269
  'category' => array( 'content-and-media', 'recommended' ),
270
  'name' => 'Multilanguage',
271
  'description' => 'Translate WordPress website content to other languages manually. Create multilingual pages, posts, widgets, menus, etc.',
272
- 'link' => 'http://bestwebsoft.com/products/multilanguage/?k=7d68c7bfec2486dc350c67fff57ad433&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
273
  'settings' => 'admin.php?page=mltlngg_settings',
274
  'pro_version' => 'multilanguage-pro/multilanguage-pro.php',
275
- 'purchase' => 'http://bestwebsoft.com/products/multilanguage/buy/?k=2d1121cd9a5ced583fc29eefd51bdf57&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
276
  'pro_settings' => 'admin.php?page=mltlnggpr_settings'
277
- ),
278
  'pagination/pagination.php' => array(
279
  'category' => array( 'content-and-media' ),
280
  'name' => 'Pagination',
281
  'description' => 'Add customizable pagination to WordPress website. Split long content to multiple pages for better navigation.',
282
- 'link' => 'http://bestwebsoft.com/products/pagination/?k=22adb940256f149559ba8fedcd728ac8&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
283
- 'settings' => 'admin.php?page=pagination.php'
 
 
 
284
  ),
285
  'pdf-print/pdf-print.php' => array(
286
  'category' => array( 'other' ),
287
  'name' => 'PDF & Print',
288
  'description' => 'Generate PDF files and print WordPress posts/pages. Customize document header/footer styles and appearance.',
289
- 'link' => 'http://bestwebsoft.com/products/pdf-print/?k=bfefdfb522a4c0ff0141daa3f271840c&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
290
  'settings' => 'admin.php?page=pdf-print.php',
291
  'pro_version' => 'pdf-print-pro/pdf-print-pro.php',
292
- 'purchase' => 'http://bestwebsoft.com/products/pdf-print/buy/?k=fd43a0e659ddc170a9060027cbfdcc3a&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
293
  'pro_settings' => 'admin.php?page=pdf-print-pro.php'
294
  ),
295
  'bws-pinterest/bws-pinterest.php' => array(
296
  'category' => array( 'social' ),
297
  'name' => 'Pinterest',
298
  'description' => 'Add Pinterest Follow, Pin It buttons and profile widgets (Pin, Board, Profile) to WordPress posts, pages and widgets.',
299
- 'link' => 'http://bestwebsoft.com/products/pinterest/?k=504107b6213f247a67fe7ffb94e97c78&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
300
  'settings' => 'admin.php?page=pinterest.php',
301
  'pro_version' => 'bws-pinterest-pro/bws-pinterest-pro.php',
302
- 'purchase' => 'http://bestwebsoft.com/products/pinterest/buy/?k=ab0069edd1914a3ca8f541bfd88bb0bb&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
303
  'pro_settings' => 'admin.php?page=pinterest-pro.php'
304
  ),
305
  'bws-popular-posts/bws-popular-posts.php' => array(
306
  'category' => array( 'content-and-media', 'recommended' ),
307
  'name' => 'Popular Posts',
308
  'description' => 'Track views, comments and add most popular posts to Wordpress widgets.',
309
- 'link' => 'http://bestwebsoft.com/products/popular-posts/?k=4d529f116d2b7f7df3a78018c383f975&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
310
  'settings' => 'admin.php?page=popular-posts.php'
311
  ),
312
  'portfolio/portfolio.php' => array(
313
  'category' => array( 'content-and-media', 'recommended' ),
314
  'name' => 'Portfolio',
315
  'description' => 'Create your personal portfolio WordPress website. Manage and showcase past projects to get more clients.',
316
- 'link' => 'http://bestwebsoft.com/products/portfolio/?k=1249a890c5b7bba6bda3f528a94f768b&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
317
  'settings' => 'admin.php?page=portfolio.php',
318
  'pro_version' => 'portfolio-pro/portfolio-pro.php',
319
- 'purchase' => 'http://bestwebsoft.com/products/portfolio/buy/?k=2cc716026197d36538a414b728e49fdd&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
320
  'pro_settings' => 'admin.php?page=portfolio-pro.php'
321
  ),
322
  'post-to-csv/post-to-csv.php' => array(
323
  'category' => array( 'utilities' ),
324
  'name' => 'Post to CSV',
325
  'description' => 'Export WordPress posts to CSV file format easily. Configure data order.',
326
- 'link' => 'http://bestwebsoft.com/products/post-to-csv/?k=653aa55518ae17409293a7a894268b8f&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
327
  'settings' => 'admin.php?page=post-to-csv.php'
328
  ),
329
  'profile-extra-fields/profile-extra-fields.php' => array(
330
  'category' => array( 'management' ),
331
  'name' => 'Profile Extra Fields',
332
  'description' => 'Add extra fields to default WordPress user profile. The easiest way to create and manage additional custom values.',
333
- 'link' => 'http://bestwebsoft.com/products/profile-extra-fields/?k=fe3b6c3dbc80bd4b1cf9a27a2f339820&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
334
  'settings' => 'admin.php?page=profile-extra-fields.php'
335
  ),
336
  'promobar/promobar.php' => array(
337
  'category' => array( 'advertisement' ),
338
  'name' => 'PromoBar',
339
  'description' => 'Add and display HTML advertisement on WordPress website. Customize bar styles and appearance.',
340
- 'link' => 'http://bestwebsoft.com/products/promobar/?k=619eac2232d9cfa382c4e678c3b14766&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
341
  'settings' => 'admin.php?page=promobar.php',
342
  'pro_version' => 'promobar-pro/promobar-pro.php',
343
- 'purchase' => 'http://bestwebsoft.com/products/promobar/buy/?k=a9b09708502f12a1483532ba12fe2103&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
344
  'pro_settings' => 'admin.php?page=promobar-pro.php'
345
  ),
346
  'quotes-and-tips/quotes-and-tips.php' => array(
347
  'category' => array( 'content-and-media' ),
348
  'name' => 'Quotes and Tips',
349
  'description' => 'Add customizable quotes and tips blocks to WordPress posts, pages and widgets.',
350
- 'link' => 'http://bestwebsoft.com/products/quotes-and-tips/?k=5738a4e85a798c4a5162240c6515098d&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
351
  'settings' => 'admin.php?page=quotes-and-tips.php'
352
  ),
 
 
 
 
 
 
 
353
  'realty/realty.php' => array(
354
  'category' => array( 'content-and-media' ),
355
  'name' => 'Realty',
356
  'description' => 'Create your personal real estate WordPress website. Sell, rent and buy properties. Add, search and browse listings easily.',
357
- 'link' => 'http://bestwebsoft.com/products/realty/?k=d55de979dbbbb7af0b2ff1d7f43884fa&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
358
  'settings' => 'admin.php?page=realty_settings',
359
  'pro_version' => 'realty-pro/realty-pro.php',
360
- 'purchase' => 'http://bestwebsoft.com/products/realty/buy/?k=c7791f0a72acfb36f564a614dbccb474&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
361
  'pro_settings' => 'admin.php?page=realty_pro_settings'
362
- ),
363
  're-attacher/re-attacher.php' => array(
364
  'category' => array( 'utilities' ),
365
  'name' => 'Re-attacher',
366
  'description' => 'Attach, unattach and re-attach media files quickly to WordPress posts and pages.',
367
- 'link' => 'http://bestwebsoft.com/products/re-attacher/?k=4d529f116d2b7f7df3a78018c383f975&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
368
  'settings' => 'admin.php?page=re-attacher.php'
369
  ),
370
  'relevant/related-posts-plugin.php' => array(
371
  'category' => array( 'content-and-media', 'recommended' ),
372
  'name' => 'Relevant - Related Posts',
373
  'description' => 'Add related posts to WordPress posts or widgets. Link your readers to relevant content.',
374
- 'link' => 'http://bestwebsoft.com/products/related-posts/?k=73fb737037f7141e66415ec259f7e426&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
375
  'settings' => 'admin.php?page=related-posts-plugin.php'
376
  ),
377
  'sender/sender.php' => array(
378
  'category' => array( 'social', 'recommended' ),
379
  'name' => 'Sender',
380
  'description' => 'Send bulk email messages to WordPress users. Custom templates, advanced settings and detailed reports.',
381
- 'link' => 'http://bestwebsoft.com/products/sender/?k=89c297d14ba85a8417a0f2fc05e089c7&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
382
  'settings' => 'admin.php?page=sndr_settings',
383
  'pro_version' => 'sender-pro/sender-pro.php',
384
- 'purchase' => 'http://bestwebsoft.com/products/sender/buy/?k=dc5d1a87bdc8aeab2de40ffb99b38054&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
385
  'pro_settings' => 'admin.php?page=sndrpr_settings'
386
  ),
387
  'bws-smtp/bws-smtp.php' => array(
388
  'category' => array( 'utilities' ),
389
  'name' => 'SMTP',
390
  'description' => 'Configure SMTP server to receive email messages from WordPress to Gmail, Yahoo, Hotmail and other services.',
391
- 'link' => 'http://bestwebsoft.com/products/smtp/?k=0546419f962704429ad2d9b88567752f&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
392
  'settings' => 'admin.php?page=bwssmtp_settings'
393
  ),
394
  'social-buttons-pack/social-buttons-pack.php' => array(
395
  'category' => array( 'social', 'recommended' ),
396
  'name' => 'Social Buttons Pack',
397
  'description' => 'Add social media buttons and widgets to WordPress posts, pages and widgets. FB, Twitter, G+1, Pinterest, LinkedIn.',
398
- 'link' => 'http://bestwebsoft.com/products/social-buttons-pack/?k=b6440fad9f54274429e536b0c61b42da&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
399
- 'settings' => 'admin.php?page=social-buttons.php'
 
 
 
400
  ),
401
  'subscriber/subscriber.php' => array(
402
  'category' => array( 'social', 'recommended' ),
403
  'name' => 'Subscriber',
404
  'description' => 'Add email newsletter sign up form to WordPress posts, pages and widgets. Collect data and subscribe your users.',
405
- 'link' => 'http://bestwebsoft.com/products/subscriber/?k=a4ecc1b7800bae7329fbe8b4b04e9c88&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
406
  'settings' => 'admin.php?page=sbscrbr_settings_page',
407
  'pro_version' => 'subscriber-pro/subscriber-pro.php',
408
- 'purchase' => 'http://bestwebsoft.com/products/subscriber/buy/?k=02dbb8b549925d9b74e70adc2a7282e4&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
409
  'pro_settings' => 'admin.php?page=sbscrbrpr_settings_page'
410
  ),
411
  'bws-testimonials/bws-testimonials.php' => array(
412
  'category' => array( 'content-and-media', 'recommended' ),
413
  'name' => 'Testimonials',
414
  'description' => 'Add testimonials and feedbacks from your customers to WordPress posts, pages and widgets.',
415
- 'link' => 'http://bestwebsoft.com/products/testimonials/?k=3fe4bb89dc901c98e43a113e08f8db73&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
416
  'settings' => 'admin.php?page=testimonials.php'
417
  ),
418
  'timesheet/timesheet.php' => array(
419
  'category' => array( 'management' ),
420
  'name' => 'Timesheet',
421
  'description' => 'Best timesheet plugin for WordPress. Track employee time, streamline attendance and generate reports.',
422
- 'link' => 'http://bestwebsoft.com/products/timesheet/?k=06a58bb78c17a43df01825925f05a5c1&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
423
- 'settings' => 'admin.php?page=timesheet_settings'
424
- ),
 
 
 
425
  'twitter-plugin/twitter.php' => array(
426
  'category' => array( 'social' ),
427
  'name' => 'Twitter',
428
  'description' => 'Add Twitter Follow, Tweet, Hashtag, and Mention buttons to WordPress posts, pages and widgets.',
429
- 'link' => 'http://bestwebsoft.com/products/twitter/?k=f8cb514e25bd7ec4974d64435c5eb333&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
430
  'settings' => 'admin.php?page=twitter.php',
431
  'pro_version' => 'twitter-pro/twitter-pro.php',
432
- 'purchase' => 'http://bestwebsoft.com/products/twitter/buy/?k=63ecbf0cc9cebf060b5a3c9362299700&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
433
  'pro_settings' => 'admin.php?page=twitter-pro.php'
434
  ),
435
  'updater/updater.php' => array(
436
  'category' => array( 'utilities', 'recommended' ),
437
  'name' => 'Updater',
438
  'description' => 'Automatically check and update WordPress website core with all installed plugins and themes to the latest versions.',
439
- 'link' => 'http://bestwebsoft.com/products/updater/?k=66f3ecd4c1912009d395c4bb30f779d1&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
440
  'settings' => 'admin.php?page=updater-options',
441
  'pro_version' => 'updater-pro/updater_pro.php',
442
- 'purchase' => 'http://bestwebsoft.com/products/updater/buy/?k=cf633acbefbdff78545347fe08a3aecb&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
443
  'pro_settings' => 'admin.php?page=updater-pro-options'
444
  ),
445
  'user-role/user-role.php' => array(
446
  'category' => array( 'utilities' ),
447
  'name' => 'User Role',
448
  'description' => 'Powerful user role management plugin for WordPress website. Create, edit, copy, and delete user roles.',
449
- 'link' => 'http://bestwebsoft.com/products/user-role/?k=dfe2244835c6fbf601523964b3f34ccc&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
450
  'settings' => 'admin.php?page=user-role.php',
451
  'pro_version' => 'user-role-pro/user-role-pro.php',
452
- 'purchase' => 'http://bestwebsoft.com/products/user-role/buy/?k=cfa9cea6613fb3d7c0a3622fa2faaf46&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
453
  'pro_settings' => 'admin.php?page=user-role-pro.php'
454
- ),
455
  'visitors-online/visitors-online.php' => array(
456
  'category' => array( 'site-stats' ),
457
  'name' => 'Visitors Online',
458
  'description' => 'Display live count of online visitors who are currently browsing your WordPress website.',
459
- 'link' => 'http://bestwebsoft.com/products/visitors-online/?k=93c28013a4f830671b3bba9502ed5177&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
460
  'settings' => 'admin.php?page=visitors-online.php',
461
  'pro_version' => 'visitors-online-pro/visitors-online-pro.php',
462
- 'purchase' => 'http://bestwebsoft.com/products/visitors-online/buy/?k=f9a746075ff8a0a6cb192cb46526afd2&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
463
  'pro_settings' => 'admin.php?page=visitors-online-pro.php'
464
- ),
465
  'zendesk-help-center/zendesk-help-center.php' => array(
466
  'category' => array( 'utilities' ),
467
  'name' => 'Zendesk Help Center',
468
  'description' => 'Backup and export Zendesk Help Center content automatically to your WordPress website database.',
469
- 'link' => 'http://bestwebsoft.com/products/zendesk-help-center/?k=2a5fd2f4b2f4bde46f2ca44b8d15846d&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
470
  'settings' => 'admin.php?page=zendesk_hc.php&action=settings',
471
  'pro_version' => 'zendesk-help-center-pro/zendesk-help-center-pro.php',
472
- 'purchase' => 'http://bestwebsoft.com/products/zendesk-help-center/buy/?k=45199e4538b5befe4d9566868a61a3aa&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
473
  'pro_settings' => 'admin.php?page=zendesk_hc_pro.php&tab=settings'
474
  )
475
- );
476
 
477
- $themes = array(
478
- (object) array(
479
  'name' => 'Opening',
480
  'slug' => 'opening',
481
- 'href' => 'http://bestwebsoft.com/products/opening-job-board-wordpress-theme/'
482
  ),
483
- (object) array(
484
  'name' => 'Real Estate',
485
  'slug' => 'realestate',
486
- 'href' => 'http://bestwebsoft.com/products/real-estate-creative-wordpress-theme/'
487
  ),
488
- (object) array(
489
  'name' => 'Renty',
490
  'slug' => 'renty',
491
- 'href' => 'http://bestwebsoft.com/products/renty-car-rental-booking-wordpress-theme/'
492
  ),
493
- (object) array(
494
  'name' => 'Unity',
495
  'slug' => 'unity',
496
- 'href' => 'http://bestwebsoft.com/products/unity-multipurpose-wordpress-theme/'
497
  )
498
  );
12
  'site-stats' => array( 'name' => __( 'Site Stats', 'bestwebsoft' ) ),
13
  'social' => array( 'name' => __( 'Social', 'bestwebsoft' ) ),
14
  'utilities' => array( 'name' => __( 'Utilities', 'bestwebsoft' ) ),
15
+ 'other' => array( 'name' => __( 'Other', 'bestwebsoft' ) ),
16
  );
17
 
18
  $bws_plugins = array(
20
  'category' => array( 'security', 'recommended' ),
21
  'name' => 'Captcha',
22
  'description' => 'Protect WordPress website forms from spam entries by means of math logic.',
23
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/captcha/?k=d678516c0990e781edfb6a6c874f0b8a&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
24
  'settings' => 'admin.php?page=captcha.php',
25
  'pro_version' => 'captcha-pro/captcha_pro.php',
26
+ 'purchase' => 'http://bestwebsoft.com/products/wordpress/plugins/captcha/buy/?k=ff7d65e55e5e7f98f219be9ed711094e&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
27
  'pro_settings' => 'admin.php?page=captcha_pro.php'
28
  ),
29
  'car-rental/car-rental.php' => array(
30
  'category' => array( 'content-and-media' ),
31
  'name' => 'Car Rental',
32
  'description' => 'Create your personal car rental/booking and reservation website.',
33
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/car-rental/?k=444cac6df9a0d3a9763ab4753d24941b&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
34
  'settings' => 'admin.php?page=car-rental-settings',
35
  'pro_version' => 'car-rental-pro/car-rental-pro.php',
36
+ 'purchase' => 'http://bestwebsoft.com/products/wordpress/plugins/car-rental/buy/?k=7643d4f0698252fa1159de078d22269c&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
37
  'pro_settings' => 'admin.php?page=car-rental-pro-settings'
38
  ),
39
  'contact-form-plugin/contact_form.php' => array(
40
  'category' => array( 'other', 'recommended' ),
41
  'name' => 'Contact Form',
42
  'description' => 'Allow customers to reach you using secure contact form plugin any website must have.',
43
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/contact-form/?k=012327ef413e5b527883e031d43b088b&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
44
  'settings' => 'admin.php?page=contact_form.php',
45
  'pro_version' => 'contact-form-pro/contact_form_pro.php',
46
+ 'purchase' => 'http://bestwebsoft.com/products/wordpress/plugins/contact-form/buy/?k=773dc97bb3551975db0e32edca1a6d71&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
47
  'pro_settings' => 'admin.php?page=contact_form_pro.php'
48
  ),
49
  'contact-form-multi/contact-form-multi.php' => array(
50
  'category' => array( 'other', 'recommended' ),
51
  'name' => 'Contact Form Multi',
52
  'description' => 'Add unlimited number of contact forms to WordPress website.',
53
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/contact-form-multi/?k=83cdd9e72a9f4061122ad28a67293c72&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
54
  'settings' => '',
55
  'pro_version' => 'contact-form-multi-pro/contact-form-multi-pro.php',
56
+ 'purchase' => 'http://bestwebsoft.com/products/wordpress/plugins/contact-form-multi/buy/?k=fde3a18581c143654f060c398b07e8ac&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
57
  'pro_settings' => ''
58
  ),
59
  'contact-form-to-db/contact_form_to_db.php' => array(
60
  'category' => array( 'other', 'recommended' ),
61
  'name' => 'Contact Form to DB',
62
  'description' => 'Save and manage contact form messages. Never lose important data.',
63
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/contact-form-to-db/?k=ba3747d317c2692e4136ca096a8989d6&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
64
  'settings' => 'admin.php?page=cntctfrmtdb_settings',
65
  'pro_version' => 'contact-form-to-db-pro/contact_form_to_db_pro.php',
66
+ 'purchase' => 'http://bestwebsoft.com/products/wordpress/plugins/contact-form-to-db/buy/?k=6ce5f4a9006ec906e4db643669246c6a&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
67
  'pro_settings' => 'admin.php?page=cntctfrmtdbpr_settings'
68
  ),
69
  'custom-admin-page/custom-admin-page.php' => array(
70
  'category' => array( 'utilities' ),
71
  'name' => 'Custom Admin Page',
72
  'description' => 'Add unlimited custom pages to WordPress admin dashboard.',
73
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/custom-admin-page/?k=9ac03f16c25e845e8e055a221c3e1467&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
74
  'settings' => 'admin.php?page=custom-admin-page.php'
75
  ),
76
  'custom-fields-search/custom-fields-search.php' => array(
77
  'category' => array( 'content-and-media' ),
78
  'name' => 'Custom Fields Search',
79
  'description' => 'Add custom fields to WordPress website search results.',
80
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/custom-fields-search/?k=f3f8285bb069250c42c6ffac95ed3284&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
81
  'settings' => 'admin.php?page=custom_fields_search.php'
82
  ),
83
  'custom-search-plugin/custom-search-plugin.php' => array(
84
  'category' => array( 'content-and-media' ),
85
  'name' => 'Custom Search',
86
  'description' => 'Add custom post types to WordPress website search results.',
87
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/custom-search/?k=933be8f3a8b8719d95d1079d15443e29&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
88
  'settings' => 'admin.php?page=custom_search.php',
89
  'pro_version' => 'custom-search-pro/custom-search-pro.php',
90
+ 'purchase' => 'http://bestwebsoft.com/products/wordpress/plugins/custom-search/buy/?k=062b652ac6ac8ba863c9f30fc21d62c6&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
91
  'pro_settings' => 'admin.php?page=custom_search_pro.php'
92
+ ),
93
  'db-manager/db-manager.php' => array(
94
  'category' => array( 'utilities' ),
95
  'name' => 'DB Manager',
96
  'description' => 'Manage database and file system right from your WordPress admin dashboard.',
97
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/db-manager/?k=01ed9731780d87f85f5901064b7d76d8&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
98
+ 'install_url' => 'http://bestwebsoft.com/products/wordpress/plugins/db-manager/download/?k=01ed9731780d87f85f5901064b7d76d8&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
99
  'settings' => 'admin.php?page=db-manager.php',
100
+ 'icon' => bws_menu_url( 'icons/plugins/' ) . 'db-manager.png'
101
  ),
102
  'donate-button/donate.php' => array(
103
  'category' => array( 'other' ),
104
  'name' => 'Donate',
105
  'description' => 'Add PayPal and 2CO donate buttons to receive charity payments.',
106
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/donate/?k=a8b2e2a56914fb1765dd20297c26401b&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
107
  'settings' => 'admin.php?page=donate.php'
108
  ),
109
  'email-queue/email-queue.php' => array(
110
  'category' => array( 'other' ),
111
  'name' => 'Email Queue',
112
  'description' => 'Automatically add outgoing email messages to queue instead of sending them immediately.',
113
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/email-queue/?k=e345e1b6623f0dca119bc2d9433b130b&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
114
  'settings' => 'admin.php?page=mlq_settings'
115
  ),
116
  'error-log-viewer/error-log-viewer.php' => array(
117
  'category' => array( 'utilities' ),
118
  'name' => 'Error Log Viewer',
119
  'description' => 'Get latest error log messages to diagnose website problems. Define and fix issues faster.',
120
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/error-log-viewer/?k=da0de8bd2c7a0b2fea5df64d55a368b3&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
121
  'settings' => 'admin.php?page=rrrlgvwr.php&tab=settings'
122
  ),
123
  'facebook-button-plugin/facebook-button-plugin.php' => array(
124
  'category' => array( 'social' ),
125
  'name' => 'Facebook Button',
126
  'description' => 'Add Facebook Like, Share and Profile buttons to WordPress posts, pages and widgets.',
127
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/facebook-like-button/?k=05ec4f12327f55848335802581467d55&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
128
  'settings' => 'admin.php?page=facebook-button-plugin.php',
129
  'pro_version' => 'facebook-button-pro/facebook-button-pro.php',
130
+ 'purchase' => 'http://bestwebsoft.com/products/wordpress/plugins/facebook-like-button/buy/?k=8da168e60a831cfb3525417c333ad275&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
131
  'pro_settings' => 'admin.php?page=facebook-button-pro.php'
132
  ),
133
  'bws-featured-posts/bws-featured-posts.php' => array(
134
  'category' => array( 'content-and-media' ),
135
  'name' => 'Featured Posts',
136
  'description' => 'Add featured posts to WordPress posts or widgets. Highlight important information.',
137
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/featured-posts/?k=f0afb31185ba7c7d6d598528d69f6d97&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
138
  'settings' => 'admin.php?page=featured-posts.php'
139
+ ),
140
  'gallery-plugin/gallery-plugin.php' => array(
141
  'category' => array( 'content-and-media', 'recommended' ),
142
  'name' => 'Gallery',
143
  'description' => 'Add beautiful galleries, albums & images to your Wordpress website in few clicks.',
144
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/gallery/?k=2da21c0a64eec7ebf16337fa134c5f78&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
145
  'settings' => 'admin.php?page=gallery-plugin.php',
146
  'pro_version' => 'gallery-plugin-pro/gallery-plugin-pro.php',
147
+ 'purchase' => 'http://bestwebsoft.com/products/wordpress/plugins/gallery/buy/?k=382e5ce7c96a6391f5ffa5e116b37fe0&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
148
  'pro_settings' => 'admin.php?page=gallery-plugin-pro.php'
149
  ),
150
  'gallery-categories/gallery-categories.php' => array(
151
  'category' => array( 'content-and-media' ),
152
  'name' => 'Gallery Categories',
153
  'description' => 'Add unlimited gallery categories. Organize images to make the navigation through content easier.',
154
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/gallery-categories/?k=7d68c7bfec2486dc350c67fff57ad433&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
155
  'settings' => ''
156
  ),
157
  'google-one/google-plus-one.php' => array(
158
  'category' => array( 'social' ),
159
  'name' => 'Google +1',
160
  'description' => 'Add Google +1 Share, Follow, Hangout buttons and profile badge to WordPress posts, pages and widgets.',
161
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/google-plus-one/?k=ce7a88837f0a857b3a2bb142f470853c&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
162
  'settings' => 'admin.php?page=google-plus-one.php',
163
  'pro_version' => 'google-one-pro/google-plus-one-pro.php',
164
+ 'purchase' => 'http://bestwebsoft.com/products/wordpress/plugins/google-plus-one/buy/?k=f4b0a62d155c9df9601a0531ad5bd832&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
165
  'pro_settings' => 'admin.php?page=google-plus-one-pro.php'
166
  ),
167
  'adsense-plugin/adsense-plugin.php' => array(
168
  'category' => array( 'advertisement' ),
169
  'name' => 'Google AdSense',
170
  'description' => 'Add Adsense ads to pages, posts, custom posts, search results, categories, tags, pages, and widgets.',
171
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/google-adsense/?k=60e3979921e354feb0347e88e7d7b73d&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
172
  'settings' => 'admin.php?page=adsense-plugin.php',
173
  'pro_version' => 'adsense-pro/adsense-pro.php',
174
+ 'purchase' => 'http://bestwebsoft.com/products/wordpress/plugins/google-adsense/buy/?k=c23889b293d62aa1ad2c96513405f0e1&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
175
  'pro_settings' => 'admin.php?page=adsense-pro.php'
176
  ),
177
  'bws-google-analytics/bws-google-analytics.php' => array(
178
  'category' => array( 'site-stats' ),
179
  'name' => 'Google Analytics',
180
  'description' => 'Add Google Analytics code to WordPress website and track basic stats.',
181
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/bws-google-analytics/?k=261c74cad753fb279cdf5a5db63fbd43&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
182
  'settings' => 'admin.php?page=bws-google-analytics.php',
183
  'pro_version' => 'bws-google-analytics-pro/bws-google-analytics-pro.php',
184
+ 'purchase' => 'http://bestwebsoft.com/products/wordpress/plugins/bws-google-analytics/buy/?k=83796e84fec3f70ecfcc8894a73a6c4a&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
185
  'pro_settings' => 'admin.php?page=bws-google-analytics-pro.php'
186
  ),
187
  'google-captcha/google-captcha.php' => array(
188
  'category' => array( 'security', 'recommended' ),
189
  'name' => 'Google Captcha (reCAPTCHA)',
190
  'description' => 'Protect WordPress website forms from spam entries with Google Captcha (reCaptcha).',
191
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/google-captcha/?k=7b59fbe542acf950b29f3e020d5ad735&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
192
  'settings' => 'admin.php?page=google-captcha.php',
193
  'pro_version' => 'google-captcha-pro/google-captcha-pro.php',
194
+ 'purchase' => 'http://bestwebsoft.com/products/wordpress/plugins/google-captcha/buy/?k=773d30149acf1edc32e5c0766b96c134&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
195
  'pro_settings' => 'admin.php?page=google-captcha-pro.php'
196
  ),
197
  'bws-google-maps/bws-google-maps.php' => array(
198
  'category' => array( 'content-and-media' ),
199
  'name' => 'Google Maps',
200
  'description' => 'Add customized Google maps to WordPress posts, pages and widgets.',
201
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/bws-google-maps/?k=d8fac412d7359ebaa4ff53b46572f9f7&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
202
  'settings' => 'admin.php?page=bws-google-maps.php',
203
  'pro_version' => 'bws-google-maps-pro/bws-google-maps-pro.php',
204
+ 'purchase' => 'http://bestwebsoft.com/products/wordpress/plugins/bws-google-maps/buy/?k=117c3f9fc17f2c83ef430a8a9dc06f56&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
205
  'pro_settings' => 'admin.php?page=bws-google-maps-pro.php'
206
  ),
207
  'google-sitemap-plugin/google-sitemap-plugin.php' => array(
208
  'category' => array( 'other', 'recommended' ),
209
  'name' => 'Google Sitemap',
210
  'description' => 'Generate and add XML sitemap to WordPress website. Help search engines index your blog.',
211
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/google-sitemap/?k=5202b2f5ce2cf85daee5e5f79a51d806&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
212
  'settings' => 'admin.php?page=google-sitemap-plugin.php',
213
  'pro_version' => 'google-sitemap-pro/google-sitemap-pro.php',
214
+ 'purchase' => 'http://bestwebsoft.com/products/wordpress/plugins/google-sitemap/buy/?k=7ea384a5cc36cb4c22741caa20dcd56d&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
215
  'pro_settings' => 'admin.php?page=google-sitemap-pro.php'
216
+ ),
217
  'google-shortlink/google-shortlink.php' => array(
218
  'category' => array( 'other' ),
219
  'name' => 'Google Shortlink',
220
  'description' => 'Replace external WordPress website links with Google shortlinks and track click stats.',
221
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/google-shortlink/?k=afcf3eaed021bbbbeea1090e16bc22db&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
222
  'settings' => 'admin.php?page=gglshrtlnk_options'
223
+ ),
224
  'htaccess/htaccess.php' => array(
225
  'category' => array( 'security' ),
226
  'name' => 'Htaccess',
227
  'description' => 'Protect WordPress website – allow and deny access for certain IP addresses, hostnames, etc.',
228
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/htaccess/?k=2b865fcd56a935d22c5c4f1bba52ed46&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
229
  'settings' => 'admin.php?page=htaccess.php',
230
  'pro_version' => 'htaccess-pro/htaccess-pro.php',
231
+ 'purchase' => 'http://bestwebsoft.com/products/wordpress/plugins/htaccess/buy/?k=59e9209a32864be534fda77d5e591c15&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
232
  'pro_settings' => 'admin.php?page=htaccess-pro.php'
233
  ),
234
  'job-board/job-board.php' => array(
235
  'category' => array( 'content-and-media' ),
236
  'name' => 'Job Board',
237
  'description' => 'Create your personal job board and listing WordPress website. Search jobs, submit CV/resumes, choose candidates.',
238
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/job-board/?k=b0c504c9ce6edd6692e04222af3fed6f&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
239
  'settings' => 'admin.php?page=job-board.php'
240
  ),
241
  'bws-latest-posts/bws-latest-posts.php' => array(
242
  'category' => array( 'content-and-media' ),
243
  'name' => 'Latest Posts',
244
  'description' => 'Add latest posts or latest posts for selected categories widgets to WordPress website.',
245
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/latest-posts/?k=ef4e125aadadd8d219140daa184a9399&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
246
  'settings' => 'admin.php?page=latest-posts.php'
247
  ),
248
  'limit-attempts/limit-attempts.php' => array(
249
  'category' => array( 'security', 'recommended' ),
250
  'name' => 'Limit Attempts',
251
  'description' => 'Protect WordPress website against brute force attacks. Limit rate of login attempts.',
252
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/limit-attempts/?k=b14e1697ee4d008abcd4bd34d492573a&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
253
  'settings' => 'admin.php?page=limit-attempts.php',
254
  'pro_version' => 'limit-attempts-pro/limit-attempts-pro.php',
255
+ 'purchase' => 'http://bestwebsoft.com/products/wordpress/plugins/limit-attempts/buy/?k=9d42cdf22c7fce2c4b6b447e6a2856e0&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
256
  'pro_settings' => 'admin.php?page=limit-attempts-pro.php'
257
  ),
258
  'bws-linkedin/bws-linkedin.php' => array(
259
  'category' => array( 'social' ),
260
  'name' => 'LinkedIn',
261
  'description' => 'Add LinkedIn Share and Follow buttons to WordPress posts, pages and widgets. 5 plugins included – profile, insider, etc.',
262
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/linkedin/?k=d63c7319622ccc5f589dd2d545c1d77c&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
263
  'settings' => 'admin.php?page=linkedin.php',
264
  'pro_version' => 'bws-linkedin-pro/bws-linkedin-pro.php',
265
+ 'purchase' => 'http://bestwebsoft.com/products/wordpress/plugins/linkedin/buy/?k=41dcc36192994408d24b103a02134567&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
266
  'pro_settings' => 'admin.php?page=linkedin-pro.php'
267
  ),
268
  'multilanguage/multilanguage.php' => array(
269
  'category' => array( 'content-and-media', 'recommended' ),
270
  'name' => 'Multilanguage',
271
  'description' => 'Translate WordPress website content to other languages manually. Create multilingual pages, posts, widgets, menus, etc.',
272
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/multilanguage/?k=7d68c7bfec2486dc350c67fff57ad433&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
273
  'settings' => 'admin.php?page=mltlngg_settings',
274
  'pro_version' => 'multilanguage-pro/multilanguage-pro.php',
275
+ 'purchase' => 'http://bestwebsoft.com/products/wordpress/plugins/multilanguage/buy/?k=2d1121cd9a5ced583fc29eefd51bdf57&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
276
  'pro_settings' => 'admin.php?page=mltlnggpr_settings'
277
+ ),
278
  'pagination/pagination.php' => array(
279
  'category' => array( 'content-and-media' ),
280
  'name' => 'Pagination',
281
  'description' => 'Add customizable pagination to WordPress website. Split long content to multiple pages for better navigation.',
282
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/pagination/?k=22adb940256f149559ba8fedcd728ac8&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
283
+ 'settings' => 'admin.php?page=pagination.php',
284
+ 'pro_version' => 'pagination-pro/pagination-pro.php',
285
+ 'purchase' => 'http://bestwebsoft.com/products/wordpress/plugins/pagination/buy/?k=b87201d5a0505c621d0b14f4e8d4ccd6&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
286
+ 'pro_settings' => 'admin.php?page=pagination-pro.php'
287
  ),
288
  'pdf-print/pdf-print.php' => array(
289
  'category' => array( 'other' ),
290
  'name' => 'PDF & Print',
291
  'description' => 'Generate PDF files and print WordPress posts/pages. Customize document header/footer styles and appearance.',
292
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/pdf-print/?k=bfefdfb522a4c0ff0141daa3f271840c&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
293
  'settings' => 'admin.php?page=pdf-print.php',
294
  'pro_version' => 'pdf-print-pro/pdf-print-pro.php',
295
+ 'purchase' => 'http://bestwebsoft.com/products/wordpress/plugins/pdf-print/buy/?k=fd43a0e659ddc170a9060027cbfdcc3a&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
296
  'pro_settings' => 'admin.php?page=pdf-print-pro.php'
297
  ),
298
  'bws-pinterest/bws-pinterest.php' => array(
299
  'category' => array( 'social' ),
300
  'name' => 'Pinterest',
301
  'description' => 'Add Pinterest Follow, Pin It buttons and profile widgets (Pin, Board, Profile) to WordPress posts, pages and widgets.',
302
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/pinterest/?k=504107b6213f247a67fe7ffb94e97c78&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
303
  'settings' => 'admin.php?page=pinterest.php',
304
  'pro_version' => 'bws-pinterest-pro/bws-pinterest-pro.php',
305
+ 'purchase' => 'http://bestwebsoft.com/products/wordpress/plugins/pinterest/buy/?k=ab0069edd1914a3ca8f541bfd88bb0bb&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
306
  'pro_settings' => 'admin.php?page=pinterest-pro.php'
307
  ),
308
  'bws-popular-posts/bws-popular-posts.php' => array(
309
  'category' => array( 'content-and-media', 'recommended' ),
310
  'name' => 'Popular Posts',
311
  'description' => 'Track views, comments and add most popular posts to Wordpress widgets.',
312
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/popular-posts/?k=4d529f116d2b7f7df3a78018c383f975&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
313
  'settings' => 'admin.php?page=popular-posts.php'
314
  ),
315
  'portfolio/portfolio.php' => array(
316
  'category' => array( 'content-and-media', 'recommended' ),
317
  'name' => 'Portfolio',
318
  'description' => 'Create your personal portfolio WordPress website. Manage and showcase past projects to get more clients.',
319
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/portfolio/?k=1249a890c5b7bba6bda3f528a94f768b&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
320
  'settings' => 'admin.php?page=portfolio.php',
321
  'pro_version' => 'portfolio-pro/portfolio-pro.php',
322
+ 'purchase' => 'http://bestwebsoft.com/products/wordpress/plugins/portfolio/buy/?k=2cc716026197d36538a414b728e49fdd&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
323
  'pro_settings' => 'admin.php?page=portfolio-pro.php'
324
  ),
325
  'post-to-csv/post-to-csv.php' => array(
326
  'category' => array( 'utilities' ),
327
  'name' => 'Post to CSV',
328
  'description' => 'Export WordPress posts to CSV file format easily. Configure data order.',
329
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/post-to-csv/?k=653aa55518ae17409293a7a894268b8f&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
330
  'settings' => 'admin.php?page=post-to-csv.php'
331
  ),
332
  'profile-extra-fields/profile-extra-fields.php' => array(
333
  'category' => array( 'management' ),
334
  'name' => 'Profile Extra Fields',
335
  'description' => 'Add extra fields to default WordPress user profile. The easiest way to create and manage additional custom values.',
336
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/profile-extra-fields/?k=fe3b6c3dbc80bd4b1cf9a27a2f339820&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
337
  'settings' => 'admin.php?page=profile-extra-fields.php'
338
  ),
339
  'promobar/promobar.php' => array(
340
  'category' => array( 'advertisement' ),
341
  'name' => 'PromoBar',
342
  'description' => 'Add and display HTML advertisement on WordPress website. Customize bar styles and appearance.',
343
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/promobar/?k=619eac2232d9cfa382c4e678c3b14766&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
344
  'settings' => 'admin.php?page=promobar.php',
345
  'pro_version' => 'promobar-pro/promobar-pro.php',
346
+ 'purchase' => 'http://bestwebsoft.com/products/wordpress/plugins/promobar/buy/?k=a9b09708502f12a1483532ba12fe2103&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
347
  'pro_settings' => 'admin.php?page=promobar-pro.php'
348
  ),
349
  'quotes-and-tips/quotes-and-tips.php' => array(
350
  'category' => array( 'content-and-media' ),
351
  'name' => 'Quotes and Tips',
352
  'description' => 'Add customizable quotes and tips blocks to WordPress posts, pages and widgets.',
353
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/quotes-and-tips/?k=5738a4e85a798c4a5162240c6515098d&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
354
  'settings' => 'admin.php?page=quotes-and-tips.php'
355
  ),
356
+ 'rating-bws/rating-bws.php' => array(
357
+ 'category' => array( 'content-and-media' ),
358
+ 'name' => 'Rating',
359
+ 'description' => 'Add rating plugin to your WordPress website to receive feedback from your customers.',
360
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/rating/?k=c00e0824bb999735a3224616ef51f4c5&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
361
+ 'settings' => 'admin.php?page=rating.php'
362
+ ),
363
  'realty/realty.php' => array(
364
  'category' => array( 'content-and-media' ),
365
  'name' => 'Realty',
366
  'description' => 'Create your personal real estate WordPress website. Sell, rent and buy properties. Add, search and browse listings easily.',
367
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/realty/?k=d55de979dbbbb7af0b2ff1d7f43884fa&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
368
  'settings' => 'admin.php?page=realty_settings',
369
  'pro_version' => 'realty-pro/realty-pro.php',
370
+ 'purchase' => 'http://bestwebsoft.com/products/wordpress/plugins/realty/buy/?k=c7791f0a72acfb36f564a614dbccb474&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
371
  'pro_settings' => 'admin.php?page=realty_pro_settings'
372
+ ),
373
  're-attacher/re-attacher.php' => array(
374
  'category' => array( 'utilities' ),
375
  'name' => 'Re-attacher',
376
  'description' => 'Attach, unattach and re-attach media files quickly to WordPress posts and pages.',
377
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/re-attacher/?k=4d529f116d2b7f7df3a78018c383f975&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
378
  'settings' => 'admin.php?page=re-attacher.php'
379
  ),
380
  'relevant/related-posts-plugin.php' => array(
381
  'category' => array( 'content-and-media', 'recommended' ),
382
  'name' => 'Relevant - Related Posts',
383
  'description' => 'Add related posts to WordPress posts or widgets. Link your readers to relevant content.',
384
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/related-posts/?k=73fb737037f7141e66415ec259f7e426&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
385
  'settings' => 'admin.php?page=related-posts-plugin.php'
386
  ),
387
  'sender/sender.php' => array(
388
  'category' => array( 'social', 'recommended' ),
389
  'name' => 'Sender',
390
  'description' => 'Send bulk email messages to WordPress users. Custom templates, advanced settings and detailed reports.',
391
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/sender/?k=89c297d14ba85a8417a0f2fc05e089c7&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
392
  'settings' => 'admin.php?page=sndr_settings',
393
  'pro_version' => 'sender-pro/sender-pro.php',
394
+ 'purchase' => 'http://bestwebsoft.com/products/wordpress/plugins/sender/buy/?k=dc5d1a87bdc8aeab2de40ffb99b38054&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
395
  'pro_settings' => 'admin.php?page=sndrpr_settings'
396
  ),
397
  'bws-smtp/bws-smtp.php' => array(
398
  'category' => array( 'utilities' ),
399
  'name' => 'SMTP',
400
  'description' => 'Configure SMTP server to receive email messages from WordPress to Gmail, Yahoo, Hotmail and other services.',
401
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/smtp/?k=0546419f962704429ad2d9b88567752f&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
402
  'settings' => 'admin.php?page=bwssmtp_settings'
403
  ),
404
  'social-buttons-pack/social-buttons-pack.php' => array(
405
  'category' => array( 'social', 'recommended' ),
406
  'name' => 'Social Buttons Pack',
407
  'description' => 'Add social media buttons and widgets to WordPress posts, pages and widgets. FB, Twitter, G+1, Pinterest, LinkedIn.',
408
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/social-buttons-pack/?k=b6440fad9f54274429e536b0c61b42da&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
409
+ 'settings' => 'admin.php?page=social-buttons.php',
410
+ 'pro_version' => 'social-buttons-pack-pro/social-buttons-pack-pro.php',
411
+ 'purchase' => 'http://bestwebsoft.com/products/wordpress/plugins/social-buttons-pack/buy/?k=e7059cacde0d275b224a5d995c9160fd&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
412
+ 'pro_settings' => 'admin.php?page=social-buttons.php'
413
  ),
414
  'subscriber/subscriber.php' => array(
415
  'category' => array( 'social', 'recommended' ),
416
  'name' => 'Subscriber',
417
  'description' => 'Add email newsletter sign up form to WordPress posts, pages and widgets. Collect data and subscribe your users.',
418
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/subscriber/?k=a4ecc1b7800bae7329fbe8b4b04e9c88&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
419
  'settings' => 'admin.php?page=sbscrbr_settings_page',
420
  'pro_version' => 'subscriber-pro/subscriber-pro.php',
421
+ 'purchase' => 'http://bestwebsoft.com/products/wordpress/plugins/subscriber/buy/?k=02dbb8b549925d9b74e70adc2a7282e4&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
422
  'pro_settings' => 'admin.php?page=sbscrbrpr_settings_page'
423
  ),
424
  'bws-testimonials/bws-testimonials.php' => array(
425
  'category' => array( 'content-and-media', 'recommended' ),
426
  'name' => 'Testimonials',
427
  'description' => 'Add testimonials and feedbacks from your customers to WordPress posts, pages and widgets.',
428
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/testimonials/?k=3fe4bb89dc901c98e43a113e08f8db73&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
429
  'settings' => 'admin.php?page=testimonials.php'
430
  ),
431
  'timesheet/timesheet.php' => array(
432
  'category' => array( 'management' ),
433
  'name' => 'Timesheet',
434
  'description' => 'Best timesheet plugin for WordPress. Track employee time, streamline attendance and generate reports.',
435
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/timesheet/?k=06a58bb78c17a43df01825925f05a5c1&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
436
+ 'settings' => 'admin.php?page=timesheet_settings',
437
+ 'pro_version' => 'timesheet-pro/timesheet-pro.php',
438
+ 'purchase' => 'http://bestwebsoft.com/products/wordpress/plugins/timesheet/buy/?k=a448ce4cab0d365b7774c9bc3903b851&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
439
+ 'pro_settings' => 'admin.php?page=timesheet_pro_settings'
440
+ ),
441
  'twitter-plugin/twitter.php' => array(
442
  'category' => array( 'social' ),
443
  'name' => 'Twitter',
444
  'description' => 'Add Twitter Follow, Tweet, Hashtag, and Mention buttons to WordPress posts, pages and widgets.',
445
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/twitter/?k=f8cb514e25bd7ec4974d64435c5eb333&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
446
  'settings' => 'admin.php?page=twitter.php',
447
  'pro_version' => 'twitter-pro/twitter-pro.php',
448
+ 'purchase' => 'http://bestwebsoft.com/products/wordpress/plugins/twitter/buy/?k=63ecbf0cc9cebf060b5a3c9362299700&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
449
  'pro_settings' => 'admin.php?page=twitter-pro.php'
450
  ),
451
  'updater/updater.php' => array(
452
  'category' => array( 'utilities', 'recommended' ),
453
  'name' => 'Updater',
454
  'description' => 'Automatically check and update WordPress website core with all installed plugins and themes to the latest versions.',
455
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/updater/?k=66f3ecd4c1912009d395c4bb30f779d1&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
456
  'settings' => 'admin.php?page=updater-options',
457
  'pro_version' => 'updater-pro/updater_pro.php',
458
+ 'purchase' => 'http://bestwebsoft.com/products/wordpress/plugins/updater/buy/?k=cf633acbefbdff78545347fe08a3aecb&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
459
  'pro_settings' => 'admin.php?page=updater-pro-options'
460
  ),
461
  'user-role/user-role.php' => array(
462
  'category' => array( 'utilities' ),
463
  'name' => 'User Role',
464
  'description' => 'Powerful user role management plugin for WordPress website. Create, edit, copy, and delete user roles.',
465
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/user-role/?k=dfe2244835c6fbf601523964b3f34ccc&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
466
  'settings' => 'admin.php?page=user-role.php',
467
  'pro_version' => 'user-role-pro/user-role-pro.php',
468
+ 'purchase' => 'http://bestwebsoft.com/products/wordpress/plugins/user-role/buy/?k=cfa9cea6613fb3d7c0a3622fa2faaf46&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
469
  'pro_settings' => 'admin.php?page=user-role-pro.php'
470
+ ),
471
  'visitors-online/visitors-online.php' => array(
472
  'category' => array( 'site-stats' ),
473
  'name' => 'Visitors Online',
474
  'description' => 'Display live count of online visitors who are currently browsing your WordPress website.',
475
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/visitors-online/?k=93c28013a4f830671b3bba9502ed5177&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
476
  'settings' => 'admin.php?page=visitors-online.php',
477
  'pro_version' => 'visitors-online-pro/visitors-online-pro.php',
478
+ 'purchase' => 'http://bestwebsoft.com/products/wordpress/plugins/visitors-online/buy/?k=f9a746075ff8a0a6cb192cb46526afd2&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
479
  'pro_settings' => 'admin.php?page=visitors-online-pro.php'
480
+ ),
481
  'zendesk-help-center/zendesk-help-center.php' => array(
482
  'category' => array( 'utilities' ),
483
  'name' => 'Zendesk Help Center',
484
  'description' => 'Backup and export Zendesk Help Center content automatically to your WordPress website database.',
485
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/zendesk-help-center/?k=2a5fd2f4b2f4bde46f2ca44b8d15846d&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
486
  'settings' => 'admin.php?page=zendesk_hc.php&action=settings',
487
  'pro_version' => 'zendesk-help-center-pro/zendesk-help-center-pro.php',
488
+ 'purchase' => 'http://bestwebsoft.com/products/wordpress/plugins/zendesk-help-center/buy/?k=45199e4538b5befe4d9566868a61a3aa&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
489
  'pro_settings' => 'admin.php?page=zendesk_hc_pro.php&tab=settings'
490
  )
491
+ );
492
 
493
+ $themes = array(
494
+ (object) array(
495
  'name' => 'Opening',
496
  'slug' => 'opening',
497
+ 'href' => 'http://bestwebsoft.com/products/wordpress/themes/opening-job-board-wordpress-theme/'
498
  ),
499
+ (object) array(
500
  'name' => 'Real Estate',
501
  'slug' => 'realestate',
502
+ 'href' => 'http://bestwebsoft.com/products/wordpress/themes/real-estate-creative-wordpress-theme/'
503
  ),
504
+ (object) array(
505
  'name' => 'Renty',
506
  'slug' => 'renty',
507
+ 'href' => 'http://bestwebsoft.com/products/wordpress/themes/renty-car-rental-booking-wordpress-theme/'
508
  ),
509
+ (object) array(
510
  'name' => 'Unity',
511
  'slug' => 'unity',
512
+ 'href' => 'http://bestwebsoft.com/products/wordpress/themes/unity-multipurpose-wordpress-theme/'
513
  )
514
  );
contact_form.php CHANGED
@@ -1,12 +1,12 @@
1
  <?php
2
  /*
3
  Plugin Name: Contact Form by BestWebSoft
4
- Plugin URI: http://bestwebsoft.com/products/contact-form/
5
  Description: Simple contact form plugin any WordPress website must have.
6
  Author: BestWebSoft
7
  Text Domain: contact-form-plugin
8
  Domain Path: /languages
9
- Version: 4.0.3
10
  Author URI: http://bestwebsoft.com/
11
  License: GPLv2 or later
12
  */
@@ -1042,7 +1042,7 @@ if ( ! function_exists( 'cntctfrm_settings_page' ) ) {
1042
  if ( ( ! isset( $_GET['action'] ) || ( 'go_pro' != $_GET['action'] && 'custom_code' != $_GET['action'] ) ) && ! $contact_form_multi_active ) { ?>
1043
  <h3 class="nav-tab-wrapper">
1044
  <span class="nav-tab nav-tab-active"><?php _e( 'NEW_FORM', 'contact-form-plugin' )?></span>
1045
- <a id="cntctfrm_show_multi_notice" class="nav-tab" target="_new" href="http://bestwebsoft.com/products/contact-form-multi/?k=747ca825fb44711e2d24e40697747bc6&amp;pn=77&amp;v=<?php echo $cntctfrm_plugin_info["Version"]; ?>&amp;wp_v=<?php echo $wp_version; ?>" title="<?php _e( "If you want to create multiple contact forms, please install the Contact Form Multi plugin.", 'contact-form-plugin' ); ?>">+</a>
1046
  </h3>
1047
  <?php }
1048
  if ( ! isset( $_GET['action'] ) || 'additional' == $_GET['action'] ) {
@@ -1122,7 +1122,7 @@ if ( ! function_exists( 'cntctfrm_settings_page' ) ) {
1122
  <div class="bws_info">
1123
  <?php _e( 'Unlock premium options by upgrading to Pro version', 'contact-form-plugin' ); ?>
1124
  </div>
1125
- <a class="bws_button" href="http://bestwebsoft.com/products/contact-form/?k=697c5e74f39779ce77850e11dbe21962&amp;pn=77&amp;v=<?php echo $cntctfrm_plugin_info["Version"]; ?>&amp;wp_v=<?php echo $wp_version; ?>" target="_blank" title="Contact Form Pro">
1126
  <?php _e( 'Learn More', 'contact-form-plugin' ); ?>
1127
  </a>
1128
  <div class="clear"></div>
@@ -1165,7 +1165,7 @@ if ( ! function_exists( 'cntctfrm_settings_page' ) ) {
1165
  } else { ?>
1166
  <label><input disabled="disabled" type="checkbox" name="cntctfrm_save_email_to_db" value="1" />
1167
  <span class="bws_info">(<?php _e( 'Using', 'contact-form-plugin' ); ?> Contact Form to DB by BestWebSoft)
1168
- <?php printf( '<a href="http://bestwebsoft.com/products/contact-form-to-db/?k=19d806f45d866e70545de83169b274f2&amp;pn=77&amp;v=%s&amp;wp_v=%s"> %s Contact Form to DB</a>', $cntctfrm_plugin_info["Version"], $wp_version, __( 'Download', 'contact-form-plugin' ) ); ?>
1169
  </span>
1170
  </label>
1171
  <?php } ?>
@@ -1413,7 +1413,7 @@ if ( ! function_exists( 'cntctfrm_settings_page' ) ) {
1413
  <div class="bws_info">
1414
  <?php _e( 'Unlock premium options by upgrading to Pro version', 'contact-form-plugin' ); ?>
1415
  </div>
1416
- <a class="bws_button" href="http://bestwebsoft.com/products/contact-form/?k=697c5e74f39779ce77850e11dbe21962&amp;pn=77&amp;v=<?php echo $cntctfrm_plugin_info["Version"]; ?>&amp;wp_v=<?php echo $wp_version; ?>" target="_blank" title="Contact Form Pro">
1417
  <?php _e( 'Learn More', 'contact-form-plugin' ); ?>
1418
  </a>
1419
  <div class="clear"></div>
@@ -1489,7 +1489,7 @@ if ( ! function_exists( 'cntctfrm_settings_page' ) ) {
1489
  } else { ?>
1490
  <label><input disabled="disabled" type="checkbox" name="cntctfrm_display_subscriber" value="1" /> Subscriber by BestWebSoft</label>
1491
  <span class="bws_info">
1492
- <?php printf( '<a href="http://bestwebsoft.com/products/subscriber/?k=a9dfd3fa8513784c36622993b350b19e&amp;pn=77&amp;v=%s&amp;wp_v=%s">%s Subscriber</a>', $cntctfrm_plugin_info["Version"], $wp_version, __( 'Download', 'contact-form-plugin' ) ); ?>
1493
  </span>
1494
  <?php } ?>
1495
  </div>
@@ -1523,7 +1523,7 @@ if ( ! function_exists( 'cntctfrm_settings_page' ) ) {
1523
  } else { ?>
1524
  <label><input disabled="disabled" type="checkbox" name="cntctfrm_display_captcha" value="1" /> Captcha by BestWebSoft</label>
1525
  <span class="bws_info">
1526
- <?php printf( '<a href="http://bestwebsoft.com/products/captcha/?k=19ac1e9b23bea947cfc4a9b8e3326c03&amp;pn=77&amp;v=%s&amp;wp_v=%s">%s Captcha</a>', $cntctfrm_plugin_info["Version"], $wp_version, __( 'Download', 'contact-form-plugin' ) ) ?>
1527
  </span>
1528
  <?php } ?>
1529
  </div>
@@ -1556,7 +1556,7 @@ if ( ! function_exists( 'cntctfrm_settings_page' ) ) {
1556
  <?php }
1557
  } else { ?>
1558
  <label><input disabled="disabled" type="checkbox" name="cntctfrm_display_google_captcha" value="1" /> Google Captcha (reCaptcha) by BestWebSoft</label> <span class="bws_info">
1559
- <?php printf( '<a href="http://bestwebsoft.com/products/google-captcha/?k=7d74e61dd1cea23d0e9bf2fa88b5b117&amp;pn=77&amp;v=%s&amp;wp_v=%s">%s Google Captcha</a>', $cntctfrm_plugin_info["Version"], $wp_version, __( 'Download', 'contact-form-plugin' ) ) ?>
1560
  </span>
1561
  <?php } ?>
1562
  </div>
@@ -1579,7 +1579,7 @@ if ( ! function_exists( 'cntctfrm_settings_page' ) ) {
1579
  <div class="bws_info">
1580
  <?php _e( 'Unlock premium options by upgrading to Pro version', 'contact-form-plugin' ); ?>
1581
  </div>
1582
- <a class="bws_button" href="http://bestwebsoft.com/products/contact-form/?k=697c5e74f39779ce77850e11dbe21962&amp;pn=77&amp;v=<?php echo $cntctfrm_plugin_info["Version"]; ?>&amp;wp_v=<?php echo $wp_version; ?>" target="_blank" title="Contact Form Pro">
1583
  <?php _e( 'Learn More', 'contact-form-plugin' ); ?>
1584
  </a>
1585
  <div class="clear"></div>
@@ -1801,7 +1801,7 @@ if ( ! function_exists( 'cntctfrm_settings_page' ) ) {
1801
  <div class="bws_info">
1802
  <?php _e( 'Unlock premium options by upgrading to Pro version', 'contact-form-plugin' ); ?>
1803
  </div>
1804
- <a class="bws_button" href="http://bestwebsoft.com/products/contact-form/?k=697c5e74f39779ce77850e11dbe21962&amp;pn=77&amp;v=<?php echo $cntctfrm_plugin_info["Version"]; ?>&amp;wp_v=<?php echo $wp_version; ?>" target="_blank" title="Contact Form Pro">
1805
  <?php _e( 'Learn More', 'contact-form-plugin' ); ?>
1806
  </a>
1807
  <div class="clear"></div>
@@ -2076,7 +2076,7 @@ if ( ! function_exists( 'cntctfrm_settings_page' ) ) {
2076
  <div class="bws_info">
2077
  <?php _e( 'Unlock premium options by upgrading to Pro version', 'contact-form-plugin' ); ?>
2078
  </div>
2079
- <a class="bws_button" href="http://bestwebsoft.com/products/contact-form/?k=697c5e74f39779ce77850e11dbe21962&amp;pn=77&amp;v=<?php echo $cntctfrm_plugin_info["Version"]; ?>&amp;wp_v=<?php echo $wp_version; ?>" target="_blank" title="Contact Form Pro">
2080
  <?php _e( 'Learn More', 'contact-form-plugin' ); ?>
2081
  </a>
2082
  <div class="clear"></div>
@@ -3394,7 +3394,7 @@ if ( ! function_exists ( 'cntctfrm_admin_head' ) ) {
3394
  'buttons' => array(
3395
  array(
3396
  'type' => 'link',
3397
- 'link' => 'http://bestwebsoft.com/products/contact-form-multi/?k=747ca825fb44711e2d24e40697747bc6&pn=77&v=' . $cntctfrm_plugin_info["Version"] . '&wp_v=' . $wp_version,
3398
  'text' => __( 'Learn more', 'contact-form-plugin' ),
3399
  ),
3400
  'close' => array(
@@ -3630,7 +3630,7 @@ if ( ! function_exists ( 'cntctfrm_plugin_banner' ) ) {
3630
  <span><?php _e( "Manage messages that have been sent from your website.", 'contact-form-plugin' ); ?></span>
3631
  </div>
3632
  <div class="button_div">
3633
- <a class="button" target="_blank" href="http://bestwebsoft.com/products/contact-form-to-db/?k=6ebf0743736411607343ad391dc3b436&amp;pn=77&amp;v=<?php echo $cntctfrm_plugin_info["Version"]; ?>&amp;wp_v=<?php echo $wp_version; ?>"><?php _e( 'Learn More', 'contact-form-plugin' ); ?></a>
3634
  </div>
3635
  </div>
3636
  </div>
1
  <?php
2
  /*
3
  Plugin Name: Contact Form by BestWebSoft
4
+ Plugin URI: http://bestwebsoft.com/products/wordpress/plugins/contact-form/
5
  Description: Simple contact form plugin any WordPress website must have.
6
  Author: BestWebSoft
7
  Text Domain: contact-form-plugin
8
  Domain Path: /languages
9
+ Version: 4.0.4
10
  Author URI: http://bestwebsoft.com/
11
  License: GPLv2 or later
12
  */
1042
  if ( ( ! isset( $_GET['action'] ) || ( 'go_pro' != $_GET['action'] && 'custom_code' != $_GET['action'] ) ) && ! $contact_form_multi_active ) { ?>
1043
  <h3 class="nav-tab-wrapper">
1044
  <span class="nav-tab nav-tab-active"><?php _e( 'NEW_FORM', 'contact-form-plugin' )?></span>
1045
+ <a id="cntctfrm_show_multi_notice" class="nav-tab" target="_new" href="http://bestwebsoft.com/products/wordpress/plugins/contact-form-multi/?k=747ca825fb44711e2d24e40697747bc6&amp;pn=77&amp;v=<?php echo $cntctfrm_plugin_info["Version"]; ?>&amp;wp_v=<?php echo $wp_version; ?>" title="<?php _e( "If you want to create multiple contact forms, please install the Contact Form Multi plugin.", 'contact-form-plugin' ); ?>">+</a>
1046
  </h3>
1047
  <?php }
1048
  if ( ! isset( $_GET['action'] ) || 'additional' == $_GET['action'] ) {
1122
  <div class="bws_info">
1123
  <?php _e( 'Unlock premium options by upgrading to Pro version', 'contact-form-plugin' ); ?>
1124
  </div>
1125
+ <a class="bws_button" href="http://bestwebsoft.com/products/wordpress/plugins/contact-form/?k=697c5e74f39779ce77850e11dbe21962&amp;pn=77&amp;v=<?php echo $cntctfrm_plugin_info["Version"]; ?>&amp;wp_v=<?php echo $wp_version; ?>" target="_blank" title="Contact Form Pro">
1126
  <?php _e( 'Learn More', 'contact-form-plugin' ); ?>
1127
  </a>
1128
  <div class="clear"></div>
1165
  } else { ?>
1166
  <label><input disabled="disabled" type="checkbox" name="cntctfrm_save_email_to_db" value="1" />
1167
  <span class="bws_info">(<?php _e( 'Using', 'contact-form-plugin' ); ?> Contact Form to DB by BestWebSoft)
1168
+ <?php printf( '<a href="http://bestwebsoft.com/products/wordpress/plugins/contact-form-to-db/?k=19d806f45d866e70545de83169b274f2&amp;pn=77&amp;v=%s&amp;wp_v=%s"> %s Contact Form to DB</a>', $cntctfrm_plugin_info["Version"], $wp_version, __( 'Download', 'contact-form-plugin' ) ); ?>
1169
  </span>
1170
  </label>
1171
  <?php } ?>
1413
  <div class="bws_info">
1414
  <?php _e( 'Unlock premium options by upgrading to Pro version', 'contact-form-plugin' ); ?>
1415
  </div>
1416
+ <a class="bws_button" href="http://bestwebsoft.com/products/wordpress/plugins/contact-form/?k=697c5e74f39779ce77850e11dbe21962&amp;pn=77&amp;v=<?php echo $cntctfrm_plugin_info["Version"]; ?>&amp;wp_v=<?php echo $wp_version; ?>" target="_blank" title="Contact Form Pro">
1417
  <?php _e( 'Learn More', 'contact-form-plugin' ); ?>
1418
  </a>
1419
  <div class="clear"></div>
1489
  } else { ?>
1490
  <label><input disabled="disabled" type="checkbox" name="cntctfrm_display_subscriber" value="1" /> Subscriber by BestWebSoft</label>
1491
  <span class="bws_info">
1492
+ <?php printf( '<a href="http://bestwebsoft.com/products/wordpress/plugins/subscriber/?k=a9dfd3fa8513784c36622993b350b19e&amp;pn=77&amp;v=%s&amp;wp_v=%s">%s Subscriber</a>', $cntctfrm_plugin_info["Version"], $wp_version, __( 'Download', 'contact-form-plugin' ) ); ?>
1493
  </span>
1494
  <?php } ?>
1495
  </div>
1523
  } else { ?>
1524
  <label><input disabled="disabled" type="checkbox" name="cntctfrm_display_captcha" value="1" /> Captcha by BestWebSoft</label>
1525
  <span class="bws_info">
1526
+ <?php printf( '<a href="http://bestwebsoft.com/products/wordpress/plugins/captcha/?k=19ac1e9b23bea947cfc4a9b8e3326c03&amp;pn=77&amp;v=%s&amp;wp_v=%s">%s Captcha</a>', $cntctfrm_plugin_info["Version"], $wp_version, __( 'Download', 'contact-form-plugin' ) ) ?>
1527
  </span>
1528
  <?php } ?>
1529
  </div>
1556
  <?php }
1557
  } else { ?>
1558
  <label><input disabled="disabled" type="checkbox" name="cntctfrm_display_google_captcha" value="1" /> Google Captcha (reCaptcha) by BestWebSoft</label> <span class="bws_info">
1559
+ <?php printf( '<a href="http://bestwebsoft.com/products/wordpress/plugins/google-captcha/?k=7d74e61dd1cea23d0e9bf2fa88b5b117&amp;pn=77&amp;v=%s&amp;wp_v=%s">%s Google Captcha</a>', $cntctfrm_plugin_info["Version"], $wp_version, __( 'Download', 'contact-form-plugin' ) ) ?>
1560
  </span>
1561
  <?php } ?>
1562
  </div>
1579
  <div class="bws_info">
1580
  <?php _e( 'Unlock premium options by upgrading to Pro version', 'contact-form-plugin' ); ?>
1581
  </div>
1582
+ <a class="bws_button" href="http://bestwebsoft.com/products/wordpress/plugins/contact-form/?k=697c5e74f39779ce77850e11dbe21962&amp;pn=77&amp;v=<?php echo $cntctfrm_plugin_info["Version"]; ?>&amp;wp_v=<?php echo $wp_version; ?>" target="_blank" title="Contact Form Pro">
1583
  <?php _e( 'Learn More', 'contact-form-plugin' ); ?>
1584
  </a>
1585
  <div class="clear"></div>
1801
  <div class="bws_info">
1802
  <?php _e( 'Unlock premium options by upgrading to Pro version', 'contact-form-plugin' ); ?>
1803
  </div>
1804
+ <a class="bws_button" href="http://bestwebsoft.com/products/wordpress/plugins/contact-form/?k=697c5e74f39779ce77850e11dbe21962&amp;pn=77&amp;v=<?php echo $cntctfrm_plugin_info["Version"]; ?>&amp;wp_v=<?php echo $wp_version; ?>" target="_blank" title="Contact Form Pro">
1805
  <?php _e( 'Learn More', 'contact-form-plugin' ); ?>
1806
  </a>
1807
  <div class="clear"></div>
2076
  <div class="bws_info">
2077
  <?php _e( 'Unlock premium options by upgrading to Pro version', 'contact-form-plugin' ); ?>
2078
  </div>
2079
+ <a class="bws_button" href="http://bestwebsoft.com/products/wordpress/plugins/contact-form/?k=697c5e74f39779ce77850e11dbe21962&amp;pn=77&amp;v=<?php echo $cntctfrm_plugin_info["Version"]; ?>&amp;wp_v=<?php echo $wp_version; ?>" target="_blank" title="Contact Form Pro">
2080
  <?php _e( 'Learn More', 'contact-form-plugin' ); ?>
2081
  </a>
2082
  <div class="clear"></div>
3394
  'buttons' => array(
3395
  array(
3396
  'type' => 'link',
3397
+ 'link' => 'http://bestwebsoft.com/products/wordpress/plugins/contact-form-multi/?k=747ca825fb44711e2d24e40697747bc6&pn=77&v=' . $cntctfrm_plugin_info["Version"] . '&wp_v=' . $wp_version,
3398
  'text' => __( 'Learn more', 'contact-form-plugin' ),
3399
  ),
3400
  'close' => array(
3630
  <span><?php _e( "Manage messages that have been sent from your website.", 'contact-form-plugin' ); ?></span>
3631
  </div>
3632
  <div class="button_div">
3633
+ <a class="button" target="_blank" href="http://bestwebsoft.com/products/wordpress/plugins/contact-form-to-db/?k=6ebf0743736411607343ad391dc3b436&amp;pn=77&amp;v=<?php echo $cntctfrm_plugin_info["Version"]; ?>&amp;wp_v=<?php echo $wp_version; ?>"><?php _e( 'Learn More', 'contact-form-plugin' ); ?></a>
3634
  </div>
3635
  </div>
3636
  </div>
languages/contact-form-plugin-fr_FR.mo CHANGED
Binary file
languages/contact-form-plugin-fr_FR.po CHANGED
@@ -2,8 +2,8 @@ msgid ""
2
  msgstr ""
3
  "Project-Id-Version: contact-form-plugin\n"
4
  "Report-Msgid-Bugs-To: \n"
5
- "POT-Creation-Date: 2016-09-29 16:04+0300\n"
6
- "PO-Revision-Date: 2016-09-29 16:04+0300\n"
7
  "Last-Translator: Luc Capronnier <lcapronnier@yahoo.com>\n"
8
  "Language-Team: Luc Capronnier <lcapronnier@yahoo.com>\n"
9
  "Language: fr_FR\n"
@@ -948,6 +948,9 @@ msgid ""
948
  "replace it with %3s. If you close this message it'll appear again after "
949
  "deprecated shortcode reuse."
950
  msgstr ""
 
 
 
951
 
952
  #~ msgid "Advertisement"
953
  #~ msgstr "Publicité"
2
  msgstr ""
3
  "Project-Id-Version: contact-form-plugin\n"
4
  "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2016-12-15 09:55+0300\n"
6
+ "PO-Revision-Date: 2016-12-15 09:55+0300\n"
7
  "Last-Translator: Luc Capronnier <lcapronnier@yahoo.com>\n"
8
  "Language-Team: Luc Capronnier <lcapronnier@yahoo.com>\n"
9
  "Language: fr_FR\n"
948
  "replace it with %3s. If you close this message it'll appear again after "
949
  "deprecated shortcode reuse."
950
  msgstr ""
951
+ "Le code court %1s de l'extension %2s n'est plus utilisable mais se trouve "
952
+ "dans votre site. Merci de le remplacer par %3s. Si vous fermez ce message, "
953
+ "il réapparaîtra a chaque utilisation du code court en cause."
954
 
955
  #~ msgid "Advertisement"
956
  #~ msgstr "Publicité"
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: bestwebsoft
3
  Donate link: http://bestwebsoft.com/donate/
4
  Tags: contact, contact form, feedback form, contact us form, contact button, email form, contac, form, web-page feedback, cf, cf plugin, contact form plugin
5
  Requires at least: 3.8
6
- Tested up to: 4.6.1
7
- Stable tag: 4.0.3
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -12,7 +12,9 @@ Simple contact form plugin any WordPress website must have.
12
 
13
  == Description ==
14
 
15
- Contact form plugin for Wordpress website is the best solution to receive messages from customers right to your email address(-es). Download, activate and paste [bestwebsoft_contact_form] shortcode on any page, post or widget to display the form. Customize the form styles and contents easily with the pre-build options. Allow your customers to reach you in seconds!
 
 
16
 
17
  [View Demo](http://bestwebsoft.com/demo-for-contact-form-pro/)
18
 
@@ -33,15 +35,15 @@ http://www.youtube.com/watch?v=F_piQa0hmkU
33
  * Enable two column layout
34
  * Re-order form fields using drag & drop interface
35
  * Translate your form to any language with a simple language customizer
36
- * Protect contact form from spam with [Captcha](http://bestwebsoft.com/products/captcha/?k=45dcf2a5ccd70a7fc8606f8030730ac7) or [Google reCaptcha](http://bestwebsoft.com/products/google-captcha/?k=159789f556e3a9c58df8f25384903ba5)
37
- * Add unlimited contact forms using [Contact Form Multi](http://bestwebsoft.com/products/contact-form-multi/?k=34543c152eff369d529e9b4da85985a9)
38
- * Save and manage messages using [Contact Form to DB](http://bestwebsoft.com/products/contact-form-to-db/?k=d7d962591b5be0ce6c27af778b1b36ee)
39
- * Add users who send the submission to the [Subscriber](http://bestwebsoft.com/products/subscriber/?k=2ce0827916414c9c8576110f13560030) newsletter subscription list
40
  * Add custom code via plugin settings page
41
  * Compatible with latest WordPress version
42
  * Incredibly simple settings for fast setup without modifying code
43
  * Detailed step-by-step documentations and videos
44
- * Multilingual (20+ languages) and RTL ready
45
 
46
  > **Pro Features**
47
  >
@@ -61,7 +63,7 @@ http://www.youtube.com/watch?v=F_piQa0hmkU
61
  > * Editable placeholders
62
  > * Get answer to your support question within one business day ([Support Policy](http://bestwebsoft.com/support-policy/))
63
  >
64
- > [Upgrade to Pro Now](http://bestwebsoft.com/products/contact-form/?k=4028655c87316c98ae9ac7ca1928067f)
65
 
66
  If you have a feature suggestion or idea you'd like to see in the plugin, we'd love to hear about it! [Suggest a Feature](http://support.bestwebsoft.com/hc/en-us/requests/new)
67
 
@@ -106,13 +108,13 @@ Some of these translations are not complete. We are constantly adding new featur
106
 
107
  The author of the Contact Form also recommends the following plugins:
108
 
109
- * [SMTP](http://bestwebsoft.com/products/smtp/) – Configure SMTP server to receive email messages from WordPress to Gmail, Yahoo, Hotmail and other services.
110
- * [Captcha](http://bestwebsoft.com/products/captcha/?k=45dcf2a5ccd70a7fc8606f8030730ac7) – #1 super security anti-spam captcha plugin for WordPress forms.
111
- * [Google Captcha (Re-captcha)](http://bestwebsoft.com/products/google-captcha/?k=159789f556e3a9c58df8f25384903ba5) – Protect WordPress website forms from spam entries with Google Captcha (reCaptcha).
112
- * [Limit Attempts](http://bestwebsoft.com/products/limit-attempts/?k=129e34c19fc68ae4a15b4fc1b4983081) – Protect WordPress website against brute force attacks. Limit rate of login attempts.
113
- * [Contact Form Multi](http://bestwebsoft.com/products/contact-form-multi/?k=34543c152eff369d529e9b4da85985a9) – Add unlimited number of contact forms to WordPress website.
114
- * [Contact Form to DB](http://bestwebsoft.com/products/contact-form-to-db/?k=d7d962591b5be0ce6c27af778b1b36ee) – Save and manage contact form messages. Never lose important data.
115
- * [Updater](http://bestwebsoft.com/products/updater/?k=982fae837f4c6e3b152183537448dbca) – Automatically check and update WordPress website core with all installed plugins and themes to the latest versions.
116
 
117
  = Donate =
118
 
@@ -161,7 +163,7 @@ Please follow the instructions below:
161
 
162
  1. Please check the plugin settings '/wp-admin/admin.php?page=contact_form.php' => 'What to use?' => change the lines from wp-mail to mail and vice versa.
163
  2. Email messages can be marked as spam on the server. Please choose another email instead of the admin's one ('Use this email:' block) - for example, gmail or similar. If the message is sent, it means that email filtering is set on your server. Please contact your hosting provider.
164
- 3. Perhaps email sending is not set. You should install an extra plugin called [SMTP by BestWebSoft](http://bestwebsoft.com/products/smtp/) and configure it. Afterwards you should open the "Send A Test Email" tab on the plugin settings page, check an option "Display log", send a test email and you will see if the plugin logs have errors.
165
 
166
  Note: If the Contact Form sends letters, but you don't receive them, you can install our plugin Contact Form to DB in order not to lose the sent letters for the time the problem is being solved.
167
 
@@ -198,6 +200,10 @@ Please make sure that the problem hasn't been discussed yet on our forum (<http:
198
 
199
  == Changelog ==
200
 
 
 
 
 
201
  = V4.0.3 - 29.09.2016 =
202
  * Update : The shortcode [contact_form] has been deprecated.
203
  * Update : The French language file is updated.
@@ -662,6 +668,9 @@ Please make sure that the problem hasn't been discussed yet on our forum (<http:
662
 
663
  == Upgrade Notice ==
664
 
 
 
 
665
  = V4.0.3 =
666
  * Functionality improved.
667
 
3
  Donate link: http://bestwebsoft.com/donate/
4
  Tags: contact, contact form, feedback form, contact us form, contact button, email form, contac, form, web-page feedback, cf, cf plugin, contact form plugin
5
  Requires at least: 3.8
6
+ Tested up to: 4.7
7
+ Stable tag: 4.0.4
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
12
 
13
  == Description ==
14
 
15
+ Contact form plugin for Wordpress website is the best solution to receive messages from customers right to your email address(-es). Download, activate and paste [bestwebsoft_contact_form] shortcode on any page, post or widget to display the form. Customize the form styles and contents easily with the pre-build options.
16
+
17
+ Allow your customers to reach you in seconds!
18
 
19
  [View Demo](http://bestwebsoft.com/demo-for-contact-form-pro/)
20
 
35
  * Enable two column layout
36
  * Re-order form fields using drag & drop interface
37
  * Translate your form to any language with a simple language customizer
38
+ * Protect contact form from spam with [Captcha](http://bestwebsoft.com/products/wordpress/plugins/captcha/?k=45dcf2a5ccd70a7fc8606f8030730ac7) or [Google reCaptcha](http://bestwebsoft.com/products/wordpress/plugins/google-captcha/?k=159789f556e3a9c58df8f25384903ba5)
39
+ * Add unlimited contact forms using [Contact Form Multi](http://bestwebsoft.com/products/wordpress/plugins/contact-form-multi/?k=34543c152eff369d529e9b4da85985a9)
40
+ * Save and manage messages using [Contact Form to DB](http://bestwebsoft.com/products/wordpress/plugins/contact-form-to-db/?k=d7d962591b5be0ce6c27af778b1b36ee)
41
+ * Add users who send the submission to the [Subscriber](http://bestwebsoft.com/products/wordpress/plugins/subscriber/?k=2ce0827916414c9c8576110f13560030) newsletter subscription list
42
  * Add custom code via plugin settings page
43
  * Compatible with latest WordPress version
44
  * Incredibly simple settings for fast setup without modifying code
45
  * Detailed step-by-step documentations and videos
46
+ * Multilingual and RTL ready
47
 
48
  > **Pro Features**
49
  >
63
  > * Editable placeholders
64
  > * Get answer to your support question within one business day ([Support Policy](http://bestwebsoft.com/support-policy/))
65
  >
66
+ > [Upgrade to Pro Now](http://bestwebsoft.com/products/wordpress/plugins/contact-form/?k=4028655c87316c98ae9ac7ca1928067f)
67
 
68
  If you have a feature suggestion or idea you'd like to see in the plugin, we'd love to hear about it! [Suggest a Feature](http://support.bestwebsoft.com/hc/en-us/requests/new)
69
 
108
 
109
  The author of the Contact Form also recommends the following plugins:
110
 
111
+ * [SMTP](http://bestwebsoft.com/products/wordpress/plugins/smtp/) – Configure SMTP server to receive email messages from WordPress to Gmail, Yahoo, Hotmail and other services.
112
+ * [Captcha](http://bestwebsoft.com/products/wordpress/plugins/captcha/?k=45dcf2a5ccd70a7fc8606f8030730ac7) – #1 super security anti-spam captcha plugin for WordPress forms.
113
+ * [Google Captcha (Re-captcha)](http://bestwebsoft.com/products/wordpress/plugins/google-captcha/?k=159789f556e3a9c58df8f25384903ba5) – Protect WordPress website forms from spam entries with Google Captcha (reCaptcha).
114
+ * [Limit Attempts](http://bestwebsoft.com/products/wordpress/plugins/limit-attempts/?k=129e34c19fc68ae4a15b4fc1b4983081) – Protect WordPress website against brute force attacks. Limit rate of login attempts.
115
+ * [Contact Form Multi](http://bestwebsoft.com/products/wordpress/plugins/contact-form-multi/?k=34543c152eff369d529e9b4da85985a9) – Add unlimited number of contact forms to WordPress website.
116
+ * [Contact Form to DB](http://bestwebsoft.com/products/wordpress/plugins/contact-form-to-db/?k=d7d962591b5be0ce6c27af778b1b36ee) – Save and manage contact form messages. Never lose important data.
117
+ * [Updater](http://bestwebsoft.com/products/wordpress/plugins/updater/?k=982fae837f4c6e3b152183537448dbca) – Automatically check and update WordPress website core with all installed plugins and themes to the latest versions.
118
 
119
  = Donate =
120
 
163
 
164
  1. Please check the plugin settings '/wp-admin/admin.php?page=contact_form.php' => 'What to use?' => change the lines from wp-mail to mail and vice versa.
165
  2. Email messages can be marked as spam on the server. Please choose another email instead of the admin's one ('Use this email:' block) - for example, gmail or similar. If the message is sent, it means that email filtering is set on your server. Please contact your hosting provider.
166
+ 3. Perhaps email sending is not set. You should install an extra plugin called [SMTP by BestWebSoft](http://bestwebsoft.com/products/wordpress/plugins/smtp/) and configure it. Afterwards you should open the "Send A Test Email" tab on the plugin settings page, check an option "Display log", send a test email and you will see if the plugin logs have errors.
167
 
168
  Note: If the Contact Form sends letters, but you don't receive them, you can install our plugin Contact Form to DB in order not to lose the sent letters for the time the problem is being solved.
169
 
200
 
201
  == Changelog ==
202
 
203
+ = V4.0.4 - 15.12.2016 =
204
+ * Update : BWS Panel section was updated.
205
+ * Update : The French language file is updated.
206
+
207
  = V4.0.3 - 29.09.2016 =
208
  * Update : The shortcode [contact_form] has been deprecated.
209
  * Update : The French language file is updated.
668
 
669
  == Upgrade Notice ==
670
 
671
+ = V4.0.3 =
672
+ * Plugin optimization completed.
673
+
674
  = V4.0.3 =
675
  * Functionality improved.
676