Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
191f346
[Dev]remove unused params from around account classes (#10877)
vladolaru Jun 30, 2025
c256511
Improve MultiCurrency cache strategy and switch to using API v2 for c…
vladolaru Jun 30, 2025
390e514
Set a notice `id` to prevent it being duplicated when moving between …
dmvrtx Jun 30, 2025
56b5d4b
Ensure deactivation modal resizes properly after content update (#10879)
mordeth Jul 1, 2025
23717ec
Update .gitignore to cover Zed, Claude (Code) and PHPActor (#10875)
dmvrtx Jul 1, 2025
2e255d7
Fix capture cancellation handling for orders with multiple authorizat…
mgascam Jul 1, 2025
f2c76c1
Evidence submission form - credit_not_processed (#10882)
rtio Jul 1, 2025
c911870
Fix UI shift when uploading/removing a file (#10883)
rtio Jul 1, 2025
82b0414
fix: e2e expired card failure (#10887)
frosso Jul 1, 2025
5116fe6
update: wp components wrapped as individual components (#10886)
frosso Jul 2, 2025
def8c3b
update: ensure wp components internal usage (#10881)
frosso Jul 2, 2025
8302271
Merge trunk v9.6.0 into develop
botwoo Jul 2, 2025
09d98aa
Change border color and divider color to gray 100 (#10892)
rtio Jul 2, 2025
f1997aa
Fix step back behavior (#10891)
rtio Jul 2, 2025
355a6f7
Add logic for the subscription cancelled (subscription_canceled) (#10…
rtio Jul 2, 2025
34ef62e
Add logic for duplicate chargeback reason for the evidence submission…
rtio Jul 2, 2025
0e30153
Fix dispute banner urgency, remove HorizontalList animation, and add …
mgascam Jul 2, 2025
6c38938
`General/other` dispute evidence flow (#10885)
dmvrtx Jul 2, 2025
051121f
update: remove payment gateways confirmation dialog (#10893)
frosso Jul 3, 2025
d5825cc
update: order page to use unbundled WP components (#10897)
frosso Jul 3, 2025
182ef08
Attempt to fix the cover letter save behavior (#10900)
rtio Jul 3, 2025
aa6f65d
Fix spacing on the shipping information page (#10899)
rtio Jul 3, 2025
a32428f
Redirects to the dispute list after save (#10901)
rtio Jul 3, 2025
eb0ffad
Provide correct WPCOM language code as locale when requesting CSV exp…
Jinksi Jul 4, 2025
2a48922
Fix filename issue (#10904)
rtio Jul 4, 2025
1637151
File name should contain size and extension (#10905)
rtio Jul 4, 2025
ecef9b1
update: MCCY widget to use unbundled WP components (#10895)
frosso Jul 4, 2025
1206a6f
Fix margin - shipping information heading (#10908)
rtio Jul 4, 2025
7962c89
Do not allow to challenge Visa compliance disputes (#10903)
dmvrtx Jul 4, 2025
0fe7774
Update Dispute copy (#10909)
rtio Jul 7, 2025
ecc79c3
update: deactivation survey to use unbundled WP components (#10902)
frosso Jul 7, 2025
a5920c2
Redirect user to dispute detail (#10913)
rtio Jul 7, 2025
79e3fa0
Remove using option_name _wcpay_feature_documents (#10910)
htdat Jul 8, 2025
bd3c367
update: TOS agreement to use WP components (#10911)
frosso Jul 8, 2025
878b282
Show helper link to the recommended documents section (#10916)
rtio Jul 8, 2025
276416f
Remove 4px gap between the title and description (#10918)
rtio Jul 9, 2025
01a7aca
Remove `convert_to_server_locale` as it has to be done on the server …
dmvrtx Jul 10, 2025
57d55f2
Remove isNewEvidenceSubmissionFormEnabled feature flag (#10919)
rtio Jul 10, 2025
c14dc2e
Clean up old evidence submission code (#10922)
rtio Jul 10, 2025
6a613f1
Support more Hong Kong starting phone numbers (4, 7, 8) (#10926)
oaratovskyi Jul 11, 2025
7f2ab3f
fix: BNPLs on PMME when method is not active (#10924)
frosso Jul 11, 2025
0cb8be4
Documents section should have subtitle copy and font size of the acco…
rtio Jul 11, 2025
d4d76c6
Add new fee type `fee_refund` (#10921)
htdat Jul 14, 2025
ba5bd7a
Fix WooPay Direct Checkout on mini-cart (#10917)
alefesouza Jul 14, 2025
39d2422
update: MCCY settings with unbundled wp components (#10930)
frosso Jul 15, 2025
0d5e573
fix: WC Session compatibility tests (#10932)
frosso Jul 15, 2025
135588e
Add disputes confirmation screen (#10906)
mgascam Jul 15, 2025
15f861a
Unbundling payments detail & transactions (#10929)
rtio Jul 15, 2025
23c84b8
Accept TAP_TO_PAY_DEVICE as a valid card reader mode (#10920)
malinajirka Jul 16, 2025
e249e4b
Unbundle payouts and payout details (#10935)
rtio Jul 16, 2025
c8cbfca
Fix orphan words (#10936)
rtio Jul 16, 2025
ad40113
update: subscription onboarding to use WP components (#10907)
frosso Jul 16, 2025
f133839
update: RedirectToTransactionDetails to use unbundled wp components (…
frosso Jul 16, 2025
80ea1dd
update: settings with unbundled wp components (#10927)
frosso Jul 16, 2025
34e79df
Fix WooPay button spinner on some themes (#10934)
alefesouza Jul 17, 2025
b7d39f3
Update the overview page to use the components available in the WordP…
rtio Jul 17, 2025
cca4782
Fix imports for the unbundled components (#10949)
rtio Jul 18, 2025
bd89e4d
Multi-currency settings, setup, and block settings should use wp.comp…
rtio Jul 18, 2025
186a448
Update client to use NOX surfaces instead of MOX/Connect page whereve…
mordeth Jul 18, 2025
985af9d
Update the test account notice in WooPayments Settings and link to NO…
elazzabi Jul 18, 2025
ffdb57d
Card readers page to use the wp.components available in the WordPress…
rtio Jul 18, 2025
155860f
Update version and add changelog entries for release 9.7.0
github-actions[bot] Jul 20, 2025
ef638bd
Extract redirect URL from payment details if not provided. (#10958)
mgascam Jul 22, 2025
961c28c
Amend changelog entries for release 9.7.0
botwoo Jul 22, 2025
fd272ec
Fix subscription PM change notes (#10962)
RadoslavGeorgiev Jul 24, 2025
dd3a165
Fix spinner misaligned in Proceed to Checkout button (#10960)
mgascam Jul 24, 2025
c05150a
Amend changelog entries for release 9.7.0
botwoo Jul 24, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 4 additions & 0 deletions .eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,10 @@
{
"selector": "ImportDeclaration[source.value=/gridicons(?!\\u002F)/]",
"message": "Do not import whole Gridicons, import them individually with 'gridicons/dist/icon-name'."
},
{
"selector": "ImportDeclaration[source.value='@wordpress/components']",
"message": "Do not import from '@wordpress/components' directly. Use components from 'wcpay/components/wp-components-wrapped' instead."
}
]
},
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ project.properties
*.sublime-workspace
.sublimelinterrc
.cursor/
.claude/
.zed/
.phpactor.json

# Bundle
dist
Expand Down
50 changes: 50 additions & 0 deletions assets/images/dispute-evidence-submitted.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
60 changes: 60 additions & 0 deletions changelog.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,65 @@
*** WooPayments Changelog ***

= 9.7.0 - 2025-07-24 =
* Add - Add a confirmation screen to the new flow for submitting dispute evidence.
* Add - Add Credit not processed logic for the new evidence submission form.
* Add - Add external help link to the recomended documents section.
* Add - Add logic for Duplicate chargeback reason for the new evidence submission form.
* Add - Add logic for subscription cancelled for the new evidence form.
* Add - Add new transaction type fee_refund
* Add - File name should show size the extension
* Add - New evidence flow for the "General" dispute type.
* Fix - Accept TAP_TO_PAY_DEVICE as a valid card reader model to consider a transaction as TTP.
* Fix - Adjusted deactivation modal behavior to correctly resize when its content updates.
* Fix - Change copy to avoid leaving words alone.
* Fix - Consolidate test account notices in one in the WooPayments Settings page.
* Fix - Enable WooPay Direct Checkout on mini-cart.
* Fix - Fix - Remove unwanted animations and improve styling consistency on dispute evidence pages.
* Fix - Fix: Allow multiple authorization cancellations on the same order.
* Fix - Fix: Google Pay 3D Secure authentication being bypassed due to redirect URL extraction issue
* Fix - fix: remove BNPLs from PMME when BNPL method is not active
* Fix - Fix: Spinner alignment issues in cart checkout button and checkout address form email field.
* Fix - Fix border color of some items.
* Fix - Fix copy for the documents section and fix the font size of the content inside the accordion on top.
* Fix - Fix filename issue on the new evidence submission form.
* Fix - Fix margin of the shipping details title on the evidence submission form.
* Fix - Fix order notes after subscriptions' payment method gets changed.
* Fix - Fix spacings on the envidence submission form
* Fix - Fix vertical UI shift when uploading a file
* Fix - Fix WooPay button spinner on some themes.
* Fix - Improve the cover letter save behavior.
* Fix - Provide correct language code when requesting CSV exports in a region-specific language
* Fix - Remove unnecessary gap
* Fix - Step back should also scroll the page to the top
* Fix - Support numbers starting from 4, 7, 8 for Hong Kong phones.
* Update - Disallow challenging the Visa compliance disputes.
* Update - ensure payments and transactions pages uses wp components that come with the WP installation.
* Update - Improve multicurrency caching and use new API endpoint.
* Update - Make the card reaaders page use the wp.components available in the WordPress installation.
* Update - Redirect merchant to the dispute detail screen
* Update - Redirects to the dispute list after save.
* Update - Removes the feature flag for the new evidence submission form.
* Update - update: deactivation survey to use WP components bundled within the WP installation
* Update - update: ensure multi-currency settings page uses wp components that come with the WP installation; updated some styles to use WP components, rather than bespoke components;
* Update - update: ensure settings page uses wp components that come with the WP installation
* Update - update: multi-currency widget to use WP components bundled within the WP installation
* Update - update: order page assets with wp components
* Update - update: RedirectToTransactionDetails to use Gutenberg components that come with the WP installation
* Update - update: removed the payment gateways confirmation dialog
* Update - update: subscription-product-onboarding to use WP components bundled within the WP installation
* Update - update: TOS agreement dialog to use WP Components bundled within the WP installation
* Update - Update client to use NOX surfaces instead of MOX/Connect page wherever possible.
* Update - Update copy for disputes
* Update - Update Multi-currency settings to use wp.components available in the WordPress installation.
* Update - Update the payments overview page to use the components available in the WP installation.
* Update - Update the payout list and payout details pages to use the WP components available on the WP installation.
* Dev - Fix imports for the unbundled components.
* Dev - Prevent "Evidence saved" toast from appearing multiple times.
* Dev - Remove conversion to the server locale, as it is done on the server.
* Dev - Remove feature flag _wcpay_feature_documents
* Dev - Remove old evidence submission code
* Dev - update: ensure `wp-components-wrapped` has individually exported components

= 9.6.0 - 2025-07-02 =
* Add - Add cover letter for the new evidence submission screen for Product Unacceptable chargeback reason
* Add - Added a URL parameter to allow merchants to access the VAT details modal.
Expand Down
2 changes: 1 addition & 1 deletion client/card-readers/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import { __ } from '@wordpress/i18n';
*/
import Page from 'components/page';
import ReadersList from './list';
import { TabPanel } from '@wordpress/components';
import { TabPanel } from 'wcpay/components/wp-components-wrapped/components/tab-panel';

import './style.scss';

Expand Down
4 changes: 3 additions & 1 deletion client/card-readers/list/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,13 @@
*/
import React from 'react';
import { __, sprintf } from '@wordpress/i18n';
import { Card, CardBody, CardDivider } from '@wordpress/components';

/**
* Internal dependencies
*/
import { Card } from 'wcpay/components/wp-components-wrapped/components/card';
import { CardBody } from 'wcpay/components/wp-components-wrapped/components/card-body';
import { CardDivider } from 'wcpay/components/wp-components-wrapped/components/card-divider';
import SettingsSection from 'wcpay/settings/settings-section';
import SettingsLayout from 'wcpay/settings/settings-layout';
import LoadableSettingsSection from 'wcpay/settings/loadable-settings-section';
Expand Down
1 change: 1 addition & 0 deletions client/cart/blocks/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
* Internal dependencies
*/
import { renderBNPLCartMessaging } from './product-details';
import './style.scss';

const { registerPlugin } = window.wp.plugins;

Expand Down
19 changes: 19 additions & 0 deletions client/cart/blocks/style.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
/**
* Cart Blocks Styles
*
* This file contains styles specific to WooCommerce cart blocks
* and WCPay integrations within the cart context.
*/

/**
* Fix for cart submit button spinner alignment
*/
.wc-block-cart__submit-button .wc-block-components-button__text {
position: relative;

.wc-block-components-spinner {
/* Override the base style's top/left: initial */
top: 0;
left: 0;
}
}
17 changes: 17 additions & 0 deletions client/checkout/woopay/style.scss
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,21 @@
}
}

/* Fix for address form email field spinner alignment */
.wc-block-components-address-form__email {
position: relative;

.wc-block-components-spinner {
/* Override the base style's top/left: initial */
top: 50%;
left: auto;
right: 10px;
width: 24px;
height: 24px;
transform: translateY( -50% );
}
}

.woopay-login-session-iframe {
width: 100%;
height: 100vh;
Expand Down Expand Up @@ -150,6 +165,8 @@
box-sizing: content-box;
text-align: center;
font-size: 1.25em;
top: initial;
left: initial;

&::after {
content: ' ';
Expand Down
3 changes: 0 additions & 3 deletions client/components/accordion/body.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,6 @@
*/
import clsx from 'clsx';
import React, { useEffect, useRef, useState, forwardRef } from 'react';
/**
* WordPress dependencies
*/
import { useMergeRefs } from '@wordpress/compose';

/**
Expand Down
9 changes: 5 additions & 4 deletions client/components/accordion/title.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,15 @@
*/
import React, { forwardRef } from 'react';
import clsx from 'clsx';
/**
* WordPress dependencies
*/
import { chevronUp, chevronDown } from '@wordpress/icons';
import { Icon } from 'wcpay/components/wp-components-wrapped/components/icon';
import { Button } from 'wcpay/components/wp-components-wrapped/components/button';

/**
* Internal dependencies
*/
import type { AccordionTitleProps } from './types';
import type { WordPressComponentProps } from '@wordpress/components/ui/context/wordpress-component';
import { Button, Icon } from 'wcpay/components/wp-components-wrapped';
import AccordionSubtitle from './subtitle';
import './style.scss';

Expand All @@ -36,6 +34,7 @@ const AccordionTitle = forwardRef<
'is-md': md,
'is-lg': lg,
} ) }
// @ts-expect-error: there is a type discrepancy between the wrapped WP components and the bundled components.
ref={ ref }
{ ...props }
>
Expand All @@ -45,6 +44,7 @@ const AccordionTitle = forwardRef<
*/ }
<span aria-hidden="true">
<Icon
// @ts-expect-error: className is not a prop defined in the WP Icon component.
className="wcpay-accordion__arrow"
icon={ isOpened ? chevronUp : chevronDown }
/>
Expand All @@ -58,6 +58,7 @@ const AccordionTitle = forwardRef<
{ icon && (
<Icon
icon={ icon }
// @ts-expect-error: className is not a prop defined in the WP Icon component.
className="wcpay-accordion__icon"
size={ 20 }
/>
Expand Down
3 changes: 2 additions & 1 deletion client/components/accordion/types.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
/**
* WordPress dependencies
* External dependencies
*/
// eslint-disable-next-line import/no-unresolved
import { WordPressComponentProps } from '@wordpress/components/ui/context/wordpress-component';
// eslint-disable-next-line no-restricted-syntax
import { Button } from '@wordpress/components';

export type AccordionProps = {
Expand Down
6 changes: 2 additions & 4 deletions client/components/account-balances/balance-tooltip.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import { __ } from '@wordpress/i18n';
import { ClickTooltip } from 'components/tooltip';
import { documentationUrls, fundLabelStrings } from './strings';
import InlineNotice from 'components/inline-notice';
import { ExternalLink } from 'wcpay/components/wp-components-wrapped/components/external-link';

type TotalBalanceTooltipProps = {
balance: number;
Expand Down Expand Up @@ -132,10 +133,7 @@ export const AvailableBalanceTooltip: React.FC< AvailableBalanceTooltipProps > =
),
components: {
discoverWhyLink: (
// eslint-disable-next-line jsx-a11y/anchor-has-content
<a
rel="external noopener noreferrer"
target="_blank"
<ExternalLink
href={
documentationUrls.negativeBalance
}
Expand Down
16 changes: 9 additions & 7 deletions client/components/account-balances/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,17 @@
* External dependencies
*/
import React, { useState } from 'react';
import { Card, CardBody, CardHeader, Flex } from '@wordpress/components';
import { __, sprintf } from '@wordpress/i18n';
import interpolateComponents from '@automattic/interpolate-components';
import { Link } from '@woocommerce/components';

/**
* Internal dependencies
*/
import { Card } from 'wcpay/components/wp-components-wrapped/components/card';
import { CardBody } from 'wcpay/components/wp-components-wrapped/components/card-body';
import { CardHeader } from 'wcpay/components/wp-components-wrapped/components/card-header';
import { Flex } from 'wcpay/components/wp-components-wrapped/components/flex';
import { ExternalLink } from 'wcpay/components/wp-components-wrapped/components/external-link';
import type * as AccountOverview from 'wcpay/types/account-overview';
import BalanceBlock from './balance-block';
import HelpOutlineIcon from 'gridicons/dist/help-outline';
Expand Down Expand Up @@ -204,11 +207,10 @@ const AccountBalances: React.FC = () => {
components: {
strong: <strong />,
learnMoreLink: (
<Link
href="https://woocommerce.com/document/woopayments/payouts/instant-payouts/"
target="_blank"
rel="noreferrer"
type="external"
<ExternalLink
href={
'https://woocommerce.com/document/woopayments/payouts/instant-payouts/'
}
/>
),
},
Expand Down
2 changes: 1 addition & 1 deletion client/components/account-status/account-fees/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import {
getCurrentBaseFee,
getTransactionsPaymentMethodName,
} from 'utils/account-fees';
import { CardDivider } from '@wordpress/components';
import { CardDivider } from 'wcpay/components/wp-components-wrapped/components/card-divider';
import './styles.scss';

const AccountFee = ( props ) => {
Expand Down
8 changes: 3 additions & 5 deletions client/components/account-status/account-status-item.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
/** @format */

/**
* External dependencies
*/
import { Flex, FlexBlock, FlexItem } from '@wordpress/components';

/**
* Internal dependencies
*/
import { Flex } from 'wcpay/components/wp-components-wrapped/components/flex';
import { FlexBlock } from 'wcpay/components/wp-components-wrapped/components/flex-block';
import { FlexItem } from 'wcpay/components/wp-components-wrapped/components/flex-item';

const AccountStatusItem = ( { label, align, value, children } ) => {
return (
Expand Down
4 changes: 3 additions & 1 deletion client/components/account-status/account-tools/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
* External dependencies
*/
import React, { useState } from 'react';
import { Button, CardDivider } from '@wordpress/components';
import { addQueryArgs } from '@wordpress/url';

/**
Expand All @@ -12,6 +11,8 @@ import strings from './strings';
import './styles.scss';
import ResetAccountModal from 'wcpay/overview/modal/reset-account';
import { isInTestModeOnboarding } from 'wcpay/utils';
import { Button } from 'wcpay/components/wp-components-wrapped/components/button';
import { CardDivider } from 'wcpay/components/wp-components-wrapped/components/card-divider';

const handleReset = () => {
window.location.href = addQueryArgs( wcpaySettings.connectUrl, {
Expand Down Expand Up @@ -39,6 +40,7 @@ export const AccountTools = () => {
<Button
variant={ 'secondary' }
onClick={ () => setModalVisible( true ) }
__next40pxDefaultSize
>
{ strings.reset }
</Button>
Expand Down
17 changes: 8 additions & 9 deletions client/components/account-status/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,18 @@
/**
* External dependencies
*/
import {
Button,
Card,
CardBody,
CardHeader,
FlexBlock,
FlexItem,
} from '@wordpress/components';
import { __ } from '@wordpress/i18n';
import { addQueryArgs } from '@wordpress/url';

/**
* Internal dependencies
*/
import { Button } from 'wcpay/components/wp-components-wrapped/components/button';
import { Card } from 'wcpay/components/wp-components-wrapped/components/card';
import { CardBody } from 'wcpay/components/wp-components-wrapped/components/card-body';
import { CardHeader } from 'wcpay/components/wp-components-wrapped/components/card-header';
import { FlexBlock } from 'wcpay/components/wp-components-wrapped/components/flex-block';
import { FlexItem } from 'wcpay/components/wp-components-wrapped/components/flex-item';
import AccountFees from './account-fees';
import AccountStatusItem from './account-status-item';
import DepositsStatus from 'components/deposits-status';
Expand All @@ -25,7 +24,6 @@ import './style.scss';
import './shared.scss';
import { AccountTools } from './account-tools';
import { recordEvent } from 'wcpay/tracks';
import { addQueryArgs } from '@wordpress/url';

const AccountStatusCard = ( props ) => {
const { title, children, value } = props;
Expand Down Expand Up @@ -92,6 +90,7 @@ const AccountStatusDetails = ( props ) => {
}
href={ accountLink }
target={ '_blank' }
__next40pxDefaultSize
>
{ __( 'Edit details', 'woocommerce-payments' ) }
</Button>
Expand Down
Loading
Loading