Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Show deposit schedule message if account's deposits are unrestricted #7875

Merged

Conversation

Jinksi
Copy link
Member

@Jinksi Jinksi commented Dec 11, 2023

Fixes #7874

Changes proposed in this Pull Request

  1. Renders the deposit schedule message on the Payments → Overview screen unless the account's deposits are blocked or restricted.

This helps communicate to merchants that they have an expected upcoming deposit, even if their available balance <= 0.

  1. The "next deposit is scheduled" part of the message will only be rendered if there is available balance. Without available balance, this part of the message will not render. (in the future, this will only render if above the minimum automatic deposit threshold Show clear info in UI when there will be no payout because merchant balance is below deposit minimums (e.g. AUD$5) #6774)
image

Testing instructions

  • Check that the message is rendered for accounts without deposit restrictions (use MC tools to add/remove restrictions to account)
    • With an available balance of 0
    • With a negative available balance
  • Check that the message is not rendered
    • Deposits blocked
    • Deposits restricted

  • Run npm run changelog to add a changelog file, choose patch to leave it empty if the change is not significant. You can add multiple changelog files in one PR by running this command a few times.
  • Covered with tests (or have a good reason not to test in description ☝️)
  • Tested on mobile (or does not apply)

Post merge

@botwoo
Copy link
Collaborator

botwoo commented Dec 11, 2023

Test the build

Option 1. Jetpack Beta

  • Install and activate Jetpack Beta.
  • Use this build by searching for PR number 7875 or branch name fix/7874-show-deposit-schedule-when-zero-available-balance in your-test.site/wp-admin/admin.php?page=jetpack-beta&plugin=woocommerce-payments

Option 2. Jurassic Ninja - available for logged-in A12s

🚀 Launch a JN site with this branch 🚀

ℹ️ Install this Tampermonkey script to get more options.


Build info:

  • Latest commit: 8550239
  • Build time: 2023-12-13 03:48:39 UTC

Note: the build is updated when a new commit is pushed to this PR.

Copy link
Contributor

github-actions bot commented Dec 11, 2023

Size Change: +29 B (0%)

Total Size: 1.44 MB

Filename Size Change
release/woocommerce-payments/dist/index.js 287 kB +29 B (0%)
ℹ️ View Unchanged
Filename Size
release/woocommerce-payments/assets/css/admin.css 1.06 kB
release/woocommerce-payments/assets/css/success.css 158 B
release/woocommerce-payments/dist/blocks-checkout-rtl.css 1.8 kB
release/woocommerce-payments/dist/blocks-checkout.css 1.8 kB
release/woocommerce-payments/dist/blocks-checkout.js 75.8 kB
release/woocommerce-payments/dist/checkout-rtl.css 441 B
release/woocommerce-payments/dist/checkout.css 442 B
release/woocommerce-payments/dist/checkout.js 28.9 kB
release/woocommerce-payments/dist/index-rtl.css 36.8 kB
release/woocommerce-payments/dist/index.css 36.8 kB
release/woocommerce-payments/dist/multi-currency-analytics.js 1.05 kB
release/woocommerce-payments/dist/multi-currency-rtl.css 3.4 kB
release/woocommerce-payments/dist/multi-currency-switcher-block.js 60.3 kB
release/woocommerce-payments/dist/multi-currency.css 3.4 kB
release/woocommerce-payments/dist/multi-currency.js 55.5 kB
release/woocommerce-payments/dist/order-rtl.css 676 B
release/woocommerce-payments/dist/order.css 679 B
release/woocommerce-payments/dist/order.js 41.5 kB
release/woocommerce-payments/dist/payment-gateways-rtl.css 1.31 kB
release/woocommerce-payments/dist/payment-gateways.css 1.31 kB
release/woocommerce-payments/dist/payment-gateways.js 39.1 kB
release/woocommerce-payments/dist/payment-request-rtl.css 153 B
release/woocommerce-payments/dist/payment-request.css 153 B
release/woocommerce-payments/dist/payment-request.js 13.2 kB
release/woocommerce-payments/dist/product-details.js 898 B
release/woocommerce-payments/dist/settings-rtl.css 10.5 kB
release/woocommerce-payments/dist/settings.css 10.5 kB
release/woocommerce-payments/dist/settings.js 234 kB
release/woocommerce-payments/dist/subscription-edit-page.js 669 B
release/woocommerce-payments/dist/subscription-product-onboarding-modal-rtl.css 519 B
release/woocommerce-payments/dist/subscription-product-onboarding-modal.css 519 B
release/woocommerce-payments/dist/subscription-product-onboarding-modal.js 20.4 kB
release/woocommerce-payments/dist/subscription-product-onboarding-toast.js 693 B
release/woocommerce-payments/dist/subscriptions-empty-state-rtl.css 117 B
release/woocommerce-payments/dist/subscriptions-empty-state.css 117 B
release/woocommerce-payments/dist/subscriptions-empty-state.js 19.5 kB
release/woocommerce-payments/dist/tos-rtl.css 230 B
release/woocommerce-payments/dist/tos.css 231 B
release/woocommerce-payments/dist/tos.js 21.9 kB
release/woocommerce-payments/dist/upe_checkout-rtl.css 441 B
release/woocommerce-payments/dist/upe_checkout.css 442 B
release/woocommerce-payments/dist/upe_checkout.js 34.1 kB
release/woocommerce-payments/dist/upe_split_checkout-rtl.css 441 B
release/woocommerce-payments/dist/upe_split_checkout.css 442 B
release/woocommerce-payments/dist/upe_split_checkout.js 34.7 kB
release/woocommerce-payments/dist/upe_with_deferred_intent_creation_checkout.js 37.1 kB
release/woocommerce-payments/dist/upe-blocks-checkout-rtl.css 1.8 kB
release/woocommerce-payments/dist/upe-blocks-checkout.css 1.8 kB
release/woocommerce-payments/dist/upe-blocks-checkout.js 41 kB
release/woocommerce-payments/dist/upe-split-blocks-checkout-rtl.css 1.8 kB
release/woocommerce-payments/dist/upe-split-blocks-checkout.css 1.8 kB
release/woocommerce-payments/dist/upe-split-blocks-checkout.js 42.6 kB
release/woocommerce-payments/dist/woopay-express-button-rtl.css 153 B
release/woocommerce-payments/dist/woopay-express-button.css 153 B
release/woocommerce-payments/dist/woopay-express-button.js 52.6 kB
release/woocommerce-payments/dist/woopay-rtl.css 4.18 kB
release/woocommerce-payments/dist/woopay.css 4.19 kB
release/woocommerce-payments/dist/woopay.js 71.7 kB
release/woocommerce-payments/includes/subscriptions/assets/css/plugin-page.css 622 B
release/woocommerce-payments/includes/subscriptions/assets/js/plugin-page.js 812 B
release/woocommerce-payments/vendor/automattic/jetpack-assets/build/i18n-loader.js 2.43 kB
release/woocommerce-payments/vendor/automattic/jetpack-assets/src/js/i18n-loader.js 1.01 kB
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/tracks-ajax.js 522 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/tracks-callables.js 581 B
release/woocommerce-payments/vendor/automattic/jetpack-identity-crisis/babel.config.js 160 B
release/woocommerce-payments/vendor/automattic/jetpack-identity-crisis/build/index.css 2.32 kB
release/woocommerce-payments/vendor/automattic/jetpack-identity-crisis/build/index.js 13.8 kB
release/woocommerce-payments/vendor/automattic/jetpack-identity-crisis/build/index.rtl.css 2.32 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/about.css 1.03 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/admin-empty-state.css 291 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/admin-order-statuses.css 403 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/admin.css 3.6 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/checkout.css 299 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/modal.css 742 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/view-subscription.css 572 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/wcs-upgrade.css 411 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/admin-pointers.js 544 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/admin.js 9.4 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/jstz.js 6.8 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/jstz.min.js 3.83 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/meta-boxes-coupon.js 544 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/meta-boxes-subscription.js 2.38 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/moment.js 22.1 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/moment.min.js 11.6 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/payment-method-restrictions.js 1.29 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/wcs-meta-boxes-order.js 502 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/frontend/payment-methods.js 355 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/frontend/single-product.js 429 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/frontend/view-subscription.js 1.38 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/frontend/wcs-cart.js 781 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/modal.js 1.1 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/wcs-upgrade.js 1.27 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/build/index.css 392 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/build/index.js 3.05 kB

compressed-size-action

@Jinksi Jinksi changed the title Show deposit schedule message when available balance is zero or negative Show deposit schedule message unless deposits are blocked Dec 11, 2023
@Jinksi Jinksi changed the title Show deposit schedule message unless deposits are blocked Show deposit schedule message unless deposits are blocked or restricted Dec 12, 2023
@Jinksi Jinksi changed the title Show deposit schedule message unless deposits are blocked or restricted Show deposit schedule message if account's deposits are unrestricted Dec 12, 2023
@csmcneill
Copy link
Contributor

I have a couple of live accounts. I enabled this PR via Jetpack Beta and tested it in a couple of scenarios; it LGTM so far. Sharing these here in case they help.

Live mode with a pending balance, no available balance, and in the new account waiting period:
live no available

Test mode with an available balance:
live test mode with available

Live mode with no transactions:
live no balance

Activating this with the WCPay dev tools did produce a fatal error on one site, but it was because I was running an outdated build of the dev tools — doesn't seem to be an issue with the PR.

@Jinksi Jinksi marked this pull request as ready for review December 12, 2023 00:31
@Jinksi Jinksi requested a review from a team December 12, 2023 00:32
client/globals.d.ts Outdated Show resolved Hide resolved
@Jinksi

This comment was marked as outdated.

@@ -35,6 +35,9 @@ const DepositsOverview: React.FC = () => {
overview,
isLoading: isLoadingOverview,
} = useSelectedCurrencyOverview();
const isDepositsUnrestricted =
wcpaySettings.accountStatus.deposits?.restrictions ===
Copy link
Contributor

@shendy-a8c shendy-a8c Dec 12, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do you check for wcpaySettings.accountStatus.deposits.restrictions instead of account.deposits_blocked?

If I understand it correctly, account.deposits_blocked takes account new account waiting period and wcpaySettings.accountStatus.deposits.restrictions does not.

Just curious.

Current code would work because the deposits card won't show if available balance is 0 and there is no deposits anyway. When in waiting period, merchant won't have deposits.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AFAICT account.deposits_blocked only checks for deposits blocked, and doesn't take into consideration schedule restrictions.

In this case, we want to check for both schedule restrictions and blocked deposits, which wcpaySettings.accountStatus.deposits.restrictions === 'deposits_unrestricted' covers.

I could include a check for wcpaySettings.accountStatus.deposits.completed_waiting_period === true, that might be more explicit. What do you think?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for explaining. I don't think it's necessary to check waiting period.

Copy link
Contributor

@shendy-a8c shendy-a8c left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall looks good and tested well per testing instructions.

I have a question when available balance is negative, why the next date string shows up.

Copy link
Contributor

@shendy-a8c shendy-a8c left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall looks good and tested well per testing instructions.

I have a question when available balance is negative, why the next date string shows up.

@Jinksi Jinksi requested review from a team and shendy-a8c December 12, 2023 23:55
@Jinksi Jinksi changed the base branch from develop to release/6.9.2 December 13, 2023 00:33
@Jinksi Jinksi changed the base branch from release/6.9.2 to develop December 13, 2023 02:51
@Jinksi Jinksi force-pushed the fix/7874-show-deposit-schedule-when-zero-available-balance branch from 34215f7 to 9cec48f Compare December 13, 2023 03:35
@Jinksi Jinksi changed the base branch from develop to release/6.9.2 December 13, 2023 03:36
@Jinksi Jinksi force-pushed the fix/7874-show-deposit-schedule-when-zero-available-balance branch from f6135dd to ed4a651 Compare December 13, 2023 03:44
@Jinksi
Copy link
Member Author

Jinksi commented Dec 13, 2023

Rebased to release/6.9.2 and removed all commits carried over from develop.

Copy link
Contributor

@shendy-a8c shendy-a8c left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. Retested to make sure and everything looks good.
Also, I made sure the rebase went OK by comparing with the PR branch before rebased, https://github.com/Automattic/woocommerce-payments/pull/7896/files. I still had it on my local minus your latest commit.

@Jinksi Jinksi merged commit c0e6cf5 into release/6.9.2 Dec 13, 2023
18 of 22 checks passed
@Jinksi Jinksi deleted the fix/7874-show-deposit-schedule-when-zero-available-balance branch December 13, 2023 05:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Deposits - Overview: When available balance is at or below zero, no schedule is shown.
5 participants