Diff: STRATO-apps/wordpress_03/app/wp-content/plugins/paid-memberships-pro/includes/capabilities.php

Keine Baseline-Datei – Diff nur gegen leer.
Zur Liste
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 +