| Server IP : 39.106.62.82 / Your IP : 216.73.216.48 Web Server : nginx/1.14.1 System : Linux iz2ze1m0zmp2dk5c3j5ap5z 3.10.0-1127.19.1.el7.x86_64 #1 SMP Tue Aug 25 17:23:54 UTC 2020 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /webdata/gohomesh.com/wp-content/plugins/admin-menu-editor/includes/ |
Upload File : |
<?php
class ameBBPressRoleOverride {
private $customRoleSettings = array();
private $propertiesToSave = array('roles', 'role_objects', 'role_names');
public function __construct() {
//Save a local copy of bbPress roles before bbPress overwrites them, then restore that saved copy later.
//Note that the priority number here must be higher than the priority of the bbPress::roles_init() callback
//and lower than the priority of the bbp_add_forums_roles() callback.
add_action('bbp_roles_init', array($this, 'maybePreserveCustomSettings'), 6);
}
public function maybePreserveCustomSettings($wp_roles = null) {
$priority = has_action('bbp_roles_init', 'bbp_add_forums_roles');
if ( ($priority === false) || !function_exists('bbp_get_dynamic_roles') || (empty($wp_roles)) ) {
//bbPress is not active or the current bbPress version is not supported.
return $wp_roles;
}
$bbPressRoles = bbp_get_dynamic_roles();
if ( !is_array($bbPressRoles) || empty($bbPressRoles) ) {
return $wp_roles;
}
foreach (array_keys($bbPressRoles) as $id) {
$settings = array();
foreach ($this->propertiesToSave as $property) {
if ( isset($wp_roles->{$property}[$id]) ) {
$settings[$property] = $wp_roles->{$property}[$id];
}
}
if ( !empty($settings) ) {
$this->customRoleSettings[$id] = $settings;
}
}
if ( !empty($this->customRoleSettings) ) {
add_action('bbp_roles_init', array($this, 'restoreCustomSettings'), $priority + 5);
}
return $wp_roles;
}
public function restoreCustomSettings($wp_roles = null) {
if ( empty($wp_roles) ) {
return $wp_roles;
}
foreach ($this->customRoleSettings as $id => $properties) {
foreach ($properties as $property => $value) {
$wp_roles->{$property}[$id] = $value;
}
}
$this->customRoleSettings = array();
return $wp_roles;
}
}