Changeset 3378018
- Timestamp:
- 10/14/2025 10:30:23 AM (3 months ago)
- Location:
- error-log-viewer
- Files:
-
- 151 added
- 12 edited
-
tags/1.1.7 (added)
-
tags/1.1.7/bws_menu (added)
-
tags/1.1.7/bws_menu/bws_functions.php (added)
-
tags/1.1.7/bws_menu/bws_include.php (added)
-
tags/1.1.7/bws_menu/bws_menu.php (added)
-
tags/1.1.7/bws_menu/class-bws-settings.php (added)
-
tags/1.1.7/bws_menu/css (added)
-
tags/1.1.7/bws_menu/css/general_style.css (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.10.4 (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.10.4/images (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.10.4/images/animated-overlay.gif (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.10.4/images/ui-bg_flat_0_aaaaaa_40x100.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.10.4/images/ui-bg_flat_75_ffffff_40x100.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.10.4/images/ui-bg_glass_55_fbf9ee_1x400.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.10.4/images/ui-bg_glass_65_ffffff_1x400.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.10.4/images/ui-bg_glass_75_dadada_1x400.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.10.4/images/ui-bg_glass_75_e6e6e6_1x400.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.10.4/images/ui-bg_glass_95_fef1ec_1x400.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.10.4/images/ui-bg_highlight-soft_75_cccccc_1x100.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.10.4/images/ui-icons_222222_256x240.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.10.4/images/ui-icons_2e83ff_256x240.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.10.4/images/ui-icons_454545_256x240.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.10.4/images/ui-icons_888888_256x240.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.10.4/images/ui-icons_cd0a0a_256x240.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.10.4/jquery-ui.css (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.11.4 (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.11.4/images (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.11.4/images/ui-bg_flat_0_aaaaaa_40x100.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.11.4/images/ui-bg_flat_75_ffffff_40x100.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.11.4/images/ui-bg_glass_55_fbf9ee_1x400.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.11.4/images/ui-bg_glass_65_ffffff_1x400.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.11.4/images/ui-bg_glass_75_dadada_1x400.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.11.4/images/ui-bg_glass_75_e6e6e6_1x400.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.11.4/images/ui-bg_glass_95_fef1ec_1x400.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.11.4/images/ui-bg_highlight-soft_75_cccccc_1x100.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.11.4/images/ui-icons_222222_256x240.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.11.4/images/ui-icons_2e83ff_256x240.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.11.4/images/ui-icons_454545_256x240.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.11.4/images/ui-icons_888888_256x240.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.11.4/images/ui-icons_cd0a0a_256x240.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.11.4/jquery-ui.css (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.12.1 (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.12.1/images (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.12.1/images/ui-bg_glass_55_fbf9ee_1x400.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.12.1/images/ui-bg_glass_65_ffffff_1x400.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.12.1/images/ui-bg_glass_75_dadada_1x400.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.12.1/images/ui-bg_glass_75_e6e6e6_1x400.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.12.1/images/ui-bg_glass_95_fef1ec_1x400.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.12.1/images/ui-bg_highlight-soft_75_cccccc_1x100.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.12.1/images/ui-icons_222222_256x240.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.12.1/images/ui-icons_2e83ff_256x240.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.12.1/images/ui-icons_454545_256x240.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.12.1/images/ui-icons_888888_256x240.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.12.1/images/ui-icons_cd0a0a_256x240.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.12.1/jquery-ui.css (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.9.2 (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.9.2/images (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.9.2/images/ui-bg_flat_0_aaaaaa_40x100.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.9.2/images/ui-bg_flat_75_ffffff_40x100.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.9.2/images/ui-bg_glass_55_fbf9ee_1x400.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.9.2/images/ui-bg_glass_65_ffffff_1x400.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.9.2/images/ui-bg_glass_75_dadada_1x400.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.9.2/images/ui-bg_glass_75_e6e6e6_1x400.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.9.2/images/ui-bg_glass_95_fef1ec_1x400.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.9.2/images/ui-bg_highlight-soft_75_cccccc_1x100.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.9.2/images/ui-icons_222222_256x240.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.9.2/images/ui-icons_2e83ff_256x240.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.9.2/images/ui-icons_454545_256x240.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.9.2/images/ui-icons_888888_256x240.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.9.2/images/ui-icons_cd0a0a_256x240.png (added)
-
tags/1.1.7/bws_menu/css/jquery-ui-styles/1.9.2/jquery-ui.css (added)
-
tags/1.1.7/bws_menu/css/modal.css (added)
-
tags/1.1.7/bws_menu/css/style.css (added)
-
tags/1.1.7/bws_menu/deactivation-form.php (added)
-
tags/1.1.7/bws_menu/deprecated.php (added)
-
tags/1.1.7/bws_menu/fonts (added)
-
tags/1.1.7/bws_menu/fonts/bwsicons.eot (added)
-
tags/1.1.7/bws_menu/fonts/bwsicons.svg (added)
-
tags/1.1.7/bws_menu/fonts/bwsicons.ttf (added)
-
tags/1.1.7/bws_menu/fonts/bwsicons.woff (added)
-
tags/1.1.7/bws_menu/icons (added)
-
tags/1.1.7/bws_menu/icons/plugins (added)
-
tags/1.1.7/bws_menu/icons/plugins/bike-rental.png (added)
-
tags/1.1.7/bws_menu/icons/plugins/gpt-ai-content-creator.png (added)
-
tags/1.1.7/bws_menu/icons/themes (added)
-
tags/1.1.7/bws_menu/icons/themes/opening.png (added)
-
tags/1.1.7/bws_menu/icons/themes/realestate.png (added)
-
tags/1.1.7/bws_menu/icons/themes/rent-a-bike.png (added)
-
tags/1.1.7/bws_menu/icons/themes/renty.png (added)
-
tags/1.1.7/bws_menu/icons/themes/unity.png (added)
-
tags/1.1.7/bws_menu/images (added)
-
tags/1.1.7/bws_menu/images/affiliate-background.png (added)
-
tags/1.1.7/bws_menu/images/close_banner.png (added)
-
tags/1.1.7/bws_menu/images/earn-icon.svg (added)
-
tags/1.1.7/bws_menu/images/join-icon.svg (added)
-
tags/1.1.7/bws_menu/images/membership-background.jpg (added)
-
tags/1.1.7/bws_menu/images/promote-icon.svg (added)
-
tags/1.1.7/bws_menu/images/tooltip_icons.png (added)
-
tags/1.1.7/bws_menu/js (added)
-
tags/1.1.7/bws_menu/js/bws_menu.js (added)
-
tags/1.1.7/bws_menu/js/bws_tooltip.js (added)
-
tags/1.1.7/bws_menu/js/c_o_o_k_i_e.js (added)
-
tags/1.1.7/bws_menu/js/general_script.js (added)
-
tags/1.1.7/bws_menu/js/shortcode-button.js (added)
-
tags/1.1.7/bws_menu/languages (added)
-
tags/1.1.7/bws_menu/languages/bestwebsoft-cs_CZ.mo (added)
-
tags/1.1.7/bws_menu/languages/bestwebsoft-cs_CZ.po (added)
-
tags/1.1.7/bws_menu/languages/bestwebsoft-de_DE.mo (added)
-
tags/1.1.7/bws_menu/languages/bestwebsoft-de_DE.po (added)
-
tags/1.1.7/bws_menu/languages/bestwebsoft-es_ES.mo (added)
-
tags/1.1.7/bws_menu/languages/bestwebsoft-es_ES.po (added)
-
tags/1.1.7/bws_menu/languages/bestwebsoft-fr_FR.mo (added)
-
tags/1.1.7/bws_menu/languages/bestwebsoft-fr_FR.po (added)
-
tags/1.1.7/bws_menu/languages/bestwebsoft-id_ID.mo (added)
-
tags/1.1.7/bws_menu/languages/bestwebsoft-id_ID.po (added)
-
tags/1.1.7/bws_menu/languages/bestwebsoft-it_IT.mo (added)
-
tags/1.1.7/bws_menu/languages/bestwebsoft-it_IT.po (added)
-
tags/1.1.7/bws_menu/languages/bestwebsoft-ja.mo (added)
-
tags/1.1.7/bws_menu/languages/bestwebsoft-ja.po (added)
-
tags/1.1.7/bws_menu/languages/bestwebsoft-nl_NL.mo (added)
-
tags/1.1.7/bws_menu/languages/bestwebsoft-nl_NL.po (added)
-
tags/1.1.7/bws_menu/languages/bestwebsoft-pl_PL.mo (added)
-
tags/1.1.7/bws_menu/languages/bestwebsoft-pl_PL.po (added)
-
tags/1.1.7/bws_menu/languages/bestwebsoft-pt_BR.mo (added)
-
tags/1.1.7/bws_menu/languages/bestwebsoft-pt_BR.po (added)
-
tags/1.1.7/bws_menu/languages/bestwebsoft-ru_RU.mo (added)
-
tags/1.1.7/bws_menu/languages/bestwebsoft-ru_RU.po (added)
-
tags/1.1.7/bws_menu/languages/bestwebsoft-uk.mo (added)
-
tags/1.1.7/bws_menu/languages/bestwebsoft-uk.po (added)
-
tags/1.1.7/bws_menu/product_list.php (added)
-
tags/1.1.7/css (added)
-
tags/1.1.7/css/icon.css (added)
-
tags/1.1.7/css/jquery-ui.css (added)
-
tags/1.1.7/css/style.css (added)
-
tags/1.1.7/error-log-viewer.php (added)
-
tags/1.1.7/includes (added)
-
tags/1.1.7/includes/class-rrrlgvwr-settings.php (added)
-
tags/1.1.7/js (added)
-
tags/1.1.7/js/script.js (added)
-
tags/1.1.7/languages (added)
-
tags/1.1.7/languages/error-log-viewer-ru_RU.mo (added)
-
tags/1.1.7/languages/error-log-viewer-ru_RU.po (added)
-
tags/1.1.7/languages/error-log-viewer-uk.mo (added)
-
tags/1.1.7/languages/error-log-viewer-uk.po (added)
-
tags/1.1.7/readme.txt (added)
-
tags/1.1.7/screenshot-1.png (added)
-
tags/1.1.7/screenshot-2.png (added)
-
tags/1.1.7/screenshot-3.png (added)
-
tags/1.1.7/screenshot-4.png (added)
-
tags/1.1.7/screenshot-5.png (added)
-
trunk/bws_menu/bws_functions.php (modified) (13 diffs)
-
trunk/bws_menu/bws_menu.php (modified) (1 diff)
-
trunk/bws_menu/class-bws-settings.php (modified) (2 diffs)
-
trunk/bws_menu/css/general_style.css (modified) (3 diffs)
-
trunk/bws_menu/fonts/bwsicons.eot (modified) (previous)
-
trunk/bws_menu/fonts/bwsicons.svg (modified) (3 diffs)
-
trunk/bws_menu/fonts/bwsicons.ttf (modified) (previous)
-
trunk/bws_menu/fonts/bwsicons.woff (modified) (previous)
-
trunk/bws_menu/product_list.php (modified) (14 diffs)
-
trunk/error-log-viewer.php (modified) (26 diffs)
-
trunk/includes/class-rrrlgvwr-settings.php (modified) (3 diffs)
-
trunk/readme.txt (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
error-log-viewer/trunk/bws_menu/bws_functions.php
r3262279 r3378018 2 2 /** 3 3 * @package BWS Menu 4 * @version 2.4. 34 * @version 2.4.4 5 5 * Main functions 6 6 */ … … 233 233 */ 234 234 function bws_admin_notices() { 235 global $bws_versions_notice_array, $bws_plugin_banner_to_settings, $bstwbsftwppdtplgns_options, $bws_plugin_banner_go_pro, $bstwbsftwppdtplgns_banner_array, $bws_plugin_banner_timeout , $bws_plugin_banner_to_promo;235 global $bws_versions_notice_array, $bws_plugin_banner_to_settings, $bstwbsftwppdtplgns_options, $bws_plugin_banner_go_pro, $bstwbsftwppdtplgns_banner_array, $bws_plugin_banner_timeout; 236 236 237 237 /* bws_plugin_banner_go_pro */ … … 367 367 } 368 368 369 /* banner_to_setting_promo */370 if ( ! empty( $bws_plugin_banner_to_promo ) ) {371 $key = rand( 0, count( $bws_plugin_banner_to_promo ) - 1 );372 ?>373 <div class="updated" style="padding: 0; margin: 0; border: none; background: none;">374 <div class="bws_banner_on_plugin_page bws_banner_to_settings">375 <div class="icon">376 <img title="" src="<?php echo esc_url( $bws_plugin_banner_to_promo[$key]['banner_url'] ); ?>" alt="" />377 </div>378 <div class="text">379 <strong><?php echo esc_html( $bws_plugin_banner_to_promo[$key]['message'][0] ); ?></strong>380 <br />381 <?php echo esc_html( $bws_plugin_banner_to_promo[$key]['message'][1] ); ?>382 </div>383 <div class="button_div">384 <a class="button" href="<?php echo esc_url( self_admin_url( $bws_plugin_banner_to_promo[$key]['settings_url'] ) ); ?>"><?php esc_html_e( 'Go to Settings', 'bestwebsoft' ); ?></a>385 </div>386 <form action="" method="post">387 <button class="notice-dismiss bws_hide_promo_notice" title="<?php esc_html_e( 'Close notice', 'bestwebsoft' ); ?>"></button>388 <input type="hidden" name="bws_hide_settings_promo_notice_<?php echo esc_html( $bws_plugin_banner_to_promo[$key]['plugin_options_name'] ); ?>" value="hide" />389 <?php wp_nonce_field( plugin_basename( __FILE__ ), 'bws_settings_nonce_name' ); ?>390 </form>391 </div>392 </div>393 <?php394 }395 396 369 /** 397 370 * Show notices about deprecated_function … … 455 428 456 429 if ( false === strrpos( $banner_url_or_slug, '/' ) ) { 457 $banner_url_or_slug = '//ps.w.org/' . $banner_url_or_slug . '/assets/icon-256x256. gif';430 $banner_url_or_slug = '//ps.w.org/' . $banner_url_or_slug . '/assets/icon-256x256.png'; 458 431 } 459 432 … … 489 462 490 463 if ( false === strrpos( $banner_url_or_slug, '/' ) ) { 491 $banner_url_or_slug = '//ps.w.org/' . $banner_url_or_slug . '/assets/icon-256x256. gif';464 $banner_url_or_slug = '//ps.w.org/' . $banner_url_or_slug . '/assets/icon-256x256.png'; 492 465 } 493 466 … … 535 508 536 509 if ( false === strrpos( $banner_url_or_slug, '/' ) ) { 537 $banner_url_or_slug = '//ps.w.org/' . $banner_url_or_slug . '/assets/icon-256x256. gif';510 $banner_url_or_slug = '//ps.w.org/' . $banner_url_or_slug . '/assets/icon-256x256.png'; 538 511 } 539 512 … … 543 516 'banner_url' => $banner_url_or_slug, 544 517 'settings_url' => $settings_url, 545 'post_type_url' => $post_type_url,546 );547 }548 }549 550 if ( ! function_exists( 'bws_plugin_banner_to_promo' ) ) {551 /**552 * Function settings for banner553 *554 * @param array $plugin_info Plugin info.555 * @param array $plugin_options_name Plugin option name.556 * @param array $banner_url_or_slug Url or slug for icon.557 * @param array $settings_url Url for settings.558 * @param array $post_type_url (Optional) Url for banner.559 * @return global array560 */561 function bws_plugin_banner_to_promo( $plugin_info, $plugin_options_name, $banner_url_or_slug, $settings_url, $message = array(), $post_type_url = false ) {562 global $bws_plugin_banner_to_promo;563 564 $is_network_admin = is_network_admin();565 566 $plugin_options = $is_network_admin ? get_site_option( $plugin_options_name ) : get_option( $plugin_options_name );567 568 if ( isset( $plugin_options['display_promo_time'] ) && $plugin_options['display_promo_time'] + 604800000 < time() ) {569 $plugin_options['display_promo_notice'] = 1;570 if ( $is_network_admin ) {571 update_site_option( $plugin_options_name, $plugin_options );572 } else {573 update_option( $plugin_options_name, $plugin_options );574 }575 }576 577 if ( isset( $plugin_options['display_promo_notice'] ) && 0 === $plugin_options['display_promo_notice'] ) {578 return;579 }580 581 if ( isset( $_POST[ 'bws_hide_settings_promo_notice_' . $plugin_options_name ] ) && check_admin_referer( plugin_basename( __FILE__ ), 'bws_settings_nonce_name' ) ) {582 $plugin_options['display_promo_notice'] = 0;583 $plugin_options['display_promo_time'] = time();584 if ( $is_network_admin ) {585 update_site_option( $plugin_options_name, $plugin_options );586 } else {587 update_option( $plugin_options_name, $plugin_options );588 }589 return;590 }591 592 if ( false === strrpos( $banner_url_or_slug, '/' ) ) {593 $banner_url_or_slug = '//ps.w.org/' . $banner_url_or_slug . '/assets/icon-256x256.gif';594 }595 596 $bws_plugin_banner_to_promo[] = array(597 'plugin_info' => $plugin_info,598 'plugin_options_name' => $plugin_options_name,599 'banner_url' => $banner_url_or_slug,600 'settings_url' => $settings_url,601 'message' => $message,602 518 'post_type_url' => $post_type_url, 603 519 ); … … 664 580 665 581 if ( false === strrpos( $banner_url_or_slug, '/' ) ) { 666 $banner_url_or_slug = '//ps.w.org/' . $banner_url_or_slug . '/assets/icon-256x256. gif';582 $banner_url_or_slug = '//ps.w.org/' . $banner_url_or_slug . '/assets/icon-256x256.png'; 667 583 } 668 584 ?> … … 685 601 </div> 686 602 <?php 687 }688 }689 690 if ( ! function_exists( 'bws_plugin_promo_banner' ) ) {691 /**692 * Function display for feature banner693 *694 * @param array $plugin_info Plugin info.695 * @param array $plugin_options_name Plugin option name.696 * @param array $banner_url_or_slug Url or slug for icon.697 * @echo string698 */699 function bws_plugin_promo_banner( $plugin_info, $plugin_options_name, $banner_url_or_slug, $plugin_url ) {700 $is_network_admin = is_network_admin();701 702 $promo_plugins = array( 'google-captcha', 'contact-form-plugin' );703 704 $plugin_options = $is_network_admin ? get_site_option( $plugin_options_name ) : get_option( $plugin_options_name );705 706 if ( in_array( $banner_url_or_slug, $promo_plugins ) ) {707 if ( isset( $plugin_options['display_promo_banner_time'] ) && $plugin_options['display_promo_banner_time'] + 604800000 < time() ) {708 $plugin_options['display_promo_banner'] = 1;709 if ( $is_network_admin ) {710 update_site_option( $plugin_options_name, $plugin_options );711 } else {712 update_option( $plugin_options_name, $plugin_options );713 }714 }715 if ( isset( $plugin_options['display_promo_banner'] ) && 0 === $plugin_options['display_promo_banner'] ) {716 return;717 }718 719 if ( isset( $_POST[ 'bws_hide_promo_banner_' . $plugin_options_name ] ) && check_admin_referer( $plugin_info['Name'], 'bws_settings_nonce_name' ) ) {720 $plugin_options['display_promo_banner'] = 0;721 $plugin_options['display_promo_banner_time'] = time();722 if ( $is_network_admin ) {723 update_site_option( $plugin_options_name, $plugin_options );724 } else {725 update_option( $plugin_options_name, $plugin_options );726 }727 return;728 }729 ?>730 <div style="padding: 0; margin: 0; border: none; background: none; position: relative;">731 <div class="bws_banner_on_plugin_page bws_promo_banner">732 <div class="promo-banner-left">733 <div class="promo-banner-upgrade"><?php esc_html_e( 'Upgrade to pro', 'bestwebsoft' ); ?></div>734 <div class="promo-banner-off"><?php esc_html_e( '30% OFF', 'bestwebsoft' ); ?></div>735 </div>736 <div class="promo-banner-text">737 <div class="promo-banner-text-top"><?php esc_html_e( 'Get exclusive Pro features and premium support.', 'bestwebsoft' ); ?></div>738 <div class="promo-banner-text-bottom"><?php printf( '%s <span>%s</span> %s', esc_html__( 'Use', 'bestwebsoft' ), esc_html__( 'UPGRADE', 'bestwebsoft' ), esc_html__( 'promo code for instant savings!', 'bestwebsoft' ) ); ?></div>739 </div>740 <div class="promo-banner-get-pro"><?php esc_html_e( 'Get PRO NOW', 'bestwebsoft' ); ?></div>741 </div>742 <a href="<?php echo esc_url( $plugin_url ); ?>" class="promo-banner-link"></a>743 <form action="" method="post">744 <button class="notice-dismiss bws_hide_settings_notice bws_hide_promo_notice" title="Close notice"></button>745 <input type="hidden" name="bws_hide_promo_banner_gglcptch_options" value="hide">746 <?php wp_nonce_field( $plugin_info['Name'], 'bws_settings_nonce_name' ); ?>747 </form>748 </div>749 <?php750 }751 603 } 752 604 } … … 930 782 $bws_plugins, 931 783 $pagenow; 932 933 require dirname( __FILE__ ) . '/product_list.php';934 784 935 785 $page = isset( $_GET['page'] ) ? sanitize_text_field( wp_unslash( $_GET['page'] ) ) : ''; … … 1527 1377 */ 1528 1378 function bws_delete_plugin( $basename ) { 1529 global $bstwbsftwppdtplgns_options, $wp_filesystem; 1530 WP_Filesystem(); 1379 global $bstwbsftwppdtplgns_options; 1531 1380 1532 1381 $is_multisite = is_multisite(); … … 1566 1415 if ( file_exists( $folder ) && is_dir( $folder ) ) { 1567 1416 array_map( 'unlink', glob( "$folder/*" ) ); 1568 $wp_filesystem->rmdir( $folder );1417 rmdir( $folder ); 1569 1418 } 1570 1419 } … … 1575 1424 if ( file_exists( $folder ) && is_dir( $folder ) ) { 1576 1425 array_map( 'unlink', glob( "$folder/*" ) ); 1577 $wp_filesystem->rmdir( $folder );1426 rmdir( $folder ); 1578 1427 } 1579 1428 } -
error-log-viewer/trunk/bws_menu/bws_menu.php
r3016145 r3378018 6 6 /** 7 7 * Function for displaying BestWebSoft menu 8 * Version: 2.4. 38 * Version: 2.4.4 9 9 */ 10 10 if ( ! function_exists( 'bws_admin_enqueue_scripts' ) ) { -
error-log-viewer/trunk/bws_menu/class-bws-settings.php
r3262279 r3378018 516 516 $this->custom_code_args[ "is_{$extension}_active" ] = true; 517 517 } 518 if ( $wp_filesystem->is_writeable( $real_file ) ) {518 if ( is_writeable( $real_file ) ) { 519 519 $this->custom_code_args[ "{$extension}_writeable" ] = true; 520 520 } … … 553 553 <?php 554 554 if ( ! current_user_can( 'edit_plugins' ) ) { 555 echo '<p>' . esc_html__( 'You do not have sufficient permissions to edit plugins for this site.', 'bestwebsoft' ) . '</p> ';555 echo '<p>' . esc_html__( 'You do not have sufficient permissions to edit plugins for this site.', 'bestwebsoft' ) . '</p></div></div></div>'; 556 556 return; 557 557 } -
error-log-viewer/trunk/bws_menu/css/general_style.css
r3262279 r3378018 74 74 border-right: 4px solid #ffba00; 75 75 } 76 @media screen and (max-width: 1600px) { 77 .bws_info { 78 max-width: 400px; 79 display: inline-block; 80 vertical-align: middle; 81 } 82 .form-table td { 83 vertical-align: top; 84 } 85 } 86 @media screen and (max-width: 1350px) { 87 label > .bws_info { 88 display: block; 89 } 90 .bws_info { 91 vertical-align: text-top; 92 } 93 } 94 76 95 /* 77 96 * styles for rate-support div on the settings page … … 535 554 -webkit-box-shadow: 0 0 3px #555; 536 555 -moz-box-shadow: 0 0 3px #555; 537 max-width: 300px;538 position: absolute;539 z-index: 2;540 556 } 541 557 .bws-tooltip-content a { … … 912 928 } 913 929 } 914 /* Promo banner */915 .bws_promo_banner {916 background: radial-gradient(74% 10281.6% at 33.47% 26%, rgba(64, 128, 255, 0.92) 0%, #566fef 100%);917 text-align: center;918 display: flex;919 color: #fff;920 padding: 23px 75px 20px;921 justify-content: space-between;922 align-items: center;923 }924 .promo-banner-left {925 display: flex;926 }927 .promo-banner-upgrade {928 font-size: 48px;929 position: relative;930 padding-right: 30px;931 text-transform: uppercase;932 font-weight: 700;933 line-height: 36px;934 }935 .promo-banner-upgrade:after{936 display: table;937 position: absolute;938 width: 4px;939 height: 42px;940 background-color: #fff;941 content: '';942 right: 0;943 top: 0;944 }945 .promo-banner-off {946 position: relative;947 font-size: 30px;948 background-color: #ffbb01;949 padding: 18px 10px 20px;950 margin-left: 30px;951 margin-top: -4px;952 font-weight: 700;953 }954 .promo-banner-text {955 font-size: 22px;956 line-height: 26px;957 }958 .promo-banner-text-bottom span {959 color: #ffbb01;960 }961 .promo-banner-get-pro {962 border: 3px solid #ffc411f7;963 font-size: 27px;964 padding: 1px 15px 5px;965 line-height: 29px;966 font-weight: 600;967 }968 .bws_hide_promo_notice::before {969 color: #fff;970 }971 .promo-banner-link {972 position: absolute;973 left: 0;974 right: 0;975 top: 0;976 bottom: 0;977 }978 @media screen and (max-width: 1700px) {979 .bws_promo_banner {980 padding: 23px 25px 20px;981 }982 }983 @media screen and (max-width: 1580px) {984 .bws_promo_banner {985 flex-wrap: wrap;986 }987 .promo-banner-left {988 width: 100%;989 justify-content: center;990 padding-bottom: 15px;991 }992 }993 @media screen and (max-width: 835px) {994 .bws_promo_banner {995 justify-content: center;996 }997 .promo-banner-text {998 width: 100%;999 }1000 }1001 @media screen and (max-width: 835px) {1002 .bws_promo_banner {1003 justify-content: center;1004 }1005 .promo-banner-left {1006 padding-bottom: 10px;1007 }1008 .promo-banner-text {1009 width: 100%;1010 padding-bottom: 15px;1011 }1012 }1013 @media screen and (max-width: 768px) {1014 .promo-banner-upgrade {1015 font-size: 34px;1016 }1017 .promo-banner-upgrade:after {1018 padding-right: 10px;1019 display: none;1020 }1021 .promo-banner-off {1022 padding: 10px;1023 margin-top: 0;1024 margin-left: 0;1025 font-size: 28px;1026 }1027 }1028 @media screen and (max-width: 560px) {1029 .promo-banner-upgrade {1030 letter-spacing: -1px;1031 padding-right: 10px;1032 font-size: 28px;1033 }1034 .promo-banner-text-top {1035 display: none;1036 }1037 .promo-banner-text-bottom {1038 font-size: 16px;1039 }1040 .promo-banner-off {1041 font-size: 24px;1042 }1043 .promo-banner-get-pro {1044 font-size: 18px;1045 }1046 }1047 @media screen and (max-width: 450px) {1048 .bws_promo_banner {1049 padding: 14px 10px;1050 }1051 .promo-banner-upgrade {1052 font-size: 24px;1053 }1054 .promo-banner-off {1055 font-size: 20px;1056 }1057 .promo-banner-get-pro {1058 font-size: 16px;1059 }1060 }1061 @media screen and (max-width: 365px) {1062 .promo-banner-left {1063 display: block;1064 text-align: center;1065 }1066 .promo-banner-upgrade {1067 padding-bottom: 10px;1068 }1069 .promo-banner-get-pro {1070 width: 100%;1071 }1072 } -
error-log-viewer/trunk/bws_menu/fonts/bwsicons.svg
r3262279 r3378018 6 6 <![CDATA[ 7 7 { 8 "fontFamily": " bwsicons",8 "fontFamily": "icomoon", 9 9 "majorVersion": 1, 10 10 "minorVersion": 0, 11 11 "version": "Version 1.0", 12 "fontId": " bwsicons",13 "psName": " bwsicons",12 "fontId": "icomoon", 13 "psName": "icomoon", 14 14 "subFamily": "Regular", 15 "fullName": " bwsicons",15 "fullName": "icomoon", 16 16 "description": "Font generated by IcoMoon." 17 17 } … … 20 20 </metadata> 21 21 <defs> 22 <font id=" bwsicons" horiz-adv-x="1024">22 <font id="icomoon" horiz-adv-x="1024"> 23 23 <font-face units-per-em="1024" ascent="960" descent="-64" /> 24 24 <missing-glyph horiz-adv-x="1024" /> … … 86 86 <glyph unicode="" glyph-name="Columns" data-tags="Columns" d="M249.6 817.2v-738.4h-128v738.4h128zM467.2 817.2v-738.4h-128v738.4h128zM684.8 817.2v-738.4h-128v738.4h128zM902.4 817.2v-738.4h-128v738.4h128z" /> 87 87 <glyph unicode="" glyph-name="GPTAi" data-tags="GPT Ai" d="M409.919 184.994l329.81-142.572h-659.627l329.81 142.572zM409.919 737.754l400.483-702.805-400.483 173.731-400.483-173.731 400.483 702.805zM809.819 784.196l102.953 103.537 101.792-102.365-102.953-103.537-101.792 102.365zM810.403 753.518l102.088-97.994 102.088 97.994v-718.601h-204.17v718.601z" /> 88 <glyph unicode="" glyph-name="AdBock-Detector" data-tags="AdBock Detector" d="M463.97 833.512c-12.177-12.091-17.25-21.663-17.25-32.747v-15.114l-25.368 3.023c-28.92 3.527-45.156-4.534-60.884-30.228-9.133-14.61-10.148-25.693-10.148-118.392v-102.774l-17.25 10.58c-23.847 14.61-41.605 13.602-59.362-4.534l-15.221-15.114 1.522-134.514c2.537-151.641 4.566-163.731 39.068-216.631 23.846-36.779 60.884-67.007 100.459-82.621 26.89-10.583 39.068-12.094 137.499-13.605 105.532-1.511 108.067-1.511 134.452 10.578 30.949 14.107 55.808 37.282 71.029 65.998 11.165 20.152 11.165 25.192 12.686 272.553 1.014 165.246 0 257.944-3.554 270.035-3.042 9.572-11.16 23.175-18.77 30.228-10.653 10.076-17.756 12.091-42.62 11.587l-29.428-0.504-2.535 25.189c-2.028 20.656-5.075 28.213-18.775 40.304-15.221 13.602-19.277 14.61-44.648 12.595-26.887-2.519-29.428-1.511-45.155 14.61-14.714 14.61-20.291 16.625-42.615 16.625-22.834 0-27.907-2.015-43.129-17.129zM524.855 814.871l13.193-10.076 1.014-152.146 1.521-152.146h25.366l2.54 138.543c1.521 76.073 4.563 141.567 6.596 145.093 7.103 10.076 43.127 7.557 49.212-3.527 3.047-6.046 5.075-63.982 5.075-153.657 0-78.592 1.521-146.604 3.042-151.139 3.554-8.564 19.789-11.084 24.864-3.526 1.521 2.519 3.042 46.349 3.042 97.232 0 97.233 4.061 133.506 15.221 140.559 13.193 8.565 37.038 3.023 43.634-10.58 8.117-15.618 9.639-486.162 1.521-513.87-6.596-23.681-31.963-53.402-56.822-65.998-18.775-9.574-27.399-10.076-127.354-8.565-97.92 1.511-109.589 3.022-131.914 12.596-52.259 24.183-95.386 79.599-110.099 142.068-7.103 28.717-9.133 246.861-2.537 256.937 8.625 14.61 37.546-4.030 52.766-33.25 3.044-6.046 5.581-37.279 5.581-73.049 0-65.496 3.044-76.576 18.265-73.554 9.133 1.511 9.64 11.080 12.177 202.021 2.537 191.442 3.044 201.014 12.177 208.067 12.684 9.068 28.92 9.068 41.604 0 9.133-6.549 9.64-15.114 11.162-136.529 1.522-111.842 2.537-129.475 9.64-131.994 19.28-7.557 21.31 8.564 21.817 168.771 0 84.134 1.522 155.673 3.044 158.192 3.044 4.534 20.297 13.099 27.907 13.603 2.028 0.504 9.131-4.030 16.742-10.076zM463.761 714.725c-100.293-22.541-179.13-97.678-204.578-195.356-9.98-39.071-9.48-108.7 0.499-143.263 8.981-30.556 28.94-72.629 40.916-86.155 6.986-8.013 6.986-9.519 0-16.528-6.486-6.512-9.98-7.014-18.961-2.003-10.479 5.508-17.464 0-109.275-92.17l-97.798-98.18v-25.043c0-21.539 2.495-27.051 16.466-41.074 13.971-14.028 19.46-16.533 40.916-16.533h24.948l97.798 98.18c86.821 87.159 97.299 99.179 92.31 108.196-3.992 7.516-3.493 12.522 1.497 19.536 6.486 8.515 7.983 9.017 16.466 1.501 13.472-12.522 55.385-32.559 85.823-41.571 34.429-10.021 103.788-10.523 142.705-0.502 94.805 25.043 171.147 104.692 194.6 203.368 45.404 194.355-129.735 371.177-324.332 327.598zM585.012 682.667c45.404-12.022 76.343-30.055 110.771-65.62 59.874-61.111 81.831-140.756 62.37-224.909-20.455-87.159-91.812-159.292-179.627-181.333-13.471-3.504-43.411-5.006-71.854-3.504-42.911 2.003-52.89 4.509-86.321 20.54-51.893 25.043-91.811 65.118-116.759 117.213-17.464 35.562-18.961 43.078-20.957 91.663-1.497 44.583-0.499 57.607 8.982 85.157 41.913 125.228 167.155 194.354 293.396 160.793zM326.045 243.364c-2.994-3.504-7.485-5.508-10.478-4.007-2.495 1.506-1.996 6.010 1.497 10.021 2.994 3.504 7.485 5.508 10.479 4.007 2.494-1.506 1.996-6.010-1.497-10.021zM323.525 914.532h391.863l277.216-273.236v-386.593l-277.216-273.234h-391.863l-277.215 273.234v386.593l277.215 273.236zM333.716 889.677l-262.551-258.782v-365.794l262.55-258.779h371.483l262.552 258.779v365.794l-262.552 258.782h-371.482z" />89 88 </font></defs></svg> -
error-log-viewer/trunk/bws_menu/product_list.php
r3262279 r3378018 19 19 'security' => array( 'name' => __( 'Security', 'bestwebsoft' ) ), 20 20 'seo' => array( 'name' => __( 'SEO', 'bestwebsoft' ) ), 21 'smm' => array( 'name' => __( 'SMM', 'bestwebsoft' ) ),22 21 ); 23 22 … … 45 44 'pro_settings' => 'admin.php?page=captcha_pro.php', 46 45 ), 47 'bws-car-rental/bws-car-rental.php' => array(48 'category' => array( 'ecommerce' ),49 'name' => 'Car Rental V2',50 'description' => __( 'Create your own rental website for car renting and booking.', 'bestwebsoft' ),51 'link' => 'https://bestwebsoft.com/products/wordpress/plugins/car-rental-v2/?k=ca43df54beefae7128a7005bce0ec651&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,52 'settings' => 'admin.php?page=bws-car-rental-settings',53 'pro_version' => 'bws-car-rental-pro/bws-car-rental-pro.php',54 'purchase' => 'https://bestwebsoft.com/products/wordpress/plugins/car-rental-v2/buy/?k=63cac1b736047a3f5a2f5a7c5336f3c4&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,55 'pro_settings' => 'edit.php?post_type=bws_bkng_products&page=bws-car-rental-pro-settings',56 'icon' => '//ps.w.org/car-rental/assets/icon-128x128.png',57 'install_url' => 'https://bestwebsoft.com/products/wordpress/plugins/car-rental-v2/',58 ),59 'columns-bws/columns-bws.php' => array(60 'category' => array( 'content' ),61 'name' => 'Columns',62 'description' => __( 'Add columns with custom content to WordPress website pages, posts, widgets, etc.', 'bestwebsoft' ),63 'link' => 'https://bestwebsoft.com/products/wordpress/plugins/columns/?k=6d2cddc059a04e4d528cec14de47fb1e&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,64 'settings' => 'admin.php?page=columns-settings.php',65 ),66 46 'contact-form-plugin/contact_form.php' => array( 67 47 'category' => array( 'marketing', 'recommended' ), … … 74 54 'pro_settings' => 'admin.php?page=contact_form_pro.php', 75 55 ), 76 'contact-form-multi/contact-form-multi.php' => array(77 'category' => array( 'marketing', 'recommended' ),78 'name' => 'Contact Form Multi',79 'description' => __( 'Add unlimited number of contact forms to WordPress website.', 'bestwebsoft' ),80 'link' => 'https://bestwebsoft.com/products/wordpress/plugins/contact-form-multi/?k=83cdd9e72a9f4061122ad28a67293c72&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,81 'settings' => '',82 'pro_version' => 'contact-form-multi-pro/contact-form-multi-pro.php',83 'purchase' => 'https://bestwebsoft.com/products/wordpress/plugins/contact-form-multi/buy/?k=fde3a18581c143654f060c398b07e8ac&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,84 'pro_settings' => '',85 ),86 'contact-form-to-db/contact_form_to_db.php' => array(87 'category' => array( 'admin-tools', 'recommended' ),88 'name' => 'Contact Form to DB',89 'description' => __( 'Save and manage Contact Form messages. Never lose important data.', 'bestwebsoft' ),90 'link' => 'https://bestwebsoft.com/products/wordpress/plugins/contact-form-to-db/?k=ba3747d317c2692e4136ca096a8989d6&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,91 'settings' => 'admin.php?page=contact_form_to_db.php',92 'pro_version' => 'contact-form-to-db-pro/contact_form_to_db_pro.php',93 'purchase' => 'https://bestwebsoft.com/products/wordpress/plugins/contact-form-to-db/buy/?k=6ce5f4a9006ec906e4db643669246c6a&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,94 'pro_settings' => 'admin.php?page=contact_form_to_db_pro.php',95 ),96 'custom-admin-page/custom-admin-page.php' => array(97 'category' => array( 'admin-tools' ),98 'name' => 'Custom Admin Page',99 'description' => __( 'Add unlimited custom pages to WordPress admin dashboard.', 'bestwebsoft' ),100 'link' => 'https://bestwebsoft.com/products/wordpress/plugins/custom-admin-page/?k=9ac03f16c25e845e8e055a221c3e1467&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,101 'settings' => 'edit.php?post_type=bws-admin_page&page=custom-admin-page.php',102 'pro_version' => 'custom-admin-page-pro/custom-admin-page-pro.php',103 'purchase' => 'https://bestwebsoft.com/products/wordpress/plugins/custom-admin-page/buy/?k=b986f456dba092b537f1a7755a363be9&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,104 'pro_settings' => 'edit.php?post_type=bws-admin_page&page=custom-admin-page-pro.php',105 ),106 56 'custom-search-plugin/custom-search-plugin.php' => array( 107 57 'category' => array( 'navigation' ), … … 114 64 'pro_settings' => 'admin.php?page=custom_search_pro.php', 115 65 ), 116 'donate-button/donate.php' => array(117 'category' => array( 'ecommerce' ),118 'name' => 'Donate',119 'description' => __( 'Add PayPal and 2CO donate buttons to receive charity payments.', 'bestwebsoft' ),120 'link' => 'https://bestwebsoft.com/products/wordpress/plugins/donate/?k=a8b2e2a56914fb1765dd20297c26401b&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,121 'settings' => 'admin.php?page=donate.php',122 ),123 66 'error-log-viewer/error-log-viewer.php' => array( 124 67 'category' => array( 'admin-tools' ), … … 127 70 'link' => 'https://bestwebsoft.com/products/wordpress/plugins/error-log-viewer/?k=da0de8bd2c7a0b2fea5df64d55a368b3&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version, 128 71 'settings' => 'admin.php?page=rrrlgvwr.php&tab=settings', 129 ),130 'facebook-button-plugin/facebook-button-plugin.php' => array(131 'category' => array( 'smm' ),132 'name' => 'Like & Share',133 'description' => __( 'Add Facebook Follow, Like, and Share buttons to WordPress posts, pages, and widgets.', 'bestwebsoft' ),134 'link' => 'https://bestwebsoft.com/products/wordpress/plugins/facebook-like-button/?k=05ec4f12327f55848335802581467d55&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,135 'settings' => 'admin.php?page=facebook-button-plugin.php',136 'pro_version' => 'facebook-button-pro/facebook-button-pro.php',137 'purchase' => 'https://bestwebsoft.com/products/wordpress/plugins/facebook-like-button/buy/?k=8da168e60a831cfb3525417c333ad275&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,138 'pro_settings' => 'admin.php?page=facebook-button-pro.php',139 72 ), 140 73 'gallery-plugin/gallery-plugin.php' => array( … … 158 91 'pro_settings' => 'admin.php?page=google-2-step-verification-pro.php', 159 92 ), 160 'bws-adsense/bws-adsense.php' => array(161 'category' => array( 'marketing' ),162 'name' => 'AdS',163 'description' => __( 'Add Adsense ads to WordPress website pages, posts, custom posts, search results, categories, tags, and widgets.', 'bestwebsoft' ),164 'link' => 'https://bestwebsoft.com/products/wordpress/plugins/google-adsense/?k=9d719e415eee289845b00843e8847bc9&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,165 'settings' => 'admin.php?page=bws-adsense.php',166 'pro_version' => 'adsense-pro/adsense-pro.php',167 'purchase' => 'https://bestwebsoft.com/products/wordpress/plugins/google-adsense/buy/?k=60e3979921e354feb0347e88e7d7b73d&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,168 'pro_settings' => 'admin.php?page=adsense-pro.php',169 ),170 'bws-google-analytics/bws-google-analytics.php' => array(171 'category' => array( 'admin-tools' ),172 'name' => 'Analytics',173 'description' => __( 'Add Google Analytics code to WordPress website and track basic stats.', 'bestwebsoft' ),174 'link' => 'https://bestwebsoft.com/products/wordpress/plugins/bws-google-analytics/?k=261c74cad753fb279cdf5a5db63fbd43&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,175 'settings' => 'admin.php?page=bws-google-analytics.php',176 'pro_version' => 'bws-google-analytics-pro/bws-google-analytics-pro.php',177 'purchase' => 'https://bestwebsoft.com/products/wordpress/plugins/bws-google-analytics/buy/?k=83796e84fec3f70ecfcc8894a73a6c4a&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,178 'pro_settings' => 'admin.php?page=bws-google-analytics-pro.php',179 ),180 93 'google-captcha/google-captcha.php' => array( 181 94 'category' => array( 'security', 'recommended' ), … … 188 101 'pro_settings' => 'admin.php?page=google-captcha-pro.php', 189 102 ), 190 'bws-google-maps/bws-google-maps.php' => array(191 'category' => array( 'content' ),192 'name' => 'Maps',193 'description' => __( 'Add customized Google maps to WordPress posts, pages and widgets.', 'bestwebsoft' ),194 'link' => 'https://bestwebsoft.com/products/wordpress/plugins/bws-google-maps/?k=d8fac412d7359ebaa4ff53b46572f9f7&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,195 'settings' => 'admin.php?page=bws-google-maps.php',196 'pro_version' => 'bws-google-maps-pro/bws-google-maps-pro.php',197 'purchase' => 'https://bestwebsoft.com/products/wordpress/plugins/bws-google-maps/buy/?k=117c3f9fc17f2c83ef430a8a9dc06f56&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,198 'pro_settings' => 'admin.php?page=bws-google-maps-pro.php',199 ),200 103 'google-sitemap-plugin/google-sitemap-plugin.php' => array( 201 104 'category' => array( 'seo', 'recommended' ), … … 208 111 'pro_settings' => 'admin.php?page=google-sitemap-pro.php', 209 112 ), 210 'google-shortlink/google-shortlink.php' => array( 211 'category' => array( 'seo' ), 212 'name' => 'Shortlink', 213 'description' => __( 'Replace external WordPress website links with Google shortlinks and track click stats.', 'bestwebsoft' ), 214 'link' => 'https://bestwebsoft.com/products/wordpress/plugins/google-shortlink/?k=afcf3eaed021bbbbeea1090e16bc22db&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version, 215 'settings' => 'admin.php?page=gglshrtlnk_options', 216 ), 217 'gpt-ai-content-creator-by-bestwebsoft/gpt-ai-content-creator-by-bestwebsoft.php' => array( 218 'category' => array( 'content', 'recommended' ), 219 'name' => 'GPT AI Content Creator', 220 'description' => __( 'Create Content with GPT.', 'bestwebsoft' ), 221 'link' => 'https://bestwebsoft.com/products/wordpress/plugins/gpt-ai-content-creator/?k=f1ef1b7d7d05f93c570b940cc9acfe15&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version, 222 'settings' => 'admin.php?page=gpt-ai-content-creator.php', 223 'icon' => bws_menu_url( 'icons/plugins/' ) . 'gpt-ai-content-creator.png', 224 'pro_version' => 'gpt-ai-content-creator-pro-by-bestwebsoft/gpt-ai-content-creator-pro-by-bestwebsoft.php', 225 'purchase' => 'https://bestwebsoft.com/products/wordpress/plugins/gpt-ai-content-creator/buy/?k=8b19619d4a36f8b42c5d4fbcbd9775bb&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version, 226 'pro_settings' => 'admin.php?page=gpt-ai-content-creator-pro.php', 227 ), 228 'htaccess/htaccess.php' => array( 113 'htaccess/htaccess.php' => array( 229 114 'category' => array( 'security' ), 230 115 'name' => 'Htaccess', … … 235 120 'purchase' => 'https://bestwebsoft.com/products/wordpress/plugins/htaccess/buy/?k=59e9209a32864be534fda77d5e591c15&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version, 236 121 'pro_settings' => 'admin.php?page=htaccess-pro.php', 237 ),238 'job-board/job-board.php' => array(239 'category' => array( 'ecommerce' ),240 'name' => 'Job Board',241 'description' => __( 'Create your personal job board and listing WordPress website. Search jobs, submit CV/resumes, choose candidates.', 'bestwebsoft' ),242 'link' => 'https://bestwebsoft.com/products/wordpress/plugins/job-board/?k=b0c504c9ce6edd6692e04222af3fed6f&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,243 'settings' => 'admin.php?page=job-board.php',244 122 ), 245 123 'limit-attempts/limit-attempts.php' => array( … … 253 131 'pro_settings' => 'admin.php?page=limit-attempts-pro.php', 254 132 ), 255 'bws-linkedin/bws-linkedin.php' => array( 256 'category' => array( 'smm' ), 257 'name' => 'LinkedIn', 258 'description' => __( 'Add LinkedIn Share and Follow buttons to WordPress posts, pages and widgets. 5 plugins included – profile, insider, etc.', 'bestwebsoft' ), 259 'link' => 'https://bestwebsoft.com/products/wordpress/plugins/linkedin/?k=d63c7319622ccc5f589dd2d545c1d77c&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version, 260 'settings' => 'admin.php?page=linkedin.php', 261 'pro_version' => 'bws-linkedin-pro/bws-linkedin-pro.php', 262 'purchase' => 'https://bestwebsoft.com/products/wordpress/plugins/linkedin/buy/?k=41dcc36192994408d24b103a02134567&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version, 263 'pro_settings' => 'admin.php?page=linkedin-pro.php', 264 ), 265 /*'bws-login-register/bws-login-register.php' => array( 266 'category' => array( 'smm' ), 133 'bws-login-register/bws-login-register.php' => array( 134 'category' => array( 'admin-tools', 'navigation' ), 267 135 'name' => 'Login & Register Form', 268 136 'description' => __( 'Add LinkedIn Share and Follow buttons to WordPress posts, pages and widgets. 5 plugins included – profile, insider, etc.', 'bestwebsoft' ), 269 'link' => 'https://bestwebsoft.com/products/wordpress/plugins/l inkedin/?k=d63c7319622ccc5f589dd2d545c1d77c&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,137 'link' => 'https://bestwebsoft.com/products/wordpress/plugins/login-and-register/?k=7d503ba164eca02ddf5b2c4942cbb953&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version, 270 138 'settings' => 'admin.php?page=login-register-form.php', 271 'pro_version' => 'bws-l inkedin-pro/bws-linkedin-pro.php',272 'purchase' => 'https://bestwebsoft.com/products/wordpress/plugins/l inkedin/buy/?k=41dcc36192994408d24b103a02134567&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,273 'pro_settings' => 'admin.php?page= linkedin-pro.php',274 ), */139 'pro_version' => 'bws-login-register-pro/bws-login-register-pro.php', 140 'purchase' => 'https://bestwebsoft.com/products/wordpress/plugins/login-and-register/buy/?k=df2a23c0abf357439d325bf3953deaf8&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version, 141 'pro_settings' => 'admin.php?page=bws-login-register-pro.php', 142 ), 275 143 'multilanguage/multilanguage.php' => array( 276 144 'category' => array( 'content', 'recommended' ), … … 303 171 'pro_settings' => 'admin.php?page=pdf-print-pro.php', 304 172 ), 305 'bws-pinterest/bws-pinterest.php' => array(306 'category' => array( 'smm' ),307 'name' => 'Pinterest',308 'description' => __( 'Add Pinterest Follow, Pin It buttons and profile widgets (Pin, Board, Profile) to WordPress posts, pages and widgets.', 'bestwebsoft' ),309 'link' => 'https://bestwebsoft.com/products/wordpress/plugins/pinterest/?k=504107b6213f247a67fe7ffb94e97c78&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,310 'settings' => 'admin.php?page=pinterest.php',311 'pro_version' => 'bws-pinterest-pro/bws-pinterest-pro.php',312 'purchase' => 'https://bestwebsoft.com/products/wordpress/plugins/pinterest/buy/?k=ab0069edd1914a3ca8f541bfd88bb0bb&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,313 'pro_settings' => 'admin.php?page=pinterest-pro.php',314 ),315 'portfolio/portfolio.php' => array(316 'category' => array( 'content', 'recommended' ),317 'name' => 'Portfolio',318 'description' => __( 'Create your personal portfolio WordPress website. Manage and showcase past projects to get more clients.', 'bestwebsoft' ),319 'link' => 'https://bestwebsoft.com/products/wordpress/plugins/portfolio/?k=1249a890c5b7bba6bda3f528a94f768b&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,320 'settings' => 'admin.php?page=portfolio.php',321 'pro_version' => 'portfolio-pro/portfolio-pro.php',322 'purchase' => 'https://bestwebsoft.com/products/wordpress/plugins/portfolio/buy/?k=2cc716026197d36538a414b728e49fdd&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,323 'pro_settings' => 'admin.php?page=portfolio-pro.php',324 ),325 'post-to-csv/post-to-csv.php' => array(326 'category' => array( 'admin-tools' ),327 'name' => 'Post to CSV',328 'description' => __( 'Export WordPress posts to CSV file format easily. Configure data order.', 'bestwebsoft' ),329 'link' => 'https://bestwebsoft.com/products/wordpress/plugins/post-to-csv/?k=653aa55518ae17409293a7a894268b8f&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,330 'settings' => 'admin.php?page=post-to-csv.php',331 'pro_version' => 'post-to-csv-pro/post-to-csv-pro.php',332 'purchase' => 'https://bestwebsoft.com/products/wordpress/plugins/post-to-csv/buy/?k=b6521601d1579ed9c556ba98234f2d8f&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,333 'pro_settings' => 'admin.php?page=post-to-csv-pro.php',334 ),335 173 'profile-extra-fields/profile-extra-fields.php' => array( 336 174 'category' => array( 'admin-tools' ), … … 343 181 'pro_settings' => 'admin.php?page=profile-extra-fields-pro.php', 344 182 ), 345 'promobar/promobar.php' => array(346 'category' => array( 'marketing' ),347 'name' => 'PromoBar',348 'description' => __( 'Add and display HTML advertisement banner on WordPress website. Customize bar styles and appearance.', 'bestwebsoft' ),349 'link' => 'https://bestwebsoft.com/products/wordpress/plugins/promobar/?k=619eac2232d9cfa382c4e678c3b14766&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,350 'settings' => 'admin.php?page=promobar.php',351 'pro_version' => 'promobar-pro/promobar-pro.php',352 'purchase' => 'https://bestwebsoft.com/products/wordpress/plugins/promobar/buy/?k=a9b09708502f12a1483532ba12fe2103&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,353 'pro_settings' => 'admin.php?page=promobar-pro.php',354 ),355 183 'quotes-and-tips/quotes-and-tips.php' => array( 356 184 'category' => array( 'content' ), … … 359 187 'link' => 'https://bestwebsoft.com/products/wordpress/plugins/quotes-and-tips/?k=5738a4e85a798c4a5162240c6515098d&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version, 360 188 'settings' => 'admin.php?page=quotes-and-tips.php', 361 'pro_version' => 'quotes-and-tips-pro/quotes-and-tips-pro.php',362 'purchase' => 'https://bestwebsoft.com/products/wordpress/plugins/quotes-and-tips/buy/?k=75347ac9699d9e965a81673fbbb80876&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,363 'pro_settings' => 'admin.php?page=quotes-and-tips-pro.php',364 ),365 'rating-bws/rating-bws.php' => array(366 'category' => array( 'marketing' ),367 'name' => 'Rating',368 'description' => __( 'Add rating plugin to your WordPress website to receive feedback from your customers.', 'bestwebsoft' ),369 'link' => 'https://bestwebsoft.com/products/wordpress/plugins/rating/?k=c00e0824bb999735a3224616ef51f4c5&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,370 'settings' => 'admin.php?page=rating.php',371 'pro_version' => 'rating-bws-pro/rating-bws-pro.php',372 'purchase' => 'https://bestwebsoft.com/products/wordpress/plugins/rating/buy/?k=ba459f3115edb7be610e8d6f8e05df6c&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,373 'pro_settings' => 'admin.php?page=rating-bws-pro.php',374 ),375 'realty/realty.php' => array(376 'category' => array( 'ecommerce' ),377 'name' => 'Realty',378 'description' => __( 'Create your personal real estate WordPress website. Sell, rent and buy properties. Add, search and browse listings easily.', 'bestwebsoft' ),379 'link' => 'https://bestwebsoft.com/products/wordpress/plugins/realty/?k=d55de979dbbbb7af0b2ff1d7f43884fa&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,380 'settings' => 'admin.php?page=realty_settings',381 'pro_version' => 'realty-pro/realty-pro.php',382 'purchase' => 'https://bestwebsoft.com/products/wordpress/plugins/realty/buy/?k=c7791f0a72acfb36f564a614dbccb474&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,383 'pro_settings' => 'admin.php?page=realty_pro_settings',384 ),385 'relevant/related-posts-plugin.php' => array(386 'category' => array( 'marketing', 'recommended' ),387 'name' => 'Relevant - Related, Featured, Latest, and Popular Posts',388 'description' => __( 'Add related, featured, latest, and popular posts to your WordPress website. Connect your blog readers with a relevant content.', 'bestwebsoft' ),389 'link' => 'https://bestwebsoft.com/products/wordpress/plugins/related-posts/?k=73fb737037f7141e66415ec259f7e426&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,390 'settings' => 'admin.php?page=related-posts-plugin.php',391 'pro_version' => 'relevant-pro/related-posts-pro.php',392 'purchase' => 'https://bestwebsoft.com/products/wordpress/plugins/related-posts/buy/?k=16368e8d55909c4852dd0fe39f89ed556&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,393 'pro_settings' => 'admin.php?page=related-posts-pro.php',394 ),395 'sender/sender.php' => array(396 'category' => array( 'marketing', 'recommended' ),397 'name' => 'Sender',398 'description' => __( 'Send bulk email messages to WordPress users. Custom templates, advanced settings and detailed reports.', 'bestwebsoft' ),399 'link' => 'https://bestwebsoft.com/products/wordpress/plugins/sender/?k=89c297d14ba85a8417a0f2fc05e089c7&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,400 'settings' => 'admin.php?page=sndr_settings',401 'pro_version' => 'sender-pro/sender-pro.php',402 'purchase' => 'https://bestwebsoft.com/products/wordpress/plugins/sender/buy/?k=dc5d1a87bdc8aeab2de40ffb99b38054&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,403 'pro_settings' => 'admin.php?page=sndrpr_settings',404 ),405 'slider-bws/slider-bws.php' => array(406 'category' => array( 'content' ),407 'name' => 'Slider',408 'description' => __( 'The best responsive slider plugin for your WordPress website. Create beautifully animated slides just in a few clicks.', 'bestwebsoft' ),409 'link' => 'https://bestwebsoft.com/products/wordpress/plugins/slider/?k=02acebf8531b2995e7de8474ae28e290&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,410 'settings' => 'admin.php?page=slider-settings.php',411 ),412 'bws-smtp/bws-smtp.php' => array(413 'category' => array( 'admin-tools' ),414 'name' => 'SMTP',415 'description' => __( 'Configure SMTP server to receive email messages from WordPress to Gmail, Yahoo, Hotmail and other services.', 'bestwebsoft' ),416 'link' => 'https://bestwebsoft.com/products/wordpress/plugins/smtp/?k=0546419f962704429ad2d9b88567752f&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,417 'settings' => 'admin.php?page=bwssmtp_settings',418 ),419 'social-buttons-pack/social-buttons-pack.php' => array(420 'category' => array( 'smm', 'recommended' ),421 'name' => 'Social Buttons Pack',422 'description' => __( 'Add social media buttons and widgets to WordPress posts, pages and widgets. FB, Twitter, Pinterest, LinkedIn.', 'bestwebsoft' ),423 'link' => 'https://bestwebsoft.com/products/wordpress/plugins/social-buttons-pack/?k=b6440fad9f54274429e536b0c61b42da&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,424 'settings' => 'admin.php?page=social-buttons.php',425 'pro_version' => 'social-buttons-pack-pro/social-buttons-pack-pro.php',426 'purchase' => 'https://bestwebsoft.com/products/wordpress/plugins/social-buttons-pack/buy/?k=e7059cacde0d275b224a5d995c9160fd&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,427 'pro_settings' => 'admin.php?page=social-buttons-pro.php',428 ),429 'social-login-bws/social-login-bws.php' => array(430 'category' => array( 'smm' ),431 'name' => 'Social Login',432 'description' => __( 'Add social media login, registration, and commenting to your WordPress website.', 'bestwebsoft' ),433 'link' => 'https://bestwebsoft.com/products/wordpress/plugins/social-login/?k=62817c9c94f24129e40894e1d9c3f49d&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,434 'settings' => 'admin.php?page=social-login.php',435 ),436 'subscriber/subscriber.php' => array(437 'category' => array( 'marketing', 'recommended' ),438 'name' => 'Subscriber',439 'description' => __( 'Add email newsletter sign up form to WordPress posts, pages and widgets. Collect data and subscribe your users.', 'bestwebsoft' ),440 'link' => 'https://bestwebsoft.com/products/wordpress/plugins/subscriber/?k=a4ecc1b7800bae7329fbe8b4b04e9c88&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,441 'settings' => 'admin.php?page=subscriber.php',442 'pro_version' => 'subscriber-pro/subscriber-pro.php',443 'purchase' => 'https://bestwebsoft.com/products/wordpress/plugins/subscriber/buy/?k=02dbb8b549925d9b74e70adc2a7282e4&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,444 'pro_settings' => 'admin.php?page=subscriber-pro.php',445 ),446 'bws-testimonials/bws-testimonials.php' => array(447 'category' => array( 'marketing', 'recommended' ),448 'name' => 'Testimonials',449 'description' => __( 'Add testimonials and feedbacks from your customers to WordPress website posts, pages, and widgets.', 'bestwebsoft' ),450 'link' => 'https://bestwebsoft.com/products/wordpress/plugins/testimonials/?k=3fe4bb89dc901c98e43a113e08f8db73&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,451 'settings' => 'admin.php?page=testimonials.php',452 'pro_version' => 'bws-testimonials-pro/bws-testimonials-pro.php',453 'purchase' => 'https://bestwebsoft.com/products/wordpress/plugins/testimonials/buy/?k=3fe4bb89dc901c98e43a113e08f8db73&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,454 'pro_settings' => 'edit.php?post_type=bws-testimonial&page=testimonials-ro.php',455 ),456 'timesheet/timesheet.php' => array(457 'category' => array( 'admin-tools' ),458 'name' => 'Timesheet',459 'description' => __( 'Best timesheet plugin for WordPress. Track employee time, streamline attendance and generate reports.', 'bestwebsoft' ),460 'link' => 'https://bestwebsoft.com/products/wordpress/plugins/timesheet/?k=06a58bb78c17a43df01825925f05a5c1&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,461 'settings' => 'admin.php?page=timesheet_settings',462 'pro_version' => 'timesheet-pro/timesheet-pro.php',463 'purchase' => 'https://bestwebsoft.com/products/wordpress/plugins/timesheet/buy/?k=a448ce4cab0d365b7774c9bc3903b851&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,464 'pro_settings' => 'admin.php?page=timesheet_pro_settings',465 ),466 'twitter-plugin/twitter.php' => array(467 'category' => array( 'smm' ),468 'name' => 'Twitter',469 'description' => __( 'Add Twitter Follow, Tweet, Hashtag, and Mention buttons to WordPress posts and pages.', 'bestwebsoft' ),470 'link' => 'https://bestwebsoft.com/products/wordpress/plugins/twitter/?k=f8cb514e25bd7ec4974d64435c5eb333&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,471 'settings' => 'admin.php?page=twitter.php',472 'pro_version' => 'twitter-pro/twitter-pro.php',473 'purchase' => 'https://bestwebsoft.com/products/wordpress/plugins/twitter/buy/?k=63ecbf0cc9cebf060b5a3c9362299700&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,474 'pro_settings' => 'admin.php?page=twitter-pro.php',475 189 ), 476 190 'updater/updater.php' => array( … … 494 208 'pro_settings' => 'admin.php?page=user-role-pro.php', 495 209 ), 496 'visitors-online/visitors-online.php' => array(497 'category' => array( 'admin-tools' ),498 'name' => 'Visitors Online',499 'description' => __( 'Display live count of online visitors who are currently browsing your WordPress website.', 'bestwebsoft' ),500 'link' => 'https://bestwebsoft.com/products/wordpress/plugins/visitors-online/?k=93c28013a4f830671b3bba9502ed5177&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,501 'settings' => 'admin.php?page=visitors-online.php',502 'pro_version' => 'visitors-online-pro/visitors-online-pro.php',503 'purchase' => 'https://bestwebsoft.com/products/wordpress/plugins/visitors-online/buy/?k=f9a746075ff8a0a6cb192cb46526afd2&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,504 'pro_settings' => 'admin.php?page=visitors-online-pro.php',505 ),506 'zendesk-help-center/zendesk-help-center.php' => array(507 'category' => array( 'admin-tools' ),508 'name' => 'Help Center',509 'description' => __( 'Backup and export Zendesk Help Center content automatically to your WordPress website database.', 'bestwebsoft' ),510 'link' => 'https://bestwebsoft.com/products/wordpress/plugins/zendesk-help-center/?k=2a5fd2f4b2f4bde46f2ca44b8d15846d&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,511 'settings' => 'admin.php?page=zendesk_hc.php',512 'pro_version' => 'zendesk-help-center-pro/zendesk-help-center-pro.php',513 'purchase' => 'https://bestwebsoft.com/products/wordpress/plugins/zendesk-help-center/buy/?k=45199e4538b5befe4d9566868a61a3aa&pn=' . $bws_plugin_info['id'] . '&v=' . $bws_plugin_info['version'] . '&wp_v=' . $wp_version,514 'pro_settings' => 'admin.php?page=zendesk_hc_pro.php',515 ),516 210 ); 517 211 -
error-log-viewer/trunk/error-log-viewer.php
r3262279 r3378018 7 7 Text Domain: error-log-viewer 8 8 Domain Path: /languages 9 Version: 1.1. 69 Version: 1.1.7 10 10 Author URI: https://bestwebsoft.com/ 11 11 License: GNU General Public License V3 … … 81 81 82 82 if ( isset( $_GET['action'] ) && 'rrrlgvwr_get_file' === sanitize_text_field( wp_unslash( $_GET['action'] ) ) && isset( $_GET['rrrlgvwr_nonce'] ) && wp_verify_nonce( sanitize_text_field( wp_unslash( $_GET['rrrlgvwr_nonce'] ) ), 'rrrlgvwr_get_file' ) && isset( $_GET['name'] ) ) { 83 rrrlgvwr_get_file( sanitize_ text_field( wp_unslash( $_GET['name'] ) ) );83 rrrlgvwr_get_file( sanitize_file_name( wp_unslash( $_GET['name'] ) ) ); 84 84 } 85 85 } … … 306 306 $message = __( 'File(s) was deleted successfully', 'error-log-viewer' ); 307 307 } else { 308 /* translators: %s: file name */ 308 309 $error = sprintf( __( "Couldn't delete file %s, change permission to the 'wp-content' or 'error-log-viewer' plugin directory", 'error-log-viewer' ), ( dirname( __FILE__ ) . DIRECTORY_SEPARATOR . 'saved_logs' . DIRECTORY_SEPARATOR . $check_del . '.txt' ) ); 309 310 } 310 311 } else { 312 /* translators: %s: file name */ 311 313 $error = sprintf( __( "Couldn't delete file %s, the file is not exist", 'error-log-viewer' ), ( dirname( __FILE__ ) . DIRECTORY_SEPARATOR . 'saved_logs' . DIRECTORY_SEPARATOR . $check_del . '.txt' ) ); 312 314 } … … 352 354 <div class="wrap"> 353 355 <h1><?php esc_html_e( 'Log Monitor', 'error-log-viewer' ); ?></h1> 354 <div class="updated fade below-h2" 356 <div class="updated fade below-h2" 355 357 <?php 356 358 if ( empty( $message ) || '' !== $error ) { … … 359 361 ?> 360 362 ><p><strong><?php echo esc_html( $message ); ?></strong></p></div> 361 <div class="error below-h2" 363 <div class="error below-h2" 362 364 <?php 363 365 if ( '' === $error ) { … … 533 535 <?php if ( false !== strpos( $rrrlgvwr_options['error_log_path'], $home_path ) ) { ?> 534 536 <a target="_blank" href="<?php echo esc_url( str_replace( $home_path, get_home_url(), $rrrlgvwr_options['error_log_path'] ) ); ?>"><?php echo esc_html( basename( $rrrlgvwr_options['error_log_path'] ) ); ?></a> 535 <?php 537 <?php 536 538 } else { 537 539 echo esc_html( basename( $rrrlgvwr_options['error_log_path'] ) ); … … 572 574 <?php 573 575 printf( 576 /* translators: %s: link to page */ 574 577 esc_html__( 'Please enable log files in the %1$sError Log Viewer settings page%2$s to manage them.', 'error-log-viewer' ), 575 578 '<a href="admin.php?page=rrrlgvwr.php">', … … 583 586 <?php 584 587 printf( 588 /* translators: %s: link to page */ 585 589 esc_html__( 'Please enable log files in the %1$sError Log Viewer settings page%2$s to manage them.', 'error-log-viewer' ), 586 590 '<a href="admin.php?page=rrrlgvwr.php">', … … 615 619 return $files; 616 620 } else { 621 /* translators: %s: directory name */ 617 622 return printf( esc_html__( "Directory %s is not exists, or isn't readable", 'error-log-viewer' ), esc_attr( $directory ) ); 618 623 } … … 652 657 } 653 658 } else { 659 /* translators: %s: file name */ 654 660 return printf( esc_html__( 'File %s is not exists', 'error-log-viewer' ), esc_attr( $path ) ); 655 661 } … … 684 690 } 685 691 } else { 692 /* translators: %s: file name */ 686 693 return printf( esc_html__( 'File %s is not exists', 'error-log-viewer' ), esc_attr( $path ) ); 687 694 } … … 702 709 703 710 if ( $wp_filesystem->exists( $file ) ) { 704 $file_lines = $wp_filesystem->get_contents_array( $file ); 705 $text = array_slice( $file_lines, -$lines, $lines ); 706 foreach ( $text as $line ) { 707 echo wp_kses_post( $line ); 711 $max_file_size = rrrlgvwr_human2byte( ini_get( 'post_max_size' ) ); 712 if ( filesize( $file ) > $max_file_size ) { 713 echo esc_html__( "The file size exceeds the server's capabilities to display it.", 'error-log-viewer' ); 714 } else { 715 $file_lines = $wp_filesystem->get_contents_array( $file ); 716 $text = array_slice( $file_lines, -$lines, $lines ); 717 718 foreach ( $text as $line ) { 719 echo wp_kses_post( $line ); 720 } 708 721 } 709 722 } else { 723 /* translators: %s: file name */ 710 724 return printf( esc_html__( "Couldn't open the file %s. Make sure file exists or is readable.", 'error-log-viewer' ), esc_attr( $file ) ); 711 725 } 726 } 727 } 728 729 if ( ! function_exists( 'rrrlgvwr_human2byte' ) ) { 730 /** 731 * Function read X last lines from file 732 * 733 * @param string $file File name. 734 * @param array $lines Lines from file. 735 * @return string 736 */ 737 function rrrlgvwr_human2byte( $value ) { 738 return preg_replace_callback( '/^\s*(\d+)\s*(?:([kmgt]?)b?)?\s*$/i', function ( $m ) { 739 switch ( strtolower( $m[2] ) ) { 740 case 't': $m[1] *= 1024; 741 case 'g': $m[1] *= 1024; 742 case 'm': $m[1] *= 1024; 743 case 'k': $m[1] *= 1024; 744 } 745 return $m[1]; 746 }, $value ); 712 747 } 713 748 } … … 727 762 728 763 if ( $wp_filesystem->exists( $file ) ) { 729 $file_lines = $wp_filesystem->get_contents_array( $file ); 730 $pattern = '/\[(.*?)\s/'; 731 $pattern_2 = '/(\d{4}-\d{2}-\d{2}).*?\s/'; 732 $count_line = 0; 733 $line_date = 0; 734 foreach ( $file_lines as $line ) { 735 if ( preg_match( $pattern, $line, $matches ) ) { 736 $line_date = $matches[1]; 737 } elseif ( preg_match( $pattern_2, $line, $matches ) ) { 738 $line_date = $matches[1]; 739 } 740 if ( strtotime( $line_date ) >= $first_date && strtotime( $line_date ) <= $last_date ) { 741 $count_line ++; 742 echo wp_kses_post( $line ); 743 } else { 744 continue; 745 } 746 } 747 if ( 0 === $count_line ) { 748 printf( esc_html__( 'No log in search date from %1$s to %2$s', 'error-log-viewer' ), esc_html( gmdate( 'Y-m-d', $first_date ), gmdate( 'Y-m-d', $last_date ) ) ); 764 $max_file_size = rrrlgvwr_human2byte( ini_get( 'post_max_size' ) ); 765 if ( filesize( $file ) > $max_file_size ) { 766 echo esc_html__( "The file size exceeds the server's capabilities to display it.", 'error-log-viewer' ); 767 } else { 768 $file_lines = $wp_filesystem->get_contents_array( $file ); 769 $pattern = '/\[(.*?)\s/'; 770 $pattern_2 = '/(\d{4}-\d{2}-\d{2}).*?\s/'; 771 $count_line = 0; 772 $line_date = 0; 773 foreach ( $file_lines as $line ) { 774 if ( preg_match( $pattern, $line, $matches ) ) { 775 $line_date = $matches[1]; 776 } elseif ( preg_match( $pattern_2, $line, $matches ) ) { 777 $line_date = $matches[1]; 778 } 779 if ( strtotime( $line_date ) >= $first_date && strtotime( $line_date ) <= $last_date ) { 780 $count_line ++; 781 echo wp_kses_post( $line ); 782 } else { 783 continue; 784 } 785 } 786 if ( 0 === $count_line ) { 787 /* translators: %1$s: date */ 788 /* translators: %2$s: date */ 789 printf( esc_html__( 'No log in search date from %1$s to %2$s', 'error-log-viewer' ), esc_html( gmdate( 'Y-m-d', $first_date ), gmdate( 'Y-m-d', $last_date ) ) ); 790 } 749 791 } 750 792 } else { 793 /* translators: %s: file name */ 751 794 return printf( esc_html__( "Couldn't open the file %s. Make sure file exists or is readable.", 'error-log-viewer' ), esc_attr( $file ) ); 752 795 } … … 766 809 767 810 if ( $wp_filesystem->exists( $file ) ) { 768 $file_lines = $wp_filesystem->get_contents_array( $file ); 769 foreach ( $file_lines as $line ) { 770 echo wp_kses_post( $line ); 811 $max_file_size = rrrlgvwr_human2byte( ini_get( 'post_max_size' ) ); 812 if ( filesize( $file ) > $max_file_size ) { 813 echo esc_html__( "The file size exceeds the server's capabilities to display it.", 'error-log-viewer' ); 814 } else { 815 $file_lines = $wp_filesystem->get_contents_array( $file ); 816 foreach ( $file_lines as $line ) { 817 echo wp_kses_post( $line ); 818 } 771 819 } 772 820 } else { 821 /* translators: %s: file name */ 773 822 return printf( esc_html__( "Couldn't open the file %s. Make sure file exists or is readable.", 'error-log-viewer' ), esc_attr( $file ) ); 774 823 } … … 785 834 function rrrlgvwr_save_file( $content ) { 786 835 global $wp_filesystem; 787 if ( @is_writable( dirname( __FILE__ ) ) ) {788 WP_Filesystem();836 WP_Filesystem(); 837 if ( @$wp_filesystem->is_writable( dirname( __FILE__ ) ) ) { 789 838 if ( ! $wp_filesystem->exists( dirname( __FILE__ ) . DIRECTORY_SEPARATOR . 'saved_logs' ) ) { 790 839 $wp_filesystem->mkdir( dirname( __FILE__ ) . DIRECTORY_SEPARATOR . 'saved_logs' ); … … 827 876 if ( $wp_filesystem->exists( $file ) && ( $page->check_file( $file ) || $rrrlgvwr_php_error_path === $file ) ) { 828 877 if ( ! $wp_filesystem->get_contents( $file ) ) { 878 /* translators: %s: file name */ 829 879 return sprintf( esc_html__( "Couldn't open the file %s. Make sure file exists or is readable.", 'error-log-viewer' ), esc_attr( $file ) ); 830 880 } else { … … 832 882 } 833 883 } else { 884 /* translators: %s: file name */ 834 885 return sprintf( esc_html__( 'This file %s cannot be cleared.', 'error-log-viewer' ), esc_attr( $file ) ); 835 886 } … … 847 898 $file = get_home_path() . '.htaccess'; /* Path to the .htaccess file */ 848 899 $string = PHP_EOL . '# log php errors' . PHP_EOL . 'php_flag log_errors on' . PHP_EOL . 'php_flag log_errors on' . PHP_EOL . 'php_value error_log ' . plugin_dir_path( __FILE__ ) . 'log/php-errors.log' . PHP_EOL; 900 WP_Filesystem(); 849 901 /* Check is .htaccess writable */ 850 if ( @ is_writable( $file ) ) {902 if ( @$wp_filesystem->is_writable( $file ) ) { 851 903 /* Check is .htacces already containes required string */ 852 904 WP_Filesystem(); … … 855 907 $wp_filesystem->put_contents( $file, $htaccess . PHP_EOL . $string ); 856 908 857 if ( @ is_writable( plugin_dir_path( __FILE__ ) ) ) {909 if ( @$wp_filesystem->is_writable( plugin_dir_path( __FILE__ ) ) ) { 858 910 if ( ! $wp_filesystem->exists( plugin_dir_path( __FILE__ ) . 'log' . DIRECTORY_SEPARATOR . 'php-errors.log' ) ) { 859 911 $wp_filesystem->mkdir( plugin_dir_path( __FILE__ ) . 'log' ); … … 865 917 } else { 866 918 /* Check if writable plugin folder and create log file */ 867 if ( @ is_writable( plugin_dir_path( __FILE__ ) ) ) {919 if ( @$wp_filesystem->is_writable( plugin_dir_path( __FILE__ ) ) ) { 868 920 if ( ! $wp_filesystem->exists( plugin_dir_path( __FILE__ ) . 'log' . DIRECTORY_SEPARATOR . 'php-errors.log' ) ) { 869 921 $wp_filesystem->mkdir( plugin_dir_path( __FILE__ ) . 'log' ); … … 894 946 $string_iniset = PHP_EOL . "@ini_set('log_errors','On');" . PHP_EOL . "@ini_set('display_errors','Off');" . PHP_EOL . "@ini_set('error-log-viewer', '" . plugin_dir_path( __FILE__ ) . 'log' . DIRECTORY_SEPARATOR . "php-errors.log');" . PHP_EOL; 895 947 $string_debug = "define('WP_DEBUG', true);" . PHP_EOL . "define('WP_DEBUG_LOG', true);" . PHP_EOL . "define('WP_DEBUG_DISPLAY', false);" . PHP_EOL . "@ini_set('display_errors', 0);" . PHP_EOL; 948 WP_Filesystem(); 896 949 /* Check is wp-config writable*/ 897 if ( @ is_writable( $file ) ) {950 if ( @$wp_filesystem->is_writable( $file ) ) { 898 951 /* Check is wp-config already containes required strings */ 899 WP_Filesystem();900 952 $file_content = $wp_filesystem->get_contents( $file ); 901 953 if ( strstr( $file_content, $string_iniset ) === false && strstr( $file_content, $string_debug ) === false ) { … … 919 971 920 972 /* Check if writable plugin folder and create log file */ 921 if ( @ is_writable( plugin_dir_path( __FILE__ ) ) ) {973 if ( @$wp_filesystem->is_writable( plugin_dir_path( __FILE__ ) ) ) { 922 974 if ( ! $wp_filesystem->exists( plugin_dir_path( __FILE__ ) . 'log' . DIRECTORY_SEPARATOR . 'php-errors.log' ) ) { 923 975 $wp_filesystem->mkdir( plugin_dir_path( __FILE__ ) . 'log' ); … … 929 981 } else { 930 982 /* Check if writable plugin folder and create log file */ 931 if ( @ is_writable( plugin_dir_path( __FILE__ ) ) ) {983 if ( @$wp_filesystem->is_writable( plugin_dir_path( __FILE__ ) ) ) { 932 984 if ( ! $wp_filesystem->exists( plugin_dir_path( __FILE__ ) . 'log' . DIRECTORY_SEPARATOR . 'php-errors.log' ) ) { 933 985 $wp_filesystem->mkdir( plugin_dir_path( __FILE__ ) . 'log' ); … … 957 1009 $string_iniset = PHP_EOL . "@ini_set('log_errors','On');" . PHP_EOL . "@ini_set('display_errors','Off');" . PHP_EOL . "@ini_set('error-log-viewer', '" . plugin_dir_path( __FILE__ ) . 'log' . DIRECTORY_SEPARATOR . "php-errors.log');" . PHP_EOL; 958 1010 $string_debug = "define('WP_DEBUG', true);" . PHP_EOL . "define('WP_DEBUG_LOG', true);" . PHP_EOL . "define('WP_DEBUG_DISPLAY', false);" . PHP_EOL . "@ini_set('display_errors', 0);" . PHP_EOL; 1011 WP_Filesystem(); 959 1012 /* Check is wp-config writable*/ 960 if ( @is_writable( $file ) ) { 961 WP_Filesystem(); 1013 if ( @$wp_filesystem->is_writable( $file ) ) { 962 1014 $file_content = $wp_filesystem->get_contents( $file ); 963 1015 /* Check is wp-config already containes required strings */ … … 1020 1072 rrrlgvwr_settings(); 1021 1073 } 1022 1074 /* translators: %s: site url */ 1023 1075 $subject = sprintf( __( 'Saved file from %s', 'error-log-viewer' ), site_url() ); 1024 1076 $message = array(); … … 1238 1290 if ( isset( $rrrlgvwr_options['send_email'] ) && 1 === intval( $rrrlgvwr_options['send_email'] ) && isset( $error['type'] ) && in_array( $error['type'], $fatal_error_types, true ) ) { 1239 1291 $subject = __( 'Fatal error on ', 'error-log-viewer' ) . site_url(); 1240 $message = __( 'An unexpected fatal error occurred on the site.', 'error-log-viewer' ) . "\n" . 1241 sprintf( __( 'Fatal error: %1$s in %2$s on line %3$d', 'error-log-viewer' ), $error['message'], $error['file'], $error['line'] ); 1292 /* translators: %1$s: message */ 1293 /* translators: %2$s: file name */ 1294 /* translators: %3$s: line number */ 1295 $message = __( 'An unexpected fatal error occurred on the site.', 'error-log-viewer' ) . "\n" . sprintf( __( 'Fatal error: %1$s in %2$s on line %3$d', 'error-log-viewer' ), $error['message'], $error['file'], $error['line'] ); 1242 1296 1243 1297 if ( ! function_exists( 'wp_mail' ) ) { -
error-log-viewer/trunk/includes/class-rrrlgvwr-settings.php
r3262279 r3378018 104 104 } 105 105 } elseif ( ! is_readable( $file ) && isset( $_POST[ $subname ] ) ) { 106 /* translators: %s: file name */ 106 107 $error = sprintf( __( "File %s isn't readable, change permissions to the file", 'error-log-viewer' ), esc_attr( $name ) ); 107 108 } … … 161 162 if ( empty( $error ) ) { 162 163 update_option( 'rrrlgvwr_options', $this->options ); 163 $message .= __( 'Settings saved', ' gallery-plugin-pro' );164 $message .= __( 'Settings saved', 'error-log-viewer' ); 164 165 } 165 166 } … … 182 183 $php_error_mes = __( 'Error log filename is not set. Try to logging via WordPress function.', 'error-log-viewer' ); 183 184 } elseif ( ( strpos( $rrrlgvwr_php_error_path, '/' ) === false ) && ( strpos( $rrrlgvwr_php_error_path, '\\' ) === false ) ) { 185 /* translators: %s: file name */ 184 186 $php_error_mes = sprintf( __( 'The current error_log value %s is not supported. Please change it to an absolute path.', 'error-log-viewer' ), esc_attr( $rrrlgvwr_php_error_path ) ); 185 187 } elseif ( ! is_readable( $rrrlgvwr_php_error_path ) ) { 188 /* translators: %s: file name */ 186 189 $php_error_mes = sprintf( __( 'The log file %s does not exist or is inaccessible.', 'error-log-viewer' ), esc_attr( $rrrlgvwr_php_error_path ) ); 187 190 } else { -
error-log-viewer/trunk/readme.txt
r3262279 r3378018 3 3 Donate link: https://bestwebsoft.com/donate/ 4 4 Tags: add debug tool, error log, error log viewer, php error log, debug tool, clear log, display errors, error, eror, error reporting, save log, find log 5 Requires at least: 5.66 Tested up to: 6. 77 Stable tag: 1.1. 65 Requires at least: 6.2 6 Tested up to: 6.8.3 7 Stable tag: 1.1.7 8 8 License: GPLv3 or later 9 9 License URI: http://www.gnu.org/licenses/gpl-3.0.html … … 142 142 == Changelog == 143 143 144 = V1.1.7 - 15.10.2025 = 145 * Bugfix : Vulnerability bugs fixed. 146 * Update : Plugin optimization compleated. 147 * Update : All functionality has been updated for WordPress 6.8.3. 148 144 149 = V1.1.6 - 26.03.2025 = 145 150 * Bugfix : Small bugs fixed. … … 210 215 == Upgrade Notice == 211 216 217 = V1.1.7 = 218 * The compatibility with new WordPress version updated. 219 * Plugin optimization completed. 220 * Bugs fixed 221 212 222 = V1.1.6 = 213 223 * The compatibility with new WordPress version updated.
Note: See TracChangeset
for help on using the changeset viewer.