Diff: STRATO-apps/wordpress_03/app/wp-content/plugins/paid-memberships-pro/includes/capabilities.php
Keine Baseline-Datei – Diff nur gegen leer.
1
-
1
+
<?php
2
+
//make sure administrators have correct capabilities
3
+
function pmpro_check_admin_capabilities()
4
+
{
5
+
// Grab the defined (needed) admin capabilities
6
+
$roles = pmpro_get_capability_defs('administrator');
7
+
8
+
$caps_configured = true;
9
+
10
+
// check whether the current user has those capabilities already
11
+
foreach( $roles as $r )
12
+
{
13
+
$caps_configured = $caps_configured && current_user_can($r);
14
+
}
15
+
16
+
// if not, set the
17
+
if ( false === $caps_configured && current_user_can('administrator'))
18
+
{
19
+
pmpro_set_capabilities_for_role('administrator');
20
+
}
21
+
}
22
+
add_action('admin_init', 'pmpro_check_admin_capabilities', 5, 2);
23
+
24
+
// use the capability definition for $role_name and add/remove capabilities as requested
25
+
function pmpro_set_capabilities_for_role( $role_name, $action = 'enable' )
26
+
{
27
+
$role = get_role( $role_name );
28
+
if ( empty( $role ) ) {
29
+
// Role does not exist.
30
+
return false;
31
+
}
32
+
33
+
$cap_array = pmpro_get_capability_defs( $role_name );
34
+
35
+
// Iterate through the relevant caps for the role & add or remove them
36
+
foreach( $cap_array as $cap_name ) {
37
+
if ( $action == 'enable' )
38
+
$role->add_cap( $cap_name );
39
+
40
+
if ( $action == 'disable' )
41
+
$role->remove_cap( $cap_name );
42
+
}
43
+
return true;
44
+
}
45
+
46
+
// used to define what capabilities goes with what role.
47
+
function pmpro_get_capability_defs($role)
48
+
{
49
+
// TODO: Add other standard roles (if/when needed)
50
+
51
+
// caps for the administrator role
52
+
$cap_array = array(
53
+
'pmpro_memberships_menu',
54
+
'pmpro_dashboard',
55
+
'pmpro_wizard',
56
+
'pmpro_membershiplevels',
57
+
'pmpro_edit_members',
58
+
'pmpro_pagesettings',
59
+
'pmpro_paymentsettings',
60
+
'pmpro_taxsettings',
61
+
'pmpro_securitysettings',
62
+
'pmpro_emailsettings',
63
+
'pmpro_emailtemplates',
64
+
'pmpro_designsettings',
65
+
'pmpro_advancedsettings',
66
+
'pmpro_addons',
67
+
'pmpro_loginscsv',
68
+
'pmpro_memberslist',
69
+
'pmpro_memberslistcsv',
70
+
'pmpro_reports',
71
+
'pmpro_reportscsv',
72
+
'pmpro_orders',
73
+
'pmpro_orderscsv',
74
+
'pmpro_sales_report_csv',
75
+
'pmpro_discountcodes',
76
+
'pmpro_userfields',
77
+
'pmpro_updates',
78
+
'pmpro_manage_pause_mode'
79
+
);
80
+
81
+
return apply_filters( "pmpro_assigned_{$role}_capabilities", $cap_array);
82
+
}
83
+
84
+
/**
85
+
* Get the capability required to edit a member.
86
+
* @since 3.0
87
+
* @return string
88
+
*/
89
+
function pmpro_get_edit_member_capability() {
90
+
/**
91
+
* Filter the capability required to edit a member.
92
+
* @since 3.0
93
+
* @param string $capability The capability required to edit a member.
94
+
* Default 'pmpro_edit_members'.
95
+
* @return string
96
+
*/
97
+
return apply_filters( 'pmpro_edit_member_capability', 'pmpro_edit_members' );
98
+
}
99
+