From de580d8695ba953bb3533a9cae62b89faa3d288a Mon Sep 17 00:00:00 2001 From: Maxim Rudov Date: Fri, 10 Oct 2025 10:40:00 +0300 Subject: [PATCH 1/2] Add user related articles to the KB --- .../devInfo/users/bind_user_via_api.md | 2 +- .../devInfo/users/bound_user_details.md | 32 +++++++++++++++++++ .../devInfo/users/bound_users.md | 2 +- .../knowledge_base/devInfo/users/crm_dev.md | 2 +- .../devInfo/users/manage_user.md | 2 +- .../knowledge_base/devInfo/users/user_edit.md | 27 ++++++++++++++++ .../devInfo/users/wp_users_table.md | 2 +- 7 files changed, 64 insertions(+), 5 deletions(-) create mode 100644 datapress/knowledge_base/devInfo/users/bound_user_details.md create mode 100644 datapress/knowledge_base/devInfo/users/user_edit.md diff --git a/datapress/knowledge_base/devInfo/users/bind_user_via_api.md b/datapress/knowledge_base/devInfo/users/bind_user_via_api.md index 8057863..8e44cfe 100644 --- a/datapress/knowledge_base/devInfo/users/bind_user_via_api.md +++ b/datapress/knowledge_base/devInfo/users/bind_user_via_api.md @@ -1,6 +1,6 @@ --- title: How to bind a user using WP API -sidebar_position: 6 +sidebar_position: 30 slug: /knowledge-base/bind-user-via-api tags: - Knowledge base diff --git a/datapress/knowledge_base/devInfo/users/bound_user_details.md b/datapress/knowledge_base/devInfo/users/bound_user_details.md new file mode 100644 index 0000000..6ef5896 --- /dev/null +++ b/datapress/knowledge_base/devInfo/users/bound_user_details.md @@ -0,0 +1,32 @@ +--- +title: Accessing bound user contact details +sidebar_position: 25 +slug: /knowledge-base/bound-user-details +tags: + - Knowledge base + - DataPress + - Retrieve + - User Binding +--- + +If you need to access information about the currently logged-in user in PHP. It can be easily done by using **UserService** class that has methods to return the current user information including the linked CRM record (if available). + +Once the bound contact is retrieved, **WebApiClient** class can be used to access additional information. Connection required for the toolkit to work properly is provided by the **ConnectionService** class. + +```php +use AlexaCRM\Nextgen\ConnectionService; +use AlexaCRM\Nextgen\UserService; +use AlexaCRM\Xrm\ColumnSet; +use AlexaCRM\Xrm\EntityReference; + +$userService = UserService::instance(); + +if ($userService->isBound()){ + $contact = $userService->getBoundRecord(); + + /** @var EntityReference $accountRef */ + $accountRef = $contact['parentcustomerid']; + $account = ConnectionService::instance()->getClient()->Retrieve('account', $accountRef->Id, new ColumnSet(true)); + $accountNum = $account['accountnumber']; +} +``` diff --git a/datapress/knowledge_base/devInfo/users/bound_users.md b/datapress/knowledge_base/devInfo/users/bound_users.md index dced73f..4c3f298 100644 --- a/datapress/knowledge_base/devInfo/users/bound_users.md +++ b/datapress/knowledge_base/devInfo/users/bound_users.md @@ -1,6 +1,6 @@ --- title: How to display a list of bound users in WordPress -sidebar_position: 5 +sidebar_position: 20 slug: /knowledge-base/bound-users tags: - Knowledge base diff --git a/datapress/knowledge_base/devInfo/users/crm_dev.md b/datapress/knowledge_base/devInfo/users/crm_dev.md index 9b46da0..4e8d3d0 100644 --- a/datapress/knowledge_base/devInfo/users/crm_dev.md +++ b/datapress/knowledge_base/devInfo/users/crm_dev.md @@ -1,6 +1,6 @@ --- title: Automating User Management in PowerApps with Flows -sidebar_position: 8 +sidebar_position: 50 slug: /knowledge-base/user-management-in-powerapps tags: - User Management diff --git a/datapress/knowledge_base/devInfo/users/manage_user.md b/datapress/knowledge_base/devInfo/users/manage_user.md index 3add8de..4e12fde 100644 --- a/datapress/knowledge_base/devInfo/users/manage_user.md +++ b/datapress/knowledge_base/devInfo/users/manage_user.md @@ -1,6 +1,6 @@ --- title: Manage users -sidebar_position: 4 +sidebar_position: 10 slug: /knowledge-base/manage-users tags: - Knowledge base diff --git a/datapress/knowledge_base/devInfo/users/user_edit.md b/datapress/knowledge_base/devInfo/users/user_edit.md new file mode 100644 index 0000000..eca42d6 --- /dev/null +++ b/datapress/knowledge_base/devInfo/users/user_edit.md @@ -0,0 +1,27 @@ +--- +title: Editing user profile +sidebar_position: 27 +slug: /knowledge-base/user-editing +tags: + - Knowledge base + - DataPress + - Binding + - User +--- + +If a page is bound to a contact table then passing contact identifier in the query string will set the `binding` object and allow record editing using, for example, a Gravity form that relies on the record binding. + +Allowing user to edit their own Dataverse record is slightly different. We already know the contact id and shouldn’t pass it via the query string. + +This can be used, for example, to build a page that uses Gravity Form for user profile editing. + +```php +// Let's assume that profile page ID is 42 +add_filter( 'integration-cds/binding/bound-record', function( $record, $post ) { + if ( $post->ID !== 42 ) { + return $record; + } + + return \AlexaCRM\Nextgen\UserService\UserService::instance()->getBoundRecord(); +}, 10, 2 ); +``` diff --git a/datapress/knowledge_base/devInfo/users/wp_users_table.md b/datapress/knowledge_base/devInfo/users/wp_users_table.md index 258c8ab..c8a8ece 100644 --- a/datapress/knowledge_base/devInfo/users/wp_users_table.md +++ b/datapress/knowledge_base/devInfo/users/wp_users_table.md @@ -1,6 +1,6 @@ --- title: WordPress Users Table -sidebar_position: 7 +sidebar_position: 40 slug: /knowledge-base/wp-users-table tags: - Knowledge base From e45305a18551ab314152db7f1e352e519a395713 Mon Sep 17 00:00:00 2001 From: George Doubinski Date: Mon, 13 Oct 2025 14:00:32 +1100 Subject: [PATCH 2/2] Optimised account retrieval to include only account number --- datapress/knowledge_base/devInfo/users/bound_user_details.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/datapress/knowledge_base/devInfo/users/bound_user_details.md b/datapress/knowledge_base/devInfo/users/bound_user_details.md index 6ef5896..91c35a0 100644 --- a/datapress/knowledge_base/devInfo/users/bound_user_details.md +++ b/datapress/knowledge_base/devInfo/users/bound_user_details.md @@ -26,7 +26,7 @@ if ($userService->isBound()){ /** @var EntityReference $accountRef */ $accountRef = $contact['parentcustomerid']; - $account = ConnectionService::instance()->getClient()->Retrieve('account', $accountRef->Id, new ColumnSet(true)); + $account = ConnectionService::instance()->getClient()->Retrieve('account', $accountRef->Id, new ColumnSet(['accountnumber'])); $accountNum = $account['accountnumber']; } ```