ID ); if ( ! $staff->is_staff() ) { return; } $staff->update( [ 'status' => 1, ] ); } /** * Show row actions for make staff * * @param array $actions * @param Object $user_object * * @return void */ public function user_row_action( $actions, $user_object ) { $is_staff = user_can( $user_object, 'timetics-staff' ); $button_text = $is_staff ? __( 'Remove from staff', 'timetics' ) : __( 'Make staff', 'timetics' ); $action = $is_staff ? 'removestaff' : 'makestaff'; $actions['staff'] = "" . $button_text . ''; return $actions; } /** * Make staff * * @return void */ public function make_staff() { $action = isset( $_GET['action'] ) ? sanitize_text_field( wp_unslash( $_GET['action'] ) ) : ''; $user_id = isset( $_GET['users'] ) ? intval( $_GET['users'] ) : 0; $user = get_userdata( $user_id ); if ( 'makestaff' === $action ) { $user->add_role( 'timetics-staff' ); $staff = new Staff( $user_id ); $staff->update( [ 'status' => 1, ] ); } if ( 'removestaff' === $action ) { $user->remove_role( 'timetics-staff' ); } } /** * Setup staff onboard page * * @return void */ public function setup_staff_onboard() { $page = isset( $_GET['page'] ) ? sanitize_text_field( $_GET['page'] ) : ''; if ( 'staff-onboard' === $page ) { Onboard::instance()->init(); } } /** * Setup redirect uri * * @param string $reidrect_to * @param string $requeted_redirect * @param WP_User $user Login user * * @return void */ public function login_redirect( $reidrect_to, $requeted_redirect, $user ) { global $user; $roles = isset( $user->roles ) ? $user->roles : []; if ( ! in_array('timetics-staff', $roles) ) { return $reidrect_to; } $integrations = timetics_get_staff_integrations( $user->ID ); if ( ! $integrations[0]['connected'] ) { $reidrect_to = admin_url( 'admin.php?page=staff-onboard' ); } return $reidrect_to; } /** * Update password reset email title * * @param string $title * * @return string */ public function reset_email_title( $title ) { $title = sprintf( __( 'Welcome to %s oboarding !', 'timetics'), get_bloginfo('name') ); return $title; } }