Version Description
- Switch input names to use a counter [nav-menu-role][100][1]. For some reason [nav-menu-role][100][] doesn't post an array and hypenated names [nav-menu-role][100][gold-plan] wreak havoc on the save routine. Shouldn't impact anyone not using hyphenated role names.
Download this release
Release Info
| Developer | helgatheviking |
| Plugin | |
| Version | 1.8.1 |
| Comparing to | |
| See all releases | |
Code changes from version 1.8.0 to 1.8.1
- assets/screenshot-1.jpg +0 -0
- nav-menu-roles.php +19 -9
- readme.txt +8 -5
assets/screenshot-1.jpg
ADDED
|
Binary file
|
nav-menu-roles.php
CHANGED
|
@@ -3,7 +3,7 @@
|
|
| 3 |
Plugin Name: Nav Menu Roles
|
| 4 |
Plugin URI: http://www.kathyisawesome.com/449/nav-menu-roles/
|
| 5 |
Description: Hide custom menu items based on user roles.
|
| 6 |
-
Version: 1.8.
|
| 7 |
Author: Kathy Darling
|
| 8 |
Author URI: http://www.kathyisawesome.com
|
| 9 |
License: GPL2
|
|
@@ -54,7 +54,7 @@ class Nav_Menu_Roles {
|
|
| 54 |
* @constant string version number
|
| 55 |
* @since 1.7.1
|
| 56 |
*/
|
| 57 |
-
CONST VERSION = '1.8.
|
| 58 |
|
| 59 |
/**
|
| 60 |
* Main Nav Menu Roles Instance
|
|
@@ -327,6 +327,8 @@ class Nav_Menu_Roles {
|
|
| 327 |
<br />
|
| 328 |
|
| 329 |
<?php
|
|
|
|
|
|
|
| 330 |
|
| 331 |
/* Loop through each of the available roles. */
|
| 332 |
foreach ( $display_roles as $role => $name ) {
|
|
@@ -337,9 +339,10 @@ class Nav_Menu_Roles {
|
|
| 337 |
?>
|
| 338 |
|
| 339 |
<div class="role-input-holder" style="float: left; width: 33.3%; margin: 2px 0;">
|
| 340 |
-
<input type="checkbox" name="nav-menu-role[<?php echo $item->ID ;?>][<?php echo $
|
| 341 |
<label for="nav_menu_role-<?php echo $role; ?>-for-<?php echo $item->ID ;?>">
|
| 342 |
<?php echo esc_html( $name ); ?>
|
|
|
|
| 343 |
</label>
|
| 344 |
</div>
|
| 345 |
|
|
@@ -375,19 +378,26 @@ class Nav_Menu_Roles {
|
|
| 375 |
$allowed_roles = apply_filters( 'nav_menu_roles', $wp_roles->role_names );
|
| 376 |
|
| 377 |
// verify this came from our screen and with proper authorization.
|
| 378 |
-
if ( ! isset( $_POST['nav-menu-role-nonce'] ) || ! wp_verify_nonce( $_POST['nav-menu-role-nonce'], 'nav-menu-nonce-name' ) )
|
| 379 |
return;
|
| 380 |
-
|
|
|
|
| 381 |
$saved_data = false;
|
| 382 |
|
| 383 |
if ( isset( $_POST['nav-menu-logged-in-out'][$menu_item_db_id] ) && $_POST['nav-menu-logged-in-out'][$menu_item_db_id] == 'in' && ! empty ( $_POST['nav-menu-role'][$menu_item_db_id] ) ) {
|
|
|
|
| 384 |
$custom_roles = array();
|
|
|
|
| 385 |
// only save allowed roles
|
| 386 |
-
foreach( $_POST['nav-menu-role'][$menu_item_db_id] as $role ) {
|
| 387 |
-
if ( array_key_exists ( $role, $allowed_roles ) )
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 388 |
}
|
| 389 |
-
|
| 390 |
-
} else if ( isset( $_POST['nav-menu-logged-in-out'][$menu_item_db_id] ) && in_array( $_POST['nav-menu-logged-in-out'][$menu_item_db_id], array( 'in', 'out' ) ) ) {
|
| 391 |
$saved_data = $_POST['nav-menu-logged-in-out'][$menu_item_db_id];
|
| 392 |
}
|
| 393 |
|
| 3 |
Plugin Name: Nav Menu Roles
|
| 4 |
Plugin URI: http://www.kathyisawesome.com/449/nav-menu-roles/
|
| 5 |
Description: Hide custom menu items based on user roles.
|
| 6 |
+
Version: 1.8.1
|
| 7 |
Author: Kathy Darling
|
| 8 |
Author URI: http://www.kathyisawesome.com
|
| 9 |
License: GPL2
|
| 54 |
* @constant string version number
|
| 55 |
* @since 1.7.1
|
| 56 |
*/
|
| 57 |
+
CONST VERSION = '1.8.1';
|
| 58 |
|
| 59 |
/**
|
| 60 |
* Main Nav Menu Roles Instance
|
| 327 |
<br />
|
| 328 |
|
| 329 |
<?php
|
| 330 |
+
|
| 331 |
+
$i = 1;
|
| 332 |
|
| 333 |
/* Loop through each of the available roles. */
|
| 334 |
foreach ( $display_roles as $role => $name ) {
|
| 339 |
?>
|
| 340 |
|
| 341 |
<div class="role-input-holder" style="float: left; width: 33.3%; margin: 2px 0;">
|
| 342 |
+
<input type="checkbox" name="nav-menu-role[<?php echo $item->ID ;?>][<?php echo $i; ?>]" id="nav_menu_role-<?php echo $role; ?>-for-<?php echo $item->ID ;?>" <?php echo $checked; ?> value="<?php echo $role; ?>" />
|
| 343 |
<label for="nav_menu_role-<?php echo $role; ?>-for-<?php echo $item->ID ;?>">
|
| 344 |
<?php echo esc_html( $name ); ?>
|
| 345 |
+
<?php $i++; ?>
|
| 346 |
</label>
|
| 347 |
</div>
|
| 348 |
|
| 378 |
$allowed_roles = apply_filters( 'nav_menu_roles', $wp_roles->role_names );
|
| 379 |
|
| 380 |
// verify this came from our screen and with proper authorization.
|
| 381 |
+
if ( ! isset( $_POST['nav-menu-role-nonce'] ) || ! wp_verify_nonce( $_POST['nav-menu-role-nonce'], 'nav-menu-nonce-name' ) ){
|
| 382 |
return;
|
| 383 |
+
}
|
| 384 |
+
|
| 385 |
$saved_data = false;
|
| 386 |
|
| 387 |
if ( isset( $_POST['nav-menu-logged-in-out'][$menu_item_db_id] ) && $_POST['nav-menu-logged-in-out'][$menu_item_db_id] == 'in' && ! empty ( $_POST['nav-menu-role'][$menu_item_db_id] ) ) {
|
| 388 |
+
|
| 389 |
$custom_roles = array();
|
| 390 |
+
|
| 391 |
// only save allowed roles
|
| 392 |
+
foreach( (array) $_POST['nav-menu-role'][$menu_item_db_id] as $role ) {
|
| 393 |
+
if ( array_key_exists ( $role, $allowed_roles ) ) {
|
| 394 |
+
$custom_roles[] = $role;
|
| 395 |
+
}
|
| 396 |
+
}
|
| 397 |
+
if ( ! empty ( $custom_roles ) ) {
|
| 398 |
+
$saved_data = $custom_roles;
|
| 399 |
}
|
| 400 |
+
} else if ( isset( $_POST['nav-menu-logged-in-out'][$menu_item_db_id] ) && in_array( $_POST['nav-menu-logged-in-out'][$menu_item_db_id], array( 'in', 'out' ) ) ) {
|
|
|
|
| 401 |
$saved_data = $_POST['nav-menu-logged-in-out'][$menu_item_db_id];
|
| 402 |
}
|
| 403 |
|
readme.txt
CHANGED
|
@@ -5,7 +5,7 @@ Donate link: https://www.paypal.me/helgatheviking
|
|
| 5 |
Tags: menu, menus, nav menu, nav menus
|
| 6 |
Requires at least: 4.5.0
|
| 7 |
Tested up to: 4.5.1
|
| 8 |
-
Stable tag: 1.8.
|
| 9 |
License: GPLv3
|
| 10 |
|
| 11 |
Hide custom menu items based on user roles. PLEASE READ THE FAQ IF YOU ARE NOT SEEING THE SETTINGS.
|
|
@@ -23,9 +23,8 @@ In WordPress menu items and pages are completely separate entities. Nav Menu Rol
|
|
| 23 |
= Usage =
|
| 24 |
|
| 25 |
1. Go to Appearance > Menus
|
| 26 |
-
1.
|
| 27 |
-
1. If you
|
| 28 |
-
1. If you choose 'By Role' and don't check any boxes, the item will be visible to everyone like normal.
|
| 29 |
|
| 30 |
= Support =
|
| 31 |
|
|
@@ -62,7 +61,8 @@ WordPress does not have sufficient hooks in this area of the admin and until the
|
|
| 62 |
5. BeTheme
|
| 63 |
6. Yith Menu
|
| 64 |
7. Jupiter Theme
|
| 65 |
-
8. iMedica
|
|
|
|
| 66 |
|
| 67 |
|
| 68 |
= <a id="compatibility"></a>Workaround #1 =
|
|
@@ -199,6 +199,9 @@ However, the Import plugin only imports certain post meta for menu items. As of
|
|
| 199 |
|
| 200 |
== Changelog ==
|
| 201 |
|
|
|
|
|
|
|
|
|
|
| 202 |
= 1.8.0 =
|
| 203 |
* Fix style issue in WordPress 4.5
|
| 204 |
|
| 5 |
Tags: menu, menus, nav menu, nav menus
|
| 6 |
Requires at least: 4.5.0
|
| 7 |
Tested up to: 4.5.1
|
| 8 |
+
Stable tag: 1.8.1
|
| 9 |
License: GPLv3
|
| 10 |
|
| 11 |
Hide custom menu items based on user roles. PLEASE READ THE FAQ IF YOU ARE NOT SEEING THE SETTINGS.
|
| 23 |
= Usage =
|
| 24 |
|
| 25 |
1. Go to Appearance > Menus
|
| 26 |
+
1. Set the "Display Mode" to either "logged in users", "logged out users", or "everyone". "Everyone" is the default.
|
| 27 |
+
1. If you wish to customize by role, set the "Display Mode" to "Logged In Users" and under "Restrict menu item to a minimum role" check the boxes next to the desired roles. **Keep in mind that the role doesn't limit the item strictly to that role, but to everyone who has that role's capability.** For example: an item set to "Subscriber" will be visible by Subscribers *and* by admins. Think of this more as a minimum role required to see an item.
|
|
|
|
| 28 |
|
| 29 |
= Support =
|
| 30 |
|
| 61 |
5. BeTheme
|
| 62 |
6. Yith Menu
|
| 63 |
7. Jupiter Theme
|
| 64 |
+
8. iMedica theme
|
| 65 |
+
9. Prostyler EVO theme
|
| 66 |
|
| 67 |
|
| 68 |
= <a id="compatibility"></a>Workaround #1 =
|
| 199 |
|
| 200 |
== Changelog ==
|
| 201 |
|
| 202 |
+
= 1.8.1 =
|
| 203 |
+
* Switch input names to use a counter [nav-menu-role][100][1]. For some reason [nav-menu-role][100][] doesn't post an array and hypenated names [nav-menu-role][100][gold-plan] wreak havoc on the save routine. Shouldn't impact anyone not using hyphenated role names.
|
| 204 |
+
|
| 205 |
= 1.8.0 =
|
| 206 |
* Fix style issue in WordPress 4.5
|
| 207 |
|
