Plugin Directory

Changeset 3241205


Ignore:
Timestamp:
02/16/2025 06:53:26 AM (3 weeks ago)
Author:
ankitmaru
Message:

Update to version 5.0.0 from GitHub

Location:
hide-admin-bar-based-on-user-roles
Files:
24 added
34 deleted
12 edited
1 copied

Legend:

Unmodified
Added
Removed
  • hide-admin-bar-based-on-user-roles/tags/5.0.0/README.txt

    r3214206 r3241205  
    88Tested up to: 6.7
    99Requires PHP: 5.6
    10 Stable tag: 4.1.0
     10Stable tag: 5.0.0
    1111License: GPLv2 or later
    1212License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    7070== Changelog ==
    7171
     72= 5.0.0 - 16-02-2025 =
     73* Admin ui updated.
     74* Compatibility tested & Tested with the latest WordPress version.
     75
    7276= 4.1.0 - 28-12-2024 =
    7377Compatibility tested & Tested with the latest WordPress version.
  • hide-admin-bar-based-on-user-roles/tags/5.0.0/admin/class-hide-admin-bar-based-on-user-roles-admin.php

    r3085812 r3241205  
    7676
    7777        if ( isset( $_GET['page'] ) && $_GET['page'] == 'hide-admin-bar-settings' ) {
    78             wp_enqueue_style( "hab_materials_icons", plugin_dir_url( __FILE__ ) . 'css/materialdesignicons.min.css', array(), $this->version, 'all' );
    79             wp_enqueue_style( "hab_icheck", plugin_dir_url( __FILE__ ) . 'css/all.css', array(), $this->version, 'all' );
    80             wp_enqueue_style( "hab_tags_input", plugin_dir_url( __FILE__ ) . 'css/jquery.tagsinput.min.css', array(), $this->version, 'all' );
    81             wp_enqueue_style( "hab_style", plugin_dir_url( __FILE__ ) . 'css/style.css', array(), $this->version, 'all' );
    82             wp_enqueue_style( "hab_style_1", plugin_dir_url( __FILE__ ) . 'css/style_1.css', array(), $this->version, 'all' );
    83 
    84             wp_enqueue_style( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'css/hide-admin-bar-based-on-user-roles-admin.css', array(), $this->version, 'all' );
     78
     79            wp_enqueue_style( 'select2-css', plugin_dir_url( __FILE__ ) . 'css/select2.min.css', array(), $this->version, 'all' );
     80
     81            wp_enqueue_style( 'ultimakit_bootstrap_main', plugin_dir_url( __FILE__ ) . 'css/bootstrap.min.css', array(), $this->version, 'all' );
     82            wp_enqueue_style( 'ultimakit_bootstrap_rtl', plugin_dir_url( __FILE__ ) . 'css/bootstrap.rtl.min.css', array(), $this->version, 'all' );
     83            // Enqueue toastr CSS.
     84            wp_enqueue_style( 'toastr-css', plugin_dir_url( __FILE__ ) . 'css/toastr.min.css', array(), $this->version, 'all' );
     85           
     86            wp_enqueue_style('dashicons');
     87                           
     88            wp_enqueue_style( 'tagsinput-css', plugin_dir_url( __FILE__ ) . 'css/jquery.tagsinput.min.css', array(), $this->version, 'all' );
     89            wp_enqueue_style( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'css/main.css', array(), $this->version, 'all' );
     90            wp_enqueue_style( $this->plugin_name.'-admin', plugin_dir_url( __FILE__ ) . 'css/hide-admin-bar-based-on-user-roles-admin.css', array(), $this->version, 'all' );
     91           
    8592        }
    8693
     
    107114        if ( isset( $_GET['page'] ) && $_GET['page'] == 'hide-admin-bar-settings' ) {
    108115
    109             wp_enqueue_script( "hab_base_js", plugin_dir_url( __FILE__ ) . 'js/vendor.bundle.base.js', array( 'jquery' ), $this->version, false );
    110 
    111             wp_enqueue_script( "hab_icheck_min", plugin_dir_url( __FILE__ ) . 'js/icheck.min.js', array( 'jquery' ), $this->version, false );
    112 
    113             wp_enqueue_script( "hab_tags_input", plugin_dir_url( __FILE__ ) . 'js/jquery.tagsinput.min.js', array( 'jquery' ), $this->version, false );
    114 
    115             wp_enqueue_script( "hab_icheck", plugin_dir_url( __FILE__ ) . 'js/iCheck.js', array( 'jquery' ), $this->version, false );
     116            wp_enqueue_script( 'jquery' );
     117            wp_enqueue_script( 'ultimakit_bootstrap_bundle', plugin_dir_url( __FILE__ ) . 'js/bootstrap.bundle.min.js', array( 'jquery' ), $this->version, false );
     118            // Enqueue toastr.js.
     119            wp_enqueue_script( 'toastr-js', plugin_dir_url( __FILE__ ) . 'js/toastr.min.js', array( 'jquery' ), $this->version, true );
     120
     121            wp_enqueue_script( 'tagsinput-js', plugin_dir_url( __FILE__ ) . 'js/jquery.tagsinput.min.js', array( 'jquery' ), $this->version, false );
     122
     123            wp_enqueue_script(
     124                'silent-installer',
     125                plugin_dir_url(__FILE__) . 'js/silent-installer.js',
     126                array('jquery'),
     127                '1.0',
     128                true
     129            );
     130           
     131            wp_localize_script('silent-installer', 'silent_installer_vars', array(
     132                'ajaxurl' => admin_url('admin-ajax.php'),
     133                'nonce' => wp_create_nonce('silent_installer'),
     134                'installing_text' => __('Installing...', 'ultimakit'),
     135                'activated_text' => __('Installed & Activated!', 'ultimakit'),
     136                'error_text' => __('Installation Failed', 'ultimakit'),
     137                'already_installed' => __('Already Installed & Active', 'ultimakit'),
     138                'checking_status' => __('Checking plugin status...', 'ultimakit'),
     139                'downloading' => __('Downloading plugin...', 'ultimakit'),
     140                'installing' => __('Installing plugin...', 'ultimakit'),
     141                'activating' => __('Activating plugin...', 'ultimakit')
     142            ));
    116143
    117144            wp_enqueue_script( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'js/hide-admin-bar-based-on-user-roles-admin.js', array( 'jquery' ), $this->version, false );
    118 
    119145            $args = array(
    120146                'url'       => admin_url( 'admin-ajax.php' ),
     
    122148            );
    123149            wp_localize_script( $this->plugin_name, 'ajaxVar', $args );
     150
     151           
    124152        }
    125153
     
    147175            echo '<script>window.location.reload();</script>';
    148176        }
    149 
    150177        ?>
    151         <div class="main-panel">
    152             <div class="container-wrapper">
    153                 <div class="col-12 grid-margin">
    154                     <div class="card">
    155                         <div class="card-body">
    156                             <h3><?php echo __( 'Hide Admin Bar Based on User Roles', 'hide-admin-bar-based-on-user-roles' ); ?></h3>
    157                             <br/>
    158                             <form class="form-sample">
    159                                 <div class="row">
    160                                     <div class="col-md-12">
    161                                         <div class="form-group row">
    162                                             <label class="col-sm-6 col-form-label"><?php echo __( 'Hide Admin Bar for All Users', 'hide-admin-bar-based-on-user-roles' ); ?></label>
    163                                             <div class="col-sm-6">
    164                                                 <?php
    165                                                 $disableForAll = ( isset( $settings["hab_disableforall"] ) ) ? $settings["hab_disableforall"] : "";
    166                                                 $checked       = ( $disableForAll == 'yes' ) ? "checked" : "";
    167                                                 echo '<div class="icheck-square">
    168                                                         <input tabindex="5" ' . $checked . ' type="checkbox" id="hide_for_all">
    169                                                     </div>';
    170                                                 ?>
    171 
    172                                             </div>
    173                                         </div>
    174                                     </div>
    175                                 </div>
    176                                 <?php if ( $disableForAll == "no" || empty( $disableForAll ) ) { ?>
    177                                     <div class="row">
    178                                         <div class="col-md-12">
    179                                             <div class="form-group row">
    180                                                 <label class="col-sm-6 col-form-label"><?php echo __( 'Hide Admin Bar for All Guests Users', 'hide-admin-bar-based-on-user-roles' ); ?></label>
    181                                                 <div class="col-sm-6">
     178        <nav class="navbar navbar-expand-lg navbar-dark" style="background-color: #6610F2;">
     179            <div class="container-fluid p-2">
     180                <a class="navbar-brand" href="#">
     181                    <img src="<?php echo esc_url( plugin_dir_url( __FILE__ ).'images/hide-admin-bar-logo.svg' ); ?>"  class="d-inline-block align-top" alt="ultimakit-for-wp-logo" width="225px">
     182                    <div class="wpuk-version-info"><?php echo esc_html_e( 'Current version:', 'ultimakit-for-wp' ); ?>5.0.0</div>
     183                </a>
     184               
     185                <div class="navbar-nav ml-auto">
     186                    <a class="nav-item nav-link" target="_blank" href="https://wordpress.org/support/plugin/hide-admin-bar-based-on-user-roles/reviews/#new-post" style="color: #ffffff; margin-right: 20px"><?php echo esc_html_e( 'Leave Feedback', 'ultimakit-for-wp' ); ?></a>
     187                </div>
     188            </div>
     189        </nav>
     190
     191        <div class="wrap">
     192            <div class="container-fluid module-container">
     193                <div class="row">
     194                    <?php
     195                        $menu_active_class = '';
     196                        $menu_active_class = 'active show';
     197                    ?>
     198                    <!-- Nav tabs -->
     199                    <ul class="nav nav-tabs" id="wpukTabs" role="tablist">
     200                        <li class="nav-item" role="presentation">
     201                            <a class="nav-link <?php echo $menu_active_class; ?>" id="hab-modules-tab" data-bs-toggle="tab" href="#hab-modules" role="tab" aria-controls="hab-modules" aria-selected="true"><?php echo esc_html_e( 'Settings', 'ultimakit-for-wp' ); ?></a>
     202                        </li>
     203
     204                        <li class="nav-item" role="presentation">
     205                            <a class="nav-link" id="tools-tab" data-bs-toggle="tab" style="font-weight: 600; text-decoration: underline;" href="#tools" role="tab" aria-controls="tools" aria-selected="true"><?php echo esc_html_e( 'Powerful WordPress Tools', 'hide-admin-bar-based-on-user-roles' ); ?></a>
     206                        </li>
     207
     208                        <li class="nav-item" role="presentation">
     209                            <a class="nav-link" href="https://wordpress.org/support/plugin/hide-admin-bar-based-on-user-roles/" target="_blank"><?php echo esc_html_e( 'Help', 'ultimakit-for-wp' ); ?></a>
     210                        </li>
     211                    </ul>
     212                    <!-- Tab panes -->
     213                    <div class="tab-content" id="wpukTabsContent">
     214                        <div class="tab-pane fade show <?php echo $menu_active_class; ?>" id="hab-modules" role="tabpanel" aria-labelledby="modules-tab">
     215                            <div class="row">
     216                                <form class="form-sample">
     217                                    <div class="row">
     218                                        <div class="col-md-12">
     219                                            <div class="form-group row">
     220                                                <label class="col-sm-6 col-form-label"><?php echo __( 'Hide Admin Bar for All Users', 'hide-admin-bar-based-on-user-roles' ); ?></label>
     221                                                <div class="col-sm-6">
    182222                                                    <?php
    183                                                     $disableForAllGuests = ( isset( $settings["hab_disableforallGuests"] ) ) ? $settings["hab_disableforallGuests"] : "";
    184                                                     $checkedGuests       = ( $disableForAllGuests == 'yes' ) ? "checked" : "";
     223                                                    $disableForAll = ( isset( $settings["hab_disableforall"] ) ) ? $settings["hab_disableforall"] : "";
     224                                                    $checked       = ( $disableForAll == 'yes' ) ? "checked" : "";
    185225                                                    echo '<div class="icheck-square">
    186                                                         <input tabindex="5" ' . $checkedGuests . ' type="checkbox" id="hide_for_all_guests">
    187                                                     </div>';
     226                                                            <input tabindex="5" ' . $checked . ' type="checkbox" id="hide_for_all">
     227                                                        </div>';
    188228                                                    ?>
    189 
    190                                                 </div>
    191                                             </div>
    192                                         </div>
    193                                     </div>
    194                                     <div class="row">
    195                                         <div class="col-md-12">
    196                                             <div class="form-group row">
    197                                                 <label class="col-sm-6 col-form-label"><?php echo __( 'User Roles', 'hide-admin-bar-based-on-user-roles' ); ?>
    198                                                     <br/><br/><?php echo __( 'Hide admin bar for selected user roles.', 'hide-admin-bar-based-on-user-roles' ); ?>
    199                                                 </label>
    200                                                 <div class="col-sm-6">
    201                                                     <?php
    202                                                     global $wp_roles;
    203                                                     $exRoles = ( isset( $settings["hab_userRoles"] ) ) ? $settings["hab_userRoles"] : "";
    204                                                     $checked = '';
    205 
    206                                                     $roles = $wp_roles->get_names();
    207                                                     if ( is_array( $roles ) ) {
    208                                                         foreach ( $roles as $key => $value ):
    209                                                             if ( is_array( $exRoles ) ) {
    210                                                                 $checked = ( in_array( $key, $exRoles ) ) ? "checked" : "";
    211                                                             }
    212 
    213                                                             echo '<div class="icheck-square">
    214                                                             <input name="userRoles[]" ' . $checked . ' tabindex="5" type="checkbox" value="' . $key . '">&nbsp;&nbsp;' . $value . '
    215                                                         </div>';
    216                                                         endforeach;
    217                                                     }
    218                                                     ?>
    219 
    220                                                 </div>
    221                                             </div>
    222                                         </div>
    223                                     </div>
    224                                     <div class="row">
    225                                         <div class="col-md-12">
    226                                             <div class="form-group row">
    227                                                 <label class="col-sm-6 col-form-label"><?php echo __( 'Capabilities Blacklist', 'hide-admin-bar-based-on-user-roles' );
    228                                                     echo '<br />';
    229                                                     echo __( 'Hide admin bar for selected user capabilities', 'hide-admin-bar-based-on-user-roles' ); ?></label>
    230                                                 <div class="col-sm-6">
    231                                                     <?php
    232                                                     $caps = ( isset( $settings["hab_capabilities"] ) ) ? $settings["hab_capabilities"] : "";
    233                                                     ?>
    234                                                     <div class="icheck-square">
    235                                                         <textarea name="had_capabilities"
    236                                                                   id="had_capabilities"><?php echo $caps; ?></textarea>
    237                                                     </div>
    238                                                 </div>
    239                                             </div>
    240                                         </div>
    241                                     </div>
    242                                 <?php } ?>
    243                                 <div class="row">
    244                                     <div class="col-md-12">
    245                                         <button type="button" class="btn btn-primary btn-fw"
    246                                                 id="submit_roles"><?php echo __( "Save Changes", 'hide-admin-bar-based-on-user-roles' ); ?></button>
    247                                     </div>
    248                                     <div class="col-md-12">
    249                                         <br/>
    250                                         <p><?php echo __( "You can reset plugin settings by visiting this url without login to admin panel. Keep it safe.", 'hide-admin-bar-based-on-user-roles' ); ?>
    251                                             <br/><a href="<?php echo admin_url() . "options-general.php?page=hide-admin-bar-settings&reset_plugin=" . $hab_reset_key; ?>"
    252                                                     target="_blank"><?php echo admin_url() . "options-general.php?page=hide-admin-bar-settings&reset_plugin=" . $hab_reset_key; ?></a>
    253                                         </p>
    254                                     </div>
    255                                 </div>
    256                             </form>
    257                             <script>
    258                                 if (jQuery('#had_capabilities').length) {
    259                                     jQuery('#had_capabilities').tagsInput({
    260                                         'width': '100%',
    261                                         'height': '75%',
    262                                         'interactive': true,
    263                                         'defaultText': 'Add More',
    264                                         'removeWithBackspace': true,
    265                                         'minChars': 0,
    266                                         'maxChars': 20, // if not provided there is no limit
    267                                         'placeholderColor': '#666666'
    268                                     });
    269                                 }
    270                             </script>
    271                         </div>
    272                     </div>
    273                 </div>
    274             </div>
    275 
    276         </div>
    277 
     229                                                </div>
     230                                            </div>
     231                                        </div>
     232                                    </div>
     233                                    <?php if ( $disableForAll == "no" || empty( $disableForAll ) ) { ?>
     234                                        <div class="row mt-3">
     235                                            <div class="col-md-12">
     236                                                <div class="form-group row">
     237                                                    <label class="col-sm-6 col-form-label"><?php echo __( 'Hide Admin Bar for All Guests Users', 'hide-admin-bar-based-on-user-roles' ); ?></label>
     238                                                    <div class="col-sm-6">
     239                                                        <?php
     240                                                        $disableForAllGuests = ( isset( $settings["hab_disableforallGuests"] ) ) ? $settings["hab_disableforallGuests"] : "";
     241                                                        $checkedGuests       = ( $disableForAllGuests == 'yes' ) ? "checked" : "";
     242                                                        echo '<div class="icheck-square">
     243                                                            <input tabindex="5" ' . $checkedGuests . ' type="checkbox" id="hide_for_all_guests">
     244                                                        </div>';
     245                                                        ?>
     246
     247                                                    </div>
     248                                                </div>
     249                                            </div>
     250                                        </div>
     251                                        <div class="row mt-3">
     252                                            <div class="col-md-12">
     253                                                <div class="form-group row">
     254                                                    <label class="col-sm-6 col-form-label"><?php echo __( 'User Roles', 'hide-admin-bar-based-on-user-roles' ); ?>
     255                                                        <br/><br/><?php echo __( 'Hide admin bar for selected user roles.', 'hide-admin-bar-based-on-user-roles' ); ?>
     256                                                    </label>
     257                                                    <div class="col-sm-6">
     258                                                        <?php
     259                                                        global $wp_roles;
     260                                                        $exRoles = ( isset( $settings["hab_userRoles"] ) ) ? $settings["hab_userRoles"] : "";
     261                                                        $checked = '';
     262
     263                                                        $roles = $wp_roles->get_names();
     264                                                        if ( is_array( $roles ) ) {
     265                                                            foreach ( $roles as $key => $value ):
     266                                                                if ( is_array( $exRoles ) ) {
     267                                                                    $checked = ( in_array( $key, $exRoles ) ) ? "checked" : "";
     268                                                                }
     269
     270                                                                echo '<div class="icheck-square">
     271                                                                <input name="userRoles[]" ' . $checked . ' tabindex="5" type="checkbox" value="' . $key . '">&nbsp;&nbsp;' . $value . '
     272                                                            </div>';
     273                                                            endforeach;
     274                                                        }
     275                                                        ?>
     276
     277                                                    </div>
     278                                                </div>
     279                                            </div>
     280                                        </div>
     281                                        <div class="row mt-3">
     282                                            <div class="col-md-12">
     283                                                <div class="form-group row">
     284                                                    <label class="col-sm-6 col-form-label"><?php echo __( 'Capabilities Blacklist', 'hide-admin-bar-based-on-user-roles' );
     285                                                        echo '<br />';
     286                                                        echo __( 'Hide admin bar for selected user capabilities', 'hide-admin-bar-based-on-user-roles' ); ?></label>
     287                                                    <div class="col-sm-6">
     288                                                        <?php
     289                                                        $caps = ( isset( $settings["hab_capabilities"] ) ) ? $settings["hab_capabilities"] : "";
     290                                                        ?>
     291                                                        <div class="icheck-square">
     292                                                            <textarea name="had_capabilities"
     293                                                                    id="had_capabilities" rows="5" cols="50"><?php echo $caps; ?></textarea>
     294                                                        </div>
     295                                                    </div>
     296                                                </div>
     297                                            </div>
     298                                        </div>
     299                                    <?php } ?>
     300                                    <div class="row mt-3">
     301                                        <div class="col-md-12">
     302                                            <button type="button" class="btn btn-primary btn-fw"
     303                                                    id="submit_roles"><?php echo __( "Save Changes", 'hide-admin-bar-based-on-user-roles' ); ?></button>
     304                                        </div>
     305                                        <div class="col-md-12">
     306                                            <br/>
     307                                            <p><?php echo __( "You can reset plugin settings by visiting this url without login to admin panel. Keep it safe.", 'hide-admin-bar-based-on-user-roles' ); ?>
     308                                                <br/><a href="<?php echo admin_url() . "options-general.php?page=hide-admin-bar-settings&reset_plugin=" . $hab_reset_key; ?>"
     309                                                        target="_blank"><?php echo admin_url() . "options-general.php?page=hide-admin-bar-settings&reset_plugin=" . $hab_reset_key; ?></a>
     310                                            </p>
     311                                        </div>
     312                                    </div>
     313                                </form>
     314                                <script>
     315                                    if (jQuery('#had_capabilities').length) {
     316                                        jQuery('#had_capabilities').tagsInput({
     317                                            'width': '100%',
     318                                            'height': '75%',
     319                                            'interactive': true,
     320                                            'defaultText': 'Add More',
     321                                            'removeWithBackspace': true,
     322                                            'minChars': 0,
     323                                            'maxChars': 20, // if not provided there is no limit
     324                                            'placeholderColor': '#666666'
     325                                        });
     326                                    }
     327                                </script>
     328                            </div>
     329                        </div> <!-- WordPress Tab End --->
     330                       
     331                        <div class="tab-pane fade" id="tools" role="tabpanel" aria-labelledby="tools-tab">
     332                            <div class="row">
     333                                <div class="ultimakit-promo w-100 my-4">
     334                                    <div class="card border-0 w-100">
     335                                        <div class="card-body p-4">
     336                                            <div class="row g-4 w-100 mx-0">
     337                                                <div class="col-lg-8">
     338                                                    <div class="feature-content">
     339                                                        <span class="badge bg-primary-subtle text-primary mb-2">170+ Powerful Modules</span>
     340                                                        <h3 class="text-primary mb-3">UltimaKit For WP – All-in-One WordPress Toolkit for SEO, Customization, and Performance</h3>
     341                                                        <div class="features-list mb-4">
     342                                                            <p class="text-secondary mb-3">
     343                                                                Simplify your WordPress management with UltimaKit – the all-in-one toolkit that replaces 25+ plugins. Popular modules include:
     344                                                            </p>
     345                                                            <div class="module-highlights">
     346                                                                <span class="module-tag">GDPR Compliance</span>
     347                                                                <span class="module-tag">Hide Admin Bar</span>
     348                                                                <span class="module-tag">Custom Post Types</span>
     349                                                                <span class="module-tag">SEO Tools</span>
     350                                                                <span class="module-tag">Post & Page Order</span>
     351                                                                <span class="module-tag">Admin Activity Logger</span>
     352                                                                <span class="module-tag">Gravity Forms: Address Autocomplete</span>
     353                                                                <span class="module-tag">Gravity Forms: AI Analysis</span>
     354                                                                <span class="module-tag">Gravity Forms: Form Analytics(Most advanced analytics)</span>
     355                                                                <span class="module-tag">WooCommerce Modules</span>
     356                                                            </div>
     357                                                        </div>
     358                                                        <button href="#" data-plugin-slug="ultimakit-for-wp" class="install-plugin btn btn-primary btn-lg">
     359                                                            Install UltimaKit Now
     360                                                        </button>
     361
     362                                                        <div class="loader-wrapper">
     363                                                            <div class="loader-bar"></div>
     364                                                        </div>
     365
     366                                                        <div class="progress-steps">
     367                                                            <div class="step" data-step="check">
     368                                                                <i class="dashicons dashicons-search"></i>
     369                                                                Checking plugin status...
     370                                                            </div>
     371                                                            <div class="step" data-step="download">
     372                                                                <i class="dashicons dashicons-download"></i>
     373                                                                Downloading plugin...
     374                                                            </div>
     375                                                            <div class="step" data-step="install">
     376                                                                <i class="dashicons dashicons-admin-plugins"></i>
     377                                                                Installing plugin...
     378                                                            </div>
     379                                                            <div class="step" data-step="activate">
     380                                                                <i class="dashicons dashicons-yes"></i>
     381                                                                Activating plugin...
     382                                                            </div>
     383                                                        </div>
     384                                                       
     385                                                        <a href="https://wpultimakit.com" target="_blank" class="btn btn-primary btn-lg">
     386                                                            Learn More About UltimaKit
     387                                                        </a>
     388                                                    </div>
     389                                                </div>
     390                                                <div class="col-lg-4">
     391                                                    <div class="stats-container">
     392                                                        <div class="stat-item">
     393                                                            <span class="stat-number">25+</span>
     394                                                            <span class="stat-label">Plugins Replaced</span>
     395                                                        </div>
     396                                                        <div class="stat-item">
     397                                                            <span class="stat-number">170+</span>
     398                                                            <span class="stat-label">Powerful Modules</span>
     399                                                        </div>
     400                                                        <div class="stat-item">
     401                                                            <span class="stat-number">20+</span>
     402                                                            <span class="stat-label">WooCommerce Modules</span>
     403                                                        </div>
     404                                                        <div class="stat-item">
     405                                                            <span class="stat-number">15+</span>
     406                                                            <span class="stat-label">Gravity Forms Modules</span>
     407                                                        </div>
     408                                                    </div>
     409                                                </div>
     410                                            </div>
     411                                        </div>
     412                                    </div>
     413                                </div>
     414
     415                                <div class="ultimakit-promo w-100 my-4">
     416                                    <div class="card border-0 w-100">
     417                                        <div class="card-body p-4">
     418                                            <div class="row g-4 w-100 mx-0">
     419                                                <div class="col-lg-8">
     420                                                    <div class="feature-content">
     421                                                        <span class="badge bg-primary-subtle text-primary mb-2">Smart Note-Taking for WordPress</span>
     422                                                        <h3 class="text-primary mb-3">Smart Note-Taking for WordPress</h3>
     423                                                        <div class="features-list mb-4">
     424                                                            <p class="text-secondary mb-3">
     425                                                            Enhance your WordPress experience with intelligent note-taking directly in your dashboard. Perfect for content creators, developers, and site managers!
     426                                                            </p>
     427                                                            <div class="module-highlights">
     428                                                                <span class="module-tag">Quick Notes Dashboard</span>
     429                                                                <span class="module-tag">Rich Text Editor</span>
     430                                                                <span class="module-tag">Task Management</span>
     431                                                                <span class="module-tag">Post Draft Notes</span>
     432                                                                <span class="module-tag">Team Collaboration</span>
     433                                                                <span class="module-tag">Custom Categories</span>
     434                                                                <span class="module-tag">Markdown Support</span>
     435                                                                <span class="module-tag">File Attachments</span>
     436                                                            </div>
     437                                                        </div>
     438                                                        <button href="#" data-plugin-slug="noteflow" class="install-plugin btn btn-primary btn-lg">
     439                                                            Install Noteflow Now
     440                                                        </button>
     441
     442                                                        <div class="loader-wrapper">
     443                                                            <div class="loader-bar"></div>
     444                                                        </div>
     445
     446                                                        <div class="progress-steps">
     447                                                            <div class="step" data-step="check">
     448                                                                <i class="dashicons dashicons-search"></i>
     449                                                                Checking plugin status...
     450                                                            </div>
     451                                                            <div class="step" data-step="download">
     452                                                                <i class="dashicons dashicons-download"></i>
     453                                                                Downloading plugin...
     454                                                            </div>
     455                                                            <div class="step" data-step="install">
     456                                                                <i class="dashicons dashicons-admin-plugins"></i>
     457                                                                Installing plugin...
     458                                                            </div>
     459                                                            <div class="step" data-step="activate">
     460                                                                <i class="dashicons dashicons-yes"></i>
     461                                                                Activating plugin...
     462                                                            </div>
     463                                                        </div>
     464
     465                                                        <a href="https://wordpress.org/plugins/noteflow/" target="_blank" class="btn btn-primary btn-lg">
     466                                                            Learn More About Noteflow
     467                                                        </a>
     468                                                    </div>
     469                                                </div>
     470                                                <div class="col-lg-4">
     471                                                    <div class="stats-container">
     472                                                        <div class="stat-item">
     473                                                            <span class="stat-number">100%</span>
     474                                                            <span class="stat-label">Free Forever</span>
     475                                                        </div>
     476                                                        <div class="stat-item">
     477                                                            <span class="stat-number">5★</span>
     478                                                            <span class="stat-label">User Rating</span>
     479                                                        </div>
     480                                                        <div class="stat-item">
     481                                                            <span class="stat-number">1-Click</span>
     482                                                            <span class="stat-label">Quick Notes</span>
     483                                                        </div>
     484                                                    </div>
     485                                                </div>
     486                                            </div>
     487                                        </div>
     488                                    </div>
     489                                </div>
     490                               
     491                            </div>
     492                        </div> <!-- WordPress Tab End --->
     493                   
     494                    </div>
     495                    <!-- Duplicate the above block for each module you have -->
     496                </div>
     497            </div>
     498        </div>
    278499
    279500        <?php
     
    313534    }
    314535
     536    public function enqueue_silent_installer() {
     537       
     538    }
     539
     540    public function check_plugin_status() {
     541        // Check nonce
     542        if (!check_ajax_referer('silent_installer', 'nonce', false)) {
     543            wp_send_json_error(array('message' => 'Invalid security token.'));
     544        }
     545
     546        // Check user capabilities
     547        if (!current_user_can('install_plugins')) {
     548            wp_send_json_error(array('message' => 'You do not have permission to install plugins.'));
     549        }
     550
     551        $plugin_slug = sanitize_text_field($_POST['plugin_slug']);
     552       
     553        if (empty($plugin_slug)) {
     554            wp_send_json_error(array('message' => 'Plugin slug is required.'));
     555        }
     556
     557        require_once ABSPATH . 'wp-admin/includes/plugin.php';
     558       
     559        $all_plugins = get_plugins();
     560        $plugin_base_file = false;
     561       
     562        foreach ($all_plugins as $file => $plugin) {
     563            if (strpos($file, $plugin_slug . '/') === 0) {
     564                $plugin_base_file = $file;
     565                break;
     566            }
     567        }
     568
     569        wp_send_json_success(array(
     570            'installed' => !empty($plugin_base_file),
     571            'active' => !empty($plugin_base_file) && is_plugin_active($plugin_base_file)
     572        ));
     573    }
     574
     575    public function handle_silent_install_plugin() {
     576        // Check nonce
     577        if (!check_ajax_referer('silent_installer', 'nonce', false)) {
     578            wp_send_json_error(array('message' => 'Invalid security token.'));
     579        }
     580
     581        // Check user capabilities
     582        if (!current_user_can('install_plugins')) {
     583            wp_send_json_error(array('message' => 'You do not have permission to install plugins.'));
     584        }
     585
     586        $plugin_slug = sanitize_text_field($_POST['plugin_slug']);
     587       
     588        if (empty($plugin_slug)) {
     589            wp_send_json_error(array('message' => 'Plugin slug is required.'));
     590        }
     591
     592        // Include required files
     593        require_once ABSPATH . 'wp-admin/includes/plugin.php';
     594        require_once ABSPATH . 'wp-admin/includes/plugin-install.php';
     595        require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
     596        require_once ABSPATH . 'wp-admin/includes/class-plugin-upgrader.php';
     597
     598        // Check if plugin is already installed
     599        $installed_plugins = get_plugins();
     600        $plugin_base_file = false;
     601
     602        foreach ($installed_plugins as $file => $plugin) {
     603            if (strpos($file, $plugin_slug . '/') === 0) {
     604                $plugin_base_file = $file;
     605                break;
     606            }
     607        }
     608
     609        // If plugin is not installed, install it
     610        if (!$plugin_base_file) {
     611            try {
     612                // Get plugin info
     613                $api = plugins_api('plugin_information', array(
     614                    'slug' => $plugin_slug,
     615                    'fields' => array(
     616                        'short_description' => false,
     617                        'sections' => false,
     618                        'requires' => false,
     619                        'rating' => false,
     620                        'ratings' => false,
     621                        'downloaded' => false,
     622                        'last_updated' => false,
     623                        'added' => false,
     624                        'tags' => false,
     625                        'compatibility' => false,
     626                        'homepage' => false,
     627                        'donate_link' => false,
     628                    ),
     629                ));
     630
     631                if (is_wp_error($api)) {
     632                    wp_send_json_error(array('message' => $api->get_error_message()));
     633                }
     634
     635                $upgrader = new Plugin_Upgrader(new WP_Ajax_Upgrader_Skin());
     636                $install_result = $upgrader->install($api->download_link);
     637
     638                if (is_wp_error($install_result)) {
     639                    wp_send_json_error(array('message' => $install_result->get_error_message()));
     640                }
     641
     642                $plugin_base_file = $upgrader->plugin_info();
     643
     644            } catch (Exception $e) {
     645                wp_send_json_error(array('message' => $e->getMessage()));
     646            }
     647        }
     648
     649        // Activate the plugin
     650        if ($plugin_base_file) {
     651            try {
     652                $activation_result = activate_plugin($plugin_base_file);
     653               
     654                if (is_wp_error($activation_result)) {
     655                    wp_send_json_error(array('message' => $activation_result->get_error_message()));
     656                }
     657
     658                wp_send_json_success(array(
     659                    'message' => 'Plugin installed and activated successfully',
     660                    'plugin_file' => $plugin_base_file
     661                ));
     662
     663            } catch (Exception $e) {
     664                wp_send_json_error(array('message' => $e->getMessage()));
     665            }
     666        } else {
     667            wp_send_json_error(array('message' => 'Plugin installation failed.'));
     668        }
     669    }
    315670}
  • hide-admin-bar-based-on-user-roles/tags/5.0.0/admin/css/hide-admin-bar-based-on-user-roles-admin.css

    r2172542 r3241205  
    1 /**
    2  * All of the CSS for your admin-specific functionality should be
    3  * included in this file.
    4  */
    5 
    6 /* .rolesList input[type="checkbox"] { margin: 0px 10px 0px 10px;  }
    7  .advertisement{
    8    
    9  }*/
    10  .card { max-width: 100% !important; }
    11  .main-panel{ width: calc(100% - 150px); }
    12  .card .card-header.header-sm { padding: 6px 5px; height: 60px; }
    13  #wpfooter{ display: none; }
     1.doc-badge a,.explore-btn,.help-section a,.learn-more-link{text-decoration:none}.badge-primary,.bg-primary,.btn-primary{background-color:#6610f2!important;border-color:#6610f2!important}.badge-secondary,.bg-secondary,.btn-secondary{background-color:silver!important;border-color:silver!important}.badge-warning,.bg-warning,.btn-warning{background-color:gold!important;border-color:gold!important}.navbar{font-family:Arial,sans-serif}.nav-item.nav-link:hover{color:gold!important}.nav-item.nav-link:last-child{padding:5px 15px;border:2px solid gold;border-radius:20px}.nav-item.nav-link:last-child:hover{background-color:gold;color:#6610f2!important}.nav-item.nav-link.get-pro{padding:5px 15px;border:2px solid gold;border-radius:20px;background-color:gold;color:#3498db}.nav-item.nav-link.get-pro:hover{background-color:#3498db;color:gold!important}.module-container{box-shadow:0 4px 8px rgba(0,0,0,.1);padding:20px;margin:20px 0;border-radius:15px;background-color:#fff}.module-container .filters .filter_container{display:flex;align-items:center;margin-bottom:25px}.module-container .filters .filter_container h4{margin-right:20px;color:#3498db;font-size:22px}.module-container .filters .filter_container input,.module-container .filters .filter_container select{border:2px solid #3498db;border-radius:10px;padding-top:5px;padding-bottom:5px}.module-box{background-color:#fff;border:2px solid silver;border-radius:15px;margin:10px;position:relative;height:200px;box-sizing:border-box}.module-box:hover{border:2px solid #3498db;box-shadow:0 4px 8px rgba(102,16,242,.3),0 6px 20px rgba(102,16,242,.25)}.module-title{position:absolute;top:10px;left:10px;color:#3498db;font-size:1.1rem;max-width:195px}.learn-more-link,.module-description{position:absolute;left:10px;font-size:.9em}.module-description{top:40px;color:#666;max-width:90%;margin-top:15px}.module-switch{position:absolute;top:10px;right:-30px}.learn-more-link{bottom:10px;color:#3498db;border:2px solid #3498db;padding:5px 10px;border-radius:8px;background-color:#fff;transition:background-color .3s,color .3s;cursor:pointer}.doc-badge,.free-badge,.pro-badge{border-radius:8px;position:absolute;bottom:10px}.learn-more-link:hover{background-color:#3498db;color:#fff}.pro-badge{background:linear-gradient(45deg,#6610f2,gold);text-shadow:1px 1px 1px rgba(0,0,0,.2)}.form-check-input:checked+.form-check-label::before,.free-badge,.pro-badge{background-color:#3498db}.free-badge,.pro-badge{right:10px;color:#fff;padding:2px 8px;font-size:.8em}.doc-badge{right:140px;color:#3498db;padding:1px 5px;font-size:.9em;cursor:pointer}.doc-badge a{color:#3498db}.form-check-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.form-check-label{position:relative;padding-left:45px;cursor:pointer;font-weight:600;text-indent:-9999px;overflow:hidden;white-space:nowrap}.form-check-label::after,.form-check-label::before{content:"";position:absolute;top:50%;transform:translateY(-50%)}.form-check-label::before{left:0;width:30px;height:16px;background-color:#ddd;border-radius:8px;transition:background-color .3s}.form-check-label::after{left:2px;width:12px;height:12px;background-color:#fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2);transition:left .3s}.form-check-input:checked+.form-check-label::after{left:16px}.nav-tabs{border-bottom:2px solid silver;margin-bottom:15px}.nav-tabs .nav-item{margin-bottom:-2px}.nav-tabs .nav-link{border-radius:8px 8px 0 0;border:2px solid transparent;color:#3498db;padding:10px 15px;transition:.3s;box-shadow:none}.nav-tabs .nav-link:hover{background-color:#f2f2f2;border-color:silver;box-shadow:none}.nav-tabs .nav-link.active{background-color:#fff;color:#3498db;border-color:silver silver #fff}.tab-content{border:2px solid silver;border-top:none;border-radius:0 0 8px 8px;padding:20px;margin-top:-17px}.plugin-badge{position:absolute;bottom:10px;right:60px;color:#fff;background-color:#007bff;padding:2px 8px;border-radius:8px;font-size:.8em;z-index:10}.help-container,.plugin-item{background-color:#f7f8fc;border-radius:10px;box-shadow:0 4px 10px rgba(0,0,0,.05)}.plugin-badge.woocommerce{background-color:#96588a}.module-filters{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.filter-controls{display:flex;gap:10px}.module-filters .form-control,.module-filters .form-select{width:auto}.search-control{width:20%}.search-control input{width:100%!important}.help-container{padding:20px 30px}.help-section{margin-bottom:40px}.faqs .faq-item{margin-bottom:20px;border-left:4px solid #3498db;padding-left:15px}.faqs h3{color:#3498db;font-size:1.2em;margin-bottom:10px}.help-section h2{border-bottom:2px solid #e0e2e6;padding-bottom:10px;margin-bottom:20px;font-size:1.4em}.help-section a{color:#007bff;transition:color .3s}.help-section a:hover{color:#0056b3}.plugins-container{display:flex;flex-wrap:wrap;gap:20px}.plugin-item{flex:1;max-width:calc(33.33% - 20px);padding:20px;text-align:center}.module-tag,.stat-item{box-shadow:0 2px 4px rgba(0,0,0,.1)}.plugin-image{max-width:100%;height:auto;margin-bottom:15px}.ultimakit-promo,.ultimakit-promo .card{width:100%!important;max-width:100%!important}.plugin-item h3{font-size:1.2em;color:#3498db;margin-bottom:10px}.explore-btn{background-color:#007bff;color:#fff;border-radius:8px;padding:10px 20px;transition:background-color .3s}.explore-btn:hover{background-color:#0056b3}.ultimakit-promo .card{background:linear-gradient(135deg,#fdfbfb,#ebedee);border-radius:12px;box-shadow:0 4px 6px rgba(0,0,0,.1);transition:.3s}.module-tag,.ultimakit-promo .badge{border-radius:20px;font-size:.875rem;font-weight:600}.ultimakit-promo .badge{padding:.5em 1em}.ultimakit-promo h3{font-size:2rem;font-weight:700;color:#dc3545}.module-highlights{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.module-tag{padding:.5rem 1rem}.stats-container{display:flex;flex-direction:column;gap:1rem;height:100%;justify-content:center}.stat-item{padding:1.5rem;border-radius:10px;text-align:center}.stat-number{display:block;font-size:2.5rem;font-weight:800;line-height:1}.stat-label{display:block;font-size:1rem;font-weight:500;margin-top:.5rem}.btn-danger{padding:.75rem 1.5rem;font-weight:600;border-radius:6px;background:#dc3545;border:none;transition:.3s}.btn-danger:hover{background:#c82333;transform:translateY(-1px)}.feature-content .btn-lg{border-radius:25px!important}.install-plugin{padding:10px 20px;background:#6610f2;color:#fff;border:none;border-radius:4px;cursor:pointer;position:relative;transition:.3s;min-width:150px}.install-plugin:disabled{background:#72aee6;cursor:not-allowed}.loader-wrapper{display:none;position:relative;width:100%;height:4px;background:#e2e4e7;margin-top:10px;border-radius:2px;overflow:hidden}.loader-bar{position:absolute;width:0%;height:100%;background:#6610f2;transition:width .3s;border-radius:2px}.progress-steps{display:none;margin-top:15px;font-size:13px;color:#50575e}.step{margin:5px 0;opacity:.7}.step.active{opacity:1;color:#6610f2;font-weight:500}.step i{margin-right:5px}.success-icon{display:none;color:#00a32a;margin-left:8px}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.fade-in{animation:.3s ease-in fadeIn}@media (max-width:991px){.stats-container{flex-direction:row;margin-top:1rem}.stat-item{flex:1}.feature-content{text-align:center}.module-highlights{justify-content:center}}@media (max-width:576px){.stats-container{flex-direction:column}.module-tag{width:100%;text-align:center}}
  • hide-admin-bar-based-on-user-roles/tags/5.0.0/admin/js/hide-admin-bar-based-on-user-roles-admin.js

    r3085812 r3241205  
    3838        });
    3939
    40     })
     40    });
     41   
     42 
     43
     44
     45   
    4146}(jQuery);
  • hide-admin-bar-based-on-user-roles/tags/5.0.0/hide-admin-bar-based-on-user-roles.php

    r3214206 r3241205  
    1313 * Plugin URI:        https://wordpress.org/plugins/hide-admin-bar-based-on-user-roles/
    1414 * Description:       This plugin is very useful to hide admin bar based on selected user roles and user capabilities.
    15  * Version:           4.1.0
     15 * Version:           5.0.0
    1616 * Author:            Ankit Panchal
    1717 * Author URI:        https://wpankit.com/
     
    4747 * Rename this for your plugin and update it as you release new versions.
    4848 */
    49 define( 'HIDE_ADMIN_BAR_BASED_ON_USER_ROLES', '4.1.0' );
     49define( 'HIDE_ADMIN_BAR_BASED_ON_USER_ROLES', '5.0.0' );
    5050
    5151/**
     
    9393hab_run_hide_admin_bar_based_on_user_roles();
    9494
    95 
    96 // Function to display the dismissible advertisement bar
    97 function display_custom_advertisement_habou() {
    98     // Check if the user has dismissed the ad already
    99     if (get_user_meta(get_current_user_id(), 'dismiss_custom_ad_habou', true)) {
    100         return; // Don't show the ad if it has been dismissed
    101     }
    102     if( isset($_GET['page']) && 'hide-admin-bar-settings' === $_GET['page'] ){
    103         echo '<div class="notice notice-info is-dismissible" id="custom-advertisement-bar-dbefm">';
    104         echo '<p><strong>Replace 25+ Plugins with Just One!</strong> Try UltimaKit for WP – the all-in-one WordPress toolkit for performance, security, and customization. <a href="https://wpultimakit.com/features/" target="_blank">Learn more</a> <strong></strong></p>';
    105         echo '</div>';
    106     }
    107 }
    108 add_action('admin_notices', 'display_custom_advertisement_habou');
    109 
    11095// Function to store the dismissed state using AJAX
    11196function custom_advertisement_dismiss_habou() {
  • hide-admin-bar-based-on-user-roles/tags/5.0.0/includes/class-hide-admin-bar-based-on-user-roles.php

    r3085812 r3241205  
    160160        $this->loader->add_action( 'wp_ajax_save_user_roles', $plugin_admin, 'save_user_roles' );
    161161        $this->loader->add_action( 'upgrader_process_complete', $plugin_admin, 'upgrader_process_complete' );
    162 
    163          
    164        
     162        $this->loader->add_action( 'wp_ajax_check_plugin_status', $plugin_admin, 'check_plugin_status' );
     163        $this->loader->add_action( 'wp_ajax_silent_install_plugin', $plugin_admin, 'handle_silent_install_plugin' );
     164
    165165       
    166166    }
  • hide-admin-bar-based-on-user-roles/trunk/README.txt

    r3214206 r3241205  
    88Tested up to: 6.7
    99Requires PHP: 5.6
    10 Stable tag: 4.1.0
     10Stable tag: 5.0.0
    1111License: GPLv2 or later
    1212License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    7070== Changelog ==
    7171
     72= 5.0.0 - 16-02-2025 =
     73* Admin ui updated.
     74* Compatibility tested & Tested with the latest WordPress version.
     75
    7276= 4.1.0 - 28-12-2024 =
    7377Compatibility tested & Tested with the latest WordPress version.
  • hide-admin-bar-based-on-user-roles/trunk/admin/class-hide-admin-bar-based-on-user-roles-admin.php

    r3085812 r3241205  
    7676
    7777        if ( isset( $_GET['page'] ) && $_GET['page'] == 'hide-admin-bar-settings' ) {
    78             wp_enqueue_style( "hab_materials_icons", plugin_dir_url( __FILE__ ) . 'css/materialdesignicons.min.css', array(), $this->version, 'all' );
    79             wp_enqueue_style( "hab_icheck", plugin_dir_url( __FILE__ ) . 'css/all.css', array(), $this->version, 'all' );
    80             wp_enqueue_style( "hab_tags_input", plugin_dir_url( __FILE__ ) . 'css/jquery.tagsinput.min.css', array(), $this->version, 'all' );
    81             wp_enqueue_style( "hab_style", plugin_dir_url( __FILE__ ) . 'css/style.css', array(), $this->version, 'all' );
    82             wp_enqueue_style( "hab_style_1", plugin_dir_url( __FILE__ ) . 'css/style_1.css', array(), $this->version, 'all' );
    83 
    84             wp_enqueue_style( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'css/hide-admin-bar-based-on-user-roles-admin.css', array(), $this->version, 'all' );
     78
     79            wp_enqueue_style( 'select2-css', plugin_dir_url( __FILE__ ) . 'css/select2.min.css', array(), $this->version, 'all' );
     80
     81            wp_enqueue_style( 'ultimakit_bootstrap_main', plugin_dir_url( __FILE__ ) . 'css/bootstrap.min.css', array(), $this->version, 'all' );
     82            wp_enqueue_style( 'ultimakit_bootstrap_rtl', plugin_dir_url( __FILE__ ) . 'css/bootstrap.rtl.min.css', array(), $this->version, 'all' );
     83            // Enqueue toastr CSS.
     84            wp_enqueue_style( 'toastr-css', plugin_dir_url( __FILE__ ) . 'css/toastr.min.css', array(), $this->version, 'all' );
     85           
     86            wp_enqueue_style('dashicons');
     87                           
     88            wp_enqueue_style( 'tagsinput-css', plugin_dir_url( __FILE__ ) . 'css/jquery.tagsinput.min.css', array(), $this->version, 'all' );
     89            wp_enqueue_style( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'css/main.css', array(), $this->version, 'all' );
     90            wp_enqueue_style( $this->plugin_name.'-admin', plugin_dir_url( __FILE__ ) . 'css/hide-admin-bar-based-on-user-roles-admin.css', array(), $this->version, 'all' );
     91           
    8592        }
    8693
     
    107114        if ( isset( $_GET['page'] ) && $_GET['page'] == 'hide-admin-bar-settings' ) {
    108115
    109             wp_enqueue_script( "hab_base_js", plugin_dir_url( __FILE__ ) . 'js/vendor.bundle.base.js', array( 'jquery' ), $this->version, false );
    110 
    111             wp_enqueue_script( "hab_icheck_min", plugin_dir_url( __FILE__ ) . 'js/icheck.min.js', array( 'jquery' ), $this->version, false );
    112 
    113             wp_enqueue_script( "hab_tags_input", plugin_dir_url( __FILE__ ) . 'js/jquery.tagsinput.min.js', array( 'jquery' ), $this->version, false );
    114 
    115             wp_enqueue_script( "hab_icheck", plugin_dir_url( __FILE__ ) . 'js/iCheck.js', array( 'jquery' ), $this->version, false );
     116            wp_enqueue_script( 'jquery' );
     117            wp_enqueue_script( 'ultimakit_bootstrap_bundle', plugin_dir_url( __FILE__ ) . 'js/bootstrap.bundle.min.js', array( 'jquery' ), $this->version, false );
     118            // Enqueue toastr.js.
     119            wp_enqueue_script( 'toastr-js', plugin_dir_url( __FILE__ ) . 'js/toastr.min.js', array( 'jquery' ), $this->version, true );
     120
     121            wp_enqueue_script( 'tagsinput-js', plugin_dir_url( __FILE__ ) . 'js/jquery.tagsinput.min.js', array( 'jquery' ), $this->version, false );
     122
     123            wp_enqueue_script(
     124                'silent-installer',
     125                plugin_dir_url(__FILE__) . 'js/silent-installer.js',
     126                array('jquery'),
     127                '1.0',
     128                true
     129            );
     130           
     131            wp_localize_script('silent-installer', 'silent_installer_vars', array(
     132                'ajaxurl' => admin_url('admin-ajax.php'),
     133                'nonce' => wp_create_nonce('silent_installer'),
     134                'installing_text' => __('Installing...', 'ultimakit'),
     135                'activated_text' => __('Installed & Activated!', 'ultimakit'),
     136                'error_text' => __('Installation Failed', 'ultimakit'),
     137                'already_installed' => __('Already Installed & Active', 'ultimakit'),
     138                'checking_status' => __('Checking plugin status...', 'ultimakit'),
     139                'downloading' => __('Downloading plugin...', 'ultimakit'),
     140                'installing' => __('Installing plugin...', 'ultimakit'),
     141                'activating' => __('Activating plugin...', 'ultimakit')
     142            ));
    116143
    117144            wp_enqueue_script( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'js/hide-admin-bar-based-on-user-roles-admin.js', array( 'jquery' ), $this->version, false );
    118 
    119145            $args = array(
    120146                'url'       => admin_url( 'admin-ajax.php' ),
     
    122148            );
    123149            wp_localize_script( $this->plugin_name, 'ajaxVar', $args );
     150
     151           
    124152        }
    125153
     
    147175            echo '<script>window.location.reload();</script>';
    148176        }
    149 
    150177        ?>
    151         <div class="main-panel">
    152             <div class="container-wrapper">
    153                 <div class="col-12 grid-margin">
    154                     <div class="card">
    155                         <div class="card-body">
    156                             <h3><?php echo __( 'Hide Admin Bar Based on User Roles', 'hide-admin-bar-based-on-user-roles' ); ?></h3>
    157                             <br/>
    158                             <form class="form-sample">
    159                                 <div class="row">
    160                                     <div class="col-md-12">
    161                                         <div class="form-group row">
    162                                             <label class="col-sm-6 col-form-label"><?php echo __( 'Hide Admin Bar for All Users', 'hide-admin-bar-based-on-user-roles' ); ?></label>
    163                                             <div class="col-sm-6">
    164                                                 <?php
    165                                                 $disableForAll = ( isset( $settings["hab_disableforall"] ) ) ? $settings["hab_disableforall"] : "";
    166                                                 $checked       = ( $disableForAll == 'yes' ) ? "checked" : "";
    167                                                 echo '<div class="icheck-square">
    168                                                         <input tabindex="5" ' . $checked . ' type="checkbox" id="hide_for_all">
    169                                                     </div>';
    170                                                 ?>
    171 
    172                                             </div>
    173                                         </div>
    174                                     </div>
    175                                 </div>
    176                                 <?php if ( $disableForAll == "no" || empty( $disableForAll ) ) { ?>
    177                                     <div class="row">
    178                                         <div class="col-md-12">
    179                                             <div class="form-group row">
    180                                                 <label class="col-sm-6 col-form-label"><?php echo __( 'Hide Admin Bar for All Guests Users', 'hide-admin-bar-based-on-user-roles' ); ?></label>
    181                                                 <div class="col-sm-6">
     178        <nav class="navbar navbar-expand-lg navbar-dark" style="background-color: #6610F2;">
     179            <div class="container-fluid p-2">
     180                <a class="navbar-brand" href="#">
     181                    <img src="<?php echo esc_url( plugin_dir_url( __FILE__ ).'images/hide-admin-bar-logo.svg' ); ?>"  class="d-inline-block align-top" alt="ultimakit-for-wp-logo" width="225px">
     182                    <div class="wpuk-version-info"><?php echo esc_html_e( 'Current version:', 'ultimakit-for-wp' ); ?>5.0.0</div>
     183                </a>
     184               
     185                <div class="navbar-nav ml-auto">
     186                    <a class="nav-item nav-link" target="_blank" href="https://wordpress.org/support/plugin/hide-admin-bar-based-on-user-roles/reviews/#new-post" style="color: #ffffff; margin-right: 20px"><?php echo esc_html_e( 'Leave Feedback', 'ultimakit-for-wp' ); ?></a>
     187                </div>
     188            </div>
     189        </nav>
     190
     191        <div class="wrap">
     192            <div class="container-fluid module-container">
     193                <div class="row">
     194                    <?php
     195                        $menu_active_class = '';
     196                        $menu_active_class = 'active show';
     197                    ?>
     198                    <!-- Nav tabs -->
     199                    <ul class="nav nav-tabs" id="wpukTabs" role="tablist">
     200                        <li class="nav-item" role="presentation">
     201                            <a class="nav-link <?php echo $menu_active_class; ?>" id="hab-modules-tab" data-bs-toggle="tab" href="#hab-modules" role="tab" aria-controls="hab-modules" aria-selected="true"><?php echo esc_html_e( 'Settings', 'ultimakit-for-wp' ); ?></a>
     202                        </li>
     203
     204                        <li class="nav-item" role="presentation">
     205                            <a class="nav-link" id="tools-tab" data-bs-toggle="tab" style="font-weight: 600; text-decoration: underline;" href="#tools" role="tab" aria-controls="tools" aria-selected="true"><?php echo esc_html_e( 'Powerful WordPress Tools', 'hide-admin-bar-based-on-user-roles' ); ?></a>
     206                        </li>
     207
     208                        <li class="nav-item" role="presentation">
     209                            <a class="nav-link" href="https://wordpress.org/support/plugin/hide-admin-bar-based-on-user-roles/" target="_blank"><?php echo esc_html_e( 'Help', 'ultimakit-for-wp' ); ?></a>
     210                        </li>
     211                    </ul>
     212                    <!-- Tab panes -->
     213                    <div class="tab-content" id="wpukTabsContent">
     214                        <div class="tab-pane fade show <?php echo $menu_active_class; ?>" id="hab-modules" role="tabpanel" aria-labelledby="modules-tab">
     215                            <div class="row">
     216                                <form class="form-sample">
     217                                    <div class="row">
     218                                        <div class="col-md-12">
     219                                            <div class="form-group row">
     220                                                <label class="col-sm-6 col-form-label"><?php echo __( 'Hide Admin Bar for All Users', 'hide-admin-bar-based-on-user-roles' ); ?></label>
     221                                                <div class="col-sm-6">
    182222                                                    <?php
    183                                                     $disableForAllGuests = ( isset( $settings["hab_disableforallGuests"] ) ) ? $settings["hab_disableforallGuests"] : "";
    184                                                     $checkedGuests       = ( $disableForAllGuests == 'yes' ) ? "checked" : "";
     223                                                    $disableForAll = ( isset( $settings["hab_disableforall"] ) ) ? $settings["hab_disableforall"] : "";
     224                                                    $checked       = ( $disableForAll == 'yes' ) ? "checked" : "";
    185225                                                    echo '<div class="icheck-square">
    186                                                         <input tabindex="5" ' . $checkedGuests . ' type="checkbox" id="hide_for_all_guests">
    187                                                     </div>';
     226                                                            <input tabindex="5" ' . $checked . ' type="checkbox" id="hide_for_all">
     227                                                        </div>';
    188228                                                    ?>
    189 
    190                                                 </div>
    191                                             </div>
    192                                         </div>
    193                                     </div>
    194                                     <div class="row">
    195                                         <div class="col-md-12">
    196                                             <div class="form-group row">
    197                                                 <label class="col-sm-6 col-form-label"><?php echo __( 'User Roles', 'hide-admin-bar-based-on-user-roles' ); ?>
    198                                                     <br/><br/><?php echo __( 'Hide admin bar for selected user roles.', 'hide-admin-bar-based-on-user-roles' ); ?>
    199                                                 </label>
    200                                                 <div class="col-sm-6">
    201                                                     <?php
    202                                                     global $wp_roles;
    203                                                     $exRoles = ( isset( $settings["hab_userRoles"] ) ) ? $settings["hab_userRoles"] : "";
    204                                                     $checked = '';
    205 
    206                                                     $roles = $wp_roles->get_names();
    207                                                     if ( is_array( $roles ) ) {
    208                                                         foreach ( $roles as $key => $value ):
    209                                                             if ( is_array( $exRoles ) ) {
    210                                                                 $checked = ( in_array( $key, $exRoles ) ) ? "checked" : "";
    211                                                             }
    212 
    213                                                             echo '<div class="icheck-square">
    214                                                             <input name="userRoles[]" ' . $checked . ' tabindex="5" type="checkbox" value="' . $key . '">&nbsp;&nbsp;' . $value . '
    215                                                         </div>';
    216                                                         endforeach;
    217                                                     }
    218                                                     ?>
    219 
    220                                                 </div>
    221                                             </div>
    222                                         </div>
    223                                     </div>
    224                                     <div class="row">
    225                                         <div class="col-md-12">
    226                                             <div class="form-group row">
    227                                                 <label class="col-sm-6 col-form-label"><?php echo __( 'Capabilities Blacklist', 'hide-admin-bar-based-on-user-roles' );
    228                                                     echo '<br />';
    229                                                     echo __( 'Hide admin bar for selected user capabilities', 'hide-admin-bar-based-on-user-roles' ); ?></label>
    230                                                 <div class="col-sm-6">
    231                                                     <?php
    232                                                     $caps = ( isset( $settings["hab_capabilities"] ) ) ? $settings["hab_capabilities"] : "";
    233                                                     ?>
    234                                                     <div class="icheck-square">
    235                                                         <textarea name="had_capabilities"
    236                                                                   id="had_capabilities"><?php echo $caps; ?></textarea>
    237                                                     </div>
    238                                                 </div>
    239                                             </div>
    240                                         </div>
    241                                     </div>
    242                                 <?php } ?>
    243                                 <div class="row">
    244                                     <div class="col-md-12">
    245                                         <button type="button" class="btn btn-primary btn-fw"
    246                                                 id="submit_roles"><?php echo __( "Save Changes", 'hide-admin-bar-based-on-user-roles' ); ?></button>
    247                                     </div>
    248                                     <div class="col-md-12">
    249                                         <br/>
    250                                         <p><?php echo __( "You can reset plugin settings by visiting this url without login to admin panel. Keep it safe.", 'hide-admin-bar-based-on-user-roles' ); ?>
    251                                             <br/><a href="<?php echo admin_url() . "options-general.php?page=hide-admin-bar-settings&reset_plugin=" . $hab_reset_key; ?>"
    252                                                     target="_blank"><?php echo admin_url() . "options-general.php?page=hide-admin-bar-settings&reset_plugin=" . $hab_reset_key; ?></a>
    253                                         </p>
    254                                     </div>
    255                                 </div>
    256                             </form>
    257                             <script>
    258                                 if (jQuery('#had_capabilities').length) {
    259                                     jQuery('#had_capabilities').tagsInput({
    260                                         'width': '100%',
    261                                         'height': '75%',
    262                                         'interactive': true,
    263                                         'defaultText': 'Add More',
    264                                         'removeWithBackspace': true,
    265                                         'minChars': 0,
    266                                         'maxChars': 20, // if not provided there is no limit
    267                                         'placeholderColor': '#666666'
    268                                     });
    269                                 }
    270                             </script>
    271                         </div>
    272                     </div>
    273                 </div>
    274             </div>
    275 
    276         </div>
    277 
     229                                                </div>
     230                                            </div>
     231                                        </div>
     232                                    </div>
     233                                    <?php if ( $disableForAll == "no" || empty( $disableForAll ) ) { ?>
     234                                        <div class="row mt-3">
     235                                            <div class="col-md-12">
     236                                                <div class="form-group row">
     237                                                    <label class="col-sm-6 col-form-label"><?php echo __( 'Hide Admin Bar for All Guests Users', 'hide-admin-bar-based-on-user-roles' ); ?></label>
     238                                                    <div class="col-sm-6">
     239                                                        <?php
     240                                                        $disableForAllGuests = ( isset( $settings["hab_disableforallGuests"] ) ) ? $settings["hab_disableforallGuests"] : "";
     241                                                        $checkedGuests       = ( $disableForAllGuests == 'yes' ) ? "checked" : "";
     242                                                        echo '<div class="icheck-square">
     243                                                            <input tabindex="5" ' . $checkedGuests . ' type="checkbox" id="hide_for_all_guests">
     244                                                        </div>';
     245                                                        ?>
     246
     247                                                    </div>
     248                                                </div>
     249                                            </div>
     250                                        </div>
     251                                        <div class="row mt-3">
     252                                            <div class="col-md-12">
     253                                                <div class="form-group row">
     254                                                    <label class="col-sm-6 col-form-label"><?php echo __( 'User Roles', 'hide-admin-bar-based-on-user-roles' ); ?>
     255                                                        <br/><br/><?php echo __( 'Hide admin bar for selected user roles.', 'hide-admin-bar-based-on-user-roles' ); ?>
     256                                                    </label>
     257                                                    <div class="col-sm-6">
     258                                                        <?php
     259                                                        global $wp_roles;
     260                                                        $exRoles = ( isset( $settings["hab_userRoles"] ) ) ? $settings["hab_userRoles"] : "";
     261                                                        $checked = '';
     262
     263                                                        $roles = $wp_roles->get_names();
     264                                                        if ( is_array( $roles ) ) {
     265                                                            foreach ( $roles as $key => $value ):
     266                                                                if ( is_array( $exRoles ) ) {
     267                                                                    $checked = ( in_array( $key, $exRoles ) ) ? "checked" : "";
     268                                                                }
     269
     270                                                                echo '<div class="icheck-square">
     271                                                                <input name="userRoles[]" ' . $checked . ' tabindex="5" type="checkbox" value="' . $key . '">&nbsp;&nbsp;' . $value . '
     272                                                            </div>';
     273                                                            endforeach;
     274                                                        }
     275                                                        ?>
     276
     277                                                    </div>
     278                                                </div>
     279                                            </div>
     280                                        </div>
     281                                        <div class="row mt-3">
     282                                            <div class="col-md-12">
     283                                                <div class="form-group row">
     284                                                    <label class="col-sm-6 col-form-label"><?php echo __( 'Capabilities Blacklist', 'hide-admin-bar-based-on-user-roles' );
     285                                                        echo '<br />';
     286                                                        echo __( 'Hide admin bar for selected user capabilities', 'hide-admin-bar-based-on-user-roles' ); ?></label>
     287                                                    <div class="col-sm-6">
     288                                                        <?php
     289                                                        $caps = ( isset( $settings["hab_capabilities"] ) ) ? $settings["hab_capabilities"] : "";
     290                                                        ?>
     291                                                        <div class="icheck-square">
     292                                                            <textarea name="had_capabilities"
     293                                                                    id="had_capabilities" rows="5" cols="50"><?php echo $caps; ?></textarea>
     294                                                        </div>
     295                                                    </div>
     296                                                </div>
     297                                            </div>
     298                                        </div>
     299                                    <?php } ?>
     300                                    <div class="row mt-3">
     301                                        <div class="col-md-12">
     302                                            <button type="button" class="btn btn-primary btn-fw"
     303                                                    id="submit_roles"><?php echo __( "Save Changes", 'hide-admin-bar-based-on-user-roles' ); ?></button>
     304                                        </div>
     305                                        <div class="col-md-12">
     306                                            <br/>
     307                                            <p><?php echo __( "You can reset plugin settings by visiting this url without login to admin panel. Keep it safe.", 'hide-admin-bar-based-on-user-roles' ); ?>
     308                                                <br/><a href="<?php echo admin_url() . "options-general.php?page=hide-admin-bar-settings&reset_plugin=" . $hab_reset_key; ?>"
     309                                                        target="_blank"><?php echo admin_url() . "options-general.php?page=hide-admin-bar-settings&reset_plugin=" . $hab_reset_key; ?></a>
     310                                            </p>
     311                                        </div>
     312                                    </div>
     313                                </form>
     314                                <script>
     315                                    if (jQuery('#had_capabilities').length) {
     316                                        jQuery('#had_capabilities').tagsInput({
     317                                            'width': '100%',
     318                                            'height': '75%',
     319                                            'interactive': true,
     320                                            'defaultText': 'Add More',
     321                                            'removeWithBackspace': true,
     322                                            'minChars': 0,
     323                                            'maxChars': 20, // if not provided there is no limit
     324                                            'placeholderColor': '#666666'
     325                                        });
     326                                    }
     327                                </script>
     328                            </div>
     329                        </div> <!-- WordPress Tab End --->
     330                       
     331                        <div class="tab-pane fade" id="tools" role="tabpanel" aria-labelledby="tools-tab">
     332                            <div class="row">
     333                                <div class="ultimakit-promo w-100 my-4">
     334                                    <div class="card border-0 w-100">
     335                                        <div class="card-body p-4">
     336                                            <div class="row g-4 w-100 mx-0">
     337                                                <div class="col-lg-8">
     338                                                    <div class="feature-content">
     339                                                        <span class="badge bg-primary-subtle text-primary mb-2">170+ Powerful Modules</span>
     340                                                        <h3 class="text-primary mb-3">UltimaKit For WP – All-in-One WordPress Toolkit for SEO, Customization, and Performance</h3>
     341                                                        <div class="features-list mb-4">
     342                                                            <p class="text-secondary mb-3">
     343                                                                Simplify your WordPress management with UltimaKit – the all-in-one toolkit that replaces 25+ plugins. Popular modules include:
     344                                                            </p>
     345                                                            <div class="module-highlights">
     346                                                                <span class="module-tag">GDPR Compliance</span>
     347                                                                <span class="module-tag">Hide Admin Bar</span>
     348                                                                <span class="module-tag">Custom Post Types</span>
     349                                                                <span class="module-tag">SEO Tools</span>
     350                                                                <span class="module-tag">Post & Page Order</span>
     351                                                                <span class="module-tag">Admin Activity Logger</span>
     352                                                                <span class="module-tag">Gravity Forms: Address Autocomplete</span>
     353                                                                <span class="module-tag">Gravity Forms: AI Analysis</span>
     354                                                                <span class="module-tag">Gravity Forms: Form Analytics(Most advanced analytics)</span>
     355                                                                <span class="module-tag">WooCommerce Modules</span>
     356                                                            </div>
     357                                                        </div>
     358                                                        <button href="#" data-plugin-slug="ultimakit-for-wp" class="install-plugin btn btn-primary btn-lg">
     359                                                            Install UltimaKit Now
     360                                                        </button>
     361
     362                                                        <div class="loader-wrapper">
     363                                                            <div class="loader-bar"></div>
     364                                                        </div>
     365
     366                                                        <div class="progress-steps">
     367                                                            <div class="step" data-step="check">
     368                                                                <i class="dashicons dashicons-search"></i>
     369                                                                Checking plugin status...
     370                                                            </div>
     371                                                            <div class="step" data-step="download">
     372                                                                <i class="dashicons dashicons-download"></i>
     373                                                                Downloading plugin...
     374                                                            </div>
     375                                                            <div class="step" data-step="install">
     376                                                                <i class="dashicons dashicons-admin-plugins"></i>
     377                                                                Installing plugin...
     378                                                            </div>
     379                                                            <div class="step" data-step="activate">
     380                                                                <i class="dashicons dashicons-yes"></i>
     381                                                                Activating plugin...
     382                                                            </div>
     383                                                        </div>
     384                                                       
     385                                                        <a href="https://wpultimakit.com" target="_blank" class="btn btn-primary btn-lg">
     386                                                            Learn More About UltimaKit
     387                                                        </a>
     388                                                    </div>
     389                                                </div>
     390                                                <div class="col-lg-4">
     391                                                    <div class="stats-container">
     392                                                        <div class="stat-item">
     393                                                            <span class="stat-number">25+</span>
     394                                                            <span class="stat-label">Plugins Replaced</span>
     395                                                        </div>
     396                                                        <div class="stat-item">
     397                                                            <span class="stat-number">170+</span>
     398                                                            <span class="stat-label">Powerful Modules</span>
     399                                                        </div>
     400                                                        <div class="stat-item">
     401                                                            <span class="stat-number">20+</span>
     402                                                            <span class="stat-label">WooCommerce Modules</span>
     403                                                        </div>
     404                                                        <div class="stat-item">
     405                                                            <span class="stat-number">15+</span>
     406                                                            <span class="stat-label">Gravity Forms Modules</span>
     407                                                        </div>
     408                                                    </div>
     409                                                </div>
     410                                            </div>
     411                                        </div>
     412                                    </div>
     413                                </div>
     414
     415                                <div class="ultimakit-promo w-100 my-4">
     416                                    <div class="card border-0 w-100">
     417                                        <div class="card-body p-4">
     418                                            <div class="row g-4 w-100 mx-0">
     419                                                <div class="col-lg-8">
     420                                                    <div class="feature-content">
     421                                                        <span class="badge bg-primary-subtle text-primary mb-2">Smart Note-Taking for WordPress</span>
     422                                                        <h3 class="text-primary mb-3">Smart Note-Taking for WordPress</h3>
     423                                                        <div class="features-list mb-4">
     424                                                            <p class="text-secondary mb-3">
     425                                                            Enhance your WordPress experience with intelligent note-taking directly in your dashboard. Perfect for content creators, developers, and site managers!
     426                                                            </p>
     427                                                            <div class="module-highlights">
     428                                                                <span class="module-tag">Quick Notes Dashboard</span>
     429                                                                <span class="module-tag">Rich Text Editor</span>
     430                                                                <span class="module-tag">Task Management</span>
     431                                                                <span class="module-tag">Post Draft Notes</span>
     432                                                                <span class="module-tag">Team Collaboration</span>
     433                                                                <span class="module-tag">Custom Categories</span>
     434                                                                <span class="module-tag">Markdown Support</span>
     435                                                                <span class="module-tag">File Attachments</span>
     436                                                            </div>
     437                                                        </div>
     438                                                        <button href="#" data-plugin-slug="noteflow" class="install-plugin btn btn-primary btn-lg">
     439                                                            Install Noteflow Now
     440                                                        </button>
     441
     442                                                        <div class="loader-wrapper">
     443                                                            <div class="loader-bar"></div>
     444                                                        </div>
     445
     446                                                        <div class="progress-steps">
     447                                                            <div class="step" data-step="check">
     448                                                                <i class="dashicons dashicons-search"></i>
     449                                                                Checking plugin status...
     450                                                            </div>
     451                                                            <div class="step" data-step="download">
     452                                                                <i class="dashicons dashicons-download"></i>
     453                                                                Downloading plugin...
     454                                                            </div>
     455                                                            <div class="step" data-step="install">
     456                                                                <i class="dashicons dashicons-admin-plugins"></i>
     457                                                                Installing plugin...
     458                                                            </div>
     459                                                            <div class="step" data-step="activate">
     460                                                                <i class="dashicons dashicons-yes"></i>
     461                                                                Activating plugin...
     462                                                            </div>
     463                                                        </div>
     464
     465                                                        <a href="https://wordpress.org/plugins/noteflow/" target="_blank" class="btn btn-primary btn-lg">
     466                                                            Learn More About Noteflow
     467                                                        </a>
     468                                                    </div>
     469                                                </div>
     470                                                <div class="col-lg-4">
     471                                                    <div class="stats-container">
     472                                                        <div class="stat-item">
     473                                                            <span class="stat-number">100%</span>
     474                                                            <span class="stat-label">Free Forever</span>
     475                                                        </div>
     476                                                        <div class="stat-item">
     477                                                            <span class="stat-number">5★</span>
     478                                                            <span class="stat-label">User Rating</span>
     479                                                        </div>
     480                                                        <div class="stat-item">
     481                                                            <span class="stat-number">1-Click</span>
     482                                                            <span class="stat-label">Quick Notes</span>
     483                                                        </div>
     484                                                    </div>
     485                                                </div>
     486                                            </div>
     487                                        </div>
     488                                    </div>
     489                                </div>
     490                               
     491                            </div>
     492                        </div> <!-- WordPress Tab End --->
     493                   
     494                    </div>
     495                    <!-- Duplicate the above block for each module you have -->
     496                </div>
     497            </div>
     498        </div>
    278499
    279500        <?php
     
    313534    }
    314535
     536    public function enqueue_silent_installer() {
     537       
     538    }
     539
     540    public function check_plugin_status() {
     541        // Check nonce
     542        if (!check_ajax_referer('silent_installer', 'nonce', false)) {
     543            wp_send_json_error(array('message' => 'Invalid security token.'));
     544        }
     545
     546        // Check user capabilities
     547        if (!current_user_can('install_plugins')) {
     548            wp_send_json_error(array('message' => 'You do not have permission to install plugins.'));
     549        }
     550
     551        $plugin_slug = sanitize_text_field($_POST['plugin_slug']);
     552       
     553        if (empty($plugin_slug)) {
     554            wp_send_json_error(array('message' => 'Plugin slug is required.'));
     555        }
     556
     557        require_once ABSPATH . 'wp-admin/includes/plugin.php';
     558       
     559        $all_plugins = get_plugins();
     560        $plugin_base_file = false;
     561       
     562        foreach ($all_plugins as $file => $plugin) {
     563            if (strpos($file, $plugin_slug . '/') === 0) {
     564                $plugin_base_file = $file;
     565                break;
     566            }
     567        }
     568
     569        wp_send_json_success(array(
     570            'installed' => !empty($plugin_base_file),
     571            'active' => !empty($plugin_base_file) && is_plugin_active($plugin_base_file)
     572        ));
     573    }
     574
     575    public function handle_silent_install_plugin() {
     576        // Check nonce
     577        if (!check_ajax_referer('silent_installer', 'nonce', false)) {
     578            wp_send_json_error(array('message' => 'Invalid security token.'));
     579        }
     580
     581        // Check user capabilities
     582        if (!current_user_can('install_plugins')) {
     583            wp_send_json_error(array('message' => 'You do not have permission to install plugins.'));
     584        }
     585
     586        $plugin_slug = sanitize_text_field($_POST['plugin_slug']);
     587       
     588        if (empty($plugin_slug)) {
     589            wp_send_json_error(array('message' => 'Plugin slug is required.'));
     590        }
     591
     592        // Include required files
     593        require_once ABSPATH . 'wp-admin/includes/plugin.php';
     594        require_once ABSPATH . 'wp-admin/includes/plugin-install.php';
     595        require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
     596        require_once ABSPATH . 'wp-admin/includes/class-plugin-upgrader.php';
     597
     598        // Check if plugin is already installed
     599        $installed_plugins = get_plugins();
     600        $plugin_base_file = false;
     601
     602        foreach ($installed_plugins as $file => $plugin) {
     603            if (strpos($file, $plugin_slug . '/') === 0) {
     604                $plugin_base_file = $file;
     605                break;
     606            }
     607        }
     608
     609        // If plugin is not installed, install it
     610        if (!$plugin_base_file) {
     611            try {
     612                // Get plugin info
     613                $api = plugins_api('plugin_information', array(
     614                    'slug' => $plugin_slug,
     615                    'fields' => array(
     616                        'short_description' => false,
     617                        'sections' => false,
     618                        'requires' => false,
     619                        'rating' => false,
     620                        'ratings' => false,
     621                        'downloaded' => false,
     622                        'last_updated' => false,
     623                        'added' => false,
     624                        'tags' => false,
     625                        'compatibility' => false,
     626                        'homepage' => false,
     627                        'donate_link' => false,
     628                    ),
     629                ));
     630
     631                if (is_wp_error($api)) {
     632                    wp_send_json_error(array('message' => $api->get_error_message()));
     633                }
     634
     635                $upgrader = new Plugin_Upgrader(new WP_Ajax_Upgrader_Skin());
     636                $install_result = $upgrader->install($api->download_link);
     637
     638                if (is_wp_error($install_result)) {
     639                    wp_send_json_error(array('message' => $install_result->get_error_message()));
     640                }
     641
     642                $plugin_base_file = $upgrader->plugin_info();
     643
     644            } catch (Exception $e) {
     645                wp_send_json_error(array('message' => $e->getMessage()));
     646            }
     647        }
     648
     649        // Activate the plugin
     650        if ($plugin_base_file) {
     651            try {
     652                $activation_result = activate_plugin($plugin_base_file);
     653               
     654                if (is_wp_error($activation_result)) {
     655                    wp_send_json_error(array('message' => $activation_result->get_error_message()));
     656                }
     657
     658                wp_send_json_success(array(
     659                    'message' => 'Plugin installed and activated successfully',
     660                    'plugin_file' => $plugin_base_file
     661                ));
     662
     663            } catch (Exception $e) {
     664                wp_send_json_error(array('message' => $e->getMessage()));
     665            }
     666        } else {
     667            wp_send_json_error(array('message' => 'Plugin installation failed.'));
     668        }
     669    }
    315670}
  • hide-admin-bar-based-on-user-roles/trunk/admin/css/hide-admin-bar-based-on-user-roles-admin.css

    r2172542 r3241205  
    1 /**
    2  * All of the CSS for your admin-specific functionality should be
    3  * included in this file.
    4  */
    5 
    6 /* .rolesList input[type="checkbox"] { margin: 0px 10px 0px 10px;  }
    7  .advertisement{
    8    
    9  }*/
    10  .card { max-width: 100% !important; }
    11  .main-panel{ width: calc(100% - 150px); }
    12  .card .card-header.header-sm { padding: 6px 5px; height: 60px; }
    13  #wpfooter{ display: none; }
     1.doc-badge a,.explore-btn,.help-section a,.learn-more-link{text-decoration:none}.badge-primary,.bg-primary,.btn-primary{background-color:#6610f2!important;border-color:#6610f2!important}.badge-secondary,.bg-secondary,.btn-secondary{background-color:silver!important;border-color:silver!important}.badge-warning,.bg-warning,.btn-warning{background-color:gold!important;border-color:gold!important}.navbar{font-family:Arial,sans-serif}.nav-item.nav-link:hover{color:gold!important}.nav-item.nav-link:last-child{padding:5px 15px;border:2px solid gold;border-radius:20px}.nav-item.nav-link:last-child:hover{background-color:gold;color:#6610f2!important}.nav-item.nav-link.get-pro{padding:5px 15px;border:2px solid gold;border-radius:20px;background-color:gold;color:#3498db}.nav-item.nav-link.get-pro:hover{background-color:#3498db;color:gold!important}.module-container{box-shadow:0 4px 8px rgba(0,0,0,.1);padding:20px;margin:20px 0;border-radius:15px;background-color:#fff}.module-container .filters .filter_container{display:flex;align-items:center;margin-bottom:25px}.module-container .filters .filter_container h4{margin-right:20px;color:#3498db;font-size:22px}.module-container .filters .filter_container input,.module-container .filters .filter_container select{border:2px solid #3498db;border-radius:10px;padding-top:5px;padding-bottom:5px}.module-box{background-color:#fff;border:2px solid silver;border-radius:15px;margin:10px;position:relative;height:200px;box-sizing:border-box}.module-box:hover{border:2px solid #3498db;box-shadow:0 4px 8px rgba(102,16,242,.3),0 6px 20px rgba(102,16,242,.25)}.module-title{position:absolute;top:10px;left:10px;color:#3498db;font-size:1.1rem;max-width:195px}.learn-more-link,.module-description{position:absolute;left:10px;font-size:.9em}.module-description{top:40px;color:#666;max-width:90%;margin-top:15px}.module-switch{position:absolute;top:10px;right:-30px}.learn-more-link{bottom:10px;color:#3498db;border:2px solid #3498db;padding:5px 10px;border-radius:8px;background-color:#fff;transition:background-color .3s,color .3s;cursor:pointer}.doc-badge,.free-badge,.pro-badge{border-radius:8px;position:absolute;bottom:10px}.learn-more-link:hover{background-color:#3498db;color:#fff}.pro-badge{background:linear-gradient(45deg,#6610f2,gold);text-shadow:1px 1px 1px rgba(0,0,0,.2)}.form-check-input:checked+.form-check-label::before,.free-badge,.pro-badge{background-color:#3498db}.free-badge,.pro-badge{right:10px;color:#fff;padding:2px 8px;font-size:.8em}.doc-badge{right:140px;color:#3498db;padding:1px 5px;font-size:.9em;cursor:pointer}.doc-badge a{color:#3498db}.form-check-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.form-check-label{position:relative;padding-left:45px;cursor:pointer;font-weight:600;text-indent:-9999px;overflow:hidden;white-space:nowrap}.form-check-label::after,.form-check-label::before{content:"";position:absolute;top:50%;transform:translateY(-50%)}.form-check-label::before{left:0;width:30px;height:16px;background-color:#ddd;border-radius:8px;transition:background-color .3s}.form-check-label::after{left:2px;width:12px;height:12px;background-color:#fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2);transition:left .3s}.form-check-input:checked+.form-check-label::after{left:16px}.nav-tabs{border-bottom:2px solid silver;margin-bottom:15px}.nav-tabs .nav-item{margin-bottom:-2px}.nav-tabs .nav-link{border-radius:8px 8px 0 0;border:2px solid transparent;color:#3498db;padding:10px 15px;transition:.3s;box-shadow:none}.nav-tabs .nav-link:hover{background-color:#f2f2f2;border-color:silver;box-shadow:none}.nav-tabs .nav-link.active{background-color:#fff;color:#3498db;border-color:silver silver #fff}.tab-content{border:2px solid silver;border-top:none;border-radius:0 0 8px 8px;padding:20px;margin-top:-17px}.plugin-badge{position:absolute;bottom:10px;right:60px;color:#fff;background-color:#007bff;padding:2px 8px;border-radius:8px;font-size:.8em;z-index:10}.help-container,.plugin-item{background-color:#f7f8fc;border-radius:10px;box-shadow:0 4px 10px rgba(0,0,0,.05)}.plugin-badge.woocommerce{background-color:#96588a}.module-filters{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.filter-controls{display:flex;gap:10px}.module-filters .form-control,.module-filters .form-select{width:auto}.search-control{width:20%}.search-control input{width:100%!important}.help-container{padding:20px 30px}.help-section{margin-bottom:40px}.faqs .faq-item{margin-bottom:20px;border-left:4px solid #3498db;padding-left:15px}.faqs h3{color:#3498db;font-size:1.2em;margin-bottom:10px}.help-section h2{border-bottom:2px solid #e0e2e6;padding-bottom:10px;margin-bottom:20px;font-size:1.4em}.help-section a{color:#007bff;transition:color .3s}.help-section a:hover{color:#0056b3}.plugins-container{display:flex;flex-wrap:wrap;gap:20px}.plugin-item{flex:1;max-width:calc(33.33% - 20px);padding:20px;text-align:center}.module-tag,.stat-item{box-shadow:0 2px 4px rgba(0,0,0,.1)}.plugin-image{max-width:100%;height:auto;margin-bottom:15px}.ultimakit-promo,.ultimakit-promo .card{width:100%!important;max-width:100%!important}.plugin-item h3{font-size:1.2em;color:#3498db;margin-bottom:10px}.explore-btn{background-color:#007bff;color:#fff;border-radius:8px;padding:10px 20px;transition:background-color .3s}.explore-btn:hover{background-color:#0056b3}.ultimakit-promo .card{background:linear-gradient(135deg,#fdfbfb,#ebedee);border-radius:12px;box-shadow:0 4px 6px rgba(0,0,0,.1);transition:.3s}.module-tag,.ultimakit-promo .badge{border-radius:20px;font-size:.875rem;font-weight:600}.ultimakit-promo .badge{padding:.5em 1em}.ultimakit-promo h3{font-size:2rem;font-weight:700;color:#dc3545}.module-highlights{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.module-tag{padding:.5rem 1rem}.stats-container{display:flex;flex-direction:column;gap:1rem;height:100%;justify-content:center}.stat-item{padding:1.5rem;border-radius:10px;text-align:center}.stat-number{display:block;font-size:2.5rem;font-weight:800;line-height:1}.stat-label{display:block;font-size:1rem;font-weight:500;margin-top:.5rem}.btn-danger{padding:.75rem 1.5rem;font-weight:600;border-radius:6px;background:#dc3545;border:none;transition:.3s}.btn-danger:hover{background:#c82333;transform:translateY(-1px)}.feature-content .btn-lg{border-radius:25px!important}.install-plugin{padding:10px 20px;background:#6610f2;color:#fff;border:none;border-radius:4px;cursor:pointer;position:relative;transition:.3s;min-width:150px}.install-plugin:disabled{background:#72aee6;cursor:not-allowed}.loader-wrapper{display:none;position:relative;width:100%;height:4px;background:#e2e4e7;margin-top:10px;border-radius:2px;overflow:hidden}.loader-bar{position:absolute;width:0%;height:100%;background:#6610f2;transition:width .3s;border-radius:2px}.progress-steps{display:none;margin-top:15px;font-size:13px;color:#50575e}.step{margin:5px 0;opacity:.7}.step.active{opacity:1;color:#6610f2;font-weight:500}.step i{margin-right:5px}.success-icon{display:none;color:#00a32a;margin-left:8px}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.fade-in{animation:.3s ease-in fadeIn}@media (max-width:991px){.stats-container{flex-direction:row;margin-top:1rem}.stat-item{flex:1}.feature-content{text-align:center}.module-highlights{justify-content:center}}@media (max-width:576px){.stats-container{flex-direction:column}.module-tag{width:100%;text-align:center}}
  • hide-admin-bar-based-on-user-roles/trunk/admin/js/hide-admin-bar-based-on-user-roles-admin.js

    r3085812 r3241205  
    3838        });
    3939
    40     })
     40    });
     41   
     42 
     43
     44
     45   
    4146}(jQuery);
  • hide-admin-bar-based-on-user-roles/trunk/hide-admin-bar-based-on-user-roles.php

    r3214206 r3241205  
    1313 * Plugin URI:        https://wordpress.org/plugins/hide-admin-bar-based-on-user-roles/
    1414 * Description:       This plugin is very useful to hide admin bar based on selected user roles and user capabilities.
    15  * Version:           4.1.0
     15 * Version:           5.0.0
    1616 * Author:            Ankit Panchal
    1717 * Author URI:        https://wpankit.com/
     
    4747 * Rename this for your plugin and update it as you release new versions.
    4848 */
    49 define( 'HIDE_ADMIN_BAR_BASED_ON_USER_ROLES', '4.1.0' );
     49define( 'HIDE_ADMIN_BAR_BASED_ON_USER_ROLES', '5.0.0' );
    5050
    5151/**
     
    9393hab_run_hide_admin_bar_based_on_user_roles();
    9494
    95 
    96 // Function to display the dismissible advertisement bar
    97 function display_custom_advertisement_habou() {
    98     // Check if the user has dismissed the ad already
    99     if (get_user_meta(get_current_user_id(), 'dismiss_custom_ad_habou', true)) {
    100         return; // Don't show the ad if it has been dismissed
    101     }
    102     if( isset($_GET['page']) && 'hide-admin-bar-settings' === $_GET['page'] ){
    103         echo '<div class="notice notice-info is-dismissible" id="custom-advertisement-bar-dbefm">';
    104         echo '<p><strong>Replace 25+ Plugins with Just One!</strong> Try UltimaKit for WP – the all-in-one WordPress toolkit for performance, security, and customization. <a href="https://wpultimakit.com/features/" target="_blank">Learn more</a> <strong></strong></p>';
    105         echo '</div>';
    106     }
    107 }
    108 add_action('admin_notices', 'display_custom_advertisement_habou');
    109 
    11095// Function to store the dismissed state using AJAX
    11196function custom_advertisement_dismiss_habou() {
  • hide-admin-bar-based-on-user-roles/trunk/includes/class-hide-admin-bar-based-on-user-roles.php

    r3085812 r3241205  
    160160        $this->loader->add_action( 'wp_ajax_save_user_roles', $plugin_admin, 'save_user_roles' );
    161161        $this->loader->add_action( 'upgrader_process_complete', $plugin_admin, 'upgrader_process_complete' );
    162 
    163          
    164        
     162        $this->loader->add_action( 'wp_ajax_check_plugin_status', $plugin_admin, 'check_plugin_status' );
     163        $this->loader->add_action( 'wp_ajax_silent_install_plugin', $plugin_admin, 'handle_silent_install_plugin' );
     164
    165165       
    166166    }
Note: See TracChangeset for help on using the changeset viewer.