├── .nvmrc ├── scripts ├── .gitignore ├── package.json ├── commands │ ├── bump-version.js │ └── readme.js └── release.js ├── .eslintignore ├── tests ├── mocks │ ├── static.js │ └── woocommerce-settings.js ├── setup │ ├── setup-react-testing-library.js │ ├── setup-window-globals.js │ └── setup-globals.js └── unit-tests │ └── example.php ├── .prettierrc.js ├── src ├── payment-gateway-suggestions │ └── components │ │ ├── Toggle │ │ ├── index.js │ │ ├── Toggle.scss │ │ └── Toggle.js │ │ ├── List │ │ ├── index.js │ │ ├── fallback.png │ │ ├── List.js │ │ └── Placeholder.js │ │ ├── Setup │ │ ├── index.js │ │ ├── Setup.scss │ │ └── Placeholder.js │ │ └── WCPay │ │ ├── index.js │ │ ├── suggestion.scss │ │ ├── UsageModal.js │ │ └── utils.js ├── free-trial │ ├── tax │ │ ├── avalara │ │ │ └── logo.png │ │ ├── woocommerce-tax │ │ │ ├── logo.png │ │ │ ├── automated-taxes.tsx │ │ │ ├── setup.scss │ │ │ ├── connect.tsx │ │ │ └── index.tsx │ │ ├── components │ │ │ ├── bullet.tsx │ │ │ ├── connect.tsx │ │ │ ├── partner-card.scss │ │ │ ├── partners.scss │ │ │ ├── partners.tsx │ │ │ ├── partner-card.tsx │ │ │ └── store-location.tsx │ │ └── manual-configuration │ │ │ ├── index.tsx │ │ │ └── configure.tsx │ └── fills │ │ ├── index.ts │ │ └── woocommerce-payments.js ├── marketing │ └── images │ │ └── browser-people.jpg ├── task-headers │ ├── assets │ │ └── images │ │ │ ├── add-domain-illustration.png │ │ │ └── timer.svg │ ├── index.ts │ ├── add-domain.js │ └── products.js ├── utils │ ├── admin-settings.js │ ├── hooks │ │ └── use-appearance-click.js │ ├── escape.js │ ├── storage.js │ └── index.js ├── task-fills │ ├── index.js │ ├── get-paid-with-paypal.js │ ├── get-paid-with-square.js │ ├── get-paid-with-stripe.js │ └── appearance.js ├── notice │ ├── style.scss │ └── index.js ├── homescreen-progress-header │ ├── style.scss │ ├── index.js │ └── task-list-menu.tsx ├── launch-store │ └── images │ │ ├── copy.js │ │ ├── globe_icon.js │ │ ├── card_icon.js │ │ ├── lock.js │ │ └── products_icon.js ├── homescreen-banner │ └── style.scss ├── task-completion │ ├── fill.tsx │ └── style.scss ├── disabled-tasks │ ├── style.scss │ └── index.tsx ├── payments-welcome │ ├── banner.tsx │ ├── tracks.ts │ └── cards │ │ └── cb.js ├── stylesheets │ └── _variables.scss ├── wc-navigation-root-url.js ├── introductory-offer-banner │ └── style.scss └── track-menu-item.ts ├── babel.config.js ├── typings ├── index.d.ts └── global.d.ts ├── assets ├── fonts │ ├── WCPay.eot │ ├── WCPay.ttf │ ├── WCPay.woff │ └── WCPay.svg ├── images │ ├── klarna.png │ ├── square.png │ ├── cart-active.png │ ├── cart-default.png │ ├── cart-hovered.png │ ├── welcome-modal-illustration-1.png │ ├── welcome-modal-illustration-2.png │ ├── plugins-landing-page-hero-desktop.png │ ├── extensions-landing-page-hero-desktop.png │ ├── extensions-landing-page-hero-mobile.png │ └── icon-flag.svg ├── css │ ├── customize-store.css │ ├── ecommerce-navigation.css │ ├── free-trial-plan-picker-banner.css │ ├── free-trial-admin.css │ └── nav-unification.css └── scripts │ └── frontend-banner-tracks.js ├── .husky └── pre-commit ├── languages ├── wc-calypso-bridge-ar.mo ├── wc-calypso-bridge-ja.mo ├── wc-calypso-bridge-de_DE.mo ├── wc-calypso-bridge-es_CL.mo ├── wc-calypso-bridge-es_ES.mo ├── wc-calypso-bridge-es_MX.mo ├── wc-calypso-bridge-fr_BE.mo ├── wc-calypso-bridge-fr_CA.mo ├── wc-calypso-bridge-fr_FR.mo ├── wc-calypso-bridge-he_IL.mo ├── wc-calypso-bridge-id_ID.mo ├── wc-calypso-bridge-it_IT.mo ├── wc-calypso-bridge-ko_KR.mo ├── wc-calypso-bridge-nl_NL.mo ├── wc-calypso-bridge-pt_BR.mo ├── wc-calypso-bridge-ru_RU.mo ├── wc-calypso-bridge-sv_SE.mo ├── wc-calypso-bridge-tr_TR.mo ├── wc-calypso-bridge-zh_CN.mo ├── wc-calypso-bridge-zh_SG.mo ├── wc-calypso-bridge-zh_TW.mo ├── wc-calypso-bridge-id_ID-beb9e19fb5e7cb316b39d09ff6ca8bdf.json ├── wc-calypso-bridge-es_ES-beb9e19fb5e7cb316b39d09ff6ca8bdf.json ├── wc-calypso-bridge-id_ID-ce1126179ccf98c51c6a61cf74680416.json ├── wc-calypso-bridge-es_CL-beb9e19fb5e7cb316b39d09ff6ca8bdf.json ├── wc-calypso-bridge-es_MX-beb9e19fb5e7cb316b39d09ff6ca8bdf.json ├── wc-calypso-bridge-nl_NL-beb9e19fb5e7cb316b39d09ff6ca8bdf.json ├── wc-calypso-bridge-it_IT-beb9e19fb5e7cb316b39d09ff6ca8bdf.json ├── wc-calypso-bridge-es_CL-ce1126179ccf98c51c6a61cf74680416.json ├── wc-calypso-bridge-es_ES-ce1126179ccf98c51c6a61cf74680416.json ├── wc-calypso-bridge-es_MX-ce1126179ccf98c51c6a61cf74680416.json ├── wc-calypso-bridge-nl_NL-ce1126179ccf98c51c6a61cf74680416.json ├── wc-calypso-bridge-it_IT-ce1126179ccf98c51c6a61cf74680416.json ├── wc-calypso-bridge-pt_BR-beb9e19fb5e7cb316b39d09ff6ca8bdf.json ├── wc-calypso-bridge-de_DE-beb9e19fb5e7cb316b39d09ff6ca8bdf.json ├── wc-calypso-bridge-sv_SE-beb9e19fb5e7cb316b39d09ff6ca8bdf.json ├── wc-calypso-bridge-pt_BR-ce1126179ccf98c51c6a61cf74680416.json ├── wc-calypso-bridge-de_DE-ce1126179ccf98c51c6a61cf74680416.json ├── wc-calypso-bridge-sv_SE-ce1126179ccf98c51c6a61cf74680416.json ├── wc-calypso-bridge-fr_FR-beb9e19fb5e7cb316b39d09ff6ca8bdf.json ├── wc-calypso-bridge-fr_BE-beb9e19fb5e7cb316b39d09ff6ca8bdf.json ├── wc-calypso-bridge-fr_CA-beb9e19fb5e7cb316b39d09ff6ca8bdf.json ├── wc-calypso-bridge-id_ID-d306b16f43f72fde801a43dea46bfd64.json ├── wc-calypso-bridge-fr_FR-ce1126179ccf98c51c6a61cf74680416.json ├── wc-calypso-bridge-fr_BE-ce1126179ccf98c51c6a61cf74680416.json ├── wc-calypso-bridge-fr_CA-ce1126179ccf98c51c6a61cf74680416.json ├── wc-calypso-bridge-tr_TR-beb9e19fb5e7cb316b39d09ff6ca8bdf.json ├── wc-calypso-bridge-es_ES-d306b16f43f72fde801a43dea46bfd64.json ├── wc-calypso-bridge-es_CL-d306b16f43f72fde801a43dea46bfd64.json ├── wc-calypso-bridge-es_MX-d306b16f43f72fde801a43dea46bfd64.json ├── wc-calypso-bridge-nl_NL-d306b16f43f72fde801a43dea46bfd64.json ├── wc-calypso-bridge-tr_TR-ce1126179ccf98c51c6a61cf74680416.json ├── wc-calypso-bridge-zh_CN-beb9e19fb5e7cb316b39d09ff6ca8bdf.json ├── wc-calypso-bridge-zh_SG-beb9e19fb5e7cb316b39d09ff6ca8bdf.json ├── wc-calypso-bridge-zh_TW-beb9e19fb5e7cb316b39d09ff6ca8bdf.json ├── wc-calypso-bridge-it_IT-d306b16f43f72fde801a43dea46bfd64.json ├── wc-calypso-bridge-pt_BR-d306b16f43f72fde801a43dea46bfd64.json ├── wc-calypso-bridge-zh_CN-ce1126179ccf98c51c6a61cf74680416.json ├── wc-calypso-bridge-zh_SG-ce1126179ccf98c51c6a61cf74680416.json ├── wc-calypso-bridge-zh_TW-ce1126179ccf98c51c6a61cf74680416.json ├── wc-calypso-bridge-sv_SE-d306b16f43f72fde801a43dea46bfd64.json ├── wc-calypso-bridge-de_DE-d306b16f43f72fde801a43dea46bfd64.json ├── wc-calypso-bridge-fr_FR-d306b16f43f72fde801a43dea46bfd64.json ├── wc-calypso-bridge-fr_BE-d306b16f43f72fde801a43dea46bfd64.json ├── wc-calypso-bridge-fr_CA-d306b16f43f72fde801a43dea46bfd64.json ├── wc-calypso-bridge-tr_TR-d306b16f43f72fde801a43dea46bfd64.json ├── wc-calypso-bridge-zh_TW-d306b16f43f72fde801a43dea46bfd64.json ├── wc-calypso-bridge-zh_CN-d306b16f43f72fde801a43dea46bfd64.json ├── wc-calypso-bridge-zh_SG-d306b16f43f72fde801a43dea46bfd64.json ├── wc-calypso-bridge-ko_KR-beb9e19fb5e7cb316b39d09ff6ca8bdf.json ├── wc-calypso-bridge-ko_KR-ce1126179ccf98c51c6a61cf74680416.json ├── wc-calypso-bridge-ja-beb9e19fb5e7cb316b39d09ff6ca8bdf.json └── wc-calypso-bridge-ja-ce1126179ccf98c51c6a61cf74680416.json ├── store-on-wpcom ├── assets │ ├── icon-128x128.png │ ├── icon-256x256.png │ └── css │ │ ├── admin │ │ └── nav-unification.css │ │ └── masterbar.css ├── inc │ ├── wc-calypso-bridge-enable-auto-update-db.php │ ├── wc-calypso-bridge-paypal-defaults.php │ ├── wc-calypso-bridge-cheque-defaults.php │ ├── wc-calypso-bridge-mailchimp-deactivate-hook.php │ ├── wc-calypso-bridge-masterbar-menu.php │ ├── wc-calypso-bridge-jetpack-hotfixes.php │ └── wc-calypso-bridge-disable-publicize.php └── phpunit.xml ├── bin ├── lint-php-staged.sh └── check-versions.sh ├── includes ├── tasks │ ├── class-wc-calypso-task-free-trial-payments.php │ ├── class-wc-calypso-task-free-trial-store-details.php │ ├── class-wc-calypso-task-appearance.php │ ├── class-wc-calypso-task-get-paid-with-square.php │ └── class-wc-calypso-task-get-paid-with-stripe.php ├── atomic-api │ └── class-wc-calypso-bridge-atomic-launch-api.php ├── class-wc-calypso-bridge-fse.php ├── class-wc-calypso-bridge-crowdsignal-redirect.php ├── free-trial │ ├── class-wc-calypso-bridge-free-trial-wc-payments.php │ └── class-wc-calypso-bridge-free-trial-orders-changes.php ├── class-wc-calypso-bridge-free-trial-store-details-task.php ├── wc-calypso-bridge-deprecated-functions.php ├── class-wc-calypso-bridge-notes.php └── class-wc-calypso-bridge-free-trial-payment-task.php ├── .github ├── ISSUE_TEMPLATE │ ├── config.yml │ └── 2-enhancement.yml ├── ISSUE_TEMPLATE.md ├── workflows │ ├── check-bundle-size.yml │ ├── setup-node.yml │ └── check-coding-standards.yml └── PULL_REQUEST_TEMPLATE.md ├── phpunit.xml ├── .gitignore ├── .editorconfig ├── jest-unit.config.js ├── tsconfig.json ├── .eslintrc.js ├── webpack.config.js └── composer.json /.nvmrc: -------------------------------------------------------------------------------- 1 | 16 2 | -------------------------------------------------------------------------------- /scripts/.gitignore: -------------------------------------------------------------------------------- 1 | ./node_modules/ 2 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | !.eslintrc.js 2 | node_modules 3 | 4 | -------------------------------------------------------------------------------- /tests/mocks/static.js: -------------------------------------------------------------------------------- 1 | module.exports = {}; 2 | 3 | -------------------------------------------------------------------------------- /.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = require("@wordpress/prettier-config"); 2 | -------------------------------------------------------------------------------- /src/payment-gateway-suggestions/components/Toggle/index.js: -------------------------------------------------------------------------------- 1 | export { Toggle } from './Toggle'; 2 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ '@wordpress/babel-preset-default' ], 3 | }; 4 | 5 | -------------------------------------------------------------------------------- /typings/index.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.png'; 2 | declare module '*.jpg'; 3 | declare module '*.svg'; 4 | -------------------------------------------------------------------------------- /assets/fonts/WCPay.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/assets/fonts/WCPay.eot -------------------------------------------------------------------------------- /assets/fonts/WCPay.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/assets/fonts/WCPay.ttf -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | . "$(dirname -- "$0")/_/husky.sh" 3 | 4 | npm run lint:php:staged 5 | -------------------------------------------------------------------------------- /assets/fonts/WCPay.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/assets/fonts/WCPay.woff -------------------------------------------------------------------------------- /assets/images/klarna.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/assets/images/klarna.png -------------------------------------------------------------------------------- /assets/images/square.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/assets/images/square.png -------------------------------------------------------------------------------- /assets/css/customize-store.css: -------------------------------------------------------------------------------- 1 | body.woocommerce-customize-store #jp-admin-notices { 2 | display: none; 3 | } 4 | -------------------------------------------------------------------------------- /assets/images/cart-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/assets/images/cart-active.png -------------------------------------------------------------------------------- /assets/images/cart-default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/assets/images/cart-default.png -------------------------------------------------------------------------------- /assets/images/cart-hovered.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/assets/images/cart-hovered.png -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-ar.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/languages/wc-calypso-bridge-ar.mo -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-ja.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/languages/wc-calypso-bridge-ja.mo -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-de_DE.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/languages/wc-calypso-bridge-de_DE.mo -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-es_CL.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/languages/wc-calypso-bridge-es_CL.mo -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-es_ES.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/languages/wc-calypso-bridge-es_ES.mo -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-es_MX.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/languages/wc-calypso-bridge-es_MX.mo -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-fr_BE.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/languages/wc-calypso-bridge-fr_BE.mo -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-fr_CA.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/languages/wc-calypso-bridge-fr_CA.mo -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-fr_FR.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/languages/wc-calypso-bridge-fr_FR.mo -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-he_IL.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/languages/wc-calypso-bridge-he_IL.mo -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-id_ID.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/languages/wc-calypso-bridge-id_ID.mo -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-it_IT.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/languages/wc-calypso-bridge-it_IT.mo -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-ko_KR.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/languages/wc-calypso-bridge-ko_KR.mo -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-nl_NL.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/languages/wc-calypso-bridge-nl_NL.mo -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-pt_BR.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/languages/wc-calypso-bridge-pt_BR.mo -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-ru_RU.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/languages/wc-calypso-bridge-ru_RU.mo -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-sv_SE.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/languages/wc-calypso-bridge-sv_SE.mo -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-tr_TR.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/languages/wc-calypso-bridge-tr_TR.mo -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-zh_CN.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/languages/wc-calypso-bridge-zh_CN.mo -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-zh_SG.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/languages/wc-calypso-bridge-zh_SG.mo -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-zh_TW.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/languages/wc-calypso-bridge-zh_TW.mo -------------------------------------------------------------------------------- /src/free-trial/tax/avalara/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/src/free-trial/tax/avalara/logo.png -------------------------------------------------------------------------------- /src/marketing/images/browser-people.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/src/marketing/images/browser-people.jpg -------------------------------------------------------------------------------- /src/payment-gateway-suggestions/components/List/index.js: -------------------------------------------------------------------------------- 1 | export { List } from './List'; 2 | export { Placeholder } from './Placeholder'; 3 | -------------------------------------------------------------------------------- /src/payment-gateway-suggestions/components/Setup/index.js: -------------------------------------------------------------------------------- 1 | export { Setup } from './Setup'; 2 | export { Placeholder } from './Placeholder'; 3 | -------------------------------------------------------------------------------- /store-on-wpcom/assets/icon-128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/store-on-wpcom/assets/icon-128x128.png -------------------------------------------------------------------------------- /store-on-wpcom/assets/icon-256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/store-on-wpcom/assets/icon-256x256.png -------------------------------------------------------------------------------- /src/free-trial/tax/woocommerce-tax/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/src/free-trial/tax/woocommerce-tax/logo.png -------------------------------------------------------------------------------- /assets/images/welcome-modal-illustration-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/assets/images/welcome-modal-illustration-1.png -------------------------------------------------------------------------------- /assets/images/welcome-modal-illustration-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/assets/images/welcome-modal-illustration-2.png -------------------------------------------------------------------------------- /assets/images/plugins-landing-page-hero-desktop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/assets/images/plugins-landing-page-hero-desktop.png -------------------------------------------------------------------------------- /assets/images/extensions-landing-page-hero-desktop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/assets/images/extensions-landing-page-hero-desktop.png -------------------------------------------------------------------------------- /assets/images/extensions-landing-page-hero-mobile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/assets/images/extensions-landing-page-hero-mobile.png -------------------------------------------------------------------------------- /tests/setup/setup-react-testing-library.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import '@wordpress/jest-console'; 5 | import '@testing-library/jest-dom'; 6 | 7 | -------------------------------------------------------------------------------- /src/free-trial/fills/index.ts: -------------------------------------------------------------------------------- 1 | export * from './task-headers/payments'; 2 | export * from './task-headers/woocommerce-payments'; 3 | export * from './woocommerce-payments'; 4 | -------------------------------------------------------------------------------- /src/task-headers/assets/images/add-domain-illustration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/src/task-headers/assets/images/add-domain-illustration.png -------------------------------------------------------------------------------- /tests/setup/setup-window-globals.js: -------------------------------------------------------------------------------- 1 | // Check if we're in a JSDOM test or not 2 | if ( global.window ) { 3 | window.wcCalypsoBridge = { 4 | siteSlug: 'test-site', 5 | }; 6 | } 7 | -------------------------------------------------------------------------------- /src/payment-gateway-suggestions/components/List/fallback.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/wc-calypso-bridge/HEAD/src/payment-gateway-suggestions/components/List/fallback.png -------------------------------------------------------------------------------- /src/utils/admin-settings.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import { getSetting } from '@woocommerce/settings'; 5 | 6 | export const WC_ASSET_URL = getSetting( 'wcAssetUrl' ); 7 | -------------------------------------------------------------------------------- /src/task-fills/index.js: -------------------------------------------------------------------------------- 1 | export * from './appearance.js'; 2 | export * from './get-paid-with-square.js'; 3 | export * from './get-paid-with-stripe.js'; 4 | export * from './get-paid-with-paypal.js'; 5 | -------------------------------------------------------------------------------- /src/payment-gateway-suggestions/components/WCPay/index.js: -------------------------------------------------------------------------------- 1 | export * from './utils'; 2 | export { Suggestion as WCPaySuggestion } from './Suggestion'; 3 | export { UsageModal as WCPayUsageModal } from './UsageModal'; 4 | -------------------------------------------------------------------------------- /src/payment-gateway-suggestions/components/Toggle/Toggle.scss: -------------------------------------------------------------------------------- 1 | .woocommerce-task-payments { 2 | .toggle-button { 3 | margin: $gap-small 0; 4 | 5 | .gridicon { 6 | margin-left: 4px; 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/notice/style.scss: -------------------------------------------------------------------------------- 1 | .wc-calypso-bridge-notice { 2 | border-left: 4px solid var(--wp-admin-theme-color); 3 | padding: 12px 16px; 4 | margin-bottom: 24px; 5 | line-height: 24px; 6 | font-size: 13px; 7 | background-color: #ffffff; 8 | } 9 | -------------------------------------------------------------------------------- /src/notice/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import './style.scss'; 5 | 6 | const Notice = ( { text } ) => { 7 | return
{ text }
; 8 | }; 9 | 10 | export default Notice; 11 | -------------------------------------------------------------------------------- /src/task-headers/index.ts: -------------------------------------------------------------------------------- 1 | export * from './add-domain'; 2 | export * from './products'; 3 | export * from './appearance'; 4 | export * from './get-paid-with-square'; 5 | export * from './get-paid-with-stripe'; 6 | export * from './get-paid-with-paypal'; 7 | -------------------------------------------------------------------------------- /tests/mocks/woocommerce-settings.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | getSetting: ( key, backup ) => { 3 | return global.wcSettings[ key ] || backup; 4 | }, 5 | getAdminLink: ( path ) => { 6 | if ( global.wcSettings && global.wcSettings.adminUrl ) { 7 | return global.wcSettings.adminUrl + path; 8 | } 9 | return path; 10 | }, 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /bin/lint-php-staged.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | CHANGED_STAGED_PHP_FILES=$(git diff --staged --name-only --diff-filter=d | grep '\.php$' | xargs) 3 | if [ -z "$CHANGED_STAGED_PHP_FILES" ]; then 4 | echo "No modified PHP files are staged. Exiting." 5 | exit 0 6 | fi 7 | vendor/bin/phpcs-changed --warning-severity=0 --extensions=php --git --git-staged $CHANGED_STAGED_PHP_FILES 8 | -------------------------------------------------------------------------------- /includes/tasks/class-wc-calypso-task-free-trial-payments.php: -------------------------------------------------------------------------------- 1 | assertTrue( true ); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/free-trial/tax/components/bullet.tsx: -------------------------------------------------------------------------------- 1 | export const Bullet: React.FC = () => { 2 | return ( 3 | 10 | 15 | 16 | ); 17 | }; 18 | -------------------------------------------------------------------------------- /store-on-wpcom/assets/css/admin/nav-unification.css: -------------------------------------------------------------------------------- 1 | /* Fix header overflow https://github.com/woocommerce/woocommerce-admin/issues/7035 */ 2 | @media ( min-width: 961px ) { 3 | .jetpack-connected.is-nav-unification .woocommerce-layout__header { 4 | width: calc( 100% - 272px ); 5 | } 6 | 7 | body.jetpack-connected.folded .woocommerce-layout__header { 8 | width: calc( 100% - 36px ); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: true 2 | contact_links: 3 | - name: 🔒 Security issue 4 | url: https://hackerone.com/automattic/ 5 | about: For security reasons, please report all security issues via HackerOne. If the issue is valid, a bug bounty will be paid out to you. Please disclose responsibly and not via GitHub (which allows for exploiting issues in the wild before the patch is released). 6 | -------------------------------------------------------------------------------- /tests/setup/setup-globals.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import { registerStore } from '@wordpress/data'; 5 | 6 | // Mock core/notices store for components dispatching core notices 7 | registerStore( 'core/notices', { 8 | reducer: () => { 9 | return {}; 10 | }, 11 | actions: { 12 | createNotice: () => {}, 13 | }, 14 | selectors: {}, 15 | } ); 16 | 17 | jest.mock( '@automattic/calypso-config' ); 18 | -------------------------------------------------------------------------------- /store-on-wpcom/inc/wc-calypso-bridge-enable-auto-update-db.php: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | ./tests/unit-tests 14 | 15 | 16 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | **Prerequisites (mark completed items with an [x]):** 4 | - [ ] I have checked that my issue type is not listed here https://github.com/Automattic/wc-calypso-bridge/issues/new/choose 5 | - [ ] My issue is not a security issue, support request, bug report, enhancement or feature request (Please use the link above if it is). 6 | 7 | **Issue Description:** 8 | -------------------------------------------------------------------------------- /src/launch-store/images/copy.js: -------------------------------------------------------------------------------- 1 | export default () => ( 2 | /* eslint-disable */ 3 | 13 | 14 | 15 | 16 | /* eslint-enable */ 17 | ); 18 | -------------------------------------------------------------------------------- /src/payment-gateway-suggestions/components/Setup/Setup.scss: -------------------------------------------------------------------------------- 1 | .woocommerce-task-payment-method.is-loading { 2 | .woocommerce-stepper__step-label { 3 | @include placeholder(); 4 | display: inline-block; 5 | width: 60%; 6 | } 7 | 8 | .woocommerce-stepper__step-icon { 9 | @include placeholder(); 10 | } 11 | 12 | .woocommerce-stepper__step:nth-child( 1 ) .woocommerce-stepper__step-label { 13 | width: 30%; 14 | } 15 | 16 | .woocommerce-stepper__step-number { 17 | display: none; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /typings/global.d.ts: -------------------------------------------------------------------------------- 1 | declare global { 2 | interface Window { 3 | wcTracks: { 4 | isEnabled: boolean; 5 | recordEvent: ( eventName: string, eventProperties?: object ) => void; 6 | }; 7 | // eslint-disable-next-line @typescript-eslint/no-explicit-any 8 | wc: any; 9 | // eslint-disable-next-line @typescript-eslint/no-explicit-any 10 | wp: any; 11 | // eslint-disable-next-line @typescript-eslint/no-explicit-any 12 | wcCalypsoBridge: any; 13 | location: Location; 14 | } 15 | } 16 | 17 | 18 | export {}; 19 | -------------------------------------------------------------------------------- /store-on-wpcom/phpunit.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | ./tests/unit-tests 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/utils/hooks/use-appearance-click.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import { useDispatch } from '@wordpress/data'; 5 | 6 | /** 7 | * Internal dependencies 8 | */ 9 | import escape from '../escape'; 10 | 11 | const siteSlug = escape( window.wcCalypsoBridge.siteSlug ); 12 | 13 | export const useAppearanceClick = () => { 14 | const { actionTask } = useDispatch( 'wc/admin/onboarding' ); 15 | const onClick = () => { 16 | actionTask( 'appearance' ); 17 | window.location = `https://wordpress.com/themes/${ siteSlug }`; 18 | }; 19 | 20 | return { onClick }; 21 | }; 22 | -------------------------------------------------------------------------------- /store-on-wpcom/inc/wc-calypso-bridge-paypal-defaults.php: -------------------------------------------------------------------------------- 1 | ( 2 | /* eslint-disable */ 3 | 14 | 15 | 16 | 17 | 18 | /* eslint-enable */ 19 | ); 20 | -------------------------------------------------------------------------------- /src/task-fills/get-paid-with-paypal.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import React from 'react'; 5 | import { WooOnboardingTaskListItem } from '@woocommerce/onboarding'; 6 | 7 | export const GetPaidWithPayPalFill = () => { 8 | return ( 9 | 10 | { ( { defaultTaskItem: DefaultTaskItem } ) => ( 11 | { 13 | window.location.href = 14 | window.wcCalypsoBridge.paypal_connect_url; 15 | } } 16 | /> 17 | ) } 18 | 19 | ); 20 | }; 21 | -------------------------------------------------------------------------------- /src/task-fills/get-paid-with-square.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import React from 'react'; 5 | import { WooOnboardingTaskListItem } from '@woocommerce/onboarding'; 6 | 7 | export const GetPaidWithSquareFill = () => { 8 | return ( 9 | 10 | { ( { defaultTaskItem: DefaultTaskItem } ) => ( 11 | { 13 | window.location.href = 14 | window.wcCalypsoBridge.square_connect_url; 15 | } } 16 | /> 17 | ) } 18 | 19 | ); 20 | }; 21 | -------------------------------------------------------------------------------- /src/task-fills/get-paid-with-stripe.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import React from 'react'; 5 | import { WooOnboardingTaskListItem } from '@woocommerce/onboarding'; 6 | 7 | export const GetPaidWithStripeFill = () => { 8 | return ( 9 | 10 | { ( { defaultTaskItem: DefaultTaskItem } ) => ( 11 | { 13 | window.location.href = 14 | window.wcCalypsoBridge.stripe_connect_url; 15 | } } 16 | /> 17 | ) } 18 | 19 | ); 20 | }; 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Editors 2 | project.xml 3 | project.properties 4 | /nbproject/private/ 5 | .buildpath 6 | .project 7 | .settings* 8 | .idea 9 | *.swp 10 | 11 | # OS X metadata 12 | .DS_Store 13 | 14 | # Windows junk 15 | Thumbs.db 16 | 17 | # Unit tests 18 | /tmp 19 | /tests/bin/tmp 20 | 21 | # Vendor 22 | vendor/ 23 | 24 | # Directories/files that may be generated by this project 25 | node_modules/ 26 | dist 27 | build 28 | build-module 29 | build-style 30 | 31 | # Directories/files that may appear in your environment 32 | wp-cli.local.yml 33 | *.sql 34 | *.tar.gz 35 | *.tgz 36 | *.zip 37 | .idea 38 | .vscode/ 39 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # This file is for unifying the coding style for different editors and IDEs 2 | # editorconfig.org 3 | 4 | # WordPress Coding Standards 5 | # https://make.wordpress.org/core/handbook/coding-standards/ 6 | 7 | root = true 8 | 9 | [*] 10 | charset = utf-8 11 | end_of_line = lf 12 | indent_size = 4 13 | tab_width = 4 14 | indent_style = tab 15 | insert_final_newline = true 16 | trim_trailing_whitespace = true 17 | 18 | [*.txt] 19 | trim_trailing_whitespace = false 20 | 21 | [*.{md,json,yml}] 22 | trim_trailing_whitespace = false 23 | indent_style = space 24 | indent_size = 2 25 | 26 | [*.json] 27 | indent_style = tab 28 | -------------------------------------------------------------------------------- /src/free-trial/tax/components/connect.tsx: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import { recordEvent } from '@woocommerce/tracks'; 5 | 6 | /** 7 | * Internal dependencies 8 | */ 9 | import { default as ConnectForm } from './connect-form'; 10 | 11 | type ConnectProps = { 12 | onConnect: () => void; 13 | }; 14 | 15 | export const Connect: React.FC< ConnectProps > = ( { onConnect } ) => { 16 | return ( 17 | { 19 | recordEvent( 'tasklist_shipping_recommendation_connect_store', { 20 | connect: true, 21 | } ); 22 | onConnect?.(); 23 | } } 24 | /> 25 | ); 26 | }; 27 | -------------------------------------------------------------------------------- /src/utils/escape.js: -------------------------------------------------------------------------------- 1 | export default function escape( s ) { 2 | return ( '' + s ) /* Forces the conversion to string. */ 3 | .replace( /\\/g, '\\\\' ) /* This MUST be the 1st replacement. */ 4 | .replace( /\t/g, '\\t' ) /* These 2 replacements protect whitespaces. */ 5 | .replace( /\n/g, '\\n' ) 6 | .replace( 7 | /\u00A0/g, 8 | '\\u00A0' 9 | ) /* Useful but not absolutely necessary. */ 10 | .replace( 11 | /&/g, 12 | '\\x26' 13 | ) /* These 5 replacements protect from HTML/XML. */ 14 | .replace( /'/g, '\\x27' ) 15 | .replace( /"/g, '\\x22' ) 16 | .replace( //g, '\\x3E' ); 18 | } 19 | -------------------------------------------------------------------------------- /assets/images/icon-flag.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/launch-store/images/card_icon.js: -------------------------------------------------------------------------------- 1 | export default () => ( 2 | /* eslint-disable */ 3 | 10 | 16 | 17 | /* eslint-enable */ 18 | ); 19 | -------------------------------------------------------------------------------- /.github/workflows/check-bundle-size.yml: -------------------------------------------------------------------------------- 1 | name: Bundle Size 2 | 3 | on: 4 | workflow_call: 5 | 6 | jobs: 7 | build-and-size: 8 | name: Bundle Size 9 | runs-on: ubuntu-latest 10 | 11 | steps: 12 | - uses: actions/checkout@v3 13 | with: 14 | fetch-depth: 1 15 | - uses: actions/setup-node@v3 16 | with: 17 | node-version-file: '.nvmrc' 18 | - uses: preactjs/compressed-size-action@v2 19 | with: 20 | repo-token: '${{ secrets.GITHUB_TOKEN }}' 21 | pattern: "./build/*.{js,css}" 22 | build-script: "build" 23 | -------------------------------------------------------------------------------- /src/homescreen-banner/style.scss: -------------------------------------------------------------------------------- 1 | .wc-calypso-bridge-woocommerce-admin-homescreen-banner { 2 | display: flex; 3 | flex-direction: row; 4 | align-items: center; 5 | min-height: 65px; 6 | } 7 | 8 | .wc-calypso-bridge-woocommerce-admin-homescreen-banner__text { 9 | margin-left: 20px; 10 | margin-right: 64px; 11 | } 12 | 13 | .wc-calypso-bridge-woocommerce-admin-homescreen-banner__learn-more-button { 14 | margin-left: auto; 15 | } 16 | 17 | .woocommerce-homescreen__header.woocommerce-homescreen:not(.woocommerce-homescreen-column) { 18 | margin-bottom: 32px; 19 | } 20 | 21 | button.wc-calypso-bridge-woocommerce-admin-homescreen-banner__dismiss-button { 22 | margin: 16px; 23 | } -------------------------------------------------------------------------------- /src/task-fills/appearance.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import React from 'react'; 5 | import { WooOnboardingTaskListItem } from '@woocommerce/onboarding'; 6 | 7 | /** 8 | * Internal dependencies 9 | */ 10 | import { useAppearanceClick } from '../utils/hooks/use-appearance-click'; 11 | 12 | export const AppearanceFill = () => { 13 | const { onClick } = useAppearanceClick(); 14 | return ( 15 | 16 | { ( { defaultTaskItem: DefaultTaskItem } ) => ( 17 | 21 | ) } 22 | 23 | ); 24 | }; 25 | -------------------------------------------------------------------------------- /src/task-completion/fill.tsx: -------------------------------------------------------------------------------- 1 | // eslint-disable-next-line @typescript-eslint/ban-ts-comment 2 | // @ts-nocheck 3 | /** 4 | * External dependencies 5 | */ 6 | import { Fill } from '@wordpress/components'; 7 | /** 8 | * Internal dependencies 9 | */ 10 | import { TaskListCompletedHeader } from './index'; 11 | 12 | export const TaskListCompletedHeaderFill = () => ( 13 | 14 | { ( { hideTasks, keepTasks, customerEffortScore } ) => { 15 | return ( 16 | 21 | ); 22 | } } 23 | 24 | ); 25 | -------------------------------------------------------------------------------- /assets/scripts/frontend-banner-tracks.js: -------------------------------------------------------------------------------- 1 | document.addEventListener( 'DOMContentLoaded', function () { 2 | // Prefer wc.tracks.recordEvent since it supports debugging. 3 | let recordEvent = null; 4 | if ( window.wc && window.wc.tracks && window.wc.tracks.recordEvent ) { 5 | recordEvent = window.wc.tracks.recordEvent; 6 | } else if ( window.wcTracks && window.wcTracks.recordEvent ) { 7 | recordEvent = window.wcTracks.recordEvent; 8 | } else { 9 | recordEvent = function () {}; 10 | } 11 | 12 | const el = document.getElementById( 'banner_button' ); 13 | if ( el ) { 14 | el.addEventListener( 'click', function () { 15 | recordEvent( 'free_trial_upgrade_now', { 16 | source: 'frontend_banner', 17 | } ); 18 | } ); 19 | } 20 | } ); 21 | -------------------------------------------------------------------------------- /src/disabled-tasks/style.scss: -------------------------------------------------------------------------------- 1 | .free-trial-disabled-tasks { 2 | li { 3 | &:first-child { 4 | grid-template-columns: 95% auto !important; 5 | box-shadow: none !important; 6 | p { 7 | padding: 0px; 8 | } 9 | color: var(--wp-admin-theme-color); 10 | } 11 | } 12 | 13 | .woocommerce-experimental-list-wrapper { 14 | border-top: none; 15 | } 16 | 17 | .free-trial-disabled-tasks-content { 18 | font-size: 13px; 19 | padding: 24px; 20 | color: #1e1e1e; 21 | p { 22 | padding: 0; 23 | margin: 0; 24 | } 25 | p.disabled-task { 26 | background: #f0f0f080; 27 | padding: 16px; 28 | margin-bottom: 8px; 29 | color: #949494; 30 | } 31 | a.components-button { 32 | margin: 12px 0 24px 0; 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /store-on-wpcom/assets/css/masterbar.css: -------------------------------------------------------------------------------- 1 | #wpadminbar li.menupop > .ab-sub-wrapper li#wp-admin-bar-store { 2 | background-image: url( "data:image/svg+xml,%3Csvg%20class%3D%22gridicon%20gridicons-cart%22%20height%3D%2224%22%20width%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cg%3E%3Cpath%20fill%3D%22%2387a6bc%22%20d%3D%22M9%2020c0%201.1-.9%202-2%202s-1.99-.9-1.99-2S5.9%2018%207%2018s2%20.9%202%202zm8-2c-1.1%200-1.99.9-1.99%202s.89%202%201.99%202%202-.9%202-2-.9-2-2-2zm.396-5c.937%200%201.75-.65%201.952-1.566L21%205H7V4c0-1.105-.895-2-2-2H3v2h2v11c0%201.105.895%202%202%202h12c0-1.105-.895-2-2-2H7v-2h10.396z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E" ); 3 | background-repeat: no-repeat; 4 | background-position: 21px 12px; 5 | } 6 | -------------------------------------------------------------------------------- /src/payments-welcome/banner.tsx: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import { Card, CardBody } from '@wordpress/components'; 5 | 6 | /** 7 | * Internal dependencies 8 | */ 9 | import strings from './strings'; 10 | 11 | const Banner = () => { 12 | return ( 13 | 14 | 15 |
16 |

17 | 18 | { strings.limitedTimeOffer }: { strings.bannerCopy } 19 |

20 |

{ strings.discountCopy }

21 |
22 | { /*

{strings.bannerHeading}

*/ } 23 |
24 |
25 | ); 26 | }; 27 | 28 | export default Banner; 29 | -------------------------------------------------------------------------------- /src/launch-store/images/lock.js: -------------------------------------------------------------------------------- 1 | export default () => ( 2 | /* eslint-disable */ 3 | 10 | 16 | 17 | /* eslint-enable */ 18 | ); 19 | -------------------------------------------------------------------------------- /src/homescreen-progress-header/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import { Fill } from '@wordpress/components'; 5 | 6 | /** 7 | * Internal dependencies 8 | */ 9 | import { ProgressHeader } from './progress-header'; 10 | import { ProgressTitle } from './progress-title'; 11 | import './style.scss'; 12 | 13 | export const ProgressHeaderFill = () => ( 14 | 15 | { ( { taskListId } ) => { 16 | return ; 17 | } } 18 | 19 | ); 20 | 21 | export const ProgressTitleFill = () => ( 22 | 23 | { ( { taskListId } ) => { 24 | return ; 25 | } } 26 | 27 | ); 28 | -------------------------------------------------------------------------------- /assets/fonts/WCPay.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Generated by IcoMoon 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/payment-gateway-suggestions/components/Setup/Placeholder.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import classnames from 'classnames'; 5 | import { Card, CardBody } from '@wordpress/components'; 6 | import { Stepper } from '@woocommerce/components'; 7 | 8 | export const Placeholder = () => { 9 | const classes = classnames( 10 | 'is-loading', 11 | 'woocommerce-task-payment-method', 12 | 'woocommerce-task-card' 13 | ); 14 | 15 | return ( 16 | 34 | ); 35 | }; 36 | -------------------------------------------------------------------------------- /jest-unit.config.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External packages 3 | */ 4 | const path = require( 'path' ); 5 | 6 | module.exports = { 7 | preset: '@wordpress/jest-preset-default', 8 | moduleNameMapper: { 9 | '@woocommerce/settings': path.resolve( 10 | __dirname, 11 | 'tests/mocks/woocommerce-settings' 12 | ), 13 | '\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': 14 | path.resolve( __dirname, 'tests/mocks/static' ), 15 | }, 16 | restoreMocks: true, 17 | setupFiles: [ 18 | path.resolve( __dirname, 'tests/setup/setup-window-globals.js' ), 19 | path.resolve( __dirname, 'tests/setup/setup-globals.js' ), 20 | ], 21 | setupFilesAfterEnv: [ 22 | path.resolve( __dirname, 'tests/setup/setup-react-testing-library.js' ), 23 | ], 24 | transformIgnorePatterns: [ 'node_modules/(?!is-plain-obj)', '/build/' ], 25 | }; 26 | -------------------------------------------------------------------------------- /store-on-wpcom/inc/wc-calypso-bridge-cheque-defaults.php: -------------------------------------------------------------------------------- 1 | { 2 | const errorWrapper = 3 | ( fn ) => 4 | ( ...args ) => { 5 | try { 6 | return fn( ...args ); 7 | } catch ( e ) { 8 | /* eslint-disable no-console */ 9 | console.warn( 10 | `Error encountered when attempting to use localStorage: `, 11 | e.message 12 | ); 13 | 14 | return null; 15 | } 16 | }; 17 | 18 | const storage = { 19 | set: errorWrapper( ( query ) => { 20 | window.localStorage.setItem( storageId, JSON.stringify( query ) ); 21 | } ), 22 | 23 | get: errorWrapper( () => { 24 | const val = JSON.parse( window.localStorage.getItem( storageId ) ); 25 | return typeof val === 'boolean' || val ? val : defaultValue; 26 | } ), 27 | 28 | reset: () => { 29 | storage.set( defaultValue ); 30 | }, 31 | }; 32 | 33 | return storage; 34 | }; 35 | -------------------------------------------------------------------------------- /src/payment-gateway-suggestions/components/WCPay/suggestion.scss: -------------------------------------------------------------------------------- 1 | .woocommerce-wcpay-suggestion { 2 | .woocommerce-recommended-payments-banner { 3 | min-width: 100%; 4 | margin-bottom: 24px; 5 | 6 | .woocommerce-recommended-payments-banner__body { 7 | padding: 30px 0 0 40px; 8 | justify-content: space-between; 9 | } 10 | 11 | .woocommerce-recommended-payments-banner__text_container { 12 | width: 305px; 13 | margin-left: 0; 14 | } 15 | 16 | .woocommerce-recommended-payments-banner__footer { 17 | flex-direction: column; 18 | align-items: flex-start; 19 | padding: 20px 38.2px 30px 40px; 20 | } 21 | 22 | .woocommerce-recommended-payments-banner__footer_icon_container { 23 | margin-top: 12px; 24 | margin-left: -5px; 25 | 26 | > svg { 27 | width: 38px; 28 | height: 24px; 29 | margin-right: 8px; 30 | } 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/task-headers/assets/images/timer.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.github/workflows/setup-node.yml: -------------------------------------------------------------------------------- 1 | name: Setup NodeJS and Dependencies 2 | 3 | on: 4 | workflow_call: 5 | 6 | jobs: 7 | setup: 8 | name: Setup 9 | runs-on: ubuntu-latest 10 | steps: 11 | - uses: actions/checkout@v3 12 | 13 | - name: Cache node_modules 14 | id: cache-node-modules 15 | uses: actions/cache@v3 16 | env: 17 | cache-name: cache-node-modules 18 | with: 19 | path: node_modules 20 | key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} 21 | 22 | - name: Setup node version and npm cache 23 | uses: actions/setup-node@v3 24 | with: 25 | node-version-file: '.nvmrc' 26 | cache: 'npm' 27 | 28 | - name: Install Node Dependencies 29 | if: steps.cache-node-modules.outputs.cache-hit != 'true' 30 | run: npm ci --no-optional 31 | -------------------------------------------------------------------------------- /src/free-trial/tax/woocommerce-tax/automated-taxes.tsx: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import { __ } from '@wordpress/i18n'; 5 | import { Button } from '@wordpress/components'; 6 | import { recordEvent } from '@woocommerce/tracks'; 7 | 8 | /** 9 | * Internal dependencies 10 | */ 11 | import { SetupStepProps } from './setup'; 12 | 13 | export const AutomatedTaxes: React.FC< 14 | Pick< 15 | SetupStepProps, 16 | 'isPending' | 'onAutomate' | 'onManual' | 'onDisable' 17 | > 18 | > = ( { isPending, onAutomate } ) => { 19 | return ( 20 |
21 | 33 |
34 | ); 35 | }; 36 | -------------------------------------------------------------------------------- /src/free-trial/tax/components/partner-card.scss: -------------------------------------------------------------------------------- 1 | .woocommerce-tax-partner-card { 2 | border: 1px solid $gray-300; 3 | border-radius: 3px; 4 | margin: 0 $gap-smaller $gap $gap-smaller; 5 | padding: 20px; 6 | display: flex; 7 | flex-direction: column; 8 | 9 | a { 10 | text-decoration: none; 11 | } 12 | } 13 | 14 | .woocommerce-tax-partner-card__logo { 15 | margin-bottom: $gap-smaller; 16 | img { 17 | max-height: 35px; 18 | } 19 | } 20 | 21 | .woocommerce-tax-partner-card__description { 22 | color: $gray-700; 23 | } 24 | 25 | .woocommerce-tax-partner-card__benefits { 26 | color: $gray-900; 27 | list-style: none; 28 | li { 29 | margin-bottom: $gap-smaller; 30 | display: flex; 31 | 32 | svg { 33 | margin-right: 10px; 34 | } 35 | } 36 | } 37 | 38 | .woocommerce-tax-partner-card__action { 39 | margin-top: auto; 40 | } 41 | 42 | .woocommerce-tax-partner-card__terms { 43 | color: $gray-600; 44 | font-size: 9px; 45 | margin-bottom: $gap-smaller; 46 | } 47 | 48 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "outDir": "./build/", 4 | // Target latest version of ECMAScript. 5 | "target": "esnext", 6 | // Search under node_modules for non-relative imports. 7 | "moduleResolution": "node", 8 | // Process & infer types from .js files. 9 | "allowJs": true, 10 | "jsx": "preserve", 11 | // Don't emit; allow Babel to transform files. 12 | "noEmit": true, 13 | // Enable strictest settings like strictNullChecks & noImplicitAny. 14 | "strict": true, 15 | // Import non-ES modules as default imports. 16 | "esModuleInterop": true, 17 | "skipLibCheck": false, 18 | "module": "esnext", 19 | "baseUrl": "./", 20 | "paths": { 21 | "~/*": [ "src/*" ] 22 | }, 23 | "typeRoots": [ "./typings", "./node_modules/@types" ], 24 | }, 25 | "exclude": [ 26 | "node_modules", 27 | "**/build", 28 | "**/jest.config.js", 29 | "**/jest-preset.js", 30 | "**/webpack.*.js", 31 | "**/babel.config.js" 32 | ], 33 | "include": [ "typings/**/*", "src/**/*" ] 34 | } 35 | -------------------------------------------------------------------------------- /src/payment-gateway-suggestions/components/Toggle/Toggle.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import { Button } from '@wordpress/components'; 5 | import ChevronUpIcon from 'gridicons/dist/chevron-up'; 6 | import ChevronDownIcon from 'gridicons/dist/chevron-down'; 7 | import { useState } from '@wordpress/element'; 8 | 9 | /** 10 | * Internal dependencies 11 | */ 12 | import './Toggle.scss'; 13 | 14 | export const Toggle = ( { children, heading, onToggle } ) => { 15 | const [ isShow, setIsShow ] = useState( false ); 16 | const onClick = () => { 17 | onToggle( isShow ); 18 | setIsShow( ! isShow ); 19 | }; 20 | 21 | return ( 22 |
23 | 37 | { isShow ? children : null } 38 |
39 | ); 40 | }; 41 | -------------------------------------------------------------------------------- /src/free-trial/tax/woocommerce-tax/setup.scss: -------------------------------------------------------------------------------- 1 | .woocommerce-task-tax__automated-tax-control { 2 | display: flex; 3 | align-items: center; 4 | margin-top: $gap; 5 | 6 | i { 7 | margin-left: $gap; 8 | margin-right: $gap-large; 9 | } 10 | 11 | .woocommerce-task-tax__automated-tax-control-inner { 12 | border-top: 1px solid $studio-gray-5; 13 | display: flex; 14 | align-items: center; 15 | flex: 1; 16 | font-size: 16px; 17 | padding-top: $gap; 18 | padding-bottom: $gap; 19 | } 20 | 21 | .components-form-toggle { 22 | margin-left: auto; 23 | } 24 | } 25 | 26 | .woocommerce-task-tax__success { 27 | display: flex; 28 | flex-direction: column; 29 | align-items: center; 30 | padding: $gap-largest; 31 | text-align: center; 32 | 33 | .woocommerce-task-tax__success-icon { 34 | font-size: 48px; 35 | height: 48px; 36 | align-items: center; 37 | display: flex; 38 | } 39 | 40 | #woocommerce-task-tax__success-message { 41 | font-size: 32px; 42 | font-weight: 400; 43 | } 44 | 45 | p { 46 | margin-top: 0; 47 | font-size: 16px; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /src/launch-store/images/products_icon.js: -------------------------------------------------------------------------------- 1 | export default () => ( 2 | /* eslint-disable */ 3 | 10 | 16 | 17 | /* eslint-enable */ 18 | ); 19 | -------------------------------------------------------------------------------- /assets/css/free-trial-plan-picker-banner.css: -------------------------------------------------------------------------------- 1 | #free-trial-plan-picker-banner { 2 | background-color: #c9356e; 3 | color: #ffffff; 4 | font-size: 0.8125em; 5 | position: sticky; 6 | z-index: 99999; 7 | padding: 5px; 8 | text-align: center; 9 | top: calc( var( --wp-admin--admin-bar--height, 0px ) ) !important; 10 | } 11 | 12 | #free-trial-plan-picker-banner a { 13 | color: #ffffff !important; 14 | text-decoration: underline; 15 | } 16 | 17 | /** 18 | * Store notice can be at the top or bottom depending on the activated theme. 19 | * Force it to be at the bottom all the time to place the free trial banner at the top. 20 | */ 21 | body.has-free-trial-plan-picker .woocommerce-store-notice { 22 | top: auto !important; 23 | } 24 | 25 | @media screen and (max-width: 782px) { 26 | html { 27 | --wp-admin--admin-bar--height: 46px !important; 28 | } 29 | } 30 | 31 | @media screen and (max-width: 480px) { 32 | #free-trial-plan-picker-banner { 33 | position: inherit; 34 | } 35 | } 36 | 37 | body.hide-free-trial-plan-picker #free-trial-plan-picker-banner { 38 | display: none; 39 | } -------------------------------------------------------------------------------- /src/stylesheets/_variables.scss: -------------------------------------------------------------------------------- 1 | @import '@automattic/color-studio/dist/color-variables.scss'; 2 | @import '@wordpress/base-styles/colors.scss'; 3 | 4 | // Think very carefully before adding a new breakpoint. 5 | // The list below is based on wp-admin's main breakpoints 6 | // See https://github.com/WordPress/gutenberg/tree/master/packages/viewport#usage 7 | $breakpoints: 480px, 600px, 782px, 960px, 1280px, 1440px; 8 | $grid-unit: 8px; 9 | $grid-unit-50: 5 * $grid-unit; // 40px 10 | $grid-unit-20: 2 * $grid-unit; // 16px 11 | $grid-unit-30: 3 * $grid-unit; // 24px 12 | $grid-unit-10: 1 * $grid-unit; // 8px 13 | $grid-unit-15: 1.5 * $grid-unit; // 12px 14 | $grid-unit-05: 0.5 * $grid-unit; // 4px 15 | $gap-largest: $grid-unit-50; 16 | $gap-larger: 4.5 * $grid-unit; 17 | $gap-large: $grid-unit-30; 18 | $gap: $grid-unit-20; 19 | $gap-small: $grid-unit-15; 20 | $gap-smaller: $grid-unit-10; 21 | $gap-smallest: $grid-unit-05; 22 | 23 | $studio-gray-60: #50575e; 24 | $studio-gray-80: #2c3338; 25 | $gray-700: #757575; // Meets 4.6:1 text contrast against white. 26 | $studio-gray-5: #dcdcde; 27 | $studio-gray-90: #1d2327; 28 | $studio-gray-50: #646970; 29 | -------------------------------------------------------------------------------- /src/free-trial/tax/woocommerce-tax/connect.tsx: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import { __ } from '@wordpress/i18n'; 5 | import { recordEvent, queueRecordEvent } from '@woocommerce/tracks'; 6 | 7 | /** 8 | * Internal dependencies 9 | */ 10 | import { default as ConnectForm } from '../components/connect-form'; 11 | import { SetupStepProps } from './setup'; 12 | 13 | export const Connect: React.FC< SetupStepProps > = ( { 14 | onDisable, 15 | onManual, 16 | } ) => { 17 | return ( 18 | { 21 | recordEvent( 'tasklist_tax_connect_store', { 22 | connect: true, 23 | no_tax: false, 24 | } ); 25 | } } 26 | onSkip={ () => { 27 | queueRecordEvent( 'tasklist_tax_connect_store', { 28 | connect: false, 29 | no_tax: false, 30 | } ); 31 | onManual(); 32 | } } 33 | skipText={ __( 'Set up tax rates manually', 'woocommerce' ) } 34 | onAbort={ () => onDisable() } 35 | abortText={ __( 36 | "My business doesn't charge sales tax", 37 | 'woocommerce' 38 | ) } 39 | /> 40 | ); 41 | }; 42 | -------------------------------------------------------------------------------- /src/homescreen-progress-header/task-list-menu.tsx: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import { __ } from '@wordpress/i18n'; 5 | import { Button } from '@wordpress/components'; 6 | import { EllipsisMenu } from '@woocommerce/components'; 7 | import { ONBOARDING_STORE_NAME } from '@woocommerce/data'; 8 | import { useDispatch } from '@wordpress/data'; 9 | 10 | export type TaskListMenuProps = { 11 | id: string; 12 | hideTaskListText?: string; 13 | }; 14 | 15 | export const TaskListMenu: React.FC< TaskListMenuProps > = ( { 16 | id, 17 | hideTaskListText, 18 | } ) => { 19 | const { hideTaskList } = useDispatch( ONBOARDING_STORE_NAME ); 20 | 21 | return ( 22 |
23 | ( 26 |
27 | 31 |
32 | ) } 33 | /> 34 |
35 | ); 36 | }; 37 | -------------------------------------------------------------------------------- /assets/css/free-trial-admin.css: -------------------------------------------------------------------------------- 1 | .wc-calypso-notice { 2 | background: #fff; 3 | border: 1px solid #c3c4c7; 4 | border-left-width: 4px; 5 | box-shadow: 0 1px 1px rgb( 0 0 0 / 4% ); 6 | border-left-color: var( --wp-admin-theme-color ); 7 | padding: 12px 16px; 8 | margin: 0 0 24px 0; 9 | } 10 | 11 | .wc-calypso-notice a { 12 | color: #007cba; 13 | } 14 | 15 | .free-trial-orders-notice { 16 | padding: 12px !important; 17 | display: flex; 18 | border-left-color: var( --wp-admin-theme-color ); 19 | } 20 | 21 | .free-trial-orders-notice h3 { 22 | font-weight: 600; 23 | line-height: 20px; 24 | font-size: 14px; 25 | color: #3c434a; 26 | margin: 0; 27 | } 28 | 29 | .free-trial-orders-notice p { 30 | padding: 3px 0 3px 0; 31 | margin: 0px; 32 | } 33 | 34 | .free-trial-orders-notice .upgrade-action { 35 | display: flex; 36 | flex: 1; 37 | align-items: center; 38 | justify-content: end; 39 | } 40 | 41 | .woocommerce-task-list__setup 42 | .woocommerce-experimental-list 43 | .woocommerce-experimental-list__item.complete { 44 | color: var( --wp-admin-theme-color ); 45 | } 46 | 47 | .woocommerce-task-tax__success { 48 | flex-direction: row !important; 49 | padding: 0 !important; 50 | } -------------------------------------------------------------------------------- /src/payments-welcome/tracks.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import domReady from '@wordpress/dom-ready'; 5 | 6 | /** 7 | * Checks if site tracking is enabled. 8 | * 9 | * @return {boolean} True if site tracking is enabled. 10 | */ 11 | function isEnabled() { 12 | return window.wcTracks.isEnabled; 13 | } 14 | 15 | /** 16 | * Records site event. 17 | * 18 | * @param {string} eventName Name of the event. 19 | * @param {Object?} eventProperties Event properties. 20 | */ 21 | function recordEvent( eventName: string, eventProperties?: object ) { 22 | // Wc-admin track script is enqueued after ours, wrap in domReady 23 | // to make sure we're not too early. 24 | domReady( () => { 25 | const recordFunction = 26 | window.wc?.tracks?.recordEvent ?? window.wcTracks.recordEvent; 27 | recordFunction( eventName, eventProperties ); 28 | } ); 29 | } 30 | 31 | const events = { 32 | CONNECT_ACCOUNT_CLICKED: 'wcpay_connect_account_clicked', 33 | CONNECT_ACCOUNT_LEARN_MORE: 'wcpay_welcome_learn_more', 34 | CONNECT_ACCOUNT_VIEW: 'page_view', 35 | SURVEY_FEEDBACK: 'wcpay_exit_survey', 36 | }; 37 | 38 | export default { 39 | isEnabled, 40 | recordEvent, 41 | events, 42 | }; 43 | -------------------------------------------------------------------------------- /src/wc-navigation-root-url.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import { addFilter } from '@wordpress/hooks'; 5 | 6 | /** 7 | * Internal dependencies 8 | */ 9 | import storage from './utils/storage'; 10 | 11 | const LOCAL_STORAGE_PROP = 'wc_nav_root_url_referrer'; 12 | 13 | const rootUrlStorage = storage( LOCAL_STORAGE_PROP, null ); 14 | 15 | const getRedirectUrl = ( homeUrl ) => { 16 | const protocolRegex = /.*?:\/\//i; 17 | const slug = homeUrl.replace( protocolRegex, '' ).replace( '/', '::' ); 18 | 19 | return `https://wordpress.com/home/${ slug }`; 20 | }; 21 | 22 | export default () => { 23 | const { isWooPage, homeUrl } = window.wcCalypsoBridge; 24 | const fromCalypso = 25 | document.referrer.indexOf( 'https://wordpress.com' ) === 0; 26 | 27 | if ( fromCalypso ) { 28 | rootUrlStorage.set( 'calypso' ); 29 | } else if ( ! isWooPage ) { 30 | rootUrlStorage.set( 'wcadmin' ); 31 | } 32 | 33 | // Only continue to add filter if referred by Calypso 34 | if ( rootUrlStorage.get() !== 'calypso' ) { 35 | return; 36 | } 37 | 38 | addFilter( 39 | 'woocommerce_navigation_root_back_url', 40 | 'wc-calypso-bridge', 41 | () => getRedirectUrl( homeUrl ) 42 | ); 43 | }; 44 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: [ 'plugin:@woocommerce/eslint-plugin/recommended' ], 3 | overrides: [ 4 | { 5 | files: [ '**/*.js', '**/*.jsx', '**/*.ts', '**/*.tsx' ], 6 | rules: { 7 | 'react/react-in-jsx-scope': 'off', 8 | '@wordpress/i18n-text-domain': [ 9 | 'error', 10 | { 11 | allowedTextDomain: [ 12 | 'wc-calypso-bridge', 13 | 'woocommerce', 14 | ], 15 | }, 16 | ], 17 | }, 18 | }, 19 | ], 20 | settings: { 21 | 'import/core-modules': [ 22 | '@woocommerce/admin-layout', 23 | '@woocommerce/block-templates', 24 | '@woocommerce/components', 25 | '@woocommerce/customer-effort-score', 26 | '@woocommerce/currency', 27 | '@woocommerce/data', 28 | '@woocommerce/experimental', 29 | '@woocommerce/expression-evaluation', 30 | '@woocommerce/navigation', 31 | '@woocommerce/number', 32 | '@woocommerce/settings', 33 | '@woocommerce/tracks', 34 | '@testing-library/react', 35 | 'react', 36 | 'react-router-dom', 37 | 'prop-types', 38 | 'lodash', 39 | ], 40 | 'import/resolver': { 41 | node: { 42 | extensions: [ '.js', '.jsx', '.ts', '.tsx' ], 43 | }, 44 | }, 45 | }, 46 | }; 47 | -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-id_ID-beb9e19fb5e7cb316b39d09ff6ca8bdf.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2025-03-25 09:54:03+0000","generator":"WP-CLI\/2.10.0","source":"build\/53.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"id","plural-forms":"nplurals=2; plural=n > 1;"},"Payment illustration":["Ilustrasi pembayaran"],"By clicking \"Test payments\", you agree to the {{tosLink}}Terms of Service{{\/tosLink}}":["Dengan mengeklik \"Uji pembayaran,\" Anda setuju dengan {{tosLink}}Ketentuan Layanan{{\/tosLink}}"],"Power your payments with a simple, all-in-one option. Verify your business details to start testing transactions with WooCommerce Payments.":["Perkuat sistem pembayaran Anda dengan pilihan lengkap dan mudah. Periksa detail bisnis Anda untuk mulai menguji transaksi dengan WooCommerce Payments."],"Test payments":["Uji pembayaran"],"Give your customers an easy and convenient way to pay! Set up and test some of our fast and secure online or in person payment methods.":["Hadirkan metode pembayaran yang praktis dan mudah untuk pelanggan! Siapkan dan uji beberapa metode pembayaran langsung atau online yang cepat dan aman."],"It\u2019s time to test payments":["Kini saatnya menguji pembayaran"]}}} -------------------------------------------------------------------------------- /src/payment-gateway-suggestions/components/List/List.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import { Card, CardHeader, CardFooter } from '@wordpress/components'; 5 | 6 | /** 7 | * Internal dependencies 8 | */ 9 | import { Item } from './Item'; 10 | 11 | import './List.scss'; 12 | 13 | export const List = ( { 14 | heading, 15 | headingDescription, 16 | markConfigured, 17 | recommendation, 18 | paymentGateways, 19 | footerLink, 20 | } ) => { 21 | return ( 22 | 23 | { heading && ( 24 | 25 | { heading } 26 | { headingDescription && ( 27 |

28 | { headingDescription } 29 |

30 | ) } 31 |
32 | ) } 33 | { paymentGateways.map( ( paymentGateway ) => { 34 | const { id } = paymentGateway; 35 | return ( 36 | 42 | ); 43 | } ) } 44 | { footerLink && ( 45 | { footerLink } 46 | ) } 47 |
48 | ); 49 | }; 50 | -------------------------------------------------------------------------------- /src/utils/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import { dispatch } from '@wordpress/data'; 5 | 6 | /** 7 | * Gets the country code from a country:state value string. 8 | * 9 | * @param {string} countryState Country state string, e.g. US:GA. 10 | * @return {string} Country string. 11 | */ 12 | export function getCountryCode( countryState = '' ) { 13 | if ( ! countryState ) { 14 | return null; 15 | } 16 | 17 | return countryState.split( ':' )[ 0 ]; 18 | } 19 | 20 | export function createNoticesFromResponse( response ) { 21 | const { createNotice } = dispatch( 'core/notices' ); 22 | 23 | if ( 24 | response.error_data && 25 | response.errors && 26 | Object.keys( response.errors ).length 27 | ) { 28 | // Loop over multi-error responses. 29 | Object.keys( response.errors ).forEach( ( errorKey ) => { 30 | createNotice( 'error', response.errors[ errorKey ].join( ' ' ) ); 31 | } ); 32 | } else if ( response.message ) { 33 | // Handle generic messages. 34 | createNotice( response.code ? 'error' : 'success', response.message ); 35 | } 36 | } 37 | 38 | export const getUpgradePlanLink = () => { 39 | return `https://wordpress.com/plans/${ window.wcCalypsoBridge.siteSlug }`; 40 | }; 41 | -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-es_ES-beb9e19fb5e7cb316b39d09ff6ca8bdf.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2025-03-19 15:54:03+0000","generator":"WP-CLI\/2.10.0","source":"build\/53.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"es","plural-forms":"nplurals=2; plural=n != 1;"},"Payment illustration":["Ejemplo de pago"],"By clicking \"Test payments\", you agree to the {{tosLink}}Terms of Service{{\/tosLink}}":["Al hacer clic en \"Pagos de prueba\", aceptas las {{tosLink}}Condiciones del servicio{{\/tosLink}}"],"Power your payments with a simple, all-in-one option. Verify your business details to start testing transactions with WooCommerce Payments.":["Mejora los pagos con una opci\u00f3n sencilla e integral. Verifica los detalles de tu negocio para empezar a probar transacciones con WooCommerce Payments."],"Test payments":["Pagos de prueba"],"Give your customers an easy and convenient way to pay! Set up and test some of our fast and secure online or in person payment methods.":["Ofrece a tus clientes una manera de pagar f\u00e1cil y c\u00f3moda. Configura y prueba algunos de nuestros m\u00e9todos de pago en l\u00ednea o en persona r\u00e1pidos y seguros."],"It\u2019s time to test payments":["Es hora de probar los pagos"]}}} -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-id_ID-ce1126179ccf98c51c6a61cf74680416.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2025-03-25 09:54:03+0000","generator":"WP-CLI\/2.10.0","source":"build\/src_free-trial_fills_index_ts.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"id","plural-forms":"nplurals=2; plural=n > 1;"},"Payment illustration":["Ilustrasi pembayaran"],"By clicking \"Test payments\", you agree to the {{tosLink}}Terms of Service{{\/tosLink}}":["Dengan mengeklik \"Uji pembayaran,\" Anda setuju dengan {{tosLink}}Ketentuan Layanan{{\/tosLink}}"],"Power your payments with a simple, all-in-one option. Verify your business details to start testing transactions with WooCommerce Payments.":["Perkuat sistem pembayaran Anda dengan pilihan lengkap dan mudah. Periksa detail bisnis Anda untuk mulai menguji transaksi dengan WooCommerce Payments."],"Test payments":["Uji pembayaran"],"Give your customers an easy and convenient way to pay! Set up and test some of our fast and secure online or in person payment methods.":["Hadirkan metode pembayaran yang praktis dan mudah untuk pelanggan! Siapkan dan uji beberapa metode pembayaran langsung atau online yang cepat dan aman."],"It\u2019s time to test payments":["Kini saatnya menguji pembayaran"]}}} -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-es_CL-beb9e19fb5e7cb316b39d09ff6ca8bdf.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2025-01-20 11:59:01+0000","generator":"WP-CLI\/2.10.0","source":"build\/53.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"es_CL","plural-forms":"nplurals=2; plural=n != 1;"},"Payment illustration":["Ejemplo de pago"],"By clicking \"Test payments\", you agree to the {{tosLink}}Terms of Service{{\/tosLink}}":["Al hacer clic en \"Pagos de prueba\", aceptas las {{tosLink}}Condiciones del servicio{{\/tosLink}}"],"Power your payments with a simple, all-in-one option. Verify your business details to start testing transactions with WooCommerce Payments.":["Mejora los pagos con una opci\u00f3n sencilla e integral. Verifica los detalles de tu negocio para empezar a probar transacciones con WooCommerce Payments."],"Test payments":["Pagos de prueba"],"Give your customers an easy and convenient way to pay! Set up and test some of our fast and secure online or in person payment methods.":["Ofrece a tus clientes una manera de pagar f\u00e1cil y c\u00f3moda. Configura y prueba algunos de nuestros m\u00e9todos de pago en l\u00ednea o en persona r\u00e1pidos y seguros."],"It\u2019s time to test payments":["Es hora de probar los pagos"]}}} -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-es_MX-beb9e19fb5e7cb316b39d09ff6ca8bdf.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2024-09-16 11:51:52+0000","generator":"WP-CLI\/2.10.0","source":"build\/53.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"es_MX","plural-forms":"nplurals=2; plural=n != 1;"},"Payment illustration":["Ejemplo de pago"],"By clicking \"Test payments\", you agree to the {{tosLink}}Terms of Service{{\/tosLink}}":["Al hacer clic en \"Pagos de prueba\", aceptas las {{tosLink}}Condiciones del servicio{{\/tosLink}}"],"Power your payments with a simple, all-in-one option. Verify your business details to start testing transactions with WooCommerce Payments.":["Mejora los pagos con una opci\u00f3n sencilla e integral. Verifica los detalles de tu negocio para empezar a probar transacciones con WooCommerce Payments."],"Test payments":["Pagos de prueba"],"Give your customers an easy and convenient way to pay! Set up and test some of our fast and secure online or in person payment methods.":["Ofrece a tus clientes una manera de pagar f\u00e1cil y c\u00f3moda. Configura y prueba algunos de nuestros m\u00e9todos de pago en l\u00ednea o en persona r\u00e1pidos y seguros."],"It\u2019s time to test payments":["Es hora de probar los pagos"]}}} -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-nl_NL-beb9e19fb5e7cb316b39d09ff6ca8bdf.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2025-03-19 13:54:03+0000","generator":"WP-CLI\/2.10.0","source":"build\/53.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"nl","plural-forms":"nplurals=2; plural=n != 1;"},"Payment illustration":["Afbeelding betaling"],"By clicking \"Test payments\", you agree to the {{tosLink}}Terms of Service{{\/tosLink}}":["Door op 'Betalingen testen' te klikken, ga je akkoord met onze {{tosLink}}Servicevoorwaarden{{\/tosLink}}"],"Power your payments with a simple, all-in-one option. Verify your business details to start testing transactions with WooCommerce Payments.":["Zet je betalingen kracht bij met een simpele alles-in-\u00e9\u00e9n optie. Verifieer je bedrijfsgegevens om te beginnen met transacties testen met WooCommerce Payments."],"Test payments":["Testbetalingen"],"Give your customers an easy and convenient way to pay! Set up and test some of our fast and secure online or in person payment methods.":["Bied je klanten een eenvoudige en handige betaalmethode! Stel een aantal van onze snelle en veilige online en fysieke betaalmethodes in en test ze."],"It\u2019s time to test payments":["Het is tijd om de betalingen te testen"]}}} -------------------------------------------------------------------------------- /store-on-wpcom/inc/wc-calypso-bridge-mailchimp-deactivate-hook.php: -------------------------------------------------------------------------------- 1 | prefix}queue", 27 | "{$wpdb->prefix}failed_jobs", 28 | "{$wpdb->prefix}mailchimp_carts", 29 | ); 30 | 31 | foreach ( (array) $mailchimp_tables as $table ) { 32 | if ( $wpdb->query( "TRUNCATE TABLE `$table`" ) ) { // WPCS: unprepared SQL ok. 33 | $log_message = "Plugin Deactivated: success clearing `$table` table."; 34 | } else { 35 | $log_message = "Plugin Deactivated: FAILURE clearing `$table` table."; 36 | } 37 | 38 | if ( $logger ) { 39 | $logger->add( 'mailchimp-for-woocommerce', $log_message ); 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-it_IT-beb9e19fb5e7cb316b39d09ff6ca8bdf.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2025-03-19 13:54:02+0000","generator":"WP-CLI\/2.10.0","source":"build\/53.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"it","plural-forms":"nplurals=2; plural=n != 1;"},"Payment illustration":["Illustrazione del pagamento"],"By clicking \"Test payments\", you agree to the {{tosLink}}Terms of Service{{\/tosLink}}":["Facendo clic su \"Test sui pagamenti\", accetti i nostri {{tosLink}}Termini di servizio{{\/tosLink}}."],"Power your payments with a simple, all-in-one option. Verify your business details to start testing transactions with WooCommerce Payments.":["Potenzia i tuoi pagamenti con una semplice opzione tutto in uno. Verifica i dettagli della tua attivit\u00e0 per iniziare a provare le transazioni con WooCommerce Payments."],"Test payments":["Test sui pagamenti"],"Give your customers an easy and convenient way to pay! Set up and test some of our fast and secure online or in person payment methods.":["Offri ai tuoi clienti un modo semplice e conveniente per pagare. Configura e prova alcuni dei nostri metodi di pagamento online o di persona, rapidi e sicuri."],"It\u2019s time to test payments":["\u00c8 tempo di provare i pagamenti"]}}} -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-es_CL-ce1126179ccf98c51c6a61cf74680416.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2025-01-20 11:59:01+0000","generator":"WP-CLI\/2.10.0","source":"build\/src_free-trial_fills_index_ts.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"es_CL","plural-forms":"nplurals=2; plural=n != 1;"},"Payment illustration":["Ejemplo de pago"],"By clicking \"Test payments\", you agree to the {{tosLink}}Terms of Service{{\/tosLink}}":["Al hacer clic en \"Pagos de prueba\", aceptas las {{tosLink}}Condiciones del servicio{{\/tosLink}}"],"Power your payments with a simple, all-in-one option. Verify your business details to start testing transactions with WooCommerce Payments.":["Mejora los pagos con una opci\u00f3n sencilla e integral. Verifica los detalles de tu negocio para empezar a probar transacciones con WooCommerce Payments."],"Test payments":["Pagos de prueba"],"Give your customers an easy and convenient way to pay! Set up and test some of our fast and secure online or in person payment methods.":["Ofrece a tus clientes una manera de pagar f\u00e1cil y c\u00f3moda. Configura y prueba algunos de nuestros m\u00e9todos de pago en l\u00ednea o en persona r\u00e1pidos y seguros."],"It\u2019s time to test payments":["Es hora de probar los pagos"]}}} -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-es_ES-ce1126179ccf98c51c6a61cf74680416.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2025-03-19 15:54:03+0000","generator":"WP-CLI\/2.10.0","source":"build\/src_free-trial_fills_index_ts.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"es","plural-forms":"nplurals=2; plural=n != 1;"},"Payment illustration":["Ejemplo de pago"],"By clicking \"Test payments\", you agree to the {{tosLink}}Terms of Service{{\/tosLink}}":["Al hacer clic en \"Pagos de prueba\", aceptas las {{tosLink}}Condiciones del servicio{{\/tosLink}}"],"Power your payments with a simple, all-in-one option. Verify your business details to start testing transactions with WooCommerce Payments.":["Mejora los pagos con una opci\u00f3n sencilla e integral. Verifica los detalles de tu negocio para empezar a probar transacciones con WooCommerce Payments."],"Test payments":["Pagos de prueba"],"Give your customers an easy and convenient way to pay! Set up and test some of our fast and secure online or in person payment methods.":["Ofrece a tus clientes una manera de pagar f\u00e1cil y c\u00f3moda. Configura y prueba algunos de nuestros m\u00e9todos de pago en l\u00ednea o en persona r\u00e1pidos y seguros."],"It\u2019s time to test payments":["Es hora de probar los pagos"]}}} -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-es_MX-ce1126179ccf98c51c6a61cf74680416.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2024-09-16 11:51:52+0000","generator":"WP-CLI\/2.10.0","source":"build\/src_free-trial_fills_index_ts.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"es_MX","plural-forms":"nplurals=2; plural=n != 1;"},"Payment illustration":["Ejemplo de pago"],"By clicking \"Test payments\", you agree to the {{tosLink}}Terms of Service{{\/tosLink}}":["Al hacer clic en \"Pagos de prueba\", aceptas las {{tosLink}}Condiciones del servicio{{\/tosLink}}"],"Power your payments with a simple, all-in-one option. Verify your business details to start testing transactions with WooCommerce Payments.":["Mejora los pagos con una opci\u00f3n sencilla e integral. Verifica los detalles de tu negocio para empezar a probar transacciones con WooCommerce Payments."],"Test payments":["Pagos de prueba"],"Give your customers an easy and convenient way to pay! Set up and test some of our fast and secure online or in person payment methods.":["Ofrece a tus clientes una manera de pagar f\u00e1cil y c\u00f3moda. Configura y prueba algunos de nuestros m\u00e9todos de pago en l\u00ednea o en persona r\u00e1pidos y seguros."],"It\u2019s time to test payments":["Es hora de probar los pagos"]}}} -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-nl_NL-ce1126179ccf98c51c6a61cf74680416.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2025-03-19 13:54:03+0000","generator":"WP-CLI\/2.10.0","source":"build\/src_free-trial_fills_index_ts.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"nl","plural-forms":"nplurals=2; plural=n != 1;"},"Payment illustration":["Afbeelding betaling"],"By clicking \"Test payments\", you agree to the {{tosLink}}Terms of Service{{\/tosLink}}":["Door op 'Betalingen testen' te klikken, ga je akkoord met onze {{tosLink}}Servicevoorwaarden{{\/tosLink}}"],"Power your payments with a simple, all-in-one option. Verify your business details to start testing transactions with WooCommerce Payments.":["Zet je betalingen kracht bij met een simpele alles-in-\u00e9\u00e9n optie. Verifieer je bedrijfsgegevens om te beginnen met transacties testen met WooCommerce Payments."],"Test payments":["Testbetalingen"],"Give your customers an easy and convenient way to pay! Set up and test some of our fast and secure online or in person payment methods.":["Bied je klanten een eenvoudige en handige betaalmethode! Stel een aantal van onze snelle en veilige online en fysieke betaalmethodes in en test ze."],"It\u2019s time to test payments":["Het is tijd om de betalingen te testen"]}}} -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-it_IT-ce1126179ccf98c51c6a61cf74680416.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2025-03-19 13:54:02+0000","generator":"WP-CLI\/2.10.0","source":"build\/src_free-trial_fills_index_ts.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"it","plural-forms":"nplurals=2; plural=n != 1;"},"Payment illustration":["Illustrazione del pagamento"],"By clicking \"Test payments\", you agree to the {{tosLink}}Terms of Service{{\/tosLink}}":["Facendo clic su \"Test sui pagamenti\", accetti i nostri {{tosLink}}Termini di servizio{{\/tosLink}}."],"Power your payments with a simple, all-in-one option. Verify your business details to start testing transactions with WooCommerce Payments.":["Potenzia i tuoi pagamenti con una semplice opzione tutto in uno. Verifica i dettagli della tua attivit\u00e0 per iniziare a provare le transazioni con WooCommerce Payments."],"Test payments":["Test sui pagamenti"],"Give your customers an easy and convenient way to pay! Set up and test some of our fast and secure online or in person payment methods.":["Offri ai tuoi clienti un modo semplice e conveniente per pagare. Configura e prova alcuni dei nostri metodi di pagamento online o di persona, rapidi e sicuri."],"It\u2019s time to test payments":["\u00c8 tempo di provare i pagamenti"]}}} -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-pt_BR-beb9e19fb5e7cb316b39d09ff6ca8bdf.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2025-03-18 17:54:03+0000","generator":"WP-CLI\/2.10.0","source":"build\/53.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"pt_BR","plural-forms":"nplurals=2; plural=(n > 1);"},"Payment illustration":["Ilustra\u00e7\u00e3o de pagamento"],"By clicking \"Test payments\", you agree to the {{tosLink}}Terms of Service{{\/tosLink}}":["Ao clicar em \"Testar pagamentos\", voc\u00ea concorda com os {{tosLink}}Termos de Servi\u00e7o{{\/tosLink}}."],"Power your payments with a simple, all-in-one option. Verify your business details to start testing transactions with WooCommerce Payments.":["Turbine seus pagamentos com uma op\u00e7\u00e3o simples e completa. Verifique os detalhes do seu neg\u00f3cio para come\u00e7ar a testar transa\u00e7\u00f5es com o WooCommerce Payments."],"Test payments":["Testar pagamentos"],"Give your customers an easy and convenient way to pay! Set up and test some of our fast and secure online or in person payment methods.":["Ofere\u00e7a aos seus clientes uma maneira f\u00e1cil e conveniente de pagar. Configure e teste algumas das nossas r\u00e1pidas e seguras formas de pagamento online ou presencial."],"It\u2019s time to test payments":["Chegou a hora de testar os pagamentos"]}}} -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-de_DE-beb9e19fb5e7cb316b39d09ff6ca8bdf.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2024-07-07 11:46:57+0000","generator":"WP-CLI\/2.10.0","source":"build\/53.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"de","plural-forms":"nplurals=2; plural=n != 1;"},"Payment illustration":["Zahlungs-Abbildung"],"By clicking \"Test payments\", you agree to the {{tosLink}}Terms of Service{{\/tosLink}}":["Durch Klicken auf \u201eZahlungen testen\u201c stimmst du den {{tosLink}}Gesch\u00e4ftsbedingungen{{\/tosLink}} zu"],"Power your payments with a simple, all-in-one option. Verify your business details to start testing transactions with WooCommerce Payments.":["Mache mehr aus deinen Zahlungen mit einer einfachen All-in-one-Option. \u00dcberpr\u00fcfe die Daten deines Unternehmens, um mit dem Testen von Transaktionen mit WooCommerce Payments zu beginnen."],"Test payments":["Zahlungen testen"],"Give your customers an easy and convenient way to pay! Set up and test some of our fast and secure online or in person payment methods.":["Biete deinen Kunden eine einfache und bequeme M\u00f6glichkeit zu bezahlen! Richte einige unserer schnellen und sicheren Online- oder pers\u00f6nlichen Zahlungsmethoden ein und teste sie."],"It\u2019s time to test payments":["Es ist an der Zeit, Zahlungen zu testen"]}}} -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-sv_SE-beb9e19fb5e7cb316b39d09ff6ca8bdf.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2025-03-24 17:54:02+0000","generator":"WP-CLI\/2.10.0","source":"build\/53.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"sv_SE","plural-forms":"nplurals=2; plural=n != 1;"},"Payment illustration":["Betalningsillustration"],"By clicking \"Test payments\", you agree to the {{tosLink}}Terms of Service{{\/tosLink}}":["Genom att klicka p\u00e5 \"Testa betalningar\" samtycker du till {{tosLink}}anv\u00e4ndarvillkoren{{\/tosLink}}"],"Power your payments with a simple, all-in-one option. Verify your business details to start testing transactions with WooCommerce Payments.":["Hantera dina betalningar med ett enkelt allt-i-ett-alternativ. Verifiera dina f\u00f6retagsuppgifter f\u00f6r att b\u00f6rja testa transaktioner med WooCommerce Payments."],"Test payments":["Testa betalningar"],"Give your customers an easy and convenient way to pay! Set up and test some of our fast and secure online or in person payment methods.":["Ge dina kunder ett enkelt och bekv\u00e4mt s\u00e4tt att betala. Konfigurera och testa n\u00e5gra av v\u00e5ra snabba och s\u00e4kra betalningsmetoder f\u00f6r onlinebetalningar eller personliga betalningar."],"It\u2019s time to test payments":["Det \u00e4r dags att testa betalningar."]}}} -------------------------------------------------------------------------------- /src/free-trial/tax/woocommerce-tax/index.tsx: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import { useSelect } from '@wordpress/data'; 5 | import { Spinner } from '@woocommerce/components'; 6 | import { PLUGINS_STORE_NAME, SETTINGS_STORE_NAME } from '@woocommerce/data'; 7 | 8 | /** 9 | * Internal dependencies 10 | */ 11 | import { TaxChildProps } from '../utils'; 12 | import { Setup } from './setup'; 13 | 14 | export const WooCommerceTax: React.FC< TaxChildProps > = ( { 15 | isPending, 16 | onAutomate, 17 | onManual, 18 | onDisable, 19 | } ) => { 20 | const { isResolving } = useSelect( ( select ) => { 21 | const { getSettings } = select( SETTINGS_STORE_NAME ); 22 | const { getActivePlugins, hasFinishedResolution } = 23 | select( PLUGINS_STORE_NAME ); 24 | getActivePlugins(); 25 | 26 | return { 27 | generalSettings: getSettings( 'general' ).general, 28 | isResolving: 29 | ! select( SETTINGS_STORE_NAME ).hasFinishedResolution( 30 | 'getSettings', 31 | [ 'general' ] 32 | ) || ! hasFinishedResolution( 'getActivePlugins' ), 33 | }; 34 | } ); 35 | 36 | if ( isResolving ) { 37 | return ; 38 | } 39 | 40 | const childProps = { 41 | isPending, 42 | onAutomate, 43 | onManual, 44 | onDisable, 45 | }; 46 | 47 | return ; 48 | }; 49 | -------------------------------------------------------------------------------- /includes/tasks/class-wc-calypso-task-appearance.php: -------------------------------------------------------------------------------- 1 | 1);"},"Payment illustration":["Ilustra\u00e7\u00e3o de pagamento"],"By clicking \"Test payments\", you agree to the {{tosLink}}Terms of Service{{\/tosLink}}":["Ao clicar em \"Testar pagamentos\", voc\u00ea concorda com os {{tosLink}}Termos de Servi\u00e7o{{\/tosLink}}."],"Power your payments with a simple, all-in-one option. Verify your business details to start testing transactions with WooCommerce Payments.":["Turbine seus pagamentos com uma op\u00e7\u00e3o simples e completa. Verifique os detalhes do seu neg\u00f3cio para come\u00e7ar a testar transa\u00e7\u00f5es com o WooCommerce Payments."],"Test payments":["Testar pagamentos"],"Give your customers an easy and convenient way to pay! Set up and test some of our fast and secure online or in person payment methods.":["Ofere\u00e7a aos seus clientes uma maneira f\u00e1cil e conveniente de pagar. Configure e teste algumas das nossas r\u00e1pidas e seguras formas de pagamento online ou presencial."],"It\u2019s time to test payments":["Chegou a hora de testar os pagamentos"]}}} -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-de_DE-ce1126179ccf98c51c6a61cf74680416.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2024-07-07 11:46:57+0000","generator":"WP-CLI\/2.10.0","source":"build\/src_free-trial_fills_index_ts.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"de","plural-forms":"nplurals=2; plural=n != 1;"},"Payment illustration":["Zahlungs-Abbildung"],"By clicking \"Test payments\", you agree to the {{tosLink}}Terms of Service{{\/tosLink}}":["Durch Klicken auf \u201eZahlungen testen\u201c stimmst du den {{tosLink}}Gesch\u00e4ftsbedingungen{{\/tosLink}} zu"],"Power your payments with a simple, all-in-one option. Verify your business details to start testing transactions with WooCommerce Payments.":["Mache mehr aus deinen Zahlungen mit einer einfachen All-in-one-Option. \u00dcberpr\u00fcfe die Daten deines Unternehmens, um mit dem Testen von Transaktionen mit WooCommerce Payments zu beginnen."],"Test payments":["Zahlungen testen"],"Give your customers an easy and convenient way to pay! Set up and test some of our fast and secure online or in person payment methods.":["Biete deinen Kunden eine einfache und bequeme M\u00f6glichkeit zu bezahlen! Richte einige unserer schnellen und sicheren Online- oder pers\u00f6nlichen Zahlungsmethoden ein und teste sie."],"It\u2019s time to test payments":["Es ist an der Zeit, Zahlungen zu testen"]}}} -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-sv_SE-ce1126179ccf98c51c6a61cf74680416.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2025-03-24 17:54:02+0000","generator":"WP-CLI\/2.10.0","source":"build\/src_free-trial_fills_index_ts.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"sv_SE","plural-forms":"nplurals=2; plural=n != 1;"},"Payment illustration":["Betalningsillustration"],"By clicking \"Test payments\", you agree to the {{tosLink}}Terms of Service{{\/tosLink}}":["Genom att klicka p\u00e5 \"Testa betalningar\" samtycker du till {{tosLink}}anv\u00e4ndarvillkoren{{\/tosLink}}"],"Power your payments with a simple, all-in-one option. Verify your business details to start testing transactions with WooCommerce Payments.":["Hantera dina betalningar med ett enkelt allt-i-ett-alternativ. Verifiera dina f\u00f6retagsuppgifter f\u00f6r att b\u00f6rja testa transaktioner med WooCommerce Payments."],"Test payments":["Testa betalningar"],"Give your customers an easy and convenient way to pay! Set up and test some of our fast and secure online or in person payment methods.":["Ge dina kunder ett enkelt och bekv\u00e4mt s\u00e4tt att betala. Konfigurera och testa n\u00e5gra av v\u00e5ra snabba och s\u00e4kra betalningsmetoder f\u00f6r onlinebetalningar eller personliga betalningar."],"It\u2019s time to test payments":["Det \u00e4r dags att testa betalningar."]}}} -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-fr_FR-beb9e19fb5e7cb316b39d09ff6ca8bdf.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2025-03-19 09:54:03+0000","generator":"WP-CLI\/2.10.0","source":"build\/53.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"fr","plural-forms":"nplurals=2; plural=n > 1;"},"Payment illustration":["Illustration de paiements"],"By clicking \"Test payments\", you agree to the {{tosLink}}Terms of Service{{\/tosLink}}":["En cliquant sur \u00ab\u00a0Tester les paiements\u00a0\u00bb, vous acceptez les {{tosLink}}conditions d\u2019utilisation{{\/tosLink}}"],"Power your payments with a simple, all-in-one option. Verify your business details to start testing transactions with WooCommerce Payments.":["Optimisez vos paiements \u00e0 l\u2019aide d\u2019une solution simple et tout-en-un. V\u00e9rifiez les d\u00e9tails de votre entreprise pour commencer \u00e0 tester les transactions avec WooCommerce Payments."],"Test payments":["Tester les paiements"],"Give your customers an easy and convenient way to pay! Set up and test some of our fast and secure online or in person payment methods.":["Proposez \u00e0 vos clients un moyen de paiement \u00e0 la fois simple et pratique\u00a0! Configurez et testez certains de nos moyens de paiement rapides et s\u00e9curis\u00e9s en ligne ou en personne."],"It\u2019s time to test payments":["Il est temps de tester les paiements"]}}} -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-fr_BE-beb9e19fb5e7cb316b39d09ff6ca8bdf.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2024-02-05 11:59:40+0000","generator":"WP-CLI\/2.10.0","source":"build\/53.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"fr_BE","plural-forms":"nplurals=2; plural=n != 1;"},"Payment illustration":["Illustration de paiements"],"By clicking \"Test payments\", you agree to the {{tosLink}}Terms of Service{{\/tosLink}}":["En cliquant sur \u00ab\u00a0Tester les paiements\u00a0\u00bb, vous acceptez les {{tosLink}}conditions d\u2019utilisation{{\/tosLink}}"],"Power your payments with a simple, all-in-one option. Verify your business details to start testing transactions with WooCommerce Payments.":["Optimisez vos paiements \u00e0 l\u2019aide d\u2019une solution simple et tout-en-un. V\u00e9rifiez les d\u00e9tails de votre entreprise pour commencer \u00e0 tester les transactions avec WooCommerce Payments."],"Test payments":["Tester les paiements"],"Give your customers an easy and convenient way to pay! Set up and test some of our fast and secure online or in person payment methods.":["Proposez \u00e0 vos clients un moyen de paiement \u00e0 la fois simple et pratique\u00a0! Configurez et testez certains de nos moyens de paiement rapides et s\u00e9curis\u00e9s en ligne ou en personne."],"It\u2019s time to test payments":["Il est temps de tester les paiements"]}}} -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-fr_CA-beb9e19fb5e7cb316b39d09ff6ca8bdf.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2024-09-02 11:55:47+0000","generator":"WP-CLI\/2.10.0","source":"build\/53.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"fr_CA","plural-forms":"nplurals=2; plural=n != 1;"},"Payment illustration":["Illustration de paiements"],"By clicking \"Test payments\", you agree to the {{tosLink}}Terms of Service{{\/tosLink}}":["En cliquant sur \u00ab\u00a0Tester les paiements\u00a0\u00bb, vous acceptez les {{tosLink}}conditions d\u2019utilisation{{\/tosLink}}"],"Power your payments with a simple, all-in-one option. Verify your business details to start testing transactions with WooCommerce Payments.":["Optimisez vos paiements \u00e0 l\u2019aide d\u2019une solution simple et tout-en-un. V\u00e9rifiez les d\u00e9tails de votre entreprise pour commencer \u00e0 tester les transactions avec WooCommerce Payments."],"Test payments":["Tester les paiements"],"Give your customers an easy and convenient way to pay! Set up and test some of our fast and secure online or in person payment methods.":["Proposez \u00e0 vos clients un moyen de paiement \u00e0 la fois simple et pratique\u00a0! Configurez et testez certains de nos moyens de paiement rapides et s\u00e9curis\u00e9s en ligne ou en personne."],"It\u2019s time to test payments":["Il est temps de tester les paiements"]}}} -------------------------------------------------------------------------------- /includes/atomic-api/class-wc-calypso-bridge-atomic-launch-api.php: -------------------------------------------------------------------------------- 1 | 'POST', 28 | ), 29 | json_encode( array( 30 | 'site' => $blog_id 31 | ) ), 32 | 'wpcom' 33 | ); 34 | } 35 | 36 | /** 37 | * Update coming soon. 38 | */ 39 | public static function update_coming_soon( $is_coming_soon ) { 40 | if ( ! class_exists( '\Jetpack_Options' ) ) { 41 | return; 42 | } 43 | 44 | $blog_id = \Jetpack_Options::get_option( 'id' ); 45 | return Client::wpcom_json_api_request_as_user( 46 | sprintf( '/sites/%d/coming-soon', $blog_id ), 47 | '2', 48 | array( 49 | 'method' => 'POST', 50 | ), 51 | array( 52 | 'is_coming_soon' => $is_coming_soon ? 1 : 0 53 | ), 54 | 'wpcom' 55 | ); 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-id_ID-d306b16f43f72fde801a43dea46bfd64.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2025-03-25 09:54:03+0000","generator":"WP-CLI\/2.10.0","source":"assets\/scripts\/free-trial-wc-payments.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"id","plural-forms":"nplurals=2; plural=n > 1;"},"You\u2019re ready to start testing the features and benefits of WooCommerce Payments":["Anda siap untuk menguji berbagai fitur dan manfaat WooCommerce Payments"],"You\u2019re only steps away from getting ready to be paid":["Tinggal beberapa langkah lagi, Anda akan siap menerima pembayaran"],"Deposits are not available during the trial period. To start processing real transactions and receive payments and payouts, upgrade to a paid plan<\/a>.":["Deposit tidak tersedia selama periode percobaan. Untuk mulai memproses transaksi aktual serta menerima pembayaran, upgrade ke paket berbayar<\/a>."],"Only Administrators and Store Managers can place orders during the free trial. If you are ready to accept payments from customers, upgrade to a paid plan<\/a>.":["Hanya Administrator dan Pengelola Toko yang bisa membuat pesanan selama percobaan gratis. Jika Anda siap menerima pembayaran dari pelanggan, upgrade ke paket berbayar<\/a>."]}}} -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-fr_FR-ce1126179ccf98c51c6a61cf74680416.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2025-03-19 09:54:03+0000","generator":"WP-CLI\/2.10.0","source":"build\/src_free-trial_fills_index_ts.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"fr","plural-forms":"nplurals=2; plural=n > 1;"},"Payment illustration":["Illustration de paiements"],"By clicking \"Test payments\", you agree to the {{tosLink}}Terms of Service{{\/tosLink}}":["En cliquant sur \u00ab\u00a0Tester les paiements\u00a0\u00bb, vous acceptez les {{tosLink}}conditions d\u2019utilisation{{\/tosLink}}"],"Power your payments with a simple, all-in-one option. Verify your business details to start testing transactions with WooCommerce Payments.":["Optimisez vos paiements \u00e0 l\u2019aide d\u2019une solution simple et tout-en-un. V\u00e9rifiez les d\u00e9tails de votre entreprise pour commencer \u00e0 tester les transactions avec WooCommerce Payments."],"Test payments":["Tester les paiements"],"Give your customers an easy and convenient way to pay! Set up and test some of our fast and secure online or in person payment methods.":["Proposez \u00e0 vos clients un moyen de paiement \u00e0 la fois simple et pratique\u00a0! Configurez et testez certains de nos moyens de paiement rapides et s\u00e9curis\u00e9s en ligne ou en personne."],"It\u2019s time to test payments":["Il est temps de tester les paiements"]}}} -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-fr_BE-ce1126179ccf98c51c6a61cf74680416.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2024-02-05 11:59:40+0000","generator":"WP-CLI\/2.10.0","source":"build\/src_free-trial_fills_index_ts.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"fr_BE","plural-forms":"nplurals=2; plural=n != 1;"},"Payment illustration":["Illustration de paiements"],"By clicking \"Test payments\", you agree to the {{tosLink}}Terms of Service{{\/tosLink}}":["En cliquant sur \u00ab\u00a0Tester les paiements\u00a0\u00bb, vous acceptez les {{tosLink}}conditions d\u2019utilisation{{\/tosLink}}"],"Power your payments with a simple, all-in-one option. Verify your business details to start testing transactions with WooCommerce Payments.":["Optimisez vos paiements \u00e0 l\u2019aide d\u2019une solution simple et tout-en-un. V\u00e9rifiez les d\u00e9tails de votre entreprise pour commencer \u00e0 tester les transactions avec WooCommerce Payments."],"Test payments":["Tester les paiements"],"Give your customers an easy and convenient way to pay! Set up and test some of our fast and secure online or in person payment methods.":["Proposez \u00e0 vos clients un moyen de paiement \u00e0 la fois simple et pratique\u00a0! Configurez et testez certains de nos moyens de paiement rapides et s\u00e9curis\u00e9s en ligne ou en personne."],"It\u2019s time to test payments":["Il est temps de tester les paiements"]}}} -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-fr_CA-ce1126179ccf98c51c6a61cf74680416.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2024-09-02 11:55:47+0000","generator":"WP-CLI\/2.10.0","source":"build\/src_free-trial_fills_index_ts.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"fr_CA","plural-forms":"nplurals=2; plural=n != 1;"},"Payment illustration":["Illustration de paiements"],"By clicking \"Test payments\", you agree to the {{tosLink}}Terms of Service{{\/tosLink}}":["En cliquant sur \u00ab\u00a0Tester les paiements\u00a0\u00bb, vous acceptez les {{tosLink}}conditions d\u2019utilisation{{\/tosLink}}"],"Power your payments with a simple, all-in-one option. Verify your business details to start testing transactions with WooCommerce Payments.":["Optimisez vos paiements \u00e0 l\u2019aide d\u2019une solution simple et tout-en-un. V\u00e9rifiez les d\u00e9tails de votre entreprise pour commencer \u00e0 tester les transactions avec WooCommerce Payments."],"Test payments":["Tester les paiements"],"Give your customers an easy and convenient way to pay! Set up and test some of our fast and secure online or in person payment methods.":["Proposez \u00e0 vos clients un moyen de paiement \u00e0 la fois simple et pratique\u00a0! Configurez et testez certains de nos moyens de paiement rapides et s\u00e9curis\u00e9s en ligne ou en personne."],"It\u2019s time to test payments":["Il est temps de tester les paiements"]}}} -------------------------------------------------------------------------------- /src/free-trial/fills/woocommerce-payments.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import React, { useEffect } from 'react'; 5 | import { WooOnboardingTask } from '@woocommerce/onboarding'; 6 | import { useDispatch } from '@wordpress/data'; 7 | import { Spinner } from '@woocommerce/components'; 8 | 9 | /** 10 | * Internal dependencies 11 | */ 12 | import { connectWcpay } from '../../payment-gateway-suggestions/components/WCPay/utils'; 13 | 14 | const ReadyWcPay = () => { 15 | const { createNotice } = useDispatch( 'core/notices' ); 16 | 17 | useEffect( () => { 18 | // Attempt to connect. Catch is not provided since notice is handled in the util. 19 | connectWcpay( createNotice, () => {} ); 20 | }, [ createNotice ] ); 21 | 22 | return ( 23 |
32 | 33 |
34 | Preparing payment settings... 35 |
36 |
37 | ); 38 | }; 39 | 40 | // shows up at http://host/wp-admin/admin.php?page=wc-admin&task=woocommerce-payments which is the default url for woocommerce-payments task 41 | export const WoocommercePaymentsTaskPage = () => ( 42 | 43 | 44 | 45 | ); 46 | -------------------------------------------------------------------------------- /includes/class-wc-calypso-bridge-fse.php: -------------------------------------------------------------------------------- 1 | 1);"},"Payment illustration":["\u00d6deme ill\u00fcstrasyonu"],"By clicking \"Test payments\", you agree to the {{tosLink}}Terms of Service{{\/tosLink}}":["\"\u00d6demeleri test et\"e t\u0131klayarak {{tosLink}}Hizmet Ko\u015fullar\u0131{{\/tosLink}}'n\u0131 kabul etmi\u015f olursunuz."],"Power your payments with a simple, all-in-one option. Verify your business details to start testing transactions with WooCommerce Payments.":["\u00d6demelerinizi basit, hepsi bir arada bir se\u00e7enekle g\u00fc\u00e7lendirin. WooCommerce \u00d6demeler ile i\u015flemleri test etmeye ba\u015flamak i\u00e7in i\u015fletmenizle ilgili ayr\u0131nt\u0131lar\u0131 do\u011frulay\u0131n."],"Test payments":["\u00d6demeleri test etme"],"Give your customers an easy and convenient way to pay! Set up and test some of our fast and secure online or in person payment methods.":["M\u00fc\u015fterilerinize kolay ve rahat bir \u00f6deme y\u00f6ntemi sa\u011flay\u0131n! H\u0131zl\u0131 ve g\u00fcvenli internetten veya \u015fahsen \u00f6deme y\u00f6ntemlerimizden baz\u0131lar\u0131n\u0131 ayarlay\u0131n ve test edin."],"It\u2019s time to test payments":["\u00d6demeleri test etme zaman\u0131"]}}} -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-es_ES-d306b16f43f72fde801a43dea46bfd64.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2025-03-19 15:54:03+0000","generator":"WP-CLI\/2.10.0","source":"assets\/scripts\/free-trial-wc-payments.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"es","plural-forms":"nplurals=2; plural=n != 1;"},"You\u2019re ready to start testing the features and benefits of WooCommerce Payments":["Todo listo para empezar a probar las funciones y las ventajas de WooCommerce Payments."],"You\u2019re only steps away from getting ready to be paid":["Solo unos pasos m\u00e1s y estar\u00e1s a punto para aceptar pagos"],"Deposits are not available during the trial period. To start processing real transactions and receive payments and payouts,
upgrade to a paid plan<\/a>.":["Los dep\u00f3sitos no est\u00e1n disponibles durante el per\u00edodo de prueba. Para empezar a procesar transacciones reales y recibir pagos, mejora tu plan a uno de pago<\/a>."],"Only Administrators and Store Managers can place orders during the free trial. If you are ready to accept payments from customers, upgrade to a paid plan<\/a>.":["Solo los administradores y los gerentes de tienda pueden hacer pedidos durante la prueba gratuita. Si ya lo tienes todo listo para aceptar pagos de clientes, mejora tu plan a uno de pago<\/a>."]}}} -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-es_CL-d306b16f43f72fde801a43dea46bfd64.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2025-05-26 11:50:55+0000","generator":"WP-CLI\/2.10.0","source":"assets\/scripts\/free-trial-wc-payments.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"es_CL","plural-forms":"nplurals=2; plural=n != 1;"},"You\u2019re ready to start testing the features and benefits of WooCommerce Payments":["Todo listo para empezar a probar las funciones y las ventajas de WooCommerce Payments."],"You\u2019re only steps away from getting ready to be paid":["Solo unos pasos m\u00e1s y estar\u00e1s a punto para aceptar pagos"],"Deposits are not available during the trial period. To start processing real transactions and receive payments and payouts, upgrade to a paid plan<\/a>.":["Los dep\u00f3sitos no est\u00e1n disponibles durante el per\u00edodo de prueba. Para empezar a procesar transacciones reales y recibir pagos, mejora tu plan a uno de pago<\/a>."],"Only Administrators and Store Managers can place orders during the free trial. If you are ready to accept payments from customers, upgrade to a paid plan<\/a>.":["Solo los administradores y los gerentes de tienda pueden hacer pedidos durante la prueba gratuita. Si ya lo tienes todo listo para aceptar pagos de clientes, mejora tu plan a uno de pago<\/a>."]}}} -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-es_MX-d306b16f43f72fde801a43dea46bfd64.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2024-09-16 11:51:52+0000","generator":"WP-CLI\/2.10.0","source":"assets\/scripts\/free-trial-wc-payments.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"es_MX","plural-forms":"nplurals=2; plural=n != 1;"},"You\u2019re ready to start testing the features and benefits of WooCommerce Payments":["Todo listo para empezar a probar las funciones y las ventajas de WooCommerce Payments."],"You\u2019re only steps away from getting ready to be paid":["Solo unos pasos m\u00e1s y estar\u00e1s a punto para aceptar pagos"],"Deposits are not available during the trial period. To start processing real transactions and receive payments and payouts, upgrade to a paid plan<\/a>.":["Los dep\u00f3sitos no est\u00e1n disponibles durante el per\u00edodo de prueba. Para empezar a procesar transacciones reales y recibir pagos, mejora tu plan a uno de pago<\/a>."],"Only Administrators and Store Managers can place orders during the free trial. If you are ready to accept payments from customers, upgrade to a paid plan<\/a>.":["Solo los administradores y los gerentes de tienda pueden hacer pedidos durante la prueba gratuita. Si ya lo tienes todo listo para aceptar pagos de clientes, mejora tu plan a uno de pago<\/a>."]}}} -------------------------------------------------------------------------------- /src/free-trial/tax/components/partners.scss: -------------------------------------------------------------------------------- 1 | .woocommerce-tax-partners__partners { 2 | display: grid; 3 | grid-template-columns: 1fr 1fr; 4 | 5 | 6 | &.woocommerce-tax-partners__partners-count-1 { 7 | grid-template-columns: 1fr; 8 | } 9 | 10 | @include breakpoint( '<782px' ) { 11 | grid-template-columns: 1fr; 12 | } 13 | } 14 | 15 | .woocommerce-tax-partners__partners-count-1 .woocommerce-tax-partners__partners { 16 | grid-template-columns: 1fr; 17 | justify-items: center; 18 | } 19 | 20 | .woocommerce-tax-partners { 21 | .components-card__body.is-size-medium { 22 | padding: $gap-larger; 23 | } 24 | 25 | .components-card__header { 26 | line-height: 28px; 27 | font-size: 20px; 28 | } 29 | } 30 | 31 | .woocommerce-tax-partners__other-actions { 32 | text-align: center; 33 | list-style: none; 34 | display: flex; 35 | align-items: center; 36 | justify-content: center; 37 | margin: 0; 38 | 39 | @include breakpoint( '<782px' ) { 40 | flex-direction: column; 41 | } 42 | 43 | li { 44 | margin-top: $gap; 45 | margin-right: $gap-smallest; 46 | 47 | button.is-tertiary { 48 | padding: 0; 49 | height: auto; 50 | } 51 | 52 | &::after { 53 | content: '•'; 54 | color: #bbb; 55 | margin-left: 4px; 56 | 57 | @include breakpoint( '<782px' ) { 58 | content: ''; 59 | } 60 | } 61 | 62 | &:last-child { 63 | margin-right: 0; 64 | &::after { 65 | content: ''; 66 | } 67 | } 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-nl_NL-d306b16f43f72fde801a43dea46bfd64.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2025-03-19 13:54:03+0000","generator":"WP-CLI\/2.10.0","source":"assets\/scripts\/free-trial-wc-payments.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"nl","plural-forms":"nplurals=2; plural=n != 1;"},"You\u2019re ready to start testing the features and benefits of WooCommerce Payments":["Je bent er klaar voor om de functies en voordelen van WooCommerce Payments te testen"],"You\u2019re only steps away from getting ready to be paid":["Nog maar een paar stappen en je kunt betaald worden"],"Deposits are not available during the trial period. To start processing real transactions and receive payments and payouts, upgrade to a paid plan<\/a>.":["Aanbetalingen zijn niet beschikbaar tijdens de proefperiode. Om echte transacties te kunnen verwerken en betalingen te kunnen ontvangen, upgrade je naar een betaald abonnement<\/a>."],"Only Administrators and Store Managers can place orders during the free trial. If you are ready to accept payments from customers, upgrade to a paid plan<\/a>.":["Alleen beheerders en winkelmanagers kunnen bestellingen plaatsen tijdens de gratis proefversie. Als je klaar bent om betalingen te accepteren van klanten, werk je je abonnement bij naar een betaald abonnement<\/a>."]}}} -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-tr_TR-ce1126179ccf98c51c6a61cf74680416.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2025-03-19 11:54:03+0000","generator":"WP-CLI\/2.10.0","source":"build\/src_free-trial_fills_index_ts.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"tr","plural-forms":"nplurals=2; plural=(n > 1);"},"Payment illustration":["\u00d6deme ill\u00fcstrasyonu"],"By clicking \"Test payments\", you agree to the {{tosLink}}Terms of Service{{\/tosLink}}":["\"\u00d6demeleri test et\"e t\u0131klayarak {{tosLink}}Hizmet Ko\u015fullar\u0131{{\/tosLink}}'n\u0131 kabul etmi\u015f olursunuz."],"Power your payments with a simple, all-in-one option. Verify your business details to start testing transactions with WooCommerce Payments.":["\u00d6demelerinizi basit, hepsi bir arada bir se\u00e7enekle g\u00fc\u00e7lendirin. WooCommerce \u00d6demeler ile i\u015flemleri test etmeye ba\u015flamak i\u00e7in i\u015fletmenizle ilgili ayr\u0131nt\u0131lar\u0131 do\u011frulay\u0131n."],"Test payments":["\u00d6demeleri test etme"],"Give your customers an easy and convenient way to pay! Set up and test some of our fast and secure online or in person payment methods.":["M\u00fc\u015fterilerinize kolay ve rahat bir \u00f6deme y\u00f6ntemi sa\u011flay\u0131n! H\u0131zl\u0131 ve g\u00fcvenli internetten veya \u015fahsen \u00f6deme y\u00f6ntemlerimizden baz\u0131lar\u0131n\u0131 ayarlay\u0131n ve test edin."],"It\u2019s time to test payments":["\u00d6demeleri test etme zaman\u0131"]}}} -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-zh_CN-beb9e19fb5e7cb316b39d09ff6ca8bdf.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2025-03-25 09:54:03+0000","generator":"WP-CLI\/2.10.0","source":"build\/53.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"zh_CN","plural-forms":"nplurals=1; plural=0;"},"Payment illustration":["\u4ed8\u6b3e\u56fe\u793a"],"By clicking \"Test payments\", you agree to the {{tosLink}}Terms of Service{{\/tosLink}}":["\u70b9\u51fb\u201c\u6d4b\u8bd5\u4ed8\u6b3e\u201d\u5373\u8868\u793a\u60a8\u540c\u610f{{tosLink}}\u670d\u52a1\u6761\u6b3e{{\/tosLink}}"],"Power your payments with a simple, all-in-one option. Verify your business details to start testing transactions with WooCommerce Payments.":["\u901a\u8fc7\u7b80\u5355\u7684\u4e00\u7ad9\u5f0f\u9009\u9879\u5e2e\u52a9\u60a8\u6253\u9020\u5f3a\u5927\u7684\u4ed8\u6b3e\u529f\u80fd\u3002 \u9a8c\u8bc1\u60a8\u7684\u4e1a\u52a1\u8be6\u60c5\uff0c\u4ee5\u5f00\u59cb\u4f7f\u7528 WooCommerce Payments \u6d4b\u8bd5\u4ea4\u6613\u3002"],"Test payments":["\u6d4b\u8bd5\u4ed8\u6b3e"],"Give your customers an easy and convenient way to pay! Set up and test some of our fast and secure online or in person payment methods.":["\u4e3a\u60a8\u7684\u5ba2\u6237\u63d0\u4f9b\u7b80\u5355\u4fbf\u6377\u7684\u652f\u4ed8\u65b9\u5f0f\uff01 \u8bbe\u7f6e\u5e76\u6d4b\u8bd5\u4e00\u4e9b\u5feb\u901f\u5b89\u5168\u7684\u5728\u7ebf\u6216\u9762\u5bf9\u9762\u4ed8\u6b3e\u65b9\u5f0f\u3002"],"It\u2019s time to test payments":["\u662f\u65f6\u5019\u6d4b\u8bd5\u4ed8\u6b3e\u4e86"]}}} -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-zh_SG-beb9e19fb5e7cb316b39d09ff6ca8bdf.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2025-03-25 09:54:03+0000","generator":"WP-CLI\/2.10.0","source":"build\/53.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"zh_SG","plural-forms":"nplurals=1; plural=0;"},"Payment illustration":["\u4ed8\u6b3e\u56fe\u793a"],"By clicking \"Test payments\", you agree to the {{tosLink}}Terms of Service{{\/tosLink}}":["\u70b9\u51fb\u201c\u6d4b\u8bd5\u4ed8\u6b3e\u201d\u5373\u8868\u793a\u60a8\u540c\u610f{{tosLink}}\u670d\u52a1\u6761\u6b3e{{\/tosLink}}"],"Power your payments with a simple, all-in-one option. Verify your business details to start testing transactions with WooCommerce Payments.":["\u901a\u8fc7\u7b80\u5355\u7684\u4e00\u7ad9\u5f0f\u9009\u9879\u5e2e\u52a9\u60a8\u6253\u9020\u5f3a\u5927\u7684\u4ed8\u6b3e\u529f\u80fd\u3002 \u9a8c\u8bc1\u60a8\u7684\u4e1a\u52a1\u8be6\u60c5\uff0c\u4ee5\u5f00\u59cb\u4f7f\u7528 WooCommerce Payments \u6d4b\u8bd5\u4ea4\u6613\u3002"],"Test payments":["\u6d4b\u8bd5\u4ed8\u6b3e"],"Give your customers an easy and convenient way to pay! Set up and test some of our fast and secure online or in person payment methods.":["\u4e3a\u60a8\u7684\u5ba2\u6237\u63d0\u4f9b\u7b80\u5355\u4fbf\u6377\u7684\u652f\u4ed8\u65b9\u5f0f\uff01 \u8bbe\u7f6e\u5e76\u6d4b\u8bd5\u4e00\u4e9b\u5feb\u901f\u5b89\u5168\u7684\u5728\u7ebf\u6216\u9762\u5bf9\u9762\u4ed8\u6b3e\u65b9\u5f0f\u3002"],"It\u2019s time to test payments":["\u662f\u65f6\u5019\u6d4b\u8bd5\u4ed8\u6b3e\u4e86"]}}} -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-zh_TW-beb9e19fb5e7cb316b39d09ff6ca8bdf.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2025-03-26 09:54:03+0000","generator":"WP-CLI\/2.10.0","source":"build\/53.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"zh_TW","plural-forms":"nplurals=1; plural=0;"},"Payment illustration":["\u4ed8\u6b3e\u63d2\u5716"],"By clicking \"Test payments\", you agree to the {{tosLink}}Terms of Service{{\/tosLink}}":["\u6309\u4e00\u4e0b\u300c\u6e2c\u8a66\u4ed8\u6b3e\u300d\uff0c\u5373\u8868\u793a\u4f60\u540c\u610f{{tosLink}}\u670d\u52d9\u689d\u6b3e{{\/tosLink}}"],"Power your payments with a simple, all-in-one option. Verify your business details to start testing transactions with WooCommerce Payments.":["\u5229\u7528\u7c21\u55ae\u7684\u591a\u5408\u4e00\u9078\u9805\uff0c\u589e\u5f37\u4ed8\u6b3e\u529f\u80fd\u3002 \u9a57\u8b49\u4f01\u696d\u8a73\u7d30\u8cc7\u6599\u5c31\u80fd\u958b\u59cb\u4f7f\u7528 WooCommerce Payments \u6e2c\u8a66\u4ea4\u6613\u3002"],"Test payments":["\u6e2c\u8a66\u4ed8\u6b3e"],"Give your customers an easy and convenient way to pay! Set up and test some of our fast and secure online or in person payment methods.":["\u70ba\u9867\u5ba2\u63d0\u4f9b\u7c21\u55ae\u65b9\u4fbf\u7684\u4ed8\u6b3e\u65b9\u5f0f\uff01 \u8a2d\u5b9a\u4e26\u6e2c\u8a66\u5feb\u901f\u5b89\u5168\u7684\u4ed8\u6b3e\u65b9\u5f0f\uff0c\u53ef\u9078\u64c7\u7dda\u4e0a\u6536\u6b3e\u6216\u89aa\u81ea\u6536\u6b3e\u3002 "],"It\u2019s time to test payments":["\u662f\u6642\u5019\u6e2c\u8a66\u4ed8\u6b3e\u4e86"]}}} -------------------------------------------------------------------------------- /includes/class-wc-calypso-bridge-crowdsignal-redirect.php: -------------------------------------------------------------------------------- 1 | upgrade to a paid plan<\/a>.":["I versamenti non sono disponibili durante il periodo di prova. Per iniziare a elaborare transazioni reali e ricevere pagamenti, effettua l'aggiornamento a un piano a pagamento<\/a>."],"Only Administrators and Store Managers can place orders during the free trial. If you are ready to accept payments from customers, upgrade to a paid plan<\/a>.":["Solo gli amministratori e i responsabili del negozio possono effettuare ordini durante il periodo di prova. Se tutto \u00e8 pronto per accettare i pagamenti dai clienti, effettua l'aggiornamento a un piano a pagamento<\/a>."]}}} -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-pt_BR-d306b16f43f72fde801a43dea46bfd64.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2025-03-18 17:54:03+0000","generator":"WP-CLI\/2.10.0","source":"assets\/scripts\/free-trial-wc-payments.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"pt_BR","plural-forms":"nplurals=2; plural=(n > 1);"},"You\u2019re ready to start testing the features and benefits of WooCommerce Payments":["Voc\u00ea j\u00e1 pode come\u00e7ar a testar as funcionalidades e benef\u00edcios do WooCommerce Payments"],"You\u2019re only steps away from getting ready to be paid":["Falta pouco para sua loja estar pronta para receber pagamentos"],"Deposits are not available during the trial period. To start processing real transactions and receive payments and payouts, upgrade to a paid plan<\/a>.":["Os dep\u00f3sitos n\u00e3o est\u00e3o dispon\u00edveis durante o teste gratuito. Para come\u00e7ar a processar transa\u00e7\u00f5es reais e receber pagamentos, fa\u00e7a upgrade para um plano pago<\/a>."],"Only Administrators and Store Managers can place orders during the free trial. If you are ready to accept payments from customers, upgrade to a paid plan<\/a>.":["Somente administradores e gerentes de loja podem fazer pedidos durante o teste gratuito. Se sua loja j\u00e1 estiver pronta para aceitar pagamentos de clientes, fa\u00e7a upgrade para um plano pago<\/a>."]}}} -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-zh_CN-ce1126179ccf98c51c6a61cf74680416.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2025-03-25 09:54:03+0000","generator":"WP-CLI\/2.10.0","source":"build\/src_free-trial_fills_index_ts.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"zh_CN","plural-forms":"nplurals=1; plural=0;"},"Payment illustration":["\u4ed8\u6b3e\u56fe\u793a"],"By clicking \"Test payments\", you agree to the {{tosLink}}Terms of Service{{\/tosLink}}":["\u70b9\u51fb\u201c\u6d4b\u8bd5\u4ed8\u6b3e\u201d\u5373\u8868\u793a\u60a8\u540c\u610f{{tosLink}}\u670d\u52a1\u6761\u6b3e{{\/tosLink}}"],"Power your payments with a simple, all-in-one option. Verify your business details to start testing transactions with WooCommerce Payments.":["\u901a\u8fc7\u7b80\u5355\u7684\u4e00\u7ad9\u5f0f\u9009\u9879\u5e2e\u52a9\u60a8\u6253\u9020\u5f3a\u5927\u7684\u4ed8\u6b3e\u529f\u80fd\u3002 \u9a8c\u8bc1\u60a8\u7684\u4e1a\u52a1\u8be6\u60c5\uff0c\u4ee5\u5f00\u59cb\u4f7f\u7528 WooCommerce Payments \u6d4b\u8bd5\u4ea4\u6613\u3002"],"Test payments":["\u6d4b\u8bd5\u4ed8\u6b3e"],"Give your customers an easy and convenient way to pay! Set up and test some of our fast and secure online or in person payment methods.":["\u4e3a\u60a8\u7684\u5ba2\u6237\u63d0\u4f9b\u7b80\u5355\u4fbf\u6377\u7684\u652f\u4ed8\u65b9\u5f0f\uff01 \u8bbe\u7f6e\u5e76\u6d4b\u8bd5\u4e00\u4e9b\u5feb\u901f\u5b89\u5168\u7684\u5728\u7ebf\u6216\u9762\u5bf9\u9762\u4ed8\u6b3e\u65b9\u5f0f\u3002"],"It\u2019s time to test payments":["\u662f\u65f6\u5019\u6d4b\u8bd5\u4ed8\u6b3e\u4e86"]}}} -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-zh_SG-ce1126179ccf98c51c6a61cf74680416.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2025-03-25 09:54:03+0000","generator":"WP-CLI\/2.10.0","source":"build\/src_free-trial_fills_index_ts.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"zh_SG","plural-forms":"nplurals=1; plural=0;"},"Payment illustration":["\u4ed8\u6b3e\u56fe\u793a"],"By clicking \"Test payments\", you agree to the {{tosLink}}Terms of Service{{\/tosLink}}":["\u70b9\u51fb\u201c\u6d4b\u8bd5\u4ed8\u6b3e\u201d\u5373\u8868\u793a\u60a8\u540c\u610f{{tosLink}}\u670d\u52a1\u6761\u6b3e{{\/tosLink}}"],"Power your payments with a simple, all-in-one option. Verify your business details to start testing transactions with WooCommerce Payments.":["\u901a\u8fc7\u7b80\u5355\u7684\u4e00\u7ad9\u5f0f\u9009\u9879\u5e2e\u52a9\u60a8\u6253\u9020\u5f3a\u5927\u7684\u4ed8\u6b3e\u529f\u80fd\u3002 \u9a8c\u8bc1\u60a8\u7684\u4e1a\u52a1\u8be6\u60c5\uff0c\u4ee5\u5f00\u59cb\u4f7f\u7528 WooCommerce Payments \u6d4b\u8bd5\u4ea4\u6613\u3002"],"Test payments":["\u6d4b\u8bd5\u4ed8\u6b3e"],"Give your customers an easy and convenient way to pay! Set up and test some of our fast and secure online or in person payment methods.":["\u4e3a\u60a8\u7684\u5ba2\u6237\u63d0\u4f9b\u7b80\u5355\u4fbf\u6377\u7684\u652f\u4ed8\u65b9\u5f0f\uff01 \u8bbe\u7f6e\u5e76\u6d4b\u8bd5\u4e00\u4e9b\u5feb\u901f\u5b89\u5168\u7684\u5728\u7ebf\u6216\u9762\u5bf9\u9762\u4ed8\u6b3e\u65b9\u5f0f\u3002"],"It\u2019s time to test payments":["\u662f\u65f6\u5019\u6d4b\u8bd5\u4ed8\u6b3e\u4e86"]}}} -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-zh_TW-ce1126179ccf98c51c6a61cf74680416.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2025-03-26 09:54:03+0000","generator":"WP-CLI\/2.10.0","source":"build\/src_free-trial_fills_index_ts.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"zh_TW","plural-forms":"nplurals=1; plural=0;"},"Payment illustration":["\u4ed8\u6b3e\u63d2\u5716"],"By clicking \"Test payments\", you agree to the {{tosLink}}Terms of Service{{\/tosLink}}":["\u6309\u4e00\u4e0b\u300c\u6e2c\u8a66\u4ed8\u6b3e\u300d\uff0c\u5373\u8868\u793a\u4f60\u540c\u610f{{tosLink}}\u670d\u52d9\u689d\u6b3e{{\/tosLink}}"],"Power your payments with a simple, all-in-one option. Verify your business details to start testing transactions with WooCommerce Payments.":["\u5229\u7528\u7c21\u55ae\u7684\u591a\u5408\u4e00\u9078\u9805\uff0c\u589e\u5f37\u4ed8\u6b3e\u529f\u80fd\u3002 \u9a57\u8b49\u4f01\u696d\u8a73\u7d30\u8cc7\u6599\u5c31\u80fd\u958b\u59cb\u4f7f\u7528 WooCommerce Payments \u6e2c\u8a66\u4ea4\u6613\u3002"],"Test payments":["\u6e2c\u8a66\u4ed8\u6b3e"],"Give your customers an easy and convenient way to pay! Set up and test some of our fast and secure online or in person payment methods.":["\u70ba\u9867\u5ba2\u63d0\u4f9b\u7c21\u55ae\u65b9\u4fbf\u7684\u4ed8\u6b3e\u65b9\u5f0f\uff01 \u8a2d\u5b9a\u4e26\u6e2c\u8a66\u5feb\u901f\u5b89\u5168\u7684\u4ed8\u6b3e\u65b9\u5f0f\uff0c\u53ef\u9078\u64c7\u7dda\u4e0a\u6536\u6b3e\u6216\u89aa\u81ea\u6536\u6b3e\u3002 "],"It\u2019s time to test payments":["\u662f\u6642\u5019\u6e2c\u8a66\u4ed8\u6b3e\u4e86"]}}} -------------------------------------------------------------------------------- /store-on-wpcom/inc/wc-calypso-bridge-masterbar-menu.php: -------------------------------------------------------------------------------- 1 | add_menu( array( 32 | 'parent' => 'blog', 33 | 'id' => 'store', 34 | 'title' => esc_html__( 'Store', 'wc_calypso_bridge' ), 35 | 'href' => $store_url, 36 | 'meta' => array( 37 | 'class' => 'mb-icon-spacer', 38 | ) 39 | ) ); 40 | } 41 | } ); 42 | } 43 | -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-sv_SE-d306b16f43f72fde801a43dea46bfd64.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2025-03-24 17:54:02+0000","generator":"WP-CLI\/2.10.0","source":"assets\/scripts\/free-trial-wc-payments.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"sv_SE","plural-forms":"nplurals=2; plural=n != 1;"},"You\u2019re ready to start testing the features and benefits of WooCommerce Payments":["Du \u00e4r redo att b\u00f6rja testa funktionerna och f\u00f6rdelarna med WooCommerce Payments."],"You\u2019re only steps away from getting ready to be paid":["Du \u00e4r bara n\u00e5gra steg bort fr\u00e5n att vara redo att ta emot betalningar."],"Deposits are not available during the trial period. To start processing real transactions and receive payments and payouts, upgrade to a paid plan<\/a>.":["Ins\u00e4ttningar \u00e4r inte tillg\u00e4ngliga under provperioden. F\u00f6r att b\u00f6rja bearbeta riktiga transaktioner och ta emot betalningar och utbetalningar, uppgradera till ett betalt paket<\/a>."],"Only Administrators and Store Managers can place orders during the free trial. If you are ready to accept payments from customers, upgrade to a paid plan<\/a>.":["Endast administrat\u00f6rer och butikschefer kan l\u00e4gga best\u00e4llningar under gratis provperiod. Om du \u00e4r redo att ta emot betalningar fr\u00e5n kunder, uppgradera till ett betalt paket<\/a>."]}}} -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ### Changes proposed in this Pull Request: 2 | 3 | 4 | 5 | Closes # . 6 | 7 | 8 | 9 | - [ ] This PR is a very minor change/addition and does not require testing instructions (if checked you can ignore/remove the next section). 10 | 11 | 12 | 13 | ### How to test the changes in this Pull Request: 14 | 15 | 16 | 17 | - [ ] Have you followed the [Writing high-quality testing instructions guide](https://github.com/woocommerce/woocommerce/wiki/Writing-high-quality-testing-instructions)? 18 | 19 | 1. 20 | 2. 21 | 3. 22 | 23 | 24 | 25 | ### Other information: 26 | 27 | - [ ] Have you added an explanation of what your changes do and why you'd like us to include them? 28 | - [ ] Have you written new tests for your changes, as applicable? 29 | 30 | 31 | 32 | ### FOR PR REVIEWER ONLY: 33 | 34 | - [ ] I have reviewed that everything is sanitized/escaped appropriately for any SQL or XSS injection possibilities. I made sure Linting is not ignored or disabled. 35 | -------------------------------------------------------------------------------- /includes/free-trial/class-wc-calypso-bridge-free-trial-wc-payments.php: -------------------------------------------------------------------------------- 1 | is_admin_or_embed_page() ) { 43 | add_action('admin_enqueue_scripts', function() { 44 | wp_enqueue_script( 'wp-calypso-bridge-free-trial-wc-payments', WC_Calypso_Bridge_Instance()->get_asset_path() . 'assets/scripts/free-trial-wc-payments.js', array(), WC_CALYPSO_BRIDGE_CURRENT_VERSION, true ); 45 | }); 46 | } 47 | }); 48 | 49 | } 50 | } 51 | 52 | WC_Calypso_Bridge_Free_Trial_WC_Payments::get_instance(); 53 | -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-de_DE-d306b16f43f72fde801a43dea46bfd64.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2025-08-12 11:47:14+0000","generator":"WP-CLI\/2.10.0","source":"assets\/scripts\/free-trial-wc-payments.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"de","plural-forms":"nplurals=2; plural=n != 1;"},"You\u2019re ready to start testing the features and benefits of WooCommerce Payments":["Du bist bereit, die Funktionen und Vorteile von WooCommerce Payments zu testen"],"You\u2019re only steps away from getting ready to be paid":["Nur noch ein paar Schritte und du bist bereit, Zahlungen zu empfangen"],"Deposits are not available during the trial period. To start processing real transactions and receive payments and payouts, upgrade to a paid plan<\/a>.":["Einzahlungen sind w\u00e4hrend des Gratis-Tests nicht verf\u00fcgbar. F\u00fchre ein Upgrade auf einen kostenpflichtigen Tarif<\/a> durch, um echte Transaktionen zu verarbeiten und Zahlungen sowie Auszahlungen zu erhalten."],"Only Administrators and Store Managers can place orders during the free trial. If you are ready to accept payments from customers, upgrade to a paid plan<\/a>.":["Nur Administratoren und Shop-Manager k\u00f6nnen w\u00e4hrend des Gratis-Tests Bestellungen aufgeben. Wenn du bereit bist, Zahlungen von Kunden zu empfangen, f\u00fchre ein Upgrade auf einen kostenpflichtigen Tarif<\/a> durch."]}}} -------------------------------------------------------------------------------- /scripts/commands/bump-version.js: -------------------------------------------------------------------------------- 1 | import { 2 | getCurrentVersion, 3 | promptChangeDegree, 4 | updateWCCalypsoBridgeVersion, 5 | updateComposerJsonVersion, 6 | error, 7 | isCorrectNodeVersion, 8 | promptContinue, 9 | createNewBranch, 10 | createNewCommit, 11 | } from '../utils.js'; 12 | import { inc as incVersion } from 'semver'; 13 | 14 | /** 15 | * Bumps the version number in the composer.json file and the wc-calypso-bridge.php file. 16 | */ 17 | export default async function bumpVersion() { 18 | if ( ! isCorrectNodeVersion() ) { 19 | error( 20 | `Your version of NodeJS is not correct. Please install NodeJS v${ getNvmrcVersion() }.` 21 | ); 22 | return; 23 | } 24 | 25 | const degree = await promptChangeDegree(); 26 | 27 | const currentVersion = getCurrentVersion().replace( 'v', '' ); 28 | const newVersion = incVersion( currentVersion, degree ); 29 | 30 | const shouldContinue = await promptContinue( 31 | `Are you sure you want to bump the version from ${ currentVersion } to ${ newVersion }?` 32 | ); 33 | 34 | if ( ! shouldContinue ) { 35 | return error( 'Aborting version bump.' ); 36 | } 37 | 38 | if ( ! ( await createNewBranch( `update-version-${ newVersion }` ) ) ) { 39 | return error( 'Aborting version bump.' ); 40 | } 41 | 42 | updateComposerJsonVersion( `v${ newVersion }` ); 43 | updateWCCalypsoBridgeVersion( newVersion ); 44 | 45 | if ( ! ( await createNewCommit( `Bump version to ${ newVersion }` ) ) ) { 46 | return error( 'Aborting version bump.' ); 47 | } 48 | 49 | return true; 50 | } 51 | -------------------------------------------------------------------------------- /includes/class-wc-calypso-bridge-free-trial-store-details-task.php: -------------------------------------------------------------------------------- 1 | tasks as $index => $task) { 44 | if ( $task->get_id() === 'store_details' ) { 45 | require_once __DIR__ . '/tasks/class-wc-calypso-task-free-trial-store-details.php'; 46 | $lists['setup']->tasks[$index] = new \Automattic\WooCommerce\Admin\Features\OnboardingTasks\Tasks\TrialStoreDetails( $lists['setup'] ); 47 | } 48 | } 49 | } 50 | return $lists; 51 | } 52 | } 53 | 54 | WC_Calypso_Bridge_Free_Trial_Store_Details_Task::get_instance(); 55 | -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-fr_FR-d306b16f43f72fde801a43dea46bfd64.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2025-05-12 13:53:02+0000","generator":"WP-CLI\/2.10.0","source":"assets\/scripts\/free-trial-wc-payments.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"fr","plural-forms":"nplurals=2; plural=n > 1;"},"You\u2019re ready to start testing the features and benefits of WooCommerce Payments":["Vous \u00eates pr\u00eat \u00e0 tester les fonctionnalit\u00e9s et les avantages de WooCommerce Payments."],"You\u2019re only steps away from getting ready to be paid":["Il ne reste que quelques \u00e9tapes avant que vous puissiez \u00eatre pay\u00e9"],"Deposits are not available during the trial period. To start processing real transactions and receive payments and payouts, upgrade to a paid plan<\/a>.":["Les acomptes ne sont pas disponibles pendant la p\u00e9riode d\u2019essai. Pour commencer \u00e0 traiter les transactions r\u00e9elles et recevoir des paiements et des versements, passez \u00e0 un plan payant<\/a>."],"Only Administrators and Store Managers can place orders during the free trial. If you are ready to accept payments from customers, upgrade to a paid plan<\/a>.":["Seuls les administrateurs et les g\u00e9rants de boutique peuvent passer des commandes pendant l\u2019essai gratuit. Si vous \u00eates pr\u00eat \u00e0 accepter les paiements des clients, passez \u00e0 un plan payant<\/a>."]}}} -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-fr_BE-d306b16f43f72fde801a43dea46bfd64.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2024-02-05 11:59:40+0000","generator":"WP-CLI\/2.10.0","source":"assets\/scripts\/free-trial-wc-payments.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"fr_BE","plural-forms":"nplurals=2; plural=n != 1;"},"You\u2019re ready to start testing the features and benefits of WooCommerce Payments":["Vous \u00eates pr\u00eat \u00e0 tester les fonctionnalit\u00e9s et les avantages de WooCommerce Payments."],"You\u2019re only steps away from getting ready to be paid":["Il ne reste que quelques \u00e9tapes avant que vous puissiez \u00eatre pay\u00e9"],"Deposits are not available during the trial period. To start processing real transactions and receive payments and payouts, upgrade to a paid plan<\/a>.":["Les acomptes ne sont pas disponibles pendant la p\u00e9riode d\u2019essai. Pour commencer \u00e0 traiter les transactions r\u00e9elles et recevoir des paiements et des versements, passez \u00e0 un plan payant<\/a>."],"Only Administrators and Store Managers can place orders during the free trial. If you are ready to accept payments from customers, upgrade to a paid plan<\/a>.":["Seuls les administrateurs et les g\u00e9rants de boutique peuvent passer des commandes pendant l\u2019essai gratuit. Si vous \u00eates pr\u00eat \u00e0 accepter les paiements des clients, passez \u00e0 un plan payant<\/a>."]}}} -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-fr_CA-d306b16f43f72fde801a43dea46bfd64.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2024-09-02 11:55:47+0000","generator":"WP-CLI\/2.10.0","source":"assets\/scripts\/free-trial-wc-payments.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"fr_CA","plural-forms":"nplurals=2; plural=n != 1;"},"You\u2019re ready to start testing the features and benefits of WooCommerce Payments":["Vous \u00eates pr\u00eat \u00e0 tester les fonctionnalit\u00e9s et les avantages de WooCommerce Payments."],"You\u2019re only steps away from getting ready to be paid":["Il ne reste que quelques \u00e9tapes avant que vous puissiez \u00eatre pay\u00e9"],"Deposits are not available during the trial period. To start processing real transactions and receive payments and payouts, upgrade to a paid plan<\/a>.":["Les acomptes ne sont pas disponibles pendant la p\u00e9riode d\u2019essai. Pour commencer \u00e0 traiter les transactions r\u00e9elles et recevoir des paiements et des versements, passez \u00e0 un plan payant<\/a>."],"Only Administrators and Store Managers can place orders during the free trial. If you are ready to accept payments from customers, upgrade to a paid plan<\/a>.":["Seuls les administrateurs et les g\u00e9rants de boutique peuvent passer des commandes pendant l\u2019essai gratuit. Si vous \u00eates pr\u00eat \u00e0 accepter les paiements des clients, passez \u00e0 un plan payant<\/a>."]}}} -------------------------------------------------------------------------------- /src/track-menu-item.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import { recordTracksEvent } from '@automattic/calypso-analytics'; 5 | 6 | const trackUpgradePlansClick = () => { 7 | // Track clicks on the "Upgrades > Plans" menu item in the sidebar 8 | // Find all links under Upgrades that point to /plans/* paths 9 | const possiblePlansLinks = document.querySelectorAll( 10 | '#toplevel_page_paid-upgrades a[href^="https://wordpress.com/plans/"]' 11 | ); 12 | possiblePlansLinks.forEach( ( possiblePlanLink ) => { 13 | const href = possiblePlanLink.getAttribute( 'href' ); 14 | if ( 15 | ! href || 16 | typeof href !== 'string' || 17 | ! href.startsWith( 'https://wordpress.com/plans/' ) 18 | ) { 19 | return; 20 | } 21 | 22 | // Check if we're navigating to /plans/:siteSlug or some deeper path below /plans/[something]/siteSlug 23 | // The implementation can be changed to be simpler or different, but the check is needed. 24 | const hasDeeperPath = href.substring( 28 ).includes( '/' ); 25 | if ( hasDeeperPath ) { 26 | return; 27 | } 28 | 29 | possiblePlanLink.addEventListener( 'click', function () { 30 | // Note that we also track this event in Calypso Screen via wp-calypso. If you change this event, please update it there as well. See: https://github.com/Automattic/wp-calypso/pull/77303. 31 | recordTracksEvent( 'calypso_sidebar_item_click', { 32 | path: '/plans', 33 | } ); 34 | } ); 35 | } ); 36 | }; 37 | 38 | document.addEventListener( 'DOMContentLoaded', () => { 39 | trackUpgradePlansClick(); 40 | } ); 41 | -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-tr_TR-d306b16f43f72fde801a43dea46bfd64.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2025-03-19 11:54:03+0000","generator":"WP-CLI\/2.10.0","source":"assets\/scripts\/free-trial-wc-payments.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"tr","plural-forms":"nplurals=2; plural=(n > 1);"},"You\u2019re ready to start testing the features and benefits of WooCommerce Payments":["WooCommerce Payments'\u0131n \u00f6zelliklerini ve avantajlar\u0131n\u0131 test etmeye haz\u0131rs\u0131n\u0131z"],"You\u2019re only steps away from getting ready to be paid":["\u00d6deme almaya haz\u0131r olman\u0131za sadece birka\u00e7 ad\u0131m kald\u0131"],"Deposits are not available during the trial period. To start processing real transactions and receive payments and payouts, upgrade to a paid plan<\/a>.":["\u00dccretsiz deneme s\u00fcresi boyunca yat\u0131r\u0131lan para kullan\u0131lamaz. Ger\u00e7ek i\u015flemleri i\u015flemeye ba\u015flamak ve \u00f6demeleri almak i\u00e7in \u00fccretli bir pakete y\u00fckseltin<\/a>."],"Only Administrators and Store Managers can place orders during the free trial. If you are ready to accept payments from customers, upgrade to a paid plan<\/a>.":["\u00dccretsiz deneme s\u00fcresi boyunca yaln\u0131zca Y\u00f6neticiler ve Ma\u011faza Y\u00f6neticileri sipari\u015f verebilir. M\u00fc\u015fterilerden \u00f6deme almaya haz\u0131rsan\u0131z \u00fccretli bir pakete y\u00fckseltin<\/a>."]}}} -------------------------------------------------------------------------------- /scripts/release.js: -------------------------------------------------------------------------------- 1 | import chalk from 'chalk'; 2 | 3 | import buildRelease from './commands/build.js'; 4 | import tagRelease from './commands/tag.js'; 5 | import { 6 | NOTICE_LEVEL, 7 | isCorrectNodeVersion, 8 | getCurrentBranchName, 9 | getCurrentVersion, 10 | getNvmrcVersion, 11 | promptContinue, 12 | success, 13 | switchToBranchWithMessage, 14 | abortAndSwitchToBranch, 15 | } from './utils.js'; 16 | 17 | async function main() { 18 | if ( ! isCorrectNodeVersion() ) { 19 | return abortAndSwitchToBranch( 20 | `Your version of NodeJS is not correct. Please install NodeJS v${ getNvmrcVersion() }.`, 21 | NOTICE_LEVEL.ERROR 22 | ); 23 | } 24 | 25 | const currentBranchName = await getCurrentBranchName(); 26 | let res = null; 27 | let shouldContinue = null; 28 | 29 | res = await buildRelease( currentBranchName ); 30 | if ( ! res ) { 31 | return; 32 | } 33 | 34 | const version = getCurrentVersion(); 35 | 36 | shouldContinue = await promptContinue( 37 | `We've built the release for ${ chalk.blue( 38 | version 39 | ) }. Would you like to tag the release and deploy? You will be prompted one more time before the release is published.` 40 | ); 41 | 42 | if ( ! shouldContinue ) { 43 | return abortAndSwitchToBranch( 44 | 'Aborting release deploy.', 45 | NOTICE_LEVEL.INFO, 46 | currentBranchName 47 | ); 48 | } 49 | 50 | res = await tagRelease( currentBranchName ); 51 | if ( ! res ) { 52 | return; 53 | } 54 | 55 | await switchToBranchWithMessage( currentBranchName ); 56 | success( 'Release complete!' ); 57 | } 58 | 59 | main(); 60 | -------------------------------------------------------------------------------- /.github/workflows/check-coding-standards.yml: -------------------------------------------------------------------------------- 1 | name: PHP Coding Stadards 2 | 3 | on: 4 | workflow_call: 5 | 6 | jobs: 7 | 8 | php-coding-standards: 9 | name: Coding standards 10 | runs-on: ubuntu-latest 11 | 12 | steps: 13 | 14 | - name: Checkout repository 15 | uses: actions/checkout@v3 16 | 17 | - name: Set up PHP 18 | uses: shivammathur/setup-php@v2 19 | with: 20 | php-version: '8.0' 21 | coverage: none 22 | tools: composer, cs2pr 23 | 24 | - name: Log debug information 25 | run: | 26 | php --version 27 | composer --version 28 | 29 | - name: Check for syntax errors 30 | run: sh -c "! (find . \( -path ./tmp -o -path ./tests -o -path ./vendor \) -prune -o \( -name '*.php' \) -exec php -ln {} \; | grep -v \"No syntax errors detected\")" 31 | 32 | - name: Install Composer dependencies 33 | run: | 34 | composer install --prefer-dist --no-suggest --no-progress --no-ansi --no-interaction 35 | echo "${PWD}/vendor/bin" >> $GITHUB_PATH 36 | 37 | - name: Log PHPCS debug information 38 | run: phpcs -i 39 | 40 | - name: Run PHPCS on all files 41 | run: phpcs --warning-severity=0 --extensions=php,html --report=checkstyle --sniffs=WordPress.Security.ValidatedSanitizedInput,WordPress.DateTime.RestrictedFunctions,Generic.PHP.ForbiddenFunctions . -q -n | cs2pr 42 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/2-enhancement.yml: -------------------------------------------------------------------------------- 1 | name: ✨ Enhancement Request 2 | description: If you have an idea to improve an existing feature or need something for development (such as a new hook) please let us know or submit a Pull Request! 3 | title: "[Enhancement]: " 4 | labels: ["type: enhancement"] 5 | body: 6 | - type: markdown 7 | attributes: 8 | value: | 9 | ### Thanks for contributing! 10 | 11 | Please provide us with the information requested in this form. 12 | 13 | Feel free to contribute to any existing issues. 14 | Search tip: You can filter our issues using [our enhancement label](https://github.com/Automattic/wc-calypso-bridge/issues?q=is%3Aissue+label%3A%22type%3A+enhancement%22+). 15 | Search tip: Make use of [GitHub's search syntax to refine your search](https://help.github.com/en/github/searching-for-information-on-github/searching-issues-and-pull-requests). 16 | - type: textarea 17 | id: summary 18 | attributes: 19 | label: Describe the solution you'd like 20 | description: A clear and concise description of what you want to happen. 21 | validations: 22 | required: true 23 | - type: textarea 24 | id: alternative 25 | attributes: 26 | label: Describe alternatives you've considered 27 | description: A clear and concise description of any alternative solutions or features you've considered. 28 | - type: textarea 29 | id: context 30 | attributes: 31 | label: Additional context 32 | description: Add any other context or screenshots about the feature request here. 33 | -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-zh_TW-d306b16f43f72fde801a43dea46bfd64.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2025-03-26 09:54:03+0000","generator":"WP-CLI\/2.10.0","source":"assets\/scripts\/free-trial-wc-payments.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"zh_TW","plural-forms":"nplurals=1; plural=0;"},"You\u2019re ready to start testing the features and benefits of WooCommerce Payments":["\u4f60\u6e96\u5099\u597d\u958b\u59cb\u6e2c\u8a66 WooCommerce Payments \u7684\u529f\u80fd\u548c\u512a\u52e2\u4e86"],"You\u2019re only steps away from getting ready to be paid":["\u53ea\u8981\u518d\u5e7e\u500b\u6b65\u9a5f\uff0c\u5c31\u80fd\u958b\u59cb\u6536\u6b3e"],"Deposits are not available during the trial period. To start processing real transactions and receive payments and payouts, upgrade to a paid plan<\/a>.":["\u8a66\u7528\u671f\u4e0d\u63d0\u4f9b\u532f\u6b3e\u529f\u80fd\u3002 \u82e5\u8981\u958b\u59cb\u8655\u7406\u771f\u6b63\u7684\u4ea4\u6613\u548c\u6536\u4ed8\u6b3e\uff0c\u8acb\u5347\u7d1a\u70ba\u4ed8\u8cbb\u65b9\u6848<\/a>\u3002"],"Only Administrators and Store Managers can place orders during the free trial. If you are ready to accept payments from customers, upgrade to a paid plan<\/a>.":["\u514d\u8cbb\u8a66\u7528\u671f\u53ea\u6709\u7ba1\u7406\u54e1\u548c\u5546\u5e97\u7d93\u7406\u53ef\u4ee5\u4e0b\u55ae\u3002 \u5982\u679c\u4f60\u5df2\u6e96\u5099\u597d\u63a5\u53d7\u9867\u5ba2\u4ed8\u6b3e\uff0c\u8acb\u5347\u7d1a\u70ba\u4ed8\u8cbb\u65b9\u6848<\/a>\u3002"]}}} -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-zh_CN-d306b16f43f72fde801a43dea46bfd64.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2025-03-25 09:54:03+0000","generator":"WP-CLI\/2.10.0","source":"assets\/scripts\/free-trial-wc-payments.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"zh_CN","plural-forms":"nplurals=1; plural=0;"},"You\u2019re ready to start testing the features and benefits of WooCommerce Payments":["\u60a8\u73b0\u5728\u53ef\u4ee5\u5f00\u59cb\u6d4b\u8bd5 WooCommerce Payments \u7684\u529f\u80fd\u548c\u4f18\u52bf\u4e86\u3002"],"You\u2019re only steps away from getting ready to be paid":["\u53ea\u5dee\u51e0\u6b65\uff0c\u60a8\u5c31\u53ef\u4ee5\u83b7\u5f97\u4ed8\u6b3e\u4e86"],"Deposits are not available during the trial period. To start processing real transactions and receive payments and payouts, upgrade to a paid plan<\/a>.":["\u5b58\u6b3e\u529f\u80fd\u5728\u8bd5\u7528\u671f\u95f4\u4e0d\u53ef\u7528\u3002 \u82e5\u60f3\u5f00\u59cb\u5904\u7406\u771f\u5b9e\u4ea4\u6613\u5e76\u6536\u4ed8\u6b3e\uff0c\u8bf7\u5347\u7ea7\u81f3\u4ed8\u8d39\u5957\u9910<\/a>\u3002"],"Only Administrators and Store Managers can place orders during the free trial. If you are ready to accept payments from customers, upgrade to a paid plan<\/a>.":["\u53ea\u6709\u7ba1\u7406\u5458\u548c\u5546\u5e97\u7ecf\u7406\u53ef\u4ee5\u5728\u514d\u8d39\u8bd5\u7528\u7248\u4e2d\u4e0b\u5355\u3002 \u5982\u679c\u60a8\u5df2\u51c6\u5907\u597d\u63a5\u6536\u5ba2\u6237\u4ed8\u6b3e\uff0c\u8bf7\u5347\u7ea7\u81f3\u4ed8\u8d39\u5957\u9910<\/a>\u3002"]}}} -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-zh_SG-d306b16f43f72fde801a43dea46bfd64.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2025-03-25 09:54:03+0000","generator":"WP-CLI\/2.10.0","source":"assets\/scripts\/free-trial-wc-payments.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"zh_SG","plural-forms":"nplurals=1; plural=0;"},"You\u2019re ready to start testing the features and benefits of WooCommerce Payments":["\u60a8\u73b0\u5728\u53ef\u4ee5\u5f00\u59cb\u6d4b\u8bd5 WooCommerce Payments \u7684\u529f\u80fd\u548c\u4f18\u52bf\u4e86\u3002"],"You\u2019re only steps away from getting ready to be paid":["\u53ea\u5dee\u51e0\u6b65\uff0c\u60a8\u5c31\u53ef\u4ee5\u83b7\u5f97\u4ed8\u6b3e\u4e86"],"Deposits are not available during the trial period. To start processing real transactions and receive payments and payouts, upgrade to a paid plan<\/a>.":["\u5b58\u6b3e\u529f\u80fd\u5728\u8bd5\u7528\u671f\u95f4\u4e0d\u53ef\u7528\u3002 \u82e5\u60f3\u5f00\u59cb\u5904\u7406\u771f\u5b9e\u4ea4\u6613\u5e76\u6536\u4ed8\u6b3e\uff0c\u8bf7\u5347\u7ea7\u81f3\u4ed8\u8d39\u5957\u9910<\/a>\u3002"],"Only Administrators and Store Managers can place orders during the free trial. If you are ready to accept payments from customers, upgrade to a paid plan<\/a>.":["\u53ea\u6709\u7ba1\u7406\u5458\u548c\u5546\u5e97\u7ecf\u7406\u53ef\u4ee5\u5728\u514d\u8d39\u8bd5\u7528\u7248\u4e2d\u4e0b\u5355\u3002 \u5982\u679c\u60a8\u5df2\u51c6\u5907\u597d\u63a5\u6536\u5ba2\u6237\u4ed8\u6b3e\uff0c\u8bf7\u5347\u7ea7\u81f3\u4ed8\u8d39\u5957\u9910<\/a>\u3002"]}}} -------------------------------------------------------------------------------- /store-on-wpcom/inc/wc-calypso-bridge-jetpack-hotfixes.php: -------------------------------------------------------------------------------- 1 | 5 second) response 14 | * times during the shutdown action for things like product creation 15 | * 16 | * See also https://core.trac.wordpress.org/ticket/41358#ticket 17 | * See also https://github.com/Automattic/jetpack/pull/7482 18 | * 19 | * This can be removed once we have either of the two fixes above released. The first 20 | * trigger string is typical of a direct request (e.g. ala Postman) and the second 21 | * trigger string is typical of a request from WordPress.com for Jetpack. 22 | * 23 | * See also https://github.com/woocommerce/woocommerce/pull/16158 24 | * 25 | * @since 0.1.0 26 | * @version 0.1.0 27 | */ 28 | 29 | function wc_calypso_bridge_jetpack_sync_sender_should_load( $sender_should_load ) { 30 | $trigger_strings = array( '/wp-json/wc/v', '/?rest_route=%2Fwc%2Fv' ); 31 | 32 | foreach( $trigger_strings as $trigger_string ) { 33 | $request_uri = isset( $_SERVER[ 'REQUEST_URI' ] ) ? sanitize_text_field( wp_unslash( $_SERVER[ 'REQUEST_URI' ] ) ) : ''; 34 | if ( false !== strpos( $request_uri, $trigger_string ) ) { 35 | $sender_should_load = false; 36 | break; 37 | } 38 | } 39 | 40 | return $sender_should_load; 41 | } 42 | 43 | if ( ! function_exists( 'wc_api_dev_jetpack_sync_sender_should_load' ) ) { 44 | add_filter( 'jetpack_sync_sender_should_load', 'wc_calypso_bridge_jetpack_sync_sender_should_load', 999 ); 45 | } 46 | -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-ko_KR-beb9e19fb5e7cb316b39d09ff6ca8bdf.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2025-03-19 09:54:03+0000","generator":"WP-CLI\/2.10.0","source":"build\/53.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"ko_KR","plural-forms":"nplurals=1; plural=0;"},"Payment illustration":["\uacb0\uc81c \uc77c\ub7ec\uc2a4\ud2b8\ub808\uc774\uc158"],"By clicking \"Test payments\", you agree to the {{tosLink}}Terms of Service{{\/tosLink}}":["\"\uacb0\uc81c \ud14c\uc2a4\ud2b8\"\ub97c \ud074\ub9ad\ud558\uba74 {{tosLink}}\uc11c\ube44\uc2a4 \uc57d\uad00{{\/tosLink}}\uc5d0 \ub3d9\uc758\ud558\ub294 \uac83\uc785\ub2c8\ub2e4."],"Power your payments with a simple, all-in-one option. Verify your business details to start testing transactions with WooCommerce Payments.":["\uac04\ub2e8\ud55c \uc77c\uccb4\ud615 \uc635\uc158\uc73c\ub85c \uacb0\uc81c\ub97c \uac15\ud654\ud558\uc138\uc694. WooCommerce Payments\ub85c \uac70\ub798 \ud14c\uc2a4\ud2b8\ub97c \uc2dc\uc791\ud560 \ube44\uc988\ub2c8\uc2a4 \uc0c1\uc138 \uc815\ubcf4\ub97c \ud655\uc778\ud558\uc138\uc694."],"Test payments":["\uacb0\uc81c \ud14c\uc2a4\ud2b8"],"Give your customers an easy and convenient way to pay! Set up and test some of our fast and secure online or in person payment methods.":["\uace0\uac1d\uc5d0\uac8c \uc27d\uace0 \ud3b8\ub9ac\ud55c \uacb0\uc81c \ubc29\ubc95\uc744 \uc81c\uacf5\ud558\uc138\uc694! \ube60\ub974\uace0 \uc548\uc804\ud55c \uc628\ub77c\uc778 \ub610\ub294 \uc9c1\uc811 \uacb0\uc81c \uc218\ub2e8\uc744 \uc124\uc815\ud558\uace0 \ud14c\uc2a4\ud2b8\ud558\uc138\uc694."],"It\u2019s time to test payments":["\uacb0\uc81c\ub97c \ud14c\uc2a4\ud2b8\ud560 \uc2dc\uac04\uc785\ub2c8\ub2e4."]}}} -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-ko_KR-ce1126179ccf98c51c6a61cf74680416.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2025-03-19 09:54:03+0000","generator":"WP-CLI\/2.10.0","source":"build\/src_free-trial_fills_index_ts.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"ko_KR","plural-forms":"nplurals=1; plural=0;"},"Payment illustration":["\uacb0\uc81c \uc77c\ub7ec\uc2a4\ud2b8\ub808\uc774\uc158"],"By clicking \"Test payments\", you agree to the {{tosLink}}Terms of Service{{\/tosLink}}":["\"\uacb0\uc81c \ud14c\uc2a4\ud2b8\"\ub97c \ud074\ub9ad\ud558\uba74 {{tosLink}}\uc11c\ube44\uc2a4 \uc57d\uad00{{\/tosLink}}\uc5d0 \ub3d9\uc758\ud558\ub294 \uac83\uc785\ub2c8\ub2e4."],"Power your payments with a simple, all-in-one option. Verify your business details to start testing transactions with WooCommerce Payments.":["\uac04\ub2e8\ud55c \uc77c\uccb4\ud615 \uc635\uc158\uc73c\ub85c \uacb0\uc81c\ub97c \uac15\ud654\ud558\uc138\uc694. WooCommerce Payments\ub85c \uac70\ub798 \ud14c\uc2a4\ud2b8\ub97c \uc2dc\uc791\ud560 \ube44\uc988\ub2c8\uc2a4 \uc0c1\uc138 \uc815\ubcf4\ub97c \ud655\uc778\ud558\uc138\uc694."],"Test payments":["\uacb0\uc81c \ud14c\uc2a4\ud2b8"],"Give your customers an easy and convenient way to pay! Set up and test some of our fast and secure online or in person payment methods.":["\uace0\uac1d\uc5d0\uac8c \uc27d\uace0 \ud3b8\ub9ac\ud55c \uacb0\uc81c \ubc29\ubc95\uc744 \uc81c\uacf5\ud558\uc138\uc694! \ube60\ub974\uace0 \uc548\uc804\ud55c \uc628\ub77c\uc778 \ub610\ub294 \uc9c1\uc811 \uacb0\uc81c \uc218\ub2e8\uc744 \uc124\uc815\ud558\uace0 \ud14c\uc2a4\ud2b8\ud558\uc138\uc694."],"It\u2019s time to test payments":["\uacb0\uc81c\ub97c \ud14c\uc2a4\ud2b8\ud560 \uc2dc\uac04\uc785\ub2c8\ub2e4."]}}} -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- 1 | const defaultConfig = require( '@wordpress/scripts/config/webpack.config' ); 2 | const WooCommerceDependencyExtractionWebpackPlugin = require( '@woocommerce/dependency-extraction-webpack-plugin' ); 3 | const I18nLoaderWebpackPlugin = require( '@automattic/i18n-loader-webpack-plugin' ); 4 | const path = require( 'path' ); 5 | 6 | // Import variables and mixins from the stylesheets directory so they can be used in all scss files. 7 | defaultConfig.module.rules.push( { 8 | test: /\.(sc|sa)ss$/, 9 | use: [ 10 | { 11 | loader: 'sass-loader', 12 | options: { 13 | sassOptions: { 14 | includePaths: [ 15 | path.resolve( __dirname, 'src/stylesheets' ), 16 | ], 17 | }, 18 | // Prepends Sass/SCSS code before the actual entry file 19 | additionalData: ( content ) => { 20 | return ( 21 | '@import "_variables"; ' + 22 | '@import "_mixins"; ' + 23 | content 24 | ); 25 | }, 26 | }, 27 | }, 28 | ], 29 | } ); 30 | 31 | // Disable exports mangling to ensure the exported i18n loader method name `loadTranslations` is preserved, 32 | // as it's being referred by name in the I18nLoaderWebpackPlugin's runtime template. 33 | defaultConfig.optimization.mangleExports = false; 34 | 35 | module.exports = { 36 | ...defaultConfig, 37 | plugins: [ 38 | ...defaultConfig.plugins.filter( 39 | ( plugin ) => 40 | plugin.constructor.name !== 'DependencyExtractionWebpackPlugin' 41 | ), 42 | new WooCommerceDependencyExtractionWebpackPlugin(), 43 | new I18nLoaderWebpackPlugin( { 44 | textdomain: 'wc-calypso-bridge', 45 | loaderModule: './src/i18n-loader', 46 | loaderMethod: 'loadTranslations', 47 | } ), 48 | ], 49 | }; 50 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "automattic/wc-calypso-bridge", 3 | "version": "v2.11.3", 4 | "license": "GPL-2.0-or-later", 5 | "autoload": { 6 | "files": [ 7 | "wc-calypso-bridge.php" 8 | ] 9 | }, 10 | "repositories": [ 11 | { 12 | "type": "package", 13 | "package": { 14 | "name": "automattic/gridicons", 15 | "version": "3.1.1", 16 | "source": { 17 | "url": "https://github.com/Automattic/gridicons", 18 | "type": "git", 19 | "reference": "master" 20 | } 21 | } 22 | } 23 | ], 24 | "require-dev": { 25 | "phpunit/phpunit": "^8.0.0", 26 | "squizlabs/php_codesniffer": "*", 27 | "wp-coding-standards/wpcs": "1.1.0", 28 | "woocommerce/woocommerce-sniffs": "*", 29 | "wimg/php-compatibility": "9.0.0", 30 | "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", 31 | "yoast/phpunit-polyfills": "^1.0", 32 | "wp-cli/wp-cli-bundle": "^2.8.1", 33 | "sirbrillig/phpcs-changed": "^2.11", 34 | "composer/installers": "~1.2" 35 | }, 36 | "scripts": { 37 | "test": [ 38 | "phpunit" 39 | ], 40 | "phpcs": [ 41 | "phpcs -s -p" 42 | ], 43 | "phpcbf": [ 44 | "phpcbf -p" 45 | ] 46 | }, 47 | "extra": { 48 | "scripts-description": { 49 | "test": "Run unit tests", 50 | "phpcs": "Analyze code against the WordPress coding standards with PHP_CodeSniffer", 51 | "phpcbf": "Fix coding standards warnings/errors automatically with PHP Code Beautifier" 52 | } 53 | }, 54 | "config": { 55 | "allow-plugins": { 56 | "composer/installers": true, 57 | "dealerdirect/phpcodesniffer-composer-installer": true 58 | } 59 | } 60 | } -------------------------------------------------------------------------------- /src/payments-welcome/cards/cb.js: -------------------------------------------------------------------------------- 1 | export default () => ( 2 | /* eslint-disable */ 3 | 10 | 19 | 25 | 26 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | /* eslint-enable */ 41 | ); 42 | -------------------------------------------------------------------------------- /bin/check-versions.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | REQUIRED_VERSION=$1 3 | echo -e "${BLUE}Checking for version: $REQUIRED_VERSION${NC}" 4 | PACKAGE_BASE=$(echo "$GITHUB_REPOSITORY" | awk -F'/' '{print $2}' ) 5 | 6 | # HELPERS. 7 | BLUE='\033[0;32m' 8 | NC='\033[0m' # No Color 9 | UNDERLINE_START='\e[4m' 10 | UNDERLINE_STOP='\e[0m' 11 | 12 | # GET BASE PHP VERSIONS. 13 | PHP_DOCKBLOCK_VERSION=$( awk '/\* *Version/ {print}' $PACKAGE_BASE.php | sed 's/[^0-9.]*\([0-9.]*\).*/\1/' ) 14 | PHP_CURRENT_VERSION=$( awk '/WC_CALYPSO_BRIDGE_CURRENT_VERSION\047, \047/ {print}' $PACKAGE_BASE.php | sed 's/[^0-9.]*\([0-9.]*\).*/\1/' ) 15 | if [[ $PHP_DOCKBLOCK_VERSION != $REQUIRED_VERSION ]]; then 16 | echo "Wrong version in the PHP main file... Exiting with error." 17 | exit 1 18 | fi 19 | 20 | if [[ $PHP_DOCKBLOCK_VERSION != $PHP_CURRENT_VERSION ]]; then 21 | echo "Different Versions in the main PHP file... Exiting with error." 22 | exit 1 23 | else 24 | echo -e "${BLUE}- Main PHP file versions: OK${NC}" 25 | fi 26 | 27 | COMPOSER_VERSION=$(awk -F'"' '/version/{print $4; exit}' composer.json | sed 's/^v\?\(.*\)/\1/' | sed 's/[^0-9.]*\([0-9.]*\).*/\1/') 28 | if [[ $COMPOSER_VERSION != $PHP_CURRENT_VERSION ]]; then 29 | echo "composer.json version does not match with main file... Exiting with error." 30 | exit 1 31 | else 32 | echo -e "${BLUE}- composer.json version: OK${NC}" 33 | fi 34 | 35 | CHANGELOG_EXIST=$( awk "/= $PHP_CURRENT_VERSION =/" readme.txt ) 36 | if [[ -z $CHANGELOG_EXIST ]]; then 37 | echo "No changelog entry found... Exiting with error." 38 | exit 1 39 | else 40 | echo -e "${BLUE}- Changelog version: OK${NC}" 41 | fi 42 | 43 | echo -e "${UNDERLINE_START}File versions checked. Moving on...${UNDERLINE_STOP}" 44 | exit 0 45 | -------------------------------------------------------------------------------- /src/free-trial/tax/manual-configuration/index.tsx: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import { __ } from '@wordpress/i18n'; 5 | import { useState } from '@wordpress/element'; 6 | import { Stepper } from '@woocommerce/components'; 7 | 8 | /** 9 | * Internal dependencies 10 | */ 11 | import { Configure } from './configure'; 12 | import { StoreLocation } from '../components/store-location'; 13 | 14 | export type ManualConfigurationProps = { 15 | isPending: boolean; 16 | onDisable: () => void; 17 | onAutomate: () => void; 18 | onManual: () => void; 19 | }; 20 | 21 | export const ManualConfiguration: React.FC< ManualConfigurationProps > = ( { 22 | isPending, 23 | onDisable, 24 | onAutomate, 25 | onManual, 26 | } ) => { 27 | const [ stepIndex, setStepIndex ] = useState( 0 ); 28 | 29 | const nextStep = () => { 30 | setStepIndex( stepIndex + 1 ); 31 | }; 32 | 33 | const stepProps = { 34 | isPending, 35 | onAutomate, 36 | onDisable, 37 | nextStep, 38 | onManual, 39 | }; 40 | 41 | const steps = [ 42 | { 43 | key: 'store_location', 44 | label: __( 'Set store location', 'woocommerce' ), 45 | description: __( 46 | 'The address from which your business operates', 47 | 'woocommerce' 48 | ), 49 | content: , 50 | }, 51 | { 52 | key: 'manual_configuration', 53 | label: __( 'Configure tax rates', 'woocommerce' ), 54 | description: __( 55 | 'Head over to the tax rate settings screen to configure your tax rates', 56 | 'woocommerce' 57 | ), 58 | content: , 59 | }, 60 | ]; 61 | 62 | const step = steps[ stepIndex ]; 63 | 64 | return ( 65 | 66 | ); 67 | }; 68 | -------------------------------------------------------------------------------- /includes/wc-calypso-bridge-deprecated-functions.php: -------------------------------------------------------------------------------- 1 | id; 22 | } 23 | 24 | /** 25 | * Connects a wp-admin page to a Calypso WooCommerce page. 26 | * 27 | * @param array $options { 28 | * Array describing the page. 29 | * 30 | * @type string menu wp-admin menu id/path. 31 | * @type string submenu wp-admin submenu id/path. 32 | * @type string screen_id WooCommerce screen ID (`wc_calypso_bridge_get_current_screen_id()`). Used for correctly identifying which pages are WooCommerce pages. 33 | * } 34 | */ 35 | function wc_calypso_bridge_connect_page( $options ) { 36 | _deprecated_function( 'wc_calypso_bridge_connect_page', '2.0.0' ); 37 | return; 38 | } 39 | 40 | /** 41 | * Returns if we are on a WooCommerce related admin page. 42 | * 43 | * @return bool True if this is a WooCommerce admin page. False otherwise. 44 | */ 45 | function is_wc_calypso_bridge_page() { 46 | _deprecated_function( 'is_wc_calypso_bridge_page', '2.0.0' ); 47 | return false; 48 | } 49 | 50 | /** 51 | * Returns an array of wp-admin menu slugs that are registered as woocommerce menu items. 52 | * 53 | * @return array 54 | */ 55 | function wc_calypso_bridge_menu_slugs() { 56 | _deprecated_function( 'wc_calypso_bridge_menu_slugs', '2.0.0' ); 57 | return array(); 58 | } 59 | -------------------------------------------------------------------------------- /src/free-trial/tax/components/partners.tsx: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import { __ } from '@wordpress/i18n'; 5 | import { Button, Card, CardBody, CardHeader } from '@wordpress/components'; 6 | import { Children } from '@wordpress/element'; 7 | import classnames from 'classnames'; 8 | 9 | /** 10 | * Internal dependencies 11 | */ 12 | import { TaxChildProps } from '../utils'; 13 | import './partners.scss'; 14 | 15 | export const Partners: React.FC< TaxChildProps > = ( { 16 | children, 17 | isPending, 18 | onManual, 19 | onDisable, 20 | } ) => { 21 | const classes = classnames( 22 | 'woocommerce-task-card', 23 | 'woocommerce-tax-partners', 24 | `woocommerce-tax-partners__partners-count-${ Children.count( 25 | children 26 | ) }` 27 | ); 28 | return ( 29 | 30 | 31 | { __( 'Choose a tax partner', 'woocommerce' ) } 32 | 33 | 34 |
35 | { children } 36 |
37 |
    38 |
  • 39 | 49 |
  • 50 |
  • 51 | 61 |
  • 62 |
63 |
64 |
65 | ); 66 | }; 67 | -------------------------------------------------------------------------------- /includes/tasks/class-wc-calypso-task-get-paid-with-square.php: -------------------------------------------------------------------------------- 1 | orders screen 4 | * 5 | * @package WC_Calypso_Bridge/Classes 6 | * @since 2.0.1 7 | * @version 2.2.26 8 | */ 9 | 10 | class WC_Calypso_Bridge_Free_Trial_Orders_Changes { 11 | /** 12 | * The single instance of the class. 13 | * 14 | * @var object 15 | */ 16 | protected static $instance = null; 17 | 18 | /** 19 | * Get class instance. 20 | * 21 | * @return object Instance. 22 | */ 23 | final public static function get_instance() { 24 | if ( is_null( self::$instance ) ) { 25 | self::$instance = new self(); 26 | } 27 | 28 | return self::$instance; 29 | } 30 | 31 | public function __construct() { 32 | if ( ! wc_calypso_bridge_is_ecommerce_trial_plan() ) { 33 | return; 34 | } 35 | 36 | add_action('admin_print_footer_scripts', array($this, 'override_empty_state_cta_button_class') ); 37 | } 38 | 39 | /** 40 | * Change the class of the button on the empty state of the orders screen. 41 | * 42 | */ 43 | public function override_empty_state_cta_button_class() { 44 | if ( ! function_exists( 'get_current_screen' ) ) { 45 | return; 46 | } 47 | 48 | $screen = get_current_screen(); 49 | 50 | if ( in_array( $screen->id, array( 'edit-shop_order', 'woocommerce_page_wc-orders' ), true ) ) { 51 | ?> 52 | 57 | init(); 47 | } 48 | 49 | /** 50 | * Include notes and initialize note hooks. 51 | */ 52 | public function init() { 53 | include_once WC_CALYPSO_BRIDGE_PLUGIN_PATH . '/includes/notes/class-wc-calypso-bridge-choose-domain.php'; 54 | new WC_Calypso_Bridge_Choose_Domain_Note(); 55 | } 56 | 57 | /** 58 | * Add qualifying notes. 59 | */ 60 | public function add_notes() { 61 | WC_Calypso_Bridge_Choose_Domain_Note::possibly_add_note(); 62 | } 63 | 64 | /** 65 | * Update notes. 66 | */ 67 | public function update_notes() { 68 | WC_Calypso_Bridge_Choose_Domain_Note::update_note(); 69 | } 70 | 71 | /** 72 | * Delete qualifying notes. 73 | */ 74 | public function delete_notes() { 75 | WC_Calypso_Bridge_Choose_Domain_Note::delete_if_not_applicable(); 76 | } 77 | } 78 | 79 | WC_Calypso_Bridge_Notes::get_instance(); 80 | -------------------------------------------------------------------------------- /src/payment-gateway-suggestions/components/List/Placeholder.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import classnames from 'classnames'; 5 | import { Fragment } from '@wordpress/element'; 6 | import { 7 | Card, 8 | CardHeader, 9 | CardBody, 10 | CardMedia, 11 | CardDivider, 12 | } from '@wordpress/components'; 13 | import { Text } from '@woocommerce/experimental'; 14 | 15 | /** 16 | * Internal dependencies 17 | */ 18 | import './List.scss'; 19 | 20 | const PlaceholderItem = () => { 21 | const classes = classnames( 22 | 'woocommerce-task-payment', 23 | 'woocommerce-task-card' 24 | ); 25 | 26 | return ( 27 | 28 | 32 | 33 | 34 | 35 |
36 | 37 | 38 | 39 |
40 | 41 |
42 |
43 |
44 | 45 |
46 |
47 | 48 |
49 | ); 50 | }; 51 | 52 | export const Placeholder = () => { 53 | const classes = 54 | 'is-loading woocommerce-payment-gateway-suggestions-list-placeholder'; 55 | 56 | return ( 57 | 65 | ); 66 | }; 67 | -------------------------------------------------------------------------------- /includes/tasks/class-wc-calypso-task-get-paid-with-stripe.php: -------------------------------------------------------------------------------- 1 | connect->is_connected(); 57 | } 58 | 59 | /** 60 | * Time. 61 | * 62 | * @return string 63 | */ 64 | public function get_time() { 65 | return __( '2 minutes', 'wc-calypso-bridge' ); 66 | } 67 | 68 | /** 69 | * Action label. 70 | * 71 | * @return string 72 | */ 73 | public function get_action_label() { 74 | return __( 'Get paid with Stripe', 'wc-calypso-bridge' ); 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /assets/css/nav-unification.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'WCPay'; 3 | src: url( '../fonts/WCPay.eot' ); 4 | src: url( '../fonts/WCPay.eot?#iefix' ) format( 'embedded-opentype' ), 5 | url( '../fonts/WCPay.woff' ) format( 'woff' ), 6 | url( '../fonts/WCPay.ttf' ) format( 'truetype' ), 7 | url( '../fonts/WCPay.svg#WCPay' ) format( 'svg' ); 8 | font-weight: normal; 9 | font-style: normal; 10 | } 11 | 12 | /* stylelint-disable selector-id-pattern */ 13 | #toplevel_page_wc-admin-path--payments-welcome div.wp-menu-image::before, 14 | #toplevel_page_admin-page-wc-admin-path--payments-welcome div.wp-menu-image::before, 15 | #toplevel_page_wc-admin-path--wc-pay-welcome-page div.wp-menu-image::before, 16 | #toplevel_page_admin-page-wc-admin-path--wc-pay-welcome-page div.wp-menu-image::before, 17 | #toplevel_page_wc-admin-path--payments-connect div.wp-menu-image::before, 18 | #toplevel_page_admin_page-wc-admin-path--payments-connect div.wp-mene-image::before, 19 | #toplevel_page_wc-admin-path--payments-overview div.wp-menu-image::before, 20 | #toplevel_page_admin_page-wc-admin-path--payments-overview div.wp-menu-image::before { 21 | font-family: 'WCPay' !important; 22 | content: '\e900'; 23 | width: 24px; 24 | font-size: 24px; 25 | margin-top: -2px; 26 | background-color: transparent; 27 | } 28 | 29 | /* Fix header overflow https://github.com/woocommerce/woocommerce-admin/issues/7035 */ 30 | @media ( min-width: 961px ) { 31 | .jetpack-connected.is-nav-unification:not(.rtl):not(.folded) .woocommerce-layout__header { 32 | width: calc( 100% - 272px ); 33 | } 34 | 35 | .jetpack-connected.is-nav-unification.has-woocommerce-navigation .woocommerce-layout__header { 36 | width: 100%; 37 | } 38 | 39 | body.jetpack-connected.folded .woocommerce-layout__header { 40 | width: calc( 100% - 36px ); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /includes/class-wc-calypso-bridge-free-trial-payment-task.php: -------------------------------------------------------------------------------- 1 | tasks as $index => $task) { 56 | if ( $task->get_id() === 'payments' ) { 57 | require_once __DIR__ . '/tasks/class-wc-calypso-task-free-trial-payments.php'; 58 | $lists['setup']->tasks[$index] = new \Automattic\WooCommerce\Admin\Features\OnboardingTasks\Tasks\TrialPayments( $lists['setup'] ); 59 | } 60 | } 61 | } 62 | return $lists; 63 | } 64 | } 65 | 66 | WC_Calypso_Bridge_Free_Trial_Payment_Task::get_instance(); 67 | -------------------------------------------------------------------------------- /src/free-trial/tax/components/partner-card.tsx: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import { Button } from '@wordpress/components'; 5 | 6 | /** 7 | * Internal dependencies 8 | */ 9 | import { Bullet } from './bullet'; 10 | import './partner-card.scss'; 11 | 12 | export const PartnerCard: React.FC< { 13 | name: string; 14 | logo: string; 15 | description: string; 16 | benefits: ( string | JSX.Element )[]; 17 | terms: string | JSX.Element; 18 | actionText: string; 19 | onClick: () => void; 20 | isBusy?: boolean; 21 | } > = ( { 22 | name, 23 | logo, 24 | description, 25 | benefits, 26 | terms, 27 | actionText, 28 | onClick, 29 | isBusy, 30 | } ) => { 31 | return ( 32 |
33 |
34 | { 35 |
36 | 37 |
38 | { description } 39 |
40 |
    41 | { benefits.map( ( benefit, i ) => { 42 | return ( 43 |
  • 47 | 48 | 49 | 50 | 51 | { benefit } 52 | 53 |
  • 54 | ); 55 | } ) } 56 |
57 | 58 |
59 |
60 | { terms } 61 |
62 | 70 |
71 |
72 | ); 73 | }; 74 | -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-ja-beb9e19fb5e7cb316b39d09ff6ca8bdf.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2025-03-26 09:54:03+0000","generator":"WP-CLI\/2.10.0","source":"build\/53.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"ja_JP","plural-forms":"nplurals=1; plural=0;"},"Payment illustration":["\u652f\u6255\u3044\u306e\u30a4\u30e9\u30b9\u30c8"],"By clicking \"Test payments\", you agree to the {{tosLink}}Terms of Service{{\/tosLink}}":["\u300c\u652f\u6255\u3044\u3092\u30c6\u30b9\u30c8\u300d\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3068\u3001{{tosLink}}\u5229\u7528\u898f\u7d04{{\/tosLink}}\u306b\u540c\u610f\u3057\u305f\u3082\u306e\u3068\u307f\u306a\u3055\u308c\u307e\u3059\u3002"],"Power your payments with a simple, all-in-one option. Verify your business details to start testing transactions with WooCommerce Payments.":["\u30b7\u30f3\u30d7\u30eb\u306a\u30aa\u30fc\u30eb\u30a4\u30f3\u30ef\u30f3\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u652f\u6255\u3044\u3092\u5f37\u5316\u3057\u307e\u3059\u3002 \u30d3\u30b8\u30cd\u30b9\u306e\u8a73\u7d30\u3092\u78ba\u8a8d\u3059\u308b\u3068\u3001WooCommerce Payments \u3067\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u306e\u30c6\u30b9\u30c8\u3092\u958b\u59cb\u3067\u304d\u307e\u3059\u3002"],"Test payments":["\u652f\u6255\u3044\u3092\u30c6\u30b9\u30c8"],"Give your customers an easy and convenient way to pay! Set up and test some of our fast and secure online or in person payment methods.":["\u304a\u5ba2\u69d8\u306b\u7c21\u5358\u3067\u4fbf\u5229\u306a\u6c7a\u6e08\u65b9\u6cd5\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002 \u8fc5\u901f\u3067\u5b89\u5168\u306a\u30aa\u30f3\u30e9\u30a4\u30f3\u307e\u305f\u306f\u30aa\u30d5\u30e9\u30a4\u30f3\u3067\u306e\u652f\u6255\u3044\u65b9\u6cd5\u306e\u4e00\u90e8\u3092\u8a2d\u5b9a\u3057\u3066\u30c6\u30b9\u30c8\u3057\u307e\u3059\u3002"],"It\u2019s time to test payments":["\u652f\u6255\u3044\u3092\u30c6\u30b9\u30c8\u3057\u307e\u3059"]}}} -------------------------------------------------------------------------------- /src/payment-gateway-suggestions/components/WCPay/UsageModal.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import { __ } from '@wordpress/i18n'; 5 | import { useState } from '@wordpress/element'; 6 | import { getQuery, updateQueryString } from '@woocommerce/navigation'; 7 | import interpolateComponents from '@automattic/interpolate-components'; 8 | import { Link } from '@woocommerce/components'; 9 | 10 | /** 11 | * Internal dependencies 12 | */ 13 | import Modal from './Modal'; 14 | 15 | export const UsageModal = () => { 16 | const query = getQuery(); 17 | const shouldDisplayModal = query[ 'wcpay-connection-success' ] === '1'; 18 | const [ isOpen, setIsOpen ] = useState( shouldDisplayModal ); 19 | 20 | if ( ! isOpen ) { 21 | return null; 22 | } 23 | 24 | const closeModal = () => { 25 | setIsOpen( false ); 26 | updateQueryString( { 'wcpay-connection-success': undefined } ); 27 | }; 28 | 29 | const title = __( 30 | 'Help us build a better WooCommerce Payments experience', 31 | 'woocommerce' 32 | ); 33 | const trackingMessage = interpolateComponents( { 34 | mixedString: __( 35 | 'By agreeing to share non-sensitive {{link}}usage data{{/link}}, you’ll help us improve features and optimize the WooCommerce Payments experience. You can opt out at any time.', 36 | 'woocommerce' 37 | ), 38 | components: { 39 | link: ( 40 | 45 | ), 46 | }, 47 | } ); 48 | 49 | return ( 50 | 59 | ); 60 | }; 61 | 62 | export default UsageModal; 63 | -------------------------------------------------------------------------------- /src/disabled-tasks/index.tsx: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | 5 | import { Fill, Button } from '@wordpress/components'; 6 | import { __ } from '@wordpress/i18n'; 7 | import { recordEvent } from '@woocommerce/tracks'; 8 | 9 | /** 10 | * Internal dependencies 11 | */ 12 | import './style.scss'; 13 | import { ExperimentalCollapsibleList } from './collapsible-list'; 14 | 15 | export const DisabledTasks = () => { 16 | const notice = __( 17 | "You're currently using a free trial! To get access to the full range of features, please upgrade to a paid plan.", 18 | 'wc-calypso-bridge' 19 | ); 20 | const listLabel = __( 21 | 'Upgrade to a paid plan to unlock more features and start selling', 22 | 'wc-calypso-bridge' 23 | ); 24 | const signupUrl = 25 | 'https://wordpress.com/plans/' + window.wcCalypsoBridge.siteSlug; 26 | return ( 27 | 35 |
36 |

{ notice }

37 | 48 |

49 | { __( 'Get more sales', 'wc-calypso-bridge' ) } 50 |

51 |

52 | { __( 'Launch your store', 'wc-calypso-bridge' ) } 53 |

54 |
55 |
56 | ); 57 | }; 58 | 59 | export const DisabledTasksFill = () => ( 60 | 61 | 62 | 63 | ); 64 | -------------------------------------------------------------------------------- /languages/wc-calypso-bridge-ja-ce1126179ccf98c51c6a61cf74680416.json: -------------------------------------------------------------------------------- 1 | {"translation-revision-date":"2025-03-26 09:54:03+0000","generator":"WP-CLI\/2.10.0","source":"build\/src_free-trial_fills_index_ts.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"ja_JP","plural-forms":"nplurals=1; plural=0;"},"Payment illustration":["\u652f\u6255\u3044\u306e\u30a4\u30e9\u30b9\u30c8"],"By clicking \"Test payments\", you agree to the {{tosLink}}Terms of Service{{\/tosLink}}":["\u300c\u652f\u6255\u3044\u3092\u30c6\u30b9\u30c8\u300d\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3068\u3001{{tosLink}}\u5229\u7528\u898f\u7d04{{\/tosLink}}\u306b\u540c\u610f\u3057\u305f\u3082\u306e\u3068\u307f\u306a\u3055\u308c\u307e\u3059\u3002"],"Power your payments with a simple, all-in-one option. Verify your business details to start testing transactions with WooCommerce Payments.":["\u30b7\u30f3\u30d7\u30eb\u306a\u30aa\u30fc\u30eb\u30a4\u30f3\u30ef\u30f3\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u652f\u6255\u3044\u3092\u5f37\u5316\u3057\u307e\u3059\u3002 \u30d3\u30b8\u30cd\u30b9\u306e\u8a73\u7d30\u3092\u78ba\u8a8d\u3059\u308b\u3068\u3001WooCommerce Payments \u3067\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u306e\u30c6\u30b9\u30c8\u3092\u958b\u59cb\u3067\u304d\u307e\u3059\u3002"],"Test payments":["\u652f\u6255\u3044\u3092\u30c6\u30b9\u30c8"],"Give your customers an easy and convenient way to pay! Set up and test some of our fast and secure online or in person payment methods.":["\u304a\u5ba2\u69d8\u306b\u7c21\u5358\u3067\u4fbf\u5229\u306a\u6c7a\u6e08\u65b9\u6cd5\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002 \u8fc5\u901f\u3067\u5b89\u5168\u306a\u30aa\u30f3\u30e9\u30a4\u30f3\u307e\u305f\u306f\u30aa\u30d5\u30e9\u30a4\u30f3\u3067\u306e\u652f\u6255\u3044\u65b9\u6cd5\u306e\u4e00\u90e8\u3092\u8a2d\u5b9a\u3057\u3066\u30c6\u30b9\u30c8\u3057\u307e\u3059\u3002"],"It\u2019s time to test payments":["\u652f\u6255\u3044\u3092\u30c6\u30b9\u30c8\u3057\u307e\u3059"]}}} -------------------------------------------------------------------------------- /src/task-headers/add-domain.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import { Button } from '@wordpress/components'; 5 | import { __ } from '@wordpress/i18n'; 6 | import { WooOnboardingTaskListHeader } from '@woocommerce/onboarding'; 7 | import { registerPlugin } from '@wordpress/plugins'; 8 | 9 | /** 10 | * Internal dependencies 11 | */ 12 | import TimerImage from './assets/images/timer.svg'; 13 | import DomainImage from './assets/images/add-domain-illustration.png'; 14 | 15 | const AddDomainHeader = () => { 16 | return ( 17 | 18 | { ( { task, goToTask } ) => { 19 | return ( 20 |
21 | { 29 |
30 |

31 | { __( 'Add a domain', 'wc-calypso-bridge' ) } 32 |

33 |

34 | { __( 35 | 'Choose a new website address for your store or transfer one you already own.', 36 | 'wc-calypso-bridge' 37 | ) } 38 |

39 | 46 |

47 | Timer{ ' ' } 48 | { task.time } 49 |

50 |
51 |
52 | ); 53 | } } 54 |
55 | ); 56 | }; 57 | 58 | registerPlugin( 'wc-calypso-bridge-add-domain-task-header', { 59 | render: AddDomainHeader, 60 | scope: 'woocommerce-tasks', 61 | } ); 62 | -------------------------------------------------------------------------------- /src/payment-gateway-suggestions/components/WCPay/utils.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import { __ } from '@wordpress/i18n'; 5 | import apiFetch from '@wordpress/api-fetch'; 6 | import { WC_ADMIN_NAMESPACE } from '@woocommerce/data'; 7 | import { recordEvent } from '@woocommerce/tracks'; 8 | 9 | /** 10 | * Internal dependencies 11 | */ 12 | import { createNoticesFromResponse } from '../../utils'; 13 | 14 | export function connectWcpay( createNotice, onCatch ) { 15 | const errorMessage = __( 16 | 'There was an error connecting to WooCommerce Payments. Please try again or connect later in store settings.', 17 | 'woocommerce' 18 | ); 19 | apiFetch( { 20 | path: WC_ADMIN_NAMESPACE + '/plugins/connect-wcpay', 21 | method: 'POST', 22 | } ) 23 | .then( ( response ) => { 24 | window.location = response.connectUrl; 25 | } ) 26 | .catch( () => { 27 | createNotice( 'error', errorMessage ); 28 | if ( typeof onCatch === 'function' ) { 29 | onCatch(); 30 | } 31 | } ); 32 | } 33 | 34 | export function installActivateAndConnectWcpay( 35 | reject, 36 | createNotice, 37 | installAndActivatePlugins 38 | ) { 39 | installAndActivatePlugins( [ 'woocommerce-payments' ] ) 40 | .then( () => { 41 | recordEvent( 'woocommerce_payments_install', { 42 | context: 'tasklist', 43 | } ); 44 | 45 | connectWcpay( createNotice, () => { 46 | reject(); 47 | } ); 48 | } ) 49 | .catch( ( error ) => { 50 | createNoticesFromResponse( error ); 51 | reject(); 52 | } ); 53 | } 54 | 55 | export function isWCPaySupported( countryCode ) { 56 | const supportedCountries = [ 57 | 'US', 58 | 'PR', 59 | 'AU', 60 | 'CA', 61 | 'DE', 62 | 'ES', 63 | 'FR', 64 | 'GB', 65 | 'IE', 66 | 'IT', 67 | 'NZ', 68 | 'AT', 69 | 'BE', 70 | 'NL', 71 | 'PL', 72 | 'PT', 73 | 'CH', 74 | 'HK', 75 | 'SG', 76 | ]; 77 | 78 | return supportedCountries.includes( countryCode ); 79 | } 80 | -------------------------------------------------------------------------------- /store-on-wpcom/inc/wc-calypso-bridge-disable-publicize.php: -------------------------------------------------------------------------------- 1 | ID Post ID. 21 | * @param string $service_name Service name. 22 | * @param array $connection Array of connection details. 23 | */ 24 | function wc_calypso_bridge_maybe_disable_publicize( $submit_post, $post_id, $service_name, $connection ) { 25 | $trigger_strings = array( '/wp-json/wc/v', '/?rest_route=%2Fwc%2Fv' ); 26 | $is_rest_api_request = false; 27 | 28 | $request_uri = isset( $_SERVER[ 'REQUEST_URI' ] ) ? sanitize_text_field( wp_unslash( $_SERVER[ 'REQUEST_URI' ] ) ) : ''; 29 | // Only run this logic on REST API requests 30 | foreach( $trigger_strings as $trigger_string ) { 31 | if ( false !== strpos( $request_uri, $trigger_string ) ) { 32 | $is_rest_api_request = true; 33 | break; 34 | } 35 | } 36 | 37 | $post_type = get_post_type( $post_id ); 38 | 39 | // If not a product, or not a REST API request, return. 40 | if ( 'product' != $post_type || ! $is_rest_api_request ) { 41 | return; 42 | } 43 | 44 | // Since this is a product, and we are in an API request, disable publicize. 45 | if ( ! empty( $connection->unique_id ) ) { 46 | $unique_id = $connection->unique_id; 47 | } else if ( ! empty( $connection['connection_data']['token_id'] ) ) { 48 | $unique_id = $connection['connection_data']['token_id']; 49 | } 50 | 51 | update_post_meta( $post_id, '_wpas_skip_' . $unique_id, 1 ); 52 | } 53 | -------------------------------------------------------------------------------- /src/task-headers/products.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import { __ } from '@wordpress/i18n'; 5 | import { Button } from '@wordpress/components'; 6 | import { registerPlugin } from '@wordpress/plugins'; 7 | import { WooOnboardingTaskListHeader } from '@woocommerce/onboarding'; 8 | 9 | /** 10 | * Internal dependencies 11 | */ 12 | import TimerImage from './assets/images/timer.svg'; 13 | import { WC_ASSET_URL } from '../utils/admin-settings'; 14 | 15 | const ProductsHeader = () => { 16 | return ( 17 | 18 | { ( { task, goToTask } ) => { 19 | const taskTitle = task?.title; 20 | const taskDescription = task?.content; 21 | const taskCta = task?.actionLabel; 22 | const taskIsComplete = task?.isComplete; 23 | 24 | return ( 25 |
26 | { 34 |
35 |

{ taskTitle }

36 |

{ taskDescription }

37 | 45 |

46 | Timer{ ' ' } 47 | 48 | { __( '2 minutes', 'woocommerce' ) } 49 | 50 |

51 |
52 |
53 | ); 54 | } } 55 |
56 | ); 57 | }; 58 | 59 | registerPlugin( 'wc-calypso-bridge-products-task-header', { 60 | render: ProductsHeader, 61 | scope: 'woocommerce-tasks', 62 | } ); 63 | -------------------------------------------------------------------------------- /src/free-trial/tax/components/store-location.tsx: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import { SETTINGS_STORE_NAME } from '@woocommerce/data'; 5 | import { recordEvent } from '@woocommerce/tracks'; 6 | import { useEffect } from '@wordpress/element'; 7 | import { useSelect, useDispatch } from '@wordpress/data'; 8 | 9 | /** 10 | * Internal dependencies 11 | */ 12 | import { getCountryCode } from '../../../utils'; 13 | import { hasCompleteAddress } from '../utils'; 14 | import { default as StoreLocationForm } from './location'; 15 | 16 | export const StoreLocation: React.FC< { 17 | nextStep: () => void; 18 | } > = ( { nextStep } ) => { 19 | const { createNotice } = useDispatch( 'core/notices' ); 20 | const { updateAndPersistSettingsForGroup } = 21 | useDispatch( SETTINGS_STORE_NAME ); 22 | const { generalSettings, isResolving } = useSelect( ( select ) => { 23 | const { getSettings, hasFinishedResolution } = 24 | select( SETTINGS_STORE_NAME ); 25 | 26 | return { 27 | generalSettings: getSettings( 'general' )?.general, 28 | isResolving: ! hasFinishedResolution( 'getSettings', [ 29 | 'general', 30 | ] ), 31 | }; 32 | } ); 33 | 34 | useEffect( () => { 35 | if ( isResolving || ! hasCompleteAddress( generalSettings || {} ) ) { 36 | return; 37 | } 38 | nextStep(); 39 | }, [ isResolving ] ); 40 | 41 | if ( isResolving ) { 42 | return null; 43 | } 44 | 45 | return ( 46 | { 48 | const country = getCountryCode( values.countryState ); 49 | recordEvent( 'tasklist_tax_set_location', { 50 | country, 51 | } ); 52 | nextStep(); 53 | } } 54 | isSettingsRequesting={ false } 55 | settings={ generalSettings } 56 | updateAndPersistSettingsForGroup={ 57 | updateAndPersistSettingsForGroup 58 | } 59 | createNotice={ createNotice } 60 | isSettingsError={ false } 61 | /> 62 | ); 63 | }; 64 | -------------------------------------------------------------------------------- /src/free-trial/tax/manual-configuration/configure.tsx: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import { __ } from '@wordpress/i18n'; 5 | import { Button } from '@wordpress/components'; 6 | import interpolateComponents from '@automattic/interpolate-components'; 7 | import { Link } from '@woocommerce/components'; 8 | import { recordEvent } from '@woocommerce/tracks'; 9 | import { SETTINGS_STORE_NAME } from '@woocommerce/data'; 10 | import { useSelect } from '@wordpress/data'; 11 | 12 | /** 13 | * Internal dependencies 14 | */ 15 | import { TaxChildProps } from '../utils'; 16 | 17 | export const Configure: React.FC< 18 | Pick< TaxChildProps, 'isPending' | 'onManual' > 19 | > = ( { isPending, onManual } ) => { 20 | const { generalSettings } = useSelect( ( select ) => { 21 | const { getSettings } = select( SETTINGS_STORE_NAME ); 22 | 23 | return { 24 | generalSettings: getSettings( 'general' )?.general, 25 | }; 26 | } ); 27 | 28 | return ( 29 | <> 30 | 41 |

42 | { generalSettings?.woocommerce_calc_taxes !== 'yes' && 43 | interpolateComponents( { 44 | mixedString: __( 45 | /*eslint-disable max-len*/ 46 | 'By clicking "Configure" you\'re enabling tax rates and calculations. More info {{link}}here{{/link}}.', 47 | 'woocommerce' 48 | ), 49 | components: { 50 | link: ( 51 | 56 | <> 57 | 58 | ), 59 | }, 60 | } ) } 61 |

62 | 63 | ); 64 | }; 65 | --------------------------------------------------------------------------------