# Applying Default Configuration After Onboarding The `OnboardingProfile` has a property named `setup_done`, which indicated whether the default configuration was set up. ### `OnboardingProfile::is_setup_done()` This flag indicated, whether the default plugin configuration was applied or not. It's set to true after the merchant's authentication attempt was successful, and settings were adjusted. The only way to reset this flag, is to enable the "**Start Over**" toggle and disconnecting the merchant: https://example.com/wp-admin/admin.php?page=wc-settings&tab=checkout§ion=ppcp-gateway&panel=settings#disconnect-merchant ### `class SettingsDataManager` The `SettingsDataManager` service is responsible for applying all defaults options at the end of the onboarding process. ### `SettingsDataManager::set_defaults_for_new_merchant()` This method expects a DTO argument (`ConfigurationFlagsDTO`) that provides relevant details about the merchant and onboarding choices. It verifies, if default settings were already applied (by checking the `OnboardingProfile::is_setup_done()` state). If not done yet, the DTO object is inspected to initialize the plugin's configuration, before marking the `setup_done` flag as completed. ## Default Settings Matrix ### Decision Flags - **Country**: The merchant country. - According to PayPal settings, not the WooCommerce country - Test case: Set Woo country to Germany and sign in with a US merchant account; this should trigger the "Country: US" branches below. - **Seller Type**: Business or Casual. - According to PayPal, not the onboarding choice - Test case: Choose "Personal" during onboarding but log in with a business account; this should trigger the "Account: Business" branches below. - **Subscriptions**: An onboarding choice on the "Products" screen. - **Cards**: An onboarding choice, on the "Checkout Options" screen. - Refers to the first option on the checkout options screen ("Custom Card Fields", etc.) ### Payment Methods By default, all payment methods are turned off after onboarding, unless the conditions specified in the following table are met. | Payment Method | Country | Seller Type | Subscriptions | Cards | Notes | |----------------|---------|-------------|---------------|-------|-------------------------------| | Venmo | US | *any* | *any* | *any* | Always | | Pay Later | US | *any* | *any* | *any* | Always | | ACDC | US | Business | *any* | ✅ | Greyed out for Casual Sellers | | BCDC | US | *any* | *any* | ✅ | | | Apple Pay | US | Business | *any* | ✅ | Based on feature eligibility | | Google Pay | US | Business | *any* | ✅ | Based on feature eligibility | | All APMs | US | Business | *any* | ✅ | Based on feature eligibility | ### Settings | Feature | Country | Seller-Type | Subscriptions | Cards | Notes | |-----------------------------|---------|-------------|---------------|-------|----------------------------| | Pay Now Experience | US | _any_ | _any_ | _any_ | | | Save PayPal and Venmo | US | Business | ✅ | _any_ | | | Save Credit and Debit Cards | US | Business | ✅ | ✅ | Requires ACDC eligibility* | - `*` If merchant has no ACDC eligibility, the setting should be disabled (not toggleable). ### Styling All US merchants use the same settings, regardless of onboarding choices. | Button Location | Enabled | Displayed Payment Methods | |------------------|---------|-------------------------------------------------| | Cart | ✅ | PayPal, Venmo, Pay Later, Google Pay, Apple Pay | | Classic Checkout | ✅ | PayPal, Venmo, Pay Later, Google Pay, Apple Pay | | Express Checkout | ✅ | PayPal, Venmo, Pay Later, Google Pay, Apple Pay | | Mini Cart | ✅ | PayPal, Venmo, Pay Later, Google Pay, Apple Pay | | Product Page | ✅ | PayPal, Venmo, Pay Later | ### Pay Later Messaging All US merchants use the same settings, regardless of onboarding choices. | Location | Enabled | |-------------------|---------| | Product | ✅ | | Cart | ✅ | | Checkout | ✅ | | Home | ❌ | | Shop | ❌ | | WooCommerce Block | ❌ | Sample Page | Luxury Art in a Box

Sample Page

This is an example page. It’s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

Hi there! I’m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin’ caught in the rain.)

…or something like this:

The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!