WordPress plugin: Provides the integration between WooCommerce and Google Analytics.
Will be required for WooCommerce shops using the integration from WooCommerce 2.1 and up.
Google Analytics for WooCommerce utilizes npm scripts for task management utilities.
npm run build
- Runs the tasks necessary for a release. These may include building JavaScript, SASS, CSS minification, and language files.
The engines
in package.json includes npm ^9
to allow dependabot to update our dependencies. However, it's not the version intended to be used in development.
cd
into the woocommerce-google-analytics-integration/
plugin directorycomposer install
bin/install-unit-tests.sh <db-name> <db-user> <db-pass> [db-host] [wp-version] [wc-version] [skip-database-creation]
e.g. bin/install-unit-tests.sh wordpress_test root root localhost latest latest
XDEBUG_MODE=coverage vendor/bin/phpunit --coverage-text
to run all unit testFor more info see: WordPress.org > Plugin Unit Tests.
E2E testing uses wp-env which requires Docker.
Make sure Docker is running in your machine, and run the following:
npm run wp-env:up
- This will automatically download and run WordPress in a Docker container. You can access it at http://localhost:8889 (Username: admin, Password: password).
To install the PlayWright browser locally you can run:
npx playwright install chromium
Run E2E testing:
npm run test:e2e
to run the test in headless mode.npm run test:e2e-dev
to run the tests in Chromium browser.To remove the Docker container and images (this will delete everything in the WordPress Docker container):
npm run wp-env destroy
:warning: Currently, the E2E testing on GitHub Actions is only run automatically after opening a PR with release/*
branches or pushing changes to release/*
branches. To run it manually, please visit here and follow this instruction to do so.
composer install
(if you haven't done so already)npm run lint:php
An explanation of output can be found here e.g. what are the S's?
The extension sets up the default state of consent mode, denying all parameters for the EEA region. You can append or overwrite that configuration using the following snippet:
add_filter( 'woocommerce_ga_gtag_consent_modes', function ( $consent_modes ) {
$consent_modes[] =
array(
'analytics_storage' => 'granted',
'region' => array( 'ES' ),
);
$consent_modes[] =
array(
'analytics_storage' => 'denied',
'region' => array( 'US-AK' ),
);
return $consent_modes;
} );
After the page loads, the consent for particular parameters can be updated by other plugins or custom code, implementing UI for customer-facing configuration using Google's consent API (gtag('consent', 'update', {…})
).
The extension does not provide any UI, like a cookie banner, to let your visitors grant consent for tracking. However, it's integrated with WP Consent API, so you can pick another extension that provides a banner that meets your needs.
Each of those extensions may require additional setup or registration. Usually, the basic default setup works out of the box, but there may be some integration caveats. Here are a couple of the most frequent ones:
If the additional extension you chose sets its own default state of consent modes, different than the one we set, and you would like to make sure we'll not overwrite that, you can use the woocommerce_ga_gtag_consent_modes
snippet to change or disable our setup:
add_filter( 'woocommerce_ga_gtag_consent_modes', function ( $consent_modes ) {
return array();
} );
page_view
event on the page loadThis is actually unrelated to the consent mode; it's a matter of the default tag config. You can alter it using the woocommerce_ga_gtag_config
snippet
add_filter( 'woocommerce_ga_gtag_config', function ( $config ) {
$config['send_page_view'] = false;
return $config;
} );