' . esc_attr__( 'Click here', 'supportcandy' ) . '' ); ?>
$role ) : ?>
| 2 ) : ?> |
$label, 'caps' => array( 'backend-access' => in_array( 'backend-access', $caps ) ? true : false, 'create-as' => in_array( 'create-as', $caps ) ? true : false, 'view-unassigned' => in_array( 'view-unassigned', $caps ) ? true : false, 'view-assigned-me' => in_array( 'view-assigned-me', $caps ) ? true : false, 'view-assigned-others' => in_array( 'view-assigned-others', $caps ) ? true : false, 'reply-unassigned' => in_array( 'reply-unassigned', $caps ) ? true : false, 'reply-assigned-me' => in_array( 'reply-assigned-me', $caps ) ? true : false, 'reply-assigned-others' => in_array( 'reply-assigned-others', $caps ) ? true : false, 'pn-unassigned' => in_array( 'pn-unassigned', $caps ) ? true : false, 'pn-assigned-me' => in_array( 'pn-assigned-me', $caps ) ? true : false, 'pn-assigned-others' => in_array( 'pn-assigned-others', $caps ) ? true : false, 'aa-unassigned' => in_array( 'aa-unassigned', $caps ) ? true : false, 'aa-assigned-me' => in_array( 'aa-assigned-me', $caps ) ? true : false, 'aa-assigned-others' => in_array( 'aa-assigned-others', $caps ) ? true : false, 'cs-unassigned' => in_array( 'cs-unassigned', $caps ) ? true : false, 'cs-assigned-me' => in_array( 'cs-assigned-me', $caps ) ? true : false, 'cs-assigned-others' => in_array( 'cs-assigned-others', $caps ) ? true : false, 'ctf-unassigned' => in_array( 'ctf-unassigned', $caps ) ? true : false, 'ctf-assigned-me' => in_array( 'ctf-assigned-me', $caps ) ? true : false, 'ctf-assigned-others' => in_array( 'ctf-assigned-others', $caps ) ? true : false, 'caof-unassigned' => in_array( 'caof-unassigned', $caps ) ? true : false, 'caof-assigned-me' => in_array( 'caof-assigned-me', $caps ) ? true : false, 'caof-assigned-others' => in_array( 'caof-assigned-others', $caps ) ? true : false, 'crb-unassigned' => in_array( 'crb-unassigned', $caps ) ? true : false, 'crb-assigned-me' => in_array( 'crb-assigned-me', $caps ) ? true : false, 'crb-assigned-others' => in_array( 'crb-assigned-others', $caps ) ? true : false, 'eth-unassigned' => in_array( 'eth-unassigned', $caps ) ? true : false, 'eth-assigned-me' => in_array( 'eth-assigned-me', $caps ) ? true : false, 'eth-assigned-others' => in_array( 'eth-assigned-others', $caps ) ? true : false, 'dth-unassigned' => in_array( 'dth-unassigned', $caps ) ? true : false, 'dth-assigned-me' => in_array( 'dth-assigned-me', $caps ) ? true : false, 'dth-assigned-others' => in_array( 'dth-assigned-others', $caps ) ? true : false, 'vl-unassigned' => in_array( 'vl-unassigned', $caps ) ? true : false, 'vl-assigned-me' => in_array( 'vl-assigned-me', $caps ) ? true : false, 'vl-assigned-others' => in_array( 'vl-assigned-others', $caps ) ? true : false, 'dtt-unassigned' => in_array( 'dtt-unassigned', $caps ) ? true : false, 'dtt-assigned-me' => in_array( 'dtt-assigned-me', $caps ) ? true : false, 'dtt-assigned-others' => in_array( 'dtt-assigned-others', $caps ) ? true : false, 'dt-unassigned' => in_array( 'dt-unassigned', $caps ) ? true : false, 'dt-assigned-me' => in_array( 'dt-assigned-me', $caps ) ? true : false, 'dt-assigned-others' => in_array( 'dt-assigned-others', $caps ) ? true : false, 'ar-unassigned' => in_array( 'ar-unassigned', $caps ) ? true : false, 'ar-assigned-me' => in_array( 'ar-assigned-me', $caps ) ? true : false, 'ar-assigned-others' => in_array( 'ar-assigned-others', $caps ) ? true : false, 'eci-access' => in_array( 'eci-access', $caps ) ? true : false, 'dash-access' => in_array( 'dash-access', $caps ) ? true : false, 'tt-unassigned' => in_array( 'tt-unassigned', $caps ) ? true : false, 'tt-assigned-me' => in_array( 'tt-assigned-me', $caps ) ? true : false, 'tt-assigned-others' => in_array( 'tt-assigned-others', $caps ) ? true : false, 'at-unassigned' => in_array( 'at-unassigned', $caps ) ? true : false, 'at-assigned-me' => in_array( 'at-assigned-me', $caps ) ? true : false, 'at-assigned-others' => in_array( 'at-assigned-others', $caps ) ? true : false, 'at-access' => in_array( 'at-access', $caps ) ? true : false, 'at-delete-access' => in_array( 'at-delete-access', $caps ) ? true : false, ), ), $caps ); update_option( 'wpsc-agent-roles', $roles ); do_action( 'wpsc_after_add_agent_role', array_key_last( $roles ) ); wp_die(); } /** * Clone existing agent role. * * @return void */ public static function get_clone_agent_role() { if ( check_ajax_referer( 'wpsc_get_clone_agent_role', '_ajax_nonce', false ) != 1 ) { wp_send_json_error( 'Unauthorized request!', 400 ); } if ( ! WPSC_Functions::is_site_admin() ) { wp_send_json_error( __( 'Unauthorized access!', 'supportcandy' ), 401 ); } $id = isset( $_POST['id'] ) ? intval( $_POST['id'] ) : 0; if ( ! $id ) { wp_send_json_error( 'Incorrect request!', 400 ); } $roles = get_option( 'wpsc-agent-roles', array() ); $roles[] = array( 'label' => $roles[ $id ]['label'] . ' clone', 'caps' => $roles[ $id ]['caps'], ); update_option( 'wpsc-agent-roles', $roles ); wp_die(); } /** * Edit agent role UI * * @return void */ public static function get_edit_agent_role() { if ( check_ajax_referer( 'wpsc_get_edit_agent_role', '_ajax_nonce', false ) != 1 ) { wp_send_json_error( 'Unauthorised request!', 401 ); } if ( ! WPSC_Functions::is_site_admin() ) { wp_send_json_error( __( 'Unauthorized access!', 'supportcandy' ), 401 ); } $role_id = isset( $_POST['role_id'] ) ? intval( $_POST['role_id'] ) : 0; if ( ! $role_id ) { wp_die( 'role_id not found!' ); } $roles = get_option( 'wpsc-agent-roles', array() ); $role = isset( $roles[ $role_id ] ) ? $roles[ $role_id ] : array(); if ( ! $role ) { wp_die( 'Role not available!' ); } ?>
value="view-unassigned" class="wpsc-una"> value="view-assigned-me" class="wpsc-ame"> value="view-assigned-others" class="wpsc-ao">
value="reply-unassigned" class="wpsc-una"> value="reply-assigned-me" class="wpsc-ame"> value="reply-assigned-others" class="wpsc-ao">
value="pn-unassigned" class="wpsc-una"> value="pn-assigned-me" class="wpsc-ame"> value="pn-assigned-others" class="wpsc-ao">
value="dt-unassigned" class="wpsc-una"> value="dt-assigned-me" class="wpsc-ame"> value="dt-assigned-others" class="wpsc-ao">
value="aa-unassigned" class="wpsc-una"> value="aa-assigned-me" class="wpsc-ame"> value="aa-assigned-others" class="wpsc-ao">
value="cs-unassigned" class="wpsc-una"> value="cs-assigned-me" class="wpsc-ame"> value="cs-assigned-others" class="wpsc-ao">
value="ctf-unassigned" class="wpsc-una"> value="ctf-assigned-me" class="wpsc-ame"> value="ctf-assigned-others" class="wpsc-ao">
value="caof-unassigned" class="wpsc-una"> value="caof-assigned-me" class="wpsc-ame"> value="caof-assigned-others" class="wpsc-ao">
value="crb-unassigned" class="wpsc-una"> value="crb-assigned-me" class="wpsc-ame"> value="crb-assigned-others" class="wpsc-ao">
value="ar-unassigned" class="wpsc-una"> value="ar-assigned-me" class="wpsc-ame"> value="ar-assigned-others" class="wpsc-ao">
value="eth-unassigned" class="wpsc-una"> value="eth-assigned-me" class="wpsc-ame"> value="eth-assigned-others" class="wpsc-ao">
value="dth-unassigned" class="wpsc-una"> value="dth-assigned-me" class="wpsc-ame"> value="dth-assigned-others" class="wpsc-ao">
value="vl-unassigned" class="wpsc-una"> value="vl-assigned-me" class="wpsc-ame"> value="vl-assigned-others" class="wpsc-ao">
value="dtt-unassigned" class="wpsc-una"> value="dtt-assigned-me" class="wpsc-ame"> value="dtt-assigned-others" class="wpsc-ao">
value="tt-unassigned" class="wpsc-una"> value="tt-assigned-me" class="wpsc-ame"> value="tt-assigned-others" class="wpsc-ao">
value="at-unassigned" class="wpsc-una"> value="at-assigned-me" class="wpsc-ame"> value="at-assigned-others" class="wpsc-ao">
value="backend-access">
value="create-as">
value="eci-access">
value="dash-access">
value="at-access">
value="at-delete-access">
$label, 'caps' => array( 'backend-access' => in_array( 'backend-access', $caps ) ? true : false, 'create-as' => in_array( 'create-as', $caps ) ? true : false, 'view-unassigned' => in_array( 'view-unassigned', $caps ) ? true : false, 'view-assigned-me' => in_array( 'view-assigned-me', $caps ) ? true : false, 'view-assigned-others' => in_array( 'view-assigned-others', $caps ) ? true : false, 'reply-unassigned' => in_array( 'reply-unassigned', $caps ) ? true : false, 'reply-assigned-me' => in_array( 'reply-assigned-me', $caps ) ? true : false, 'reply-assigned-others' => in_array( 'reply-assigned-others', $caps ) ? true : false, 'pn-unassigned' => in_array( 'pn-unassigned', $caps ) ? true : false, 'pn-assigned-me' => in_array( 'pn-assigned-me', $caps ) ? true : false, 'pn-assigned-others' => in_array( 'pn-assigned-others', $caps ) ? true : false, 'aa-unassigned' => in_array( 'aa-unassigned', $caps ) ? true : false, 'aa-assigned-me' => in_array( 'aa-assigned-me', $caps ) ? true : false, 'aa-assigned-others' => in_array( 'aa-assigned-others', $caps ) ? true : false, 'cs-unassigned' => in_array( 'cs-unassigned', $caps ) ? true : false, 'cs-assigned-me' => in_array( 'cs-assigned-me', $caps ) ? true : false, 'cs-assigned-others' => in_array( 'cs-assigned-others', $caps ) ? true : false, 'ctf-unassigned' => in_array( 'ctf-unassigned', $caps ) ? true : false, 'ctf-assigned-me' => in_array( 'ctf-assigned-me', $caps ) ? true : false, 'ctf-assigned-others' => in_array( 'ctf-assigned-others', $caps ) ? true : false, 'caof-unassigned' => in_array( 'caof-unassigned', $caps ) ? true : false, 'caof-assigned-me' => in_array( 'caof-assigned-me', $caps ) ? true : false, 'caof-assigned-others' => in_array( 'caof-assigned-others', $caps ) ? true : false, 'crb-unassigned' => in_array( 'crb-unassigned', $caps ) ? true : false, 'crb-assigned-me' => in_array( 'crb-assigned-me', $caps ) ? true : false, 'crb-assigned-others' => in_array( 'crb-assigned-others', $caps ) ? true : false, 'eth-unassigned' => in_array( 'eth-unassigned', $caps ) ? true : false, 'eth-assigned-me' => in_array( 'eth-assigned-me', $caps ) ? true : false, 'eth-assigned-others' => in_array( 'eth-assigned-others', $caps ) ? true : false, 'dth-unassigned' => in_array( 'dth-unassigned', $caps ) ? true : false, 'dth-assigned-me' => in_array( 'dth-assigned-me', $caps ) ? true : false, 'dth-assigned-others' => in_array( 'dth-assigned-others', $caps ) ? true : false, 'vl-unassigned' => in_array( 'vl-unassigned', $caps ) ? true : false, 'vl-assigned-me' => in_array( 'vl-assigned-me', $caps ) ? true : false, 'vl-assigned-others' => in_array( 'vl-assigned-others', $caps ) ? true : false, 'dtt-unassigned' => in_array( 'dtt-unassigned', $caps ) ? true : false, 'dtt-assigned-me' => in_array( 'dtt-assigned-me', $caps ) ? true : false, 'dtt-assigned-others' => in_array( 'dtt-assigned-others', $caps ) ? true : false, 'dt-unassigned' => in_array( 'dt-unassigned', $caps ) ? true : false, 'dt-assigned-me' => in_array( 'dt-assigned-me', $caps ) ? true : false, 'dt-assigned-others' => in_array( 'dt-assigned-others', $caps ) ? true : false, 'ar-unassigned' => in_array( 'ar-unassigned', $caps ) ? true : false, 'ar-assigned-me' => in_array( 'ar-assigned-me', $caps ) ? true : false, 'ar-assigned-others' => in_array( 'ar-assigned-others', $caps ) ? true : false, 'eci-access' => in_array( 'eci-access', $caps ) ? true : false, 'dash-access' => in_array( 'dash-access', $caps ) ? true : false, 'tt-unassigned' => in_array( 'tt-unassigned', $caps ) ? true : false, 'tt-assigned-me' => in_array( 'tt-assigned-me', $caps ) ? true : false, 'tt-assigned-others' => in_array( 'tt-assigned-others', $caps ) ? true : false, 'at-unassigned' => in_array( 'at-unassigned', $caps ) ? true : false, 'at-assigned-me' => in_array( 'at-assigned-me', $caps ) ? true : false, 'at-assigned-others' => in_array( 'at-assigned-others', $caps ) ? true : false, 'at-access' => in_array( 'at-access', $caps ) ? true : false, 'at-delete-access' => in_array( 'at-delete-access', $caps ) ? true : false, ), ), $role, $caps ); // Update backend access user capabilities. if ( $role['caps']['backend-access'] !== $roles[ $role_id ]['caps']['backend-access'] ) { $response = WPSC_Agent::find( array( 'items_per_page' => 0, 'meta_query' => array( 'relation' => 'AND', array( 'slug' => 'role', 'compare' => '=', 'val' => $role_id, ), array( 'slug' => 'is_active', 'compare' => '=', 'val' => 1, ), ), ) ); foreach ( $response['results'] as $agent ) { if ( $roles[ $role_id ]['caps']['backend-access'] && ! $agent->user->has_cap( 'wpsc_agent' ) ) { $agent->user->add_cap( 'wpsc_agent' ); } if ( ! $roles[ $role_id ]['caps']['backend-access'] && $agent->user->has_cap( 'wpsc_agent' ) ) { $agent->user->remove_cap( 'wpsc_agent' ); } } } update_option( 'wpsc-agent-roles', $roles ); do_action( 'wpsc_agent_role_update', $role_id ); wp_die(); } /** * Delete agent role */ public static function delete_agent_role() { if ( check_ajax_referer( 'wpsc_delete_agent_role', '_ajax_nonce', false ) != 1 ) { wp_send_json_error( 'Unauthorised request!', 401 ); } if ( ! WPSC_Functions::is_site_admin() ) { wp_send_json_error( __( 'Unauthorized access!', 'supportcandy' ), 401 ); } $role_id = isset( $_POST['role_id'] ) ? intval( $_POST['role_id'] ) : 0; if ( ! $role_id ) { wp_send_json_error( __( 'Bad request!', 'supportcandy' ), 400 ); } $roles = get_option( 'wpsc-agent-roles', array() ); $role = isset( $roles[ $role_id ] ) ? $roles[ $role_id ] : array(); if ( ! $role ) { wp_send_json_error( __( 'Bad request!', 'supportcandy' ), 400 ); } if ( $role_id <= 2 ) { wp_send_json_error( __( 'Bad request!', 'supportcandy' ), 400 ); } $args = array( 'meta_query' => array( 'relation' => 'AND', array( 'slug' => 'role', 'compare' => '=', 'val' => $role_id, ), array( 'slug' => 'is_active', 'compare' => '=', 'val' => 1, ), ), ); $agents = WPSC_Agent::find( $args ); if ( $agents['total_items'] ) { wp_send_json_error( 'The role can not be deleted if existing agents are associated with it!', 400 ); } unset( $roles[ $role_id ] ); do_action( 'wpsc_after_delete_agent_role', $role_id ); update_option( 'wpsc-agent-roles', $roles ); wp_die(); } } endif; WPSC_Agent_Roles::init();