mirror of
https://github.com/woocommerce/woocommerce-paypal-payments.git
synced 2025-08-30 05:00:51 +08:00
94 lines
4.6 KiB
Markdown
94 lines
4.6 KiB
Markdown
# 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 | ❌ |
|