woocommerce/plugins/woocommerce-admin
Moon 8232b226f7 Use constant to construct image URLs (https://github.com/woocommerce/woocommerce-admin/pull/8451)
* Add WC_ADMIN_IMAGES_FOLDER constant

* Use WC_ADMIN_IMAGES_FOLDER to construct image URL

* Rename WC_ADMIN_IMAGES_FOLDER to WC_ADMIN_IMAGES_FOLDER_URL

* Use WC_ADMIN_IMAGES_FOLDER_URL to construct image URLs

* Move wcpay-banner.png to client dir

* Move wcpay-banner.png to client dir

* Use WC_ADMIN_IMAGES_FOLDER_URL for wcAdminAssetUrl

* Use WC_ADMIN_IMAGES_FOLDER_URL to construct image URLs

* Use WC_ADMIN_IMAGES_FOLDER_URL to construct image URLs

* Revert to images

* Add / to the path
2022-03-14 15:01:03 -07:00
..
.github Update actions/setup-node action to v2.5.1 (https://github.com/woocommerce/woocommerce-admin/pull/8437) 2022-03-09 11:02:52 +08:00
.vscode Enable Typescript checking on ./client folder (https://github.com/woocommerce/woocommerce-admin/pull/8372) 2022-03-01 12:19:07 +08:00
bin Cleanup Loader.php and move it to Internal namespace (https://github.com/woocommerce/woocommerce-admin/pull/8416) 2022-03-09 10:04:34 -04:00
changelogs Fix paid themes (https://github.com/woocommerce/woocommerce-admin/pull/8412) 2022-03-14 17:31:03 -03:00
client Use constant to construct image URLs (https://github.com/woocommerce/woocommerce-admin/pull/8451) 2022-03-14 15:01:03 -07:00
config Enable navigation in core env (https://github.com/woocommerce/woocommerce-admin/pull/8310) 2022-02-17 11:14:45 -08:00
docker Switch to pnpm (https://github.com/woocommerce/woocommerce-admin/pull/8349) 2022-03-04 12:01:16 +08:00
docs Cleanup Loader.php and move it to Internal namespace (https://github.com/woocommerce/woocommerce-admin/pull/8416) 2022-03-09 10:04:34 -04:00
images Use constant to construct image URLs (https://github.com/woocommerce/woocommerce-admin/pull/8451) 2022-03-14 15:01:03 -07:00
includes Rename Settings.php to more specific name and create new Settings.php class to handle WooCommerce Admin settings (https://github.com/woocommerce/woocommerce-admin/pull/8443) 2022-03-10 09:42:55 -04:00
languages Switch to pnpm (https://github.com/woocommerce/woocommerce-admin/pull/8349) 2022-03-04 12:01:16 +08:00
packages Add `moment-timezone` to `@woocommerce/components` package.json (https://github.com/woocommerce/woocommerce-admin/pull/8458) 2022-03-14 17:07:21 +08:00
patches Enable Typescript checking on ./client folder (https://github.com/woocommerce/woocommerce-admin/pull/8372) 2022-03-01 12:19:07 +08:00
src Use constant to construct image URLs (https://github.com/woocommerce/woocommerce-admin/pull/8451) 2022-03-14 15:01:03 -07:00
src-internal/Admin Use constant to construct image URLs (https://github.com/woocommerce/woocommerce-admin/pull/8451) 2022-03-14 15:01:03 -07:00
storybook Fix storybook cannot resolve @woocommerce/settings error (https://github.com/woocommerce/woocommerce-admin/pull/8128) 2022-01-07 13:05:22 +08:00
tests Fix paid themes (https://github.com/woocommerce/woocommerce-admin/pull/8412) 2022-03-14 17:31:03 -03:00
typings Remove unpublished wc-admin-settings package and update getSetting usage (https://github.com/woocommerce/woocommerce-admin/pull/8057) 2022-01-06 08:53:30 -04:00
.browserslistrc Add CSS autoprefixer (https://github.com/woocommerce/woocommerce-admin/pull/244) 2018-07-30 10:05:22 -04:00
.distignore Create E2E package (https://github.com/woocommerce/woocommerce-admin/pull/7084) 2021-07-13 16:38:05 -03:00
.editorconfig Remove Trailing Whitespace in `readme.txt` (https://github.com/woocommerce/woocommerce-admin/pull/6940) 2021-05-11 13:41:45 +08:00
.eslintignore Add build-types to .eslintignore (https://github.com/woocommerce/woocommerce-admin/pull/8334) 2022-02-21 12:12:05 +08:00
.eslintrc.js Switch to pnpm (https://github.com/woocommerce/woocommerce-admin/pull/8349) 2022-03-04 12:01:16 +08:00
.gitattributes Switch to pnpm (https://github.com/woocommerce/woocommerce-admin/pull/8349) 2022-03-04 12:01:16 +08:00
.gitignore Enable Typescript checking on ./client folder (https://github.com/woocommerce/woocommerce-admin/pull/8372) 2022-03-01 12:19:07 +08:00
.npmrc Switch to pnpm (https://github.com/woocommerce/woocommerce-admin/pull/8349) 2022-03-04 12:01:16 +08:00
.nvmrc Set Node version to 14 in .nvmrc to prevent incompatible versions of Node from being used with nvm (https://github.com/woocommerce/woocommerce-admin/pull/7932) 2021-11-15 10:14:05 -05:00
.prettierrc.js Update @wordpress/eslint-plugin dependency to latest version. (https://github.com/woocommerce/woocommerce-admin/pull/5856) 2021-01-26 13:24:28 +13:00
.stylelintignore CSS Linting: Exclude Storybook CSS (https://github.com/woocommerce/woocommerce-admin/pull/6785) 2021-04-13 10:03:44 +12:00
.stylelintrc.json Align WooCommerce javascript code standards/linting/styles with WordPress core. (https://github.com/woocommerce/woocommerce-admin/pull/3674) 2020-02-14 15:23:21 +13:00
.wp-env.json wp-env: Use WooCommerce Core latest (https://github.com/woocommerce/woocommerce-admin/pull/7752) 2021-10-06 20:42:45 +13:00
CONTRIBUTING.md Switch to pnpm (https://github.com/woocommerce/woocommerce-admin/pull/8349) 2022-03-04 12:01:16 +08:00
Gruntfile.js Align WooCommerce javascript code standards/linting/styles with WordPress core. (https://github.com/woocommerce/woocommerce-admin/pull/3674) 2020-02-14 15:23:21 +13:00
LICENSE.md update to consistent license 2019-05-16 13:14:03 -03:00
README.md Switch to pnpm (https://github.com/woocommerce/woocommerce-admin/pull/8349) 2022-03-04 12:01:16 +08:00
SECURITY.md Add a security doc based on other woocommerce repos (https://github.com/woocommerce/woocommerce-admin/pull/6931) 2021-05-06 09:20:41 +12:00
TESTING-INSTRUCTIONS.md Display WCPay task when installed via subscriptions option on profiler (https://github.com/woocommerce/woocommerce-admin/pull/8445) 2022-03-14 12:44:55 -07:00
babel.config.js Switch to pnpm (https://github.com/woocommerce/woocommerce-admin/pull/8349) 2022-03-04 12:01:16 +08:00
changelog.txt Updated changelog with cherry picks (https://github.com/woocommerce/woocommerce-admin/pull/8347) 2022-02-23 08:59:49 -04:00
chunk-src-version-param.js Remove dynamic content hash from chunk names. (https://github.com/woocommerce/woocommerce-admin/pull/5229) 2020-10-06 08:58:15 -04:00
composer.json Updating all versions (https://github.com/woocommerce/woocommerce-admin/pull/8395) 2022-03-03 09:41:01 -03:00
composer.lock Include yoast phpunit polyfills in phpunit tests (https://github.com/woocommerce/woocommerce-admin/pull/7695) 2021-09-23 18:01:52 +08:00
license.txt include license.txt and update component package.json files 2019-05-18 01:19:20 -03:00
lint-staged.config.js Switch to pnpm (https://github.com/woocommerce/woocommerce-admin/pull/8349) 2022-03-04 12:01:16 +08:00
package.json Update all js packages with minor/patch version changes (https://github.com/woocommerce/woocommerce-admin/pull/8392) 2022-03-08 10:11:12 +08:00
phpcs.xml.dist Move src/Features/WcPayPromotion to /src-internal/Admin/WcPayPromotion (https://github.com/woocommerce/woocommerce-admin/pull/8307) 2022-02-16 04:50:33 -08:00
phpunit.xml.dist Update PHPUnit to version 7 (https://github.com/woocommerce/woocommerce-admin/pull/3571) 2020-01-16 10:03:44 -04:00
pnpm-lock.yaml Add `moment-timezone` to `@woocommerce/components` package.json (https://github.com/woocommerce/woocommerce-admin/pull/8458) 2022-03-14 17:07:21 +08:00
pnpm-workspace.yaml Switch to pnpm (https://github.com/woocommerce/woocommerce-admin/pull/8349) 2022-03-04 12:01:16 +08:00
readme.txt Updating all versions (https://github.com/woocommerce/woocommerce-admin/pull/8395) 2022-03-03 09:41:01 -03:00
renovate.json Add ":preserveSemverRanges" to renovate.json (https://github.com/woocommerce/woocommerce-admin/pull/8466) 2022-03-14 17:18:04 +08:00
tsconfig.json Enable Typescript checking on ./client folder (https://github.com/woocommerce/woocommerce-admin/pull/8372) 2022-03-01 12:19:07 +08:00
uninstall.php Make classes in src internal (https://github.com/woocommerce/woocommerce-admin/pull/8317) 2022-02-17 11:14:23 -08:00
unminify.js Use Route based code splitting to optimize bundle size (https://github.com/woocommerce/woocommerce-admin/pull/4094) 2020-04-29 12:01:27 -06:00
webpack.config.js Switch to pnpm (https://github.com/woocommerce/woocommerce-admin/pull/8349) 2022-03-04 12:01:16 +08:00
woocommerce-admin.php Cleanup Loader.php and move it to Internal namespace (https://github.com/woocommerce/woocommerce-admin/pull/8416) 2022-03-09 10:04:34 -04:00

README.md

WooCommerce Admin

This is a feature plugin for a modern, javascript-driven WooCommerce Admin experience.

Prerequisites

WordPress 5.6 or greater and WooCommerce 5.7.0 or greater should be installed prior to activating the WooCommerce Admin feature plugin.

For better debugging, it's also recommended you add define( 'SCRIPT_DEBUG', true ); to your wp-config. This will load the unminified version of all libraries, and specifically the development build of React.

Development

After cloning the repo, install dependencies:

  • pnpm install to install JavaScript dependencies.
  • composer install to gather PHP dependencies.

Now you can build the files using one of these commands:

  • pnpm run build : Build a production version
  • pnpm run dev : Build a development version
  • pnpm start : Build a development version, watch files for changes
  • pnpm run build:release : Build a WordPress plugin ZIP file (woocommerce-admin.zip will be created in the repository root)
  • DRY_RUN=1 pnpm run build:release : Builds a Wordpress plugin ZIP without pushing it to Github and creating a release.

For more helper scripts see here

For some debugging tools/help see here

For local development setup using Docker see here

Typescript

The npm run ts:check command will check your TypeScript files for errors, and has been added to .vscode/tasks.json. Running this task in vscode will highlight the errors in your editor file navigator.

If you allow the npm run ts:check:watch command to run automatically as configured, it will run in the background and pick up any errors as you save the files. Note: Even if you don't run this task, the IDE uses its language server to pick up type errors in files that are open. This is only necessary for picking up errors across the entire repository even when they haven't been opened in the IDE.

Testing

End-to-end tests

Tests live in ./tests/e2e. An existing build is required prior running, please refer to the section above for steps. E2E tests use the @woocommerce/e2e-environment package which hosts a Docker container for testing, by default the container can be accessed at http://localhost:8084

All the commands from @woocommerce/e2e-environment can be run through pnpm exec.

# Set up the e2e environment
pnpm i
pnpm exec wc-e2e docker:up

Run tests using:

pnpm exec wc-e2e test:e2e-dev

or in headless mode:

pnpm exec wc-e2e test:e2e

Run a single test by adding the path to the file name:

pnpm exec wc-e2e test:e2e-dev tests/e2e/specs/activate-and-setup/complete-onboarding-wizard.test.ts

Documentation

There is documentation in 2 forms available in the repo. A static set of documentation supported by docsify and also a Storybook containing component documentation for @woocommerce/components.

To view the docsify docs locally you can do:

pnpm install
cd docs
pnpm exec docsify serve

When deployed the docsify docs also host an embedded version of the storybook docs. To generate that and test it locally in docsify you'll need to run:

pnpm install
pnpm run docs
cd docs
pnpm exec docsify serve

Then navigate to Components from the left hand menu in the docs.

If you would like to view the storybook docs hosted standalone, then you can run:

pnpm install
pnpm run storybook

If you would like to view the storybook docs in right-to-left styling, you can run this instead:

pnpm install
pnpm run storybook-rtl

Common Issues

If you're encountering any issue setting things up, chances are we have been there too. Please have a look at our wiki for a list of common problems.

Privacy

If you have enabled WooCommerce usage tracking ( option woocommerce_allow_tracking ) then, in addition to the tracking described in https://woocommerce.com/usage-tracking/, this plugin also sends information about the actions that site administrators perform to Automattic - see https://automattic.com/privacy/#information-we-collect-automatically for more information.

Contributing

There are many ways to contribute reporting bugs, adding translations, feature suggestions and fixing bugs. For full details, please see CONTRIBUTING.md