Contact Form by BestWebSoft - Version 4.0.0

Version Description

  • 27.06.2016 =
  • NEW : The ability to add custom styles to frontend of your site has been added.
  • Update : The Spanish language file is 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.0
Comparing to
See all releases

Code changes from version 3.99 to 4.0.0

Files changed (104) hide show
  1. bws_menu/bws_functions.php +464 -94
  2. bws_menu/bws_menu.php +556 -861
  3. bws_menu/css/codemirror.css +274 -0
  4. bws_menu/css/general_style.css +79 -12
  5. bws_menu/css/style.css +405 -115
  6. bws_menu/icons/adsense.png +0 -0
  7. bws_menu/icons/bws-featured-posts.png +0 -0
  8. bws_menu/icons/bws-google-analytics.png +0 -0
  9. bws_menu/icons/bws-google-maps.png +0 -0
  10. bws_menu/icons/bws-popular-posts.png +0 -0
  11. bws_menu/icons/bws-smtp.png +0 -0
  12. bws_menu/icons/bws-testimonials.png +0 -0
  13. bws_menu/icons/captcha.png +0 -0
  14. bws_menu/icons/contact-form-multi.png +0 -0
  15. bws_menu/icons/contact-form-to-db.png +0 -0
  16. bws_menu/icons/contact-form.png +0 -0
  17. bws_menu/icons/custom-fields-search.png +0 -0
  18. bws_menu/icons/custom-search.png +0 -0
  19. bws_menu/icons/donate-button.png +0 -0
  20. bws_menu/icons/email-queue.png +0 -0
  21. bws_menu/icons/error-log-viewer.png +0 -0
  22. bws_menu/icons/facebook-button.png +0 -0
  23. bws_menu/icons/gallery-categories.png +0 -0
  24. bws_menu/icons/gallery.png +0 -0
  25. bws_menu/icons/google-captcha.png +0 -0
  26. bws_menu/icons/google-one.png +0 -0
  27. bws_menu/icons/google-shortlink.png +0 -0
  28. bws_menu/icons/google-sitemap.png +0 -0
  29. bws_menu/icons/htaccess.png +0 -0
  30. bws_menu/icons/job-board.png +0 -0
  31. bws_menu/icons/limit-attempts.png +0 -0
  32. bws_menu/icons/multilanguage.png +0 -0
  33. bws_menu/icons/pagination.png +0 -0
  34. bws_menu/icons/pdf-print.png +0 -0
  35. bws_menu/icons/{db-manager.png → plugins/db-manager.png} +0 -0
  36. bws_menu/icons/portfolio.png +0 -0
  37. bws_menu/icons/post-to-csv.png +0 -0
  38. bws_menu/icons/profile-extra-fields.png +0 -0
  39. bws_menu/icons/promobar.png +0 -0
  40. bws_menu/icons/quotes-and-tips.png +0 -0
  41. bws_menu/icons/re-attacher.png +0 -0
  42. bws_menu/icons/realty.png +0 -0
  43. bws_menu/icons/relevant.png +0 -0
  44. bws_menu/icons/sender.png +0 -0
  45. bws_menu/icons/social-buttons-pack.png +0 -0
  46. bws_menu/icons/subscriber.png +0 -0
  47. bws_menu/icons/themes/opening.png +0 -0
  48. bws_menu/icons/themes/realestate.png +0 -0
  49. bws_menu/icons/themes/unity.png +0 -0
  50. bws_menu/icons/twitter.png +0 -0
  51. bws_menu/icons/updater.png +0 -0
  52. bws_menu/icons/user-role.png +0 -0
  53. bws_menu/icons/visitors-online.png +0 -0
  54. bws_menu/icons/zendesk-help-center.png +0 -0
  55. bws_menu/images/bestwebsoft-logo-white.svg +29 -0
  56. bws_menu/images/icon_16_single.png +0 -0
  57. bws_menu/images/membership-background.jpg +0 -0
  58. bws_menu/images/px.png +0 -0
  59. bws_menu/images/system-status.png +0 -0
  60. bws_menu/images/tooltip_icons.png +0 -0
  61. bws_menu/js/bws_menu.js +33 -45
  62. bws_menu/js/codemirror.js +5 -0
  63. bws_menu/js/general_script.js +37 -0
  64. bws_menu/js/shortcode-button.js +67 -29
  65. bws_menu/languages/bestwebsoft-de_DE.mo +0 -0
  66. bws_menu/languages/bestwebsoft-de_DE.po +0 -841
  67. bws_menu/languages/bestwebsoft-fr_FR.mo +0 -0
  68. bws_menu/languages/bestwebsoft-fr_FR.po +514 -264
  69. bws_menu/languages/bestwebsoft-it_IT.mo +0 -0
  70. bws_menu/languages/bestwebsoft-it_IT.po +0 -1133
  71. bws_menu/languages/bestwebsoft-ja.mo +0 -0
  72. bws_menu/languages/bestwebsoft-ja.po +0 -1238
  73. bws_menu/languages/bestwebsoft-pl_PL.mo +0 -0
  74. bws_menu/languages/bestwebsoft-pl_PL.po +502 -261
  75. bws_menu/languages/bestwebsoft-pt_BR.mo +0 -0
  76. bws_menu/languages/bestwebsoft-pt_BR.po +0 -841
  77. bws_menu/languages/bestwebsoft-ru_RU.mo +0 -0
  78. bws_menu/languages/bestwebsoft-ru_RU.po +505 -262
  79. bws_menu/languages/bestwebsoft-sr_RS.mo +0 -0
  80. bws_menu/languages/bestwebsoft-sr_RS.po +0 -1132
  81. bws_menu/languages/bestwebsoft-sv_SE.mo +0 -0
  82. bws_menu/languages/bestwebsoft-sv_SE.po +0 -988
  83. bws_menu/languages/bestwebsoft-uk.mo +0 -0
  84. bws_menu/languages/bestwebsoft-uk.po +504 -266
  85. bws_menu/product_list.php +478 -0
  86. contact_form.php +122 -124
  87. languages/contact-form-plugin-af_ZA.mo +0 -0
  88. languages/contact-form-plugin-af_ZA.po +222 -218
  89. languages/contact-form-plugin-ca.mo +0 -0
  90. languages/contact-form-plugin-ca.po +222 -218
  91. languages/contact-form-plugin-cs_CZ.mo +0 -0
  92. languages/contact-form-plugin-cs_CZ.po +222 -218
  93. languages/contact-form-plugin-da_DK.mo +0 -0
  94. languages/contact-form-plugin-da_DK.po +337 -372
  95. languages/contact-form-plugin-de_DE.mo +0 -0
  96. languages/contact-form-plugin-de_DE.po +222 -218
  97. languages/contact-form-plugin-el.mo +0 -0
  98. languages/contact-form-plugin-el.po +222 -218
  99. languages/contact-form-plugin-es_ES.mo +0 -0
  100. languages/contact-form-plugin-es_ES.po +299 -298
  101. languages/contact-form-plugin-et.mo +0 -0
  102. languages/contact-form-plugin-et.po +222 -218
  103. languages/contact-form-plugin-fr_FR.mo +0 -0
  104. languages/contact-form-plugin-fr_FR.po +214 -217
bws_menu/bws_functions.php CHANGED
@@ -3,6 +3,9 @@
3
  * General functions for BestWebSoft plugins
4
  */
5
 
 
 
 
6
  /**
7
  * Function add BWS Plugins page - for old plugin version
8
  * @deprecated 1.7.9
@@ -30,7 +33,12 @@ if ( ! function_exists ( 'bws_general_menu' ) ) {
30
  }
31
  }
32
 
33
- add_menu_page( 'BWS Plugins', 'BWS Plugins', 'manage_options', 'bws_plugins', 'bws_add_menu_render', plugins_url( 'images/px.png', __FILE__ ), 1001 );
 
 
 
 
 
34
  $bws_general_menu_exist = true;
35
  }
36
  }
@@ -53,7 +61,9 @@ if ( ! function_exists ( 'bws_wp_version_check' ) ) {
53
  if ( ! function_exists ( 'bws_wp_min_version_check' ) ) {
54
  function bws_wp_min_version_check( $plugin_basename, $plugin_info, $require_wp, $min_wp = false ) {
55
  global $wp_version, $bws_versions_notice_array;
56
- if ( false != $min_wp && version_compare( $wp_version, $min_wp, "<" ) ) {
 
 
57
  include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
58
  if ( is_plugin_active( $plugin_basename ) ) {
59
  deactivate_plugins( $plugin_basename );
@@ -77,9 +87,11 @@ if ( ! function_exists ( 'bws_wp_min_version_check' ) ) {
77
  }
78
  }
79
 
80
- if ( ! function_exists( 'bws_versions_notice' ) ) {
81
- function bws_versions_notice() {
82
- global $bws_versions_notice_array;
 
 
83
  if ( ! empty( $bws_versions_notice_array ) ) {
84
  foreach ( $bws_versions_notice_array as $key => $value ) { ?>
85
  <div class="update-nag"><?php
@@ -93,6 +105,64 @@ if ( ! function_exists( 'bws_versions_notice' ) ) {
93
  ?></div>
94
  <?php }
95
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96
  }
97
  }
98
 
@@ -167,32 +237,34 @@ if ( ! function_exists( 'bws_plugin_reviews_block' ) ) {
167
  <div class="bws-plugin-reviews">
168
  <div class="bws-plugin-reviews-rate">
169
  <?php _e( 'If you enjoy our plugin, please give it 5 stars on WordPress', 'bestwebsoft' ); ?>:
170
- <a href="http://wordpress.org/support/view/plugin-reviews/<?php echo $plugin_slug; ?>" target="_blank" title="<?php echo $plugin_name; ?> reviews"><?php _e( 'Rate the plugin', 'bestwebsoft' ); ?></a>
171
  </div>
172
  <div class="bws-plugin-reviews-support">
173
  <?php _e( 'If there is something wrong about it, please contact us', 'bestwebsoft' ); ?>:
174
  <a href="http://support.bestwebsoft.com">http://support.bestwebsoft.com</a>
175
  </div>
 
 
 
 
176
  </div>
177
  <?php }
178
  }
179
 
180
  if ( ! function_exists( 'bws_go_pro_tab_check' ) ) {
181
  function bws_go_pro_tab_check( $plugin_basename, $plugin_options_name = false, $is_network_option = false ) {
182
- global $wp_version, $bstwbsftwppdtplgns_options, $current_user;
183
  $result = array();
184
 
185
  $bws_license_key = ( isset( $_POST['bws_license_key'] ) ) ? stripslashes( esc_html( trim( $_POST['bws_license_key'] ) ) ) : "";
186
 
187
  if ( ! empty( $plugin_options_name ) && isset( $_POST['bws_hide_premium_options_submit'] ) && check_admin_referer( $plugin_basename, 'bws_license_nonce_name' ) ) {
188
- if ( ! $current_user )
189
- get_currentuserinfo();
190
 
191
  $plugin_options = ( $is_network_option ) ? get_site_option( $plugin_options_name ) : get_option( $plugin_options_name );
192
 
193
  if ( !empty( $plugin_options['hide_premium_options'] ) ) {
194
 
195
- $key = array_search( $current_user->ID, $plugin_options['hide_premium_options'] );
196
  if ( false !== $key ) {
197
  unset( $plugin_options['hide_premium_options'][ $key ] );
198
  }
@@ -261,47 +333,47 @@ if ( ! function_exists( 'bws_go_pro_tab_check' ) ) {
261
 
262
  $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';
263
  $uploadDir = wp_upload_dir();
264
- $zip_name = explode( '/', $bws_license_plugin );
265
-
266
- if ( !function_exists( 'curl_init' ) ) {
267
- $received_content = file_get_contents( $url );
268
- } else {
269
- $ch = curl_init();
270
- curl_setopt( $ch, CURLOPT_URL, $url );
271
- curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
272
- $received_content = curl_exec( $ch );
273
- curl_close( $ch );
274
- }
275
 
276
- if ( ! $received_content ) {
277
- $result['error'] = __( "Failed to download the zip archive. Please, upload the plugin manually", 'bestwebsoft' );
278
- } else {
279
- if ( is_writable( $uploadDir["path"] ) ) {
280
- $file_put_contents = $uploadDir["path"] . "/" . $zip_name[0] . ".zip";
281
- if ( file_put_contents( $file_put_contents, $received_content ) ) {
282
- @chmod( $file_put_contents, octdec( 755 ) );
283
- if ( class_exists( 'ZipArchive' ) ) {
284
- $zip = new ZipArchive();
285
- if ( $zip->open( $file_put_contents ) === TRUE ) {
286
- $zip->extractTo( WP_PLUGIN_DIR );
287
- $zip->close();
288
- } else {
289
- $result['error'] = __( "Failed to open the zip archive. Please, upload the plugin manually", 'bestwebsoft' );
290
- }
291
- } elseif ( class_exists( 'Phar' ) ) {
292
- $phar = new PharData( $file_put_contents );
293
- $phar->extractTo( WP_PLUGIN_DIR );
294
  } else {
295
- $result['error'] = __( "Your server does not support either ZipArchive or Phar. Please, upload the plugin manually", 'bestwebsoft' );
296
  }
297
- @unlink( $file_put_contents );
 
 
298
  } else {
299
- $result['error'] = __( "Failed to download the zip archive. Please, upload the plugin manually", 'bestwebsoft' );
300
  }
 
301
  } else {
302
- $result['error'] = __( "UploadDir is not writable. Please, upload the plugin manually", 'bestwebsoft' );
303
  }
 
 
304
  }
 
305
 
306
  /* activate Pro */
307
  if ( file_exists( WP_PLUGIN_DIR . '/' . $zip_name[0] ) ) {
@@ -377,7 +449,7 @@ if ( ! function_exists( 'bws_go_pro_tab_show' ) ) {
377
  window.location.href = 'admin.php?page=<?php echo $pro_page; ?>';
378
  }, 5000 );
379
  </script>
380
- <p><?php _e( "Congratulations! The Pro version of the plugin is successfully download and activated.", 'bestwebsoft' ); ?></p>
381
  <p>
382
  <?php _e( "Please, go to", 'bestwebsoft' ); ?> <a href="admin.php?page=<?php echo $pro_page; ?>"><?php _e( 'the setting page', 'bestwebsoft' ); ?></a>
383
  (<?php _e( "You will be redirected automatically in 5 seconds.", 'bestwebsoft' ); ?>)
@@ -394,13 +466,13 @@ if ( ! function_exists( 'bws_go_pro_tab_show' ) ) {
394
  <?php } ?>
395
  <form method="post" action="">
396
  <p>
397
- <?php _e( 'You can download and activate', 'bestwebsoft' ); ?>
398
  <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>
399
- <?php _e( 'version of this plugin by entering Your license key.', 'bestwebsoft' ); ?><br />
400
  <span class="bws_info">
401
- <?php _e( 'You can find your license key on your personal page Client area, by clicking on the link', 'bestwebsoft' ); ?>
402
- <a href="http://bestwebsoft.com/wp-login.php">http://bestwebsoft.com/wp-login.php</a>
403
- <?php _e( '(your username is the email you specify when purchasing the product).', 'bestwebsoft' ); ?>
404
  </span>
405
  </p>
406
  <?php if ( $trial_days_number !== false )
@@ -439,9 +511,9 @@ if ( ! function_exists( 'bws_go_pro_from_trial_tab' ) ) {
439
  <?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>' ) . ' ';
440
  _e( 'After that you can activate it by entering your license key.', 'bestwebsoft' ); ?><br />
441
  <span class="bws_info">
442
- <?php _e( 'You can find your license key on your personal page Client area, by clicking on the link', 'bestwebsoft' ); ?>
443
- <a href="http://bestwebsoft.com/wp-login.php">http://bestwebsoft.com/wp-login.php</a>
444
- <?php _e( '(your username is the email you specify when purchasing the product).', 'bestwebsoft' ); ?>
445
  </span>
446
  </p>
447
  <?php if ( isset( $bstwbsftwppdtplgns_options['go_pro'][ $plugin_basename ]['count'] ) &&
@@ -572,11 +644,11 @@ if ( ! function_exists ( 'bws_check_pro_license_form' ) ) {
572
  $license_key = ( isset( $bstwbsftwppdtplgns_options[ $plugin_basename ] ) ) ? $bstwbsftwppdtplgns_options[ $plugin_basename ] : ''; ?>
573
  <div class="clear"></div>
574
  <form method="post" action="">
575
- <p><?php echo _e( 'If needed you can check if the license key is correct or reenter it in the field below. You can find your license key on your personal page - Client area - on our website', 'bestwebsoft' ) . ' <a href="http://bestwebsoft.com/wp-login.php">http://bestwebsoft.com/wp-login.php</a> ' . __( '(your username is the email you specify when purchasing the product). If necessary, please submit "Lost your password?" request.', 'bestwebsoft' ); ?></p>
576
  <p>
577
  <input type="text" maxlength="100" name="bws_license_key" value="<?php echo $license_key; ?>" />
578
  <input type="hidden" name="bws_license_submit" value="submit" />
579
- <input type="submit" class="button-primary" value="<?php _e( 'Check license key', 'bestwebsoft' ) ?>" />
580
  <?php wp_nonce_field( $plugin_basename, 'bws_license_nonce_name' ); ?>
581
  </p>
582
  </form>
@@ -661,15 +733,15 @@ if ( ! function_exists ( 'bws_plugin_banner_timeout' ) ) {
661
  }
662
 
663
  if ( ! function_exists( 'bws_plugin_banner_to_settings' ) ) {
664
- function bws_plugin_banner_to_settings( $plugin_info, $plugin_options_name, $banner_url_or_slug, $settings_url, $post_type_url = false, $post_type_name = false ) {
665
- global $wp_version;
666
 
667
  $plugin_options = get_option( $plugin_options_name );
668
 
669
  if ( isset( $plugin_options['display_settings_notice'] ) && 0 == $plugin_options['display_settings_notice'] )
670
  return;
671
 
672
- if ( isset( $_POST['bws_hide_settings_notice_' . $plugin_options_name ] ) && check_admin_referer( $plugin_info['Name'], 'bws_settings_nonce_name' ) ) {
673
  $plugin_options['display_settings_notice'] = 0;
674
  update_option( $plugin_options_name, $plugin_options );
675
  return;
@@ -677,29 +749,16 @@ if ( ! function_exists( 'bws_plugin_banner_to_settings' ) ) {
677
 
678
  if ( false == strrpos( $banner_url_or_slug, '/' ) ) {
679
  $banner_url_or_slug = '//ps.w.org/' . $banner_url_or_slug . '/assets/icon-128x128.png';
680
- } ?>
681
- <div class="updated" style="padding: 0; margin: 0; border: none; background: none;">
682
- <div class="bws_banner_on_plugin_page bws_banner_to_settings">
683
- <div class="icon">
684
- <img title="" src="<?php echo esc_attr( $banner_url_or_slug ); ?>" alt="" />
685
- </div>
686
- <div class="text">
687
- <strong><?php _e( 'Thank you for installing', 'bestwebsoft' ); ?> <?php echo $plugin_info['Name']; ?> plugin!</strong><br />
688
- <?php _e( "Let's get started", 'bestwebsoft' ); ?>:
689
- <a target="_blank" href="<?php echo $settings_url; ?>"><?php _e( 'Configure Settings', 'bestwebsoft' ); ?></a>
690
- <?php if ( false != $post_type_url && false != $post_type_name ) { ?>
691
- <?php _e( 'or', 'bestwebsoft' ); ?>
692
- <a target="_blank" href="<?php echo $post_type_url; ?>"><?php _e( 'Add New', 'bestwebsoft' ); ?> <?php echo $post_type_name; ?></a>
693
- <?php } ?>
694
- </div>
695
- <form action="" method="post">
696
- <button class="notice-dismiss bws_hide_settings_notice" title="<?php _e( 'Close notice', 'bestwebsoft' ); ?>"></button>
697
- <input type="hidden" name="bws_hide_settings_notice_<?php echo $plugin_options_name; ?>" value="hide" />
698
- <?php wp_nonce_field( $plugin_info['Name'], 'bws_settings_nonce_name' ); ?>
699
- </form>
700
- </div>
701
- </div>
702
- <?php }
703
  }
704
 
705
  if ( ! function_exists( 'bws_plugin_suggest_feature_banner' ) ) {
@@ -774,13 +833,10 @@ if ( ! function_exists( 'bws_show_settings_notice' ) ) {
774
 
775
  if ( ! function_exists( 'bws_hide_premium_options' ) ) {
776
  function bws_hide_premium_options( $options ) {
777
- global $current_user;
778
- if ( ! $current_user )
779
- get_currentuserinfo();
780
  if ( ! isset( $options['hide_premium_options'] ) || ! is_array( $options['hide_premium_options'] ) )
781
  $options['hide_premium_options'] = array();
782
 
783
- $options['hide_premium_options'][] = $current_user->ID;
784
 
785
  return array(
786
  'message' => __( 'You can always look at premium options by clicking on the "Show Pro features" in the "Go PRO" tab', 'bestwebsoft' ),
@@ -790,11 +846,7 @@ if ( ! function_exists( 'bws_hide_premium_options' ) ) {
790
 
791
  if ( ! function_exists( 'bws_hide_premium_options_check' ) ) {
792
  function bws_hide_premium_options_check( $options ) {
793
- global $current_user;
794
- if ( ! $current_user )
795
- get_currentuserinfo();
796
-
797
- if ( ! empty( $options['hide_premium_options'] ) && in_array( $current_user->ID, $options['hide_premium_options'] ) )
798
  return true;
799
  else
800
  return false;
@@ -803,8 +855,38 @@ if ( ! function_exists( 'bws_hide_premium_options_check' ) ) {
803
 
804
  if ( ! function_exists ( 'bws_plugins_admin_init' ) ) {
805
  function bws_plugins_admin_init() {
806
- /* Internationalization, first(!) */
807
- load_plugin_textdomain( 'bestwebsoft', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
808
 
809
  bws_add_editor_buttons();
810
  }
@@ -816,10 +898,12 @@ if ( ! function_exists ( 'bws_admin_enqueue_scripts' ) ) {
816
  wp_enqueue_style( 'bws-admin-css', plugins_url( 'css/general_style.css', __FILE__ ) );
817
  wp_enqueue_script( 'bws-admin-scripts', plugins_url( 'js/general_script.js', __FILE__ ), array( 'jquery' ) );
818
 
819
- if ( isset( $_GET['page'] ) && $_GET['page'] == "bws_plugins" ) {
820
  wp_enqueue_style( 'bws_menu_style', plugins_url( 'css/style.css', __FILE__ ) );
821
  wp_enqueue_script( 'bws_menu_script', plugins_url( 'js/bws_menu.js' , __FILE__ ) );
822
  wp_enqueue_script( 'theme-install' );
 
 
823
  }
824
  }
825
  }
@@ -863,14 +947,15 @@ if ( ! function_exists ( 'bws_plugins_admin_head' ) ) {
863
  <!-- TinyMCE Shortcode Plugin -->
864
  <script type='text/javascript'>
865
  var bws_shortcode_button = {
 
866
  'title': '<?php esc_attr_e( "Add BWS Plugins Shortcode", "bestwebsoft" ); ?>',
 
867
  'function_name': [
868
  <?php foreach ( $bws_shortcode_list as $key => $value ) {
869
  if ( isset( $value['js_function'] ) )
870
  echo "'" . $value['js_function'] . "',";
871
  } ?>
872
  ],
873
- 'icon_url': '<?php echo plugins_url( "images/shortcode-icon.png" , __FILE__ ); ?>',
874
  'wp_version' : '<?php echo $wp_version; ?>'
875
  };
876
  </script>
@@ -897,6 +982,13 @@ if ( ! function_exists ( 'bws_plugins_admin_head' ) ) {
897
  }
898
  }
899
 
 
 
 
 
 
 
 
900
  /**
901
  * Tooltip block
902
  */
@@ -1149,9 +1241,287 @@ if ( ! function_exists( 'bws_help_tab' ) ) {
1149
  }
1150
  }
1151
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1152
  add_action( 'admin_init', 'bws_plugins_admin_init' );
1153
  add_action( 'admin_enqueue_scripts', 'bws_admin_enqueue_scripts' );
1154
  add_action( 'admin_head', 'bws_plugins_admin_head' );
1155
  add_action( 'admin_footer','bws_shortcode_media_button_popup' );
1156
 
1157
- add_action( 'admin_notices', 'bws_versions_notice' );
 
 
 
 
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
11
  * @deprecated 1.7.9
33
  }
34
  }
35
 
36
+ add_menu_page( 'BWS Panel', 'BWS Panel', 'manage_options', 'bws_panel', 'bws_add_menu_render', plugins_url( 'images/bestwebsoft-logo-white.svg', __FILE__ ), '2.1' );
37
+
38
+ add_submenu_page( 'bws_panel', __( 'Plugins', 'bestwebsoft' ), __( 'Plugins', 'bestwebsoft' ), 'manage_options', 'bws_plugins', 'bws_add_menu_render' );
39
+ add_submenu_page( 'bws_panel', __( 'Themes', 'bestwebsoft' ), __( 'Themes', 'bestwebsoft' ), 'manage_options', 'bws_themes', 'bws_add_menu_render' );
40
+ add_submenu_page( 'bws_panel', __( 'System Status', 'bestwebsoft' ), __( 'System Status', 'bestwebsoft' ), 'manage_options', 'bws_system_status', 'bws_add_menu_render' );
41
+
42
  $bws_general_menu_exist = true;
43
  }
44
  }
61
  if ( ! function_exists ( 'bws_wp_min_version_check' ) ) {
62
  function bws_wp_min_version_check( $plugin_basename, $plugin_info, $require_wp, $min_wp = false ) {
63
  global $wp_version, $bws_versions_notice_array;
64
+ if ( false == $min_wp )
65
+ $min_wp = $require_wp;
66
+ if ( version_compare( $wp_version, $min_wp, "<" ) ) {
67
  include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
68
  if ( is_plugin_active( $plugin_basename ) ) {
69
  deactivate_plugins( $plugin_basename );
87
  }
88
  }
89
 
90
+ if ( ! function_exists( 'bws_admin_notices' ) ) {
91
+ function bws_admin_notices() {
92
+ global $bws_versions_notice_array, $bws_plugin_banner_to_settings;
93
+
94
+ /* versions notice */
95
  if ( ! empty( $bws_versions_notice_array ) ) {
96
  foreach ( $bws_versions_notice_array as $key => $value ) { ?>
97
  <div class="update-nag"><?php
105
  ?></div>
106
  <?php }
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>
126
+ <form action="" method="post">
127
+ <button class="notice-dismiss bws_hide_settings_notice" title="<?php _e( 'Close notice', 'bestwebsoft' ); ?>"></button>
128
+ <input type="hidden" name="bws_hide_settings_notice_<?php echo $bws_plugin_banner_to_settings[0]['plugin_options_name']; ?>" value="hide" />
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>
163
+ </div>
164
+ <?php }
165
+ }
166
  }
167
  }
168
 
237
  <div class="bws-plugin-reviews">
238
  <div class="bws-plugin-reviews-rate">
239
  <?php _e( 'If you enjoy our plugin, please give it 5 stars on WordPress', 'bestwebsoft' ); ?>:
240
+ <a href="http://wordpress.org/support/view/plugin-reviews/<?php echo $plugin_slug; ?>?filter=5" target="_blank" title="<?php echo $plugin_name; ?> reviews"><?php _e( 'Rate the plugin', 'bestwebsoft' ); ?></a>
241
  </div>
242
  <div class="bws-plugin-reviews-support">
243
  <?php _e( 'If there is something wrong about it, please contact us', 'bestwebsoft' ); ?>:
244
  <a href="http://support.bestwebsoft.com">http://support.bestwebsoft.com</a>
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 }
252
  }
253
 
254
  if ( ! function_exists( 'bws_go_pro_tab_check' ) ) {
255
  function bws_go_pro_tab_check( $plugin_basename, $plugin_options_name = false, $is_network_option = false ) {
256
+ global $wp_version, $bstwbsftwppdtplgns_options;
257
  $result = array();
258
 
259
  $bws_license_key = ( isset( $_POST['bws_license_key'] ) ) ? stripslashes( esc_html( trim( $_POST['bws_license_key'] ) ) ) : "";
260
 
261
  if ( ! empty( $plugin_options_name ) && isset( $_POST['bws_hide_premium_options_submit'] ) && check_admin_referer( $plugin_basename, 'bws_license_nonce_name' ) ) {
 
 
262
 
263
  $plugin_options = ( $is_network_option ) ? get_site_option( $plugin_options_name ) : get_option( $plugin_options_name );
264
 
265
  if ( !empty( $plugin_options['hide_premium_options'] ) ) {
266
 
267
+ $key = array_search( get_current_user_id(), $plugin_options['hide_premium_options'] );
268
  if ( false !== $key ) {
269
  unset( $plugin_options['hide_premium_options'][ $key ] );
270
  }
333
 
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();
342
+ curl_setopt( $ch, CURLOPT_URL, $url );
343
+ curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
344
+ $received_content = curl_exec( $ch );
345
+ curl_close( $ch );
346
+ }
347
 
348
+ if ( ! $received_content ) {
349
+ $result['error'] = __( "Failed to download the zip archive. Please, upload the plugin manually", 'bestwebsoft' );
350
+ } else {
351
+ if ( is_writable( $uploadDir["path"] ) ) {
352
+ $file_put_contents = $uploadDir["path"] . "/" . $zip_name[0] . ".zip";
353
+ if ( file_put_contents( $file_put_contents, $received_content ) ) {
354
+ @chmod( $file_put_contents, octdec( 755 ) );
355
+ if ( class_exists( 'ZipArchive' ) ) {
356
+ $zip = new ZipArchive();
357
+ if ( $zip->open( $file_put_contents ) === TRUE ) {
358
+ $zip->extractTo( WP_PLUGIN_DIR );
359
+ $zip->close();
 
 
 
 
 
 
360
  } else {
361
+ $result['error'] = __( "Failed to open the zip archive. Please, upload the plugin manually", 'bestwebsoft' );
362
  }
363
+ } elseif ( class_exists( 'Phar' ) ) {
364
+ $phar = new PharData( $file_put_contents );
365
+ $phar->extractTo( WP_PLUGIN_DIR );
366
  } else {
367
+ $result['error'] = __( "Your server does not support either ZipArchive or Phar. Please, upload the plugin manually", 'bestwebsoft' );
368
  }
369
+ @unlink( $file_put_contents );
370
  } else {
371
+ $result['error'] = __( "Failed to download the zip archive. Please, upload the plugin manually", 'bestwebsoft' );
372
  }
373
+ } else {
374
+ $result['error'] = __( "UploadDir is not writable. Please, upload the plugin manually", 'bestwebsoft' );
375
  }
376
+ }
377
 
378
  /* activate Pro */
379
  if ( file_exists( WP_PLUGIN_DIR . '/' . $zip_name[0] ) ) {
449
  window.location.href = 'admin.php?page=<?php echo $pro_page; ?>';
450
  }, 5000 );
451
  </script>
452
+ <p><?php _e( "Congratulations! Pro version of the plugin is successfully installed and activated.", 'bestwebsoft' ); ?></p>
453
  <p>
454
  <?php _e( "Please, go to", 'bestwebsoft' ); ?> <a href="admin.php?page=<?php echo $pro_page; ?>"><?php _e( 'the setting page', 'bestwebsoft' ); ?></a>
455
  (<?php _e( "You will be redirected automatically in 5 seconds.", 'bestwebsoft' ); ?>)
466
  <?php } ?>
467
  <form method="post" action="">
468
  <p>
469
+ <?php _e( 'Enter your license key to install and activate', 'bestwebsoft' ); ?>
470
  <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>
471
+ <?php _e( 'version of the plugin.', 'bestwebsoft' ); ?><br />
472
  <span class="bws_info">
473
+ <?php _e( 'License key can be found in the', 'bestwebsoft' ); ?>
474
+ <a href="http://bestwebsoft.com/wp-login.php">Client Area</a>
475
+ <?php _e( '(your username is the email address specified during the purchase).', 'bestwebsoft' ); ?>
476
  </span>
477
  </p>
478
  <?php if ( $trial_days_number !== false )
511
  <?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>' ) . ' ';
512
  _e( 'After that you can activate it by entering your license key.', 'bestwebsoft' ); ?><br />
513
  <span class="bws_info">
514
+ <?php _e( 'License key can be found in the', 'bestwebsoft' ); ?>
515
+ <a href="http://bestwebsoft.com/wp-login.php">Client Area</a>
516
+ <?php _e( '(your username is the email address specified during the purchase).', 'bestwebsoft' ); ?>
517
  </span>
518
  </p>
519
  <?php if ( isset( $bstwbsftwppdtplgns_options['go_pro'][ $plugin_basename ]['count'] ) &&
644
  $license_key = ( isset( $bstwbsftwppdtplgns_options[ $plugin_basename ] ) ) ? $bstwbsftwppdtplgns_options[ $plugin_basename ] : ''; ?>
645
  <div class="clear"></div>
646
  <form method="post" action="">
647
+ <p><?php echo _e( 'If needed you can check if the license key is correct or reenter it in the field below. You can find your license key on your personal page - Client area - on our website', 'bestwebsoft' ) . ' <a href="http://bestwebsoft.com/wp-login.php">http://bestwebsoft.com/wp-login.php</a> ' . __( '(your username is the email address specified during the purchase). If necessary, please submit "Lost your password?" request.', 'bestwebsoft' ); ?></p>
648
  <p>
649
  <input type="text" maxlength="100" name="bws_license_key" value="<?php echo $license_key; ?>" />
650
  <input type="hidden" name="bws_license_submit" value="submit" />
651
+ <input type="submit" class="button" value="<?php _e( 'Check license key', 'bestwebsoft' ) ?>" />
652
  <?php wp_nonce_field( $plugin_basename, 'bws_license_nonce_name' ); ?>
653
  </p>
654
  </form>
733
  }
734
 
735
  if ( ! function_exists( 'bws_plugin_banner_to_settings' ) ) {
736
+ function bws_plugin_banner_to_settings( $plugin_info, $plugin_options_name, $banner_url_or_slug, $settings_url, $post_type_url = false ) {
737
+ global $wp_version, $bws_plugin_banner_to_settings;
738
 
739
  $plugin_options = get_option( $plugin_options_name );
740
 
741
  if ( isset( $plugin_options['display_settings_notice'] ) && 0 == $plugin_options['display_settings_notice'] )
742
  return;
743
 
744
+ if ( isset( $_POST['bws_hide_settings_notice_' . $plugin_options_name ] ) && check_admin_referer( plugin_basename( __FILE__ ), 'bws_settings_nonce_name' ) ) {
745
  $plugin_options['display_settings_notice'] = 0;
746
  update_option( $plugin_options_name, $plugin_options );
747
  return;
749
 
750
  if ( false == strrpos( $banner_url_or_slug, '/' ) ) {
751
  $banner_url_or_slug = '//ps.w.org/' . $banner_url_or_slug . '/assets/icon-128x128.png';
752
+ }
753
+
754
+ $bws_plugin_banner_to_settings[] = array(
755
+ 'plugin_info' => $plugin_info,
756
+ 'plugin_options_name' => $plugin_options_name,
757
+ 'banner_url' => $banner_url_or_slug,
758
+ 'settings_url' => $settings_url,
759
+ 'post_type_url' => $post_type_url
760
+ );
761
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
762
  }
763
 
764
  if ( ! function_exists( 'bws_plugin_suggest_feature_banner' ) ) {
833
 
834
  if ( ! function_exists( 'bws_hide_premium_options' ) ) {
835
  function bws_hide_premium_options( $options ) {
 
 
 
836
  if ( ! isset( $options['hide_premium_options'] ) || ! is_array( $options['hide_premium_options'] ) )
837
  $options['hide_premium_options'] = array();
838
 
839
+ $options['hide_premium_options'][] = get_current_user_id();
840
 
841
  return array(
842
  'message' => __( 'You can always look at premium options by clicking on the "Show Pro features" in the "Go PRO" tab', 'bestwebsoft' ),
846
 
847
  if ( ! function_exists( 'bws_hide_premium_options_check' ) ) {
848
  function bws_hide_premium_options_check( $options ) {
849
+ if ( ! empty( $options['hide_premium_options'] ) && in_array( get_current_user_id(), $options['hide_premium_options'] ) )
 
 
 
 
850
  return true;
851
  else
852
  return false;
855
 
856
  if ( ! function_exists ( 'bws_plugins_admin_init' ) ) {
857
  function bws_plugins_admin_init() {
858
+
859
+ if ( isset( $_GET['bws_activate_plugin'] ) && check_admin_referer( 'bws_activate_plugin' . $_GET['bws_activate_plugin'] ) ) {
860
+
861
+ $plugin = isset( $_GET['bws_activate_plugin'] ) ? $_GET['bws_activate_plugin'] : '';
862
+ $result = activate_plugin( $plugin, '', is_network_admin() );
863
+ if ( is_wp_error( $result ) ) {
864
+ if ( 'unexpected_output' == $result->get_error_code() ) {
865
+ $redirect = self_admin_url( 'admin.php?page=bws_plugins&error=true&charsout=' . strlen( $result->get_error_data() ) . '&plugin=' . $plugin );
866
+ wp_redirect( add_query_arg( '_error_nonce', wp_create_nonce( 'plugin-activation-error_' . $plugin ), $redirect ) );
867
+ exit();
868
+ } else {
869
+ wp_die( $result );
870
+ }
871
+ }
872
+
873
+ if ( ! is_network_admin() ) {
874
+ $recent = (array) get_option( 'recently_activated' );
875
+ unset( $recent[ $plugin ] );
876
+ update_option( 'recently_activated', $recent );
877
+ } else {
878
+ $recent = (array) get_site_option( 'recently_activated' );
879
+ unset( $recent[ $plugin ] );
880
+ update_site_option( 'recently_activated', $recent );
881
+ }
882
+ wp_redirect( self_admin_url( 'admin.php?page=bws_plugins&activate=true' ) );
883
+ exit();
884
+ }
885
+
886
+ if ( isset( $_GET['page'] ) && $_GET['page'] == 'bws_plugins' ) {
887
+ if ( ! session_id() )
888
+ @session_start();
889
+ }
890
 
891
  bws_add_editor_buttons();
892
  }
898
  wp_enqueue_style( 'bws-admin-css', plugins_url( 'css/general_style.css', __FILE__ ) );
899
  wp_enqueue_script( 'bws-admin-scripts', plugins_url( 'js/general_script.js', __FILE__ ), array( 'jquery' ) );
900
 
901
+ if ( isset( $_GET['page'] ) && in_array( $_GET['page'], array( 'bws_panel', 'bws_plugins', 'bws_themes', 'bws_system_status' ) ) ) {
902
  wp_enqueue_style( 'bws_menu_style', plugins_url( 'css/style.css', __FILE__ ) );
903
  wp_enqueue_script( 'bws_menu_script', plugins_url( 'js/bws_menu.js' , __FILE__ ) );
904
  wp_enqueue_script( 'theme-install' );
905
+ add_thickbox();
906
+ wp_enqueue_script( 'plugin-install' );
907
  }
908
  }
909
  }
947
  <!-- TinyMCE Shortcode Plugin -->
948
  <script type='text/javascript'>
949
  var bws_shortcode_button = {
950
+ 'label': '<?php esc_attr_e( "Add BWS Shortcode", "bestwebsoft" ); ?>',
951
  'title': '<?php esc_attr_e( "Add BWS Plugins Shortcode", "bestwebsoft" ); ?>',
952
+ 'icon_url': '<?php echo plugins_url( "images/shortcode-icon.png" , __FILE__ ); ?>',
953
  'function_name': [
954
  <?php foreach ( $bws_shortcode_list as $key => $value ) {
955
  if ( isset( $value['js_function'] ) )
956
  echo "'" . $value['js_function'] . "',";
957
  } ?>
958
  ],
 
959
  'wp_version' : '<?php echo $wp_version; ?>'
960
  };
961
  </script>
982
  }
983
  }
984
 
985
+ if ( ! function_exists ( 'bws_plugins_include_codemirror' ) ) {
986
+ function bws_plugins_include_codemirror() {
987
+ wp_enqueue_style( 'codemirror.css', plugins_url( 'css/codemirror.css', __FILE__ ) );
988
+ wp_enqueue_script( 'codemirror.js', plugins_url( 'js/codemirror.js', __FILE__ ), array( 'jquery' ) );
989
+ }
990
+ }
991
+
992
  /**
993
  * Tooltip block
994
  */
1241
  }
1242
  }
1243
 
1244
+ /**
1245
+ * Function display 'Custom code' tab
1246
+ */
1247
+ if ( ! function_exists( 'bws_custom_code_tab' ) ) {
1248
+ function bws_custom_code_tab() {
1249
+ if ( ! current_user_can( 'edit_plugins' ) )
1250
+ wp_die( __( 'You do not have sufficient permissions to edit plugins for this site.', 'bestwebsoft' ) );
1251
+
1252
+ global $bstwbsftwppdtplgns_options;
1253
+
1254
+ $message = $content = '';
1255
+ $is_css_active = $is_php_active = false;
1256
+
1257
+ $upload_dir = wp_upload_dir();
1258
+ $folder = $upload_dir['basedir'] . '/bws-custom-code';
1259
+ if ( ! $upload_dir["error"] ) {
1260
+ if ( ! is_dir( $folder ) )
1261
+ wp_mkdir_p( $folder, 0755 );
1262
+
1263
+ $index_file = $upload_dir['basedir'] . '/bws-custom-code/index.php';
1264
+ if ( ! file_exists( $index_file ) ) {
1265
+ if ( $f = fopen( $index_file, 'w+' ) )
1266
+ fclose( $f );
1267
+ }
1268
+ }
1269
+
1270
+ $css_file = 'bws-custom-code.css';
1271
+ $real_css_file = $folder . '/' . $css_file;
1272
+
1273
+ $php_file = 'bws-custom-code.php';
1274
+ $real_php_file = $folder . '/' . $php_file;
1275
+
1276
+ $is_multisite = is_multisite();
1277
+ if ( $is_multisite )
1278
+ $blog_id = get_current_blog_id();
1279
+
1280
+ if ( isset( $_REQUEST['bws_update_custom_code'] ) && check_admin_referer( 'bws_update_' . $css_file ) ) {
1281
+
1282
+ /* CSS */
1283
+ $newcontent_css = wp_unslash( $_POST['bws_newcontent_css'] );
1284
+ if ( ! empty( $newcontent_css ) && isset( $_REQUEST['bws_custom_css_active'] ) ) {
1285
+ if ( $is_multisite )
1286
+ $bstwbsftwppdtplgns_options['custom_code'][ $blog_id ][ $css_file ] = $upload_dir['baseurl'] . '/bws-custom-code/' . $css_file;
1287
+ else
1288
+ $bstwbsftwppdtplgns_options['custom_code'][ $css_file ] = $upload_dir['baseurl'] . '/bws-custom-code/' . $css_file;
1289
+ } else {
1290
+ if ( $is_multisite ) {
1291
+ if ( isset( $bstwbsftwppdtplgns_options['custom_code'][ $blog_id ][ $css_file ] ) )
1292
+ unset( $bstwbsftwppdtplgns_options['custom_code'][ $blog_id ][ $css_file ] );
1293
+ } else {
1294
+ if ( isset( $bstwbsftwppdtplgns_options['custom_code'][ $css_file ] ) )
1295
+ unset( $bstwbsftwppdtplgns_options['custom_code'][ $css_file ] );
1296
+ }
1297
+ }
1298
+ if ( $f = fopen( $real_css_file, 'w+' ) ) {
1299
+ fwrite( $f, $newcontent_css );
1300
+ fclose( $f );
1301
+ $message .= sprintf( __( 'File %s edited successfully.', 'bestwebsoft' ), '<i>' . $css_file . '</i>' ) . ' ';
1302
+ } else {
1303
+ $error .= __( 'Not enough permissions to create or update the file', 'bestwebsoft' ) . ' ' . $real_css_file . '. ';
1304
+ }
1305
+
1306
+ /* PHP */
1307
+ $newcontent_php = wp_unslash( trim( $_POST['bws_newcontent_php'] ) );
1308
+ if ( file_exists( $index_file ) ) {
1309
+ if ( ! empty( $newcontent_php ) && isset( $_REQUEST['bws_custom_php_active'] ) ) {
1310
+ if ( $is_multisite )
1311
+ $bstwbsftwppdtplgns_options['custom_code'][ $blog_id ][ $php_file ] = $real_php_file;
1312
+ else
1313
+ $bstwbsftwppdtplgns_options['custom_code'][ $php_file ] = $real_php_file;
1314
+ } else {
1315
+ if ( $is_multisite ) {
1316
+ if ( isset( $bstwbsftwppdtplgns_options['custom_code'][ $blog_id ][ $php_file ] ) )
1317
+ unset( $bstwbsftwppdtplgns_options['custom_code'][ $blog_id ][ $php_file ] );
1318
+ } else {
1319
+ if ( isset( $bstwbsftwppdtplgns_options['custom_code'][ $php_file ] ) )
1320
+ unset( $bstwbsftwppdtplgns_options['custom_code'][ $php_file ] );
1321
+ }
1322
+ }
1323
+
1324
+ if ( $f = fopen( $real_php_file, 'w+' ) ) {
1325
+ $newcontent_php = $newcontent_php;
1326
+ fwrite( $f, $newcontent_php );
1327
+ fclose( $f );
1328
+ $message .= sprintf( __( 'File %s edited successfully.', 'bestwebsoft' ), '<i>' . $php_file . '</i>' );
1329
+ } else {
1330
+ $error .= __( 'Not enough permissions to create or update the file', 'bestwebsoft' ) . ' ' . $real_php_file . '. ';
1331
+ }
1332
+ } else {
1333
+ $error .= __( 'Not enough permissions to create the file', 'bestwebsoft' ) . ' ' . $index_file . '. ';
1334
+ }
1335
+
1336
+ if ( ! empty( $error ) )
1337
+ $error .= ' <a href="https://codex.wordpress.org/Changing_File_Permissions" target="_blank">' . __( 'Learn more', 'bestwebsoft' ) . '</a>';
1338
+
1339
+ if ( $is_multisite )
1340
+ update_site_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
1341
+ else
1342
+ update_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
1343
+ }
1344
+
1345
+ if ( file_exists( $real_css_file ) ) {
1346
+ update_recently_edited( $real_css_file );
1347
+ $content_css = esc_textarea( file_get_contents( $real_css_file ) );
1348
+ if ( ( $is_multisite && isset( $bstwbsftwppdtplgns_options['custom_code'][ $blog_id ][ $css_file ] ) ) ||
1349
+ ( ! $is_multisite && isset( $bstwbsftwppdtplgns_options['custom_code'][ $css_file ] ) ) ) {
1350
+ $is_css_active = true;
1351
+ }
1352
+ }
1353
+ if ( file_exists( $real_php_file ) ) {
1354
+ update_recently_edited( $real_php_file );
1355
+ $content_php = esc_textarea( file_get_contents( $real_php_file ) );
1356
+ if ( ( $is_multisite && isset( $bstwbsftwppdtplgns_options['custom_code'][ $blog_id ][ $php_file ] ) ) ||
1357
+ ( ! $is_multisite && isset( $bstwbsftwppdtplgns_options['custom_code'][ $php_file ] ) ) ) {
1358
+ $is_php_active = true;
1359
+ }
1360
+ } else {
1361
+ $content_php = "<?php" . "\n" . "if ( ! defined( 'ABSPATH' ) ) exit;" . "\n" . "if ( ! defined( 'BWS_GLOBAL' ) ) exit;" . "\n\n" . "/* Start your code here */" . "\n";
1362
+ }
1363
+
1364
+ if ( ! empty( $message ) ) { ?>
1365
+ <div id="message" class="below-h2 updated notice is-dismissible"><p><?php echo $message; ?></p></div>
1366
+ <?php } ?>
1367
+ <form action="" method="post">
1368
+ <?php foreach ( array( 'css', 'php' ) as $extension ) { ?>
1369
+ <p>
1370
+ <?php if ( 'css' == $extension )
1371
+ _e( 'These styles will be added to the header on all pages of your site.', 'bestwebsoft' );
1372
+ else
1373
+ printf( __( 'These PHP code will be hooked to the %s action and will be printed on front end only.', 'bestwebsoft' ), '<a href="http://codex.wordpress.org/Plugin_API/Action_Reference/init" target="_blank"><code>init</code></a>' ); ?>
1374
+ </p>
1375
+ <p><big>
1376
+ <?php if ( ! file_exists( ${"real_{$extension}_file"} ) || ( is_writeable( ${"real_{$extension}_file"} ) ) ) {
1377
+ echo __( 'Editing', 'bestwebsoft' ) . ' <strong>' . ${"{$extension}_file"} . '</strong>';
1378
+ } else {
1379
+ echo __( 'Browsing', 'bestwebsoft' ) . ' <strong>' . ${"{$extension}_file"} . '</strong>';
1380
+ } ?>
1381
+ </big></p>
1382
+ <p><label><input type="checkbox" name="bws_custom_<?php echo $extension; ?>_active" value="1" <?php if ( ${"is_{$extension}_active"} ) echo "checked"; ?> /> <?php _e( 'Activate', 'bestwebsoft' ); ?></label></p>
1383
+ <textarea cols="70" rows="25" name="bws_newcontent_<?php echo $extension; ?>" id="bws_newcontent_<?php echo $extension; ?>"><?php echo ${"content_{$extension}"}; ?></textarea>
1384
+ <p class="description">
1385
+ <a href="<?php echo ( 'css' == $extension ) ? 'https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_started' : 'http://php.net/' ?>" target="_blank">
1386
+ <?php printf( __( 'Learn more about %s', 'bestwebsoft' ), strtoupper( $extension ) ); ?>
1387
+ </a>
1388
+ </p>
1389
+ <?php }
1390
+ if ( ( ! file_exists( $real_css_file ) || is_writeable( $real_css_file ) ) && ( ! file_exists( $real_php_file ) || is_writeable( $real_php_file ) ) ) { ?>
1391
+ <p class="submit">
1392
+ <input type="hidden" name="bws_update_custom_code" value="submit" />
1393
+ <?php submit_button( __( 'Save Changes', 'bestwebsoft' ), 'primary', 'submit', false );
1394
+ wp_nonce_field( 'bws_update_' . $css_file ); ?>
1395
+ </p>
1396
+ <?php } else { ?>
1397
+ <p><em><?php printf( __( 'You need to make this files writable before you can save your changes. See %s the Codex %s for more information.', 'bestwebsoft' ),
1398
+ '<a href="https://codex.wordpress.org/Changing_File_Permissions" target="_blank">',
1399
+ '</a>' ); ?></em></p>
1400
+ <?php } ?>
1401
+ </form>
1402
+ <?php }
1403
+ }
1404
+
1405
+ if ( ! function_exists( 'bws_enqueue_custom_code_css' ) ) {
1406
+ function bws_enqueue_custom_code_css() {
1407
+ global $bstwbsftwppdtplgns_options;
1408
+
1409
+ if ( ! isset( $bstwbsftwppdtplgns_options ) )
1410
+ $bstwbsftwppdtplgns_options = ( function_exists( 'is_multisite' ) && is_multisite() ) ? get_site_option( 'bstwbsftwppdtplgns_options' ) : get_option( 'bstwbsftwppdtplgns_options' );
1411
+
1412
+ if ( ! empty( $bstwbsftwppdtplgns_options['custom_code'] ) ) {
1413
+ $is_multisite = is_multisite();
1414
+ if ( $is_multisite )
1415
+ $blog_id = get_current_blog_id();
1416
+
1417
+ if ( ! $is_multisite && ! empty( $bstwbsftwppdtplgns_options['custom_code']['bws-custom-code.css'] ) )
1418
+ wp_enqueue_style( 'bws-custom-style', $bstwbsftwppdtplgns_options['custom_code']['bws-custom-code.css'] );
1419
+ elseif ( $is_multisite && ! empty( $bstwbsftwppdtplgns_options['custom_code'][ $blog_id ]['bws-custom-code.css'] ) )
1420
+ wp_enqueue_style( 'bws-custom-style', $bstwbsftwppdtplgns_options['custom_code'][ $blog_id ]['bws-custom-code.css'] );
1421
+ }
1422
+ }
1423
+ }
1424
+
1425
+ if ( ! function_exists( 'bws_enqueue_custom_code_php' ) ) {
1426
+ function bws_enqueue_custom_code_php() {
1427
+ if ( is_admin() )
1428
+ return;
1429
+
1430
+ global $bstwbsftwppdtplgns_options;
1431
+
1432
+ if ( ! isset( $bstwbsftwppdtplgns_options ) )
1433
+ $bstwbsftwppdtplgns_options = ( function_exists( 'is_multisite' ) && is_multisite() ) ? get_site_option( 'bstwbsftwppdtplgns_options' ) : get_option( 'bstwbsftwppdtplgns_options' );
1434
+
1435
+ if ( ! empty( $bstwbsftwppdtplgns_options['custom_code'] ) ) {
1436
+
1437
+ $is_multisite = is_multisite();
1438
+ if ( $is_multisite )
1439
+ $blog_id = get_current_blog_id();
1440
+
1441
+ if ( ! $is_multisite && ! empty( $bstwbsftwppdtplgns_options['custom_code']['bws-custom-code.php'] ) ) {
1442
+
1443
+ if ( file_exists( $bstwbsftwppdtplgns_options['custom_code']['bws-custom-code.php'] ) ) {
1444
+ define( 'BWS_GLOBAL', true );
1445
+ require_once( $bstwbsftwppdtplgns_options['custom_code']['bws-custom-code.php'] );
1446
+ } else {
1447
+ unset( $bstwbsftwppdtplgns_options['custom_code']['bws-custom-code.php'] );
1448
+ if ( $is_multisite )
1449
+ update_site_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
1450
+ else
1451
+ update_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
1452
+ }
1453
+ } elseif ( $is_multisite && ! empty( $bstwbsftwppdtplgns_options['custom_code'][ $blog_id ]['bws-custom-code.php'] ) ) {
1454
+ if ( file_exists( $bstwbsftwppdtplgns_options['custom_code'][ $blog_id ]['bws-custom-code.php'] ) ) {
1455
+ define( 'BWS_GLOBAL', true );
1456
+ require_once( $bstwbsftwppdtplgns_options['custom_code'][ $blog_id ]['bws-custom-code.php'] );
1457
+ } else {
1458
+ unset( $bstwbsftwppdtplgns_options['custom_code'][ $blog_id ]['bws-custom-code.php'] );
1459
+ if ( $is_multisite )
1460
+ update_site_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
1461
+ else
1462
+ update_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
1463
+ }
1464
+ }
1465
+ }
1466
+ }
1467
+ }
1468
+
1469
+ if ( ! function_exists( 'bws_delete_plugin' ) ) {
1470
+ function bws_delete_plugin( $basename ) {
1471
+ global $bstwbsftwppdtplgns_options;
1472
+
1473
+ $is_multisite = is_multisite();
1474
+ if ( $is_multisite )
1475
+ $blog_id = get_current_blog_id();
1476
+
1477
+ if ( ! isset( $bstwbsftwppdtplgns_options ) )
1478
+ $bstwbsftwppdtplgns_options = ( $is_multisite ) ? get_site_option( 'bstwbsftwppdtplgns_options' ) : get_option( 'bstwbsftwppdtplgns_options' );
1479
+
1480
+ /* remove bws_menu versions */
1481
+ unset( $bstwbsftwppdtplgns_options['bws_menu']['version'][ $basename ] );
1482
+ /* if empty ['bws_menu']['version'] - there is no other bws plugins - delete all */
1483
+ if ( empty( $bstwbsftwppdtplgns_options['bws_menu']['version'] ) ) {
1484
+ /* remove options */
1485
+ if ( $is_multisite )
1486
+ delete_site_option( 'bstwbsftwppdtplgns_options' );
1487
+ else
1488
+ delete_option( 'bstwbsftwppdtplgns_options' );
1489
+
1490
+ /* remove custom_code */
1491
+ if ( $is_multisite ) {
1492
+ global $wpdb;
1493
+ $old_blog = $wpdb->blogid;
1494
+ /* Get all blog ids */
1495
+ $blogids = $wpdb->get_col( "SELECT `blog_id` FROM $wpdb->blogs" );
1496
+ foreach ( $blogids as $blog_id ) {
1497
+ switch_to_blog( $blog_id );
1498
+ $upload_dir = wp_upload_dir();
1499
+ $folder = $upload_dir['basedir'] . '/bws-custom-code';
1500
+ if ( file_exists( $folder ) && is_dir( $folder ) ) {
1501
+ array_map( 'unlink', glob( "$folder/*" ) );
1502
+ rmdir( $folder );
1503
+ }
1504
+ }
1505
+ switch_to_blog( $old_blog );
1506
+ } else {
1507
+ $upload_dir = wp_upload_dir();
1508
+ $folder = $upload_dir['basedir'] . '/bws-custom-code';
1509
+ if ( file_exists( $folder ) && is_dir( $folder ) ) {
1510
+ array_map( 'unlink', glob( "$folder/*" ) );
1511
+ rmdir( $folder );
1512
+ }
1513
+ }
1514
+ }
1515
+ }
1516
+ }
1517
+
1518
  add_action( 'admin_init', 'bws_plugins_admin_init' );
1519
  add_action( 'admin_enqueue_scripts', 'bws_admin_enqueue_scripts' );
1520
  add_action( 'admin_head', 'bws_plugins_admin_head' );
1521
  add_action( 'admin_footer','bws_shortcode_media_button_popup' );
1522
 
1523
+ add_action( 'admin_notices', 'bws_admin_notices', 30 );
1524
+
1525
+ add_action( 'wp_enqueue_scripts', 'bws_enqueue_custom_code_css', 20 );
1526
+
1527
+ bws_enqueue_custom_code_php();
bws_menu/bws_menu.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  * Function for displaying BestWebSoft menu
4
- * Version: 1.8.2
5
  */
6
 
7
  if ( ! function_exists ( 'bws_admin_enqueue_scripts' ) )
@@ -9,497 +9,145 @@ if ( ! function_exists ( 'bws_admin_enqueue_scripts' ) )
9
 
10
  if ( ! function_exists( 'bws_add_menu_render' ) ) {
11
  function bws_add_menu_render() {
12
- global $wpdb, $wp_version, $bws_plugin_info;
13
- $error = $message = $bwsmn_form_email = '';
14
- $bws_donate_link = 'http://bestwebsoft.com/donate/';
15
 
16
- if ( ! function_exists( 'is_plugin_active_for_network' ) )
17
- require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
18
 
19
- if ( function_exists( 'is_multisite' ) )
20
- $admin_url = ( ! is_multisite() ) ? admin_url( '/' ) : network_admin_url( '/' );
21
- else
22
- $admin_url = admin_url( '/' );
23
 
24
- $bws_plugins = array(
25
- 'captcha/captcha.php' => array(
26
- 'name' => 'Captcha',
27
- 'description' => 'Plugin intended to prove that the visitor is a human being and not a spam robot.',
28
- 'link' => 'http://bestwebsoft.com/products/captcha/?k=d678516c0990e781edfb6a6c874f0b8a&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
29
- 'download' => 'http://bestwebsoft.com/products/captcha/download/?k=d678516c0990e781edfb6a6c874f0b8a&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
30
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&type=term&s=Captcha+bestwebsoft&plugin-search-input=Search+Plugins',
31
- 'settings' => 'admin.php?page=captcha.php',
32
- 'pro_version' => 'captcha-pro/captcha_pro.php',
33
- 'purchase' => 'http://bestwebsoft.com/products/captcha/buy/?k=ff7d65e55e5e7f98f219be9ed711094e&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
34
- 'pro_settings' => 'admin.php?page=captcha_pro.php'
35
- ),
36
- 'contact-form-plugin/contact_form.php' => array(
37
- 'name' => 'Contact Form',
38
- 'description' => 'Add Contact Form to your WordPress website.',
39
- 'link' => 'http://bestwebsoft.com/products/contact-form/?k=012327ef413e5b527883e031d43b088b&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
40
- 'download' => 'http://bestwebsoft.com/products/contact-form/download/?k=012327ef413e5b527883e031d43b088b&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
41
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&type=term&s=Contact+Form+bestwebsoft&plugin-search-input=Search+Plugins',
42
- 'settings' => 'admin.php?page=contact_form.php',
43
- 'pro_version' => 'contact-form-pro/contact_form_pro.php',
44
- 'purchase' => 'http://bestwebsoft.com/products/contact-form/buy/?k=773dc97bb3551975db0e32edca1a6d71&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
45
- 'pro_settings' => 'admin.php?page=contact_form_pro.php'
46
- ),
47
- 'facebook-button-plugin/facebook-button-plugin.php' => array(
48
- 'name' => 'Facebook Like Button',
49
- 'description' => 'Allows you to add the Follow and Like buttons the easiest way.',
50
- 'link' => 'http://bestwebsoft.com/products/facebook-like-button/?k=05ec4f12327f55848335802581467d55&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
51
- 'download' => 'http://bestwebsoft.com/products/facebook-like-button/download/?k=05ec4f12327f55848335802581467d55&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
52
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&type=term&s=Facebook+Like+Button+Plugin+bestwebsoft&plugin-search-input=Search+Plugins',
53
- 'settings' => 'admin.php?page=facebook-button-plugin.php',
54
- 'pro_version' => 'facebook-button-pro/facebook-button-pro.php',
55
- '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,
56
- 'pro_settings' => 'admin.php?page=facebook-button-pro.php'
57
- ),
58
- 'twitter-plugin/twitter.php' => array(
59
- 'name' => 'Twitter',
60
- 'description' => 'Allows you to add the Twitter "Follow" and "Like" buttons the easiest way.',
61
- 'link' => 'http://bestwebsoft.com/products/twitter/?k=f8cb514e25bd7ec4974d64435c5eb333&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
62
- 'download' => 'http://bestwebsoft.com/products/twitter/download/?k=f8cb514e25bd7ec4974d64435c5eb333&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
63
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&type=term&s=Twitter+Plugin+bestwebsoft&plugin-search-input=Search+Plugins',
64
- 'settings' => 'admin.php?page=twitter.php',
65
- 'pro_version' => 'twitter-pro/twitter-pro.php',
66
- 'purchase' => 'http://bestwebsoft.com/products/twitter/buy/?k=63ecbf0cc9cebf060b5a3c9362299700&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
67
- 'pro_settings' => 'admin.php?page=twitter-pro.php'
68
- ),
69
- 'portfolio/portfolio.php' => array(
70
- 'name' => 'Portfolio',
71
- 'description' => 'Allows you to create a page with the information about your past projects.',
72
- 'link' => 'http://bestwebsoft.com/products/portfolio/?k=1249a890c5b7bba6bda3f528a94f768b&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
73
- 'download' => 'http://bestwebsoft.com/products/portfolio/download/?k=1249a890c5b7bba6bda3f528a94f768b&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
74
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&type=term&s=Portfolio+bestwebsoft&plugin-search-input=Search+Plugins',
75
- 'settings' => 'admin.php?page=portfolio.php',
76
- 'pro_version' => 'portfolio-pro/portfolio-pro.php',
77
- 'purchase' => 'http://bestwebsoft.com/products/portfolio/buy/?k=2cc716026197d36538a414b728e49fdd&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
78
- 'pro_settings' => 'admin.php?page=portfolio-pro.php'
79
- ),
80
- 'gallery-plugin/gallery-plugin.php' => array(
81
- 'name' => 'Gallery',
82
- 'description' => 'Allows you to implement a Gallery page into your website.',
83
- 'link' => 'http://bestwebsoft.com/products/gallery/?k=2da21c0a64eec7ebf16337fa134c5f78&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
84
- 'download' => 'http://bestwebsoft.com/products/gallery/download/?k=2da21c0a64eec7ebf16337fa134c5f78&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
85
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&type=term&s=Gallery+Plugin+bestwebsoft&plugin-search-input=Search+Plugins',
86
- 'settings' => 'admin.php?page=gallery-plugin.php',
87
- 'pro_version' => 'gallery-plugin-pro/gallery-plugin-pro.php',
88
- 'purchase' => 'http://bestwebsoft.com/products/gallery/buy/?k=382e5ce7c96a6391f5ffa5e116b37fe0&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
89
- 'pro_settings' => 'admin.php?page=gallery-plugin-pro.php'
90
- ),
91
- 'adsense-plugin/adsense-plugin.php'=> array(
92
- 'name' => 'Google AdSense',
93
- 'description' => 'Allows Google AdSense implementation to your website.',
94
- 'link' => 'http://bestwebsoft.com/products/google-adsense/?k=60e3979921e354feb0347e88e7d7b73d&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
95
- 'download' => 'http://bestwebsoft.com/products/google-adsense/download/?k=60e3979921e354feb0347e88e7d7b73d&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
96
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&type=term&s=Adsense+Plugin+bestwebsoft&plugin-search-input=Search+Plugins',
97
- 'settings' => 'admin.php?page=adsense-plugin.php',
98
- 'pro_version' => 'adsense-pro/adsense-pro.php',
99
- 'purchase' => 'http://bestwebsoft.com/products/google-adsense/buy/?k=c23889b293d62aa1ad2c96513405f0e1&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
100
- 'pro_settings' => 'admin.php?page=adsense-pro.php'
101
- ),
102
- 'custom-search-plugin/custom-search-plugin.php'=> array(
103
- 'name' => 'Custom Search',
104
- 'description' => 'Allows to extend your website search functionality by adding a custom post type.',
105
- 'link' => 'http://bestwebsoft.com/products/custom-search/?k=933be8f3a8b8719d95d1079d15443e29&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
106
- 'download' => 'http://bestwebsoft.com/products/custom-search/download/?k=933be8f3a8b8719d95d1079d15443e29&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
107
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&type=term&s=Custom+Search+plugin+bestwebsoft&plugin-search-input=Search+Plugins',
108
- 'settings' => 'admin.php?page=custom_search.php',
109
- 'pro_version' => 'custom-search-pro/custom-search-pro.php',
110
- 'purchase' => 'http://bestwebsoft.com/products/custom-search/buy/?k=062b652ac6ac8ba863c9f30fc21d62c6&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
111
- 'pro_settings' => 'admin.php?page=custom_search_pro.php'
112
- ),
113
- 'quotes-and-tips/quotes-and-tips.php'=> array(
114
- 'name' => 'Quotes and Tips',
115
- 'description' => 'Allows you to implement quotes & tips block into your web site.',
116
- 'link' => 'http://bestwebsoft.com/products/quotes-and-tips/?k=5738a4e85a798c4a5162240c6515098d&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
117
- 'download' => 'http://bestwebsoft.com/products/quotes-and-tips/download/?k=5738a4e85a798c4a5162240c6515098d&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
118
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&type=term&s=Quotes+and+Tips+bestwebsoft&plugin-search-input=Search+Plugins',
119
- 'settings' => 'admin.php?page=quotes-and-tips.php'
120
- ),
121
- 'google-sitemap-plugin/google-sitemap-plugin.php'=> array(
122
- 'name' => 'Google Sitemap',
123
- 'description' => 'Allows you to add sitemap file to Google Webmaster Tools.',
124
- 'link' => 'http://bestwebsoft.com/products/google-sitemap/?k=5202b2f5ce2cf85daee5e5f79a51d806&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
125
- 'download' => 'http://bestwebsoft.com/products/google-sitemap/download/?k=5202b2f5ce2cf85daee5e5f79a51d806&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
126
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&type=term&s=Google+sitemap+plugin+bestwebsoft&plugin-search-input=Search+Plugins',
127
- 'settings' => 'admin.php?page=google-sitemap-plugin.php',
128
- 'pro_version' => 'google-sitemap-pro/google-sitemap-pro.php',
129
- 'purchase' => 'http://bestwebsoft.com/products/google-sitemap/buy/?k=7ea384a5cc36cb4c22741caa20dcd56d&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
130
- 'pro_settings' => 'admin.php?page=google-sitemap-pro.php'
131
- ),
132
- 'updater/updater.php'=> array(
133
- 'name' => 'Updater',
134
- 'description' => 'Allows you to update plugins and WP core.',
135
- 'link' => 'http://bestwebsoft.com/products/updater/?k=66f3ecd4c1912009d395c4bb30f779d1&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
136
- 'download' => 'http://bestwebsoft.com/products/updater/download/?k=66f3ecd4c1912009d395c4bb30f779d1&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
137
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&type=term&s=updater+bestwebsoft&plugin-search-input=Search+Plugins',
138
- 'settings' => 'admin.php?page=updater-options',
139
- 'pro_version' => 'updater-pro/updater_pro.php',
140
- 'purchase' => 'http://bestwebsoft.com/products/updater/buy/?k=cf633acbefbdff78545347fe08a3aecb&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
141
- 'pro_settings' => 'admin.php?page=updater-pro-options'
142
- ),
143
- 'custom-fields-search/custom-fields-search.php'=> array(
144
- 'name' => 'Custom Fields Search',
145
- 'description' => 'Allows you to add website search any existing custom fields.',
146
- 'link' => 'http://bestwebsoft.com/products/custom-fields-search/?k=f3f8285bb069250c42c6ffac95ed3284&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
147
- 'download' => 'http://bestwebsoft.com/products/custom-fields-search/download/?k=f3f8285bb069250c42c6ffac95ed3284&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
148
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&type=term&s=Custom+Fields+Search+bestwebsoft&plugin-search-input=Search+Plugins',
149
- 'settings' => 'admin.php?page=custom_fields_search.php'
150
- ),
151
- 'google-one/google-plus-one.php' => array(
152
- 'name' => 'Google +1',
153
- 'description' => 'Allows you to see how many times your page has been liked on Google Search Engine as well as who has liked the article.',
154
- 'link' => 'http://bestwebsoft.com/products/google-plus-one/?k=ce7a88837f0a857b3a2bb142f470853c&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
155
- 'download' => 'http://bestwebsoft.com/products/google-plus-one/download/?k=ce7a88837f0a857b3a2bb142f470853c&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
156
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&type=term&s=Google+%2B1+bestwebsoft&plugin-search-input=Search+Plugins',
157
- 'settings' => 'admin.php?page=google-plus-one.php',
158
- 'pro_version' => 'google-one-pro/google-plus-one-pro.php',
159
- '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,
160
- 'pro_settings' => 'admin.php?page=google-plus-one-pro.php'
161
- ),
162
- 'relevant/related-posts-plugin.php' => array(
163
- 'name' => 'Relevant - Related Posts',
164
- 'description' => 'Allows you to display related posts with similar words in category, tags, title or by adding special meta key for posts.',
165
- 'link' => 'http://bestwebsoft.com/products/related-posts/?k=73fb737037f7141e66415ec259f7e426&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
166
- 'download' => 'http://bestwebsoft.com/products/related-posts/download/?k=73fb737037f7141e66415ec259f7e426&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
167
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&s=Related+Posts+Plugin+Bestwebsoft&plugin-search-input=Search+Plugins',
168
- 'settings' => 'admin.php?page=related-posts-plugin.php'
169
- ),
170
- 'contact-form-to-db/contact_form_to_db.php' => array(
171
- 'name' => 'Contact Form to DB',
172
- 'description' => 'Allows you to manage the messages that have been sent from your site.',
173
- '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,
174
- 'download' => 'http://bestwebsoft.com/products/contact-form-to-db/download/?k=ba3747d317c2692e4136ca096a8989d6&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
175
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&s=Contact+Form+to+DB+bestwebsoft&plugin-search-input=Search+Plugins',
176
- 'settings' => 'admin.php?page=cntctfrmtdb_settings',
177
- 'pro_version' => 'contact-form-to-db-pro/contact_form_to_db_pro.php',
178
- '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,
179
- 'pro_settings' => 'admin.php?page=cntctfrmtdbpr_settings'
180
- ),
181
- 'pdf-print/pdf-print.php' => array(
182
- 'name' => 'PDF & Print',
183
- 'description' => 'Allows you to create PDF and Print page with adding appropriate buttons to the content.',
184
- 'link' => 'http://bestwebsoft.com/products/pdf-print/?k=bfefdfb522a4c0ff0141daa3f271840c&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
185
- 'download' => 'http://bestwebsoft.com/products/pdf-print/download/?k=bfefdfb522a4c0ff0141daa3f271840c&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
186
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&s=PDF+Print+Bestwebsoft&plugin-search-input=Search+Plugins',
187
- 'settings' => 'admin.php?page=pdf-print.php',
188
- 'pro_version' => 'pdf-print-pro/pdf-print-pro.php',
189
- 'purchase' => 'http://bestwebsoft.com/products/pdf-print/buy/?k=fd43a0e659ddc170a9060027cbfdcc3a&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
190
- 'pro_settings' => 'admin.php?page=pdf-print-pro.php'
191
- ),
192
- 'donate-button/donate.php' => array(
193
- 'name' => 'Donate',
194
- 'description' => 'Makes it possible to place donation buttons of various payment systems on your web page.',
195
- 'link' => 'http://bestwebsoft.com/products/donate/?k=a8b2e2a56914fb1765dd20297c26401b&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
196
- 'download' => 'http://bestwebsoft.com/products/donate/download/?k=a8b2e2a56914fb1765dd20297c26401b&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
197
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&s=Donate+Bestwebsoft&plugin-search-input=Search+Plugins',
198
- 'settings' => 'admin.php?page=donate.php'
199
- ),
200
- 'post-to-csv/post-to-csv.php' => array(
201
- 'name' => 'Post to CSV',
202
- 'description' => 'The plugin allows to export posts of any types to a csv file.',
203
- 'link' => 'http://bestwebsoft.com/products/post-to-csv/?k=653aa55518ae17409293a7a894268b8f&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
204
- 'download' => 'http://bestwebsoft.com/products/post-to-csv/download/?k=653aa55518ae17409293a7a894268b8f&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
205
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&s=Post+To+CSV+Bestwebsoft&plugin-search-input=Search+Plugins',
206
- 'settings' => 'admin.php?page=post-to-csv.php'
207
- ),
208
- 'google-shortlink/google-shortlink.php' => array(
209
- 'name' => 'Google Shortlink',
210
- 'description' => 'Allows you to get short links from goo.gl servise without leaving your site.',
211
- 'link' => 'http://bestwebsoft.com/products/google-shortlink/?k=afcf3eaed021bbbbeea1090e16bc22db&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
212
- 'download' => 'http://bestwebsoft.com/products/google-shortlink/download/?k=afcf3eaed021bbbbeea1090e16bc22db&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
213
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&s=Google+Shortlink+Bestwebsoft&plugin-search-input=Search+Plugins',
214
- 'settings' => 'admin.php?page=gglshrtlnk_options'
215
- ),
216
- 'htaccess/htaccess.php' => array(
217
- 'name' => 'Htaccess',
218
- 'description' => 'Allows controlling access to your website using the directives Allow and Deny.',
219
- 'link' => 'http://bestwebsoft.com/products/htaccess/?k=2b865fcd56a935d22c5c4f1bba52ed46&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
220
- 'download' => 'http://bestwebsoft.com/products/htaccess/download/?k=2b865fcd56a935d22c5c4f1bba52ed46&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
221
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&s=Htaccess+Bestwebsoft&plugin-search-input=Search+Plugins',
222
- 'settings' => 'admin.php?page=htaccess.php',
223
- 'pro_version' => 'htaccess-pro/htaccess-pro.php',
224
- 'purchase' => 'http://bestwebsoft.com/products/htaccess/buy/?k=59e9209a32864be534fda77d5e591c15&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
225
- 'pro_settings' => 'admin.php?page=htaccess-pro.php'
226
- ),
227
- 'google-captcha/google-captcha.php' => array(
228
- 'name' => 'Google Captcha (reCAPTCHA)',
229
- 'description' => 'Plugin intended to prove that the visitor is a human being and not a spam robot.',
230
- 'link' => 'http://bestwebsoft.com/products/google-captcha/?k=7b59fbe542acf950b29f3e020d5ad735&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
231
- 'download' => 'http://bestwebsoft.com/products/google-captcha/download/?k=7b59fbe542acf950b29f3e020d5ad735&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
232
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&s=Google+Captcha+Bestwebsoft&plugin-search-input=Search+Plugins',
233
- 'settings' => 'admin.php?page=google-captcha.php',
234
- 'pro_version' => 'google-captcha-pro/google-captcha-pro.php',
235
- 'purchase' => 'http://bestwebsoft.com/products/google-captcha/buy/?k=773d30149acf1edc32e5c0766b96c134&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
236
- 'pro_settings' => 'admin.php?page=google-captcha-pro.php'
237
- ),
238
- 'sender/sender.php' => array(
239
- 'name' => 'Sender',
240
- 'description' => 'You can send mails to all users or to certain categories of users.',
241
- 'link' => 'http://bestwebsoft.com/products/sender/?k=89c297d14ba85a8417a0f2fc05e089c7&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
242
- 'download' => 'http://bestwebsoft.com/products/sender/download/?k=89c297d14ba85a8417a0f2fc05e089c7&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
243
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&s=Sender+Bestwebsoft&plugin-search-input=Search+Plugins',
244
- 'settings' => 'admin.php?page=sndr_settings',
245
- 'pro_version' => 'sender-pro/sender-pro.php',
246
- 'purchase' => 'http://bestwebsoft.com/products/sender/buy/?k=dc5d1a87bdc8aeab2de40ffb99b38054&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
247
- 'pro_settings' => 'admin.php?page=sndrpr_settings'
248
- ),
249
- 'subscriber/subscriber.php' => array(
250
- 'name' => 'Subscriber',
251
- 'description' => 'This plugin allows you to subscribe users for newsletters from your website.',
252
- 'link' => 'http://bestwebsoft.com/products/subscriber/?k=a4ecc1b7800bae7329fbe8b4b04e9c88&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
253
- 'download' => 'http://bestwebsoft.com/products/subscriber/download/?k=a4ecc1b7800bae7329fbe8b4b04e9c88&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
254
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&s=Subscriber+Bestwebsoft&plugin-search-input=Search+Plugins',
255
- 'settings' => 'admin.php?page=sbscrbr_settings_page',
256
- 'pro_version' => 'subscriber-pro/subscriber-pro.php',
257
- 'purchase' => 'http://bestwebsoft.com/products/subscriber/buy/?k=02dbb8b549925d9b74e70adc2a7282e4&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
258
- 'pro_settings' => 'admin.php?page=sbscrbrpr_settings_page'
259
- ),
260
- 'contact-form-multi/contact-form-multi.php' => array(
261
- 'name' => 'Contact Form Multi',
262
- 'description' => 'Add-on to the Contact Form plugin that allows to create and implement multiple contact forms.',
263
- 'link' => 'http://bestwebsoft.com/products/contact-form-multi/?k=83cdd9e72a9f4061122ad28a67293c72&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
264
- 'download' => 'http://bestwebsoft.com/products/contact-form-multi/download/?k=83cdd9e72a9f4061122ad28a67293c72&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
265
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&s=Contact+Form+Multi+Bestwebsoft&plugin-search-input=Search+Plugins',
266
- 'settings' => '',
267
- 'pro_version' => 'contact-form-multi-pro/contact-form-multi-pro.php',
268
- '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,
269
- 'pro_settings' => ''
270
- ),
271
- 'bws-google-maps/bws-google-maps.php' => array(
272
- 'name' => 'Google Maps',
273
- 'description' => 'Easy to set up and insert Google Maps to your website.',
274
- 'link' => 'http://bestwebsoft.com/products/bws-google-maps/?k=d8fac412d7359ebaa4ff53b46572f9f7&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
275
- 'download' => 'http://bestwebsoft.com/products/bws-google-maps/download/?k=d8fac412d7359ebaa4ff53b46572f9f7&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
276
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&s=Google+Maps+Bestwebsoft&plugin-search-input=Search+Plugins',
277
- 'settings' => 'admin.php?page=bws-google-maps.php',
278
- 'pro_version' => 'bws-google-maps-pro/bws-google-maps-pro.php',
279
- '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,
280
- 'pro_settings' => 'admin.php?page=bws-google-maps-pro.php'
281
- ),
282
- 'bws-google-analytics/bws-google-analytics.php' => array(
283
- 'name' => 'Google Analytics',
284
- 'description' => 'Allows you to retrieve basic stats from Google Analytics account and add the tracking code to your blog.',
285
- 'link' => 'http://bestwebsoft.com/products/bws-google-analytics/?k=261c74cad753fb279cdf5a5db63fbd43&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
286
- 'download' => 'http://bestwebsoft.com/products/bws-google-analytics/download/?k=261c74cad753fb279cdf5a5db63fbd43&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
287
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&s=Google+Analytics+Bestwebsoft&plugin-search-input=Search+Plugins',
288
- 'settings' => 'admin.php?page=bws-google-analytics.php',
289
- 'pro_version' => 'bws-google-analytics-pro/bws-google-analytics-pro.php',
290
- '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,
291
- 'pro_settings' => 'admin.php?page=bws-google-analytics-pro.php'
292
- ),
293
- 'db-manager/db-manager.php' => array(
294
- 'name' => 'DB Manager',
295
- 'description' => 'Allows you to download the latest version of PhpMyadmin and Dumper and manage your site.',
296
- 'link' => 'http://bestwebsoft.com/products/db-manager/?k=01ed9731780d87f85f5901064b7d76d8&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
297
- 'download' => 'http://bestwebsoft.com/products/db-manager/download/?k=01ed9731780d87f85f5901064b7d76d8&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
298
- 'wp_install' => 'http://bestwebsoft.com/products/db-manager/download/?k=01ed9731780d87f85f5901064b7d76d8&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
299
- 'settings' => 'admin.php?page=db-manager.php'
300
- ),
301
- 'user-role/user-role.php' => array(
302
- 'name' => 'User Role',
303
- 'description' => 'Allows to change wordpress user role capabilities.',
304
- 'link' => 'http://bestwebsoft.com/products/user-role/?k=dfe2244835c6fbf601523964b3f34ccc&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
305
- 'download' => 'http://bestwebsoft.com/products/user-role/download/?k=dfe2244835c6fbf601523964b3f34ccc&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
306
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&s=User+Role+BestWebSoft&plugin-search-input=Search+Plugins',
307
- 'settings' => 'admin.php?page=user-role.php',
308
- 'pro_version' => 'user-role-pro/user-role-pro.php',
309
- 'purchase' => 'http://bestwebsoft.com/products/user-role/buy/?k=cfa9cea6613fb3d7c0a3622fa2faaf46&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
310
- 'pro_settings' => 'admin.php?page=user-role-pro.php'
311
- ),
312
- 'email-queue/email-queue.php' => array(
313
- 'name' => 'Email Queue',
314
- 'description' => 'Allows to manage email massages sent by BestWebSoft plugins.',
315
- 'link' => 'http://bestwebsoft.com/products/email-queue/?k=e345e1b6623f0dca119bc2d9433b130b&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
316
- 'download' => 'http://bestwebsoft.com/products/email-queue/download/?k=e345e1b6623f0dca119bc2d9433b130b&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
317
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&s=Email+Queue+BestWebSoft&plugin-search-input=Search+Plugins',
318
- 'settings' => 'admin.php?page=mlq_settings'
319
- ),
320
- 'limit-attempts/limit-attempts.php' => array(
321
- 'name' => 'Limit Attempts',
322
- 'description' => 'Allows you to limit rate of login attempts by the ip, and create whitelist and blacklist.',
323
- 'link' => 'http://bestwebsoft.com/products/limit-attempts/?k=b14e1697ee4d008abcd4bd34d492573a&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
324
- 'download' => 'http://bestwebsoft.com/products/limit-attempts/download/?k=b14e1697ee4d008abcd4bd34d492573a&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
325
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&s=Limit+Attempts+BestWebSoft&plugin-search-input=Search+Plugins',
326
- 'settings' => 'admin.php?page=limit-attempts.php',
327
- 'pro_version' => 'limit-attempts-pro/limit-attempts-pro.php',
328
- 'purchase' => 'http://bestwebsoft.com/products/limit-attempts/buy/?k=9d42cdf22c7fce2c4b6b447e6a2856e0&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
329
- 'pro_settings' => 'admin.php?page=limit-attempts-pro.php'
330
- ),
331
- 'job-board/job-board.php' => array(
332
- 'name' => 'Job Board',
333
- 'description' => 'Allows to create a job-board page on your site.',
334
- 'link' => 'http://bestwebsoft.com/products/job-board/?k=b0c504c9ce6edd6692e04222af3fed6f&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
335
- 'download' => 'http://bestwebsoft.com/products/job-board/download/?k=b0c504c9ce6edd6692e04222af3fed6f&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
336
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&type=term&s=Job+board+BestWebSoft&plugin-search-input=Search+Plugins',
337
- 'settings' => 'admin.php?page=job-board.php'
338
- ),
339
- 'multilanguage/multilanguage.php' => array(
340
- 'name' => 'Multilanguage',
341
- 'description' => 'Allows to create content on a Wordpress site in different languages.',
342
- 'link' => 'http://bestwebsoft.com/products/multilanguage/?k=7d68c7bfec2486dc350c67fff57ad433&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
343
- 'download' => 'http://bestwebsoft.com/products/multilanguage/download/?k=7d68c7bfec2486dc350c67fff57ad433&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
344
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&type=term&s=Multilanguage+BestWebSoft&plugin-search-input=Search+Plugins',
345
- 'settings' => 'admin.php?page=mltlngg_settings',
346
- 'pro_version' => 'multilanguage-pro/multilanguage-pro.php',
347
- 'purchase' => 'http://bestwebsoft.com/products/multilanguage/buy/?k=2d1121cd9a5ced583fc29eefd51bdf57&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
348
- 'pro_settings' => 'admin.php?page=mltlnggpr_settings'
349
- ),
350
- 'bws-popular-posts/bws-popular-posts.php' => array(
351
- 'name' => 'Popular Posts',
352
- 'description' => 'This plugin will help you can display the most popular posts on your blog in the widget.',
353
- 'link' => 'http://bestwebsoft.com/products/popular-posts/?k=4d529f116d2b7f7df3a78018c383f975&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
354
- 'download' => 'http://bestwebsoft.com/products/popular-posts/download/?k=4d529f116d2b7f7df3a78018c383f975&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
355
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&type=term&s=Popular+Posts+BestWebSoft&plugin-search-input=Search+Plugins',
356
- 'settings' => 'admin.php?page=popular-posts.php'
357
- ),
358
- 'bws-testimonials/bws-testimonials.php' => array(
359
- 'name' => 'Testimonials',
360
- 'description' => 'Allows creating and displaying a Testimonial on your website.',
361
- 'link' => 'http://bestwebsoft.com/products/testimonials/?k=3fe4bb89dc901c98e43a113e08f8db73&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
362
- 'download' => 'http://bestwebsoft.com/products/testimonials/download/?k=3fe4bb89dc901c98e43a113e08f8db73&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
363
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&type=term&s=Testimonials+BestWebSoft&plugin-search-input=Search+Plugins',
364
- 'settings' => 'admin.php?page=testimonials.php'
365
- ),
366
- 'bws-featured-posts/bws-featured-posts.php' => array(
367
- 'name' => 'Featured Posts',
368
- 'description' => 'Displays featured posts randomly on any website page.',
369
- 'link' => 'http://bestwebsoft.com/products/featured-posts/?k=f0afb31185ba7c7d6d598528d69f6d97&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
370
- 'download' => 'http://bestwebsoft.com/products/featured-posts/download/?k=f0afb31185ba7c7d6d598528d69f6d97&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
371
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&type=term&s=Featured+Posts+BestWebSoft&plugin-search-input=Search+Plugins',
372
- 'settings' => 'admin.php?page=featured-posts.php'
373
- ),
374
- 'gallery-categories/gallery-categories.php' => array(
375
- 'name' => 'Gallery Categories',
376
- 'description' => 'Add-on for Gallery Plugin by BestWebSoft',
377
- 'link' => 'http://bestwebsoft.com/products/gallery-categories/?k=7d68c7bfec2486dc350c67fff57ad433&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
378
- 'download' => 'http://bestwebsoft.com/products/gallery-categories/download/?k=7d68c7bfec2486dc350c67fff57ad433&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
379
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&type=term&s=Gallery+Categories+BestWebSoft&plugin-search-input=Search+Plugins',
380
- 'settings' => ''
381
- ),
382
- 're-attacher/re-attacher.php' => array(
383
- 'name' => 'Re-attacher',
384
- 'description' => 'This plugin allows to attach, unattach or reattach media item in different post.',
385
- 'link' => 'http://bestwebsoft.com/products/re-attacher/?k=4d529f116d2b7f7df3a78018c383f975&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
386
- 'download' => 'http://bestwebsoft.com/products/re-attacher/download/?k=4d529f116d2b7f7df3a78018c383f975&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
387
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&type=term&s=Re-attacher+BestWebSoft&plugin-search-input=Search+Plugins',
388
- 'settings' => 'admin.php?page=re-attacher.php'
389
- ),
390
- 'bws-smtp/bws-smtp.php' => array(
391
- 'name' => 'SMTP',
392
- 'description' => 'This plugin introduces an easy way to configure sending email messages via SMTP.',
393
- 'link' => 'http://bestwebsoft.com/products/smtp/?k=0546419f962704429ad2d9b88567752f&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
394
- 'download' => 'http://bestwebsoft.com/products/smtp/download/?k=0546419f962704429ad2d9b88567752f&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
395
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&type=term&s=SMTP+BestWebSoft&plugin-search-input=Search+Plugins',
396
- 'settings' => 'admin.php?page=bwssmtp_settings'
397
- ),
398
- 'promobar/promobar.php' => array(
399
- 'name' => 'PromoBar',
400
- 'description' => 'This plugin allows placing banners with any data on your website.',
401
- 'link' => 'http://bestwebsoft.com/products/promobar/?k=619eac2232d9cfa382c4e678c3b14766&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
402
- 'download' => 'http://bestwebsoft.com/products/promobar/download/?k=619eac2232d9cfa382c4e678c3b14766&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
403
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&type=term&s=PromoBar+BestWebSoft&plugin-search-input=Search+Plugins',
404
- 'settings' => 'admin.php?page=promobar.php',
405
- 'pro_version' => 'promobar-pro/promobar-pro.php',
406
- 'purchase' => 'http://bestwebsoft.com/products/promobar/buy/?k=a9b09708502f12a1483532ba12fe2103&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
407
- 'pro_settings' => 'admin.php?page=promobar-pro.php'
408
- ),
409
- 'realty/realty.php' => array(
410
- 'name' => 'Realty',
411
- 'description' => 'A convenient plugin that adds Real Estate functionality.',
412
- 'link' => 'http://bestwebsoft.com/products/realty/?k=d55de979dbbbb7af0b2ff1d7f43884fa&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
413
- 'download' => 'http://bestwebsoft.com/products/realty/download/?k=d55de979dbbbb7af0b2ff1d7f43884fa&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
414
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&type=term&s=Realty+BestWebSoft&plugin-search-input=Search+Plugins',
415
- 'settings' => 'admin.php?page=realty_settings',
416
- 'pro_version' => 'realty-pro/realty-pro.php',
417
- 'purchase' => 'http://bestwebsoft.com/products/realty/buy/?k=c7791f0a72acfb36f564a614dbccb474&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
418
- 'pro_settings' => 'admin.php?page=realty_pro_settings'
419
- ),
420
- 'zendesk-help-center/zendesk-help-center.php' => array(
421
- 'name' => 'Zendesk Help Center Backup',
422
- 'description' => 'This plugin allows to backup Zendesk Help Center.',
423
- 'link' => 'http://bestwebsoft.com/products/zendesk-help-center/?k=2a5fd2f4b2f4bde46f2ca44b8d15846d&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
424
- 'download' => 'http://bestwebsoft.com/products/zendesk-help-center/download/?k=2a5fd2f4b2f4bde46f2ca44b8d15846d&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
425
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&type=term&s=Zendesk+Help+Center+Backup+BestWebSoft&plugin-search-input=Search+Plugins',
426
- 'settings' => 'admin.php?page=zendesk_hc.php&tab=settings',
427
- 'pro_version' => 'zendesk-help-center-pro/zendesk-help-center-pro.php',
428
- '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,
429
- 'pro_settings' => 'admin.php?page=zendesk_hc.php&tab=settings'
430
- ),
431
- 'social-buttons-pack/social-buttons-pack.php' => array(
432
- 'name' => 'Social Buttons Pack',
433
- 'description' => 'Add Social buttons to your WordPress website.',
434
- 'link' => 'http://bestwebsoft.com/products/social-buttons-pack/?k=b6440fad9f54274429e536b0c61b42da&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
435
- 'download' => 'http://bestwebsoft.com/products/social-buttons-pack/download/?k=b6440fad9f54274429e536b0c61b42da&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
436
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&type=term&s=Social+Buttons+Pack+BestWebSoft&plugin-search-input=Search+Plugins',
437
- 'settings' => 'admin.php?page=social-buttons.php'
438
- ),
439
- 'pagination/pagination.php' => array(
440
- 'name' => 'Pagination',
441
- 'description' => 'Add pagination block to your WordPress website.',
442
- 'link' => 'http://bestwebsoft.com/products/pagination/?k=22adb940256f149559ba8fedcd728ac8&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
443
- 'download' => 'http://bestwebsoft.com/products/pagination/download/?k=22adb940256f149559ba8fedcd728ac8&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
444
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&type=term&s=Pagination+BestWebSoft&plugin-search-input=Search+Plugins',
445
- 'settings' => 'admin.php?page=pagination.php'
446
- ),
447
- 'visitors-online/visitors-online.php' => array(
448
- 'name' => 'Visitors Online',
449
- 'description' => 'See how many users, guests and bots are online at the website.',
450
- 'link' => 'http://bestwebsoft.com/products/visitors-online/?k=93c28013a4f830671b3bba9502ed5177&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
451
- 'download' => 'http://bestwebsoft.com/products/visitors-online/download/?k=93c28013a4f830671b3bba9502ed5177&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
452
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&type=term&s=Visitors+online+BestWebSoft&plugin-search-input=Search+Plugins',
453
- 'settings' => 'admin.php?page=visitors-online.php',
454
- 'pro_version' => 'visitors-online-pro/visitors-online-pro.php',
455
- 'purchase' => 'http://bestwebsoft.com/products/visitors-online/buy/?k=f9a746075ff8a0a6cb192cb46526afd2&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
456
- 'pro_settings' => 'admin.php?page=visitors-online-pro.php'
457
- ),
458
- 'profile-extra-fields/profile-extra-fields.php' => array(
459
- 'name' => 'Profile Extra Fields',
460
- 'description' => "Add additional fields on the user's profile page",
461
- 'link' => 'http://bestwebsoft.com/products/profile-extra-fields/?k=fe3b6c3dbc80bd4b1cf9a27a2f339820&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
462
- 'download' => 'http://bestwebsoft.com/products/profile-extra-fields/download/?k=fe3b6c3dbc80bd4b1cf9a27a2f339820&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
463
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&type=term&s=Profile+Extra+Fields+BestWebSoft&plugin-search-input=Search+Plugins',
464
- 'settings' => 'admin.php?page=profile-extra-fields.php'
465
- ),
466
- 'error-log-viewer/error-log-viewer.php' => array(
467
- 'name' => 'Error Log Viewer',
468
- 'description' => "Work with log files and folders on the WordPress server",
469
- 'link' => 'http://bestwebsoft.com/products/error-log-viewer/?k=da0de8bd2c7a0b2fea5df64d55a368b3&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
470
- 'download' => 'http://bestwebsoft.com/products/error-log-viewer/download/?k=da0de8bd2c7a0b2fea5df64d55a368b3&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version,
471
- 'wp_install' => $admin_url . 'plugin-install.php?tab=search&type=term&s=Error+Log+Viewer+BestWebSoft&plugin-search-input=Search+Plugins',
472
- 'settings' => 'admin.php?page=rrrlgvwr.php&tab=settings'
473
- )
474
- );
475
 
476
- $all_plugins = get_plugins();
477
- $active_plugins = get_option( 'active_plugins' );
478
- $recommend_plugins = array_diff_key( $bws_plugins, $all_plugins );
479
- $bws_plugins_pro = array();
480
 
481
- foreach ( $bws_plugins as $key_plugin => $value_plugin ) {
482
- if ( ! isset( $all_plugins[ $key_plugin ] ) && isset( $bws_plugins[ $key_plugin ]['pro_version'] ) && isset( $all_plugins[ $bws_plugins[ $key_plugin ]['pro_version'] ] ) ) {
483
- unset( $recommend_plugins[ $key_plugin ] );
484
- }
485
- }
 
 
486
 
487
- foreach ( $all_plugins as $key_plugin => $value_plugin ) {
488
- if ( isset( $value_plugin['Author'] ) && $value_plugin['Author'] != "BestWebSoft" )
489
- unset( $all_plugins[ $key_plugin ] );
490
- elseif ( '-plus.php' == substr( $key_plugin, -9, 9 ) )
491
- unset( $all_plugins[ $key_plugin ] );
492
- else {
493
- foreach ( $bws_plugins as $key => $value ) {
494
- if ( isset( $value['pro_version'] ) && $value['pro_version'] == $key_plugin ) {
495
- $bws_plugins_pro[ $key_plugin ] = $key;
496
- unset( $all_plugins[ $key ] );
497
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
498
  }
499
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
500
  }
501
 
502
- if ( isset( $_GET['action'] ) && 'system_status' == $_GET['action'] ) {
503
  $all_plugins = get_plugins();
504
  $active_plugins = get_option( 'active_plugins' );
505
  $mysql_info = $wpdb->get_results( "SHOW VARIABLES LIKE 'sql_mode'" );
@@ -525,8 +173,9 @@ if ( ! function_exists( 'bws_add_menu_render' ) ) {
525
  $multisite = __( 'Yes', 'bestwebsoft' );
526
  else
527
  $multisite = __( 'No', 'bestwebsoft' );
528
- } else
529
  $multisite = __( 'N/A', 'bestwebsoft' );
 
530
 
531
  $system_info = array(
532
  'system_info' => '',
@@ -564,420 +213,423 @@ if ( ! function_exists( 'bws_add_menu_render' ) ) {
564
  else
565
  $system_info['inactive_plugins'][ $plugin['Name'] ] = $plugin['Version'];
566
  }
567
- }
568
 
569
- if ( ( isset( $_REQUEST['bwsmn_form_submit'] ) && check_admin_referer( plugin_basename(__FILE__), 'bwsmn_nonce_submit' ) ) ||
570
- ( isset( $_REQUEST['bwsmn_form_submit_custom_email'] ) && check_admin_referer( plugin_basename(__FILE__), 'bwsmn_nonce_submit_custom_email' ) ) ) {
571
- if ( isset( $_REQUEST['bwsmn_form_email'] ) ) {
572
- $bwsmn_form_email = esc_html( trim( $_REQUEST['bwsmn_form_email'] ) );
573
- if ( $bwsmn_form_email == "" || ! is_email( $bwsmn_form_email ) ) {
574
- $error = __( "Please enter a valid email address.", 'bestwebsoft' );
 
 
 
 
575
  } else {
576
- $email = $bwsmn_form_email;
577
- $bwsmn_form_email = '';
578
- $message = __( 'Email with system info is sent to ', 'bestwebsoft' ) . $email;
579
  }
580
- } else {
581
- $email = 'plugin_system_status@bestwebsoft.com';
582
- $message = __( 'Thank you for contacting us.', 'bestwebsoft' );
583
- }
584
 
585
- if ( $error == '' ) {
586
- $headers = 'MIME-Version: 1.0' . "\n";
587
- $headers .= 'Content-type: text/html; charset=utf-8' . "\n";
588
- $headers .= 'From: ' . get_option( 'admin_email' );
589
- $message_text = '<html><head><title>System Info From ' . home_url() . '</title></head><body>
590
- <h4>Environment</h4>
591
- <table>';
592
- foreach ( $system_info['system_info'] as $key => $value ) {
593
- $message_text .= '<tr><td>'. $key .'</td><td>'. $value .'</td></tr>';
594
- }
595
- $message_text .= '</table>';
596
- if ( ! empty( $system_info['active_plugins'] ) ) {
597
- $message_text .= '<h4>Active Plugins</h4>
598
  <table>';
599
- foreach ( $system_info['active_plugins'] as $key => $value ) {
600
- $message_text .= '<tr><td scope="row">'. $key .'</td><td scope="row">'. $value .'</td></tr>';
601
  }
602
  $message_text .= '</table>';
603
- }
604
- if ( ! empty( $system_info['inactive_plugins'] ) ) {
605
- $message_text .= '<h4>Inactive Plugins</h4>
606
- <table>';
607
- foreach ( $system_info['inactive_plugins'] as $key => $value ) {
608
- $message_text .= '<tr><td scope="row">'. $key .'</td><td scope="row">'. $value .'</td></tr>';
 
609
  }
610
- $message_text .= '</table>';
 
 
 
 
 
 
 
 
 
 
 
611
  }
612
- $message_text .= '</body></html>';
613
- $result = wp_mail( $email, 'System Info From ' . home_url(), $message_text, $headers );
614
- if ( $result != true )
615
- $error = __( "Sorry, email message could not be delivered.", 'bestwebsoft' );
616
  }
617
  } ?>
618
- <div class="wrap">
619
- <h1>
620
- <span class="bws_main title">BestWebSoft</span>
621
- <ul class="subsubsub bws_title_menu">
622
- <li><a href="<?php echo esc_url( 'http://support.bestwebsoft.com/home' ); ?>" target="_blank"><?php _e( 'Need help?', 'bestwebsoft' ); ?></a></li> |
623
- <li><a href="<?php echo esc_url( 'http://bestwebsoft.com/wp-login.php' ); ?>" target="_blank"><?php _e( 'Client area', 'bestwebsoft' ); ?></a></li>
624
- <li><a class="bws_system_status <?php if ( isset( $_GET['action'] ) && 'system_status' == $_GET['action'] ) echo ' nav-tab-active'; ?>" href="admin.php?page=bws_plugins&amp;action=system_status"><?php _e( 'System status', 'bestwebsoft' ); ?></a></li>
625
- </ul>
626
- <div class="clear"></div>
627
- </h1>
628
- <h2 class="nav-tab-wrapper">
629
- <a class="nav-tab<?php if ( !isset( $_GET['action'] ) ) echo ' nav-tab-active'; ?>" href="admin.php?page=bws_plugins"><?php _e( 'Plugins', 'bestwebsoft' ); ?></a>
630
- <a class="nav-tab<?php if ( isset( $_GET['action'] ) && 'themes' == $_GET['action'] ) echo ' nav-tab-active'; ?>" href="admin.php?page=bws_plugins&amp;action=themes"><?php _e( 'Themes', 'bestwebsoft' ); ?></a>
631
- </h2>
632
- <?php if ( ! isset( $_GET['action'] ) ) { ?>
633
- <ul class="subsubsub">
634
- <li><a <?php if ( !isset( $_GET['sub'] ) ) echo 'class="current" '; ?>href="admin.php?page=bws_plugins"><?php _e( 'All', 'bestwebsoft' ); ?></a></li> |
635
- <li><a <?php if ( isset( $_GET['sub'] ) && 'installed' == $_GET['sub'] ) echo 'class="current" '; ?>href="admin.php?page=bws_plugins&amp;sub=installed"><?php _e( 'Installed', 'bestwebsoft' ); ?></a></li> |
636
- <li><a <?php if ( isset( $_GET['sub'] ) && 'recommended' == $_GET['sub'] ) echo 'class="current" '; ?>href="admin.php?page=bws_plugins&amp;sub=recommended"><?php _e( 'Recommended', 'bestwebsoft' ); ?></a></li>
637
- </ul>
638
  <div class="clear"></div>
639
- <?php if ( ( isset( $_GET['sub'] ) && 'installed' == $_GET['sub'] ) || !isset( $_GET['sub'] ) ) { ?>
640
- <h3 class="bws_installed"><?php _e( 'Installed plugins', 'bestwebsoft' ); ?></h3>
641
- <?php foreach ( $all_plugins as $key_plugin => $value_plugin ) {
642
- if ( isset( $bws_plugins_pro[ $key_plugin ] ) )
643
- $key_plugin = $bws_plugins_pro[ $key_plugin ];
644
-
645
- if ( isset( $bws_plugins[ $key_plugin ] ) ) {
646
- $key_plugin_explode = explode( '-plugin/', $key_plugin );
647
- if ( isset( $key_plugin_explode[1] ) )
648
- $icon = $key_plugin_explode[0];
649
- else {
650
- $key_plugin_explode = explode( '/', $key_plugin );
651
- $icon = $key_plugin_explode[0];
652
- }
653
- }
654
-
655
- if ( isset( $bws_plugins[ $key_plugin ]['pro_version'] ) && ( in_array( $bws_plugins[ $key_plugin ]['pro_version'], $active_plugins ) || is_plugin_active_for_network( $bws_plugins[ $key_plugin ]['pro_version'] ) ) ) { ?>
656
- <div class="bws_product_box bws_exist_overlay">
657
- <div class="bws_product">
658
- <div class="bws_product_title"><?php echo $value_plugin["Name"]; ?></div>
659
- <div class="bws_product_content">
660
- <div class="bws_product_icon">
661
- <div class="bws_product_icon_pro">PRO</div>
662
- <img src="<?php echo plugins_url( "icons/" , __FILE__ ) . $icon . '.png'; ?>"/>
663
- </div>
664
- <div class="bws_product_description"><?php echo $value_plugin["Description"]; ?></div>
665
- </div>
666
- <div class="clear"></div>
667
- </div>
668
- <div class="bws_product_links">
669
- <a href="<?php echo $bws_plugins[ $key_plugin ]["link"]; ?>" target="_blank"><?php _e( "Learn more", 'bestwebsoft' ); ?></a>
670
- <?php if ( '' != $bws_plugins[ $key_plugin ]["pro_settings"] ) { ?>
671
- <span> | </span>
672
- <a href="<?php echo $bws_plugins[ $key_plugin ]["pro_settings"]; ?>" target="_blank"><?php _e( "Settings", 'bestwebsoft' ); ?></a>
673
- <?php } ?>
674
- </div>
675
- </div>
676
- <?php } elseif ( isset( $bws_plugins[ $key_plugin ] ) && ( in_array( $key_plugin, $active_plugins ) || is_plugin_active_for_network( $key_plugin ) ) ) {
677
- if ( isset( $bws_plugins[ $key_plugin ]['pro_version'] ) && isset( $all_plugins[ $bws_plugins[ $key_plugin ]['pro_version'] ] ) ) { ?>
678
- <div class="bws_product_box bws_product_deactivated">
679
- <div class="bws_product">
680
- <div class="bws_product_title"><?php echo $value_plugin["Name"]; ?></div>
681
- <div class="bws_product_content">
682
- <div class="bws_product_icon">
683
- <div class="bws_product_icon_pro">PRO</div>
684
- <img src="<?php echo plugins_url( "icons/" , __FILE__ ) . $icon . '.png'; ?>"/>
685
- </div>
686
- <div class="bws_product_description"><?php echo $bws_plugins[ $key_plugin ]["description"]; ?></div>
687
- </div>
688
- <div class="clear"></div>
689
- </div>
690
- <div class="bws_product_links">
691
- <a href="<?php echo $bws_plugins[ $key_plugin ]["link"]; ?>" target="_blank"><?php _e( "Learn more", 'bestwebsoft' ); ?></a>
692
- <span> | </span>
693
- <a class="bws_activate" href="plugins.php" title="<?php _e( "Activate this plugin", 'bestwebsoft' ); ?>" target="_blank"><?php _e( "Activate", 'bestwebsoft' ); ?></a>
694
- </div>
695
  </div>
 
696
  <?php } else { ?>
697
- <div class="bws_product_box bws_product_free">
698
- <div class="bws_product">
699
- <div class="bws_product_title"><?php echo $value_plugin["Name"]; ?></div>
700
- <div class="bws_product_content">
701
- <div class="bws_product_icon">
702
- <img src="<?php echo plugins_url( "icons/" , __FILE__ ) . $icon . '.png'; ?>"/>
703
- </div>
704
- <div class="bws_product_description"><?php echo $bws_plugins[ $key_plugin ]["description"]; ?></div>
705
- </div>
706
- <?php if ( isset( $bws_plugins[ $key_plugin ]["purchase"] ) ) { ?>
707
- <a class="bws_product_button" href="<?php echo $bws_plugins[ $key_plugin ]["purchase"]; ?>" target="_blank">
708
- <?php _e( 'Go', 'bestwebsoft' );?> <strong>PRO</strong>
709
- </a>
710
- <?php } else { ?>
711
- <a class="bws_product_button bws_donate_button" href="<?php echo $bws_donate_link; ?>" target="_blank">
712
- <strong><?php _e( 'DONATE', 'bestwebsoft' );?></strong>
713
- </a>
714
- <?php } ?>
715
- <div class="clear"></div>
716
- </div>
717
- <div class="bws_product_links">
718
- <a href="<?php echo $bws_plugins[ $key_plugin ]["link"]; ?>" target="_blank"><?php _e( "Learn more", 'bestwebsoft' ); ?></a>
719
- <?php if ( '' != $bws_plugins[ $key_plugin ]["settings"] ) { ?>
720
- <span> | </span>
721
- <a href="<?php echo $bws_plugins[ $key_plugin ]["settings"]; ?>" target="_blank"><?php _e( "Settings", 'bestwebsoft' ); ?></a>
722
- <?php } ?>
723
- </div>
724
- </div>
725
- <?php }
726
- } elseif ( isset( $bws_plugins[ $key_plugin ] ) ) { ?>
727
- <div class="bws_product_box bws_product_deactivated bws_product_free">
728
- <div class="bws_product">
729
- <div class="bws_product_title"><?php echo $value_plugin["Name"]; ?></div>
730
- <div class="bws_product_content">
731
- <div class="bws_product_icon">
732
- <img src="<?php echo plugins_url( "icons/" , __FILE__ ) . $icon . '.png'; ?>"/>
733
- </div>
734
- <div class="bws_product_description"><?php echo $bws_plugins[ $key_plugin ]["description"]; ?></div>
735
- </div>
736
- <?php if ( isset( $bws_plugins[ $key_plugin ]["purchase"] ) ) { ?>
737
- <a class="bws_product_button" href="<?php echo $bws_plugins[ $key_plugin ]["purchase"]; ?>" target="_blank">
738
- <?php _e( 'Go', 'bestwebsoft' );?> <strong>PRO</strong>
739
- </a>
740
  <?php } else { ?>
741
- <a class="bws_product_button bws_donate_button" href="<?php echo $bws_donate_link; ?>" target="_blank">
742
- <strong><?php _e( 'DONATE', 'bestwebsoft' );?></strong>
743
- </a>
744
- <?php } ?>
745
- <div class="clear"></div>
746
  </div>
747
- <div class="bws_product_links">
748
- <a href="<?php echo $bws_plugins[ $key_plugin ]["link"]; ?>" target="_blank"><?php _e( "Learn more", 'bestwebsoft' ); ?></a>
749
- <span> | </span>
750
- <a class="bws_activate" href="plugins.php" title="<?php _e( "Activate this plugin", 'bestwebsoft' ); ?>" target="_blank"><?php _e( "Activate", 'bestwebsoft' ); ?></a>
751
- </div>
752
- </div>
753
- <?php }
754
- }
755
- } ?>
756
- <div class="clear"></div>
757
- <?php if ( ( isset( $_GET['sub'] ) && 'recommended' == $_GET['sub'] ) || !isset( $_GET['sub'] ) ) { ?>
758
- <h3 class="bws_recommended"><?php _e( 'Recommended plugins', 'bestwebsoft' ); ?></h3>
759
- <?php foreach ( $recommend_plugins as $key_plugin => $value_plugin ) {
 
 
 
 
 
 
 
 
 
 
760
 
761
- if ( isset( $bws_plugins[ $key_plugin ] ) ) {
762
- $key_plugin_explode = explode( '-plugin/', $key_plugin );
763
- if ( isset( $key_plugin_explode[1] ) )
764
- $icon = $key_plugin_explode[0];
765
- else {
766
- $key_plugin_explode = explode( '/', $key_plugin );
767
- $icon = $key_plugin_explode[0];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
768
  }
769
- } ?>
770
- <div class="bws_product_box">
771
- <div class="bws_product">
772
- <div class="bws_product_title"><?php echo $value_plugin["name"]; ?></div>
773
- <div class="bws_product_content">
774
- <div class="bws_product_icon">
775
- <?php if ( isset( $bws_plugins[ $key_plugin ]['pro_version'] ) ) { ?>
776
- <div class="bws_product_icon_pro">PRO</div>
777
- <?php } ?>
778
- <img src="<?php echo plugins_url( "icons/" , __FILE__ ) . $icon . '.png'; ?>"/>
779
- </div>
780
- <div class="bws_product_description"><?php echo $bws_plugins[ $key_plugin ]["description"]; ?></div>
781
- </div>
782
- <?php if ( isset( $bws_plugins[ $key_plugin ]["pro_version"] ) ) { ?>
783
- <a class="bws_product_button" href="<?php echo $bws_plugins[ $key_plugin ]["purchase"]; ?>" target="_blank">
784
- <?php _e( 'Go', 'bestwebsoft' ); ?> <strong>PRO</strong>
785
- </a>
786
- <?php } else { ?>
787
- <a class="bws_product_button bws_donate_button" href="<?php echo $bws_donate_link; ?>" target="_blank">
788
- <strong><?php _e( 'DONATE', 'bestwebsoft' ); ?></strong>
789
- </a>
790
- <?php } ?>
791
- </div>
792
- <div class="clear"></div>
793
- <div class="bws_product_links">
794
- <a href="<?php echo $bws_plugins[ $key_plugin ]["link"]; ?>" target="_blank"><?php _e( "Learn more", 'bestwebsoft' ); ?></a>
795
- <span> | </span>
796
- <a href="<?php echo $bws_plugins[ $key_plugin ]["wp_install"]; ?>" target="_blank"><?php _e( "Install now", 'bestwebsoft' ); ?></a>
 
 
 
 
 
 
 
 
 
 
 
 
797
  </div>
798
  </div>
799
- <?php }
800
- } ?>
801
- <?php } elseif ( 'themes' == $_GET['action'] ) { ?>
802
- <div id="availablethemes">
803
- <?php global $tabs, $tab, $paged, $type, $theme_field_defaults;
804
- include( ABSPATH . 'wp-admin/includes/theme-install.php' );
805
- include( ABSPATH . 'wp-admin/includes/class-wp-themes-list-table.php' );
806
- include( ABSPATH . 'wp-admin/includes/class-wp-theme-install-list-table.php' );
807
 
808
- $theme_class = new WP_Theme_Install_List_Table();
809
- $paged = $theme_class->get_pagenum();
810
- $per_page = 36;
811
- $args = array( 'page' => $paged, 'per_page' => $per_page, 'fields' => $theme_field_defaults );
812
- $args['author'] = 'bestwebsoft';
813
- $args = apply_filters( 'install_themes_table_api_args_search', $args );
814
- $api = themes_api( 'query_themes', $args );
815
 
816
- if ( is_wp_error( $api ) )
817
- wp_die( $api->get_error_message() . '</p> <p><a href="#" onclick="document.location.reload(); return false;">' . __( 'Try again', 'bestwebsoft' ) . '</a>' );
818
 
819
- $theme_class->items = $api->themes;
820
- $theme_class->set_pagination_args( array(
821
- 'total_items' => $api->info['results'],
822
- 'per_page' => $per_page,
823
- 'infinite_scroll' => true,
824
- ) );
825
- $themes = $theme_class->items;
826
- if ( $wp_version < '3.9' ) {
827
- foreach ( $themes as $theme ) { ?>
828
- <div class="available-theme installable-theme"><?php
829
- global $themes_allowedtags;
830
- if ( empty( $theme ) )
831
- return;
832
 
833
- $name = wp_kses( $theme->name, $themes_allowedtags );
834
- $author = wp_kses( $theme->author, $themes_allowedtags );
835
- $preview_title = sprintf( __( 'Preview &#8220;%s&#8221;', 'bestwebsoft' ), $name );
836
- $preview_url = add_query_arg( array(
837
- 'tab' => 'theme-information',
838
- 'theme' => $theme->slug,
839
- ), self_admin_url( 'theme-install.php' ) );
840
 
841
- $actions = array();
 
 
842
 
843
- $install_url = add_query_arg( array(
844
- 'action' => 'install-theme',
845
- 'theme' => $theme->slug,
846
- ), self_admin_url( 'update.php' ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
847
 
848
- $update_url = add_query_arg( array(
849
- 'action' => 'upgrade-theme',
850
- 'theme' => $theme->slug,
851
- ), self_admin_url( 'update.php' ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
852
 
853
- $status = 'install';
854
- $installed_theme = wp_get_theme( $theme->slug );
855
- if ( $installed_theme->exists() ) {
856
- if ( version_compare( $installed_theme->get('Version'), $theme->version, '=' ) )
857
- $status = 'latest_installed';
858
- elseif ( version_compare( $installed_theme->get('Version'), $theme->version, '>' ) )
859
- $status = 'newer_installed';
860
- else
861
- $status = 'update_available';
862
- }
863
- switch ( $status ) {
864
- default:
865
- case 'install':
866
- $actions[] = '<a class="install-now" href="' . esc_url( wp_nonce_url( $install_url, 'install-theme_' . $theme->slug ) ) . '" title="' . esc_attr( sprintf( __( 'Install %s', 'bestwebsoft' ), $name ) ) . '">' . __( 'Install Now', 'bestwebsoft' ) . '</a>';
867
- break;
868
- case 'update_available':
869
- $actions[] = '<a class="install-now" href="' . esc_url( wp_nonce_url( $update_url, 'upgrade-theme_' . $theme->slug ) ) . '" title="' . esc_attr( sprintf( __( 'Update to version %s', 'bestwebsoft' ), $theme->version ) ) . '">' . __( 'Update', 'bestwebsoft' ) . '</a>';
870
- break;
871
- case 'newer_installed':
872
- case 'latest_installed':
873
- $actions[] = '<span class="install-now" title="' . esc_attr__( 'This theme is already installed and is up to date' ) . '">' . _x( 'Installed', 'theme', 'bestwebsoft' ) . '</span>';
874
- break;
875
- }
876
- $actions[] = '<a class="install-theme-preview" href="' . esc_url( $preview_url ) . '" title="' . esc_attr( sprintf( __( 'Preview %s', 'bestwebsoft' ), $name ) ) . '">' . __( 'Preview', 'bestwebsoft' ) . '</a>';
877
- $actions = apply_filters( 'theme_install_actions', $actions, $theme ); ?>
878
- <a class="screenshot install-theme-preview" href="<?php echo esc_url( $preview_url ); ?>" title="<?php echo esc_attr( $preview_title ); ?>">
879
- <img src='<?php echo esc_url( $theme->screenshot_url ); ?>' width='150' />
880
- </a>
881
- <h3><?php echo $name; ?></h3>
882
- <div class="theme-author"><?php printf( __( 'By %s', 'bestwebsoft' ), $author ); ?></div>
883
- <div class="action-links">
884
- <ul>
885
- <?php foreach ( $actions as $action ): ?>
886
- <li><?php echo $action; ?></li>
887
- <?php endforeach; ?>
888
- <li class="hide-if-no-js"><a href="#" class="theme-detail"><?php _e( 'Details', 'bestwebsoft' ) ?></a></li>
889
- </ul>
890
- </div>
891
- <?php $theme_class->install_theme_info( $theme ); ?>
 
 
 
 
 
 
 
 
 
 
892
  </div>
893
- <?php }
894
- // end foreach $theme_names
895
- $theme_class->theme_installer();
896
- } else { ?>
897
- <div class="theme-browser">
898
- <div class="themes">
899
- <?php foreach ( $themes as $key => $theme ) {
900
- $installed_theme = wp_get_theme( $theme->slug );
901
- if ( $installed_theme->exists() )
902
- $theme->installed = true;
903
- else
904
- $theme->installed = false;
905
- ?>
906
- <div class="theme" tabindex="0">
907
- <?php if ( $theme->screenshot_url ) { ?>
908
- <div class="theme-screenshot">
909
- <img src="<?php echo $theme->screenshot_url; ?>" alt="" />
 
 
 
 
 
 
910
  </div>
911
- <?php } else { ?>
912
- <div class="theme-screenshot blank"></div>
913
- <?php } ?>
914
- <div class="theme-author"><?php printf( __( 'By %s', 'bestwebsoft' ), $theme->author ); ?></div>
915
- <h3 class="theme-name"><?php echo $theme->name; ?></h3>
916
- <div class="theme-actions">
917
- <a class="button button-secondary preview install-theme-preview" href="theme-install.php?theme=<?php echo $theme->slug ?>"><?php esc_html_e( 'Learn More', 'bestwebsoft' ); ?></a>
918
  </div>
919
- <?php if ( $theme->installed ) { ?>
920
- <div class="theme-installed"><?php _e( 'Already Installed', 'bestwebsoft' ); ?></div>
921
- <?php } ?>