This is a project that I completed for a client on Upwork. I fulfilled their needs by creating a plugin with all of the needed functionality.
I created a special member type on WordPress and utilized the account login functionality. The users initially create their accounts via a HubSpot form. When a user is created on HubSpot a webhook makes a call to an endpoint I built on WordPress. This creates the users account on WordPress and emails the user their login info. Users are then able to claim deals which are tracked to their account.
Users are able to login and edit their account information. There a few different pieces of that users are able to update suche as school and sport played. All of this information is stored in the HubSpot CRM. When a user edits their info on the WordPress site, they are really editing their info on HubSpot. This is done by making a call to HubSpot's API. When a user views their info after loggin in on WordPress, it's pulled from an API call. This call is cached for one hour to prevent making too many API Calls.
The deals were managed by a special post type. Each deal also had a specific tracking url. This tracking URL is added to a HubSpot marketing email. If a member clicks the deal tracking link inside of an email, it will automatically track the deal to the members account without needing to be logged in.
I built a custom settings page for this plugin. On the settings page admin users are able to edit the HTML for the signup email