name; } return null; } /** * Retrieve array of organization role names * * @param int $organization_id * * @return array Array of organization roles */ function wiaas_get_organization_roles($organization_id) { $roles = get_term_meta($organization_id, '_wiaas_organization_roles', true); return empty($roles) ? array() : $roles; } /** * @param int $organization_id * @param array $roles */ function wiaas_set_organization_roles($organization_id, $roles) { update_term_meta($organization_id, '_wiaas_organization_roles', $roles); } /** * Retrieves list of organizations with provided role in [ 'id' => 'name'] format * @param string $role * * @return array */ function wiaas_get_organizations_with_role($role) { $terms = get_terms(array( 'taxonomy' => Wiaas_User_Organization::TAXONOMY_NAME, 'meta_key' => '_wiaas_organization_roles', 'meta_value' => $role, 'fields' => 'id=>name', 'meta_compare' => 'LIKE', 'hide_empty' => false )); return is_array($terms) ? $terms : array(); } /** * Retrieves list of commercial lead organizations in [ 'id' => 'name' ] format * * @return array */ function wiaas_get_commercial_leads() { return wiaas_get_organizations_with_role('commercial_lead'); } /** * Retrieves list of customer organizations in [ 'id' => 'name'] format * * @return array */ function wiaas_get_customers() { return wiaas_get_organizations_with_role('customer'); } /** * Retrieves list of supplier organizations in [ 'id' => 'name'] format * * @return array */ function wiaas_get_suppliers() { return wiaas_get_organizations_with_role('supplier'); } /** * Retrieves id of organization for provided user_id * * @param int $user_id * * @return int|null */ function wiaas_get_user_organization_id($user_id) { $organization_id = get_user_meta($user_id, '_wiaas_organization_id', true); return empty($organization_id) ? null : (int) $organization_id; } /** * Retrieves id of current user organization * * @return int|null */ function wiaas_get_current_user_organization_id() { return wiaas_get_user_organization_id(get_current_user_id()); } function wiaas_get_organization_user_ids($organization_id) { $user_ids = get_objects_in_term($organization_id, Wiaas_User_Organization::TAXONOMY_NAME); return is_wp_error($user_ids) ? array() : $user_ids; } function wiaas_get_organization_info($organization_id) { $organization = get_term($organization_id); if ($organization) { $user_ids = wiaas_get_organization_user_ids($organization_id); $email = null; if (! empty($user_ids)) { $user = get_userdata($user_ids[0]); $email = $user ? $user->user_email : null; } return array( 'name' => $organization->name, 'description' => $organization->description, 'vat_code' => get_term_meta($organization_id, '_wiaas_organization_vat', true), 'phone' => get_term_meta($organization_id, '_wiaas_organization_phone', true), 'email' => $email ); } }