diff --git a/.externalized.json b/.externalized.json index f4a68c1e60..a1ea74111d 100644 --- a/.externalized.json +++ b/.externalized.json @@ -1 +1 @@ -["@woocommerce/components","@woocommerce/customer-effort-score","@woocommerce/data","@woocommerce/navigation","@woocommerce/settings","@wordpress/api-fetch","@wordpress/components","@wordpress/compose","@wordpress/data","@wordpress/data-controls","@wordpress/date","@wordpress/deprecated","@wordpress/dom","@wordpress/element","@wordpress/hooks","@wordpress/html-entities","@wordpress/i18n","@wordpress/primitives","@wordpress/url","lodash","moment","react","react-dom"] \ No newline at end of file +["@woocommerce/components","@woocommerce/currency","@woocommerce/customer-effort-score","@woocommerce/data","@woocommerce/date","@woocommerce/navigation","@woocommerce/number","@woocommerce/settings","@woocommerce/tracks","@wordpress/api-fetch","@wordpress/components","@wordpress/compose","@wordpress/data","@wordpress/data-controls","@wordpress/date","@wordpress/dom","@wordpress/element","@wordpress/hooks","@wordpress/html-entities","@wordpress/i18n","@wordpress/primitives","@wordpress/url","lodash","react","react-dom"] \ No newline at end of file diff --git a/Working with DEWP.md b/Working with DEWP.md index 03f1212460..0c400d1d1f 100644 --- a/Working with DEWP.md +++ b/Working with DEWP.md @@ -19,11 +19,17 @@ So we could later inspect that. ## Selective bundling & extracting. -Sometimes the fact we do bundle a package that is provided by WordPress/WooCommerce instance introduces errors, as some packages are not effectively modular, so we face version conflicts, style collisions, etc. -Also, we'd like to reduce the size of our bundle, so eventually, we aim to extract/externalize as much as possible and when possible import from an external package. +In the past, we did bundle some packages provided by WordPress/WooCommerce instances. We did so to use a specific package version, for example, to ship a new feature we need, fix, or avoid a bug. However, bundling a package tends to introduce other errors, as some packages are not effectively modular, so we face version conflicts, style collisions, etc. +Also, we'd like to reduce the size of our bundle, so eventually, we aim to extract/externalize as much as possible and import from an external package when possible. -To help with that we implemented the `extracted/` prefix. It's also a custom implementation in [/webpack.config.js](/develop/webpack.config.js). -Thanks to that even though a package is bundled, the given import would fetch it from external. +To help with that, we had implemented the `extracted/` prefix in the past. It was also a custom implementation in [`webpack.config.js`](webpack.config.js). +Thanks to that, even though a package is bundled, the given import would fetch it from external. + +Now, we have already externalized all DEWP-able packages, so we also removed the implementation of the `extracted/` prefix. +If someday we ever need it again, please refer to: +- The PR implemented it: https://github.com/woocommerce/google-listings-and-ads/pull/1762 +- The commit removed it: https://github.com/woocommerce/google-listings-and-ads/commit/5a2e20409a53ccb3b7fcbfe5c46988ca2b153b38 +Alternatively, we can consider an opposite approach and selectively **bundle** with a similar prefix implementation. ## NPM scripts @@ -38,18 +44,50 @@ In a regular project to track outdated packages, you would use `npm outdated`. H ### What is the version of the DEWPed package? -As we externalize packages we lose control of the version of the package that will run in the wild (on WordPress instance). -However, with the current platform, we not only lose control, but we also lose the actual information on the range of package we should expect. -So, even if we know we support WooCommerce 6.9+, what are the `@woocommerce/components` there? +As we externalize a package, we lose control of its version that will run in the wild (on WordPress instance). +However, with the current platform, we not only lose control, but we also lose the actual information on the range of package versions we should expect. +So, even if we know we support WooCommerce L-2, what are the `@woocommerce/components` there? + +There is no published table of those, and finding them usually requires quite a lot of manual digging. To mitigate that, we created a tool: [`dewped`](https://github.com/woocommerce/dewped#dewped). + +First, `latest-versions`/`l-x` helps you check the platform's current, latest, or L-x version: + +```bash +$ dewped l-x +Fetching L-2 versions wordpress! +["6.3.1","6.2.2","6.1.3"] + +$ dewped l-x woocommerce 3 +Fetching L-3 versions woocommerce! +["8.0.3","7.9.0","7.8.2","7.7.2"] +``` + +Then, with `platform-dependency-version`/`pdep` you may check which version of packages is expected to be present in the platform you target to support and compare it to the locally installed versions. + +```bash +$ dewped pdep -w=6.2.2 -c=7.8.2 -d=.externalized.json + Name WordPress 6.2.2 WooCommerce 7.8.2 Local + ────────────────────────────────── ─────────────── ───────────────── ──────── + @woocommerce/components 12.0.0 ^10.3.0 +… +``` + + +You can also use it to check an individual package. For example, when you consider adding a new dependency and want to check which version to anticipate + +```bash +$ dewped pdep --wcVersion=7.8.2 @woocommerce/data + Name WooCommerce 7.8.2 Local + ───────────────── ───────────────── ────── + @woocommerce/data 4.1.0 ^4.1.0 +``` -There is no published table of those, and finding them usually requires quite a lot of manual digging. To mitigate that we created another script. +Please bear in mind there are still dragons: +1. :warning: By the design of DEWP, there is absolutely no guarantee that the package will be there at the version reported by this tool. DEWP makes use of global variables available in runtime. So, any other extension or custom code running in a particular instance can overwrite what you expect in a package. +2. The fact that `dewped pdep package` reports a version of a package does not mean it was actually externalized from your bundle. It only means WP/WC uses a reported version. To check what was effectively externalized, please inspect your Webpack config and DEWP report file (`externalizedReport`). +3. Some packages externalized by DEWP, like `@woocommerce/settings`, are not packages we could find either in npm or in [`woocommerce/woocommerce/packages/js`](https://github.com/woocommerce/woocommerce/commits/trunk/packages/js/) 🤷. There may be no way for you to install them locally or even reason about their versions. +4. The `dewped` tool implementation relies on the internal structure of WordPress and WooCommerce repos, which is not documented, considered API, or even stable. So, it may potentially change at any time, making this tool fail or return invalid results 🤷. -- `npm run dewps:woo 6.9.4` - where `6.9.4` is the version of WooCommerce you would like to check. +(If any of the above caveats bothers you or makes you even even more confused, please refer to https://github.com/WordPress/gutenberg/issues/35630) -Please note this simple script still has several limitations. -1. It works for WooCommerce deps only. WordPress ones are more tricky to get, as the list of packages is less static and regular. Theoretically, we should be able to [use dist-tags](https://github.com/WordPress/gutenberg/issues/24376), like `npm install @wordpress/components@wp-6.1.0` or `npx wp-scripts packages-update --dist-tag=wp-5.8`. -2. It assumes all packages are prefixed with `@woocommerce/` -3. You need to provide the exact full version. The latest, or `x.y` tree lines are not being resolved automatically. -4. Some packages externalized by DEWP, are not packages we could find neither in npm nor in [`woocommerce/woocommerce/packages/js`](https://github.com/woocommerce/woocommerce/commits/trunk/packages/js/) 🤷 -5. It requires at least Node 18 to run. diff --git a/bin/list-woo-dewped.mjs b/bin/list-woo-dewped.mjs deleted file mode 100755 index 55ea063bc6..0000000000 --- a/bin/list-woo-dewped.mjs +++ /dev/null @@ -1,65 +0,0 @@ -#!/usr/bin/env node -/* eslint-disable @woocommerce/dependency-group */ -/* global fetch */ -'use strict'; -import * as fs from 'node:fs'; - -const externalizedListPath = '.externalized.json'; -const wooPackage = ( tag, packageName ) => - `https://raw.githubusercontent.com/woocommerce/woocommerce/${ tag }/packages/js/${ packageName }/package.json`; - -const myArgs = process.argv.slice( 2 ); -const wcTag = myArgs[ 0 ]; -if ( ! wcTag || ! wcTag.match( /^(\d+).(\d+).(\d+).*/ ) ) { - // eslint-disable-next-line no-console - console.warn( - "Warning: It seems you didn't provide a valid WooCommerce tag." - ); -} - -// Warn about the needed fetch, available since Node 18+, or 17 behind the flag. -const majorNodeVersion = Number( process.versions.node.match( /^(\d+)\./ )[ 1 ] ); -if( majorNodeVersion < 18 ) { - // eslint-disable-next-line no-console - console.warn( - "Warning: Please use the Node version that supports `fetch`, like 18+." - ); -} - -const externalizedList = JSON.parse( fs.readFileSync( externalizedListPath ) ); -// Filter only packages externalized by `@woocommerce/dependency-extraction-webpack-plugin`. -const wooDependencies = externalizedList.filter( ( dependency ) => - dependency.startsWith( '@woocommerce/' ) -); -/** - * Tries to fetch the version of `@woocommerce/` package used by the given WooCommerce version. - * - * @param {string} tag Full tag name of released version, `'x.y.z'`. - * @param {string} packageName Package named to be looked up in `/packages/js/*`. - * @return {string|undefined} `'a.b.c'` version of the package, or `undefined` if not found. - */ -async function fetchVersion( tag, packageName ) { - // Strip just the name used as folder name of `/packages/js/*`. - packageName = packageName.match( /@woocommerce\/(.*)/ )[ 1 ]; - - // Read its `package.json`. - return fetch( wooPackage( tag, packageName ) ) - .then( ( response ) => response.json() ) - .then( ( packageJson ) => { - return packageJson.version; - } ) - .catch( () => { - // Most problably there is no package of that name. - return undefined; - } ); -} -// Build a Map-like array of package versions. -const versions = await Promise.all( - wooDependencies.map( async ( packageName ) => { - return [ packageName, await fetchVersion( wcTag, packageName ) ]; - } ) -); -// eslint-disable-next-line no-console -- We want to actually return something to stdout. -console.log( versions ); - -export default versions; diff --git a/changelog.txt b/changelog.txt index ddba52018e..954bc1ddff 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,5 +1,12 @@ *** WooCommerce Google Listings and Ads Changelog *** += 2.5.5 - 2023-09-05 = +* Dev - Add E2E tests - Dashboard - Edit Free Listings. +* Dev - Clean up workarounds for WooCommerce < 6.8. +* Dev - Externalize all WooCommerce JavaScript packages via Dependency Extraction Webpack Plugin (DEWP) and remove the selective bundling implementation that gradually externalizes packages into DEWP. +* Dev - Update DEWP related tools and docs. +* Fix - Fix Taxonomy Attribute Mapping for Product Variations. + = 2.5.4 - 2023-08-29 = * Dev - Override vulnerability packages: xmlhttprequest-ssl and ws. * Dev - Update trigger method in Hooks Generator Workflow. diff --git a/google-listings-and-ads.php b/google-listings-and-ads.php index 9155bdea71..1eedebb6aa 100644 --- a/google-listings-and-ads.php +++ b/google-listings-and-ads.php @@ -3,7 +3,7 @@ * Plugin Name: Google Listings and Ads * Plugin URL: https://wordpress.org/plugins/google-listings-and-ads/ * Description: Native integration with Google that allows merchants to easily display their products across Google’s network. - * Version: 2.5.4 + * Version: 2.5.5 * Author: WooCommerce * Author URI: https://woocommerce.com/ * Text Domain: google-listings-and-ads @@ -30,7 +30,7 @@ defined( 'ABSPATH' ) || exit; -define( 'WC_GLA_VERSION', '2.5.4' ); // WRCS: DEFINED_VERSION. +define( 'WC_GLA_VERSION', '2.5.5' ); // WRCS: DEFINED_VERSION. define( 'WC_GLA_MIN_PHP_VER', '7.4' ); define( 'WC_GLA_MIN_WC_VER', '6.9' ); diff --git a/jest.config.js b/jest.config.js index 50f2c6d317..c12f1e1340 100644 --- a/jest.config.js +++ b/jest.config.js @@ -16,7 +16,6 @@ module.exports = { '\\.scss$': '/tests/mocks/assets/styleMock.js', // Transform our `.~/` alias. '^\\.~/(.*)$': '/js/src/$1', - '^extracted/(.*)$': '$1', '@woocommerce/settings': '/js/src/tests/dependencies/woocommerce/settings', '@automattic/calypso-config': diff --git a/js/src/dashboard/all-programs-table-card/index.js b/js/src/dashboard/all-programs-table-card/index.js index 9ae0da03aa..786c32f078 100644 --- a/js/src/dashboard/all-programs-table-card/index.js +++ b/js/src/dashboard/all-programs-table-card/index.js @@ -138,6 +138,7 @@ const AllProgramsTableCard = ( props ) => { /> } headers={ headers } + rowKey={ ( cells ) => cells[ 0 ].id } rows={ data.map( ( el ) => { const isFreeListings = el.id === FREE_LISTINGS_PROGRAM_ID; const editButtonClassName = classnames( { @@ -145,24 +146,21 @@ const AllProgramsTableCard = ( props ) => { ! isFreeListings && ! el.disabledEdit, } ); - // Since the component uses array index as key to render rows, - // it might cause incorrect state control if a column has an internal state. - // So we have to specific `key` prop on some components of the `display` to work around it. - // Ref: https://github.com/woocommerce/woocommerce-admin/blob/v2.1.2/packages/components/src/table/table.js#L288-L289 + // The `id` property in the first cell is for the `rowKey` callback. return [ - { display: el.title }, + { display: el.title, id: el.id.toString() }, { display: el.country }, { display: el.dailyBudget }, { display: isFreeListings ? ( ) : ( - + ), }, { display: ( -
+
true; /** - * Returns a normalized location to handle the inconsistent pathname between history v5 (≥ WC 6.7) and v4 (< WC 6.7). + * Returns a normalized location to handle the inconsistent pathname in history v5 (≥ WC 6.7). * * Since WC calls `history.push()` with a path that starts with 'admin.php?...', it brings * the inconsistent `location` results. @@ -19,11 +19,6 @@ const alwaysTrue = () => true; * @see https://github.com/remix-run/history/blob/v5.3.0/packages/history/index.ts#L701 * @see https://github.com/remix-run/history/blob/v5.3.0/packages/history/index.ts#L1086 * - * The `pathname` in v4 is always '/admin.php'. - * - * @see https://github.com/remix-run/history/blob/v4/modules/createBrowserHistory.js#L166 - * @see https://github.com/remix-run/history/blob/v4/modules/LocationUtils.js#L57-L61 - * * @param {Object} location Location object to be normalized. * @return {Object} Normalized location object. */ @@ -36,7 +31,6 @@ function normalizeLocation( location ) { /** * Show prompt when the user tries to unload/leave the page. - * Adds and removed `beforeunload` event listener according to the given flag. * * @param {string} message Message to be shown. Note, some browsers may not support this when unloading the page. * @param {boolean} shouldBlock Boolean flag, whether the prompt should be shown. @@ -47,31 +41,16 @@ export default function useNavigateAwayPromptEffect( shouldBlock, blockedLocation = alwaysTrue ) { - // history#v5 compatibility: As one of useEffect deps for triggering a new blocking after history is changed. + // history#v5: As one of useEffect deps for triggering a new blocking after history is changed. const { key } = getHistory().location; useEffect( () => { - /** - * Bind beforeunload event for non `woocommerce/navigation` links and reloads. - * history#v5 does bind `beforeunload` automatically, with v4 we need to do it ourselves. - * - * @param {Event} e Before Unload Event - */ - const eventListener = ( e ) => { - // If you prevent default behavior in Mozilla Firefox prompt will always be shown. - e.preventDefault(); - // Chrome requires returnValue to be set. - e.returnValue = message; - }; - let unblock = noop; if ( shouldBlock ) { // Block navigation in order to show a confirmation prompt. unblock = getHistory().block( ( transition ) => { - // In history v4 (< WC 6.7) block method receives two parameter (the location and action). - // In v5 (>= WC 6.7) it has only one parameter that is a transition object with location, retry and action properties. - const { location = transition, retry = noop } = transition; + const { location, retry } = transition; let shouldUnblock = true; if ( blockedLocation( normalizeLocation( location ) ) ) { @@ -79,22 +58,16 @@ export default function useNavigateAwayPromptEffect( shouldUnblock = window.confirm( message ); // eslint-disable-line no-alert } - // v5 compatibility requires the calls to unblock and retry functions. + // history v5 requires the calls to unblock and retry functions. if ( shouldUnblock ) { unblock(); retry(); } - - // v4 compatibility requires a return boolean to tell whether actually to unblock the navigation. - return shouldUnblock; } ); - - window.addEventListener( 'beforeunload', eventListener ); } return () => { unblock(); - window.removeEventListener( 'beforeunload', eventListener ); }; }, [ key, message, shouldBlock, blockedLocation ] ); } diff --git a/js/src/jsconfig.json b/js/src/jsconfig.json index 50c6214d97..2ee1c04c7c 100644 --- a/js/src/jsconfig.json +++ b/js/src/jsconfig.json @@ -2,8 +2,7 @@ "compilerOptions": { "baseUrl": ".", "paths": { - ".~/*": [ "./*" ], - "extracted/*": [ "*" ] + ".~/*": [ "./*" ] } } } diff --git a/package-lock.json b/package-lock.json index 5a23f5b337..6ea4b3b13f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "google-listings-and-ads", - "version": "2.5.4", + "version": "2.5.5", "lockfileVersion": 2, "requires": true, "packages": { @@ -50,7 +50,6 @@ "@types/jest": "^27.5.2", "@woocommerce/dependency-extraction-webpack-plugin": "^2.0.0", "@woocommerce/eslint-plugin": "^1.2.0", - "@wordpress/dependency-extraction-webpack-plugin": "^4.4.0", "@wordpress/env": "^8.4.0", "@wordpress/jest-preset-default": "^11.9.0", "@wordpress/prettier-config": "2.18.1", diff --git a/package.json b/package.json index 074da6acef..4ea0111c74 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "google-listings-and-ads", "title": "Google Listings and Ads", - "version": "2.5.4", + "version": "2.5.5", "description": "google-listings-and-ads", "author": "Automattic", "license": "GPL-3.0-or-later", @@ -59,7 +59,6 @@ "@types/jest": "^27.5.2", "@woocommerce/dependency-extraction-webpack-plugin": "^2.0.0", "@woocommerce/eslint-plugin": "^1.2.0", - "@wordpress/dependency-extraction-webpack-plugin": "^4.4.0", "@wordpress/env": "^8.4.0", "@wordpress/jest-preset-default": "^11.9.0", "@wordpress/prettier-config": "2.18.1", @@ -95,7 +94,6 @@ "check-engines": "wp-scripts check-engines", "check-licenses": "wp-scripts check-licenses", "dev": "NODE_ENV=development wp-scripts build", - "dewps:woo": "node bin/list-woo-dewped.mjs", "doc:tracking": "woocommerce-grow-jsdoc ./js/src", "format": "wp-scripts format", "i18n": "WP_CLI_PHP_ARGS='-d memory_limit=2048M' ./vendor/bin/wp i18n make-pot ./ languages/$npm_package_name.pot --slug=$npm_package_name --domain=$npm_package_name --exclude=bin,data,js/src,node_modules,tests,vendor", @@ -107,7 +105,7 @@ "lint:php-tests": "vendor/bin/phpcs --standard=tests/phpcs.xml.dist", "lint:fix:php": "vendor/bin/phpcbf; vendor/bin/phpcbf --standard=tests/phpcs.xml.dist", "lint:pkg-json": "wp-scripts lint-pkg-json", - "outdated:dewp": "npm outdated `cat .externalized.json | sed 's/[][\",]/ /g'` || true", + "outdated:dewp": "npm outdated --color=always `cat .externalized.json | sed 's/[][\",]/ /g'` | grep -E --color=never \"Depended by|google-listings-and-ads$\" || true", "outdated:nondewp": "npm outdated --color=always | grep --color=never --invert -E \"^(.\\[31m|.\\[33m)?(`cat .externalized.json | sed 's/[][\"]//g'| sed 's/,/|/g'`)\"", "packages-update": "wp-scripts packages-update", "start": "wp-scripts start", @@ -145,7 +143,7 @@ }, { "path": "./js/build/index.js", - "maxSize": "209.08 kB" + "maxSize": "148.52 kB" }, { "path": "./js/build/*.css", @@ -157,7 +155,7 @@ }, { "path": "./google-listings-and-ads.zip", - "maxSize": "8.48 mB", + "maxSize": "8.22 mB", "compression": "none" } ], diff --git a/readme.txt b/readme.txt index 485bc897b6..443e1ebbdd 100644 --- a/readme.txt +++ b/readme.txt @@ -5,7 +5,7 @@ Requires at least: 5.9 Tested up to: 6.3 Requires PHP: 7.4 Requires PHP Architecture: 64 Bits -Stable tag: 2.5.4 +Stable tag: 2.5.5 License: GPLv3 License URI: https://www.gnu.org/licenses/gpl-3.0.html @@ -111,6 +111,13 @@ Yes, you can run both at the same time, and we recommend it! In the US, advertis == Changelog == += 2.5.5 - 2023-09-05 = +* Dev - Add E2E tests - Dashboard - Edit Free Listings. +* Dev - Clean up workarounds for WooCommerce < 6.8. +* Dev - Externalize all WooCommerce JavaScript packages via Dependency Extraction Webpack Plugin (DEWP) and remove the selective bundling implementation that gradually externalizes packages into DEWP. +* Dev - Update DEWP related tools and docs. +* Fix - Fix Taxonomy Attribute Mapping for Product Variations. + = 2.5.4 - 2023-08-29 = * Dev - Override vulnerability packages: xmlhttprequest-ssl and ws. * Dev - Update trigger method in Hooks Generator Workflow. @@ -127,11 +134,4 @@ Yes, you can run both at the same time, and we recommend it! In the US, advertis * Update - Google API Client Services package to v0.312. * Update - Google Ads library to API V14. (package v19.2.0). -= 2.5.2 - 2023-08-08 = -* Fix - Remove `add_woocommerce_extended_task_list_item` and `remove_woocommerce_extended_task_list_item` hooks. -* Fix - WordPress 6.3 compatibility: The forms and image selector may not work due to "setImmediate" deprecation. -* Tweak - Use the latest API to add an item to the WC tasks list. -* Tweak - WC 8.0 compatibility. -* Tweak - WP 6.3 compatibility. - [See changelog for all versions](https://raw.githubusercontent.com/woocommerce/google-listings-and-ads/trunk/changelog.txt). diff --git a/src/Hooks/README.md b/src/Hooks/README.md index 0a2642e5f1..79067aa4bc 100644 --- a/src/Hooks/README.md +++ b/src/Hooks/README.md @@ -8,7 +8,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [BulkEditInitializer.php#L36](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Admin/BulkEdit/BulkEditInitializer.php#L36) +- [BulkEditInitializer.php#L36](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Admin/BulkEdit/BulkEditInitializer.php#L36) ## woocommerce_admin_disabled @@ -16,7 +16,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [WCAdminValidator.php#L38](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Internal/Requirements/WCAdminValidator.php#L38) +- [WCAdminValidator.php#L38](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Internal/Requirements/WCAdminValidator.php#L38) ## woocommerce_gla_ads_billing_setup_status @@ -24,8 +24,8 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [Ads.php#L112](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Ads.php#L112) -- [Ads.php#L121](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Ads.php#L121) +- [Ads.php#L112](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Ads.php#L112) +- [Ads.php#L121](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Ads.php#L121) ## woocommerce_gla_ads_client_exception @@ -33,24 +33,24 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [Ads.php#L73](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Ads.php#L73) -- [Ads.php#L117](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Ads.php#L117) -- [Ads.php#L172](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Ads.php#L172) -- [Ads.php#L214](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Ads.php#L214) -- [Ads.php#L298](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Ads.php#L298) -- [AdsCampaign.php#L127](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/AdsCampaign.php#L127) -- [AdsCampaign.php#L170](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/AdsCampaign.php#L170) -- [AdsCampaign.php#L230](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/AdsCampaign.php#L230) -- [AdsCampaign.php#L285](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/AdsCampaign.php#L285) -- [AdsCampaign.php#L319](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/AdsCampaign.php#L319) -- [AdsAssetGroup.php#L113](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/AdsAssetGroup.php#L113) -- [AdsAssetGroup.php#L304](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/AdsAssetGroup.php#L304) -- [AdsAssetGroup.php#L369](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/AdsAssetGroup.php#L369) -- [AdsReport.php#L105](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/AdsReport.php#L105) -- [AdsConversionAction.php#L97](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/AdsConversionAction.php#L97) -- [AdsConversionAction.php#L143](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/AdsConversionAction.php#L143) -- [AdsAssetGroupAsset.php#L135](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/AdsAssetGroupAsset.php#L135) -- [AdsAssetGroupAsset.php#L202](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/AdsAssetGroupAsset.php#L202) +- [Ads.php#L73](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Ads.php#L73) +- [Ads.php#L117](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Ads.php#L117) +- [Ads.php#L172](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Ads.php#L172) +- [Ads.php#L214](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Ads.php#L214) +- [Ads.php#L298](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Ads.php#L298) +- [AdsCampaign.php#L127](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/AdsCampaign.php#L127) +- [AdsCampaign.php#L170](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/AdsCampaign.php#L170) +- [AdsCampaign.php#L230](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/AdsCampaign.php#L230) +- [AdsCampaign.php#L285](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/AdsCampaign.php#L285) +- [AdsCampaign.php#L319](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/AdsCampaign.php#L319) +- [AdsAssetGroup.php#L113](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/AdsAssetGroup.php#L113) +- [AdsAssetGroup.php#L304](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/AdsAssetGroup.php#L304) +- [AdsAssetGroup.php#L369](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/AdsAssetGroup.php#L369) +- [AdsReport.php#L105](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/AdsReport.php#L105) +- [AdsConversionAction.php#L97](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/AdsConversionAction.php#L97) +- [AdsConversionAction.php#L143](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/AdsConversionAction.php#L143) +- [AdsAssetGroupAsset.php#L135](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/AdsAssetGroupAsset.php#L135) +- [AdsAssetGroupAsset.php#L202](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/AdsAssetGroupAsset.php#L202) ## woocommerce_gla_ads_setup_completed @@ -58,7 +58,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [SetupCompleteController.php#L46](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Site/Controllers/Ads/SetupCompleteController.php#L46) +- [SetupCompleteController.php#L46](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Site/Controllers/Ads/SetupCompleteController.php#L46) ## woocommerce_gla_attribute_applicable_product_types_ @@ -66,8 +66,8 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [AttributeManager.php#L295](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/Attributes/AttributeManager.php#L295) -- [AttributesForm.php#L69](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Admin/Product/Attributes/AttributesForm.php#L69) +- [AttributeManager.php#L295](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/Attributes/AttributeManager.php#L295) +- [AttributesForm.php#L69](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Admin/Product/Attributes/AttributesForm.php#L69) ## woocommerce_gla_attribute_hidden_product_types_ @@ -75,7 +75,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [AttributesForm.php#L74](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Admin/Product/Attributes/AttributesForm.php#L74) +- [AttributesForm.php#L74](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Admin/Product/Attributes/AttributesForm.php#L74) ## woocommerce_gla_attribute_mapping_sources @@ -83,7 +83,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [IsFieldTrait.php#L31](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/AttributeMapping/Traits/IsFieldTrait.php#L31) +- [IsFieldTrait.php#L31](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/AttributeMapping/Traits/IsFieldTrait.php#L31) ## woocommerce_gla_attribute_mapping_sources_custom_attributes @@ -91,7 +91,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [IsFieldTrait.php#L125](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/AttributeMapping/Traits/IsFieldTrait.php#L125) +- [IsFieldTrait.php#L125](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/AttributeMapping/Traits/IsFieldTrait.php#L125) ## woocommerce_gla_attribute_mapping_sources_global_attributes @@ -99,7 +99,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [IsFieldTrait.php#L64](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/AttributeMapping/Traits/IsFieldTrait.php#L64) +- [IsFieldTrait.php#L64](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/AttributeMapping/Traits/IsFieldTrait.php#L64) ## woocommerce_gla_attribute_mapping_sources_product_fields @@ -107,7 +107,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [IsFieldTrait.php#L115](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/AttributeMapping/Traits/IsFieldTrait.php#L115) +- [IsFieldTrait.php#L115](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/AttributeMapping/Traits/IsFieldTrait.php#L115) ## woocommerce_gla_attribute_mapping_sources_taxonomies @@ -115,7 +115,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [IsFieldTrait.php#L65](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/AttributeMapping/Traits/IsFieldTrait.php#L65) +- [IsFieldTrait.php#L65](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/AttributeMapping/Traits/IsFieldTrait.php#L65) ## woocommerce_gla_attributes_tab_applicable_product_types @@ -123,7 +123,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [AttributesTab.php#L190](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Admin/Product/Attributes/AttributesTab.php#L190) +- [AttributesTab.php#L190](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Admin/Product/Attributes/AttributesTab.php#L190) ## woocommerce_gla_batch_deleted_products @@ -131,7 +131,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [ProductSyncer.php#L229](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/ProductSyncer.php#L229) +- [ProductSyncer.php#L229](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/ProductSyncer.php#L229) ## woocommerce_gla_batch_retry_delete_products @@ -139,7 +139,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [ProductSyncer.php#L354](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/ProductSyncer.php#L354) +- [ProductSyncer.php#L354](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/ProductSyncer.php#L354) ## woocommerce_gla_batch_retry_update_products @@ -147,7 +147,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [ProductSyncer.php#L298](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/ProductSyncer.php#L298) +- [ProductSyncer.php#L298](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/ProductSyncer.php#L298) ## woocommerce_gla_batch_updated_products @@ -155,7 +155,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [ProductSyncer.php#L143](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/ProductSyncer.php#L143) +- [ProductSyncer.php#L143](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/ProductSyncer.php#L143) ## woocommerce_gla_batched_job_size @@ -163,8 +163,8 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [UpdateSyncableProductsCount.php#L74](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Jobs/UpdateSyncableProductsCount.php#L74) -- [AbstractBatchedActionSchedulerJob.php#L104](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Jobs/AbstractBatchedActionSchedulerJob.php#L104) +- [UpdateSyncableProductsCount.php#L74](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Jobs/UpdateSyncableProductsCount.php#L74) +- [AbstractBatchedActionSchedulerJob.php#L104](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Jobs/AbstractBatchedActionSchedulerJob.php#L104) ## woocommerce_gla_bulk_update_coupon @@ -172,7 +172,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [CouponBulkEdit.php#L134](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Admin/BulkEdit/CouponBulkEdit.php#L134) +- [CouponBulkEdit.php#L134](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Admin/BulkEdit/CouponBulkEdit.php#L134) ## woocommerce_gla_conversion_action_name @@ -180,7 +180,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [AdsConversionAction.php#L66](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/AdsConversionAction.php#L66) +- [AdsConversionAction.php#L66](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/AdsConversionAction.php#L66) ## woocommerce_gla_coupons_delete_retry_on_failure @@ -188,7 +188,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [CouponSyncer.php#L437](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Coupon/CouponSyncer.php#L437) +- [CouponSyncer.php#L437](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Coupon/CouponSyncer.php#L437) ## woocommerce_gla_coupons_update_retry_on_failure @@ -196,7 +196,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [CouponSyncer.php#L399](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Coupon/CouponSyncer.php#L399) +- [CouponSyncer.php#L399](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Coupon/CouponSyncer.php#L399) ## woocommerce_gla_custom_merchant_issues @@ -204,7 +204,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [MerchantStatuses.php#L435](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/MerchantCenter/MerchantStatuses.php#L435) +- [MerchantStatuses.php#L435](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/MerchantCenter/MerchantStatuses.php#L435) ## woocommerce_gla_debug_message @@ -212,38 +212,38 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [IssuesController.php#L96](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Site/Controllers/MerchantCenter/IssuesController.php#L96) -- [WCProductAdapter.php#L203](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/WCProductAdapter.php#L203) -- [ProductSyncer.php#L149](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/ProductSyncer.php#L149) -- [ProductSyncer.php#L159](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/ProductSyncer.php#L159) -- [ProductSyncer.php#L235](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/ProductSyncer.php#L235) -- [ProductSyncer.php#L245](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/ProductSyncer.php#L245) -- [ProductRepository.php#L304](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/ProductRepository.php#L304) -- [SyncerHooks.php#L197](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/SyncerHooks.php#L197) -- [ProductHelper.php#L459](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/ProductHelper.php#L459) -- [ProductHelper.php#L491](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/ProductHelper.php#L491) -- [BatchProductHelper.php#L208](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/BatchProductHelper.php#L208) -- [BatchProductHelper.php#L231](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/BatchProductHelper.php#L231) -- [SyncerHooks.php#L177](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Coupon/SyncerHooks.php#L177) -- [CouponHelper.php#L255](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Coupon/CouponHelper.php#L255) -- [CouponHelper.php#L292](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Coupon/CouponHelper.php#L292) -- [CouponSyncer.php#L102](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Coupon/CouponSyncer.php#L102) -- [CouponSyncer.php#L115](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Coupon/CouponSyncer.php#L115) -- [CouponSyncer.php#L140](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Coupon/CouponSyncer.php#L140) -- [CouponSyncer.php#L154](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Coupon/CouponSyncer.php#L154) -- [CouponSyncer.php#L171](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Coupon/CouponSyncer.php#L171) -- [CouponSyncer.php#L194](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Coupon/CouponSyncer.php#L194) -- [CouponSyncer.php#L259](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Coupon/CouponSyncer.php#L259) -- [CouponSyncer.php#L308](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Coupon/CouponSyncer.php#L308) -- [CouponSyncer.php#L327](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Coupon/CouponSyncer.php#L327) -- [MerchantStatuses.php#L334](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/MerchantCenter/MerchantStatuses.php#L334) -- [MerchantStatuses.php#L357](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/MerchantCenter/MerchantStatuses.php#L357) -- [MerchantCenterService.php#L305](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/MerchantCenter/MerchantCenterService.php#L305) -- [ActionSchedulerJobMonitor.php#L117](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Jobs/ActionSchedulerJobMonitor.php#L117) -- [ActionSchedulerJobMonitor.php#L126](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Jobs/ActionSchedulerJobMonitor.php#L126) -- [CleanupSyncedProducts.php#L74](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Jobs/CleanupSyncedProducts.php#L74) -- [ProductMetaQueryHelper.php#L92](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/DB/ProductMetaQueryHelper.php#L92) -- [ProductMetaQueryHelper.php#L123](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/DB/ProductMetaQueryHelper.php#L123) +- [IssuesController.php#L96](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Site/Controllers/MerchantCenter/IssuesController.php#L96) +- [WCProductAdapter.php#L203](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/WCProductAdapter.php#L203) +- [ProductSyncer.php#L149](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/ProductSyncer.php#L149) +- [ProductSyncer.php#L159](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/ProductSyncer.php#L159) +- [ProductSyncer.php#L235](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/ProductSyncer.php#L235) +- [ProductSyncer.php#L245](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/ProductSyncer.php#L245) +- [ProductRepository.php#L304](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/ProductRepository.php#L304) +- [SyncerHooks.php#L197](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/SyncerHooks.php#L197) +- [ProductHelper.php#L459](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/ProductHelper.php#L459) +- [ProductHelper.php#L491](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/ProductHelper.php#L491) +- [BatchProductHelper.php#L208](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/BatchProductHelper.php#L208) +- [BatchProductHelper.php#L231](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/BatchProductHelper.php#L231) +- [SyncerHooks.php#L177](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Coupon/SyncerHooks.php#L177) +- [CouponHelper.php#L255](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Coupon/CouponHelper.php#L255) +- [CouponHelper.php#L292](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Coupon/CouponHelper.php#L292) +- [CouponSyncer.php#L102](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Coupon/CouponSyncer.php#L102) +- [CouponSyncer.php#L115](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Coupon/CouponSyncer.php#L115) +- [CouponSyncer.php#L140](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Coupon/CouponSyncer.php#L140) +- [CouponSyncer.php#L154](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Coupon/CouponSyncer.php#L154) +- [CouponSyncer.php#L171](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Coupon/CouponSyncer.php#L171) +- [CouponSyncer.php#L194](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Coupon/CouponSyncer.php#L194) +- [CouponSyncer.php#L259](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Coupon/CouponSyncer.php#L259) +- [CouponSyncer.php#L308](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Coupon/CouponSyncer.php#L308) +- [CouponSyncer.php#L327](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Coupon/CouponSyncer.php#L327) +- [MerchantStatuses.php#L334](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/MerchantCenter/MerchantStatuses.php#L334) +- [MerchantStatuses.php#L357](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/MerchantCenter/MerchantStatuses.php#L357) +- [MerchantCenterService.php#L305](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/MerchantCenter/MerchantCenterService.php#L305) +- [ActionSchedulerJobMonitor.php#L117](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Jobs/ActionSchedulerJobMonitor.php#L117) +- [ActionSchedulerJobMonitor.php#L126](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Jobs/ActionSchedulerJobMonitor.php#L126) +- [CleanupSyncedProducts.php#L74](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Jobs/CleanupSyncedProducts.php#L74) +- [ProductMetaQueryHelper.php#L92](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/DB/ProductMetaQueryHelper.php#L92) +- [ProductMetaQueryHelper.php#L123](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/DB/ProductMetaQueryHelper.php#L123) ## woocommerce_gla_deleted_promotions @@ -251,7 +251,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [CouponSyncer.php#L321](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Coupon/CouponSyncer.php#L321) +- [CouponSyncer.php#L321](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Coupon/CouponSyncer.php#L321) ## woocommerce_gla_dimension_unit @@ -259,7 +259,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [WCProductAdapter.php#L427](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/WCProductAdapter.php#L427) +- [WCProductAdapter.php#L427](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/WCProductAdapter.php#L427) ## woocommerce_gla_disable_gtag_tracking @@ -267,7 +267,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [GlobalSiteTag.php#L464](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Google/GlobalSiteTag.php#L464) +- [GlobalSiteTag.php#L464](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Google/GlobalSiteTag.php#L464) ## woocommerce_gla_enable_connection_test @@ -275,7 +275,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [ConnectionTest.php#L87](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/ConnectionTest.php#L87) +- [ConnectionTest.php#L87](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/ConnectionTest.php#L87) ## woocommerce_gla_enable_debug_logging @@ -283,7 +283,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [DebugLogger.php#L33](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Logging/DebugLogger.php#L33) +- [DebugLogger.php#L33](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Logging/DebugLogger.php#L33) ## woocommerce_gla_enable_mcm @@ -291,7 +291,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [GLAChannel.php#L75](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/MultichannelMarketing/GLAChannel.php#L75) +- [GLAChannel.php#L75](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/MultichannelMarketing/GLAChannel.php#L75) ## woocommerce_gla_enable_reports @@ -299,7 +299,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [Admin.php#L250](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Admin/Admin.php#L250) +- [Admin.php#L250](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Admin/Admin.php#L250) ## woocommerce_gla_error @@ -307,23 +307,23 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [PHPView.php#L136](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/View/PHPView.php#L136) -- [PHPView.php#L164](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/View/PHPView.php#L164) -- [PHPView.php#L208](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/View/PHPView.php#L208) -- [ProductMetaHandler.php#L173](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/ProductMetaHandler.php#L173) -- [ProductSyncer.php#L301](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/ProductSyncer.php#L301) -- [ProductSyncer.php#L324](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/ProductSyncer.php#L324) -- [ProductSyncer.php#L357](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/ProductSyncer.php#L357) -- [ProductSyncer.php#L372](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/ProductSyncer.php#L372) -- [ProductHelper.php#L351](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/ProductHelper.php#L351) -- [ProductHelper.php#L567](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/ProductHelper.php#L567) -- [BatchProductHelper.php#L248](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/BatchProductHelper.php#L248) -- [AttributeManager.php#L269](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/Attributes/AttributeManager.php#L269) -- [CouponMetaHandler.php#L220](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Coupon/CouponMetaHandler.php#L220) -- [CouponSyncer.php#L409](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Coupon/CouponSyncer.php#L409) -- [CouponSyncer.php#L447](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Coupon/CouponSyncer.php#L447) -- [CouponSyncer.php#L465](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Coupon/CouponSyncer.php#L465) -- [ProductMetaQueryHelper.php#L139](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/DB/ProductMetaQueryHelper.php#L139) +- [PHPView.php#L136](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/View/PHPView.php#L136) +- [PHPView.php#L164](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/View/PHPView.php#L164) +- [PHPView.php#L208](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/View/PHPView.php#L208) +- [ProductMetaHandler.php#L173](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/ProductMetaHandler.php#L173) +- [ProductSyncer.php#L301](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/ProductSyncer.php#L301) +- [ProductSyncer.php#L324](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/ProductSyncer.php#L324) +- [ProductSyncer.php#L357](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/ProductSyncer.php#L357) +- [ProductSyncer.php#L372](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/ProductSyncer.php#L372) +- [ProductHelper.php#L351](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/ProductHelper.php#L351) +- [ProductHelper.php#L567](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/ProductHelper.php#L567) +- [BatchProductHelper.php#L248](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/BatchProductHelper.php#L248) +- [AttributeManager.php#L269](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/Attributes/AttributeManager.php#L269) +- [CouponMetaHandler.php#L220](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Coupon/CouponMetaHandler.php#L220) +- [CouponSyncer.php#L409](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Coupon/CouponSyncer.php#L409) +- [CouponSyncer.php#L447](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Coupon/CouponSyncer.php#L447) +- [CouponSyncer.php#L465](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Coupon/CouponSyncer.php#L465) +- [ProductMetaQueryHelper.php#L139](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/DB/ProductMetaQueryHelper.php#L139) ## woocommerce_gla_exception @@ -331,27 +331,27 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [PHPView.php#L87](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/View/PHPView.php#L87) -- [Connection.php#L95](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Connection.php#L95) -- [ContactInformationController.php#L242](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Site/Controllers/MerchantCenter/ContactInformationController.php#L242) -- [SettingsSyncController.php#L79](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Site/Controllers/MerchantCenter/SettingsSyncController.php#L79) -- [ProductVisibilityController.php#L193](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Site/Controllers/MerchantCenter/ProductVisibilityController.php#L193) -- [NoteInitializer.php#L74](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Notes/NoteInitializer.php#L74) -- [NoteInitializer.php#L116](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Notes/NoteInitializer.php#L116) -- [ClearProductStatsCache.php#L61](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Event/ClearProductStatsCache.php#L61) -- [GoogleServiceProvider.php#L223](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Internal/DependencyManagement/GoogleServiceProvider.php#L223) -- [ProductSyncer.php#L134](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/ProductSyncer.php#L134) -- [ProductSyncer.php#L220](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/ProductSyncer.php#L220) -- [ScriptWithBuiltDependenciesAsset.php#L66](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Assets/ScriptWithBuiltDependenciesAsset.php#L66) -- [CouponSyncer.php#L202](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Coupon/CouponSyncer.php#L202) -- [CouponSyncer.php#L292](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Coupon/CouponSyncer.php#L292) -- [DateTime.php#L44](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Admin/Input/DateTime.php#L44) -- [DateTime.php#L80](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Admin/Input/DateTime.php#L80) -- [ChannelVisibilityMetaBox.php#L190](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Admin/MetaBox/ChannelVisibilityMetaBox.php#L190) -- [CouponChannelVisibilityMetaBox.php#L197](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Admin/MetaBox/CouponChannelVisibilityMetaBox.php#L197) -- [WooCommercePreOrders.php#L111](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Integration/WooCommercePreOrders.php#L111) -- [WooCommercePreOrders.php#L131](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Integration/WooCommercePreOrders.php#L131) -- [PluginUpdate.php#L75](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Jobs/Update/PluginUpdate.php#L75) +- [PHPView.php#L87](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/View/PHPView.php#L87) +- [Connection.php#L95](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Connection.php#L95) +- [ContactInformationController.php#L242](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Site/Controllers/MerchantCenter/ContactInformationController.php#L242) +- [SettingsSyncController.php#L79](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Site/Controllers/MerchantCenter/SettingsSyncController.php#L79) +- [ProductVisibilityController.php#L193](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Site/Controllers/MerchantCenter/ProductVisibilityController.php#L193) +- [NoteInitializer.php#L74](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Notes/NoteInitializer.php#L74) +- [NoteInitializer.php#L116](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Notes/NoteInitializer.php#L116) +- [ClearProductStatsCache.php#L61](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Event/ClearProductStatsCache.php#L61) +- [GoogleServiceProvider.php#L223](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Internal/DependencyManagement/GoogleServiceProvider.php#L223) +- [ProductSyncer.php#L134](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/ProductSyncer.php#L134) +- [ProductSyncer.php#L220](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/ProductSyncer.php#L220) +- [ScriptWithBuiltDependenciesAsset.php#L66](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Assets/ScriptWithBuiltDependenciesAsset.php#L66) +- [CouponSyncer.php#L202](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Coupon/CouponSyncer.php#L202) +- [CouponSyncer.php#L292](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Coupon/CouponSyncer.php#L292) +- [DateTime.php#L44](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Admin/Input/DateTime.php#L44) +- [DateTime.php#L80](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Admin/Input/DateTime.php#L80) +- [ChannelVisibilityMetaBox.php#L190](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Admin/MetaBox/ChannelVisibilityMetaBox.php#L190) +- [CouponChannelVisibilityMetaBox.php#L197](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Admin/MetaBox/CouponChannelVisibilityMetaBox.php#L197) +- [WooCommercePreOrders.php#L111](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Integration/WooCommercePreOrders.php#L111) +- [WooCommercePreOrders.php#L131](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Integration/WooCommercePreOrders.php#L131) +- [PluginUpdate.php#L75](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Jobs/Update/PluginUpdate.php#L75) ## woocommerce_gla_force_run_install @@ -359,7 +359,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [Installer.php#L82](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Installer.php#L82) +- [Installer.php#L82](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Installer.php#L82) ## woocommerce_gla_get_google_product_offer_id @@ -367,7 +367,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [WCProductAdapter.php#L280](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/WCProductAdapter.php#L280) +- [WCProductAdapter.php#L280](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/WCProductAdapter.php#L280) ## woocommerce_gla_get_sync_ready_products_filter @@ -375,7 +375,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [ProductFilter.php#L61](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/ProductFilter.php#L61) +- [ProductFilter.php#L61](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/ProductFilter.php#L61) ## woocommerce_gla_get_sync_ready_products_pre_filter @@ -383,7 +383,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [ProductFilter.php#L47](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/ProductFilter.php#L47) +- [ProductFilter.php#L47](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/ProductFilter.php#L47) ## woocommerce_gla_get_wc_product_id @@ -391,7 +391,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [ProductHelper.php#L278](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/ProductHelper.php#L278) +- [ProductHelper.php#L278](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/ProductHelper.php#L278) ## woocommerce_gla_guzzle_client_exception @@ -399,20 +399,20 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [Connection.php#L70](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Connection.php#L70) -- [Connection.php#L91](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Connection.php#L91) -- [Connection.php#L126](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Connection.php#L126) -- [Middleware.php#L80](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Middleware.php#L80) -- [Middleware.php#L178](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Middleware.php#L178) -- [Middleware.php#L228](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Middleware.php#L228) -- [Middleware.php#L273](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Middleware.php#L273) -- [Middleware.php#L344](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Middleware.php#L344) -- [Middleware.php#L394](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Middleware.php#L394) -- [Middleware.php#L418](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Middleware.php#L418) -- [Middleware.php#L452](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Middleware.php#L452) -- [Middleware.php#L552](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Middleware.php#L552) -- [Middleware.php#L611](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Middleware.php#L611) -- [GoogleServiceProvider.php#L247](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Internal/DependencyManagement/GoogleServiceProvider.php#L247) +- [Connection.php#L70](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Connection.php#L70) +- [Connection.php#L91](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Connection.php#L91) +- [Connection.php#L126](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Connection.php#L126) +- [Middleware.php#L80](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Middleware.php#L80) +- [Middleware.php#L178](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Middleware.php#L178) +- [Middleware.php#L228](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Middleware.php#L228) +- [Middleware.php#L273](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Middleware.php#L273) +- [Middleware.php#L344](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Middleware.php#L344) +- [Middleware.php#L394](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Middleware.php#L394) +- [Middleware.php#L418](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Middleware.php#L418) +- [Middleware.php#L452](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Middleware.php#L452) +- [Middleware.php#L552](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Middleware.php#L552) +- [Middleware.php#L611](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Middleware.php#L611) +- [GoogleServiceProvider.php#L247](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Internal/DependencyManagement/GoogleServiceProvider.php#L247) ## woocommerce_gla_guzzle_invalid_response @@ -420,15 +420,15 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [Connection.php#L66](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Connection.php#L66) -- [Connection.php#L121](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Connection.php#L121) -- [Middleware.php#L159](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Middleware.php#L159) -- [Middleware.php#L223](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Middleware.php#L223) -- [Middleware.php#L267](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Middleware.php#L267) -- [Middleware.php#L339](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Middleware.php#L339) -- [Middleware.php#L389](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Middleware.php#L389) -- [Middleware.php#L548](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Middleware.php#L548) -- [Middleware.php#L599](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Middleware.php#L599) +- [Connection.php#L66](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Connection.php#L66) +- [Connection.php#L121](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Connection.php#L121) +- [Middleware.php#L159](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Middleware.php#L159) +- [Middleware.php#L223](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Middleware.php#L223) +- [Middleware.php#L267](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Middleware.php#L267) +- [Middleware.php#L339](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Middleware.php#L339) +- [Middleware.php#L389](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Middleware.php#L389) +- [Middleware.php#L548](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Middleware.php#L548) +- [Middleware.php#L599](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Middleware.php#L599) ## woocommerce_gla_hidden_coupon_types @@ -436,7 +436,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [CouponSyncer.php#L378](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Coupon/CouponSyncer.php#L378) +- [CouponSyncer.php#L378](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Coupon/CouponSyncer.php#L378) ## woocommerce_gla_hidden_product_types @@ -444,7 +444,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [ProductSyncer.php#L275](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/ProductSyncer.php#L275) +- [ProductSyncer.php#L275](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/ProductSyncer.php#L275) ## woocommerce_gla_job_failure_rate_threshold @@ -452,7 +452,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [ActionSchedulerJobMonitor.php#L186](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Jobs/ActionSchedulerJobMonitor.php#L186) +- [ActionSchedulerJobMonitor.php#L186](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Jobs/ActionSchedulerJobMonitor.php#L186) ## woocommerce_gla_job_failure_timeframe @@ -460,7 +460,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [ActionSchedulerJobMonitor.php#L195](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Jobs/ActionSchedulerJobMonitor.php#L195) +- [ActionSchedulerJobMonitor.php#L195](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Jobs/ActionSchedulerJobMonitor.php#L195) ## woocommerce_gla_mapping_rules_change @@ -468,9 +468,9 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [AttributeMappingRulesController.php#L143](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Site/Controllers/AttributeMapping/AttributeMappingRulesController.php#L143) -- [AttributeMappingRulesController.php#L166](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Site/Controllers/AttributeMapping/AttributeMappingRulesController.php#L166) -- [AttributeMappingRulesController.php#L188](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Site/Controllers/AttributeMapping/AttributeMappingRulesController.php#L188) +- [AttributeMappingRulesController.php#L143](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Site/Controllers/AttributeMapping/AttributeMappingRulesController.php#L143) +- [AttributeMappingRulesController.php#L166](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Site/Controllers/AttributeMapping/AttributeMappingRulesController.php#L166) +- [AttributeMappingRulesController.php#L188](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Site/Controllers/AttributeMapping/AttributeMappingRulesController.php#L188) ## woocommerce_gla_mc_account_review_lifetime @@ -478,7 +478,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [RequestReviewStatuses.php#L146](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Google/RequestReviewStatuses.php#L146) +- [RequestReviewStatuses.php#L146](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Google/RequestReviewStatuses.php#L146) ## woocommerce_gla_mc_client_exception @@ -486,14 +486,14 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [MerchantReport.php#L95](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/MerchantReport.php#L95) -- [Merchant.php#L92](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Merchant.php#L92) -- [Merchant.php#L140](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Merchant.php#L140) -- [Merchant.php#L172](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Merchant.php#L172) -- [Merchant.php#L191](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Merchant.php#L191) -- [Merchant.php#L247](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Merchant.php#L247) -- [Merchant.php#L292](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Merchant.php#L292) -- [Merchant.php#L354](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Merchant.php#L354) +- [MerchantReport.php#L95](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/MerchantReport.php#L95) +- [Merchant.php#L92](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Merchant.php#L92) +- [Merchant.php#L140](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Merchant.php#L140) +- [Merchant.php#L172](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Merchant.php#L172) +- [Merchant.php#L191](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Merchant.php#L191) +- [Merchant.php#L247](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Merchant.php#L247) +- [Merchant.php#L292](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Merchant.php#L292) +- [Merchant.php#L354](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Merchant.php#L354) ## woocommerce_gla_mc_settings_sync @@ -501,7 +501,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [SettingsSyncController.php#L69](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Site/Controllers/MerchantCenter/SettingsSyncController.php#L69) +- [SettingsSyncController.php#L69](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Site/Controllers/MerchantCenter/SettingsSyncController.php#L69) ## woocommerce_gla_mc_status_lifetime @@ -509,7 +509,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [MerchantStatuses.php#L778](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/MerchantCenter/MerchantStatuses.php#L778) +- [MerchantStatuses.php#L778](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/MerchantCenter/MerchantStatuses.php#L778) ## woocommerce_gla_merchant_issue_override @@ -517,7 +517,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [IssuesController.php#L86](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Site/Controllers/MerchantCenter/IssuesController.php#L86) +- [IssuesController.php#L86](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Site/Controllers/MerchantCenter/IssuesController.php#L86) ## woocommerce_gla_merchant_status_google_ids_chunk @@ -525,7 +525,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [MerchantStatuses.php#L191](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/MerchantCenter/MerchantStatuses.php#L191) +- [MerchantStatuses.php#L191](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/MerchantCenter/MerchantStatuses.php#L191) ## woocommerce_gla_merchant_status_presync_issues_chunk @@ -533,7 +533,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [MerchantStatuses.php#L531](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/MerchantCenter/MerchantStatuses.php#L531) +- [MerchantStatuses.php#L531](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/MerchantCenter/MerchantStatuses.php#L531) ## woocommerce_gla_options_deleted_ @@ -541,7 +541,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [Options.php#L103](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Options/Options.php#L103) +- [Options.php#L103](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Options/Options.php#L103) ## woocommerce_gla_options_updated_ @@ -549,8 +549,8 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [Options.php#L65](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Options/Options.php#L65) -- [Options.php#L85](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Options/Options.php#L85) +- [Options.php#L65](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Options/Options.php#L65) +- [Options.php#L85](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Options/Options.php#L85) ## woocommerce_gla_prepared_response_->GET_ROUTE_NAME @@ -558,7 +558,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [BaseController.php#L158](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Site/Controllers/BaseController.php#L158) +- [BaseController.php#L158](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Site/Controllers/BaseController.php#L158) ## woocommerce_gla_product_attribute_types @@ -566,7 +566,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [AttributeManager.php#L243](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/Attributes/AttributeManager.php#L243) +- [AttributeManager.php#L243](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/Attributes/AttributeManager.php#L243) ## woocommerce_gla_product_attribute_value_ @@ -574,8 +574,8 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [WCProductAdapter.php#L901](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/WCProductAdapter.php#L901) -- [WCProductAdapter.php#L952](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/WCProductAdapter.php#L952) +- [WCProductAdapter.php#L901](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/WCProductAdapter.php#L901) +- [WCProductAdapter.php#L952](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/WCProductAdapter.php#L952) ## woocommerce_gla_product_attribute_value_description @@ -583,7 +583,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [WCProductAdapter.php#L348](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/WCProductAdapter.php#L348) +- [WCProductAdapter.php#L348](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/WCProductAdapter.php#L348) ## woocommerce_gla_product_attribute_value_options_::get_id @@ -591,7 +591,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [AttributesForm.php#L108](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Admin/Product/Attributes/AttributesForm.php#L108) +- [AttributesForm.php#L108](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Admin/Product/Attributes/AttributesForm.php#L108) ## woocommerce_gla_product_attribute_value_price @@ -599,7 +599,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [WCProductAdapter.php#L630](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/WCProductAdapter.php#L630) +- [WCProductAdapter.php#L630](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/WCProductAdapter.php#L630) ## woocommerce_gla_product_attribute_value_sale_price @@ -607,7 +607,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [WCProductAdapter.php#L680](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/WCProductAdapter.php#L680) +- [WCProductAdapter.php#L680](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/WCProductAdapter.php#L680) ## woocommerce_gla_product_attribute_values @@ -615,7 +615,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [WCProductAdapter.php#L167](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/WCProductAdapter.php#L167) +- [WCProductAdapter.php#L167](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/WCProductAdapter.php#L167) ## woocommerce_gla_product_description_apply_shortcodes @@ -623,7 +623,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [WCProductAdapter.php#L317](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/WCProductAdapter.php#L317) +- [WCProductAdapter.php#L317](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/WCProductAdapter.php#L317) ## woocommerce_gla_product_property_value_is_virtual @@ -631,7 +631,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [WCProductAdapter.php#L767](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/WCProductAdapter.php#L767) +- [WCProductAdapter.php#L767](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/WCProductAdapter.php#L767) ## woocommerce_gla_product_query_args @@ -639,7 +639,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [ProductRepository.php#L360](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/ProductRepository.php#L360) +- [ProductRepository.php#L360](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/ProductRepository.php#L360) ## woocommerce_gla_products_delete_retry_on_failure @@ -647,7 +647,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [ProductSyncer.php#L353](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/ProductSyncer.php#L353) +- [ProductSyncer.php#L353](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/ProductSyncer.php#L353) ## woocommerce_gla_products_update_retry_on_failure @@ -655,7 +655,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [ProductSyncer.php#L297](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/ProductSyncer.php#L297) +- [ProductSyncer.php#L297](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/ProductSyncer.php#L297) ## woocommerce_gla_ready_for_syncing @@ -663,7 +663,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [MerchantCenterService.php#L118](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/MerchantCenter/MerchantCenterService.php#L118) +- [MerchantCenterService.php#L118](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/MerchantCenter/MerchantCenterService.php#L118) ## woocommerce_gla_request_review_failure @@ -671,9 +671,9 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [Middleware.php#L592](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Middleware.php#L592) -- [RequestReviewController.php#L110](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Site/Controllers/MerchantCenter/RequestReviewController.php#L110) -- [RequestReviewController.php#L122](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Site/Controllers/MerchantCenter/RequestReviewController.php#L122) +- [Middleware.php#L592](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Middleware.php#L592) +- [RequestReviewController.php#L110](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Site/Controllers/MerchantCenter/RequestReviewController.php#L110) +- [RequestReviewController.php#L122](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Site/Controllers/MerchantCenter/RequestReviewController.php#L122) ## woocommerce_gla_request_review_response @@ -681,7 +681,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [Middleware.php#L545](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Middleware.php#L545) +- [Middleware.php#L545](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Middleware.php#L545) ## woocommerce_gla_retry_delete_coupons @@ -689,7 +689,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [CouponSyncer.php#L442](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Coupon/CouponSyncer.php#L442) +- [CouponSyncer.php#L442](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Coupon/CouponSyncer.php#L442) ## woocommerce_gla_retry_update_coupons @@ -697,7 +697,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [CouponSyncer.php#L404](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Coupon/CouponSyncer.php#L404) +- [CouponSyncer.php#L404](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Coupon/CouponSyncer.php#L404) ## woocommerce_gla_site_claim_failure @@ -705,10 +705,10 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [Middleware.php#L268](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Middleware.php#L268) -- [Middleware.php#L274](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Middleware.php#L274) -- [Merchant.php#L93](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Merchant.php#L93) -- [AccountService.php#L365](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/MerchantCenter/AccountService.php#L365) +- [Middleware.php#L268](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Middleware.php#L268) +- [Middleware.php#L274](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Middleware.php#L274) +- [Merchant.php#L93](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Merchant.php#L93) +- [AccountService.php#L365](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/MerchantCenter/AccountService.php#L365) ## woocommerce_gla_site_claim_overwrite_required @@ -716,7 +716,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [AccountService.php#L360](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/MerchantCenter/AccountService.php#L360) +- [AccountService.php#L360](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/MerchantCenter/AccountService.php#L360) ## woocommerce_gla_site_claim_success @@ -724,8 +724,8 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [Middleware.php#L263](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Middleware.php#L263) -- [Merchant.php#L90](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/Merchant.php#L90) +- [Middleware.php#L263](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Middleware.php#L263) +- [Merchant.php#L90](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/Merchant.php#L90) ## woocommerce_gla_site_url @@ -733,7 +733,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [PluginHelper.php#L189](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/PluginHelper.php#L189) +- [PluginHelper.php#L189](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/PluginHelper.php#L189) ## woocommerce_gla_site_verify_failure @@ -741,9 +741,9 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [SiteVerification.php#L58](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/SiteVerification.php#L58) -- [SiteVerification.php#L66](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/SiteVerification.php#L66) -- [SiteVerification.php#L87](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/SiteVerification.php#L87) +- [SiteVerification.php#L58](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/SiteVerification.php#L58) +- [SiteVerification.php#L66](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/SiteVerification.php#L66) +- [SiteVerification.php#L87](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/SiteVerification.php#L87) ## woocommerce_gla_site_verify_success @@ -751,7 +751,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [SiteVerification.php#L85](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/SiteVerification.php#L85) +- [SiteVerification.php#L85](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/SiteVerification.php#L85) ## woocommerce_gla_supported_coupon_types @@ -759,7 +759,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [CouponSyncer.php#L365](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Coupon/CouponSyncer.php#L365) +- [CouponSyncer.php#L365](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Coupon/CouponSyncer.php#L365) ## woocommerce_gla_supported_product_types @@ -767,7 +767,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [ProductSyncer.php#L264](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/ProductSyncer.php#L264) +- [ProductSyncer.php#L264](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/ProductSyncer.php#L264) ## woocommerce_gla_sv_client_exception @@ -775,8 +775,8 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [SiteVerification.php#L120](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/SiteVerification.php#L120) -- [SiteVerification.php#L162](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/API/Google/SiteVerification.php#L162) +- [SiteVerification.php#L120](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/SiteVerification.php#L120) +- [SiteVerification.php#L162](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/API/Google/SiteVerification.php#L162) ## woocommerce_gla_tax_excluded @@ -784,7 +784,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [WCProductAdapter.php#L591](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/WCProductAdapter.php#L591) +- [WCProductAdapter.php#L591](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/WCProductAdapter.php#L591) ## woocommerce_gla_updated_coupon @@ -792,7 +792,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [CouponSyncer.php#L168](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Coupon/CouponSyncer.php#L168) +- [CouponSyncer.php#L168](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Coupon/CouponSyncer.php#L168) ## woocommerce_gla_url_switch_required @@ -800,7 +800,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [AccountService.php#L445](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/MerchantCenter/AccountService.php#L445) +- [AccountService.php#L445](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/MerchantCenter/AccountService.php#L445) ## woocommerce_gla_url_switch_success @@ -808,7 +808,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [AccountService.php#L468](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/MerchantCenter/AccountService.php#L468) +- [AccountService.php#L468](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/MerchantCenter/AccountService.php#L468) ## woocommerce_gla_use_short_description @@ -816,7 +816,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [WCProductAdapter.php#L294](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/WCProductAdapter.php#L294) +- [WCProductAdapter.php#L294](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/WCProductAdapter.php#L294) ## woocommerce_gla_wcs_url @@ -824,8 +824,8 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [PluginHelper.php#L174](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/PluginHelper.php#L174) -- [PluginHelper.php#L178](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/PluginHelper.php#L178) +- [PluginHelper.php#L174](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/PluginHelper.php#L174) +- [PluginHelper.php#L178](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/PluginHelper.php#L178) ## woocommerce_gla_weight_unit @@ -833,7 +833,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [WCProductAdapter.php#L428](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/WCProductAdapter.php#L428) +- [WCProductAdapter.php#L428](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/WCProductAdapter.php#L428) ## woocommerce_hide_invisible_variations @@ -841,5 +841,5 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this **Used in**: -- [ProductHelper.php#L366](https://github.com/woocommerce/google-listings-and-ads/blob/c2b9ee01aeed40ba936cbcf9b790616058e45780/src/Product/ProductHelper.php#L366) +- [ProductHelper.php#L366](https://github.com/woocommerce/google-listings-and-ads/blob/c58137fd8304211998fbd717aa93936d2a9c936c/src/Product/ProductHelper.php#L366) diff --git a/src/Product/WCProductAdapter.php b/src/Product/WCProductAdapter.php index f5df0d84b6..2bf965845e 100644 --- a/src/Product/WCProductAdapter.php +++ b/src/Product/WCProductAdapter.php @@ -1040,15 +1040,24 @@ protected function get_product_taxonomy( $taxonomy ) { if ( $product->is_type( 'variation' ) ) { $values = $product->get_attribute( $taxonomy ); - if ( ! $values ) { + if ( ! $values ) { // if taxonomy is not a global attribute (ie product_tag), attempt to get is with wc_get_product_terms + $values = $this->get_taxonomy_term_names( $product->get_id(), $taxonomy ); + } + + if ( ! $values ) { // if the value is still not available at this point, we try to get it from the parent $parent = wc_get_product( $product->get_parent_id() ); $values = $parent->get_attribute( $taxonomy ); + + if ( ! $values ) { + $values = $this->get_taxonomy_term_names( $parent->get_id(), $taxonomy ); + } } - $values = explode( ', ', $values ); + if ( is_string( $values ) ) { + $values = explode( ', ', $values ); + } } else { - $values = wc_get_product_terms( $product->get_id(), $taxonomy ); - $values = wp_list_pluck( $values, 'name' ); + $values = $this->get_taxonomy_term_names( $product->get_id(), $taxonomy ); } if ( empty( $values ) || is_wp_error( $values ) ) { @@ -1127,4 +1136,16 @@ protected function get_custom_attribute( $attribute_name ) { $values = array_filter( array_map( 'trim', $values ) ); return empty( $values ) ? '' : $values[0]; } + + /** + * Get a taxonomy term names from a product using + * + * @param int $product_id - The product ID to get the taxonomy term + * @param string $taxonomy - The taxonomy to get. + * @return string[] An array of term names. + */ + protected function get_taxonomy_term_names( $product_id, $taxonomy ) { + $values = wc_get_product_terms( $product_id, $taxonomy ); + return wp_list_pluck( $values, 'name' ); + } } diff --git a/tests/Tools/HelperTrait/ProductTrait.php b/tests/Tools/HelperTrait/ProductTrait.php index 3893bc3f46..19edb771cb 100644 --- a/tests/Tools/HelperTrait/ProductTrait.php +++ b/tests/Tools/HelperTrait/ProductTrait.php @@ -521,10 +521,16 @@ protected function generate_attribute_mapping_adapted_product( $rules, $categori * Creates a variant with variations ready for being tested in Attribute Mapping * * @param array $rules The Attribute Mapping rules to apply. + * @param array $categories The Categories attached to the variation parent. * @return WCProductAdapter The adapted products with the rules applied. */ - protected function generate_attribute_mapping_adapted_product_variant( $rules ) { - $variable = WC_Helper_Product::create_variation_product(); + protected function generate_attribute_mapping_adapted_product_variant( $rules, $categories = [] ) { + $variable = WC_Helper_Product::create_variation_product(); + if ( ! empty( $categories ) ) { + $variable->set_category_ids( $categories ); + } + $variable->save(); + $variation = wc_get_product( $variable->get_children()[ count( $variable->get_children() ) - 1 ] ); $variation->set_stock_quantity( 1 ); $variation->set_weight( 1.2 ); diff --git a/tests/Unit/Product/AttributeMapping/AttributeMappingWCProductAdapterTest.php b/tests/Unit/Product/AttributeMapping/AttributeMappingWCProductAdapterTest.php index d2f6212ef6..05a6d10427 100644 --- a/tests/Unit/Product/AttributeMapping/AttributeMappingWCProductAdapterTest.php +++ b/tests/Unit/Product/AttributeMapping/AttributeMappingWCProductAdapterTest.php @@ -243,6 +243,29 @@ public function test_maps_rules_product_taxonomies() { $this->assertEquals( '0', $adapted_variation->getColor() ); } + /** + * Test taxonomy source like product_cat, product_tag + */ + public function test_maps_rules_product_cat() { + $rules = [ + [ + 'attribute' => Brand::get_id(), + 'source' => 'taxonomy:product_cat', + 'category_condition_type' => 'ALL', + 'categories' => '', + ], + ]; + + $category_1 = wp_insert_term( 'Zulu Category', 'product_cat' ); + $category_2 = wp_insert_term( 'Alpha Category', 'product_cat' ); + + $adapted_product = $this->generate_attribute_mapping_adapted_product( $rules, [ $category_1['term_id'], $category_2['term_id'] ] ); + $adapted_variation = $this->generate_attribute_mapping_adapted_product_variant( $rules, [ $category_1['term_id'], $category_2['term_id'] ] ); + + $this->assertEquals( 'Alpha Category', $adapted_product->getBrand() ); + $this->assertEquals( 'Alpha Category', $adapted_variation->getBrand() ); + } + /** * Test dynamic taxonomy not found */ diff --git a/tests/e2e/bin/test-data.php b/tests/e2e/bin/test-data.php index 02fc9edaad..55de84dcaa 100644 --- a/tests/e2e/bin/test-data.php +++ b/tests/e2e/bin/test-data.php @@ -33,8 +33,56 @@ function register_routes() { ], ], ); + register_rest_route( + 'wc/v3', + 'gla-test/onboarded-merchant', + [ + [ + 'methods' => 'POST', + 'callback' => __NAMESPACE__ . '\set_onboarded_merchant', + 'permission_callback' => __NAMESPACE__ . '\permissions', + ], + [ + 'methods' => 'DELETE', + 'callback' => __NAMESPACE__ . '\clear_onboarded_merchant', + 'permission_callback' => __NAMESPACE__ . '\permissions', + ], + ], + ); +} + +/** + * Set the onboarded merchant options. + */ +function set_onboarded_merchant() { + /** @var OptionsInterface $options */ + $options = woogle_get_container()->get( OptionsInterface::class ); + $options->update( + OptionsInterface::REDIRECT_TO_ONBOARDING, + 'no' + ); + $options->update( + OptionsInterface::MC_SETUP_COMPLETED_AT, + 1693215209 + ); + $options->update( + OptionsInterface::GOOGLE_CONNECTED, + true + ); +} + +/** + * Clear a previously set onboarded merchant. + */ +function clear_onboarded_merchant() { + /** @var OptionsInterface $options */ + $options = woogle_get_container()->get( OptionsInterface::class ); + $options->delete( OptionsInterface::REDIRECT_TO_ONBOARDING ); + $options->delete( OptionsInterface::MC_SETUP_COMPLETED_AT ); + $options->delete( OptionsInterface::GOOGLE_CONNECTED ); } + /** * Set the Ads Conversion Action to test values. */ diff --git a/tests/e2e/config/playwright.config.js b/tests/e2e/config/playwright.config.js index ae3720a15d..b3d99e4407 100644 --- a/tests/e2e/config/playwright.config.js +++ b/tests/e2e/config/playwright.config.js @@ -15,6 +15,9 @@ module.exports = defineConfig( { timeout: 20 * 1000, }, + /* Number of workers, See discusion: https://github.com/woocommerce/google-listings-and-ads/pull/2080#issuecomment-1698810270 */ + workers: 1, + /* Retry on CI only */ retries: process.env.CI ? 2 : 0, diff --git a/tests/e2e/specs/dashboard/edit-free-listings.test.js b/tests/e2e/specs/dashboard/edit-free-listings.test.js new file mode 100644 index 0000000000..87a8e60858 --- /dev/null +++ b/tests/e2e/specs/dashboard/edit-free-listings.test.js @@ -0,0 +1,102 @@ +/** + * External dependencies + */ +import { expect, test } from '@playwright/test'; +/** + * Internal dependencies + */ +import { clearOnboardedMerchant, setOnboardedMerchant } from '../../utils/api'; +import { checkSnackBarMessage } from '../../utils/page'; +import DashboardPage from '../../utils/pages/dashboard.js'; +import EditFreeListingsPage from '../../utils/pages/edit-free-listings.js'; + +test.use( { storageState: process.env.ADMINSTATE } ); + +test.describe.configure( { mode: 'serial' } ); + +/** + * @type {import('../../utils/pages/dashboard.js').default} dashboardPage + */ +let dashboardPage = null; + +/** + * @type {import('../../utils/pages/edit-free-listings.js').default} editFreeListingsPage + */ +let editFreeListingsPage = null; + +/** + * @type {import('@playwright/test').Page} page + */ +let page = null; + +test.describe( 'Edit Free Listings', () => { + test.beforeAll( async ( { browser } ) => { + page = await browser.newPage(); + dashboardPage = new DashboardPage( page ); + editFreeListingsPage = new EditFreeListingsPage( page ); + await setOnboardedMerchant(); + await dashboardPage.mockRequests(); + await dashboardPage.goto(); + } ); + + test.afterAll( async () => { + await clearOnboardedMerchant(); + await page.close(); + } ); + + test( 'Dashboard page contains Free Listings', async () => { + await expect( dashboardPage.freeListingRow ).toContainText( + 'Free listings' + ); + + await expect( dashboardPage.editFreeListingButton ).toBeEnabled(); + } ); + + test( 'Edit Free Listings should show modal', async () => { + await dashboardPage.clickEditFreeListings(); + + await page.waitForLoadState( 'domcontentloaded' ); + + const continueToEditButton = + await dashboardPage.getContinueToEditButton(); + const dontEditButton = await dashboardPage.getDontEditButton(); + await expect( continueToEditButton ).toBeEnabled(); + await expect( dontEditButton ).toBeEnabled(); + } ); + + test( 'Continue to edit Free listings', async () => { + await dashboardPage.clickContinueToEditButton(); + await page.waitForLoadState( 'domcontentloaded' ); + } ); + + test( 'Check recommended shipping settings', async () => { + await editFreeListingsPage.checkRecommendShippingSettings(); + await editFreeListingsPage.fillCountriesShippingTimeInput( '5' ); + await editFreeListingsPage.checkDestinationBasedTaxRates(); + const saveChangesButton = + await editFreeListingsPage.getSaveChangesButton(); + await expect( saveChangesButton ).toBeEnabled(); + } ); + + test( 'Save changes', async () => { + const awaitForRequests = editFreeListingsPage.registerSavingRequests(); + await editFreeListingsPage.mockSuccessfulSavingSettingsResponse(); + await editFreeListingsPage.clickSaveChanges(); + const requests = await awaitForRequests; + const settingsResponse = await ( + await requests[ 0 ].response() + ).json(); + + expect( settingsResponse.status ).toBe( 'success' ); + expect( settingsResponse.message ).toBe( + 'Merchant Center Settings successfully updated.' + ); + expect( settingsResponse.data.shipping_time ).toBe( 'flat' ); + expect( settingsResponse.data.tax_rate ).toBe( 'destination' ); + + await checkSnackBarMessage( + page, + 'Your changes to your Free Listings have been saved and will be synced to your Google Merchant Center account.' + ); + } ); +} ); diff --git a/tests/e2e/utils/api.js b/tests/e2e/utils/api.js index f009e491cb..4c1c2bca7c 100644 --- a/tests/e2e/utils/api.js +++ b/tests/e2e/utils/api.js @@ -61,3 +61,17 @@ export async function setConversionID() { export async function clearConversionID() { await api().delete( 'gla-test/conversion-id' ); } + +/** + * Set Onboarded Merchant. + */ +export async function setOnboardedMerchant() { + await api().post( 'gla-test/onboarded-merchant' ); +} + +/** + * Clear Onboarded Merchant. + */ +export async function clearOnboardedMerchant() { + await api().delete( 'gla-test/onboarded-merchant' ); +} diff --git a/tests/e2e/utils/mock-requests.js b/tests/e2e/utils/mock-requests.js new file mode 100644 index 0000000000..406ccf1caa --- /dev/null +++ b/tests/e2e/utils/mock-requests.js @@ -0,0 +1,96 @@ +/** + * Mock Requests + * + * This class is used to mock requests to the server. + */ +export default class MockRequests { + /** + * @param {import('@playwright/test').Page} page + */ + constructor( page ) { + this.page = page; + } + + /** + * Fulfill a request with a payload. + * + * @param {RegExp|string} url The url to fulfill. + * @param {Object} payload The payload to send. + * @return {Promise} + */ + async fulfillRequest( url, payload ) { + await this.page.route( url, ( route ) => + route.fulfill( { + content: 'application/json', + headers: { 'Access-Control-Allow-Origin': '*' }, + body: JSON.stringify( payload ), + } ) + ); + } + + /** + * Fulfill the MC Report Program request. + * + * @param {Object} payload + * @return {Promise} + */ + async fulfillMCReportProgram( payload ) { + await this.fulfillRequest( + /\/wc\/gla\/mc\/reports\/programs\b/, + payload + ); + } + + /** + * Fulfill the Target Audience request. + * + * @param {Object} payload + * @return {Promise} + */ + async fulfillTargetAudience( payload ) { + await this.fulfillRequest( + /\/wc\/gla\/mc\/target_audience\b/, + payload + ); + } + + /** + * Fulfill the JetPack Connection request. + * + * @param {Object} payload + * @return {Promise} + */ + async fulfillJetPackConnection( payload ) { + await this.fulfillRequest( /\/wc\/gla\/jetpack\/connected\b/, payload ); + } + + /** + * Fulfill the Google Connection request. + * + * @param {Object} payload + * @return {Promise} + */ + async fulfillGoogleConnection( payload ) { + await this.fulfillRequest( /\/wc\/gla\/google\/connected\b/, payload ); + } + + /** + * Fulfill the Ads Connection request. + * + * @param {Object} payload + * @return {Promise} + */ + async fulfillAdsConnection( payload ) { + await this.fulfillRequest( /\/wc\/gla\/ads\/connection\b/, payload ); + } + + /** + * Fulfill the Sync Settings Connection request. + * + * @param {Object} payload + * @return {Promise} + */ + async fulfillSettingsSync( payload ) { + await this.fulfillRequest( /\/wc\/gla\/mc\/settings\/sync\b/, payload ); + } +} diff --git a/tests/e2e/utils/page.js b/tests/e2e/utils/page.js new file mode 100644 index 0000000000..9ae0013ad4 --- /dev/null +++ b/tests/e2e/utils/page.js @@ -0,0 +1,18 @@ +/** + * External dependencies + */ +const { expect } = require( '@playwright/test' ); + +/** + * Check the snackbar message. + * + * @param {import('@playwright/test').Page} page The current page. + * @param {string} text The text to check. + * + * @return {Promise} + */ +export async function checkSnackBarMessage( page, text ) { + const snackbarMessage = page.locator( '.components-snackbar__content' ); + await snackbarMessage.waitFor(); + expect( snackbarMessage ).toHaveText( text ); +} diff --git a/tests/e2e/utils/pages/dashboard.js b/tests/e2e/utils/pages/dashboard.js new file mode 100644 index 0000000000..925426330a --- /dev/null +++ b/tests/e2e/utils/pages/dashboard.js @@ -0,0 +1,133 @@ +/** + * Internal dependencies + */ +import MockRequests from '../mock-requests'; + +/** + * Dashboard page object class. + */ +export default class DashboardPage extends MockRequests { + /** + * @param {import('@playwright/test').Page} page + */ + constructor( page ) { + super( page ); + this.page = page; + this.freeListingRow = this.page.locator( + '.gla-all-programs-table-card table tr:nth-child(2)' + ); + this.editFreeListingButton = this.freeListingRow.getByRole( 'button', { + name: 'Edit', + } ); + } + + /** + * Close the current page. + * + * @return {Promise} + */ + async closePage() { + await this.page.close(); + } + + /** + * Mock all requests related to external accounts such as Merchant Center, Google, etc. + * + * @return {Promise} + */ + async mockRequests() { + // Mock Reports Programs + await this.fulfillMCReportProgram( { + free_listings: null, + products: null, + intervals: null, + totals: { + clicks: 0, + impressions: 0, + }, + next_page: null, + } ); + + await this.fulfillTargetAudience( { + location: 'selected', + countries: [ 'US' ], + locale: 'en_US', + language: 'English', + } ); + + await this.fulfillJetPackConnection( { + active: 'yes', + owner: 'yes', + displayName: 'John', + email: 'john@email.com', + } ); + + await this.fulfillGoogleConnection( { + active: 'yes', + email: 'john@email.com', + scope: [], + } ); + + await this.fulfillAdsConnection( { + id: 0, + currency: null, + symbol: '$', + status: 'disconnected', + } ); + } + + /** + * Go to the dashboard page. + * + * @return {Promise} + */ + async goto() { + await this.page.goto( + '/wp-admin/admin.php?page=wc-admin&path=%2Fgoogle%2Fdashboard', + { waitUntil: 'domcontentloaded' } + ); + } + + /** + * Click the edit free listings button. + * + * @return {Promise} + */ + async clickEditFreeListings() { + await this.editFreeListingButton.click(); + } + + /** + * Get the continue to edit button from the modal. + * + * @return {Promise} Get the continue to edit button from the modal. + */ + async getContinueToEditButton() { + return this.page.getByRole( 'button', { + name: 'Continue to edit', + exact: true, + } ); + } + + /** + * Get the don't edit button from the modal. + * + * @return {Promise} Get the don't edit button from the modal. + */ + async getDontEditButton() { + return this.page.getByRole( 'button', { + name: "Don't edit", + exact: true, + } ); + } + + /** + * Click the continue to edit button from the modal. + * + * @return {Promise} + */ + async clickContinueToEditButton() { + const continueToEditButton = await this.getContinueToEditButton(); + await continueToEditButton.click(); + } +} diff --git a/tests/e2e/utils/pages/edit-free-listings.js b/tests/e2e/utils/pages/edit-free-listings.js new file mode 100644 index 0000000000..aea8797814 --- /dev/null +++ b/tests/e2e/utils/pages/edit-free-listings.js @@ -0,0 +1,114 @@ +/** + * Internal dependencies + */ +import MockRequests from '../mock-requests'; + +export default class EditFreeListingsPage extends MockRequests { + /** + * @param {import('@playwright/test').Page} page + */ + constructor( page ) { + super( page ); + this.page = page; + } + + /** + * Get Save Changes button. + * + * @return {Promise} Get Save Changes button. + */ + async getSaveChangesButton() { + return this.page.getByRole( 'button', { + name: 'Save changes', + exact: true, + } ); + } + + /** + * Click the Save Changes button. + * + * @return {Promise} + */ + async clickSaveChanges() { + const saveChangesButton = await this.getSaveChangesButton(); + await saveChangesButton.click(); + } + + /** + * Check the recommended shipping settings. + * + * @return {Promise} + */ + async checkRecommendShippingSettings() { + return this.page + .locator( + 'text=Recommended: Automatically sync my store’s shipping settings to Google.' + ) + .check(); + } + /** + * Fill the countries shipping time input. + * + * @param {string} input The shipping time + * @return {Promise} + */ + async fillCountriesShippingTimeInput( input ) { + await this.page.locator( '.countries-time input' ).fill( input ); + } + + /** + * Check the destination based tax rates. + * + * @return {Promise} + */ + async checkDestinationBasedTaxRates() { + await this.page + .locator( 'text=My store uses destination-based tax rates.' ) + .check(); + } + + /** + * Mock the successful saving settings response. + * + * @return {Promise} + */ + async mockSuccessfulSavingSettingsResponse() { + await this.fulfillSettingsSync( { + status: 'success', + message: 'Successfully synchronized settings with Google.', + } ); + } + + /** + * Register the requests when the save button is clicked. + * + * @return {Promise} The requests. + */ + registerSavingRequests() { + const targetAudienceRequest = this.page.waitForRequest( + ( request ) => + request.url().includes( '/gla/mc/target_audience' ) && + request.method() === 'POST' && + request.postDataJSON().countries[ 0 ] === 'US' + ); + const settingsRequest = this.page.waitForRequest( + ( request ) => + request.url().includes( '/gla/mc/settings' ) && + request.method() === 'POST' && + request.postDataJSON().shipping_rate === 'automatic' && + request.postDataJSON().shipping_time === 'flat' + ); + + const syncRequest = this.page.waitForRequest( + ( request ) => + request.url().includes( '/gla/mc/settings/sync' ) && + request.method() === 'POST' + ); + + return Promise.all( [ + settingsRequest, + targetAudienceRequest, + syncRequest, + ] ); + } +} diff --git a/webpack.config.js b/webpack.config.js index df0d42e077..330941d488 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,10 +1,6 @@ const defaultConfig = require( '@wordpress/scripts/config/webpack.config' ); const { hasArgInCLI } = require( '@wordpress/scripts/utils' ); const WooCommerceDependencyExtractionWebpackPlugin = require( '@woocommerce/dependency-extraction-webpack-plugin' ); -const { - defaultRequestToExternal: defaultRequestToExternalWP, - defaultRequestToHandle: defaultRequestToHandleWP, -} = require( '@wordpress/dependency-extraction-webpack-plugin/lib/util' ); const ReactRefreshWebpackPlugin = require( '@pmmmwh/react-refresh-webpack-plugin' ); const path = require( 'path' ); @@ -12,39 +8,6 @@ const path = require( 'path' ); const isProduction = process.env.NODE_ENV === 'production'; const hasReactFastRefresh = hasArgInCLI( '--hot' ) && ! isProduction; -const explicitlyExtractPrefix = 'extracted/'; - -const requestToExternal = ( request ) => { - // Externalized when explicitely asked for. - if ( request.startsWith( explicitlyExtractPrefix ) ) { - request = request.substr( explicitlyExtractPrefix.length ); - return defaultRequestToExternalWP( request ); - } - const bundledPackages = [ - // Opt-out WooCommerce packages. - '@woocommerce/currency', - '@woocommerce/date', - '@woocommerce/number', - '@woocommerce/tracks', - ]; - if ( bundledPackages.includes( request ) ) { - return false; - } - - // Follow with the default behavior for any other. - return undefined; -}; - -const requestToHandle = ( request ) => { - // Externalized when explicitely asked for. - if ( request.startsWith( explicitlyExtractPrefix ) ) { - request = request.substr( explicitlyExtractPrefix.length ); - return defaultRequestToHandleWP( request ); - } - // Follow with the default behavior for any other. - return undefined; -}; - const exceptSVGAndPNGRule = ( rule ) => { return ! rule.test.toString().match( /svg|png/i ); }; @@ -76,7 +39,6 @@ const webpackConfig = { ...defaultConfig.resolve, alias: { '.~': path.resolve( process.cwd(), 'js/src/' ), - extracted: path.resolve( __dirname, 'node_modules' ), }, fallback: { /** @@ -108,8 +70,6 @@ const webpackConfig = { new WooCommerceDependencyExtractionWebpackPlugin( { externalizedReport: ! hasReactFastRefresh && '../../.externalized.json', - requestToExternal, - requestToHandle, } ), ], entry: {