woocommerce/plugins/woocommerce
Michal Iwanow 5cd46f48ad
Fetch Marketplace promotions - ensure callback is always registered for `woocommerce_marketplace_fetch_promotions` action (#47262)
* Marketplace promotions - ensure action is always there

We started getting errors 'Scheduled action for woocommerce_marketplace_fetch_promotions will not be executed as no callbacks are registered.' on some environments.

In this commit we ensure that WC_Admin_Marketplace_Promotions::fetch_marketplace_promotions() is always added as a calback to our action hook.

* Marketplace promotions - switch from Action Scheduler to transients

We're switching fetching marketplace promotions from using Action Scheduler
every 12 hours, to a 1 day transient. This makes it easier to ensure that
the requests are triggered only for admins, and that they don't impact frontend
users of the stores.

* Changelog

* Clear action from Action Scheduler

Action woocommerce_marketplace_fetch_promotions is no longer used, so we're clearing it when it's triggered.
Since we cannot self-clear the action, we're triggering a new single action when woocommerce_marketplace_fetch_promotions is run.
This new action's sole responsibility is to clear the original action.
2024-05-16 09:56:59 +02:00
..
.wordpress-org
assets Apply styles to Coming soon entire store regardless of theme (#46619) 2024-04-19 08:00:49 +00:00
bin fix js lint filename pattern matching (#46605) 2024-04-17 16:55:52 +03:00
changelog Fetch Marketplace promotions - ensure callback is always registered for `woocommerce_marketplace_fetch_promotions` action (#47262) 2024-05-16 09:56:59 +02:00
client Disable pre-publish panel (#47430) 2024-05-15 15:52:42 -03:00
i18n Update symbol and formatting of the XPF currency (#46960) 2024-05-15 04:50:55 +07:00
includes Fetch Marketplace promotions - ensure callback is always registered for `woocommerce_marketplace_fetch_promotions` action (#47262) 2024-05-16 09:56:59 +02:00
lib Re-add "mobiledetect/mobiledetectlib" library 2023-11-27 18:59:10 +01:00
packages Update Woo.com references to WooCommerce.com (#46259) 2024-04-09 09:50:15 +01:00
patterns Fix coming soon page mobile UI issues (#47491) 2024-05-16 12:46:26 +08:00
sample-data Update @woo.com email addresses to @woocommerce.com (#46387) 2024-04-19 21:11:01 +00:00
src Disable auto zoom when focusing on input for core profiler (#47400) 2024-05-16 10:45:26 +08:00
templates Add aria-label to My Account Navigation Item (#43696) 2024-05-13 14:23:19 +03:00
tests Disable pre-publish panel (#47430) 2024-05-15 15:52:42 -03:00
.distignore Try reducing blocks build size (#43344) 2024-01-08 11:33:49 -06:00
.eslintignore Add JS lint scripts for woocommerce plugin (#46214) 2024-04-12 07:30:17 +03:00
.eslintrc.js Add JS lint scripts for woocommerce plugin (#46214) 2024-04-12 07:30:17 +03:00
.gitattributes
.gitignore Fixed Blocks INI File Path 2023-12-09 21:33:34 -08:00
.phpunit-watcher.yml Add php unit watcher and update unit test docs (#44681) 2024-02-19 16:40:29 +08:00
.wp-env.json [e2e tests] Fix more e2e tests with Gutenberg active (#46861) 2024-04-25 13:19:21 -07:00
NEXT_CHANGELOG.md
README.md Update Woo.com references to WooCommerce.com (#46259) 2024-04-09 09:50:15 +01:00
composer.json Prep trunk for 9.0 cycle (#46893) 2024-04-25 18:34:18 +02:00
composer.lock Revert "Update phpcs to squizlabs/php_codesniffer" (#46524) 2024-04-12 10:12:35 -03:00
license.txt
package.json Update to pnpm 9.1 (#47385) 2024-05-13 10:57:39 -03:00
phpcs.xml Validate missing fields in Store API (#45840) 2024-03-27 16:50:48 +01:00
phpunit.xml
readme.txt Update stable tag to 8.8.3 (#47496) 2024-05-15 16:16:53 +08:00
tsconfig.json
uninstall.php
woocommerce.php Prep trunk for 9.0 cycle (#46893) 2024-04-25 18:34:18 +02:00

README.md

WooCommerce

License WordPress.org downloads WordPress.org rating Build Status codecov

This is the WooCommerce Core plugin. Here you can browse the source and keep track of development. We recommend all developers to follow the WooCommerce development blog to stay up to date about everything happening in the project. You can also follow @DevelopWC on Twitter for the latest development updates.

If you are not a developer, please use the WooCommerce plugin page on WordPress.org.

Getting Started

Please make sure you follow the repository's getting started guide first!

# Make sure that WooCommerce Core and all of its dependencies are built
pnpm --filter=@woocommerce/plugin-woocommerce build 
# Make sure you're in the WooCommerce Core directory
cd plugins/woocommerce
# Start the development environment
pnpm -- wp-env start

You should now be able to visit http://localhost:8888/ and access WooCommerce environment.

Building Components

There are two major client-side components included in WooCommerce Core that can be built, linted, and tested independently. We've organized these components in this way to take advantage of caching to prevent unnecessarily performing expensive rebuilds when only working in one of them.

plugins/woocommerce/client/legacy

This directory contains the Classic CSS and jQuery code for WooCommerce.

# Build the assets.
pnpm --filter=@woocommerce/classic-assets build 
# Lint the assets.
pnpm --filter=@woocommerce/classic-assets lint 

plugins/woocommerce-admin

This directory contains the React-based admin interface.

# Build the React-based admin client.
pnpm --filter=@woocommerce/admin-library build 
# Lint the React-based admin client.
pnpm --filter=@woocommerce/admin-library lint 
# Test the React-based admin client.
pnpm --filter=@woocommerce/admin-library test 

plugins/woocommerce-blocks

This directory contains the client for WooCommerce + Gutenberg.

# Build the Blocks client.
pnpm run --filter=@woocommerce/block-library build 
# Lint the Blocks client.
pnpm run --filter=@woocommerce/block-library lint 
# Test the Blocks client.
pnpm run --filter=@woocommerce/block-library test 

Helper Scripts

Here is a collection of scripts that can help when developing the React-based admin interface.

# Create a develoment build of the React-based admin client.
pnpm --filter=@woocommerce/admin-library dev 
# Create and watch a development build of the React-based admin client.
pnpm --filter=@woocommerce/admin-library start 
# Watch the tests of the React-based admin client.
pnpm --filter=@woocommerce/admin-library test:watch 
# Run a type check over the React-based admin client's TypeScript files.
pnpm --filter=@woocommerce/admin-library ts:check 

Documentation

Reporting Security Issues

To disclose a security issue to our team, please submit a report via HackerOne here.