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 ? esc_html__( 'Remove from staff', 'timetics' ) : esc_html__( '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 ( is_wp_error( $user ) ) { return $reidrect_to; } $onboard_skip = get_user_meta( $user->ID, 'timetics_staff_onboard_skip', true ); if ( $onboard_skip ) { return $reidrect_to; } 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( esc_html__( 'Welcome to %s oboarding !', 'timetics' ), get_bloginfo( 'name' ) ); return $title; } /** * Staff onboard skip * * @return void */ public function timetics_staff_onboard_skip() { update_user_meta( get_current_user_id(), 'timetics_staff_onboard_skip', true ); wp_send_json_success( __( 'Staff onboard skip successfully.', 'timetics' ) ); } }