PluginProbe
Whols – Wholesale Prices and B2B Store Solution for WooCommerce / trunk
Whols – Wholesale Prices and B2B Store Solution for WooCommerce vtrunk
2.4.12 2.4.11 trunk 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.2.0 1.2.1 1.2.2 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 All 55 releases
whols / includes / Admin / Role_Manager.php

Role_Manager.php in Whols – Wholesale Prices and B2B Store Solution for WooCommerce trunk, at includes/Admin/Role_Manager.php

84 lines 2.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Role Manager.
4 *
5 * Create, Edit & Delete roles.
6 *
7 * @since 1.0.0
8 */
9
10 namespace Whols\Admin;
11
12 /**
13 * Role_Manager class.
14 */
15 class Role_Manager{
16 /**
17 * Role mannager constructor.
18 *
19 * @since 1.0.0
20 */
21 public function __construct() {
22 add_action( 'created_whols_role_cat', array( $this, 'create_role' ), 10, 2 );
23 add_action( 'delete_whols_role_cat', array( $this, 'delete_role' ), 10, 4 );
24 add_action( 'post_updated', array( $this, 'update_user_role' ), 10, 3 );
25 }
26
27 /**
28 * Create a new role
29 *
30 * @since 1.0.0
31 */
32 public function create_role( $term_id, $tt_id ){
33 $term_obj = get_term( $term_id, 'whols_role_cat' );
34 add_role( $term_obj->slug, $term_obj->name . esc_html__( ' - Whols Role', 'whols' ), array( 'read' => true, 'level_0' => true ) );
35 }
36
37 /**
38 * Update user role
39 *
40 * @since 1.0.0
41 */
42 public function update_user_role( $post_ID ){
43 if( get_post_type( $post_ID ) == 'whols_user_request' ){
44 $meta_prev = get_post_meta( $post_ID, 'whols_user_request_meta', true );
45 $meta_new = isset( $_POST['whols_user_request_meta'] ) ? array_map( 'sanitize_text_field', $_POST['whols_user_request_meta'] ) : array();
46
47 $user_id = $meta_prev['user_id'];
48 $assign_role_new = array_key_exists( $meta_new['assign_role'], whols_get_taxonomy_terms( 'whols_role_cat' )) ? $meta_new['assign_role'] : 'subscriber';
49 $status_new = isset( $meta_new['status'] ) ? $meta_new['status'] : '';
50
51 // update role when previous role & new role is not same
52 if( $assign_role_new && $status_new == 'approve' ){
53
54 $user = new \WP_User( $user_id );
55
56 // remove all roles
57 $user->set_role('');
58
59 // add new role
60 $user->set_role( $assign_role_new );
61
62
63 } else if( $status_new == 'reject' || empty( $assign_role_new ) ){
64 $user = new \WP_User( $user_id );
65
66 // remove all roles
67 $user->set_role('');
68
69 // add subscriber role
70 $user->set_role('subscriber');
71 }
72 }
73 }
74
75 /**
76 * Delete role
77 *
78 * @since 1.0.0
79 */
80 public function delete_role( $term_id, $tt_id, $deleted_term_id, $object_ids ){
81 $term_obj = get_term( $deleted_term_id, 'whols_role_cat' );
82 remove_role( $term_obj->slug );
83 }
84 }