jetaimecherie
Forum Replies Created
Viewing 1 replies (of 1 total)
-
Forum: Reviews
In reply to: [If Menu - Visibility control for Menus] No Support…If you bought ‘More Visibility Rules’ this is my fix for RCP :
From file : …/plugins/if-menu/src/conditions-multiple-options.php
Snippet of code fixed for conditions-multiple-options.php :// Third-party plugin integration - Restrict Content Pro if (in_array('restrict-content-pro/restrict-content-pro.php', $activePlugins)) { $conditions[] = array( 'id' => 'restrict-content-pro-active', 'name' => __('Any RCP membership active', 'if-menu'), 'condition' => 'rcp_user_has_active_membership', 'group' => __('User', 'if-menu') ); $levelsOptions = array(); $levels = rcp_get_membership_levels(); if ($levels) { foreach ($levels as $level) { $levelsOptions[$level->get_id()] = $level->get_name() . ' - Level ' . $level->get_access_level(); } } $conditions[] = array( 'id' => 'restrict-content-pro', 'type' => 'multiple', 'name' => __('Has Restrict Membership', 'if-menu'), 'condition' => function($item, $selectedLevels = array()) { $userId = get_current_user_id(); if (!$userId) { return false; } //RCP methods library : https://help.solidwp.com/hc/en-us/articles/360053121033-rcp-get-customer-by-user-id $customer = rcp_get_customer_by_user_id($userId); $customerid = $customer->get_id(); $level_ids = rcp_get_customer_membership_level_ids($customerid); $access = false; //$selectedLevels = membership levels ids for the current menu item foreach ($selectedLevels as $selectedLevel) { $access = $access || in_array($selectedLevel, $level_ids); //Show menu if at least one membership level allowed } return $access; }, 'options' => $levelsOptions, 'group' => __('User', 'if-menu') ); $conditions[] = array( 'id' => 'restrict-content-pro-expired', 'name' => __('Expired Restrict Membership', 'if-menu'), 'condition' => 'rcp_user_has_expired_membership', 'group' => __('User', 'if-menu') ); }
Maybe can do better but it works for me… ??
Viewing 1 replies (of 1 total)