If you want to populate your CiviCRM database with the data gained from a profile, then I think you would have to set up the profile within CiviCRM by going to /Administer/Customize Data and Screens/Profiles and link the profile you create to your contribution page.
You can synchronise your users in WordPress to contacts in CiviCRM databases by going to Administer/Users and Permissions/Synchronize Users to Contacts. I haven't used it myself but there is also an extension at https://civicrm.org/extensions/civicrm-wordpress-profile-sync to synchronize WordPress user profile in sync with the corresponding fields of a CiviCRM contact. The synchronisation takes place regardless of whether the changes are made in WordPress or CiviCRM.
If you wish to restrict certain pages in WordPress (such as the contribution page) to logged in users in WordPress, you could use a WordPress plug-in such as WordPress Action Control (see link here http://brandonwamboldt.ca/plugins/members-only-menu-plugin/. )
A good WordPress plug-in I can recommend for Login and registration is Profile Builder at https://www.cozmoslabs.com/wordpress-profile-builder/. There is a free version and a pro version.
There is some useful information on setting up Profiles in CiviCRM in the CiviCRM User Guide at https://docs.civicrm.org/user/en/latest/organising-your-data/profiles/
Hope this helps