WordPress.org

Plugin Directory

Changeset 1573169


Ignore:
Timestamp:
01/12/17 09:10:43 (5 days ago)
Author:
bestwebsoft
Message:

"V1.35 - * New features added. "

Location:
custom-search-plugin
Files:
64 added
18 edited

Legend:

Unmodified
Added
Removed
  • custom-search-plugin/trunk/bws_menu/bws_functions.php

    r1470528 r1573169  
    44*/ 
    55 
     6/** 
     7 * Function to add 'bestwebsoft' slug for BWS_Menu MO file if BWS_Menu loaded from theme. 
     8 * 
     9 * @since 1.9.7 
     10 */ 
     11if ( ! function_exists ( 'bws_get_mofile' ) ) { 
     12    function bws_get_mofile( $mofile, $domain ) { 
     13        if ( 'bestwebsoft' == $domain ) { 
     14            $locale = get_locale(); 
     15            return str_replace( $locale, "bestwebsoft-{$locale}", $mofile ); 
     16        } 
     17 
     18        return $mofile; 
     19    } 
     20} 
     21 
    622/* Internationalization, first(!) */ 
    7 load_plugin_textdomain( 'bestwebsoft', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' ); 
     23if ( isset( $bws_menu_source ) && 'themes' == $bws_menu_source ) { 
     24    add_filter( 'load_textdomain_mofile', 'bws_get_mofile', 10, 2 ); 
     25    load_theme_textdomain( 'bestwebsoft', get_stylesheet_directory() . '/inc/bws_menu/languages' ); 
     26    remove_filter( 'load_textdomain_mofile', 'bws_get_mofile' ); 
     27} else { 
     28    load_plugin_textdomain( 'bestwebsoft', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' ); 
     29} 
    830 
    931/** 
     
    3456            } 
    3557 
    36             add_menu_page( 'BWS Panel', 'BWS Panel', 'manage_options', 'bws_panel', 'bws_add_menu_render', plugins_url( 'images/logo-white-min.png', __FILE__ ), '1001' ); 
     58            add_menu_page( 'BWS Panel', 'BWS Panel', 'manage_options', 'bws_panel', 'bws_add_menu_render', bws_menu_url( 'images/logo-white-min.png' ), '1001' ); 
    3759 
    3860            add_submenu_page( 'bws_panel', __( 'Plugins', 'bestwebsoft' ), __( 'Plugins', 'bestwebsoft' ), 'manage_options', 'bws_panel', 'bws_add_menu_render' ); 
     
    6991                deactivate_plugins( $plugin_basename ); 
    7092                $admin_url = ( function_exists( 'get_admin_url' ) ) ? get_admin_url( null, 'plugins.php' ) : esc_url( '/wp-admin/plugins.php' ); 
    71                 wp_die(  
     93                wp_die( 
    7294                    sprintf( 
    7395                        "<strong>%s</strong> %s <strong>WordPress %s</strong> %s <br /><br />%s <a href='%s'>%s</a>.", 
     
    108130 
    109131        /*  banner_to_settings notice */ 
    110         if ( ! empty( $bws_plugin_banner_to_settings ) ) {  
     132        if ( ! empty( $bws_plugin_banner_to_settings ) ) { 
    111133            if ( 1 == count( $bws_plugin_banner_to_settings ) ) { ?> 
    112134                <div class="updated" style="padding: 0; margin: 0; border: none; background: none;"> 
     
    114136                        <div class="icon"> 
    115137                            <img title="" src="<?php echo esc_attr( $bws_plugin_banner_to_settings[0]['banner_url'] ); ?>" alt="" /> 
    116                         </div>                       
     138                        </div> 
    117139                        <div class="text"> 
    118140                            <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>  
     141                            <?php _e( "Let's get started", 'bestwebsoft' ); ?>: 
     142                            <a href="<?php echo $bws_plugin_banner_to_settings[0]['settings_url']; ?>"><?php _e( 'Settings', 'bestwebsoft' ); ?></a> 
    121143                            <?php if ( false != $bws_plugin_banner_to_settings[0]['post_type_url'] ) { ?> 
    122                                 <?php _e( 'or', 'bestwebsoft' ); ?>  
     144                                <?php _e( 'or', 'bestwebsoft' ); ?> 
    123145                                <a href="<?php echo $bws_plugin_banner_to_settings[0]['post_type_url']; ?>"><?php _e( 'Add New', 'bestwebsoft' ); ?></a> 
    124146                            <?php } ?> 
     
    130152                        </form> 
    131153                    </div> 
    132                 </div>           
     154                </div> 
    133155            <?php } else { ?> 
    134156                <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">     
     157                    <div class="bws_banner_on_plugin_page bws_banner_to_settings_joint"> 
    136158                        <form action="" method="post"> 
    137159                            <button class="notice-dismiss bws_hide_settings_notice" title="<?php _e( 'Close notice', 'bestwebsoft' ); ?>"></button> 
     
    139161                                <div class="icon"> 
    140162                                    <span class="dashicons dashicons-admin-plugins"></span> 
    141                                 </div>                                                           
     163                                </div> 
    142164                                <strong><?php _e( 'Thank you for installing plugins by BestWebSoft!', 'bestwebsoft' ); ?></strong> 
    143165                                <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' ); ?>                               
     166                                    <a href="#" class="bws-more"><?php _e( 'More Details', 'bestwebsoft' ); ?></a> 
     167                                    <a href="#" class="bws-less hidden"><?php _e( 'Less Details', 'bestwebsoft' ); ?></a> 
     168                                </div> 
     169                                <?php wp_nonce_field( plugin_basename( __FILE__ ), 'bws_settings_nonce_name' ); ?> 
    148170                                <div class="clear"></div> 
    149171                            </div> 
    150172                            <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>  
     173                                <?php foreach ( $bws_plugin_banner_to_settings as $value ) { ?> 
     174                                    <div> 
     175                                        <strong><?php echo str_replace( ' by BestWebSoft', '', $value['plugin_info']['Name'] ); ?></strong>&ensp;<a href="<?php echo $value['settings_url']; ?>"><?php _e( 'Settings', 'bestwebsoft' ); ?></a> 
    154176                                        <?php if ( false != $value['post_type_url'] ) { ?> 
    155177                                            &ensp;|&ensp;<a target="_blank" href="<?php echo $value['post_type_url']; ?>"><?php _e( 'Add New', 'bestwebsoft' ); ?></a> 
    156178                                        <?php } ?> 
    157179                                        <input type="hidden" name="bws_hide_settings_notice_<?php echo $value['plugin_options_name']; ?>" value="hide" /> 
    158                                     </div>       
    159                                 <?php } ?>       
     180                                    </div> 
     181                                <?php } ?> 
    160182                            </div> 
    161183                        </div> 
     
    170192    function bws_plugin_banner( $plugin_info, $this_banner_prefix, $link_slug, $link_key, $link_pn, $banner_url_or_slug ) { 
    171193        global $wp_version, $bstwbsftwppdtplgns_cookie_add, $bstwbsftwppdtplgns_banner_array; 
    172          
     194 
    173195        if ( empty( $bstwbsftwppdtplgns_banner_array ) ) { 
    174196            if ( ! function_exists( 'bws_get_banner_array' ) ) 
     
    190212            if ( $this_banner == $value[0] ) { 
    191213                if ( ! isset( $bstwbsftwppdtplgns_cookie_add ) ) { 
    192                     echo '<script type="text/javascript" src="' . plugins_url( 'js/c_o_o_k_i_e.js', __FILE__ ) . '"></script>'; 
     214                    echo '<script type="text/javascript" src="' . bws_menu_url( 'js/c_o_o_k_i_e.js' ) . '"></script>'; 
    193215                    $bstwbsftwppdtplgns_cookie_add = true; 
    194216                } ?> 
     
    214236                        <div class="icon"> 
    215237                            <img title="" src="<?php echo esc_attr( $banner_url_or_slug ); ?>" alt="" /> 
    216                         </div>                       
     238                        </div> 
    217239                        <div class="text"><?php 
    218240                            _e( 'It’s time to upgrade your', 'bestwebsoft' ); ?> <strong><?php echo $plugin_info['Name']; ?> plugin</strong> <?php _e( 'to', 'bestwebsoft' ); ?> <strong>Pro</strong> <?php _e( 'version!', 'bestwebsoft' ); ?><br /> 
     
    220242                        </div> 
    221243                        <div class="button_div"> 
    222                             <a class="button" target="_blank" href="http://bestwebsoft.com/products/<?php echo $link_slug; ?>/?k=<?php echo $link_key; ?>&amp;pn=<?php echo $link_pn; ?>&amp;v=<?php echo $plugin_info["Version"]; ?>&amp;wp_v=<?php echo $wp_version; ?>"><?php _e( 'Learn More', 'bestwebsoft' ); ?></a> 
     244                            <a class="button" target="_blank" href="http://bestwebsoft.com/products/wordpress/plugins/<?php echo $link_slug; ?>/?k=<?php echo $link_key; ?>&amp;pn=<?php echo $link_pn; ?>&amp;v=<?php echo $plugin_info["Version"]; ?>&amp;wp_v=<?php echo $wp_version; ?>"><?php _e( 'Learn More', 'bestwebsoft' ); ?></a> 
    223245                        </div> 
    224246                    </div> 
     
    246268            <div class="bws-plugin-reviews-donate"> 
    247269                <?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> 
     270                <a href="http://bestwebsoft.com/donate/">Donate</a> 
    249271            </div> 
    250272        </div> 
     
    269291                    unset( $plugin_options['hide_premium_options'][ $key ] ); 
    270292                } 
    271              
     293 
    272294                if ( $is_network_option ) 
    273295                    update_site_option( $plugin_options_name, $plugin_options ); 
     
    280302 
    281303        if ( isset( $_POST['bws_license_submit'] ) && check_admin_referer( $plugin_basename, 'bws_license_nonce_name' ) ) { 
    282             if ( '' != $bws_license_key ) {  
     304            if ( '' != $bws_license_key ) { 
    283305                if ( strlen( $bws_license_key ) != 18 ) { 
    284306                    $result['error'] = __( "Wrong license key", 'bestwebsoft' ); 
     
    297319 
    298320                    $all_plugins = get_plugins(); 
    299                      
     321 
    300322                    if ( ! array_key_exists( $bws_license_plugin, $all_plugins ) ) { 
    301323                        $current = get_site_transient( 'update_plugins' ); 
     
    318340                                    foreach ( $response as $key => $value ) { 
    319341                                        if ( "wrong_license_key" == $value->package ) { 
    320                                             $result['error'] = __( "Wrong license key", 'bestwebsoft' );  
     342                                            $result['error'] = __( "Wrong license key", 'bestwebsoft' ); 
    321343                                        } elseif ( "wrong_domain" == $value->package ) { 
    322344                                            $result['error'] = __( "This license key is bind to another site", 'bestwebsoft' ); 
     
    335357                                        $uploadDir = wp_upload_dir(); 
    336358                                        $zip_name = explode( '/', $bws_license_plugin ); 
    337                                          
    338                                         if ( !function_exists( 'curl_init' ) ) {  
     359 
     360                                        if ( !function_exists( 'curl_init' ) ) { 
    339361                                            $received_content = file_get_contents( $url ); 
    340362                                        } else { 
     
    378400                                        /* activate Pro */ 
    379401                                        if ( file_exists( WP_PLUGIN_DIR . '/' . $zip_name[0] ) ) { 
    380                                             if ( is_multisite() && is_plugin_active_for_network( plugin_basename( __FILE__ ) ) ) { 
     402                                            if ( is_multisite() && is_plugin_active_for_network( $plugin_basename ) ) { 
    381403                                                /* if multisite and free plugin is network activated */ 
    382404                                                $active_plugins = get_site_option( 'active_sitewide_plugins' ); 
     
    395417                                    } 
    396418                                } else { 
    397                                     $result['error'] = __( "Something went wrong. Try again later or upload the plugin manually. We are sorry for inconvenience.", 'bestwebsoft' );  
     419                                    $result['error'] = __( "Something went wrong. Try again later or upload the plugin manually. We are sorry for inconvenience.", 'bestwebsoft' ); 
    398420                                } 
    399421                            } 
     
    403425                        /* activate Pro */ 
    404426                        if ( ! is_plugin_active( $bws_license_plugin ) ) { 
    405                             if ( is_multisite() && is_plugin_active_for_network( plugin_basename( __FILE__ ) ) ) { 
     427                            if ( is_multisite() && is_plugin_active_for_network( $plugin_basename ) ) { 
    406428                                /* if multisite and free plugin is network activated */ 
    407429                                $network_wide = true; 
     
    455477            <p><?php _e( "Congratulations! Pro version of the plugin is successfully installed and activated.", 'bestwebsoft' ); ?></p> 
    456478            <p> 
    457                 <?php _e( "Please, go to", 'bestwebsoft' ); ?> <a href="admin.php?page=<?php echo $pro_page; ?>"><?php _e( 'the setting page', 'bestwebsoft' ); ?></a>  
     479                <?php _e( "Please, go to", 'bestwebsoft' ); ?> <a href="admin.php?page=<?php echo $pro_page; ?>"><?php _e( 'the setting page', 'bestwebsoft' ); ?></a> 
    458480                (<?php _e( "You will be redirected automatically in 5 seconds.", 'bestwebsoft' ); ?>) 
    459481            </p> 
     
    470492            <form method="post" action=""> 
    471493                <p> 
    472                     <?php _e( 'Enter your license key to install and activate', 'bestwebsoft' ); ?>  
    473                     <a href="http://bestwebsoft.com/products/<?php echo $link_slug; ?>/?k=<?php echo $link_key; ?>&amp;pn=<?php echo $link_pn; ?>&amp;v=<?php echo $plugin_info["Version"]; ?>&amp;wp_v=<?php echo $wp_version; ?>" target="_blank" title="<?php echo $plugin_info["Name"]; ?> Pro">Pro</a>  
     494                    <?php _e( 'Enter your license key to install and activate', 'bestwebsoft' ); ?> 
     495                    <a href="http://bestwebsoft.com/products/wordpress/plugins/<?php echo $link_slug; ?>/?k=<?php echo $link_key; ?>&amp;pn=<?php echo $link_pn; ?>&amp;v=<?php echo $plugin_info["Version"]; ?>&amp;wp_v=<?php echo $wp_version; ?>" target="_blank" title="<?php echo $plugin_info["Name"]; ?> Pro">Pro</a> 
    474496                    <?php _e( 'version of the plugin.', 'bestwebsoft' ); ?><br /> 
    475497                    <span class="bws_info"> 
    476                         <?php _e( 'License key can be found in the', 'bestwebsoft' ); ?>  
    477                         <a href="http://bestwebsoft.com/wp-login.php">Client Area</a>  
     498                        <?php _e( 'License key can be found in the', 'bestwebsoft' ); ?> 
     499                        <a href="http://bestwebsoft.com/wp-login.php">Client Area</a> 
    478500                        <?php _e( '(your username is the email address specified during the purchase).', 'bestwebsoft' ); ?> 
    479501                    </span> 
    480502                </p> 
    481503                <?php if ( $trial_days_number !== false ) 
    482                     $trial_days_number = __( 'or', 'bestwebsoft' ) . ' <a href="http://bestwebsoft.com/products/' . $link_slug . '/trial/" target="_blank">' . sprintf( __( 'Start Your Free %s-Day Trial Now', 'bestwebsoft' ), $trial_days_number ) . '</a>'; 
     504                    $trial_days_number = __( 'or', 'bestwebsoft' ) . ' <a href="http://bestwebsoft.com/products/wordpress/plugins/' . $link_slug . '/trial/" target="_blank">' . sprintf( __( 'Start Your Free %s-Day Trial Now', 'bestwebsoft' ), $trial_days_number ) . '</a>'; 
    483505                if ( isset( $bstwbsftwppdtplgns_options['go_pro'][ $bws_license_plugin ]['count'] ) && 
    484506                    '5' < $bstwbsftwppdtplgns_options['go_pro'][ $bws_license_plugin ]['count'] && 
     
    512534            <form method="post" action=""> 
    513535                <p> 
    514                     <?php echo sprintf( __( 'In order to continue using the plugin it is necessary to buy a %s license.', 'bestwebsoft' ), '<a href="http://bestwebsoft.com/products/' . $link_slug . '/?k=' . $link_key . '&amp;pn=' . $link_pn . '&amp;v=' . $plugin_info["Version"] . '&amp;wp_v=' . $wp_version .'" target="_blank" title="' . $plugin_info["Name"] . '">Pro</a>' ) . ' '; 
     536                    <?php echo sprintf( __( 'In order to continue using the plugin it is necessary to buy a %s license.', 'bestwebsoft' ), '<a href="http://bestwebsoft.com/products/wordpress/plugins/' . $link_slug . '/?k=' . $link_key . '&amp;pn=' . $link_pn . '&amp;v=' . $plugin_info["Version"] . '&amp;wp_v=' . $wp_version .'" target="_blank" title="' . $plugin_info["Name"] . '">Pro</a>' ) . ' '; 
    515537                    _e( 'After that you can activate it by entering your license key.', 'bestwebsoft' ); ?><br /> 
    516538                    <span class="bws_info"> 
    517                         <?php _e( 'License key can be found in the', 'bestwebsoft' ); ?>  
    518                         <a href="http://bestwebsoft.com/wp-login.php">Client Area</a>  
     539                        <?php _e( 'License key can be found in the', 'bestwebsoft' ); ?> 
     540                        <a href="http://bestwebsoft.com/wp-login.php">Client Area</a> 
    519541                        <?php _e( '(your username is the email address specified during the purchase).', 'bestwebsoft' ); ?> 
    520542                    </span> 
     
    546568            <p><?php _e( "Congratulations! The Pro license of the plugin is successfully activated.", 'bestwebsoft' ); ?></p> 
    547569            <p> 
    548                 <?php _e( "Please, go to", 'bestwebsoft' ); ?> <a href="admin.php?page=<?php echo $page; ?>"><?php _e( 'the setting page', 'bestwebsoft' ); ?></a>  
     570                <?php _e( "Please, go to", 'bestwebsoft' ); ?> <a href="admin.php?page=<?php echo $page; ?>"><?php _e( 'the setting page', 'bestwebsoft' ); ?></a> 
    549571                (<?php _e( "You will be redirected automatically in 5 seconds.", 'bestwebsoft' ); ?>) 
    550572            </p> 
     
    560582        if ( isset( $_POST['bws_license_submit'] ) && check_admin_referer( $plugin_basename, 'bws_license_nonce_name' ) ) { 
    561583            $license_key = isset( $_POST['bws_license_key'] ) ? stripslashes( esc_html( trim( $_POST['bws_license_key'] ) ) ) : ''; 
    562              
     584 
    563585            if ( '' != $license_key ) { 
    564586 
     
    588610                            foreach ( $response as $key => $value ) { 
    589611                                if ( "wrong_license_key" == $value->package ) { 
    590                                     $result['error'] = __( 'Wrong license key.', 'bestwebsoft' );  
     612                                    $result['error'] = __( 'Wrong license key.', 'bestwebsoft' ); 
    591613                                } else if ( "wrong_domain" == $value->package ) { 
    592614                                    $result['error'] = __( 'This license key is bind to another site.', 'bestwebsoft' ); 
     
    608630 
    609631                                    if ( isset( $value->trial ) && $trial_plugin != false ) 
    610                                         $result['message'] .= ' ' . sprintf( __( 'In order to continue using the plugin it is necessary to buy a %s license.', 'bestwebsoft' ), '<a href="http://bestwebsoft.com/products/' . $trial_plugin['link_slug'] . '/?k=' . $trial_plugin['link_key'] . '&pn=' . $trial_plugin['link_pn'] . '&v=' . $trial_plugin['plugin_info']['Version'] . '&wp_v=' . $wp_version . '" target="_blank" title="' . $trial_plugin['plugin_info']['Name'] . '">Pro</a>' ); 
     632                                        $result['message'] .= ' ' . sprintf( __( 'In order to continue using the plugin it is necessary to buy a %s license.', 'bestwebsoft' ), '<a href="http://bestwebsoft.com/products/wordpress/plugins/' . $trial_plugin['link_slug'] . '/?k=' . $trial_plugin['link_key'] . '&pn=' . $trial_plugin['link_pn'] . '&v=' . $trial_plugin['plugin_info']['Version'] . '&wp_v=' . $wp_version . '" target="_blank" title="' . $trial_plugin['plugin_info']['Name'] . '">Pro</a>' ); 
    611633 
    612634                                    if ( isset( $value->trial ) ) { 
     
    619641                                    if ( $bstwbsftwppdtplgns_options[ $plugin_basename ] != $license_key ) { 
    620642                                        $bstwbsftwppdtplgns_options[ $plugin_basename ] = $license_key; 
    621                                          
     643 
    622644                                        $file = @fopen( dirname( dirname( __FILE__ ) ) . "/license_key.txt" , "w+" ); 
    623645                                        if ( $file ) { 
     
    627649                                        $update_option = true; 
    628650                                    } 
    629                                      
    630                                     if ( $bstwbsftwppdtplgns_options['time_out'][ $plugin_basename ] != $value->time_out ) { 
     651 
     652                                    if ( ! isset( $bstwbsftwppdtplgns_options['time_out'][ $plugin_basename ] ) || $bstwbsftwppdtplgns_options['time_out'][ $plugin_basename ] != $value->time_out ) { 
    631653                                        $bstwbsftwppdtplgns_options['time_out'][ $plugin_basename ] = $value->time_out; 
    632654                                        $update_option = true; 
    633655                                    } 
    634                                      
     656 
    635657                                    if ( isset( $update_option ) ) { 
    636658                                        if ( is_multisite() ) 
     
    702724                            echo '<p>'; 
    703725                        if ( isset( $bstwbsftwppdtplgns_options['trial'][ $plugin_key ] ) && $link_slug != false ) { 
    704                             echo __( 'Notice: Your Pro Trial license has expired. To continue using the plugin you should buy a Pro license', 'bestwebsoft' ) . ' - <a href="http://bestwebsoft.com/products/' . $link_slug .'/">http://bestwebsoft.com/products/' . $link_slug . '/</a>'; 
     726                            echo __( 'Notice: Your Pro Trial license has expired. To continue using the plugin you should buy a Pro license', 'bestwebsoft' ) . ' - <a href="http://bestwebsoft.com/products/wordpress/plugins/' . $link_slug .'/">http://bestwebsoft.com/products/wordpress/plugins/' . $link_slug . '/</a>'; 
    705727                        } else { 
    706728                            echo __( 'Your license has expired. To continue getting top-priority support and plugin updates you should extend it.', 'bestwebsoft' ) . ' <a target="_new" href="http://support.bestwebsoft.com/entries/53487136">' . __( "Learn more", 'bestwebsoft' ) . '</a>'; 
     
    742764        if ( isset( $bstwbsftwppdtplgns_options['time_out'][ $plugin_key ] ) && ( strtotime( $bstwbsftwppdtplgns_options['time_out'][ $plugin_key ] ) < strtotime( date("m/d/Y") . '+1 month' ) ) && ( strtotime( $bstwbsftwppdtplgns_options['time_out'][ $plugin_key ] ) > strtotime( date("m/d/Y") ) ) ) { 
    743765            if ( ! isset( $bstwbsftwppdtplgns_cookie_add ) ) { 
    744                 echo '<script type="text/javascript" src="' . plugins_url( 'js/c_o_o_k_i_e.js', __FILE__ ) . '"></script>'; 
     766                echo '<script type="text/javascript" src="' . bws_menu_url( 'js/c_o_o_k_i_e.js' ) . '"></script>'; 
    745767                $bstwbsftwppdtplgns_cookie_add = true; 
    746768            } ?> 
     
    750772                        var hide_message = $.cookie( "<?php echo $plugin_prefix; ?>_timeout_hide_banner_on_plugin_page" ); 
    751773                        if ( hide_message == "true" ) { 
    752                             $( ".<?php echo $plugin_prefix; ?>_message" ).css( "display", "none" ); 
     774                            $( ".<?php echo $plugin_prefix; ?>_message_timeout" ).css( "display", "none" ); 
    753775                        } else { 
    754                             $( ".<?php echo $plugin_prefix; ?>_message" ).css( "display", "block" ); 
     776                            $( ".<?php echo $plugin_prefix; ?>_message_timeout" ).css( "display", "block" ); 
    755777                        } 
    756778                        $( ".<?php echo $plugin_prefix; ?>_close_icon" ).click( function() { 
    757                             $( ".<?php echo $plugin_prefix; ?>_message" ).css( "display", "none" ); 
     779                            $( ".<?php echo $plugin_prefix; ?>_message_timeout" ).css( "display", "none" ); 
    758780                            $.cookie( "<?php echo $plugin_prefix; ?>_timeout_hide_banner_on_plugin_page", "true", { expires: 30 } ); 
    759781                        }); 
     
    762784            </script> 
    763785            <div class="updated" style="padding: 0; margin: 0; border: none; background: none;"> 
    764                 <div class="<?php echo $plugin_prefix; ?>_message bws_banner_on_plugin_page bws_banner_timeout" style="display:none;"> 
     786                <div class="<?php echo $plugin_prefix; ?>_message_timeout bws_banner_on_plugin_page bws_banner_timeout" style="display:none;"> 
    765787                    <button class="<?php echo $plugin_prefix; ?>_close_icon close_icon notice-dismiss bws_hide_settings_notice" title="<?php _e( 'Close notice', 'bestwebsoft' ); ?>"></button> 
    766788                    <div class="icon"> 
     
    768790                    </div> 
    769791                    <div class="text"><?php _e( "You license for", 'bestwebsoft' ); ?> <strong><?php echo $plugin_name; ?></strong> <?php echo __( "expires on", 'bestwebsoft' ) . ' ' . $bstwbsftwppdtplgns_options['time_out'][ $plugin_key ] . ' ' . __( "and you won't be granted TOP-PRIORITY SUPPORT or UPDATES.", 'bestwebsoft' ); ?> <a target="_new" href="http://support.bestwebsoft.com/entries/53487136"><?php _e( "Learn more", 'bestwebsoft' ); ?></a></div> 
    770                 </div>   
     792                </div> 
    771793            </div> 
    772794        <?php } 
     
    784806        if ( isset( $plugin_options['display_settings_notice'] ) && 0 == $plugin_options['display_settings_notice'] ) 
    785807            return; 
    786          
     808 
    787809        if ( isset( $_POST['bws_hide_settings_notice_' . $plugin_options_name ] ) && check_admin_referer( plugin_basename( __FILE__ ), 'bws_settings_nonce_name' )  ) { 
    788810            $plugin_options['display_settings_notice'] = 0; 
     
    796818        if ( false == strrpos( $banner_url_or_slug, '/' ) ) { 
    797819            $banner_url_or_slug = '//ps.w.org/' . $banner_url_or_slug . '/assets/icon-128x128.png'; 
    798         }  
     820        } 
    799821 
    800822        $bws_plugin_banner_to_settings[] = array( 
    801             'plugin_info'           => $plugin_info,  
     823            'plugin_info'           => $plugin_info, 
    802824            'plugin_options_name'   => $plugin_options_name, 
    803825            'banner_url'            => $banner_url_or_slug, 
     
    843865        if ( isset( $return ) ) 
    844866            return; 
    845          
     867 
    846868        if ( isset( $_POST['bws_hide_suggest_feature_banner_' . $plugin_options_name ] ) && check_admin_referer( $plugin_info['Name'], 'bws_settings_nonce_name' )  ) { 
    847869            $plugin_options['display_suggest_feature_banner'] = 0; 
     
    860882                <div class="icon"> 
    861883                    <img title="" src="<?php echo esc_attr( $banner_url_or_slug ); ?>" alt="" /> 
    862                 </div>                       
     884                </div> 
    863885                <div class="text"> 
    864886                    <strong><?php _e( 'Thank you for choosing', 'bestwebsoft' ); ?> <?php echo $plugin_info['Name']; ?> plugin!</strong><br /> 
    865                     <?php _e( "If you have a feature, suggestion or idea you'd like to see in the plugin, we'd love to hear about it!", 'bestwebsoft' ); ?>  
    866                     <a target="_blank" href="http://support.bestwebsoft.com/hc/en-us/requests/new"><?php _e( 'Suggest a Feature', 'bestwebsoft' ); ?></a>  
     887                    <?php _e( "If you have a feature, suggestion or idea you'd like to see in the plugin, we'd love to hear about it!", 'bestwebsoft' ); ?> 
     888                    <a target="_blank" href="http://support.bestwebsoft.com/hc/en-us/requests/new"><?php _e( 'Suggest a Feature', 'bestwebsoft' ); ?></a> 
    867889                </div> 
    868890                <form action="" method="post"> 
     
    880902        <div id="bws_save_settings_notice" class="updated fade below-h2" style="display:none;"> 
    881903            <p> 
    882                 <strong><?php _e( 'Notice', 'bestwebsoft' ); ?></strong>: <?php _e( "The plugin's settings have been changed.", 'bestwebsoft' ); ?>  
     904                <strong><?php _e( 'Notice', 'bestwebsoft' ); ?></strong>: <?php _e( "The plugin's settings have been changed.", 'bestwebsoft' ); ?> 
    883905                <a class="bws_save_anchor" href="#bws-submit-button"><?php _e( 'Save Changes', 'bestwebsoft' ); ?></a> 
    884906            </p> 
     
    891913        if ( ! isset( $options['hide_premium_options'] ) || ! is_array( $options['hide_premium_options'] ) ) 
    892914            $options['hide_premium_options'] = array(); 
    893          
     915 
    894916        $options['hide_premium_options'][] = get_current_user_id(); 
    895917 
    896         return array(  
     918        return array( 
    897919                'message' => __( 'You can always look at premium options by clicking on the "Show Pro features" in the "Go PRO" tab', 'bestwebsoft' ), 
    898920                'options' => $options ); 
     
    914936        if ( isset( $_GET['bws_activate_plugin'] ) && check_admin_referer( 'bws_activate_plugin' . $_GET['bws_activate_plugin'] ) ) { 
    915937 
    916             $plugin = isset( $_GET['bws_activate_plugin'] ) ? $_GET['bws_activate_plugin'] : '';                 
    917             $result = activate_plugin( $plugin, '', is_network_admin() );                
     938            $plugin = isset( $_GET['bws_activate_plugin'] ) ? $_GET['bws_activate_plugin'] : ''; 
     939            $result = activate_plugin( $plugin, '', is_network_admin() ); 
    918940            if ( is_wp_error( $result ) ) { 
    919941                if ( 'unexpected_output' == $result->get_error_code() ) { 
     
    951973    function bws_admin_enqueue_scripts() { 
    952974        global $wp_version; 
    953         wp_enqueue_style( 'bws-admin-css', plugins_url( 'css/general_style.css', __FILE__ ) ); 
    954         wp_enqueue_script( 'bws-admin-scripts', plugins_url( 'js/general_script.js', __FILE__ ), array( 'jquery' ) ); 
     975        wp_enqueue_style( 'bws-admin-css', bws_menu_url( 'css/general_style.css' ) ); 
     976        wp_enqueue_script( 'bws-admin-scripts', bws_menu_url( 'js/general_script.js' ), array( 'jquery' ) ); 
    955977 
    956978        if ( isset( $_GET['page'] ) && in_array( $_GET['page'], array( 'bws_panel', 'bws_themes', 'bws_system_status' ) ) ) { 
    957             wp_enqueue_style( 'bws_menu_style', plugins_url( 'css/style.css', __FILE__ ) ); 
    958             wp_enqueue_script( 'bws_menu_script', plugins_url( 'js/bws_menu.js' , __FILE__ ) ); 
     979            wp_enqueue_style( 'bws_menu_style', bws_menu_url( 'css/style.css' ) ); 
     980            wp_enqueue_script( 'bws_menu_script', bws_menu_url( 'js/bws_menu.js' ) ); 
    959981            wp_enqueue_script( 'theme-install' ); 
    960982            add_thickbox(); 
     
    976998            </noscript> 
    977999        <?php } 
    978         if ( 4.2 > $wp_version ) { 
    979             $plugin_dir_array = explode( '/', plugin_basename( __FILE__ ) ); 
    980             $plugin_dir = $plugin_dir_array[0]; ?> 
     1000        if ( 4.2 > $wp_version ) { ?> 
    9811001            <style type="text/css"> 
    9821002                .bws_hide_settings_notice, 
     
    9851005                    height: 11px; 
    9861006                    border: none; 
    987                     background: url("<?php echo plugins_url( $plugin_dir . '/bws_menu/images/close_banner.png' ); ?>") no-repeat center center; 
     1007                    background: url("<?php echo bws_menu_url( 'images/close_banner.png' ); ?>") no-repeat center center; 
    9881008                    box-shadow: none; 
    9891009                    float: right; 
     
    10051025                    'label': '<?php esc_attr_e( "Add BWS Shortcode", "bestwebsoft" ); ?>', 
    10061026                    'title': '<?php esc_attr_e( "Add BWS Plugins Shortcode", "bestwebsoft" ); ?>', 
    1007                     'icon_url': '<?php echo plugins_url( "images/shortcode-icon.png" , __FILE__ ); ?>', 
     1027                    'icon_url': '<?php echo bws_menu_url( "images/shortcode-icon.png" ); ?>', 
    10081028                    'function_name': [ 
    10091029                        <?php foreach ( $bws_shortcode_list as $key => $value ) { 
    10101030                            if ( isset( $value['js_function'] ) ) 
    1011                                 echo "'" . $value['js_function'] . "',";     
     1031                                echo "'" . $value['js_function'] . "',"; 
    10121032                        } ?> 
    10131033                    ], 
     
    10231043                        'click'     => false, 
    10241044                        'onload'    => true 
    1025                     ),  
     1045                    ), 
    10261046                    'content'       => '<h3>' . __( 'Add shortcode', 'bestwebsoft' ) . '</h3><p>' . __( "Add BestWebSoft plugins' shortcodes using this button.", 'bestwebsoft' ) . '</p>', 
    1027                     'position' => array(  
     1047                    'position' => array( 
    10281048                        'edge'      => 'right' 
    10291049                    ), 
     
    10341054                bws_add_tooltip_in_admin( $tooltip_args ); 
    10351055            } 
    1036         }  
     1056        } 
    10371057    } 
    10381058} 
     
    10401060if ( ! function_exists ( 'bws_plugins_include_codemirror' ) ) { 
    10411061    function bws_plugins_include_codemirror() { 
    1042         wp_enqueue_style( 'codemirror.css', plugins_url( 'css/codemirror.css', __FILE__ ) ); 
    1043         wp_enqueue_script( 'codemirror.js', plugins_url( 'js/codemirror.js', __FILE__ ), array( 'jquery' ) ); 
     1062        wp_enqueue_style( 'codemirror.css', bws_menu_url( 'css/codemirror.css' ) ); 
     1063        wp_enqueue_script( 'codemirror.js', bws_menu_url( 'js/codemirror.js' ), array( 'jquery' ) ); 
    10441064    } 
    10451065} 
     
    10631083                return; 
    10641084            /* Default arguments */ 
    1065             $tooltip_args_default = array(  
     1085            $tooltip_args_default = array( 
    10661086                'tooltip_id'    => false, 
    1067                 'css_selector'  => false,  
     1087                'css_selector'  => false, 
    10681088                'actions'       => array( 
    10691089                    'click'     => true, 
    10701090                    'onload'    => false, 
    1071                 ),  
     1091                ), 
    10721092                'buttons'       => array( 
    10731093                    'close'     => array( 
     
    10771097                ), 
    10781098                'position' => array( 
    1079                     'edge'      => 'top',  
     1099                    'edge'      => 'top', 
    10801100                    'align'     => 'center', 
    1081                     'pos-left'  => 0,  
    1082                     'pos-top'   => 0,  
    1083                     'zindex'    => 10000  
     1101                    'pos-left'  => 0, 
     1102                    'pos-top'   => 0, 
     1103                    'zindex'    => 10000 
    10841104                ), 
    10851105                'set_timeout' => 0 
     
    11471167            global $bstwbsftwppdtplgns_tooltip_script_add; 
    11481168            if ( ! isset( $bstwbsftwppdtplgns_tooltip_script_add ) ) { 
    1149                 echo '<script type="text/javascript" src="' . plugins_url( 'js/bws_tooltip.js', __FILE__ ) . '"></script>'; 
     1169                echo '<script type="text/javascript" src="' . bws_menu_url( 'js/bws_tooltip.js' ) . '"></script>'; 
    11501170                $bstwbsftwppdtplgns_tooltip_script_add = true; 
    11511171            } 
     
    11641184if ( ! function_exists ( 'bws_form_restore_default_settings' ) ) { 
    11651185    function bws_form_restore_default_settings( $plugin_basename, $change_permission_attr = '' ) { ?> 
    1166         <form method="post" action="">           
     1186        <form method="post" action=""> 
    11671187            <p><?php _e( 'Restore all plugin settings to defaults', 'bestwebsoft' ); ?></p> 
    1168             <p>                  
     1188            <p> 
    11691189                <input <?php echo $change_permission_attr; ?> type="submit" class="button" value="<?php _e( 'Restore settings', 'bestwebsoft' ); ?>" /> 
    11701190            </p> 
     
    11811201            <form method="post" action=""> 
    11821202                <p> 
    1183                     <button class="button" name="bws_restore_confirm"><?php _e( 'Yes, restore all settings', 'bestwebsoft' ) ?></button> 
     1203                    <button class="button button-primary" name="bws_restore_confirm"><?php _e( 'Yes, restore all settings', 'bestwebsoft' ) ?></button> 
    11841204                    <button class="button" name="bws_restore_deny"><?php _e( 'No, go back to the settings page', 'bestwebsoft' ) ?></button> 
    11851205                    <?php wp_nonce_field( $plugin_basename, 'bws_settings_nonce_name' ); ?> 
     
    12051225if ( ! function_exists( 'bws_add_buttons' ) ){ 
    12061226    function bws_add_buttons( $plugin_array ) { 
    1207         $plugin_array['add_bws_shortcode'] = plugins_url( 'js/shortcode-button.js', __FILE__ ); 
     1227        $plugin_array['add_bws_shortcode'] = bws_menu_url( 'js/shortcode-button.js' ); 
    12081228        return $plugin_array; 
    12091229    } 
     
    12191239/* Generate inline content for the popup window when the "bws shortcode" button is clicked */ 
    12201240if ( ! function_exists( 'bws_shortcode_media_button_popup' ) ) { 
    1221     function bws_shortcode_media_button_popup() {  
     1241    function bws_shortcode_media_button_popup() { 
    12221242        global $bws_shortcode_list, $wp_version; 
    12231243        if ( $wp_version < '3.3' ) 
     
    12561276            <script type="text/javascript"> 
    12571277                (function($){ 
    1258                     $( '.bws_shortcode_insert' ).on( 'click',function() {  
     1278                    $( '.bws_shortcode_insert' ).on( 'click',function() { 
    12591279                        var shortcode = $( '#TB_ajaxContent #bws_shortcode_display' ).text(); 
    12601280                        if ( '' != shortcode ) { 
     
    12641284                            } else { 
    12651285                                tinyMCE.execCommand( 'mceInsertContent', false, shortcode ); 
    1266                             }                
     1286                            } 
    12671287                        } 
    12681288                        /* close the thickbox after adding shortcode to editor */ 
     
    12711291                })(jQuery); 
    12721292            </script> 
    1273         <?php }  
     1293        <?php } 
    12741294    } 
    12751295} 
     
    12821302        $content = '<p><a href="' . $url . '" target="_blank">' . __( 'Visit Help Center', 'bestwebsoft' ) . '</a></p>'; 
    12831303 
    1284         $screen->add_help_tab(  
     1304        $screen->add_help_tab( 
    12851305            array( 
    12861306                'id'      => $args['id'] . '_help_tab', 
     
    13221342                if ( $f = fopen( $index_file, 'w+' ) ) 
    13231343                    fclose( $f ); 
    1324             }                
     1344            } 
    13251345        } 
    13261346 
     
    13281348        $real_css_file = $folder . '/' . $css_file; 
    13291349 
    1330         $php_file = 'bws-custom-code.php';   
    1331         $real_php_file = $folder . '/' . $php_file;  
     1350        $php_file = 'bws-custom-code.php'; 
     1351        $real_php_file = $folder . '/' . $php_file; 
    13321352 
    13331353        $is_multisite = is_multisite(); 
     
    13381358 
    13391359            /* CSS */ 
    1340             $newcontent_css = wp_unslash( $_POST['bws_newcontent_css'] );    
     1360            $newcontent_css = wp_unslash( $_POST['bws_newcontent_css'] ); 
    13411361            if ( ! empty( $newcontent_css ) && isset( $_REQUEST['bws_custom_css_active'] ) ) { 
    13421362                if ( $is_multisite ) 
     
    13891409            } else { 
    13901410                $error .= __( 'Not enough permissions to create the file', 'bestwebsoft' ) . ' ' . $index_file . '. '; 
    1391             }                
     1411            } 
    13921412 
    13931413            if ( ! empty( $error ) ) 
     
    14211441        if ( ! empty( $message ) ) { ?> 
    14221442            <div id="message" class="below-h2 updated notice is-dismissible"><p><?php echo $message; ?></p></div> 
    1423         <?php } ?>       
     1443        <?php } ?> 
    14241444        <form action="" method="post"> 
    1425             <?php foreach ( array( 'css', 'php' ) as $extension ) { ?>               
     1445            <?php foreach ( array( 'css', 'php' ) as $extension ) { ?> 
    14261446                <p> 
    14271447                    <?php if ( 'css' == $extension ) 
     
    14411461                <p class="description"> 
    14421462                    <a href="<?php echo ( 'css' == $extension ) ? 'https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_started' : 'http://php.net/' ?>" target="_blank"> 
    1443                         <?php printf( __( 'Learn more about %s', 'bestwebsoft' ), strtoupper( $extension ) ); ?>                         
     1463                        <?php printf( __( 'Learn more about %s', 'bestwebsoft' ), strtoupper( $extension ) ); ?> 
    14441464                    </a> 
    1445                 </p>                 
     1465                </p> 
    14461466            <?php } 
    14471467            if ( ( ! file_exists( $real_css_file ) || is_writeable( $real_css_file ) ) && ( ! file_exists( $real_php_file ) || is_writeable( $real_php_file ) ) ) { ?> 
    14481468                <p class="submit"> 
    1449                     <input type="hidden" name="bws_update_custom_code" value="submit" />                     
    1450                     <?php submit_button( __( 'Save Changes', 'bestwebsoft' ), 'primary', 'submit', false );  
     1469                    <input type="hidden" name="bws_update_custom_code" value="submit" /> 
     1470                    <?php submit_button( __( 'Save Changes', 'bestwebsoft' ), 'primary', 'submit', false ); 
    14511471                    wp_nonce_field( 'bws_update_' . $css_file ); ?> 
    14521472                </p> 
     
    14571477            <?php } ?> 
    14581478        </form> 
    1459     <?php }  
     1479    <?php } 
    14601480} 
    14611481 
     
    14971517 
    14981518            if ( ! $is_multisite && ! empty( $bstwbsftwppdtplgns_options['custom_code']['bws-custom-code.php'] ) ) { 
    1499                  
     1519 
    15001520                if ( file_exists( $bstwbsftwppdtplgns_options['custom_code']['bws-custom-code.php'] ) ) { 
    15011521                    if ( ! defined( 'BWS_GLOBAL' ) ) 
     
    15421562        if ( empty( $bstwbsftwppdtplgns_options['bws_menu']['version'] ) ) { 
    15431563            /* remove options */ 
    1544             if ( $is_multisite )  
     1564            if ( $is_multisite ) 
    15451565                delete_site_option( 'bstwbsftwppdtplgns_options' ); 
    15461566            else 
     
    15711591                } 
    15721592            } 
    1573         }    
     1593        } 
     1594    } 
     1595} 
     1596 
     1597/** 
     1598 * Function to getting url to current BWS_Menu. 
     1599 * 
     1600 * @since 1.9.7 
     1601 */ 
     1602if ( ! function_exists ( 'bws_menu_url' ) ) { 
     1603    function bws_menu_url( $path = '' ) { 
     1604        $bws_menu_current_dir = str_replace( '\\', '/', dirname( __FILE__ ) ); 
     1605        $bws_menu_abspath = str_replace( '\\', '/', ABSPATH ); 
     1606        $bws_menu_current_url = site_url( str_replace( $bws_menu_abspath, '', $bws_menu_current_dir ) ); 
     1607 
     1608        return sprintf( '%s/%s', $bws_menu_current_url, $path ); 
    15741609    } 
    15751610} 
  • custom-search-plugin/trunk/bws_menu/bws_include.php

    r1297263 r1573169  
    55 
    66if ( ! function_exists ( 'bws_include_init' ) ) { 
    7     function bws_include_init( $base ) { 
     7    function bws_include_init( $base, $bws_menu_source = 'plugins' ) { 
    88        global $bstwbsftwppdtplgns_options, $bstwbsftwppdtplgns_added_menu; 
    99        if ( ! function_exists( 'get_plugin_data' ) ) 
    1010            require_once( ABSPATH . 'wp-admin/includes/plugin.php' ); 
    1111 
    12         $bws_menu_info = get_plugin_data( dirname( dirname( plugin_dir_path( __FILE__ ) ) ) . '/' . dirname( $base ) . '/bws_menu/bws_menu.php' ); 
     12        $wp_content_dir = defined( 'WP_CONTENT_DIR' ) ? WP_CONTENT_DIR : ABSPATH . 'wp-content'; 
     13        $wp_plugins_dir = defined( 'WP_PLUGIN_DIR' ) ? WP_PLUGIN_DIR : $wp_content_dir . '/plugins'; 
     14 
     15        if ( $bws_menu_source == 'plugins' ) { 
     16            $bws_menu_dir = $wp_plugins_dir . '/' .  dirname( $base ) . '/bws_menu/bws_menu.php'; 
     17        } else { 
     18            $bws_menu_dir = $wp_content_dir . '/themes/' . $base . '/inc/bws_menu/bws_menu.php'; 
     19        } 
     20 
     21        $bws_menu_info = get_plugin_data( $bws_menu_dir ); 
    1322        $bws_menu_version = $bws_menu_info["Version"]; 
    1423 
     
    4352            require_once( dirname( __FILE__ ) . '/bws_functions.php' ); 
    4453        } else if ( ! isset( $bstwbsftwppdtplgns_added_menu ) ) { 
     54 
    4555            $all_plugins = get_plugins(); 
     56            $all_themes = wp_get_themes(); 
     57 
    4658            foreach ( $bstwbsftwppdtplgns_options['bws_menu']['version'] as $key => $value ) { 
    47                 if ( array_key_exists( $key, $all_plugins ) ) { 
    48                     if ( $bws_menu_version < $value && is_plugin_active( $base ) ) { 
    49                         if ( ! isset( $plugin_with_newer_menu ) ) 
    50                             $plugin_with_newer_menu = $key; 
    51                         elseif ( $bstwbsftwppdtplgns_options['bws_menu']['version'][ $plugin_with_newer_menu ] < $bstwbsftwppdtplgns_options['bws_menu']['version'][ $key ] ) 
    52                             $plugin_with_newer_menu = $key; 
     59                if ( array_key_exists( $key, $all_plugins ) || array_key_exists( $key, $all_themes ) ) { 
     60                    if ( $bws_menu_version < $value && ( is_plugin_active( $key ) || preg_match( '|' . $key . '$|', get_template_directory() ) ) ) { 
     61                        if ( ! isset( $product_with_newer_menu ) ) 
     62                            $product_with_newer_menu = $key; 
     63                        elseif ( $bstwbsftwppdtplgns_options['bws_menu']['version'][ $product_with_newer_menu ] < $bstwbsftwppdtplgns_options['bws_menu']['version'][ $key ] ) 
     64                            $product_with_newer_menu = $key; 
    5365                    } 
    5466                } else { 
     
    6072                } 
    6173            } 
    62             if ( ! isset( $plugin_with_newer_menu ) ) 
    63                 $plugin_with_newer_menu = $base; 
    64             $plugin_with_newer_menu = explode( '/', $plugin_with_newer_menu ); 
    65             $wp_content_dir = defined( 'WP_CONTENT_DIR' ) ? basename( WP_CONTENT_DIR ) : 'wp-content'; 
    6674 
    67             if ( file_exists( ABSPATH . $wp_content_dir . '/plugins/' . $plugin_with_newer_menu[0] . '/bws_menu/bws_menu.php' ) ) { 
    68                 require_once( ABSPATH . $wp_content_dir . '/plugins/' . $plugin_with_newer_menu[0] . '/bws_menu/bws_menu.php' ); 
     75            if ( ! isset( $product_with_newer_menu ) ) 
     76                $product_with_newer_menu = $base; 
     77 
     78            $folder_with_newer_menu = explode( '/', $product_with_newer_menu ); 
     79 
     80            if ( array_key_exists( $product_with_newer_menu, $all_plugins ) ) { 
     81                $bws_menu_source = 'plugins'; 
     82                $bws_menu_new_dir = $wp_plugins_dir . '/' . $folder_with_newer_menu[0]; 
     83            } else if ( array_key_exists( $product_with_newer_menu, $all_themes ) ) { 
     84                $bws_menu_source = 'themes'; 
     85                $bws_menu_new_dir = $wp_content_dir . '/themes/' . $folder_with_newer_menu[0] . '/inc'; 
     86            } else { 
     87                $bws_menu_new_dir = ''; 
     88            } 
     89 
     90            if ( file_exists( $bws_menu_new_dir . '/bws_menu/bws_functions.php' ) ) { 
     91                require_once( $bws_menu_new_dir . '/bws_menu/bws_functions.php' ); 
     92                require_once( $bws_menu_new_dir . '/bws_menu/bws_menu.php' ); 
    6993            } else { 
    7094                require_once( dirname( __FILE__ ) . '/bws_menu.php' ); 
    71             } 
    72  
    73             if ( file_exists( ABSPATH . $wp_content_dir . '/plugins/' . $plugin_with_newer_menu[0] . '/bws_menu/bws_functions.php' ) ) { 
    74                 require_once( ABSPATH . $wp_content_dir . '/plugins/' . $plugin_with_newer_menu[0] . '/bws_menu/bws_functions.php' ); 
    75             } else { 
    7695                require_once( dirname( __FILE__ ) . '/bws_functions.php' ); 
    7796            } 
    7897 
    7998            $bstwbsftwppdtplgns_added_menu = true; 
    80         }        
     99        } 
    81100    } 
    82101} 
  • custom-search-plugin/trunk/bws_menu/bws_menu.php

    r1470528 r1573169  
    22/* 
    33* Function for displaying BestWebSoft menu 
    4 * Version: 1.9.2 
     4* Version: 1.9.7 
    55*/ 
    66 
     
    1111    function bws_add_menu_render() { 
    1212        global $wpdb, $wp_version, $bws_plugin_info, $bstwbsftwppdtplgns_options; 
    13         $error = $message = $bwsmn_form_email = '';      
     13        $error = $message = $bwsmn_form_email = ''; 
    1414 
    1515        if ( 'bws_panel' == $_GET['page'] ) { 
     
    1919 
    2020            /* get $bws_plugins */ 
    21             require_once( dirname( __FILE__ ) . '/product_list.php' );           
     21            require( dirname( __FILE__ ) . '/product_list.php' ); 
    2222 
    2323            $all_plugins = get_plugins(); 
    24             $active_plugins = get_option( 'active_plugins' );    
     24            $active_plugins = get_option( 'active_plugins' ); 
    2525            $sitewide_active_plugins = ( function_exists( 'is_multisite' ) && is_multisite() ) ? get_site_option( 'active_sitewide_plugins' ) : array(); 
    2626            $update_availible_all = get_site_transient( 'update_plugins' ); 
     
    3030            if ( ( isset( $_GET['sub'] ) && 'installed' == $_GET['sub'] ) || ! isset( $_GET['sub'] ) ) { 
    3131                $bws_plugins_update_availible = $bws_plugins_expired = array(); 
    32                 foreach ( $bws_plugins as $key_plugin => $value_plugin ) {   
     32                foreach ( $bws_plugins as $key_plugin => $value_plugin ) { 
    3333 
    3434                    foreach ( $value_plugin['category'] as $category_key ) { 
     
    3838                    $is_installed = array_key_exists( $key_plugin, $all_plugins ); 
    3939                    $is_pro_installed = false; 
    40                     if ( isset( $value_plugin['pro_version'] ) ) {                   
     40                    if ( isset( $value_plugin['pro_version'] ) ) { 
    4141                        $is_pro_installed = array_key_exists( $value_plugin['pro_version'], $all_plugins ); 
    4242                    } 
    4343                    /* check update_availible */ 
    44                     if ( $is_pro_installed && array_key_exists( $value_plugin['pro_version'], $update_availible_all->response ) ) {                  
     44                    if ( $is_pro_installed && array_key_exists( $value_plugin['pro_version'], $update_availible_all->response ) ) { 
    4545                        unset( $bws_plugins[ $key_plugin ] ); 
    4646                        $value_plugin['update_availible'] = $value_plugin['pro_version']; 
    47                         $bws_plugins_update_availible[ $key_plugin ] = $value_plugin;                    
     47                        $bws_plugins_update_availible[ $key_plugin ] = $value_plugin; 
    4848                    } else if ( $is_installed && array_key_exists( $key_plugin, $update_availible_all->response ) ) { 
    4949                        unset( $bws_plugins[ $key_plugin ] ); 
     
    6161                $bws_plugins = $bws_plugins_update_availible + $bws_plugins_expired + $bws_plugins; 
    6262            } else { 
    63                 foreach ( $bws_plugins as $key_plugin => $value_plugin ) {   
     63                foreach ( $bws_plugins as $key_plugin => $value_plugin ) { 
    6464                    foreach ( $value_plugin['category'] as $category_key ) { 
    6565                        $bws_plugins_category[ $category_key ]['count'] = isset( $bws_plugins_category[ $category_key ]['count'] ) ? $bws_plugins_category[ $category_key ]['count'] + 1 : 1; 
     
    6868            } 
    6969 
    70             /*** membership ***/             
     70            /*** membership ***/ 
    7171            $bws_license_plugin = 'bws_get_list_for_membership'; 
    7272            $bws_license_key = isset( $bstwbsftwppdtplgns_options[ $bws_license_plugin ] ) ? $bstwbsftwppdtplgns_options[ $bws_license_plugin ] : ''; 
     
    7474 
    7575            if ( isset( $_POST['bws_license_key'] ) ) 
    76                 $bws_license_key = stripslashes( esc_html( trim( $_POST['bws_license_key'] ) ) );            
     76                $bws_license_key = stripslashes( esc_html( trim( $_POST['bws_license_key'] ) ) ); 
    7777 
    7878            if ( isset( $_SESSION['bws_membership_time_check'] ) && isset( $_SESSION['bws_membership_list'] ) && $_SESSION['bws_membership_time_check'] < strtotime( '+12 hours' ) ) { 
     
    8383            if ( ( $update_membership_list && ! empty( $bws_license_key ) ) || ( isset( $_POST['bws_license_submit'] ) && check_admin_referer( plugin_basename(__FILE__), 'bws_license_nonce_name' ) ) ) { 
    8484 
    85                 if ( '' != $bws_license_key ) {  
     85                if ( '' != $bws_license_key ) { 
    8686                    if ( strlen( $bws_license_key ) != 18 ) { 
    8787                        $error = __( 'Wrong license key', 'bestwebsoft' ); 
    8888                    } else { 
    89                          
     89 
    9090                        if ( isset( $bstwbsftwppdtplgns_options['go_pro'][ $bws_license_plugin ]['count'] ) && $bstwbsftwppdtplgns_options['go_pro'][ $bws_license_plugin ]['time'] > ( time() - (24 * 60 * 60) ) ) { 
    9191                            $bstwbsftwppdtplgns_options['go_pro'][ $bws_license_plugin ]['count'] = $bstwbsftwppdtplgns_options['go_pro'][ $bws_license_plugin ]['count'] + 1; 
     
    112112                                foreach ( $response as $key => $value ) { 
    113113                                    if ( "wrong_license_key" == $value->package ) { 
    114                                         $error = __( "Wrong license key", 'bestwebsoft' );  
     114                                        $error = __( "Wrong license key", 'bestwebsoft' ); 
    115115                                    } elseif ( "wrong_domain" == $value->package ) { 
    116116                                        $error = __( 'This license key is bind to another website. Change it via personal Client Area.', 'bestwebsoft' ) . '<a target="_blank" href="http://bestwebsoft.com/wp-admin/admin.php?page=client-area">' . __( 'Log in', 'bestwebsoft' ) . '</a>'; 
     
    124124                                        $plugins_array = $_SESSION['bws_membership_list'] = $value->package; 
    125125                                        $_SESSION['bws_membership_time_check'] = strtotime( 'now' ); 
    126                                              
     126 
    127127                                        if ( $bws_license_key == $bstwbsftwppdtplgns_options[ $bws_license_plugin ] ) { 
    128128                                            $message = __( 'The license key is valid.', 'bestwebsoft' ); 
     
    131131                                        } else { 
    132132                                            $message = __( 'Congratulations! Pro Membership license is successfully activated.', 'bestwebsoft' ); 
    133                                         }                                            
    134  
    135                                         $bstwbsftwppdtplgns_options[ $bws_license_plugin ] = $bws_license_key;               
     133                                        } 
     134 
     135                                        $bstwbsftwppdtplgns_options[ $bws_license_plugin ] = $bws_license_key; 
    136136                                    } 
    137137                                } 
    138138                            } else { 
    139                                 $error = __( "Something went wrong. Try again later or upload the plugin manually. We are sorry for inconvenience.", 'bestwebsoft' );  
     139                                $error = __( "Something went wrong. Try again later or upload the plugin manually. We are sorry for inconvenience.", 'bestwebsoft' ); 
    140140                            } 
    141141                        } 
    142                          
     142 
    143143                        if ( is_multisite() ) 
    144144                            update_site_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options ); 
     
    149149                    $error = __( "Please enter your license key.", 'bestwebsoft' ); 
    150150                } 
    151             }    
     151            } 
    152152        } 
    153153 
     
    218218                    $system_info['inactive_plugins'][ $plugin['Name'] ] = $plugin['Version']; 
    219219            } 
    220          
     220 
    221221 
    222222            if ( ( isset( $_REQUEST['bwsmn_form_submit'] ) && check_admin_referer( plugin_basename(__FILE__), 'bwsmn_nonce_submit' ) ) ||  ( isset( $_REQUEST['bwsmn_form_submit_custom_email'] ) && check_admin_referer( plugin_basename(__FILE__), 'bwsmn_nonce_submit_custom_email' ) ) ) { 
     
    270270        } ?> 
    271271        <div class="bws-wrap"> 
    272             <div class="bws-header">                 
     272            <div class="bws-header"> 
    273273                <div class="bws-title"> 
    274274                    <a href="<?php echo self_admin_url( 'admin.php?page=bws_panel' ); ?>"> 
    275                         <img class="bws-logo" src="<?php echo plugins_url( 'images/bestwebsoft-logo-white.svg', __FILE__ ); ?>" /> 
     275                        <img class="bws-logo" src="<?php echo bws_menu_url( 'images/bestwebsoft-logo-white.svg' ); ?>" /> 
    276276                        BestWebSoft 
    277277                        <span>panel</span> 
     
    285285                <div class="bws-help-links-wrapper"> 
    286286                    <a <?php if ( 'bws_system_status' == $_GET['page'] ) echo ' class="bws-nav-tab-active"'; ?> href="<?php echo self_admin_url( 'admin.php?page=bws_system_status' ); ?>"><?php _e( 'System status', 'bestwebsoft' ); ?></a> 
    287                     <a href="<?php echo esc_url( 'http://support.bestwebsoft.com/home' ); ?>" target="_blank"><?php _e( 'Support', 'bestwebsoft' ); ?></a>  
    288                     <a href="<?php echo esc_url( 'http://bestwebsoft.com/wp-admin/admin.php?page=client-area' ); ?>" target="_blank" title="<?php _e( 'Manage purchased licenses & subscriptions', 'bestwebsoft' ); ?>"><?php _e( 'Client Area', 'bestwebsoft' ); ?></a>             
    289                 </div>               
     287                    <a href="<?php echo esc_url( 'http://support.bestwebsoft.com/home' ); ?>" target="_blank"><?php _e( 'Support', 'bestwebsoft' ); ?></a> 
     288                    <a href="<?php echo esc_url( 'http://bestwebsoft.com/wp-admin/admin.php?page=client-area' ); ?>" target="_blank" title="<?php _e( 'Manage purchased licenses & subscriptions', 'bestwebsoft' ); ?>"><?php _e( 'Client Area', 'bestwebsoft' ); ?></a> 
     289                </div> 
    290290                <div class="clear"></div> 
    291291            </div> 
     
    293293                <div class="bws-membership-wrap"> 
    294294                    <div class="bws-membership-backround"></div> 
    295                     <div class="bws-membership">                         
    296                         <div class="bws-membership-title"><?php printf( __( 'Get Access to %s+ Premium Plugins', 'bestwebsoft' ), '30' ); ?></div>   
     295                    <div class="bws-membership"> 
     296                        <div class="bws-membership-title"><?php printf( __( 'Get Access to %s+ Premium Plugins', 'bestwebsoft' ), '30' ); ?></div> 
    297297                        <form class="bws-membership-form" method="post" action=""> 
    298                             <span class="bws-membership-link"><a target="_blank" href="http://bestwebsoft.com/membership/"><?php _e( 'Subscribe to Pro Membership', 'bestwebsoft' ); ?></a> <?php _e( 'or', 'bestwebsoft' ); ?></span>           
     298                            <span class="bws-membership-link"><a target="_blank" href="http://bestwebsoft.com/membership/"><?php _e( 'Subscribe to Pro Membership', 'bestwebsoft' ); ?></a> <?php _e( 'or', 'bestwebsoft' ); ?></span> 
    299299                            <?php if ( isset( $bstwbsftwppdtplgns_options['go_pro'][ $bws_license_plugin ]['count'] ) && 
    300300                                '5' < $bstwbsftwppdtplgns_options['go_pro'][ $bws_license_plugin ]['count'] && 
     
    304304                                    <div class="bws_error"><?php _e( "Unfortunately, you have exceeded the number of available tries per day.", 'bestwebsoft' ); ?></div> 
    305305                                </div> 
    306                                 <input disabled="disabled" type="submit" class="bws-button" value="<?php _e( 'Check license key', 'bestwebsoft' ); ?>" />                                                            
     306                                <input disabled="disabled" type="submit" class="bws-button" value="<?php _e( 'Check license key', 'bestwebsoft' ); ?>" /> 
    307307                            <?php } else { ?> 
    308                                 <div class="bws_form_input_wrap">                            
     308                                <div class="bws_form_input_wrap"> 
    309309                                    <input <?php if ( "" != $error ) echo "class=\"bws_input_error\""; ?> type="text" placeholder="<?php _e( 'Enter your license key', 'bestwebsoft' ); ?>" maxlength="100" name="bws_license_key" value="<?php echo $bws_license_key; ?>" /> 
    310310                                    <div class="bws_error" <?php if ( "" == $error ) echo "style=\"display:none\""; ?>><?php echo $error; ?></div> 
     
    316316                                <?php } else { ?> 
    317317                                    <input type="submit" class="bws-button" value="<?php _e( 'Check license key', 'bestwebsoft' ); ?>" /> 
    318                                 <?php } ?>                           
    319                                 <?php wp_nonce_field( plugin_basename(__FILE__), 'bws_license_nonce_name' ); ?>                              
    320                             <?php } ?>                           
     318                                <?php } ?> 
     319                                <?php wp_nonce_field( plugin_basename(__FILE__), 'bws_license_nonce_name' ); ?> 
     320                            <?php } ?> 
    321321                        </form> 
    322                         <div class="clear"></div>                
     322                        <div class="clear"></div> 
    323323                    </div> 
    324                 </div>               
     324                </div> 
    325325            <?php } ?> 
    326             <div class="bws-wrap-content wrap">                              
     326            <div class="bws-wrap-content wrap"> 
    327327                <?php if ( 'bws_panel' == $_GET['page'] ) { ?> 
    328328                    <div class="updated notice is-dismissible inline" <?php if ( '' == $message || '' != $error ) echo "style=\"display:none\""; ?>><p><?php echo $message; ?></p></div> 
     
    351351                        $url = $plugins_array[ $bws_license_plugin ]['link'] . '&download_from=5'; 
    352352 
    353                         echo '<p>' . __( "Downloading install package from", 'bestwebsoft' ) . ' ' . $url . '</p>';  
     353                        echo '<p>' . __( "Downloading install package from", 'bestwebsoft' ) . ' ' . $url . '</p>'; 
    354354 
    355355                        $uploadDir = wp_upload_dir(); 
    356356                        $zip_name = explode( '/', $bws_license_plugin ); 
    357                          
    358                         if ( !function_exists( 'curl_init' ) ) {  
     357 
     358                        if ( !function_exists( 'curl_init' ) ) { 
    359359                            $received_content = file_get_contents( $url ); 
    360360                        } else { 
     
    365365                            $received_content = curl_exec( $ch ); 
    366366                            curl_close( $ch ); 
    367                         }        
     367                        } 
    368368 
    369369                        if ( ! $received_content ) { 
     
    411411                            if ( empty( $error ) ) 
    412412                                $error = __( "Failed to download the zip archive. Please, upload the plugin manually", 'bestwebsoft' ); 
    413                                  
     413 
    414414                            echo '<p class="error">' . $error . '</p>'; 
    415415                            echo '<p><a href="' . self_admin_url( 'admin.php?page=bws_panel' ) . '" target="_parent">' . __( 'Return to BestWebSoft Panel', 'bestwebsoft' ) . '</a></p>'; 
    416416                        } 
    417                     } else { ?>                                              
     417                    } else { ?> 
    418418                        <ul class="subsubsub"> 
    419419                            <li><a <?php if ( !isset( $_GET['sub'] ) ) echo 'class="current" '; ?>href="admin.php?page=bws_panel<?php if ( 'all' != $plugin_category ) echo '&amp;category=' . $plugin_category; ?>"><?php _e( 'All', 'bestwebsoft' ); ?></a></li> | 
     
    422422                        </ul> 
    423423                        <div class="clear"></div> 
    424                         <div class="bws-filter-top">                             
     424                        <div class="bws-filter-top"> 
    425425                            <h2> 
    426426                                <span class="bws-toggle-indicator"></span> 
     
    434434                                        <a <?php if ( 'all' == $plugin_category ) echo ' class="bws-active"'; ?> href="<?php echo self_admin_url( 'admin.php?page=bws_panel' . $sub_in_url ); ?>"><?php _e( 'All', 'bestwebsoft' ); ?> 
    435435                                            <span>(<?php echo count( $bws_plugins ); ?>)</span> 
    436                                         </a>                                 
     436                                        </a> 
    437437                                    </li> 
    438438                                    <?php foreach ( $bws_plugins_category as $category_key => $category_value ) { ?> 
     
    440440                                            <a <?php if ( $category_key == $plugin_category ) echo ' class="bws-active"'; ?> href="<?php echo esc_url( self_admin_url( 'admin.php?page=bws_panel' . $sub_in_url . '&amp;category=' . $category_key ) ); ?>"><?php echo $category_value['name']; ?> 
    441441                                                <span>(<?php echo $category_value['count']; ?>)</span> 
    442                                             </a>                                     
     442                                            </a> 
    443443                                        </li> 
    444444                                    <?php } ?> 
     
    448448                        <div class="bws-products"> 
    449449                            <?php $nothing_found = true; 
    450                             foreach ( $bws_plugins as $key_plugin => $value_plugin ) {                   
    451  
    452                                 if ( 'all' != $plugin_category && isset( $bws_plugins_category[ $plugin_category ] ) && ! in_array( $plugin_category, $value_plugin['category'] ) )  
     450                            foreach ( $bws_plugins as $key_plugin => $value_plugin ) { 
     451 
     452                                if ( 'all' != $plugin_category && isset( $bws_plugins_category[ $plugin_category ] ) && ! in_array( $plugin_category, $value_plugin['category'] ) ) 
    453453                                    continue; 
    454454 
    455455                                $key_plugin_explode = explode( '/', $key_plugin ); 
    456456 
    457                                 $icon = isset( $value_plugin['icon'] ) ? $value_plugin['icon'] : '//ps.w.org/' . $key_plugin_explode[0] . '/assets/icon-128x128.png';                        
     457                                $icon = isset( $value_plugin['icon'] ) ? $value_plugin['icon'] : '//ps.w.org/' . $key_plugin_explode[0] . '/assets/icon-128x128.png'; 
    458458                                $is_pro_isset = isset( $value_plugin['pro_version'] ); 
    459459                                $is_installed = array_key_exists( $key_plugin, $all_plugins ); 
     
    468468                                if ( ( isset( $_GET['sub'] ) && 'installed' == $_GET['sub'] && ! $is_pro_installed && ! $is_installed ) || 
    469469                                    ( isset( $_GET['sub'] ) && 'not_installed' == $_GET['sub'] && ( $is_pro_installed || $is_installed ) ) ) 
    470                                     continue;  
     470                                    continue; 
    471471 
    472472                                $link_attr = isset( $value_plugin['install_url'] ) ? 'href="' . $value_plugin['install_url'] . '" target="_blank"' : 'href="' . esc_url( self_admin_url( 'plugin-install.php?tab=plugin-information&plugin=' . $key_plugin_explode[0] . '&from=import&TB_iframe=true&width=600&height=550' ) ) . '" class="thickbox open-plugin-details-modal"'; 
     
    480480                                        <div class="bws_product_title"><a <?php echo $link_attr; ?>><?php echo $value_plugin['name']; ?></a></div> 
    481481                                        <div class="bws-version"> 
    482                                             <?php  
     482                                            <?php 
    483483                                            if ( $is_pro_installed ) { 
    484484                                                echo '<span'; 
     
    490490                                                if ( ! empty( $value_plugin['expired'] ) || ! empty( $value_plugin['update_availible'] ) ) 
    491491                                                    echo ' class="bws-update-available"'; 
    492                                                 echo '>v ' . $all_plugins[ $key_plugin ]['Version'] . '</span>';     
     492                                                echo '>v ' . $all_plugins[ $key_plugin ]['Version'] . '</span>'; 
    493493                                            } else { 
    494                                                 echo '<span>' . __( 'Not installed', 'bestwebsoft' ) . '</span>';                                                
     494                                                echo '<span>' . __( 'Not installed', 'bestwebsoft' ) . '</span>'; 
    495495                                            } 
    496496 
     
    503503                                        </div> 
    504504                                        <div class="bws_product_description"> 
    505                                             <?php echo ( strlen( $value_plugin['description'] ) > 100 ) ? substr( $value_plugin['description'], 0, 100 ) . '...' : $value_plugin['description']; ?>                                          
     505                                            <?php echo ( strlen( $value_plugin['description'] ) > 100 ) ? substr( $value_plugin['description'], 0, 100 ) . '...' : $value_plugin['description']; ?> 
    506506                                        </div> 
    507507                                        <div class="bws_product_links"> 
     
    529529                                                    <a class="bws_settings" href="<?php echo $bws_plugins[ $key_plugin ]["settings"]; ?>"><?php _e( 'Settings', 'bestwebsoft' ); ?></a> 
    530530                                                <?php } 
    531                                             } else {  
     531                                            } else { 
    532532                                                if ( $is_pro_installed ) { ?> 
    533533                                                    <a class="button button-secondary" href="<?php echo wp_nonce_url( 'admin.php?page=bws_panel&amp;bws_activate_plugin=' . $value_plugin['pro_version'], 'bws_activate_plugin' . $value_plugin['pro_version'] ); ?>" title="<?php _e( 'Activate this plugin', 'bestwebsoft' ); ?>"><?php _e( 'Activate', 'bestwebsoft' ); ?></a> 
     
    541541                                                <?php } elseif ( $is_installed ) { ?> 
    542542                                                    <a class="button button-secondary" href="<?php echo wp_nonce_url( 'admin.php?page=bws_panel&amp;bws_activate_plugin=' . $key_plugin, 'bws_activate_plugin' . $key_plugin ); ?>" title="<?php _e( 'Activate this plugin', 'bestwebsoft' ); ?>"><?php _e( 'Activate', 'bestwebsoft' ); ?></a> 
    543                                                 <?php } else {  
    544                                                     $install_url = isset( $value_plugin['install_url'] ) ? $value_plugin['install_url'] : esc_url( self_admin_url( 'plugin-install.php?tab=search&type=term&s=' . str_replace( ' ', '+', $value_plugin['name'] ) . '+BestWebSoft&plugin-search-input=Search+Plugins' ) ); ?> 
     543                                                <?php } else { 
     544                                                    $install_url = isset( $value_plugin['install_url'] ) ? $value_plugin['install_url'] : esc_url( self_admin_url( 'plugin-install.php?tab=search&type=term&s=' . str_replace( ' ', '+', str_replace( '-', '', $value_plugin['name'] ) ) . '+BestWebSoft&plugin-search-input=Search+Plugins' ) ); ?> 
    545545                                                    <a class="button button-secondary" href="<?php echo $install_url; ?>" title="<?php _e( 'Install this plugin', 'bestwebsoft' ); ?>" target="_blank"><?php _e( 'Install Now', 'bestwebsoft' ); ?></a> 
    546546                                                <?php } 
     
    549549                                    </div> 
    550550                                    <div class="clear"></div> 
    551                                 </div>                               
     551                                </div> 
    552552                            <?php } 
    553553                            if ( $nothing_found ) { ?> 
     
    563563                                        <a <?php if ( 'all' == $plugin_category ) echo ' class="bws-active"'; ?> href="<?php echo self_admin_url( 'admin.php?page=bws_panel' . $sub_in_url ); ?>"><?php _e( 'All', 'bestwebsoft' ); ?> 
    564564                                            <span>(<?php echo count( $bws_plugins ); ?>)</span> 
    565                                         </a>                                 
     565                                        </a> 
    566566                                    </li> 
    567567                                    <?php foreach ( $bws_plugins_category as $category_key => $category_value ) { ?> 
     
    569569                                            <a <?php if ( $category_key == $plugin_category ) echo ' class="bws-active"'; ?> href="<?php echo esc_url( self_admin_url( 'admin.php?page=bws_panel' . $sub_in_url . '&amp;category=' . $category_key ) ); ?>"><?php echo $category_value['name']; ?> 
    570570                                                <span>(<?php echo $category_value['count']; ?>)</span> 
    571                                             </a>                                     
     571                                            </a> 
    572572                                        </li> 
    573573                                    <?php } ?> 
    574574                                </ul> 
    575575                            </div> 
    576                         </div><!-- #bws-filter-wrapper -->   
     576                        </div><!-- #bws-filter-wrapper --> 
    577577                        <div class="clear"></div> 
    578578                    <?php } 
    579                 } elseif ( 'bws_themes' == $_GET['page'] ) {  
    580                     require_once( dirname( __FILE__ ) . '/product_list.php' ); ?> 
     579                } elseif ( 'bws_themes' == $_GET['page'] ) { 
     580                    require( dirname( __FILE__ ) . '/product_list.php' ); ?> 
    581581                    <h1><?php _e( 'Themes', 'bestwebsoft' ); ?></h1> 
    582582                    <div id="availablethemes" class="bws-availablethemes"> 
     
    586586                                    $installed_theme = wp_get_theme( $theme->slug ); ?> 
    587587                                    <a class="screenshot" href="<?php echo esc_url( $theme->href ); ?>"> 
    588                                         <img src="<?php echo plugins_url( "icons/themes/" , __FILE__ ) . $theme->slug . '.png'; ?>" width='150' /> 
     588                                        <img src="<?php echo bws_menu_url( "icons/themes/" ) . $theme->slug . '.png'; ?>" width='150' /> 
    589589                                    </a> 
    590590                                    <h3><?php echo $theme->name; ?></h3> 
     
    607607                                        <div class="theme" tabindex="0"> 
    608608                                            <div class="theme-screenshot"> 
    609                                                 <img src="<?php echo plugins_url( "icons/themes/" , __FILE__ ) . $theme->slug . '.png'; ?>" alt="" /> 
     609                                                <img src="<?php echo bws_menu_url( "icons/themes/" ) . $theme->slug . '.png'; ?>" alt="" /> 
    610610                                            </div> 
    611611                                            <div class="theme-author"><?php printf( __( 'By %s', 'bestwebsoft' ), 'BestWebSoft' ); ?></div> 
     
    614614                                                <a class="button button-secondary preview install-theme-preview" href="<?php echo $theme->href; ?>" target="_blank"><?php esc_html_e( 'Learn More', 'bestwebsoft' ); ?></a> 
    615615                                            </div> 
    616                                             <?php if ( $installed_theme->exists() ) {  
     616                                            <?php if ( $installed_theme->exists() ) { 
    617617                                                if ( $wp_version < '4.6' ) { ?> 
    618618                                                    <div class="theme-installed"><?php _e( 'Already Installed', 'bestwebsoft' ); ?></div> 
     
    629629                        <p><a class="bws_browse_link" href="http://bestweblayout.com/categories/themes/" target="_blank"><?php _e( 'Browse Free WordPress Themes', 'bestwebsoft' ); ?> <span class="dashicons dashicons-arrow-right-alt2"></span></a></p> 
    630630                    </div> 
    631                 <?php } elseif ( 'bws_system_status' == $_GET['page'] ) { ?>                     
     631                <?php } elseif ( 'bws_system_status' == $_GET['page'] ) { ?> 
    632632                    <h1><?php _e( 'System status', 'bestwebsoft' ); ?></h1> 
    633633                    <div class="updated fade notice is-dismissible inline" <?php if ( ! ( isset( $_REQUEST['bwsmn_form_submit'] ) || isset( $_REQUEST['bwsmn_form_submit_custom_email'] ) ) || $error != "" ) echo "style=\"display:none\""; ?>><p><strong><?php echo $message; ?></strong></p></div> 
     
    686686                            </tbody> 
    687687                        </table> 
    688                         <div class="clear"></div>                        
     688                        <div class="clear"></div> 
    689689                    </div> 
    690690                <?php } ?> 
     
    697697    function bws_get_banner_array() { 
    698698        global $bstwbsftwppdtplgns_banner_array; 
    699         $bstwbsftwppdtplgns_banner_array = array(            
     699        $bstwbsftwppdtplgns_banner_array = array( 
     700            array( 'sclbttns_hide_banner_on_plugin_page', 'social-buttons-pack/social-buttons-pack.php', '1.1.0' ), 
     701            array( 'tmsht_hide_banner_on_plugin_page', 'timesheet/timesheet.php', '0.1.3' ), 
     702            array( 'pgntn_hide_banner_on_plugin_page', 'pagination/pagination.php', '1.0.6' ), 
    700703            array( 'crrntl_hide_banner_on_plugin_page', 'car-rental/car-rental.php', '1.0.0' ), 
    701704            array( 'lnkdn_hide_banner_on_plugin_page', 'bws-linkedin/bws-linkedin.php', '1.0.1' ), 
     
    705708            array( 'mltlngg_hide_banner_on_plugin_page', 'multilanguage/multilanguage.php', '1.1.1' ), 
    706709            array( 'adsns_hide_banner_on_plugin_page', 'adsense-plugin/adsense-plugin.php', '1.36' ), 
    707             array( 'vstrsnln_hide_banner_on_plugin_page', 'visitors-online/visitors-online.php', '0.2' ),            
     710            array( 'vstrsnln_hide_banner_on_plugin_page', 'visitors-online/visitors-online.php', '0.2' ), 
    708711            array( 'cstmsrch_hide_banner_on_plugin_page', 'custom-search-plugin/custom-search-plugin.php', '1.28' ), 
    709712            array( 'prtfl_hide_banner_on_plugin_page', 'portfolio/portfolio.php', '2.33' ), 
  • custom-search-plugin/trunk/bws_menu/css/general_style.css

    r1470528 r1573169  
    1 #adminmenu #toplevel_page_bws_panel .wp-submenu li:nth-child(4) a { 
    2     border-bottom: 1px solid #444; 
    3     padding-bottom: 12px; 
    4     margin-bottom: 5px; 
     1#adminmenu #toplevel_page_bws_panel .wp-submenu li:nth-child(5) a { 
     2    border-top: 1px solid #444; 
     3    padding-top: 12px; 
     4    margin-top: 6px; 
    55} 
    66.bws_info { 
     
    4949} 
    5050/* 
    51 * styles for pro_version settings and tooltip  
     51* styles for pro_version settings and tooltip 
    5252*/ 
    5353td.bws_pro_version, 
     
    6868    overflow: hidden; 
    6969} 
    70 .bws_table_bg {  
     70.bws_table_bg { 
    7171    background: #f8e268 url("../images/pattern.png"); 
    7272    opacity: 0.11; 
     
    8181    z-index: 5; 
    8282} 
    83 .bws_pro_version_table_bloc table.bws_pro_version {  
     83.bws_pro_version_table_bloc table.bws_pro_version { 
    8484    background: transparent; 
    8585    margin: 0; 
     
    8787    width: 100%; 
    8888} 
    89 table.bws_pro_version {  
     89table.bws_pro_version { 
    9090    background: #E0E0E0; 
    9191    border: 1px solid #AAA; 
     
    104104    border-top: 1px solid #AAA; 
    105105    position: relative; 
    106     z-index: 2;  
    107     padding: 10px;  
     106    z-index: 2; 
     107    padding: 10px; 
    108108    font-size: 14px; 
    109109} 
     
    148148} 
    149149/* style for mini-block (ex. google map) */ 
    150 .bws_pro_version_bloc_mini .bws_pro_version_table_bloc table.bws_pro_version {  
     150.bws_pro_version_bloc_mini .bws_pro_version_table_bloc table.bws_pro_version { 
    151151    width: auto; 
    152152} 
     
    156156    width: 200px; 
    157157} 
    158 .bws_pro_version_bloc_mini .bws_pro_version_tooltip a {     
     158.bws_pro_version_bloc_mini .bws_pro_version_tooltip a { 
    159159    display: inline-block; 
    160160    line-height: 1.5; 
     
    175175        text-align: center; 
    176176    } 
    177     .bws_pro_version_tooltip a {    
     177    .bws_pro_version_tooltip a { 
    178178        display: inline-block; 
    179179        line-height: 1.5; 
     
    190190 
    191191/* 
    192 * styles for banner  
     192* styles for banner 
    193193*/ 
    194194.bws_banner_on_plugin_page { 
     
    214214div.bws_banner_on_plugin_page .button { 
    215215    float: right; 
    216     border: none;  
     216    border: none; 
    217217    font-size: 14px; 
    218218    margin: 18px 40px; 
     
    233233} 
    234234.bws_banner_on_plugin_page .button:hover, 
    235 .bws_banner_on_plugin_page .button:focus {     
     235.bws_banner_on_plugin_page .button:focus { 
    236236    background: #222; 
    237237    color: #FFF; 
     
    263263    font-size: 16px; 
    264264    line-height: 26px; 
    265     padding: 13px 14px 14px;  
     265    padding: 13px 14px 14px; 
    266266} 
    267267.bws_banner_to_settings_joint .icon span.dashicons-admin-plugins { 
     
    321321@media screen and (max-device-width: 768px) { 
    322322    .bws_banner_on_plugin_page .text, 
    323     .bws_banner_on_plugin_page .icon,  
     323    .bws_banner_on_plugin_page .icon, 
    324324    .bws_banner_on_plugin_page .button_div, 
    325325    .bws_banner_on_plugin_page .button { 
     
    356356    margin: 3px 5px; 
    357357    width: 28px; 
    358     display: inline-block;     
     358    display: inline-block; 
    359359} 
    360360.bws_help_box:not(.dashicons) { 
  • custom-search-plugin/trunk/bws_menu/css/style.css

    r1470528 r1573169  
    180180    color: #c5412b; 
    181181    margin-top: 1px; 
     182    max-width: 230px; 
    182183} 
    183184.bws_error a { 
  • custom-search-plugin/trunk/bws_menu/product_list.php

    r1470528 r1573169  
    1313    'social'            => array( 'name' => __( 'Social', 'bestwebsoft' ) ), 
    1414    'utilities'         => array( 'name' => __( 'Utilities', 'bestwebsoft' ) ), 
    15     'other'             => array( 'name' => __( 'Other', 'bestwebsoft' ) ),  
     15    'other'             => array( 'name' => __( 'Other', 'bestwebsoft' ) ), 
    1616); 
    1717 
     
    2121        'name'          => 'Captcha', 
    2222        'description'   => 'Protect WordPress website forms from spam entries by means of math logic.', 
    23         'link'          => 'http://bestwebsoft.com/products/captcha/?k=d678516c0990e781edfb6a6c874f0b8a&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     23        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/captcha/?k=d678516c0990e781edfb6a6c874f0b8a&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    2424        'settings'      => 'admin.php?page=captcha.php', 
    2525        'pro_version'   => 'captcha-pro/captcha_pro.php', 
    26         'purchase'      => 'http://bestwebsoft.com/products/captcha/buy/?k=ff7d65e55e5e7f98f219be9ed711094e&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     26        'purchase'      => 'http://bestwebsoft.com/products/wordpress/plugins/captcha/buy/?k=ff7d65e55e5e7f98f219be9ed711094e&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    2727        'pro_settings'  => 'admin.php?page=captcha_pro.php' 
    2828    ), 
     
    3131        'name'          => 'Car Rental', 
    3232        'description'   => 'Create your personal car rental/booking and reservation website.', 
    33         'link'          => 'http://bestwebsoft.com/products/car-rental/?k=444cac6df9a0d3a9763ab4753d24941b&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     33        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/car-rental/?k=444cac6df9a0d3a9763ab4753d24941b&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    3434        'settings'      => 'admin.php?page=car-rental-settings', 
    3535        'pro_version'   => 'car-rental-pro/car-rental-pro.php', 
    36         'purchase'      => 'http://bestwebsoft.com/products/car-rental/buy/?k=7643d4f0698252fa1159de078d22269c&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     36        'purchase'      => 'http://bestwebsoft.com/products/wordpress/plugins/car-rental/buy/?k=7643d4f0698252fa1159de078d22269c&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    3737        'pro_settings'  => 'admin.php?page=car-rental-pro-settings' 
    3838    ), 
     
    4141        'name'          => 'Contact Form', 
    4242        'description'   => 'Allow customers to reach you using secure contact form plugin any website must have.', 
    43         'link'          => 'http://bestwebsoft.com/products/contact-form/?k=012327ef413e5b527883e031d43b088b&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     43        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/contact-form/?k=012327ef413e5b527883e031d43b088b&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    4444        'settings'      => 'admin.php?page=contact_form.php', 
    4545        'pro_version'   => 'contact-form-pro/contact_form_pro.php', 
    46         'purchase'      => 'http://bestwebsoft.com/products/contact-form/buy/?k=773dc97bb3551975db0e32edca1a6d71&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     46        'purchase'      => 'http://bestwebsoft.com/products/wordpress/plugins/contact-form/buy/?k=773dc97bb3551975db0e32edca1a6d71&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    4747        'pro_settings'  => 'admin.php?page=contact_form_pro.php' 
    4848    ), 
     
    5151        'name'          => 'Contact Form Multi', 
    5252        'description'   => 'Add unlimited number of contact forms to WordPress website.', 
    53         'link'          => 'http://bestwebsoft.com/products/contact-form-multi/?k=83cdd9e72a9f4061122ad28a67293c72&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     53        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/contact-form-multi/?k=83cdd9e72a9f4061122ad28a67293c72&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    5454        'settings'      => '', 
    5555        'pro_version'   => 'contact-form-multi-pro/contact-form-multi-pro.php', 
    56         'purchase'      => 'http://bestwebsoft.com/products/contact-form-multi/buy/?k=fde3a18581c143654f060c398b07e8ac&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     56        'purchase'      => 'http://bestwebsoft.com/products/wordpress/plugins/contact-form-multi/buy/?k=fde3a18581c143654f060c398b07e8ac&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    5757        'pro_settings'  => '' 
    5858    ), 
     
    6161        'name'          => 'Contact Form to DB', 
    6262        'description'   => 'Save and manage contact form messages. Never lose important data.', 
    63         'link'          => 'http://bestwebsoft.com/products/contact-form-to-db/?k=ba3747d317c2692e4136ca096a8989d6&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     63        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/contact-form-to-db/?k=ba3747d317c2692e4136ca096a8989d6&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    6464        'settings'      => 'admin.php?page=cntctfrmtdb_settings', 
    6565        'pro_version'   => 'contact-form-to-db-pro/contact_form_to_db_pro.php', 
    66         'purchase'      => 'http://bestwebsoft.com/products/contact-form-to-db/buy/?k=6ce5f4a9006ec906e4db643669246c6a&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     66        'purchase'      => 'http://bestwebsoft.com/products/wordpress/plugins/contact-form-to-db/buy/?k=6ce5f4a9006ec906e4db643669246c6a&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    6767        'pro_settings'  => 'admin.php?page=cntctfrmtdbpr_settings' 
    6868    ), 
     
    7171        'name'          => 'Custom Admin Page', 
    7272        'description'   => 'Add unlimited custom pages to WordPress admin dashboard.', 
    73         'link'          => 'http://bestwebsoft.com/products/custom-admin-page/?k=9ac03f16c25e845e8e055a221c3e1467&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     73        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/custom-admin-page/?k=9ac03f16c25e845e8e055a221c3e1467&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    7474        'settings'      => 'admin.php?page=custom-admin-page.php' 
    7575    ), 
     
    7878        'name'          => 'Custom Fields Search', 
    7979        'description'   => 'Add custom fields to WordPress website search results.', 
    80         'link'          => 'http://bestwebsoft.com/products/custom-fields-search/?k=f3f8285bb069250c42c6ffac95ed3284&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     80        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/custom-fields-search/?k=f3f8285bb069250c42c6ffac95ed3284&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    8181        'settings'      => 'admin.php?page=custom_fields_search.php' 
    8282    ), 
     
    8585        'name'          => 'Custom Search', 
    8686        'description'   => 'Add custom post types to WordPress website search results.', 
    87         'link'          => 'http://bestwebsoft.com/products/custom-search/?k=933be8f3a8b8719d95d1079d15443e29&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     87        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/custom-search/?k=933be8f3a8b8719d95d1079d15443e29&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    8888        'settings'      => 'admin.php?page=custom_search.php', 
    8989        'pro_version'   => 'custom-search-pro/custom-search-pro.php', 
    90         'purchase'      => 'http://bestwebsoft.com/products/custom-search/buy/?k=062b652ac6ac8ba863c9f30fc21d62c6&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     90        'purchase'      => 'http://bestwebsoft.com/products/wordpress/plugins/custom-search/buy/?k=062b652ac6ac8ba863c9f30fc21d62c6&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    9191        'pro_settings'  => 'admin.php?page=custom_search_pro.php' 
    92     ),   
     92    ), 
    9393    'db-manager/db-manager.php' => array( 
    9494        'category'      => array( 'utilities' ), 
    9595        'name'          => 'DB Manager', 
    9696        'description'   => 'Manage database and file system right from your WordPress admin dashboard.', 
    97         'link'          => 'http://bestwebsoft.com/products/db-manager/?k=01ed9731780d87f85f5901064b7d76d8&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    98         'install_url'   => 'http://bestwebsoft.com/products/db-manager/download/?k=01ed9731780d87f85f5901064b7d76d8&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     97        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/db-manager/?k=01ed9731780d87f85f5901064b7d76d8&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     98        'install_url'   => 'http://bestwebsoft.com/products/wordpress/plugins/db-manager/download/?k=01ed9731780d87f85f5901064b7d76d8&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    9999        'settings'      => 'admin.php?page=db-manager.php', 
    100         'icon'          => plugins_url( 'icons/plugins/', __FILE__ ) . 'db-manager.png' 
     100        'icon'          => bws_menu_url( 'icons/plugins/' ) . 'db-manager.png' 
    101101    ), 
    102102    'donate-button/donate.php' => array( 
     
    104104        'name'          => 'Donate', 
    105105        'description'   => 'Add PayPal and 2CO donate buttons to receive charity payments.', 
    106         'link'          => 'http://bestwebsoft.com/products/donate/?k=a8b2e2a56914fb1765dd20297c26401b&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     106        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/donate/?k=a8b2e2a56914fb1765dd20297c26401b&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    107107        'settings'      => 'admin.php?page=donate.php' 
    108108    ), 
     
    111111        'name'          => 'Email Queue', 
    112112        'description'   => 'Automatically add outgoing email messages to queue instead of sending them immediately.', 
    113         'link'          => 'http://bestwebsoft.com/products/email-queue/?k=e345e1b6623f0dca119bc2d9433b130b&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     113        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/email-queue/?k=e345e1b6623f0dca119bc2d9433b130b&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    114114        'settings'      => 'admin.php?page=mlq_settings' 
    115115    ), 
     
    118118        'name'          => 'Error Log Viewer', 
    119119        'description'   => 'Get latest error log messages to diagnose website problems. Define and fix issues faster.', 
    120         'link'          => 'http://bestwebsoft.com/products/error-log-viewer/?k=da0de8bd2c7a0b2fea5df64d55a368b3&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     120        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/error-log-viewer/?k=da0de8bd2c7a0b2fea5df64d55a368b3&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    121121        'settings'      => 'admin.php?page=rrrlgvwr.php&tab=settings' 
    122122    ), 
     
    125125        'name'          => 'Facebook Button', 
    126126        'description'   => 'Add Facebook Like, Share and Profile buttons to WordPress posts, pages and widgets.', 
    127         'link'          => 'http://bestwebsoft.com/products/facebook-like-button/?k=05ec4f12327f55848335802581467d55&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     127        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/facebook-like-button/?k=05ec4f12327f55848335802581467d55&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    128128        'settings'      => 'admin.php?page=facebook-button-plugin.php', 
    129129        'pro_version'   => 'facebook-button-pro/facebook-button-pro.php', 
    130         'purchase'      => 'http://bestwebsoft.com/products/facebook-like-button/buy/?k=8da168e60a831cfb3525417c333ad275&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     130        'purchase'      => 'http://bestwebsoft.com/products/wordpress/plugins/facebook-like-button/buy/?k=8da168e60a831cfb3525417c333ad275&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    131131        'pro_settings'  => 'admin.php?page=facebook-button-pro.php' 
    132132    ), 
     
    135135        'name'          => 'Featured Posts', 
    136136        'description'   => 'Add featured posts to WordPress posts or widgets. Highlight important information.', 
    137         'link'          => 'http://bestwebsoft.com/products/featured-posts/?k=f0afb31185ba7c7d6d598528d69f6d97&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     137        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/featured-posts/?k=f0afb31185ba7c7d6d598528d69f6d97&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    138138        'settings'      => 'admin.php?page=featured-posts.php' 
    139     ),       
     139    ), 
    140140    'gallery-plugin/gallery-plugin.php' => array( 
    141141        'category'      => array( 'content-and-media', 'recommended' ), 
    142142        'name'          => 'Gallery', 
    143143        'description'   => 'Add beautiful galleries, albums & images to your Wordpress website in few clicks.', 
    144         'link'          => 'http://bestwebsoft.com/products/gallery/?k=2da21c0a64eec7ebf16337fa134c5f78&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     144        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/gallery/?k=2da21c0a64eec7ebf16337fa134c5f78&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    145145        'settings'      => 'admin.php?page=gallery-plugin.php', 
    146146        'pro_version'   => 'gallery-plugin-pro/gallery-plugin-pro.php', 
    147         'purchase'      => 'http://bestwebsoft.com/products/gallery/buy/?k=382e5ce7c96a6391f5ffa5e116b37fe0&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     147        'purchase'      => 'http://bestwebsoft.com/products/wordpress/plugins/gallery/buy/?k=382e5ce7c96a6391f5ffa5e116b37fe0&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    148148        'pro_settings'  => 'admin.php?page=gallery-plugin-pro.php' 
    149149    ), 
     
    152152        'name'          => 'Gallery Categories', 
    153153        'description'   => 'Add unlimited gallery categories. Organize images to make the navigation through content easier.', 
    154         'link'          => 'http://bestwebsoft.com/products/gallery-categories/?k=7d68c7bfec2486dc350c67fff57ad433&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     154        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/gallery-categories/?k=7d68c7bfec2486dc350c67fff57ad433&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    155155        'settings'      => '' 
    156156    ), 
     
    159159        'name'          => 'Google +1', 
    160160        'description'   => 'Add Google +1 Share, Follow, Hangout buttons and profile badge to WordPress posts, pages and widgets.', 
    161         'link'          => 'http://bestwebsoft.com/products/google-plus-one/?k=ce7a88837f0a857b3a2bb142f470853c&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     161        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/google-plus-one/?k=ce7a88837f0a857b3a2bb142f470853c&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    162162        'settings'      => 'admin.php?page=google-plus-one.php', 
    163163        'pro_version'   => 'google-one-pro/google-plus-one-pro.php', 
    164         'purchase'      => 'http://bestwebsoft.com/products/google-plus-one/buy/?k=f4b0a62d155c9df9601a0531ad5bd832&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     164        'purchase'      => 'http://bestwebsoft.com/products/wordpress/plugins/google-plus-one/buy/?k=f4b0a62d155c9df9601a0531ad5bd832&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    165165        'pro_settings'  => 'admin.php?page=google-plus-one-pro.php' 
    166166    ), 
     
    169169        'name'          => 'Google AdSense', 
    170170        'description'   => 'Add Adsense ads to pages, posts, custom posts, search results, categories, tags, pages, and widgets.', 
    171         'link'          => 'http://bestwebsoft.com/products/google-adsense/?k=60e3979921e354feb0347e88e7d7b73d&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     171        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/google-adsense/?k=60e3979921e354feb0347e88e7d7b73d&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    172172        'settings'      => 'admin.php?page=adsense-plugin.php', 
    173173        'pro_version'   => 'adsense-pro/adsense-pro.php', 
    174         'purchase'      => 'http://bestwebsoft.com/products/google-adsense/buy/?k=c23889b293d62aa1ad2c96513405f0e1&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     174        'purchase'      => 'http://bestwebsoft.com/products/wordpress/plugins/google-adsense/buy/?k=c23889b293d62aa1ad2c96513405f0e1&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    175175        'pro_settings'  => 'admin.php?page=adsense-pro.php' 
    176176    ), 
     
    179179        'name'          => 'Google Analytics', 
    180180        'description'   => 'Add Google Analytics code to WordPress website and track basic stats.', 
    181         'link'          => 'http://bestwebsoft.com/products/bws-google-analytics/?k=261c74cad753fb279cdf5a5db63fbd43&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     181        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/bws-google-analytics/?k=261c74cad753fb279cdf5a5db63fbd43&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    182182        'settings'      => 'admin.php?page=bws-google-analytics.php', 
    183183        'pro_version'   => 'bws-google-analytics-pro/bws-google-analytics-pro.php', 
    184         'purchase'      => 'http://bestwebsoft.com/products/bws-google-analytics/buy/?k=83796e84fec3f70ecfcc8894a73a6c4a&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     184        'purchase'      => 'http://bestwebsoft.com/products/wordpress/plugins/bws-google-analytics/buy/?k=83796e84fec3f70ecfcc8894a73a6c4a&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    185185        'pro_settings'  => 'admin.php?page=bws-google-analytics-pro.php' 
    186186    ), 
     
    189189        'name'          => 'Google Captcha (reCAPTCHA)', 
    190190        'description'   => 'Protect WordPress website forms from spam entries with Google Captcha (reCaptcha).', 
    191         'link'          => 'http://bestwebsoft.com/products/google-captcha/?k=7b59fbe542acf950b29f3e020d5ad735&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     191        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/google-captcha/?k=7b59fbe542acf950b29f3e020d5ad735&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    192192        'settings'      => 'admin.php?page=google-captcha.php', 
    193193        'pro_version'   => 'google-captcha-pro/google-captcha-pro.php', 
    194         'purchase'      => 'http://bestwebsoft.com/products/google-captcha/buy/?k=773d30149acf1edc32e5c0766b96c134&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     194        'purchase'      => 'http://bestwebsoft.com/products/wordpress/plugins/google-captcha/buy/?k=773d30149acf1edc32e5c0766b96c134&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    195195        'pro_settings'  => 'admin.php?page=google-captcha-pro.php' 
    196196    ), 
     
    199199        'name'          => 'Google Maps', 
    200200        'description'   => 'Add customized Google maps to WordPress posts, pages and widgets.', 
    201         'link'          => 'http://bestwebsoft.com/products/bws-google-maps/?k=d8fac412d7359ebaa4ff53b46572f9f7&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     201        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/bws-google-maps/?k=d8fac412d7359ebaa4ff53b46572f9f7&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    202202        'settings'      => 'admin.php?page=bws-google-maps.php', 
    203203        'pro_version'   => 'bws-google-maps-pro/bws-google-maps-pro.php', 
    204         'purchase'      => 'http://bestwebsoft.com/products/bws-google-maps/buy/?k=117c3f9fc17f2c83ef430a8a9dc06f56&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     204        'purchase'      => 'http://bestwebsoft.com/products/wordpress/plugins/bws-google-maps/buy/?k=117c3f9fc17f2c83ef430a8a9dc06f56&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    205205        'pro_settings'  => 'admin.php?page=bws-google-maps-pro.php' 
    206206    ), 
     
    209209        'name'          => 'Google Sitemap', 
    210210        'description'   => 'Generate and add XML sitemap to WordPress website. Help search engines index your blog.', 
    211         'link'          => 'http://bestwebsoft.com/products/google-sitemap/?k=5202b2f5ce2cf85daee5e5f79a51d806&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     211        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/google-sitemap/?k=5202b2f5ce2cf85daee5e5f79a51d806&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    212212        'settings'      => 'admin.php?page=google-sitemap-plugin.php', 
    213213        'pro_version'   => 'google-sitemap-pro/google-sitemap-pro.php', 
    214         'purchase'      => 'http://bestwebsoft.com/products/google-sitemap/buy/?k=7ea384a5cc36cb4c22741caa20dcd56d&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     214        'purchase'      => 'http://bestwebsoft.com/products/wordpress/plugins/google-sitemap/buy/?k=7ea384a5cc36cb4c22741caa20dcd56d&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    215215        'pro_settings'  => 'admin.php?page=google-sitemap-pro.php' 
    216     ),   
     216    ), 
    217217    'google-shortlink/google-shortlink.php' => array( 
    218218        'category'      => array( 'other' ), 
    219219        'name'          => 'Google Shortlink', 
    220220        'description'   => 'Replace external WordPress website links with Google shortlinks and track click stats.', 
    221         'link'          => 'http://bestwebsoft.com/products/google-shortlink/?k=afcf3eaed021bbbbeea1090e16bc22db&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     221        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/google-shortlink/?k=afcf3eaed021bbbbeea1090e16bc22db&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    222222        'settings'      => 'admin.php?page=gglshrtlnk_options' 
    223     ),   
     223    ), 
    224224    'htaccess/htaccess.php' => array( 
    225225        'category'      => array( 'security' ), 
    226226        'name'          => 'Htaccess', 
    227227        'description'   => 'Protect WordPress website – allow and deny access for certain IP addresses, hostnames, etc.', 
    228         'link'          => 'http://bestwebsoft.com/products/htaccess/?k=2b865fcd56a935d22c5c4f1bba52ed46&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     228        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/htaccess/?k=2b865fcd56a935d22c5c4f1bba52ed46&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    229229        'settings'      => 'admin.php?page=htaccess.php', 
    230230        'pro_version'   => 'htaccess-pro/htaccess-pro.php', 
    231         'purchase'      => 'http://bestwebsoft.com/products/htaccess/buy/?k=59e9209a32864be534fda77d5e591c15&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     231        'purchase'      => 'http://bestwebsoft.com/products/wordpress/plugins/htaccess/buy/?k=59e9209a32864be534fda77d5e591c15&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    232232        'pro_settings'  => 'admin.php?page=htaccess-pro.php' 
    233233    ), 
     
    236236        'name'          => 'Job Board', 
    237237        'description'   => 'Create your personal job board and listing WordPress website. Search jobs, submit CV/resumes, choose candidates.', 
    238         'link'          => 'http://bestwebsoft.com/products/job-board/?k=b0c504c9ce6edd6692e04222af3fed6f&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     238        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/job-board/?k=b0c504c9ce6edd6692e04222af3fed6f&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    239239        'settings'      => 'admin.php?page=job-board.php' 
    240240    ), 
     
    243243        'name'          => 'Latest Posts', 
    244244        'description'   => 'Add latest posts or latest posts for selected categories widgets to WordPress website.', 
    245         'link'          => 'http://bestwebsoft.com/products/latest-posts/?k=ef4e125aadadd8d219140daa184a9399&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     245        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/latest-posts/?k=ef4e125aadadd8d219140daa184a9399&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    246246        'settings'      => 'admin.php?page=latest-posts.php' 
    247247    ), 
     
    250250        'name'          => 'Limit Attempts', 
    251251        'description'   => 'Protect WordPress website against brute force attacks. Limit rate of login attempts.', 
    252         'link'          => 'http://bestwebsoft.com/products/limit-attempts/?k=b14e1697ee4d008abcd4bd34d492573a&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     252        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/limit-attempts/?k=b14e1697ee4d008abcd4bd34d492573a&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    253253        'settings'      => 'admin.php?page=limit-attempts.php', 
    254254        'pro_version'   => 'limit-attempts-pro/limit-attempts-pro.php', 
    255         'purchase'      => 'http://bestwebsoft.com/products/limit-attempts/buy/?k=9d42cdf22c7fce2c4b6b447e6a2856e0&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     255        'purchase'      => 'http://bestwebsoft.com/products/wordpress/plugins/limit-attempts/buy/?k=9d42cdf22c7fce2c4b6b447e6a2856e0&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    256256        'pro_settings'  => 'admin.php?page=limit-attempts-pro.php' 
    257257    ), 
     
    260260        'name'          => 'LinkedIn', 
    261261        'description'   => 'Add LinkedIn Share and Follow buttons to WordPress posts, pages and widgets. 5 plugins included – profile, insider, etc.', 
    262         'link'          => 'http://bestwebsoft.com/products/linkedin/?k=d63c7319622ccc5f589dd2d545c1d77c&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     262        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/linkedin/?k=d63c7319622ccc5f589dd2d545c1d77c&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    263263        'settings'      => 'admin.php?page=linkedin.php', 
    264264        'pro_version'   => 'bws-linkedin-pro/bws-linkedin-pro.php', 
    265         'purchase'      => 'http://bestwebsoft.com/products/linkedin/buy/?k=41dcc36192994408d24b103a02134567&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     265        'purchase'      => 'http://bestwebsoft.com/products/wordpress/plugins/linkedin/buy/?k=41dcc36192994408d24b103a02134567&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    266266        'pro_settings'  => 'admin.php?page=linkedin-pro.php' 
    267267    ), 
     
    270270        'name'          => 'Multilanguage', 
    271271        'description'   => 'Translate WordPress website content to other languages manually. Create multilingual pages, posts, widgets, menus, etc.', 
    272         'link'          => 'http://bestwebsoft.com/products/multilanguage/?k=7d68c7bfec2486dc350c67fff57ad433&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     272        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/multilanguage/?k=7d68c7bfec2486dc350c67fff57ad433&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    273273        'settings'      => 'admin.php?page=mltlngg_settings', 
    274274        'pro_version'   => 'multilanguage-pro/multilanguage-pro.php', 
    275         'purchase'      => 'http://bestwebsoft.com/products/multilanguage/buy/?k=2d1121cd9a5ced583fc29eefd51bdf57&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     275        'purchase'      => 'http://bestwebsoft.com/products/wordpress/plugins/multilanguage/buy/?k=2d1121cd9a5ced583fc29eefd51bdf57&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    276276        'pro_settings'  => 'admin.php?page=mltlnggpr_settings' 
    277     ),   
     277    ), 
    278278    'pagination/pagination.php' => array( 
    279279        'category'      => array( 'content-and-media' ), 
    280280        'name'          => 'Pagination', 
    281281        'description'   => 'Add customizable pagination to WordPress website. Split long content to multiple pages for better navigation.', 
    282         'link'          => 'http://bestwebsoft.com/products/pagination/?k=22adb940256f149559ba8fedcd728ac8&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    283         'settings'      => 'admin.php?page=pagination.php' 
     282        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/pagination/?k=22adb940256f149559ba8fedcd728ac8&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     283        'settings'      => 'admin.php?page=pagination.php', 
     284        'pro_version'   => 'pagination-pro/pagination-pro.php', 
     285        'purchase'      => 'http://bestwebsoft.com/products/wordpress/plugins/pagination/buy/?k=b87201d5a0505c621d0b14f4e8d4ccd6&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     286        'pro_settings'  => 'admin.php?page=pagination-pro.php' 
    284287    ), 
    285288    'pdf-print/pdf-print.php' => array( 
     
    287290        'name'          => 'PDF & Print', 
    288291        'description'   => 'Generate PDF files and print WordPress posts/pages. Customize document header/footer styles and appearance.', 
    289         'link'          => 'http://bestwebsoft.com/products/pdf-print/?k=bfefdfb522a4c0ff0141daa3f271840c&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     292        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/pdf-print/?k=bfefdfb522a4c0ff0141daa3f271840c&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    290293        'settings'      => 'admin.php?page=pdf-print.php', 
    291294        'pro_version'   => 'pdf-print-pro/pdf-print-pro.php', 
    292         'purchase'      => 'http://bestwebsoft.com/products/pdf-print/buy/?k=fd43a0e659ddc170a9060027cbfdcc3a&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     295        'purchase'      => 'http://bestwebsoft.com/products/wordpress/plugins/pdf-print/buy/?k=fd43a0e659ddc170a9060027cbfdcc3a&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    293296        'pro_settings'      => 'admin.php?page=pdf-print-pro.php' 
    294297    ), 
     
    297300        'name'          => 'Pinterest', 
    298301        'description'   => 'Add Pinterest Follow, Pin It buttons and profile widgets (Pin, Board, Profile) to WordPress posts, pages and widgets.', 
    299         'link'          => 'http://bestwebsoft.com/products/pinterest/?k=504107b6213f247a67fe7ffb94e97c78&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     302        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/pinterest/?k=504107b6213f247a67fe7ffb94e97c78&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    300303        'settings'      => 'admin.php?page=pinterest.php', 
    301304        'pro_version'   => 'bws-pinterest-pro/bws-pinterest-pro.php', 
    302         'purchase'      => 'http://bestwebsoft.com/products/pinterest/buy/?k=ab0069edd1914a3ca8f541bfd88bb0bb&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     305        'purchase'      => 'http://bestwebsoft.com/products/wordpress/plugins/pinterest/buy/?k=ab0069edd1914a3ca8f541bfd88bb0bb&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    303306        'pro_settings'  => 'admin.php?page=pinterest-pro.php' 
    304307    ), 
     
    307310        'name'          => 'Popular Posts', 
    308311        'description'   => 'Track views, comments and add most popular posts to Wordpress widgets.', 
    309         'link'          => 'http://bestwebsoft.com/products/popular-posts/?k=4d529f116d2b7f7df3a78018c383f975&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     312        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/popular-posts/?k=4d529f116d2b7f7df3a78018c383f975&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    310313        'settings'      => 'admin.php?page=popular-posts.php' 
    311314    ), 
     
    314317        'name'          => 'Portfolio', 
    315318        'description'   => 'Create your personal portfolio WordPress website. Manage and showcase past projects to get more clients.', 
    316         'link'          => 'http://bestwebsoft.com/products/portfolio/?k=1249a890c5b7bba6bda3f528a94f768b&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     319        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/portfolio/?k=1249a890c5b7bba6bda3f528a94f768b&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    317320        'settings'      => 'admin.php?page=portfolio.php', 
    318321        'pro_version'   => 'portfolio-pro/portfolio-pro.php', 
    319         'purchase'      => 'http://bestwebsoft.com/products/portfolio/buy/?k=2cc716026197d36538a414b728e49fdd&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     322        'purchase'      => 'http://bestwebsoft.com/products/wordpress/plugins/portfolio/buy/?k=2cc716026197d36538a414b728e49fdd&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    320323        'pro_settings'  => 'admin.php?page=portfolio-pro.php' 
    321324    ), 
     
    324327        'name'          => 'Post to CSV', 
    325328        'description'   => 'Export WordPress posts to CSV file format easily. Configure data order.', 
    326         'link'          => 'http://bestwebsoft.com/products/post-to-csv/?k=653aa55518ae17409293a7a894268b8f&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     329        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/post-to-csv/?k=653aa55518ae17409293a7a894268b8f&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    327330        'settings'      => 'admin.php?page=post-to-csv.php' 
    328331    ), 
     
    331334        'name'          => 'Profile Extra Fields', 
    332335        'description'   => 'Add extra fields to default WordPress user profile. The easiest way to create and manage additional custom values.', 
    333         'link'          => 'http://bestwebsoft.com/products/profile-extra-fields/?k=fe3b6c3dbc80bd4b1cf9a27a2f339820&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     336        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/profile-extra-fields/?k=fe3b6c3dbc80bd4b1cf9a27a2f339820&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    334337        'settings'      => 'admin.php?page=profile-extra-fields.php' 
    335338    ), 
     
    338341        'name'          => 'PromoBar', 
    339342        'description'   => 'Add and display HTML advertisement on WordPress website. Customize bar styles and appearance.', 
    340         'link'          => 'http://bestwebsoft.com/products/promobar/?k=619eac2232d9cfa382c4e678c3b14766&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     343        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/promobar/?k=619eac2232d9cfa382c4e678c3b14766&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    341344        'settings'      => 'admin.php?page=promobar.php', 
    342345        'pro_version'   => 'promobar-pro/promobar-pro.php', 
    343         'purchase'      => 'http://bestwebsoft.com/products/promobar/buy/?k=a9b09708502f12a1483532ba12fe2103&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     346        'purchase'      => 'http://bestwebsoft.com/products/wordpress/plugins/promobar/buy/?k=a9b09708502f12a1483532ba12fe2103&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    344347        'pro_settings'  => 'admin.php?page=promobar-pro.php' 
    345348    ), 
     
    348351        'name'          => 'Quotes and Tips', 
    349352        'description'   => 'Add customizable quotes and tips blocks to WordPress posts, pages and widgets.', 
    350         'link'          => 'http://bestwebsoft.com/products/quotes-and-tips/?k=5738a4e85a798c4a5162240c6515098d&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     353        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/quotes-and-tips/?k=5738a4e85a798c4a5162240c6515098d&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    351354        'settings'      => 'admin.php?page=quotes-and-tips.php' 
     355    ), 
     356    'rating-bws/rating-bws.php' => array( 
     357        'category'      => array( 'content-and-media' ), 
     358        'name'          => 'Rating', 
     359        'description'   => 'Add rating plugin to your WordPress website to receive feedback from your customers.', 
     360        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/rating/?k=c00e0824bb999735a3224616ef51f4c5&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     361        'settings'      => 'admin.php?page=rating.php' 
    352362    ), 
    353363    'realty/realty.php' => array( 
     
    355365        'name'          => 'Realty', 
    356366        'description'   => 'Create your personal real estate WordPress website. Sell, rent and buy properties. Add, search and browse listings easily.', 
    357         'link'          => 'http://bestwebsoft.com/products/realty/?k=d55de979dbbbb7af0b2ff1d7f43884fa&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     367        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/realty/?k=d55de979dbbbb7af0b2ff1d7f43884fa&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    358368        'settings'      => 'admin.php?page=realty_settings', 
    359369        'pro_version'   => 'realty-pro/realty-pro.php', 
    360         'purchase'      => 'http://bestwebsoft.com/products/realty/buy/?k=c7791f0a72acfb36f564a614dbccb474&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     370        'purchase'      => 'http://bestwebsoft.com/products/wordpress/plugins/realty/buy/?k=c7791f0a72acfb36f564a614dbccb474&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    361371        'pro_settings'  => 'admin.php?page=realty_pro_settings' 
    362     ),   
     372    ), 
    363373    're-attacher/re-attacher.php' => array( 
    364374        'category'      => array( 'utilities' ), 
    365375        'name'          => 'Re-attacher', 
    366376        'description'   => 'Attach, unattach and re-attach media files quickly to WordPress posts and pages.', 
    367         'link'          => 'http://bestwebsoft.com/products/re-attacher/?k=4d529f116d2b7f7df3a78018c383f975&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     377        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/re-attacher/?k=4d529f116d2b7f7df3a78018c383f975&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    368378        'settings'      => 'admin.php?page=re-attacher.php' 
    369379    ), 
     
    372382        'name'          => 'Relevant - Related Posts', 
    373383        'description'   => 'Add related posts to WordPress posts or widgets. Link your readers to relevant content.', 
    374         'link'          => 'http://bestwebsoft.com/products/related-posts/?k=73fb737037f7141e66415ec259f7e426&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     384        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/related-posts/?k=73fb737037f7141e66415ec259f7e426&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    375385        'settings'      => 'admin.php?page=related-posts-plugin.php' 
    376386    ), 
     
    379389        'name'          => 'Sender', 
    380390        'description'   => 'Send bulk email messages to WordPress users. Custom templates, advanced settings and detailed reports.', 
    381         'link'          => 'http://bestwebsoft.com/products/sender/?k=89c297d14ba85a8417a0f2fc05e089c7&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     391        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/sender/?k=89c297d14ba85a8417a0f2fc05e089c7&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    382392        'settings'      => 'admin.php?page=sndr_settings', 
    383393        'pro_version'   => 'sender-pro/sender-pro.php', 
    384         'purchase'      => 'http://bestwebsoft.com/products/sender/buy/?k=dc5d1a87bdc8aeab2de40ffb99b38054&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     394        'purchase'      => 'http://bestwebsoft.com/products/wordpress/plugins/sender/buy/?k=dc5d1a87bdc8aeab2de40ffb99b38054&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    385395        'pro_settings'  => 'admin.php?page=sndrpr_settings' 
    386396    ), 
     
    389399        'name'          => 'SMTP', 
    390400        'description'   => 'Configure SMTP server to receive email messages from WordPress to Gmail, Yahoo, Hotmail and other services.', 
    391         'link'          => 'http://bestwebsoft.com/products/smtp/?k=0546419f962704429ad2d9b88567752f&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     401        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/smtp/?k=0546419f962704429ad2d9b88567752f&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    392402        'settings'      => 'admin.php?page=bwssmtp_settings' 
    393403    ), 
     
    396406        'name'          => 'Social Buttons Pack', 
    397407        'description'   => 'Add social media buttons and widgets to WordPress posts, pages and widgets. FB, Twitter, G+1, Pinterest, LinkedIn.', 
    398         'link'          => 'http://bestwebsoft.com/products/social-buttons-pack/?k=b6440fad9f54274429e536b0c61b42da&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    399         'settings'      => 'admin.php?page=social-buttons.php' 
     408        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/social-buttons-pack/?k=b6440fad9f54274429e536b0c61b42da&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     409        'settings'      => 'admin.php?page=social-buttons.php', 
     410        'pro_version'   => 'social-buttons-pack-pro/social-buttons-pack-pro.php', 
     411        'purchase'      => 'http://bestwebsoft.com/products/wordpress/plugins/social-buttons-pack/buy/?k=e7059cacde0d275b224a5d995c9160fd&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     412        'pro_settings'  => 'admin.php?page=social-buttons.php' 
    400413    ), 
    401414    'subscriber/subscriber.php' => array( 
     
    403416        'name'          => 'Subscriber', 
    404417        'description'   => 'Add email newsletter sign up form to WordPress posts, pages and widgets. Collect data and subscribe your users.', 
    405         'link'          => 'http://bestwebsoft.com/products/subscriber/?k=a4ecc1b7800bae7329fbe8b4b04e9c88&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     418        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/subscriber/?k=a4ecc1b7800bae7329fbe8b4b04e9c88&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    406419        'settings'      => 'admin.php?page=sbscrbr_settings_page', 
    407420        'pro_version'   => 'subscriber-pro/subscriber-pro.php', 
    408         'purchase'      => 'http://bestwebsoft.com/products/subscriber/buy/?k=02dbb8b549925d9b74e70adc2a7282e4&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     421        'purchase'      => 'http://bestwebsoft.com/products/wordpress/plugins/subscriber/buy/?k=02dbb8b549925d9b74e70adc2a7282e4&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    409422        'pro_settings'  => 'admin.php?page=sbscrbrpr_settings_page' 
    410423    ), 
     
    413426        'name'          => 'Testimonials', 
    414427        'description'   => 'Add testimonials and feedbacks from your customers to WordPress posts, pages and widgets.', 
    415         'link'          => 'http://bestwebsoft.com/products/testimonials/?k=3fe4bb89dc901c98e43a113e08f8db73&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     428        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/testimonials/?k=3fe4bb89dc901c98e43a113e08f8db73&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    416429        'settings'      => 'admin.php?page=testimonials.php' 
    417430    ), 
     
    420433        'name'          => 'Timesheet', 
    421434        'description'   => 'Best timesheet plugin for WordPress. Track employee time, streamline attendance and generate reports.', 
    422         'link'          => 'http://bestwebsoft.com/products/timesheet/?k=06a58bb78c17a43df01825925f05a5c1&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    423         'settings'      => 'admin.php?page=timesheet_settings' 
    424     ),   
     435        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/timesheet/?k=06a58bb78c17a43df01825925f05a5c1&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     436        'settings'      => 'admin.php?page=timesheet_settings', 
     437        'pro_version'   => 'timesheet-pro/timesheet-pro.php', 
     438        'purchase'      => 'http://bestwebsoft.com/products/wordpress/plugins/timesheet/buy/?k=a448ce4cab0d365b7774c9bc3903b851&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     439        'pro_settings'  => 'admin.php?page=timesheet_pro_settings' 
     440    ), 
    425441    'twitter-plugin/twitter.php' => array( 
    426442        'category'      => array( 'social' ), 
    427443        'name'          => 'Twitter', 
    428444        'description'   => 'Add Twitter Follow, Tweet, Hashtag, and Mention buttons to WordPress posts, pages and widgets.', 
    429         'link'          => 'http://bestwebsoft.com/products/twitter/?k=f8cb514e25bd7ec4974d64435c5eb333&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     445        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/twitter/?k=f8cb514e25bd7ec4974d64435c5eb333&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    430446        'settings'      => 'admin.php?page=twitter.php', 
    431447        'pro_version'   => 'twitter-pro/twitter-pro.php', 
    432         'purchase'      => 'http://bestwebsoft.com/products/twitter/buy/?k=63ecbf0cc9cebf060b5a3c9362299700&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     448        'purchase'      => 'http://bestwebsoft.com/products/wordpress/plugins/twitter/buy/?k=63ecbf0cc9cebf060b5a3c9362299700&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    433449        'pro_settings'  => 'admin.php?page=twitter-pro.php' 
    434450    ), 
     
    437453        'name'          => 'Updater', 
    438454        'description'   => 'Automatically check and update WordPress website core with all installed plugins and themes to the latest versions.', 
    439         'link'          => 'http://bestwebsoft.com/products/updater/?k=66f3ecd4c1912009d395c4bb30f779d1&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     455        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/updater/?k=66f3ecd4c1912009d395c4bb30f779d1&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    440456        'settings'      => 'admin.php?page=updater-options', 
    441457        'pro_version'   => 'updater-pro/updater_pro.php', 
    442         'purchase'      => 'http://bestwebsoft.com/products/updater/buy/?k=cf633acbefbdff78545347fe08a3aecb&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     458        'purchase'      => 'http://bestwebsoft.com/products/wordpress/plugins/updater/buy/?k=cf633acbefbdff78545347fe08a3aecb&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    443459        'pro_settings'  => 'admin.php?page=updater-pro-options' 
    444460    ), 
     
    447463        'name'          => 'User Role', 
    448464        'description'   => 'Powerful user role management plugin for WordPress website. Create, edit, copy, and delete user roles.', 
    449         'link'          => 'http://bestwebsoft.com/products/user-role/?k=dfe2244835c6fbf601523964b3f34ccc&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     465        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/user-role/?k=dfe2244835c6fbf601523964b3f34ccc&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    450466        'settings'      => 'admin.php?page=user-role.php', 
    451467        'pro_version'   => 'user-role-pro/user-role-pro.php', 
    452         'purchase'      => 'http://bestwebsoft.com/products/user-role/buy/?k=cfa9cea6613fb3d7c0a3622fa2faaf46&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     468        'purchase'      => 'http://bestwebsoft.com/products/wordpress/plugins/user-role/buy/?k=cfa9cea6613fb3d7c0a3622fa2faaf46&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    453469        'pro_settings'  => 'admin.php?page=user-role-pro.php' 
    454     ),   
     470    ), 
    455471    'visitors-online/visitors-online.php' => array( 
    456472        'category'      => array( 'site-stats' ), 
    457473        'name'          => 'Visitors Online', 
    458474        'description'   => 'Display live count of online visitors who are currently browsing your WordPress website.', 
    459         'link'          => 'http://bestwebsoft.com/products/visitors-online/?k=93c28013a4f830671b3bba9502ed5177&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     475        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/visitors-online/?k=93c28013a4f830671b3bba9502ed5177&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    460476        'settings'      => 'admin.php?page=visitors-online.php', 
    461477        'pro_version'   => 'visitors-online-pro/visitors-online-pro.php', 
    462         'purchase'      => 'http://bestwebsoft.com/products/visitors-online/buy/?k=f9a746075ff8a0a6cb192cb46526afd2&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     478        'purchase'      => 'http://bestwebsoft.com/products/wordpress/plugins/visitors-online/buy/?k=f9a746075ff8a0a6cb192cb46526afd2&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    463479        'pro_settings'  => 'admin.php?page=visitors-online-pro.php' 
    464     ),   
     480    ), 
    465481    'zendesk-help-center/zendesk-help-center.php' => array( 
    466482        'category'      => array( 'utilities' ), 
    467483        'name'          => 'Zendesk Help Center', 
    468484        'description'   => 'Backup and export Zendesk Help Center content automatically to your WordPress website database.', 
    469         'link'          => 'http://bestwebsoft.com/products/zendesk-help-center/?k=2a5fd2f4b2f4bde46f2ca44b8d15846d&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     485        'link'          => 'http://bestwebsoft.com/products/wordpress/plugins/zendesk-help-center/?k=2a5fd2f4b2f4bde46f2ca44b8d15846d&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    470486        'settings'      => 'admin.php?page=zendesk_hc.php&action=settings', 
    471487        'pro_version'   => 'zendesk-help-center-pro/zendesk-help-center-pro.php', 
    472         'purchase'      => 'http://bestwebsoft.com/products/zendesk-help-center/buy/?k=45199e4538b5befe4d9566868a61a3aa&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
     488        'purchase'      => 'http://bestwebsoft.com/products/wordpress/plugins/zendesk-help-center/buy/?k=45199e4538b5befe4d9566868a61a3aa&pn=' . $bws_plugin_info["id"] . '&v=' . $bws_plugin_info["version"] . '&wp_v=' . $wp_version, 
    473489        'pro_settings'  => 'admin.php?page=zendesk_hc_pro.php&tab=settings' 
    474490    ) 
    475 );   
     491); 
    476492 
    477 $themes = array(     
    478     (object) array(  
     493$themes = array( 
     494    (object) array( 
    479495        'name'      => 'Opening', 
    480496        'slug'      => 'opening', 
    481         'href'      => 'http://bestwebsoft.com/products/opening-job-board-wordpress-theme/' 
    482     ), 
    483     (object) array(  
     497        'href'      => 'http://bestwebsoft.com/products/wordpress/themes/opening-job-board-wordpress-theme/' 
     498    ), 
     499    (object) array( 
    484500        'name'      => 'Real Estate', 
    485501        'slug'      => 'realestate', 
    486         'href'      => 'http://bestwebsoft.com/products/real-estate-creative-wordpress-theme/' 
    487     ), 
    488     (object) array(  
     502        'href'      => 'http://bestwebsoft.com/products/wordpress/themes/real-estate-creative-wordpress-theme/' 
     503    ), 
     504    (object) array( 
    489505        'name'      => 'Renty', 
    490506        'slug'      => 'renty', 
    491         'href'      => 'http://bestwebsoft.com/products/renty-car-rental-booking-wordpress-theme/' 
    492     ), 
    493     (object) array(  
     507        'href'      => 'http://bestwebsoft.com/products/wordpress/themes/renty-car-rental-booking-wordpress-theme/' 
     508    ), 
     509    (object) array( 
    494510        'name'      => 'Unity', 
    495511        'slug'      => 'unity', 
    496         'href'      => 'http://bestwebsoft.com/products/unity-multipurpose-wordpress-theme/' 
     512        'href'      => 'http://bestwebsoft.com/products/wordpress/themes/unity-multipurpose-wordpress-theme/' 
    497513    ) 
    498514); 
  • custom-search-plugin/trunk/custom-search-plugin.php

    r1470528 r1573169  
    22/* 
    33Plugin Name: Custom Search by BestWebSoft 
    4 Plugin URI: http://bestwebsoft.com/products/custom-search/ 
     4Plugin URI: http://bestwebsoft.com/products/wordpress/plugins/custom-search/ 
    55Description: Add custom post types to WordPress website search results. 
    66Author: BestWebSoft 
    77Text Domain: custom-search-plugin 
    88Domain Path: /languages 
    9 Version: 1.34 
     9Version: 1.35 
    1010Author URI: http://bestwebsoft.com/ 
    1111License: GPLv2 or later 
    1212*/ 
    13   
    14 /*  © Copyright 2016  BestWebSoft  ( http://support.bestwebsoft.com ) 
    15  
    16     This program is free software; you can redistribute it and/or modify 
    17     it under the terms of the GNU General Public License, version 2, as  
    18     published by the Free Software Foundation. 
    19  
    20     This program is distributed in the hope that it will be useful, 
    21     but WITHOUT ANY WARRANTY; without even the implied warranty of 
    22     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
    23     GNU General Public License for more details. 
    24  
    25     You should have received a copy of the GNU General Public License 
    26     along with this program; if not, write to the Free Software 
    27     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA 
     13 
     14/*  © Copyright 2017  BestWebSoft  ( http://support.bestwebsoft.com ) 
     15 
     16    This program is free software; you can redistribute it and/or modify 
     17    it under the terms of the GNU General Public License, version 2, as 
     18    published by the Free Software Foundation. 
     19 
     20    This program is distributed in the hope that it will be useful, 
     21    but WITHOUT ANY WARRANTY; without even the implied warranty of 
     22    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
     23    GNU General Public License for more details. 
     24 
     25    You should have received a copy of the GNU General Public License 
     26    along with this program; if not, write to the Free Software 
     27    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA 
    2828*/ 
     29 
     30require_once( dirname( __FILE__ ) . '/includes/deprecated.php' ); 
    2931 
    3032/* Function are using to add on admin-panel Wordpress page 'bws_panel' and sub-page of this plugin */ 
     
    3234    function add_cstmsrch_admin_menu() { 
    3335        bws_general_menu(); 
    34         $settings = add_submenu_page( 'bws_panel', __( 'Custom Search Settings', 'custom-search-plugin' ), 'Custom search', 'manage_options', "custom_search.php", 'cstmsrch_settings_page' ); 
     36        $settings = add_submenu_page( 'bws_panel', __( 'Custom Search Settings', 'custom-search-plugin' ), 'Custom Search', 'manage_options', "custom_search.php", 'cstmsrch_settings_page' ); 
    3537        add_action( 'load-' . $settings, 'cstmsrch_add_tabs' ); 
    3638    } 
     
    5961        /* Function check if plugin is compatible with current WP version */ 
    6062        bws_wp_min_version_check( plugin_basename( __FILE__ ), $cstmsrch_plugin_info, '3.8' ); 
    61  
    62         /* Call register settings function */ 
    63         if ( ! is_admin() || ( isset( $_GET['page'] ) && "custom_search.php" == $_GET['page'] ) ) 
    64             register_cstmsrch_settings(); 
    6563    } 
    6664} 
     
    6967    function cstmsrch_admin_init() { 
    7068        global $bws_plugin_info, $cstmsrch_plugin_info, $cstmsrch_options; 
    71         if ( empty( $bws_plugin_info ) )             
    72             $bws_plugin_info = array( 'id' => '81', 'version' => $cstmsrch_plugin_info["Version"] );         
     69        if ( empty( $bws_plugin_info ) ) 
     70            $bws_plugin_info = array( 'id' => '81', 'version' => $cstmsrch_plugin_info['Version'] ); 
    7371    } 
    7472} 
     
    8078 
    8179        $cstmsrch_options_default = array( 
    82             'plugin_option_version'     =>  $cstmsrch_plugin_info["Version"], 
    83             'post_types'                =>  array(), 
     80            'plugin_option_version'     =>  $cstmsrch_plugin_info['Version'], 
     81            'output_order'              => array( 
     82                                            array( 'name' => 'post', 'type' => 'post_type', 'enabled' => 1 ), 
     83                                            array( 'name' => 'page', 'type' => 'post_type', 'enabled' => 1 ), 
     84                                        ), 
    8485            'first_install'             =>  strtotime( "now" ), 
    8586            'display_settings_notice'   =>  1, 
     
    9495 
    9596        /* Array merge incase this version has added new options */ 
    96         if ( ! isset( $cstmsrch_options['plugin_option_version'] ) || $cstmsrch_options['plugin_option_version'] != $cstmsrch_plugin_info["Version"] ) { 
    97  
    98             $cstmsrch_options = array_merge( $cstmsrch_options_default, $cstmsrch_options ); 
    99             $cstmsrch_options['plugin_option_version'] = $cstmsrch_plugin_info["Version"]; 
     97        if ( ! isset( $cstmsrch_options['plugin_option_version'] ) || $cstmsrch_options['plugin_option_version'] != $cstmsrch_plugin_info['Version'] ) { 
     98            /** 
     99             * @deprecated 
     100             * @since 1.35 
     101             * @todo remove after 01.06.2017 
     102             */ 
     103            if ( isset( $cstmsrch_options['plugin_option_version'] ) && version_compare( $cstmsrch_options['plugin_option_version'], '1.35', '<' ) ) { 
     104                if ( function_exists( 'cstmsrch_update_old_options' ) ) { 
     105                    cstmsrch_update_old_options(); 
     106                } 
     107            } 
     108            /* @todo end */ 
     109 
     110            foreach ( $cstmsrch_options_default as $key => $value ) { 
     111                if ( 
     112                    ! isset( $cstmsrch_options[ $key ] ) || 
     113                    ( isset( $cstmsrch_options[ $key ] ) && is_array( $cstmsrch_options_default[ $key ] ) && ! is_array( $cstmsrch_options[ $key ] ) ) 
     114                ) { 
     115                    $cstmsrch_options[ $key ] = $cstmsrch_options_default[ $key ]; 
     116                } else { 
     117                    if ( is_array( $cstmsrch_options_default[ $key ] ) ) { 
     118                        foreach ( $cstmsrch_options_default[ $key ] as $key2 => $value2 ) { 
     119                            if ( ! isset( $cstmsrch_options[ $key ][ $key2 ] ) ) 
     120                                $cstmsrch_options[ $key ][ $key2 ] = $cstmsrch_options_default[ $key ][ $key2 ]; 
     121                        } 
     122                    } 
     123                } 
     124            } 
     125 
     126            $cstmsrch_options['plugin_option_version'] = $cstmsrch_plugin_info['Version']; 
    100127            /* show pro features */ 
    101128            $cstmsrch_options['hide_premium_options'] = array(); 
     129            cstmsrch_update_option( true ); 
    102130            update_option( 'cstmsrch_options', $cstmsrch_options ); 
    103         } 
    104     } 
    105 } 
    106  
    107 if ( ! function_exists( 'cstmsrch_searchfilter' ) ) { 
    108     function cstmsrch_searchfilter( $query ) { 
     131            cstmsrch_plugin_activate(); 
     132        } 
     133        cstmsrch_search_objects(); 
     134    } 
     135} 
     136 
     137/** 
     138 * Activation plugin function 
     139 */ 
     140if ( ! function_exists( 'cstmsrch_plugin_activate' ) ) { 
     141    function cstmsrch_plugin_activate() { 
     142        if ( is_multisite() ) { 
     143            switch_to_blog( 1 ); 
     144            register_uninstall_hook( __FILE__, 'delete_cstmsrch_settings' ); 
     145            restore_current_blog(); 
     146        } else { 
     147            register_uninstall_hook( __FILE__, 'delete_cstmsrch_settings' ); 
     148        } 
     149    } 
     150} 
     151 
     152/** 
     153 * Preparing global array variables of post types and taxonomies enabled for search 
     154 * @return void 
     155 */ 
     156if ( ! function_exists( 'cstmsrch_search_objects' ) ) { 
     157    function cstmsrch_search_objects() { 
     158        global $cstmsrch_options, $cstmsrch_post_types_enabled, $cstmsrch_taxonomies_enabled; 
     159        if ( empty( $cstmsrch_options ) ) 
     160            $cstmsrch_options = get_option( 'cstmsrch_options' ); 
     161        $cstmsrch_post_types_enabled = $cstmsrch_taxonomies_enabled = array(); 
     162        foreach ( $cstmsrch_options['output_order'] as $key => $item ) { 
     163            if ( isset( $item['type'] ) && ! empty( $item['enabled'] ) ) { 
     164                if ( 'post_type' == $item['type'] ) { 
     165                    $cstmsrch_post_types_enabled[] = $item['name']; 
     166                } elseif ( 'taxonomy' == $item['type'] ) { 
     167                    $cstmsrch_taxonomies_enabled[] = $item['name']; 
     168                } 
     169            } 
     170        } 
     171    } 
     172} 
     173 
     174/** 
     175 * Update plugin options 
     176 * if custom post types was added or deleted 
     177 * @return void 
     178 */ 
     179if ( ! function_exists( 'cstmsrch_update_option' ) ) { 
     180    function cstmsrch_update_option( $option_changed = false ) { 
    109181        global $cstmsrch_options; 
    110182        if ( empty( $cstmsrch_options ) ) 
    111183            $cstmsrch_options = get_option( 'cstmsrch_options' ); 
    112184 
    113         if ( $query->is_search && ! empty( $query->query['s'] ) && ! is_admin() ) { 
    114             $cstmsrch_post_standart_types   =   array( 'post', 'page', 'attachment' ); 
    115             $cstmsrch_result_merge          =   array_merge( $cstmsrch_post_standart_types, $cstmsrch_options['post_types'] ); 
    116             $query->set( 'post_type', $cstmsrch_result_merge ); 
     185        /* get custom post types */ 
     186        $post_types_custom  = get_post_types( array( '_builtin' => false ), 'names' ); 
     187        $post_types_default = get_post_types( array( '_builtin' => true, 'public' => true ), 'names' ); 
     188        unset( $post_types_default['attachment'] ); 
     189        $post_types_global  = array_merge( $post_types_custom, $post_types_default ); 
     190        $taxonomies_global  = get_taxonomies( array( 'public' => true ), 'names' ); 
     191        unset( $taxonomies_global['post_format'] ); 
     192        $order_items_keys = array(); 
     193        /* unsetting non-existent post types/taxonomies */ 
     194        foreach ( $cstmsrch_options['output_order'] as $key => $item ) { 
     195            if ( 
     196                empty( $item['name'] ) || 
     197                ! ( in_array( $item['name'], $post_types_global ) || in_array( $item['name'], $taxonomies_global ) ) 
     198            ) { 
     199                $option_changed = true; 
     200                unset( $cstmsrch_options['output_order'][$key] ); 
     201            } else { 
     202                if ( empty( $item['enabled'] ) ) 
     203                    $cstmsrch_options['output_order'][ $key ]['enabled'] = 0; 
     204                $order_items_keys[] = $item['name']; 
     205            } 
     206        } 
     207 
     208        /* adding new post types/taxonomies to order list */ 
     209        foreach ( $post_types_global as $key => $post_type ) { 
     210            if ( ! in_array( $post_type, $order_items_keys ) ) { 
     211                $cstmsrch_options['output_order'][] = array ( 
     212                    'name'      => $post_type, 
     213                    'type'      => 'post_type', 
     214                    'enabled'   => 0 
     215                ); 
     216                $option_changed = true; 
     217            } 
     218        } 
     219        foreach ( $taxonomies_global as $taxonomy => $taxonomy_object ) { 
     220            if ( ! in_array( $taxonomy, $order_items_keys ) ) { 
     221                $cstmsrch_options['output_order'][] = array ( 
     222                    'name'      => $taxonomy, 
     223                    'type'      => 'taxonomy', 
     224                    'enabled'   => 0 
     225                ); 
     226                $option_changed = true; 
     227            } 
     228        } 
     229 
     230        if ( $option_changed ) { 
     231            $cstmsrch_options['output_order'] = array_values( $cstmsrch_options['output_order'] ); 
     232            update_option( 'cstmsrch_options', $cstmsrch_options ); 
     233        } 
     234        cstmsrch_search_objects(); 
     235    } 
     236} 
     237 
     238/** 
     239 * Change WP_Query for querying only necessary post types in search query 
     240 * @param    object  $query   WP_Query object 
     241 * @return   object  $query   WP_Query object 
     242 */ 
     243if ( ! function_exists( 'cstmsrch_searchfilter' ) ) { 
     244    function cstmsrch_searchfilter( $query ) { 
     245        global $cstmsrch_is_registered, $cstmsrch_post_types_enabled; 
     246 
     247        if ( empty( $cstmsrch_is_registered ) ) 
     248            register_cstmsrch_settings(); 
     249 
     250        if ( $query->is_search && ! empty( $query->query['s'] ) && ! is_admin() && ! empty( $cstmsrch_post_types_enabled ) ) { 
     251            $query->set( 'post_type', $cstmsrch_post_types_enabled ); 
    117252        } 
    118253        return $query; 
     254    } 
     255} 
     256 
     257/** 
     258 * Changing SQL-join query for adding taxonomies to search query 
     259 * @param    string  $join   SQL-join clause 
     260 * @return   string  $join   SQL-join clause with necessary changes 
     261 */ 
     262if ( ! function_exists( 'cstmsrch_posts_join' ) ) { 
     263    function cstmsrch_posts_join( $join ) { 
     264        if ( is_search() ) { 
     265            global $wpdb; 
     266 
     267            $join .= " LEFT JOIN {$wpdb->term_relationships} tr ON {$wpdb->posts}.ID = tr.object_id LEFT JOIN {$wpdb->term_taxonomy} tt ON tt.term_taxonomy_id=tr.term_taxonomy_id LEFT JOIN {$wpdb->terms} t ON t.term_id = tt.term_id "; 
     268        } 
     269        return $join; 
     270    } 
     271} 
     272 
     273if ( ! function_exists( 'cstmsrch_posts_where_tax' ) ) { 
     274    function cstmsrch_posts_where_tax( $where ) { 
     275        if ( is_search() ) { 
     276            global $cstmsrch_is_registered, $wpdb, $cstmsrch_post_types_enabled, $cstmsrch_taxonomies_enabled; 
     277 
     278            if ( ! $cstmsrch_is_registered ) 
     279                register_cstmsrch_settings(); 
     280 
     281            $taxonomies = array(); 
     282            $where_post_types = $where_tax = ""; 
     283 
     284            foreach ( $cstmsrch_taxonomies_enabled as $taxonomy ) { 
     285                $taxonomies[] = "'" . esc_sql( $taxonomy ) . "'"; 
     286            } 
     287            if ( ! empty( $_REQUEST['cstmsrch_post_type'] ) && in_array( $_REQUEST['cstmsrch_post_type'], $cstmsrch_post_types_enabled ) ) { 
     288                $where_post_types = " {$wpdb->posts}.post_type = '" . esc_sql( $_REQUEST['cstmsrch_post_type'] ) . "' AND"; 
     289            } 
     290            if ( ! empty( $taxonomies ) ) { 
     291                $taxonomies = implode( ',', $taxonomies ); 
     292                $where_tax = " t.name LIKE '%" . esc_sql( get_search_query() ) . "%' AND tt.taxonomy IN ($taxonomies) AND"; 
     293            } 
     294            if ( ! empty( $where_tax ) ) { 
     295                $where .= " OR ( $where_post_types $where_tax {$wpdb->posts}.post_status = 'publish' )"; 
     296            } 
     297        } 
     298        return $where; 
     299    } 
     300} 
     301 
     302if ( ! function_exists( 'cstmsrch_posts_groupby' ) ) { 
     303    function cstmsrch_posts_groupby( $groupby ) { 
     304        if ( is_search() ) { 
     305            global $wpdb; 
     306 
     307            /* group on post ID */ 
     308            $groupby_id = "{$wpdb->posts}.ID"; 
     309            if ( ! is_search() || strpos( $groupby, $groupby_id ) !== false ) return $groupby; 
     310            /* if groupby was empty, using ours */ 
     311            if ( ! strlen( trim( $groupby ) ) ) return $groupby_id; 
     312            /* if groupby wasn't empty, append ours */ 
     313            return $groupby . ", " . $groupby_id; 
     314        } 
     315        return $groupby; 
    119316    } 
    120317} 
     
    123320if ( ! function_exists( 'cstmsrch_settings_page' ) ) { 
    124321    function cstmsrch_settings_page() { 
    125         global $wpdb, $cstmsrch_options, $cstmsrch_plugin_info, $wp_version, $cstmsrch_options_default; 
    126  
    127         $message = $error = ''; 
    128         $plugin_basename  = plugin_basename( __FILE__ ); 
    129         $args             = array( '_builtin' => false ); 
    130         $cstmsrch_result  = get_post_types( $args ); 
    131         if ( isset( $_REQUEST['cstmsrch_submit'] ) && check_admin_referer( $plugin_basename, 'cstmsrch_nonce_name' ) ) { 
    132  
    133             if ( isset( $_POST['bws_hide_premium_options'] ) ) { 
    134                 $hide_result = bws_hide_premium_options( $cstmsrch_options ); 
    135                 $cstmsrch_options = $hide_result['options']; 
    136             } 
    137  
    138             $cstmsrch_options['post_types'] = isset( $_REQUEST['cstmsrch_options'] ) ? $_REQUEST['cstmsrch_options'] : array(); 
    139             update_option( 'cstmsrch_options', $cstmsrch_options ); 
    140             $message = __( "Settings saved" , 'custom-search-plugin' ); 
    141         } else { 
    142             $args = array( '_builtin' => false ); 
    143             $cstmsrch_result = get_post_types( $args ); 
    144             if ( empty( $cstmsrch_result ) ) { 
    145                 $cstmsrch_options['post_types'] = array(); 
    146                 update_option( 'cstmsrch_options', $cstmsrch_options ); 
    147             } 
    148         } 
    149  
    150         $bws_hide_premium_options_check = bws_hide_premium_options_check( $cstmsrch_options ); 
     322        global $wpdb, $cstmsrch_options, $cstmsrch_plugin_info, $wp_version, $cstmsrch_options_default, $cstmsrch_post_types_enabled, $cstmsrch_taxonomies_enabled; 
     323 
     324        register_cstmsrch_settings(); 
     325 
     326        $message = $error           = ''; 
     327        $plugin_basename            = plugin_basename( __FILE__ ); 
     328 
    151329 
    152330        if ( isset( $_POST['bws_restore_confirm'] ) && check_admin_referer( $plugin_basename, 'bws_settings_nonce_name' ) ) { 
     
    154332            update_option( 'cstmsrch_options', $cstmsrch_options ); 
    155333            $message =  __( 'All plugin settings were restored.', 'custom-search-plugin' ); 
    156         } 
     334            cstmsrch_update_option(true); 
     335        } 
     336 
     337        $search_objects_custom['post_type']     = get_post_types( array( 'public' => true ), 'objects' ); 
     338        $search_objects_custom['taxonomy']      = get_taxonomies( array( 'public' => true ), 'objects' ); 
     339        unset( $search_objects_custom['post_type']['attachment'] ); 
     340        unset( $search_objects_custom['taxonomy']['post_format'] ); 
     341        $taxonomies_keys                        = array_keys( $search_objects_custom['taxonomy'] ); 
     342        $post_types_custom_keys                 = ( ! empty( $search_objects_custom ) ) ? array_combine( array_keys( $search_objects_custom['post_type'] ), array_keys( $search_objects_custom['post_type'] ) ) : array(); 
     343        unset( $post_types_custom_keys['post'], $post_types_custom_keys['page'] ); 
     344 
     345        $object_types = array( 
     346            'post_type' => array( 
     347                'singular'  => __( 'post type', 'custom-search-plugin' ), 
     348                'plural'    => __( 'post types', 'custom-search-plugin' ) 
     349            ), 
     350            'taxonomy'  => array( 
     351                'singular'  => __( 'taxonomy', 'custom-search-plugin' ), 
     352                'plural'    => __( 'taxonomies', 'custom-search-plugin' ) 
     353            ) 
     354        ); 
     355 
     356        $post_types_custom  = ( ! empty( $post_types_custom_keys ) ) ? array_combine( $post_types_custom_keys, $post_types_custom_keys ) : array(); 
     357        $taxonomies_global  = array_combine( $taxonomies_keys, $taxonomies_keys ); 
     358        $post_types_global  = get_post_types( array( 'public' => true ), 'names' ); 
     359        unset( $post_types_global['attachment'] ); 
     360 
     361        if ( isset( $_REQUEST['cstmsrch_submit'] ) && check_admin_referer( $plugin_basename, 'cstmsrch_nonce_name' ) ) { 
     362 
     363            if ( isset( $_POST['bws_hide_premium_options'] ) ) { 
     364                $hide_result = bws_hide_premium_options( $cstmsrch_options ); 
     365                $cstmsrch_options = $hide_result['options']; 
     366            } 
     367 
     368            $cstmsrch_post_types_enabled = array( 'post', 'page' ); 
     369            if ( ! empty( $_REQUEST['cstmsrch_post_types'] ) && is_array( $_REQUEST['cstmsrch_post_types'] ) ) { 
     370                foreach ( $_REQUEST['cstmsrch_post_types'] as $post_type ) { 
     371                    if ( in_array( $post_type, $post_types_custom ) ) { 
     372                        $cstmsrch_post_types_enabled[] = $post_type; 
     373                    } 
     374                } 
     375            } 
     376 
     377            $cstmsrch_taxonomies_enabled = array(); 
     378            if ( ! empty( $_REQUEST['cstmsrch_taxonomies'] ) && is_array( $_REQUEST['cstmsrch_taxonomies'] ) ) { 
     379                foreach ( $_REQUEST['cstmsrch_taxonomies'] as $taxonomy ) { 
     380                    if ( in_array( $taxonomy, $taxonomies_global ) ) { 
     381                        $cstmsrch_taxonomies_enabled[] = $taxonomy; 
     382                    } 
     383                } 
     384            } 
     385 
     386            $output_order = array(); 
     387            foreach ( $post_types_global as $post_type ) { 
     388                $enabled = ( in_array( $post_type, $cstmsrch_post_types_enabled ) ) ? 1 : 0; 
     389                $output_order[] = array( 
     390                    'name'      => $post_type, 
     391                    'type'      => 'post_type', 
     392                    'enabled'   => $enabled 
     393                ); 
     394            } 
     395            foreach ( $taxonomies_global as $taxonomy ) { 
     396                $enabled = ( in_array( $taxonomy, $cstmsrch_taxonomies_enabled ) ) ? 1 : 0; 
     397                $output_order[] = array( 
     398                    'name'      => $taxonomy, 
     399                    'type'      => 'taxonomy', 
     400                    'enabled'   => $enabled 
     401                ); 
     402            } 
     403 
     404            $cstmsrch_options['output_order'] = $output_order; 
     405            update_option( 'cstmsrch_options', $cstmsrch_options ); 
     406            $message = __( 'Settings saved' , 'custom-search-plugin' ); 
     407        } else { 
     408            cstmsrch_update_option(); 
     409        } 
     410 
     411        $bws_hide_premium_options_check = bws_hide_premium_options_check( $cstmsrch_options ); 
     412 
    157413        /* GO PRO */ 
    158414        if ( isset( $_GET['action'] ) && 'go_pro' == $_GET['action'] ) { 
     
    163419                $message = $go_pro_result['message']; 
    164420        } ?> 
    165         <div class="wrap">           
     421        <div class="wrap"> 
    166422            <h1><?php _e( 'Custom Search Settings', 'custom-search-plugin' ); ?></h1> 
    167423            <h2 class="nav-tab-wrapper"> 
    168                 <a class="nav-tab<?php echo ! isset( $_GET['action'] ) ? ' nav-tab-active': ''; ?>" href="admin.php?page=custom_search.php"><?php _e( 'Settings', 'custom-search-plugin' ); ?></a> 
     424                <a class="nav-tab<?php echo ( ! isset( $_GET['action'] ) || ! in_array( $_GET['action'], array( 'appearance', 'go_pro' ) ) ) ? ' nav-tab-active': ''; ?>" href="admin.php?page=custom_search.php"><?php _e( 'Settings', 'custom-search-plugin' ); ?></a> 
    169425                <a class="nav-tab<?php if ( isset( $_GET['action'] ) && 'appearance' == $_GET['action'] ) echo ' nav-tab-active'; ?>" href="admin.php?page=custom_search.php&amp;action=appearance"><?php _e( 'Appearance', 'custom-search-plugin' ); ?></a> 
    170426                <a class="nav-tab bws_go_pro_tab<?php if ( isset( $_GET['action'] ) && 'go_pro' == $_GET['action'] ) echo ' nav-tab-active'; ?>" href="admin.php?page=custom_search.php&amp;action=go_pro"><?php _e( 'Go PRO', 'custom-search-plugin' ); ?></a> 
     
    176432                <div class="updated fade below-h2"><p><strong><?php echo $hide_result['message']; ?></strong></p></div> 
    177433            <?php } 
    178             if ( ! isset( $_GET['action'] ) ) { 
     434            if ( ! isset( $_GET['action'] ) || ! in_array( $_GET['action'], array( 'appearance', 'go_pro' ) ) ) { 
    179435                if ( isset( $_POST['bws_restore_default'] ) && check_admin_referer( $plugin_basename, 'bws_settings_nonce_name' ) ) { 
    180436                    bws_form_restore_default_confirm( $plugin_basename ); 
    181                 } else { 
    182                     if ( 0 < count( $cstmsrch_result ) ) { ?> 
    183                         <form method="post" action="" style="margin-top: 10px;" id="cstmsrch_settings_form" class="bws_form"> 
    184                             <table class="form-table"> 
    185                                 <tr valign="top"> 
    186                                     <th scope="row"><?php _e( 'Enable Custom search for:', 'custom-search-plugin' ); ?></th> 
    187                                     <td> 
    188                                         <?php $cstmsrch_new_result = array_values( $cstmsrch_result ); 
    189                                             $cstmsrch_select_all = ''; 
    190                                             if ( ! array_diff( $cstmsrch_new_result, $cstmsrch_options['post_types'] ) ) 
    191                                                 $cstmsrch_select_all = 'checked="checked"'; ?> 
    192                                         <div id="cstmsrch_div_select_all" style="display:none;"><label><input id="cstmsrch_select_all" type="checkbox" <?php echo $cstmsrch_select_all; ?> /><span style="text-transform: capitalize; padding-left: 5px;"><strong><?php _e( 'All', 'custom-search-plugin' ); ?></strong></span></label></div> 
    193                                         <?php foreach ( $cstmsrch_result as $value ) { ?> 
    194                                             <label><input type="checkbox" <?php echo ( in_array( $value, $cstmsrch_options['post_types'] ) ?  'checked="checked"' : "" ); ?> name="cstmsrch_options[]" value="<?php echo $value; ?>"/><span style="text-transform: capitalize; padding-left: 5px;"><?php echo $value; ?></span></label><br /> 
     437                } else { ?> 
     438                    <?php $post_types_select_all = $taxonomies_select_all = ''; 
     439                    if ( count( $post_types_custom ) == count( $cstmsrch_post_types_enabled ) - 2 ) 
     440                        $post_types_select_all = 'checked="checked"'; 
     441                    if ( count( $taxonomies_global) == count( $cstmsrch_taxonomies_enabled ) ) 
     442                        $taxonomies_select_all = 'checked="checked"'; ?> 
     443                    <form method="post" action="" style="margin-top: 10px;" id="cstmsrch_settings_form" class="bws_form"> 
     444                        <table class="form-table"> 
     445                            <tr valign="top"> 
     446                                <th style="padding-top:10px;" scope="row"><?php _e( 'Enable Custom search for:', 'custom-search-plugin' ); ?></th> 
     447                                <td style="padding-top:10px;"> 
     448                                    <div id="cstmsrch-post-types-settings" class="cstmsrch-checkbox-section" style="margin-bottom:20px;"> 
     449                                        <?php if ( 0 < count( $post_types_custom ) ) { ?> 
     450                                            <fieldset> 
     451                                                <div class="cstmsrch_select_all_block" style="margin-bottom:10px;"> 
     452                                                    <label> 
     453                                                        <input type="checkbox" <?php echo $post_types_select_all; ?> style="display:none;" class="cstmsrch_cb_select_all" /><span style="text-transform: capitalize; padding-left: 5px;"><strong><?php _e( 'post types', 'custom-search-plugin' ); ?></strong></span> 
     454                                                    </label> 
     455                                                </div> 
     456                                                <?php foreach ( $post_types_custom as $post_type ) { 
     457                                                    $current_object = $search_objects_custom['post_type'][ $post_type ]; 
     458                                                    $label = $current_object->labels->name; ?> 
     459                                                    <label> 
     460                                                        <input type="checkbox" <?php echo ( in_array( $post_type, $cstmsrch_post_types_enabled ) ?  'checked="checked"' : "" ); ?> name="cstmsrch_post_types[]" class="cstmsrch_cb_select" value="<?php echo $post_type; ?>"/> 
     461                                                        <span style="text-transform: capitalize; padding-left: 5px;"><?php echo $label; ?></span> 
     462                                                    </label><br /> 
     463                                                <?php } ?> 
     464                                            </fieldset> 
     465                                        <?php } else { ?> 
     466                                            <div><?php _e( 'No custom post type found.', 'custom-search-plugin' ); ?></div> 
    195467                                        <?php } ?> 
    196                                     </td> 
    197                                 </tr> 
    198                             </table> 
    199                             <?php if ( ! $bws_hide_premium_options_check ) { ?> 
    200                                 <div class="bws_pro_version_bloc"> 
    201                                     <div class="bws_pro_version_table_bloc"> 
    202                                     <button type="submit" name="bws_hide_premium_options" class="notice-dismiss bws_hide_premium_options" title="<?php _e( 'Close', 'custom-search-plugin' ); ?>"></button> 
    203                                         <div class="bws_table_bg"></div> 
    204                                         <table class="form-table bws_pro_version"> 
    205                                             <tr valign="top"> 
    206                                                 <th style="width: 190px !important;" scope="row"><?php _e( 'Enable Custom search for:', 'custom-search-plugin' ); ?></th> 
    207                                                 <td width="350"> 
     468                                    </div><!-- #cstmsrch-post-types-settings --> 
     469                                    <div id="cstmsrch-taxonomies-settings" class="cstmsrch-checkbox-section" style="margin-bottom:20px;"> 
     470                                        <?php if ( 0 < count( $taxonomies_global ) ) { ?> 
     471                                            <fieldset> 
     472                                                <div class="cstmsrch_select_all_block" style="margin-bottom:10px;"> 
     473                                                    <label> 
     474                                                        <input type="checkbox" <?php echo $taxonomies_select_all; ?> style="display:none;" class="cstmsrch_cb_select_all"  /> 
     475                                                        <span style="text-transform: capitalize; padding-left: 5px;"><strong><?php _e( 'taxonomies', 'custom-search-plugin' ); ?></strong></span> 
     476                                                    </label> 
     477                                                </div> 
     478                                                <?php foreach ( $taxonomies_global as $taxonomy ) { 
     479                                                    $current_object = $search_objects_custom['taxonomy'][ $taxonomy ]; 
     480                                                    $object_type = $current_object->object_type[0]; 
     481                                                    $object_type_name = ( ! empty( $search_objects_custom['post_type'][ $object_type ] ) ) ? $search_objects_custom['post_type'][ $object_type ]->labels->name : ''; 
     482                                                    $label = $current_object->labels->name; ?> 
     483                                                    <label> 
     484                                                        <input type="checkbox" <?php echo ( in_array( $taxonomy, $cstmsrch_taxonomies_enabled ) ? 'checked="checked"' : "" ); ?> name="cstmsrch_taxonomies[]" class="cstmsrch_cb_select" value="<?php echo $taxonomy; ?>"/> 
     485                                                        <span style="text-transform: capitalize; padding-left: 5px;"> 
     486                                                            <?php echo "$label (" . __( 'for', 'custom-search-plugin' ) . " \"$object_type_name)\""; ?> 
     487                                                        </span> 
     488                                                    </label><br /> 
     489                                                <?php } ?> 
     490                                            </fieldset> 
     491                                        <?php } ?> 
     492                                    </div><!-- #cstmsrch-taxonomies-settings --> 
     493                                </td> 
     494                            </tr> 
     495                        </table> 
     496                        <?php if ( ! $bws_hide_premium_options_check ) { ?> 
     497                            <div class="bws_pro_version_bloc"> 
     498                                <div class="bws_pro_version_table_bloc"> 
     499                                <button type="submit" name="bws_hide_premium_options" class="notice-dismiss bws_hide_premium_options" title="<?php _e( 'Close', 'custom-search-plugin' ); ?>"></button> 
     500                                    <div class="bws_table_bg"></div> 
     501                                    <table class="form-table bws_pro_version"> 
     502                                        <tr valign="top"> 
     503                                            <th style="width: 190px !important; padding-top:10px;" scope="row"><?php _e( 'Enable Custom search for:', 'custom-search-plugin' ); ?></th> 
     504                                            <td width="350" style="padding-top:10px;"> 
     505                                                <?php $objects = array( 
     506                                                    $search_objects_custom['post_type']['post'], 
     507                                                    $search_objects_custom['post_type']['page'] 
     508                                                ); 
     509                                                foreach ( $objects as $current_object ) { ?> 
    208510                                                    <img title="" src="<?php echo plugins_url( 'images/dragging-arrow.png', __FILE__ ); ?>" alt="" /> 
    209                                                     <label><input type="checkbox" checked="checked" name="cstmsrchpr_options[]" value="post" disabled="disabled" />&nbsp;<span><?php _e( 'Post', 'custom-search-plugin' ); ?></span></label><br /> 
    210                                                     <img title="" src="<?php echo plugins_url( 'images/dragging-arrow.png', __FILE__ ); ?>" alt="" /> 
    211                                                     <label><input type="checkbox" checked="checked" name="cstmsrchpr_options[]" value="page" disabled="disabled" />&nbsp;<span><?php _e( 'Page', 'custom-search-plugin' ); ?></span></label><br /> 
    212                                                     <span class="bws_info"><?php _e( 'When you drag post types, you affect the order of their display in the frontend on the search page.', 'custom-search-plugin' ); ?></span> 
    213                                                 </td> 
    214                                             </tr> 
    215                                             <tr valign="top"> 
    216                                                 <th style="width: 190px !important;" scope="row"><?php _e( 'Search only by type of the current post', 'custom-search-plugin' ); ?></th> 
    217                                                 <td width="350"> 
    218                                                     <input type="checkbox" value="1" name="by_current_post_type" disabled="disabled" /><br /> 
    219                                                     <span class="bws_info"><?php _e( 'This option is used when you search on a single page/post/post type.', 'custom-search-plugin' ); ?></span>     
    220                                                 </td> 
    221                                             </tr> 
    222                                         </table> 
     511                                                    <label> 
     512                                                        <input type="checkbox" checked="checked" disabled="disabled" /> 
     513                                                            <span> 
     514                                                                <?php echo $current_object->labels->name; ?> 
     515                                                            </span> 
     516                                                    </label><br /> 
     517                                                <?php } ?> 
     518                                                <span class="bws_info"><?php _e( 'When you drag post types and taxonomies, you affect the order of their display in the frontend on the search page.', 'custom-search-plugin' ); ?></span> 
     519                                            </td> 
     520                                        </tr> 
     521                                        <tr valign="top"> 
     522                                            <th style="width: 190px !important;" scope="row"><?php _e( 'Search only by type of the current post', 'custom-search-plugin' ); ?></th> 
     523                                            <td width="350"> 
     524                                                <input type="checkbox" disabled="disabled" /><br /> 
     525                                                <span class="bws_info"><?php _e( 'This option is used when you search on a single page/post/post type.', 'custom-search-plugin' ); ?></span> 
     526                                            </td> 
     527                                        </tr> 
     528                                    </table> 
     529                                </div> 
     530                                <div class="bws_pro_version_tooltip"> 
     531                                    <div class="bws_info"> 
     532                                        <?php _e( 'Unlock premium options by upgrading to Pro version', 'custom-search-plugin' ); ?> 
    223533                                    </div> 
    224                                     <div class="bws_pro_version_tooltip"> 
    225                                         <div class="bws_info"> 
    226                                             <?php _e( 'Unlock premium options by upgrading to Pro version', 'custom-search-plugin' ); ?> 
    227                                         </div> 
    228                                         <a class="bws_button" href="http://bestwebsoft.com/products/custom-search/?k=f9558d294313c75b964f5f6fa1e5fd3c&pn=214&v=<?php echo $cstmsrch_plugin_info["Version"]; ?>&wp_v=<?php echo $wp_version; ?>" target="_blank" title="custom-search Pro"><?php _e( 'Learn More', 'custom-search-plugin' ); ?></a> 
    229                                         <div class="clear"></div> 
    230                                     </div> 
     534                                    <a class="bws_button" href="http://bestwebsoft.com/products/wordpress/plugins/custom-search/?k=f9558d294313c75b964f5f6fa1e5fd3c&pn=214&v=<?php echo $cstmsrch_plugin_info["Version"]; ?>&wp_v=<?php echo $wp_version; ?>" target="_blank" title="custom-search Pro"><?php _e( 'Learn More', 'custom-search-plugin' ); ?></a> 
     535                                    <div class="clear"></div> 
    231536                                </div> 
    232                             <?php } ?> 
    233                             <p class="submit"> 
    234                                 <input type="hidden" name="cstmsrch_submit" value="submit" /> 
    235                                 <input type="submit" id="bws-submit-button" class="button-primary" value="<?php _e( 'Save Changes' , 'custom-search-plugin' ) ?>" /> 
    236                                 <?php wp_nonce_field( $plugin_basename, 'cstmsrch_nonce_name' ); ?> 
    237                             </p> 
    238                         </form> 
     537                            </div> 
     538                        <?php } ?> 
     539                        <p class="submit"> 
     540                            <input type="hidden" name="cstmsrch_submit" value="submit" /> 
     541                            <input type="submit" id="bws-submit-button" class="button-primary" value="<?php _e( 'Save Changes' , 'custom-search-plugin' ) ?>" /> 
     542                            <?php wp_nonce_field( $plugin_basename, 'cstmsrch_nonce_name' ); ?> 
     543                        </p> 
     544                    </form> 
    239545                    <?php bws_form_restore_default_settings( $plugin_basename ); 
    240                     } else { ?> 
    241                         <p><?php _e( 'No custom post type found.', 'custom-search-plugin' ); ?></p> 
    242                     <?php } 
    243546                } 
    244547            } elseif ( 'appearance' == $_GET['action'] ) { ?> 
     
    276579                            <?php _e( 'Unlock premium options by upgrading to Pro version', 'custom-search-plugin' ); ?> 
    277580                        </div> 
    278                         <a class="bws_button" href="http://bestwebsoft.com/products/custom-search/?k=f9558d294313c75b964f5f6fa1e5fd3c&pn=214&v=<?php echo $cstmsrch_plugin_info["Version"]; ?>&wp_v=<?php echo $wp_version; ?>" target="_blank" title="custom-search Pro"><?php _e( 'Learn More', 'custom-search-plugin' ); ?></a> 
     581                        <a class="bws_button" href="http://bestwebsoft.com/products/wordpress/plugins/custom-search/?k=f9558d294313c75b964f5f6fa1e5fd3c&pn=214&v=<?php echo $cstmsrch_plugin_info["Version"]; ?>&wp_v=<?php echo $wp_version; ?>" target="_blank" title="custom-search Pro"><?php _e( 'Learn More', 'custom-search-plugin' ); ?></a> 
    279582                        <div class="clear"></div> 
    280583                    </div> 
     
    321624if ( ! function_exists( 'cstmsrch_admin_js' ) ) { 
    322625    function cstmsrch_admin_js() { 
     626        global $cstmsrch_plugin_info; 
    323627        if ( isset( $_REQUEST['page'] ) && 'custom_search.php' == $_REQUEST['page'] ) 
    324             wp_enqueue_script( 'cstmsrch_script', plugins_url( 'js/script.js', __FILE__ ) ); 
     628            wp_enqueue_script( 'cstmsrch_script', plugins_url( 'js/script.js', __FILE__ ), array(), $cstmsrch_plugin_info['Version'] ); 
     629        if ( isset( $_GET['action'] ) && 'custom_code' == $_GET['action'] ) 
     630                bws_plugins_include_codemirror(); 
    325631    } 
    326632} 
     
    329635    function cstmsrch_admin_notices() { 
    330636        global $hook_suffix, $cstmsrch_plugin_info, $cstmsrch_options; 
    331          
     637 
    332638        if ( 'plugins.php' == $hook_suffix ) { 
    333639            /* Get options from the database */ 
     
    362668        if ( ! function_exists( 'get_plugins' ) ) 
    363669            require_once( ABSPATH . 'wp-admin/includes/plugin.php' ); 
    364          
     670 
    365671        $all_plugins = get_plugins(); 
    366672 
    367673        if ( ! array_key_exists( 'custom-search-pro/custom-search-pro.php', $all_plugins ) ) { 
    368674 
    369             if ( function_exists( 'is_multisite' ) && is_multisite() ) { 
     675            if ( is_multisite() ) { 
    370676                global $wpdb; 
    371677                /* Get all blog ids */ 
     
    382688        } 
    383689 
     690        /** 
     691         * @since 1.35 
     692         * @todo remove after 01.06.2017 
     693         */ 
     694        if ( function_exists( 'cstmsrch_clear_uninstall_plugins_array' ) ) 
     695            cstmsrch_clear_uninstall_plugins_array(); 
     696        /* deprecated end */ 
     697 
    384698        require_once( dirname( __FILE__ ) . '/bws_menu/bws_include.php' ); 
    385699        bws_include_init( plugin_basename( __FILE__ ) ); 
     
    388702} 
    389703 
    390 register_activation_hook( __FILE__, 'register_cstmsrch_settings'); 
     704register_activation_hook( __FILE__, 'cstmsrch_plugin_activate'); 
    391705add_action( 'plugins_loaded', 'cstmsrch_plugins_loaded' ); 
    392706add_action( 'admin_menu', 'add_cstmsrch_admin_menu' ); 
     
    396710 
    397711add_filter( 'pre_get_posts', 'cstmsrch_searchfilter' ); 
     712add_filter( 'posts_join', 'cstmsrch_posts_join' ); 
     713add_filter( 'posts_groupby', 'cstmsrch_posts_groupby' ); 
     714add_filter( 'posts_where','cstmsrch_posts_where_tax' ); 
     715 
    398716/* Adds "Settings" link to the plugin action page */ 
    399717add_filter( 'plugin_action_links', 'cstmsrch_action_links', 10, 2 ); 
     
    401719add_filter( 'plugin_row_meta', 'cstmsrch_links', 10, 2 ); 
    402720add_action( 'admin_notices', 'cstmsrch_admin_notices' ); 
    403 register_uninstall_hook( __FILE__, 'delete_cstmsrch_settings' ); 
  • custom-search-plugin/trunk/js/script.js

    r1297263 r1573169  
    1 (function($) { 
    2     $(document).ready( function() { 
    3         $( '#cstmsrch_div_select_all' ).show(); 
    4         $( '#cstmsrch_settings_form input' ).bind( "change click select", function() { 
    5             var $select_all = $( '#cstmsrch_settings_form input#cstmsrch_select_all' ), 
    6                 $checkboxes = $( '#cstmsrch_settings_form input[name="cstmsrch_options[]"]' ), 
     1( function( $ ) { 
     2    $( document ).ready( function() { 
     3        $( '.cstmsrch_select_all_block input' ).show(); 
     4        $( '#cstmsrch_settings_form' ).on( 'change click select', 'input', function() { 
     5            var $select_all = $( this ).closest('.cstmsrch-checkbox-section').find('.cstmsrch_cb_select_all'), 
     6                $checkboxes = $( this ).closest('.cstmsrch-checkbox-section').find('.cstmsrch_cb_select'), 
    77                checkboxes_size = $checkboxes.size(), 
    88                checkboxes_selected_size = $checkboxes.filter( ':checked' ).size(); 
    9             if ( $( this ).attr( 'id' ) == $select_all.attr( 'id' ) ) { 
    10                 if ( $select_all.is( ':checked' ) ) { 
     9            if ( $( this ).hasClass( 'cstmsrch_cb_select_all' ) ) { 
     10                if ( $( this ).is( ':checked' ) ) { 
    1111                    $checkboxes.attr( 'checked', true ); 
    1212                } else { 
     
    1818                } else { 
    1919                    $select_all.attr( 'checked', false ); 
    20                 }                
     20                } 
    2121            } 
    22         }); 
    23     }); 
    24 })(jQuery); 
     22        } ); 
     23    } ); 
     24} )( jQuery ); 
  • custom-search-plugin/trunk/languages/custom-search-plugin-cs_CZ.po

    r1371457 r1573169  
    33"Project-Id-Version: Custom Search\n" 
    44"Report-Msgid-Bugs-To: \n" 
    5 "POT-Creation-Date: 2016-03-15 12:23+0300\n" 
    6 "PO-Revision-Date: 2016-03-15 12:23+0300\n" 
     5"POT-Creation-Date: 2017-01-11 15:47+0300\n" 
     6"PO-Revision-Date: 2017-01-11 15:47+0300\n" 
    77"Last-Translator: plugin@bestwebsoft.com <plugin@bestwebsoft.com>\n" 
    88"Language-Team: BestWebSoft <plugin@bestwebsoft.com>\n" 
     
    2121 
    2222# custom-search 
    23 #: custom-search-plugin.php:34 custom-search-plugin.php:174 
     23#: custom-search-plugin.php:36 custom-search-plugin.php:426 
    2424msgid "Custom Search Settings" 
    2525msgstr "Nastavení Custom Search" 
    2626 
     27#: custom-search-plugin.php:337 
     28msgid "All plugin settings were restored." 
     29msgstr "Výchozí nastavení pluginu bylo obnoveno." 
     30 
     31#: custom-search-plugin.php:351 
     32msgid "post type" 
     33msgstr "" 
     34 
     35#: custom-search-plugin.php:352 custom-search-plugin.php:457 
     36msgid "post types" 
     37msgstr "" 
     38 
     39#: custom-search-plugin.php:355 
     40msgid "taxonomy" 
     41msgstr "" 
     42 
     43#: custom-search-plugin.php:356 custom-search-plugin.php:479 
     44msgid "taxonomies" 
     45msgstr "" 
     46 
    2747# custom-search 
    28 #: custom-search-plugin.php:148 
     48#: custom-search-plugin.php:410 
    2949msgid "Settings saved" 
    3050msgstr "Nastavení uloženo" 
    3151 
    32 #: custom-search-plugin.php:163 
    33 msgid "All plugin settings were restored." 
    34 msgstr "Výchozí nastavení pluginu bylo obnoveno." 
    35  
    3652# custom-search 
    37 #: custom-search-plugin.php:176 custom-search-plugin.php:307 
    38 #: custom-search-plugin.php:321 
     53#: custom-search-plugin.php:428 custom-search-plugin.php:606 
     54#: custom-search-plugin.php:620 
    3955msgid "Settings" 
    4056msgstr "Nastavení" 
    4157 
    42 #: custom-search-plugin.php:177 
     58#: custom-search-plugin.php:429 
    4359msgid "Appearance" 
    4460msgstr "Vzhled" 
    4561 
    46 #: custom-search-plugin.php:178 
     62#: custom-search-plugin.php:430 
    4763msgid "Go PRO" 
    4864msgstr "Získat verzi Pro" 
    4965 
    5066# custom-search 
    51 #: custom-search-plugin.php:194 custom-search-plugin.php:214 
     67#: custom-search-plugin.php:450 custom-search-plugin.php:507 
    5268msgid "Enable Custom search for:" 
    5369msgstr "Aktivovat Vlastní vyhledávání:" 
    5470 
    55 #: custom-search-plugin.php:200 
    56 msgid "All" 
    57 msgstr "Vše" 
     71# custom-search 
     72#: custom-search-plugin.php:470 
     73msgid "No custom post type found." 
     74msgstr "Žádný typ příspěvku nebyl nalezen." 
    5875 
    59 #: custom-search-plugin.php:210 
     76#: custom-search-plugin.php:490 
     77msgid "for" 
     78msgstr "" 
     79 
     80#: custom-search-plugin.php:503 
    6081msgid "Close" 
    6182msgstr "Zavřít" 
    6283 
    63 #: custom-search-plugin.php:217 
    64 msgid "Post" 
    65 msgstr "Příspěvek" 
    66  
    67 #: custom-search-plugin.php:219 
    68 msgid "Page" 
    69 msgstr "Strana" 
    70  
    71 #: custom-search-plugin.php:220 
     84#: custom-search-plugin.php:522 
     85#, fuzzy 
    7286msgid "" 
    73 "When you drag post types, you affect the order of their display in the " 
    74 "frontend on the search page." 
     87"When you drag post types and taxonomies, you affect the order of their " 
     88"display in the frontend on the search page." 
    7589msgstr "" 
    7690"Při přetažení typu příspěvku, můžete ovlivnit pořadí jejich zobrazení v " 
    7791"rozhraní na stránce vyhledávání." 
    7892 
    79 #: custom-search-plugin.php:224 
     93#: custom-search-plugin.php:526 
    8094msgid "Search only by type of the current post" 
    8195msgstr "Hledat pouze podle typu aktuálního příspěvku" 
    8296 
    83 #: custom-search-plugin.php:227 
     97#: custom-search-plugin.php:529 
    8498msgid "This option is used when you search on a single page/post/post type." 
    8599msgstr "" 
     
    87101"příspěvku." 
    88102 
    89 #: custom-search-plugin.php:234 custom-search-plugin.php:284 
     103#: custom-search-plugin.php:536 custom-search-plugin.php:583 
    90104msgid "Unlock premium options by upgrading to Pro version" 
    91105msgstr "Odemknout prémiové možnosti při aktualizaci na verzi Pro" 
    92106 
    93 #: custom-search-plugin.php:236 custom-search-plugin.php:286 
     107#: custom-search-plugin.php:538 custom-search-plugin.php:585 
    94108msgid "Learn More" 
    95109msgstr "Zjistit více" 
    96110 
    97111# custom-search 
    98 #: custom-search-plugin.php:243 
     112#: custom-search-plugin.php:545 
    99113msgid "Save Changes" 
    100114msgstr "Uložit změny" 
    101115 
    102 # custom-search 
    103 #: custom-search-plugin.php:249 
    104 msgid "No custom post type found." 
    105 msgstr "Žádný typ příspěvku nebyl nalezen." 
    106  
    107 #: custom-search-plugin.php:258 
     116#: custom-search-plugin.php:557 
    108117msgid "Change displaying of post content on search pages" 
    109118msgstr "Změnit zobrazení obsahu příspěvku na stránce vyhledávání" 
    110119 
    111 #: custom-search-plugin.php:262 
     120#: custom-search-plugin.php:561 
    112121msgid "Display featured image with post content" 
    113122msgstr "Zobrazit doporučený obrázek s obsahem příspěvku" 
    114123 
    115 #: custom-search-plugin.php:266 
     124#: custom-search-plugin.php:565 
    116125msgid "Featured image size" 
    117126msgstr "Doporučená velikost obrázku" 
    118127 
    119 #: custom-search-plugin.php:270 
     128#: custom-search-plugin.php:569 
    120129msgid "Featured image align" 
    121130msgstr "Doporučené umístění obrázku" 
    122131 
    123 #: custom-search-plugin.php:272 
     132#: custom-search-plugin.php:571 
    124133msgid "Left" 
    125134msgstr "Vlevo" 
    126135 
    127 #: custom-search-plugin.php:273 
     136#: custom-search-plugin.php:572 
    128137msgid "Right" 
    129138msgstr "Vpravo" 
    130139 
    131 #: custom-search-plugin.php:277 
     140#: custom-search-plugin.php:576 
    132141msgid "Change excerpt length" 
    133142msgstr "Změna délky výňatku" 
    134143 
    135 #: custom-search-plugin.php:278 
     144#: custom-search-plugin.php:577 
    136145msgid "to" 
    137146msgstr "do" 
    138147 
    139 #: custom-search-plugin.php:278 
     148#: custom-search-plugin.php:577 
    140149msgid "words" 
    141150msgstr "slov" 
    142151 
    143152# custom-search 
    144 #: custom-search-plugin.php:322 
     153#: custom-search-plugin.php:621 
    145154msgid "FAQ" 
    146155msgstr "Často kladené otázky" 
    147156 
    148157# custom-search 
    149 #: custom-search-plugin.php:323 
     158#: custom-search-plugin.php:622 
    150159msgid "Support" 
    151160msgstr "Podpora" 
     161 
     162#, fuzzy 
     163#~ msgid "Posts" 
     164#~ msgstr "Příspěvek" 
     165 
     166#, fuzzy 
     167#~ msgid "Pages" 
     168#~ msgstr "Strana" 
     169 
     170#~ msgid "All" 
     171#~ msgstr "Vše" 
  • custom-search-plugin/trunk/languages/custom-search-plugin-es_ES.po

    r1297263 r1573169  
    33"Project-Id-Version: Custom Search\n" 
    44"Report-Msgid-Bugs-To: \n" 
    5 "POT-Creation-Date: 2015-11-26 15:08+0300\n" 
    6 "PO-Revision-Date: 2015-11-27 13:31+0300\n" 
     5"POT-Creation-Date: 2017-01-11 15:47+0300\n" 
     6"PO-Revision-Date: 2017-01-11 15:48+0300\n" 
    77"Last-Translator: plugin@bestwebsoft.com <plugin@bestwebsoft.com>\n" 
    88"Language-Team: Fernando De Le&oacute;n <mrjosefernando@gmail.com>\n" 
     
    2020 
    2121# @ custom-search 
    22 #: custom-search-plugin.php:34 custom-search-plugin.php:174 
     22#: custom-search-plugin.php:36 custom-search-plugin.php:426 
    2323msgid "Custom Search Settings" 
    2424msgstr "Configuraci&oacute;n de B&uacute;squeda personalizada" 
    2525 
    26 # @ captcha 
    27 #: custom-search-plugin.php:148 
     26#: custom-search-plugin.php:337 
     27msgid "All plugin settings were restored." 
     28msgstr "" 
     29 
     30#: custom-search-plugin.php:351 
     31msgid "post type" 
     32msgstr "" 
     33 
     34#: custom-search-plugin.php:352 custom-search-plugin.php:457 
     35msgid "post types" 
     36msgstr "" 
     37 
     38#: custom-search-plugin.php:355 
     39msgid "taxonomy" 
     40msgstr "" 
     41 
     42#: custom-search-plugin.php:356 custom-search-plugin.php:479 
     43msgid "taxonomies" 
     44msgstr "" 
     45 
     46# @ captcha 
     47#: custom-search-plugin.php:410 
    2848msgid "Settings saved" 
    2949msgstr "Configuraci&oacute;n" 
    3050 
    31 #: custom-search-plugin.php:163 
    32 msgid "All plugin settings were restored." 
    33 msgstr "" 
    34  
    35 # @ captcha 
    36 #: custom-search-plugin.php:176 custom-search-plugin.php:307 
    37 #: custom-search-plugin.php:321 
     51# @ captcha 
     52#: custom-search-plugin.php:428 custom-search-plugin.php:606 
     53#: custom-search-plugin.php:620 
    3854msgid "Settings" 
    3955msgstr "Configuraci&oacute;n" 
    4056 
    41 #: custom-search-plugin.php:177 
     57#: custom-search-plugin.php:429 
    4258msgid "Appearance" 
    4359msgstr "" 
    4460 
    45 #: custom-search-plugin.php:178 
     61#: custom-search-plugin.php:430 
    4662msgid "Go PRO" 
    4763msgstr "" 
    4864 
    4965# @ custom-search 
    50 #: custom-search-plugin.php:194 custom-search-plugin.php:214 
     66#: custom-search-plugin.php:450 custom-search-plugin.php:507 
    5167msgid "Enable Custom search for:" 
    5268msgstr "Activar la b&uacute;squeda personalizada en:" 
    5369 
    54 #: custom-search-plugin.php:200 
    55 msgid "All" 
    56 msgstr "" 
    57  
    58 #: custom-search-plugin.php:210 
     70# @ custom-search 
     71#: custom-search-plugin.php:470 
     72msgid "No custom post type found." 
     73msgstr "No ha producido ning&uacute;n tipo de mensaje personalizado." 
     74 
     75#: custom-search-plugin.php:490 
     76msgid "for" 
     77msgstr "" 
     78 
     79#: custom-search-plugin.php:503 
    5980msgid "Close" 
    6081msgstr "" 
    6182 
    62 #: custom-search-plugin.php:217 
    63 msgid "Post" 
    64 msgstr "" 
    65  
    66 #: custom-search-plugin.php:219 
    67 msgid "Page" 
    68 msgstr "" 
    69  
    70 #: custom-search-plugin.php:220 
     83#: custom-search-plugin.php:522 
    7184msgid "" 
    72 "When you drag post types, you affect the order of their display in the " 
    73 "frontend on the search page." 
    74 msgstr "" 
    75  
    76 #: custom-search-plugin.php:224 
     85"When you drag post types and taxonomies, you affect the order of their " 
     86"display in the frontend on the search page." 
     87msgstr "" 
     88 
     89#: custom-search-plugin.php:526 
    7790msgid "Search only by type of the current post" 
    7891msgstr "" 
    7992 
    80 #: custom-search-plugin.php:227 
     93#: custom-search-plugin.php:529 
    8194msgid "This option is used when you search on a single page/post/post type." 
    8295msgstr "" 
    8396 
    84 #: custom-search-plugin.php:234 custom-search-plugin.php:284 
     97#: custom-search-plugin.php:536 custom-search-plugin.php:583 
    8598msgid "Unlock premium options by upgrading to Pro version" 
    8699msgstr "" 
    87100 
    88 #: custom-search-plugin.php:236 custom-search-plugin.php:286 
     101#: custom-search-plugin.php:538 custom-search-plugin.php:585 
    89102msgid "Learn More" 
    90103msgstr "" 
    91104 
    92105# @ default 
    93 #: custom-search-plugin.php:243 
     106#: custom-search-plugin.php:545 
    94107msgid "Save Changes" 
    95108msgstr "Guardar Cambios" 
    96109 
    97 # @ custom-search 
    98 #: custom-search-plugin.php:249 
    99 msgid "No custom post type found." 
    100 msgstr "No ha producido ning&uacute;n tipo de mensaje personalizado." 
    101  
    102 #: custom-search-plugin.php:258 
     110#: custom-search-plugin.php:557 
    103111msgid "Change displaying of post content on search pages" 
    104112msgstr "" 
    105113 
    106 #: custom-search-plugin.php:262 
     114#: custom-search-plugin.php:561 
    107115msgid "Display featured image with post content" 
    108116msgstr "" 
    109117 
    110 #: custom-search-plugin.php:266 
     118#: custom-search-plugin.php:565 
    111119msgid "Featured image size" 
    112120msgstr "" 
    113121 
    114 #: custom-search-plugin.php:270 
     122#: custom-search-plugin.php:569 
    115123msgid "Featured image align" 
    116124msgstr "" 
    117125 
    118 #: custom-search-plugin.php:272 
     126#: custom-search-plugin.php:571 
    119127msgid "Left" 
    120128msgstr "" 
    121129 
    122 #: custom-search-plugin.php:273 
     130#: custom-search-plugin.php:572 
    123131msgid "Right" 
    124132msgstr "" 
    125133 
    126 #: custom-search-plugin.php:277 
     134#: custom-search-plugin.php:576 
    127135msgid "Change excerpt length" 
    128136msgstr "" 
    129137 
    130 #: custom-search-plugin.php:278 
     138#: custom-search-plugin.php:577 
    131139msgid "to" 
    132140msgstr "" 
    133141 
    134 #: custom-search-plugin.php:278 
     142#: custom-search-plugin.php:577 
    135143msgid "words" 
    136144msgstr "" 
    137145 
    138 #: custom-search-plugin.php:322 
     146#: custom-search-plugin.php:621 
    139147msgid "FAQ" 
    140148msgstr "" 
    141149 
    142 #: custom-search-plugin.php:323 
     150#: custom-search-plugin.php:622 
    143151msgid "Support" 
    144152msgstr "" 
  • custom-search-plugin/trunk/languages/custom-search-plugin-ru_RU.po

    r1297263 r1573169  
    33"Project-Id-Version: Custom Search\n" 
    44"Report-Msgid-Bugs-To: \n" 
    5 "POT-Creation-Date: 2015-11-26 15:07+0300\n" 
    6 "PO-Revision-Date: 2015-11-26 15:07+0300\n" 
     5"POT-Creation-Date: 2017-01-11 15:48+0300\n" 
     6"PO-Revision-Date: 2017-01-11 16:32+0300\n" 
    77"Last-Translator: plugin@bestwebsoft.com <plugin@bestwebsoft.com>\n" 
    88"Language-Team: BestWebSoft <plugin@bestwebsoft.com>\n" 
     
    2222 
    2323# @ custom-search 
    24 #: custom-search-plugin.php:34 custom-search-plugin.php:174 
     24#: custom-search-plugin.php:36 custom-search-plugin.php:426 
    2525msgid "Custom Search Settings" 
    2626msgstr "Настройки Custom Search" 
    2727 
     28#: custom-search-plugin.php:337 
     29msgid "All plugin settings were restored." 
     30msgstr "Настройки плагина были восстановлены." 
     31 
     32#: custom-search-plugin.php:351 
     33msgid "post type" 
     34msgstr "тип записи" 
     35 
     36#: custom-search-plugin.php:352 custom-search-plugin.php:457 
     37msgid "post types" 
     38msgstr "типы записи" 
     39 
     40#: custom-search-plugin.php:355 
     41msgid "taxonomy" 
     42msgstr "таксономия" 
     43 
     44#: custom-search-plugin.php:356 custom-search-plugin.php:479 
     45msgid "taxonomies" 
     46msgstr "таксономии" 
     47 
    2848# @ custom-search 
    29 #: custom-search-plugin.php:148 
     49#: custom-search-plugin.php:410 
    3050msgid "Settings saved" 
    3151msgstr "Настройки сохранены" 
    3252 
    33 #: custom-search-plugin.php:163 
    34 msgid "All plugin settings were restored." 
    35 msgstr "Настройки плагина были восстановлены." 
    36  
    3753# @ custom-search 
    38 #: custom-search-plugin.php:176 custom-search-plugin.php:307 
    39 #: custom-search-plugin.php:321 
     54#: custom-search-plugin.php:428 custom-search-plugin.php:606 
     55#: custom-search-plugin.php:620 
    4056msgid "Settings" 
    4157msgstr "Настройки" 
    4258 
    43 #: custom-search-plugin.php:177 
     59#: custom-search-plugin.php:429 
    4460msgid "Appearance" 
    4561msgstr "Отображение" 
    4662 
    47 #: custom-search-plugin.php:178 
     63#: custom-search-plugin.php:430 
    4864msgid "Go PRO" 
    4965msgstr "Перейти на PRO версию" 
    5066 
    5167# @ custom-search 
    52 #: custom-search-plugin.php:194 custom-search-plugin.php:214 
     68#: custom-search-plugin.php:450 custom-search-plugin.php:507 
    5369msgid "Enable Custom search for:" 
    54 msgstr "Отображать Кастомный поиск для:" 
     70msgstr "Добавить в кастомный поиск:" 
    5571 
    56 #: custom-search-plugin.php:200 
    57 msgid "All" 
    58 msgstr "Всех" 
     72# @ custom-search 
     73#: custom-search-plugin.php:470 
     74msgid "No custom post type found." 
     75msgstr "Не найдено ни одного пользовательского типа записи." 
    5976 
    60 #: custom-search-plugin.php:210 
     77#: custom-search-plugin.php:490 
     78msgid "for" 
     79msgstr "для" 
     80 
     81#: custom-search-plugin.php:503 
    6182msgid "Close" 
    6283msgstr "Закрыть" 
    6384 
    64 #: custom-search-plugin.php:217 
    65 msgid "Post" 
    66 msgstr "Пост" 
     85#: custom-search-plugin.php:522 
     86msgid "" 
     87"When you drag post types and taxonomies, you affect the order of their " 
     88"display in the frontend on the search page." 
     89msgstr "" 
     90"При перетаскивании типов записей и таксономий вы влияете на порядок их " 
     91"вывода во фронтенде на странице поиска." 
    6792 
    68 #: custom-search-plugin.php:219 
    69 msgid "Page" 
    70 msgstr "Страница" 
    71  
    72 #: custom-search-plugin.php:220 
    73 msgid "" 
    74 "When you drag post types, you affect the order of their display in the " 
    75 "frontend on the search page." 
    76 msgstr "" 
    77 "При перетаскивании типов постов вы влияете на порядок их вывода во фронтенде " 
    78 "на странице поиска." 
    79  
    80 #: custom-search-plugin.php:224 
     93#: custom-search-plugin.php:526 
    8194msgid "Search only by type of the current post" 
    8295msgstr "Искать только по типу текущей страницы" 
    8396 
    84 #: custom-search-plugin.php:227 
     97#: custom-search-plugin.php:529 
    8598msgid "This option is used when you search on a single page/post/post type." 
    8699msgstr "" 
    87 "Эта опция используется, когда Вы находитесь на странице записи/страницы/пост " 
    88 "типа." 
     100"Эта опция используется, когда Вы находитесь на странице записи/страницы/типа " 
     101"записи." 
    89102 
    90 #: custom-search-plugin.php:234 custom-search-plugin.php:284 
     103#: custom-search-plugin.php:536 custom-search-plugin.php:583 
    91104msgid "Unlock premium options by upgrading to Pro version" 
    92105msgstr "Активируйте премиум опции обновившись до Pro версии" 
    93106 
    94 #: custom-search-plugin.php:236 custom-search-plugin.php:286 
     107#: custom-search-plugin.php:538 custom-search-plugin.php:585 
    95108msgid "Learn More" 
    96109msgstr "Подробнее" 
    97110 
    98111# @ custom-search 
    99 #: custom-search-plugin.php:243 
     112#: custom-search-plugin.php:545 
    100113msgid "Save Changes" 
    101114msgstr "Сохранить изменения" 
    102115 
    103 # @ custom-search 
    104 #: custom-search-plugin.php:249 
    105 msgid "No custom post type found." 
    106 msgstr "Не найдено ни одного кастомного поста." 
    107  
    108 #: custom-search-plugin.php:258 
     116#: custom-search-plugin.php:557 
    109117msgid "Change displaying of post content on search pages" 
    110118msgstr "Изменить отображение контента записи на страницах поиска" 
    111119 
    112 #: custom-search-plugin.php:262 
     120#: custom-search-plugin.php:561 
    113121msgid "Display featured image with post content" 
    114122msgstr "Отображать избранное изображение с контентом записи" 
    115123 
    116 #: custom-search-plugin.php:266 
     124#: custom-search-plugin.php:565 
    117125msgid "Featured image size" 
    118126msgstr "Размер миниатюры" 
    119127 
    120 #: custom-search-plugin.php:270 
     128#: custom-search-plugin.php:569 
    121129msgid "Featured image align" 
    122130msgstr "Расположение миниатюры" 
    123131 
    124 #: custom-search-plugin.php:272 
     132#: custom-search-plugin.php:571 
    125133msgid "Left" 
    126134msgstr "Слева" 
    127135 
    128 #: custom-search-plugin.php:273 
     136#: custom-search-plugin.php:572 
    129137msgid "Right" 
    130138msgstr "Справа" 
    131139 
    132 #: custom-search-plugin.php:277 
     140#: custom-search-plugin.php:576 
    133141msgid "Change excerpt length" 
    134142msgstr "Изменить длину цитаты" 
    135143 
    136 #: custom-search-plugin.php:278 
     144#: custom-search-plugin.php:577 
    137145msgid "to" 
    138146msgstr "на" 
    139147 
    140 #: custom-search-plugin.php:278 
     148#: custom-search-plugin.php:577 
    141149msgid "words" 
    142150msgstr "слов" 
    143151 
    144152# @ custom-search 
    145 #: custom-search-plugin.php:322 
     153#: custom-search-plugin.php:621 
    146154msgid "FAQ" 
    147155msgstr "FAQ" 
    148156 
    149157# @ custom-search 
    150 #: custom-search-plugin.php:323 
     158#: custom-search-plugin.php:622 
    151159msgid "Support" 
    152160msgstr "Тех.поддержка" 
     161 
     162#~ msgid "Posts" 
     163#~ msgstr "Записи" 
     164 
     165#~ msgid "Pages" 
     166#~ msgstr "Страницы" 
     167 
     168#~ msgid "Post types" 
     169#~ msgstr "Типы записей" 
     170 
     171#~ msgid "Taxonomies" 
     172#~ msgstr "Таксономии" 
     173 
     174#~ msgid "All" 
     175#~ msgstr "Всех" 
     176 
     177#~ msgid "Tags" 
     178#~ msgstr "Теги" 
     179 
     180#~ msgid "Categories" 
     181#~ msgstr "Категории" 
  • custom-search-plugin/trunk/languages/custom-search-plugin-uk.po

    r1297263 r1573169  
    33"Project-Id-Version: Custom Search\n" 
    44"Report-Msgid-Bugs-To: \n" 
    5 "POT-Creation-Date: 2015-11-26 15:08+0300\n" 
    6 "PO-Revision-Date: 2015-11-26 15:08+0300\n" 
     5"POT-Creation-Date: 2017-01-11 15:48+0300\n" 
     6"PO-Revision-Date: 2017-01-11 16:33+0300\n" 
    77"Last-Translator: plugin@bestwebsoft.com <plugin@bestwebsoft.com>\n" 
    88"Language-Team: BestWebSoft <plugin@bestwebsoft.com>\n" 
     
    1717"X-Poedit-SearchPath-0: .\n" 
    1818 
    19 #: custom-search-plugin.php:34 custom-search-plugin.php:174 
     19#: custom-search-plugin.php:36 custom-search-plugin.php:426 
    2020msgid "Custom Search Settings" 
    2121msgstr "Установки Custom Search" 
    2222 
    23 #: custom-search-plugin.php:148 
     23#: custom-search-plugin.php:337 
     24msgid "All plugin settings were restored." 
     25msgstr "Всі налаштування плагіну були відновлені." 
     26 
     27#: custom-search-plugin.php:351 
     28msgid "post type" 
     29msgstr "тип запису" 
     30 
     31#: custom-search-plugin.php:352 custom-search-plugin.php:457 
     32msgid "post types" 
     33msgstr "типи записів" 
     34 
     35#: custom-search-plugin.php:355 
     36msgid "taxonomy" 
     37msgstr "таксономія" 
     38 
     39#: custom-search-plugin.php:356 custom-search-plugin.php:479 
     40msgid "taxonomies" 
     41msgstr "таксономії" 
     42 
     43#: custom-search-plugin.php:410 
    2444msgid "Settings saved" 
    2545msgstr "Установки збережено" 
    2646 
    27 #: custom-search-plugin.php:163 
    28 msgid "All plugin settings were restored." 
    29 msgstr "Всі налаштування плагіну були відновлені." 
    30  
    31 #: custom-search-plugin.php:176 custom-search-plugin.php:307 
    32 #: custom-search-plugin.php:321 
     47#: custom-search-plugin.php:428 custom-search-plugin.php:606 
     48#: custom-search-plugin.php:620 
    3349msgid "Settings" 
    3450msgstr "Установки" 
    3551 
    36 #: custom-search-plugin.php:177 
     52#: custom-search-plugin.php:429 
    3753msgid "Appearance" 
    3854msgstr "Відображення" 
    3955 
    40 #: custom-search-plugin.php:178 
     56#: custom-search-plugin.php:430 
    4157msgid "Go PRO" 
    4258msgstr "Перейти на PRO версію" 
    4359 
    44 #: custom-search-plugin.php:194 custom-search-plugin.php:214 
     60#: custom-search-plugin.php:450 custom-search-plugin.php:507 
    4561msgid "Enable Custom search for:" 
    46 msgstr "Дозволити Кастомний пошук для:" 
     62msgstr "Додати до кастомного пошуку:" 
    4763 
    48 #: custom-search-plugin.php:200 
    49 msgid "All" 
    50 msgstr "Всіх" 
     64#: custom-search-plugin.php:470 
     65msgid "No custom post type found." 
     66msgstr "Не знайдено жодного кастомного типу записів." 
    5167 
    52 #: custom-search-plugin.php:210 
     68#: custom-search-plugin.php:490 
     69msgid "for" 
     70msgstr "для" 
     71 
     72#: custom-search-plugin.php:503 
    5373msgid "Close" 
    5474msgstr "Закрити" 
    5575 
    56 #: custom-search-plugin.php:217 
    57 msgid "Post" 
    58 msgstr "Записи" 
     76#: custom-search-plugin.php:522 
     77msgid "" 
     78"When you drag post types and taxonomies, you affect the order of their " 
     79"display in the frontend on the search page." 
     80msgstr "" 
     81"При перетягуванні типів записів і таксономій, ви впливаєте на їх " 
     82"відображення у фронтенді на сторінці пошуку." 
    5983 
    60 #: custom-search-plugin.php:219 
    61 msgid "Page" 
    62 msgstr "Сторiнки" 
    63  
    64 #: custom-search-plugin.php:220 
    65 msgid "" 
    66 "When you drag post types, you affect the order of their display in the " 
    67 "frontend on the search page." 
    68 msgstr "" 
    69 "При перетягуванні типів постів, ви впливаєте на їх відображення у фронтенді " 
    70 "на сторінці пошуку." 
    71  
    72 #: custom-search-plugin.php:224 
     84#: custom-search-plugin.php:526 
    7385msgid "Search only by type of the current post" 
    7486msgstr "Шукати тільки по типу поточного запису" 
    7587 
    76 #: custom-search-plugin.php:227 
     88#: custom-search-plugin.php:529 
    7789msgid "This option is used when you search on a single page/post/post type." 
    7890msgstr "" 
    7991"Ця опція використовується, коли Ви знаходитесь на сторінці запису/сторінки/" 
    80 "пост типу." 
     92"типу запису." 
    8193 
    82 #: custom-search-plugin.php:234 custom-search-plugin.php:284 
     94#: custom-search-plugin.php:536 custom-search-plugin.php:583 
    8395msgid "Unlock premium options by upgrading to Pro version" 
    8496msgstr "Зробити доступними преміум-опції, перейшовши на Pro версію" 
    8597 
    86 #: custom-search-plugin.php:236 custom-search-plugin.php:286 
     98#: custom-search-plugin.php:538 custom-search-plugin.php:585 
    8799msgid "Learn More" 
    88100msgstr "Докладніше" 
    89101 
    90 #: custom-search-plugin.php:243 
     102#: custom-search-plugin.php:545 
    91103msgid "Save Changes" 
    92104msgstr "Зберегти зміни" 
    93105 
    94 #: custom-search-plugin.php:249 
    95 msgid "No custom post type found." 
    96 msgstr "Не знайдено жодного типу кастомного посту." 
    97  
    98 #: custom-search-plugin.php:258 
     106#: custom-search-plugin.php:557 
    99107msgid "Change displaying of post content on search pages" 
    100108msgstr "Змінити відображення контенту записів на сторінках пошуку" 
    101109 
    102 #: custom-search-plugin.php:262 
     110#: custom-search-plugin.php:561 
    103111msgid "Display featured image with post content" 
    104112msgstr "Відобразити головне зображення для контенту запису" 
    105113 
    106 #: custom-search-plugin.php:266 
     114#: custom-search-plugin.php:565 
    107115msgid "Featured image size" 
    108116msgstr "Розмір головного зображення" 
    109117 
    110 #: custom-search-plugin.php:270 
     118#: custom-search-plugin.php:569 
    111119msgid "Featured image align" 
    112120msgstr "Розташування головного зображення" 
    113121 
    114 #: custom-search-plugin.php:272 
     122#: custom-search-plugin.php:571 
    115123msgid "Left" 
    116124msgstr "Ліворуч" 
    117125 
    118 #: custom-search-plugin.php:273 
     126#: custom-search-plugin.php:572 
    119127msgid "Right" 
    120128msgstr "Праворуч" 
    121129 
    122 #: custom-search-plugin.php:277 
     130#: custom-search-plugin.php:576 
    123131msgid "Change excerpt length" 
    124132msgstr "Змінити довжину витягу" 
    125133 
    126 #: custom-search-plugin.php:278 
     134#: custom-search-plugin.php:577 
    127135msgid "to" 
    128136msgstr "на" 
    129137 
    130 #: custom-search-plugin.php:278 
     138#: custom-search-plugin.php:577 
    131139msgid "words" 
    132140msgstr "слів" 
    133141 
    134 #: custom-search-plugin.php:322 
     142#: custom-search-plugin.php:621 
    135143msgid "FAQ" 
    136144msgstr "FAQ" 
    137145 
    138 #: custom-search-plugin.php:323 
     146#: custom-search-plugin.php:622 
    139147msgid "Support" 
    140148msgstr "Підтримка" 
     149 
     150#~ msgid "Posts" 
     151#~ msgstr "Записи" 
     152 
     153#~ msgid "Pages" 
     154#~ msgstr "Сторiнки" 
     155 
     156#~ msgid "Post types" 
     157#~ msgstr "Типи записів" 
     158 
     159#~ msgid "Taxonomies" 
     160#~ msgstr "Таксономії" 
     161 
     162#~ msgid "All" 
     163#~ msgstr "Всіх" 
     164 
     165#~ msgid "Tags" 
     166#~ msgstr "Теги" 
     167 
     168#~ msgid "Categories" 
     169#~ msgstr "Категорії" 
    141170 
    142171#~ msgid "Notice:" 
  • custom-search-plugin/trunk/readme.txt

    r1563499 r1573169  
    44Tags: additional search options, extra search options, advanced search, add additional search options, search options, custom search, custom search plugin, website search, add custom posts to search, custom posts, free additional search options, custom content types 
    55Requires at least: 3.8 
    6 Tested up to: 4.7 
    7 Stable tag: 1.34 
     6Tested up to: 4.7.1 
     7Stable tag: 1.35 
    88License: GPLv2 or later 
    99License URI: http://www.gnu.org/licenses/gpl-2.0.html 
    1010 
    11 Add custom post types to WordPress website search results. 
     11Add custom post types and taxonomies to WordPress website search results. 
    1212 
    1313== Description == 
    1414 
    15 With Custom Search plugin you can add custom post types to WordPress website search results. A quick and easy way to search everything within custom post types. Improve your website user experience today! 
     15Custom Search plugin adds custom post types and taxonomies to WordPress website search results. A quick and easy way to search everything within custom post types and taxonomies. 
     16Improve your website user experience today! 
    1617 
    1718http://www.youtube.com/watch?v=qF2-pFM_ESw 
     
    1920= Free Features = 
    2021 
    21 * Search by all custom post types including: 
    22     * [Gallery](http://bestwebsoft.com/products/gallery/?k=a7970636432b7a4dcc5ad805f87b2696) 
    23     * [Portfolio](http://bestwebsoft.com/products/portfolio/?k=2ac66bf272f5329cdf78ed8cb10d49b2) 
    24     * [Cars](http://bestwebsoft.com/products/car-rental/?k=4f3314a1fe385c140e4ff9e361b2e300) 
    25     * [Properties & Agents](http://bestwebsoft.com/products/realty/?k=9916846ebbdecc2ba40ce3bff4fbf9f2) 
    26     * [Jobs](http://bestwebsoft.com/products/job-board/) 
     22* Search by: 
     23    * All custom post types including: 
     24        * [Galleries](http://bestwebsoft.com/products/wordpress/plugins/gallery/?k=a7970636432b7a4dcc5ad805f87b2696) 
     25        * [Portfolio projects](http://bestwebsoft.com/products/wordpress/plugins/portfolio/?k=2ac66bf272f5329cdf78ed8cb10d49b2) 
     26        * [Cars](http://bestwebsoft.com/products/wordpress/plugins/car-rental/?k=4f3314a1fe385c140e4ff9e361b2e300) 
     27        * [Properties & Agents](http://bestwebsoft.com/products/wordpress/plugins/realty/?k=9916846ebbdecc2ba40ce3bff4fbf9f2) 
     28        * [Jobs](http://bestwebsoft.com/products/wordpress/plugins/job-board/) 
     29    * Taxonomies: [NEW] 
     30        * Post tags 
     31        * Post categories 
     32        * Custom 
    2733* Compatible with latest WordPress version 
    2834* Incredibly simple settings for fast setup without modifying code 
     
    3743>   * Posts 
    3844>   * Pages 
    39 > * Configure custom post types displaying order on the search results page  
     45> * Configure custom post types and taxonomies displaying order on the search results page 
    4046> * Display featured image for post types on the search results page 
    41 > * Choose featured image size  
     47> * Choose featured image size 
    4248> * Choose featured image align position: 
    4349>   * Left 
    4450>   * Right 
    45 > * Searching by the post type of the current page  
     51> * Search by the post type of the current page 
    4652> * Change excerpt length 
    4753> * Add custom code via plugin settings page 
    4854> * Get answer to your question within one business day ([Support Policy](http://bestwebsoft.com/support-policy/)) 
    4955> 
    50 > [Upgrade to Pro Now](http://bestwebsoft.com/products/custom-search/?k=b67e3e538cdb8bb841b81467655eb0f7) 
     56> [Upgrade to Pro Now](http://bestwebsoft.com/products/wordpress/plugins/custom-search/?k=b67e3e538cdb8bb841b81467655eb0f7) 
    5157 
    5258If you have a feature suggestion or idea you'd like to see in the plugin, we'd love to hear about it! [Suggest a Feature](http://support.bestwebsoft.com/hc/en-us/requests/new) 
     
    6167= Help & Support = 
    6268 
    63 Visit our Help Center if you have any questions, our friendly Support Team is happy to help <http://support.bestwebsoft.com/> 
     69Visit our Help Center if you have any questions, our friendly Support Team is happy to help - <http://support.bestwebsoft.com/> 
    6470 
    6571= Translation = 
     
    7480= Recommended Plugins = 
    7581 
    76 * [Custom Fields Search](http://bestwebsoft.com/products/custom-fields-search/) - Add custom fields to WordPress website search results. 
    77 * [Updater](http://bestwebsoft.com/products/updater/?k=7b42404bbc8ad8cb8745f8704cba3c9a) - Automatically check and update WordPress core with all installed plugins to the latest versions. Manual mode, email notifications and backups of all your files and database before updating. 
     82* [Custom Fields Search](http://bestwebsoft.com/products/wordpress/plugins/custom-fields-search/) - Add custom fields to WordPress website search results. 
     83* [Updater](http://bestwebsoft.com/products/wordpress/plugins/updater/?k=7b42404bbc8ad8cb8745f8704cba3c9a) - Automatically check and update WordPress core with all installed plugins to the latest versions. Manual mode, email notifications and backups of all your files and database before updating. 
    7884 
    7985= Donate = 
     
    95101= Usage = 
    96102 
    97 Go to the Settings page and select custom types that you would like to add to the search. 
     103Go to the Settings page and select custom post types and taxonomies that you would like to add to the search. 
    98104 
    99105= I have some problems with the plugin's work. What Information should I provide to receive proper support? = 
     
    113119== Changelog == 
    114120 
     121= V1.35 - 12.01.2017 = 
     122* NEW : Ability to search by term name has been added. 
     123 
    115124= V1.34 - 09.08.2016 = 
    116125* Update : All functionality for wordpress 4.6 was updated. 
     
    152161* Update : We updated all functionality for wordpress 4.1.1. 
    153162 
    154 = V1.23 - 26.12.2014 =  
     163= V1.23 - 26.12.2014 = 
    155164* Update : BWS plugins section is updated. 
    156165* Update : We updated all functionality for wordpress 4.1. 
     
    175184* Update : BWS plugins section is updated. 
    176185* Update : We updated all functionality for wordpress 3.8.1. 
    177 * Budfix : Problem with search results in back-end is fixed.  
     186* Budfix : Problem with search results in back-end is fixed. 
    178187 
    179188= V1.18 - 26.12.2013 = 
     
    204213 
    205214= V1.12 - 24.05.2013 = 
    206 * Bugfix : The error related to undefined variable is fixed.  
     215* Bugfix : The error related to undefined variable is fixed. 
    207216* Changed : BWS plugins section. 
    208217 
     
    224233 
    225234= V1.06 - 24.07.2012 = 
    226 * Bugfix : Cross Site Request Forgery bug is fixed.  
     235* Bugfix : Cross Site Request Forgery bug is fixed. 
    227236 
    228237= V1.05 - 10.07.2012 = 
     
    234243 
    235244= V1.03 - 12.03.2012 = 
    236 * Changed : BWS plugins section.  
     245* Changed : BWS plugins section. 
    237246 
    238247= V1.02 - 24.02.2012 = 
     
    244253== Upgrade Notice == 
    245254 
     255= V1.35 = 
     256* New features added. 
     257 
    246258= V1.34 = 
    247259* The compatibility with new WordPress version updated. 
     
    287299 
    288300= V1.20 = 
    289 BWS plugins section is updated. We updated all functionality for wordpress 3.8.1. Plugin optimization is done. Problem with including nav_menu types to the search results is fixed. Bug with displaying of custom types of deactiveted plugins is fixed.  
     301BWS plugins section is updated. We updated all functionality for wordpress 3.8.1. Plugin optimization is done. Problem with including nav_menu types to the search results is fixed. Bug with displaying of custom types of deactiveted plugins is fixed. 
    290302 
    291303= V1.19 = 
     
    329341 
    330342= V1.06 = 
    331 Cross Site Request Forgery bug was fixed.  
     343Cross Site Request Forgery bug was fixed. 
    332344 
    333345= V1.05 = 
     
    338350 
    339351= V1.03 = 
    340 BWS plugins section has been changed.  
     352BWS plugins section has been changed. 
    341353 
    342354= V1.02 = 
Note: See TracChangeset for help on using the changeset viewer.