Hello @ckloh!
1. It is possible to make signup/signin mandatory for users while checking out. This can be done from the WooCommerce > Settings > Accounts & Privacy
section (screenshot provided below for your reference).
If this solves your purpose, you can make the required changes in the settings.
But, if you want to hide the complete shop and only open it for logged-in users, then, you can use the ‘Private Store for WooCommerce’ plugin; this plugin allows you to privatize your online store for guest customers & force users to login or register to view private products, categories, tags & pages.
2. The credit card information of customers is not stored on the WooCommerce store for security reasons. Stripe customer ID, source IDs are stored instead. By default, these are stored when provided by the clients at the time of checkout. Apart from this, clients can log in to their account, and add the credit cards directly by navigating to the “My account > Payment methods” section.
Note: You can access the data retention settings for the saved cards data of your store from the WooCommerce > Settings > Accounts & Privacy
section; you’ll find these under the heading “Personal data retention”.
As you are already aware, there is no way to force a user to add a credit card (payment method) on signup; you might be able to find a plugin to achieve this; or, you can hire a WooExpert to build this functionality for your store.
If you have questions, let us know.
Best!