diff --git a/changelog.txt b/changelog.txt
index a546f0bbd5..d1fe2a1cbf 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -1,5 +1,16 @@
*** Google for WooCommerce Changelog ***
+= 2.8.2 - 2024-08-14 =
+* Fix - Disconnecting all accounts when WPCOM connection is not granted.
+* Fix - Error when Google Merchant Center account is undefined while checking the notification service enabled property.
+* Tweak - Label campaigns for the web version and the WooCommerce Mobile app.
+* Tweak - Update FAQS in Getting Started page.
+* Tweak - Update WP.org plugin FAQs.
+* Tweak - Update WPORG plugin page header image.
+* Tweak - Update get started page.
+* Tweak - WC 9.2.0 compatibility.
+* Update - Block validation to support error context.
+
= 2.8.1 - 2024-08-06 =
* Add - Enable labeling of Ads campaigns.
* Tweak - Update doc links references.
diff --git a/google-listings-and-ads.php b/google-listings-and-ads.php
index fd5226ac3a..9af31858bb 100644
--- a/google-listings-and-ads.php
+++ b/google-listings-and-ads.php
@@ -3,7 +3,7 @@
* Plugin Name: Google for WooCommerce
* 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.8.1
+ * Version: 2.8.2
* Author: WooCommerce
* Author URI: https://woocommerce.com/
* Text Domain: google-listings-and-ads
@@ -13,7 +13,7 @@
* Requires PHP Architecture: 64 bits
* Requires Plugins: woocommerce
* WC requires at least: 6.9
- * WC tested up to: 9.1
+ * WC tested up to: 9.2.0
* Woo:
*
* @package WooCommerce\Admin
@@ -30,7 +30,7 @@
defined( 'ABSPATH' ) || exit;
-define( 'WC_GLA_VERSION', '2.8.1' ); // WRCS: DEFINED_VERSION.
+define( 'WC_GLA_VERSION', '2.8.2' ); // WRCS: DEFINED_VERSION.
define( 'WC_GLA_MIN_PHP_VER', '7.4' );
define( 'WC_GLA_MIN_WC_VER', '6.9' );
diff --git a/js/src/blocks/product-date-time-field/edit.js b/js/src/blocks/product-date-time-field/edit.js
index de0b4595c4..b4f2b85737 100644
--- a/js/src/blocks/product-date-time-field/edit.js
+++ b/js/src/blocks/product-date-time-field/edit.js
@@ -10,6 +10,7 @@ import {
useValidation,
} from '@woocommerce/product-editor';
import { Flex, FlexBlock } from '@wordpress/components';
+import { isWcVersion } from '@woocommerce/settings'; // eslint-disable-line import/no-unresolved
/**
* Internal dependencies
@@ -21,11 +22,19 @@ import styles from './editor.module.scss';
* @typedef {import('../types.js').ProductBasicAttributes} ProductBasicAttributes
*/
-async function resolveValidationMessage( inputRef ) {
+async function resolveValidationMessage( inputRef, context ) {
const input = inputRef.current;
if ( ! input.validity.valid ) {
- return input.validationMessage;
+ // compatibility-code "WC < 9.2"
+ if ( isWcVersion( '9.2.0', '<' ) ) {
+ return input.validationMessage;
+ }
+
+ return {
+ message: input.validationMessage,
+ context,
+ };
}
}
@@ -35,8 +44,9 @@ async function resolveValidationMessage( inputRef ) {
* @param {Object} props React props.
* @param {ProductBasicAttributes} props.attributes
* @param {ProductEditorBlockContext} props.context
+ * @param {string} props.clientId
*/
-export default function Edit( { attributes, context } ) {
+export default function Edit( { attributes, context, clientId } ) {
const { property } = attributes;
const blockProps = useWooBlockProps( attributes );
const [ value, setValue ] = useProductEntityProp( property, {
@@ -76,11 +86,11 @@ export default function Edit( { attributes, context } ) {
};
const dateValidation = useValidation( `${ property }-date`, () =>
- resolveValidationMessage( dateInputRef )
+ resolveValidationMessage( dateInputRef, clientId )
);
const timeValidation = useValidation( `${ property }-time`, () =>
- resolveValidationMessage( timeInputRef )
+ resolveValidationMessage( timeInputRef, clientId )
);
return (
diff --git a/js/src/components/enable-new-product-sync-notice.js b/js/src/components/enable-new-product-sync-notice.js
index 01f4657774..bf116ddf36 100644
--- a/js/src/components/enable-new-product-sync-notice.js
+++ b/js/src/components/enable-new-product-sync-notice.js
@@ -26,8 +26,8 @@ const EnableNewProductSyncNotice = () => {
// Do not render if already switch to new product sync.
if (
! hasGoogleMCAccountFinishedResolution ||
- ! googleMCAccount.notification_service_enabled ||
- googleMCAccount.wpcom_rest_api_status
+ ! googleMCAccount?.notification_service_enabled ||
+ googleMCAccount?.wpcom_rest_api_status
) {
return null;
}
diff --git a/js/src/components/enable-new-product-sync-notice.test.js b/js/src/components/enable-new-product-sync-notice.test.js
new file mode 100644
index 0000000000..cd87702c3a
--- /dev/null
+++ b/js/src/components/enable-new-product-sync-notice.test.js
@@ -0,0 +1,116 @@
+/**
+ * External dependencies
+ */
+import '@testing-library/jest-dom';
+import { render } from '@testing-library/react';
+
+/**
+ * Internal dependencies
+ */
+import useGoogleMCAccount from '.~/hooks/useGoogleMCAccount';
+import EnableNewProductSyncNotice from './enable-new-product-sync-notice';
+
+jest.mock( '.~/hooks/useGoogleMCAccount' );
+
+describe( 'Enable New Product Sync Notice', () => {
+ it( 'should render the notice if the account has not switched to new product sync', () => {
+ useGoogleMCAccount.mockImplementation( () => {
+ return {
+ hasFinishedResolution: true,
+ googleMCAccount: {
+ notification_service_enabled: true,
+ wpcom_rest_api_status: null,
+ },
+ };
+ } );
+
+ const { getByText, getByRole } = render(
+
+ );
+
+ expect(
+ getByText(
+ 'We will soon transition to a new and improved method for synchronizing product data with Google.'
+ )
+ ).toBeInTheDocument();
+
+ const button = getByRole( 'button', {
+ name: /Get early access/i,
+ } );
+
+ expect( button ).toBeEnabled();
+ } );
+ it( 'should not render the notice if the account has switched to new product sync', () => {
+ useGoogleMCAccount.mockImplementation( () => {
+ return {
+ hasFinishedResolution: true,
+ googleMCAccount: {
+ notification_service_enabled: true,
+ wpcom_rest_api_status: 'approved',
+ },
+ };
+ } );
+
+ const { queryByText, queryByRole } = render(
+
+ );
+
+ expect(
+ queryByText(
+ 'We will soon transition to a new and improved method for synchronizing product data with Google.'
+ )
+ ).not.toBeInTheDocument();
+
+ expect(
+ queryByRole( 'button', { name: /Get early access/i } )
+ ).not.toBeInTheDocument();
+ } );
+ it( 'should not render the notice if the notification service is not enabled', () => {
+ useGoogleMCAccount.mockImplementation( () => {
+ return {
+ hasFinishedResolution: true,
+ googleMCAccount: {
+ notification_service_enabled: false,
+ wpcom_rest_api_status: 'approved',
+ },
+ };
+ } );
+
+ const { queryByText, queryByRole } = render(
+
+ );
+
+ expect(
+ queryByText(
+ 'We will soon transition to a new and improved method for synchronizing product data with Google.'
+ )
+ ).not.toBeInTheDocument();
+
+ expect(
+ queryByRole( 'button', { name: /Get early access/i } )
+ ).not.toBeInTheDocument();
+ } );
+
+ it( 'should not render the notice if googleMCAccount is undefined because the google account is not connected or missing scopes', () => {
+ useGoogleMCAccount.mockImplementation( () => {
+ return {
+ hasFinishedResolution: true,
+ googleMCAccount: undefined,
+ };
+ } );
+
+ const { queryByText, queryByRole } = render(
+
+ );
+
+ expect(
+ queryByText(
+ 'We will soon transition to a new and improved method for synchronizing product data with Google.'
+ )
+ ).not.toBeInTheDocument();
+
+ expect(
+ queryByRole( 'button', { name: /Get early access/i } )
+ ).not.toBeInTheDocument();
+ } );
+} );
diff --git a/js/src/css/abstracts/_variables.scss b/js/src/css/abstracts/_variables.scss
index 706f447a07..1de7cda3d0 100644
--- a/js/src/css/abstracts/_variables.scss
+++ b/js/src/css/abstracts/_variables.scss
@@ -35,4 +35,5 @@ $gla-width-small: 250px;
$gla-width-medium: 300px;
$gla-width-medium-large: 360px;
$gla-width-mobile: 480px;
+$gla-width-medium-big: 550px;
$gla-width-large: 600px;
diff --git a/js/src/data/actions.js b/js/src/data/actions.js
index 5b371a1a22..2b67eb9b33 100644
--- a/js/src/data/actions.js
+++ b/js/src/data/actions.js
@@ -15,6 +15,7 @@ import {
} from './constants';
import { handleApiError } from '.~/utils/handleError';
import { adaptAdsCampaign } from './adapters';
+import { isWCIos, isWCAndroid } from '.~/utils/isMobileApp';
/**
* @typedef {import('.~/data/types.js').AssetEntityGroupUpdateBody} AssetEntityGroupUpdateBody
@@ -523,6 +524,13 @@ export function* disconnectAllAccounts() {
type: TYPES.DISCONNECT_ACCOUNTS_ALL,
};
} catch ( error ) {
+ // Skip any error related to revoking WPCOM token.
+ if ( error.errors[ `${ API_NAMESPACE }/rest-api/authorize` ] ) {
+ return {
+ type: TYPES.DISCONNECT_ACCOUNTS_ALL,
+ };
+ }
+
handleApiError(
error,
__(
@@ -798,6 +806,14 @@ export function* saveTargetAudience( targetAudience ) {
* @throws { { message: string } } Will throw an error if the campaign creation fails.
*/
export function* createAdsCampaign( amount, countryCodes ) {
+ let label = 'wc-web';
+
+ if ( isWCIos() ) {
+ label = 'wc-ios';
+ } else if ( isWCAndroid() ) {
+ label = 'wc-android';
+ }
+
try {
const createdCampaign = yield apiFetch( {
path: `${ API_NAMESPACE }/ads/campaigns`,
@@ -805,6 +821,7 @@ export function* createAdsCampaign( amount, countryCodes ) {
data: {
amount,
targeted_locations: countryCodes,
+ label,
},
} );
diff --git a/js/src/data/test/createAdsCampaign.test.js b/js/src/data/test/createAdsCampaign.test.js
new file mode 100644
index 0000000000..771ae1f56b
--- /dev/null
+++ b/js/src/data/test/createAdsCampaign.test.js
@@ -0,0 +1,92 @@
+/**
+ * External dependencies
+ */
+import { renderHook } from '@testing-library/react-hooks';
+import apiFetch from '@wordpress/api-fetch';
+
+/**
+ * Internal dependencies
+ */
+import { useAppDispatch } from '.~/data';
+
+jest.mock( '@wordpress/api-fetch', () => {
+ const impl = jest.fn().mockName( '@wordpress/api-fetch' );
+ impl.use = jest.fn().mockName( 'apiFetch.use' );
+ return impl;
+} );
+
+describe( 'createAdsCampaign', () => {
+ let navigatorGetter;
+
+ const mockFetch = jest
+ .fn()
+ .mockResolvedValue( { targeted_locations: [ 'ES' ] } );
+
+ beforeEach( () => {
+ jest.clearAllMocks();
+ apiFetch.mockImplementation( ( args ) => {
+ return mockFetch( args );
+ } );
+
+ navigatorGetter = jest.spyOn( window.navigator, 'userAgent', 'get' );
+ } );
+
+ it( 'If the user agent is not set to wc-ios or wc-android, the label should default to wc-web', async () => {
+ const { result } = renderHook( () => useAppDispatch() );
+
+ await result.current.createAdsCampaign( 100, [ 'ES' ] );
+
+ expect( mockFetch ).toHaveBeenCalledTimes( 1 );
+ expect( mockFetch ).toHaveBeenCalledWith( {
+ path: '/wc/gla/ads/campaigns',
+ method: 'POST',
+ data: {
+ amount: 100,
+ targeted_locations: [ 'ES' ],
+ label: 'wc-web',
+ },
+ } );
+ } );
+
+ it( 'If the user agent is set to wc-ios the label should be wc-ios', async () => {
+ navigatorGetter.mockReturnValue(
+ 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 wc-ios/19.7.1'
+ );
+
+ const { result } = renderHook( () => useAppDispatch() );
+
+ await result.current.createAdsCampaign( 100, [ 'ES' ] );
+
+ expect( mockFetch ).toHaveBeenCalledTimes( 1 );
+ expect( mockFetch ).toHaveBeenCalledWith( {
+ path: '/wc/gla/ads/campaigns',
+ method: 'POST',
+ data: {
+ amount: 100,
+ targeted_locations: [ 'ES' ],
+ label: 'wc-ios',
+ },
+ } );
+ } );
+
+ it( 'If the user agent is set to wc-android the label should be wc-android', async () => {
+ navigatorGetter.mockReturnValue(
+ 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 wc-android/19.7.1'
+ );
+
+ const { result } = renderHook( () => useAppDispatch() );
+
+ await result.current.createAdsCampaign( 100, [ 'ES' ] );
+
+ expect( mockFetch ).toHaveBeenCalledTimes( 1 );
+ expect( mockFetch ).toHaveBeenCalledWith( {
+ path: '/wc/gla/ads/campaigns',
+ method: 'POST',
+ data: {
+ amount: 100,
+ targeted_locations: [ 'ES' ],
+ label: 'wc-android',
+ },
+ } );
+ } );
+} );
diff --git a/js/src/data/test/disconnectAllAccounts.test.js b/js/src/data/test/disconnectAllAccounts.test.js
new file mode 100644
index 0000000000..0031d7ea0a
--- /dev/null
+++ b/js/src/data/test/disconnectAllAccounts.test.js
@@ -0,0 +1,88 @@
+/**
+ * External dependencies
+ */
+import { renderHook } from '@testing-library/react-hooks';
+import apiFetch from '@wordpress/api-fetch';
+
+/**
+ * Internal dependencies
+ */
+import { useAppDispatch } from '.~/data';
+import { API_NAMESPACE } from '.~/data/constants';
+
+jest.mock( '@wordpress/api-fetch', () => {
+ const impl = jest.fn().mockName( '@wordpress/api-fetch' );
+ impl.use = jest.fn().mockName( 'apiFetch.use' );
+ return impl;
+} );
+
+jest.mock( '.~/utils/handleError', () => {
+ const impl = jest.fn().mockName( '.~/utils/handleError' );
+ return {
+ handleApiError: impl,
+ };
+} );
+
+describe( 'Disconnect All Accounts', () => {
+ const mockFetch = jest
+ .fn()
+ .mockResolvedValue( { targeted_locations: [ 'ES' ] } );
+
+ beforeEach( () => {
+ jest.clearAllMocks();
+ apiFetch.mockImplementation( ( args ) => {
+ return mockFetch( args );
+ } );
+ } );
+
+ it( 'Ignore the error if its thrown from the authorize endpoint', async () => {
+ mockFetch.mockRejectedValue( {
+ errors: {
+ [ `${ API_NAMESPACE }/rest-api/authorize` ]: {
+ message:
+ 'No token found associated with the client ID and user',
+ },
+ },
+ } );
+
+ const { result } = renderHook( () => useAppDispatch() );
+
+ const response = await result.current.disconnectAllAccounts();
+
+ expect( mockFetch ).toHaveBeenCalledTimes( 1 );
+ expect( mockFetch ).toHaveBeenCalledWith( {
+ path: `${ API_NAMESPACE }/connections`,
+ method: 'DELETE',
+ } );
+ expect( response ).toEqual( { type: 'DISCONNECT_ACCOUNTS_ALL' } );
+ } );
+
+ it( 'Throw the error if it is not related to the authorize endpoint', async () => {
+ mockFetch.mockRejectedValue( {
+ errors: {
+ [ `${ API_NAMESPACE }/ads/connection` ]: {
+ message: 'Error disconnecting the account from Google Ads',
+ },
+ },
+ } );
+
+ const { result } = renderHook( () => useAppDispatch() );
+
+ await expect( result.current.disconnectAllAccounts() ).rejects.toEqual(
+ {
+ errors: {
+ [ `${ API_NAMESPACE }/ads/connection` ]: {
+ message:
+ 'Error disconnecting the account from Google Ads',
+ },
+ },
+ }
+ );
+
+ expect( mockFetch ).toHaveBeenCalledTimes( 1 );
+ expect( mockFetch ).toHaveBeenCalledWith( {
+ path: `${ API_NAMESPACE }/connections`,
+ method: 'DELETE',
+ } );
+ } );
+} );
diff --git a/js/src/get-started-page/faqs/index.js b/js/src/get-started-page/faqs/index.js
index 8a5ea793f0..dd4a41cbb6 100644
--- a/js/src/get-started-page/faqs/index.js
+++ b/js/src/get-started-page/faqs/index.js
@@ -11,92 +11,84 @@ import FaqsPanel from '.~/components/faqs-panel';
import AppDocumentationLink from '.~/components/app-documentation-link';
import './index.scss';
+const linkMc = (
+
+);
+
+const linkPmax = (
+
+);
const faqItems = [
{
- trackId: 'what-do-i-need-to-get-started',
+ trackId: 'what-is-google-merchant-center',
question: __(
- 'What do I need to get started?',
+ 'What is Google Merchant Center?',
'google-listings-and-ads'
),
answer: (
{ createInterpolateElement(
__(
- 'In order to sync your WooCommerce store with Google and begin showcasing your products online, you will need to provide the following during setup; Google account access, target audience, shipping information, tax rate information (required for US only), and ensure your store is running on a compatible PHP version. Learn more.',
+ "Google Merchant Center is like a digital storefront for your products on Google. It's where you upload and manage information about your products, like titles, descriptions, images, prices, and availability. This data is used to create product listings that can appear across Google.",
'google-listings-and-ads'
),
{
- link: (
-
- ),
+ link: linkMc,
}
) }
),
},
{
- trackId: 'what-if-i-already-have-free-listings',
+ trackId: 'why-should-i-connect-google-merchant-center',
question: __(
- 'What if I already have Google listings or ads set up? Will syncing my store replace my current Google listings?',
+ 'Why should I connect to Google Merchant Center?',
'google-listings-and-ads'
),
answer: (
<>
-
- { __(
- 'Once you link an existing account to connect your store, your Shopping ads and free listings will stop running. You’ll need to re-upload your feed and product data in order to run Shopping ads and show free listings.',
- 'google-listings-and-ads'
- ) }
-
{ createInterpolateElement(
__(
- 'Learn more about claiming URLs here.',
+ 'By syncing your product information to Google Merchant Center, your products can appear in relevant Google searches, Shopping tab, image searches, and even on other platforms like YouTube. When running Performance Max campaigns, Google Merchant Center ensures that shoppers see the most up-to-date and accurate information about your product feed, reducing confusion and improving the chances of a purchase.',
'google-listings-and-ads'
),
{
- link: (
-
- ),
+ linkMc,
+ linkPmax,
}
) }
-
- { __(
- 'If you have an existing Content API feed, it will not be changed, overwritten or deleted by this WooCommerce integration. Instead, products will be added to your existing Content API feed.',
- 'google-listings-and-ads'
- ) }
-
>
),
},
{
- trackId: 'is-my-store-ready-to-sync-with-google',
+ trackId: 'will-my-deals-and-promotions-display-on-google',
question: __(
- 'Is my store ready to sync with Google?',
+ 'Will my deals and promotions display on Google?',
'google-listings-and-ads'
),
answer: (
{ createInterpolateElement(
__(
- 'In order to meet the Google Merchant Center requirements make sure your website has the following; secure checkout process and payment information, refund and return policies, billing terms and conditions, business contact information. Learn more.',
+ 'To show your coupons and promotions on Google Shopping listings, make sure you’re using the latest version of Google for WooCommerce. When you create or update a coupon in your WordPress dashboard under Marketing > Coupons, you’ll see a Channel Visibility settings box on the right: select “Show coupon on Google” to enable it. Learn more about managing promotions for Google for WooCommerce. This feature is currently available in Australia, Canada, Germany, France, India, the United Kingdom, and the United States.',
'google-listings-and-ads'
),
{
link: (
),
}
@@ -105,47 +97,184 @@ const faqItems = [
),
},
{
- trackId: 'what-is-a-performance-max-campaign',
+ trackId: 'what-is-product-sync',
+ question: __( 'What is Product Sync?', 'google-listings-and-ads' ),
+ answer: (
+ <>
+
+ { __(
+ 'Product Sync is a feature fully integrated into WooCommerce’s management platform that automatically lets you sync your product feed to Google Merchant Center. It will sync all your WooCommerce product data, and you can also add or edit products individually or in bulk. To ensure products are approved by Google, check that your product feed includes the following information:',
+ 'google-listings-and-ads'
+ ) }
+
+ >
+ ),
+ },
+ {
+ trackId:
+ 'where-do-i-manage-my-product-feed-and-my-google-ads-campaigns',
question: __(
- 'What is a Performance Max campaign?',
+ 'Where do I manage my product feed and my Google Ads campaigns?',
+ 'google-listings-and-ads'
+ ),
+ answer: (
+
+ { __(
+ 'You can manage and edit all of your products and your Google Ads campaigns right from your WooCommerce dashboard and on the WooCommerce Mobile App.',
+ 'google-listings-and-ads'
+ ) }
+
{ createInterpolateElement(
__(
- 'Performance Max campaigns make it easy to connect your WooCommerce store to Google Shopping ads so you can showcase your products to shoppers across Google Search, Maps, Shopping, YouTube, Gmail, the Display Network and Discover feed to drive traffic and sales for your store. Learn more.',
+ 'Once you start running a Performance Max ads campaign, your approved products will reach more shoppers to help grow your business by being shown on Google Search, Google Maps, the Shopping tab, Gmail, Youtube, the Google Display Network, and Discover feed.',
'google-listings-and-ads'
),
{
- link: (
-
- ),
+ linkPmax,
+ }
+ ) }
+
+ { createInterpolateElement(
+ __(
+ 'Performance Max campaigns help you combine your expertise with Google AI to reach your most valuable customers and drive sales. Just set your goals and budget and Google AI will get your ads seen by the right customers at the right time across Google Search, Google Maps, the Shopping tab, Gmail, Youtube, the Google Display Network, and Discover feed.',
+ 'google-listings-and-ads'
+ ),
+ {
+ linkPmax,
+ }
+ ) }
+
+ ),
+ },
+ {
+ trackId: 'how-much-do-performance-max-campaigns-cost',
+ question: __(
+ 'How much do Performance Max campaigns cost?',
+ 'google-listings-and-ads'
+ ),
+ answer: (
+
+ { createInterpolateElement(
+ __(
+ 'Performance Max campaigns are pay-per-click, meaning you only pay when someone clicks on your ads. To get the best results and ensure your products reach the right customers, we recommend starting with the suggested Google for WooCommerce minimum daily budget for your Performance Max campaign. This helps jumpstart your campaign and drive early conversions. You can always adjust your budget later as you see what works best for your business.',
+ 'google-listings-and-ads'
+ ),
+ {
+ linkPmax,
}
) }
),
},
{
- trackId: 'what-are-free-listings',
- question: __( 'What are free listings?', 'google-listings-and-ads' ),
+ trackId:
+ 'can-i-sync-my-products-and-run-performance-max-campaigns-on-google-for-woocommerce-at-the-same-time',
+ question: __(
+ 'Can I sync my products and run Performance Max campaigns on Google for WooCommerce at the same time?',
+ 'google-listings-and-ads'
+ ),
answer: (
{ createInterpolateElement(
__(
- 'Google Free Listings allows stores to showcase eligible products to shoppers looking for what you offer and drive traffic to your store with Google’s free listings on the Shopping tab. Your products can also appear on Google Search, Google Images, and Gmail if you’re selling in the United States. Learn more.',
+ 'Yes, you can run both at the same time, and we recommend you do! Once you sync your store it’s automatically listed on Google, so you can choose to run a paid Performance Max campaign as soon as you’d like. In the US, advertisers who sync their products to Google and run Google Ads Performance Max campaigns have seen an average of over 50% increase in clicks and over 100% increase in impressions in both their product listings and their ads on the Shopping tab. ',
+ 'google-listings-and-ads'
+ ),
+ {
+ linkPmax,
+ }
+ ) }
+
+ ),
+ },
+ {
+ trackId: 'how-does-google-for-woocommerce-help-me-drive-sales',
+ question: __(
+ 'How does Google for WooCommerce help me drive sales?',
+ 'google-listings-and-ads'
+ ),
+ answer: (
+
+ { __(
+ 'With Google for WooCommerce, you can serve the best-performing ads more often, by using Google AI to pull headlines, images, product details, and more from your product feed and find more relevant customers. Your campaigns will learn and optimize in real time – to help deliver better performance and boost your ROI.',
+ 'google-listings-and-ads'
+ ) }
+
+ { createInterpolateElement(
+ __(
+ 'Enhanced conversions is a feature that can improve the accuracy of your conversion measurement and unlock more powerful bidding. It supplements your existing conversion tags by sending hashed first-party conversion data from your website to Google in a privacy-safe way.',
'google-listings-and-ads'
),
{
link: (
),
}
@@ -154,25 +283,25 @@ const faqItems = [
),
},
{
- trackId:
- 'where-to-track-free-listings-and-performance-max-campaign-performance',
+ trackId: 'which-countries-are-available-for-google-for-woocommerce',
question: __(
- 'Where can I track my free listings and Performance Max campaign performance?',
+ 'Which countries are available for Google for WooCommerce?',
'google-listings-and-ads'
),
answer: (
{ createInterpolateElement(
__(
- 'Once your free listings and Performance Max campaigns are set up, you will be able to track your performance straight from your WooCommerce dashboard. You can view your reports yearly, quarterly, monthly, weekly, or daily. The following metrics will be visible within your report: conversions, clicks, impressions, total sales and total spend. Learn more.',
+ 'For Performance Max campaigns, learn more about supported countries and currencies here.',
'google-listings-and-ads'
),
{
+ linkPmax,
link: (
),
}
@@ -181,61 +310,84 @@ const faqItems = [
),
},
{
- trackId: 'how-to-sync-products-to-google-free-listings',
+ trackId: 'what-is-multi-country-advertising',
question: __(
- 'How do I sync my products to Google free listings?',
+ 'What is Multi-Country Advertising?',
'google-listings-and-ads'
),
answer: (
{ __(
- 'The Google for WooCommerce plugin allows you to upload your store and product data to Google. Your products will sync automatically to make relevant information available for free listings, Google Ads, and other Google services. You can create a new Merchant Center account or link an existing account to connect your store and list products across Google.',
+ 'Multi-Country Advertising enables you to create a single Google Ads campaign that targets multiple countries at once. Google for WooCommerce automatically populates eligible countries from your Google Merchant Center account into the plug-in ads campaign creation flow.',
'google-listings-and-ads'
) }
),
},
{
- trackId: 'can-i-run-both-shopping-ads-and-free-listings-campaigns',
+ trackId:
+ 'can-i-enable-multi-country-advertising-on-my-existing-campaigns',
question: __(
- 'Can I run both Shopping ads and free listings campaigns at the same time?',
+ 'Can I enable Multi-Country Advertising on my existing campaigns?',
'google-listings-and-ads'
),
answer: (
{ __(
- 'Yes, you can run both at the same time, and we recommend it! In the US, advertisers running free listings and ads together have seen an average of over 50% increase in clicks and over 100% increase in impressions on both free listings and ads on the Shopping tab. Your store is automatically opted into free listings automatically and can choose to run a paid Performance Max campaign.',
+ 'If you created a campaign before this feature launched, you’ll need to create a new campaign to target new countries with Multi-Country Advertising',
'google-listings-and-ads'
) }
),
},
{
- trackId: 'how-can-i-get-the-ad-credit-offer',
+ trackId: 'how-is-my-ads-budget-split-between-the-different-countries',
question: __(
- 'How can I get the $500 ad credit offer?',
+ 'How is my ads budget split between the different countries?',
+ 'google-listings-and-ads'
+ ),
+ answer: (
+
+ { __(
+ 'Identify the best performing targeted countries with the help of Google AI, to make your ads reach the right shoppers at the right time.',
+ 'google-listings-and-ads'
+ ) }
+
+ ),
+ },
+ {
+ trackId: 'which-countries-can-i-target',
+ question: __(
+ 'Which countries can I target?',
'google-listings-and-ads'
),
answer: (
<>
{ __(
- 'Create a new Google Ads account through Google for WooCommerce and a promotional code will be automatically applied to your account. You’ll have 60 days to spend $500 to qualify for the $500 ads credit.',
+ 'You can only select the countries that you’re targeting on Google Merchant Center. Your target countries must be eligible for both Google Merchant Center and Google Ads.',
'google-listings-and-ads'
) }
{ createInterpolateElement(
__(
- 'Ad credit amounts vary by country and region. Full terms and conditions can be found here.',
+ 'To allow your products to appear in all relevant locations, make sure you’ve correctly configured your shipping for countries where your products can be delivered. Keep in mind that shipping services can cover multiple countries. Learn more about multi-country shipping.',
'google-listings-and-ads'
),
{
- link: (
+ linkShipping: (
+
+ ),
+ linkMultiCountryShipping: (
),
}
diff --git a/js/src/get-started-page/faqs/index.scss b/js/src/get-started-page/faqs/index.scss
index 3cbc616e8f..9ae144b710 100644
--- a/js/src/get-started-page/faqs/index.scss
+++ b/js/src/get-started-page/faqs/index.scss
@@ -19,4 +19,9 @@
line-height: $gla-line-height-small;
}
}
+
+ ul {
+ padding: revert;
+ list-style: revert;
+ }
}
diff --git a/js/src/get-started-page/get-started-card/index.js b/js/src/get-started-page/get-started-card/index.js
index 3dcc5e976a..eef452f7a4 100644
--- a/js/src/get-started-page/get-started-card/index.js
+++ b/js/src/get-started-page/get-started-card/index.js
@@ -57,15 +57,12 @@ const GetStartedCard = () => {
context: 'get-started',
} }
>
- { __(
- 'Start listing products →',
- 'google-listings-and-ads'
- ) }
+ { __( 'Sell more on Google →', 'google-listings-and-ads' ) }
{ createInterpolateElement(
__(
- 'By clicking ‘Start listing products‘, you agree to our Terms of Service.',
+ 'By clicking ‘Sell more on Google‘, you agree to our Terms of Service.',
'google-listings-and-ads'
),
{
diff --git a/js/src/get-started-page/get-started-with-hero-card/hero.png b/js/src/get-started-page/get-started-with-hero-card/hero.png
new file mode 100644
index 0000000000..3d2c7d7958
Binary files /dev/null and b/js/src/get-started-page/get-started-with-hero-card/hero.png differ
diff --git a/js/src/get-started-page/get-started-with-video-card/index.js b/js/src/get-started-page/get-started-with-hero-card/index.js
similarity index 57%
rename from js/src/get-started-page/get-started-with-video-card/index.js
rename to js/src/get-started-page/get-started-with-hero-card/index.js
index 5b7c02c104..1af8504c32 100644
--- a/js/src/get-started-page/get-started-with-video-card/index.js
+++ b/js/src/get-started-page/get-started-with-hero-card/index.js
@@ -12,30 +12,36 @@ import { glaData } from '.~/constants';
import AppButton from '.~/components/app-button';
import Text from '.~/components/app-text';
import AppDocumentationLink from '.~/components/app-documentation-link';
-import WistiaVideo from '.~/components/wistia-video';
import { getSetupMCUrl } from '.~/utils/urls';
import './index.scss';
+import heroUrl from './hero.png';
/**
- * @fires gla_setup_mc with `{ triggered_by: 'start-onboarding-button', action: 'go-to-onboarding', context: 'get-started-with-video' }`.
- * @fires gla_documentation_link_click with `{ context: 'get-started-with-video', linkId: 'wp-terms-of-service', href: 'https://wordpress.com/tos/' }`.
+ * @fires gla_setup_mc with `{ triggered_by: 'start-onboarding-button', action: 'go-to-onboarding', context: 'get-started-with-hero' }`.
+ * @fires gla_documentation_link_click with `{ context: 'get-started-with-hero', linkId: 'wp-terms-of-service', href: 'https://wordpress.com/tos/' }`.
*/
-const GetStartedWithVideoCard = () => {
+const GetStartedWithHeroCard = () => {
const disableNextStep = ! glaData.mcSupportedLanguage;
return (
-
-
-
+
+
+
+
+
{ __(
'The official extension for WooCommerce, built in collaboration with Google',
@@ -44,24 +50,24 @@ const GetStartedWithVideoCard = () => {
{ __(
- 'Reach millions of shoppers with product listings on Google',
+ 'Connect your WooCommerce store and reach millions of shoppers on Google',
'google-listings-and-ads'
) }
{ __(
- 'Sync your products directly to Google, manage your product feed, and create Google Ad campaigns — all without leaving your WooCommerce dashboard.',
+ 'Effortlessly sync your WooCommerce product feed across Google and be seen by millions of engaged shoppers with the Google for WooCommerce extension.',
'google-listings-and-ads'
) }
{
eventProps={ {
triggered_by: 'start-onboarding-button',
action: 'go-to-onboarding',
- context: 'get-started-with-video',
+ context: 'get-started-with-hero',
} }
>
- { __(
- 'Start listing products →',
- 'google-listings-and-ads'
- ) }
+ { __( 'Sell more on Google →', 'google-listings-and-ads' ) }
-
+
{ __(
- 'Estimated setup time: 15 min',
+ 'Estimated setup time: 5 min',
'google-listings-and-ads'
) }
{ createInterpolateElement(
__(
- 'By clicking ‘Start listing products’, you agree to our Terms of Service.',
+ 'By clicking ‘Sell more on Google’, you agree to our Terms of Service.',
'google-listings-and-ads'
),
{
link: (
@@ -114,4 +117,4 @@ const GetStartedWithVideoCard = () => {
);
};
-export default GetStartedWithVideoCard;
+export default GetStartedWithHeroCard;
diff --git a/js/src/get-started-page/get-started-with-video-card/index.scss b/js/src/get-started-page/get-started-with-hero-card/index.scss
similarity index 94%
rename from js/src/get-started-page/get-started-with-video-card/index.scss
rename to js/src/get-started-page/get-started-with-hero-card/index.scss
index 7aed7d05e4..d392c6909c 100644
--- a/js/src/get-started-page/get-started-with-video-card/index.scss
+++ b/js/src/get-started-page/get-started-with-hero-card/index.scss
@@ -1,7 +1,7 @@
-.gla-get-started-with-video-card {
+.gla-get-started-with-hero-card {
flex-direction: column;
- .motivation-video {
+ .motivation {
min-width: 100%;
margin: 0;
}
@@ -28,12 +28,13 @@
// Use more specific rules to make it higher priority to override component.
& &__title {
+ max-width: $gla-width-medium-big;
margin-bottom: $grid-unit-20;
}
// Use more specific rules to make it higher priority to override component.
& &__description {
- max-width: $gla-width-large;
+ max-width: $gla-width-medium-big;
margin-bottom: $grid-unit-30;
}
diff --git a/js/src/get-started-page/index.js b/js/src/get-started-page/index.js
index 28460e5ef8..1c0231dfa9 100644
--- a/js/src/get-started-page/index.js
+++ b/js/src/get-started-page/index.js
@@ -7,14 +7,14 @@ import CustomerQuotesCard from './customer-quotes-card';
import Faqs from './faqs';
import FeaturesCard from './features-card';
import GetStartedCard from './get-started-card';
-import GetStartedWithVideoCard from './get-started-with-video-card';
+import GetStartedWithHeroCard from './get-started-with-hero-card';
import UnsupportedNotices from './unsupported-notices';
const GetStartedPage = () => {
return (
-
+
diff --git a/js/src/utils/isMobile.test.js b/js/src/utils/isMobile.test.js
new file mode 100644
index 0000000000..18cf238ec9
--- /dev/null
+++ b/js/src/utils/isMobile.test.js
@@ -0,0 +1,38 @@
+/**
+ * Internal dependencies
+ */
+import { isWCIos, isWCAndroid } from '.~/utils/isMobileApp';
+
+describe( 'isMobile', () => {
+ let navigatorGetter;
+
+ beforeEach( () => {
+ // To initialize `pagePaths`.
+ navigatorGetter = jest.spyOn( window.navigator, 'userAgent', 'get' );
+ } );
+
+ it( 'isWCIos', () => {
+ navigatorGetter.mockReturnValue(
+ 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 wc-ios/19.7.1'
+ );
+
+ expect( isWCIos() ).toBe( true );
+ } );
+
+ it( 'isWCAndroid', () => {
+ navigatorGetter.mockReturnValue(
+ 'Mozilla/5.0 (iPhone; CPU Samsung ) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 wc-android/19.7.1'
+ );
+
+ expect( isWCAndroid() ).toBe( true );
+ } );
+
+ it( 'is not WCAndroid or isWCIos', () => {
+ navigatorGetter.mockReturnValue(
+ 'Mozilla/5.0 (iPhone; CPU ) AppleWebKit/605.1.15 (KHTML, like Gecko)'
+ );
+
+ expect( isWCAndroid() ).toBe( false );
+ expect( isWCIos() ).toBe( false );
+ } );
+} );
diff --git a/js/src/utils/isMobileApp.js b/js/src/utils/isMobileApp.js
new file mode 100644
index 0000000000..78584cbe67
--- /dev/null
+++ b/js/src/utils/isMobileApp.js
@@ -0,0 +1,20 @@
+/**
+ * Check if the WC app is running on iOS.
+ *
+ * @return {boolean} Whether the WC app is running on iOS.
+ *
+ */
+const isWCIos = () => {
+ return window.navigator.userAgent.toLowerCase().includes( 'wc-ios' );
+};
+
+/**
+ * Check if the WC app is running on Android.
+ *
+ * @return {boolean} Whether the WC app is running on Android.
+ */
+const isWCAndroid = () => {
+ return window.navigator.userAgent.toLowerCase().includes( 'wc-android' );
+};
+
+export { isWCIos, isWCAndroid };
diff --git a/package-lock.json b/package-lock.json
index c59dc343ca..a7c7695efb 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "google-listings-and-ads",
- "version": "2.8.1",
+ "version": "2.8.2",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "google-listings-and-ads",
- "version": "2.7.7",
+ "version": "2.8.2",
"license": "GPL-3.0-or-later",
"dependencies": {
"@woocommerce/components": "^10.3.0",
diff --git a/package.json b/package.json
index 4a41074273..0052760fc8 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "google-listings-and-ads",
"title": "Google for WooCommerce",
- "version": "2.8.1",
+ "version": "2.8.2",
"description": "Google for WooCommerce",
"author": "Automattic",
"license": "GPL-3.0-or-later",
diff --git a/readme.txt b/readme.txt
index 5b732f0b15..10b4e29f96 100644
--- a/readme.txt
+++ b/readme.txt
@@ -5,7 +5,7 @@ Requires at least: 5.9
Tested up to: 6.6
Requires PHP: 7.4
Requires PHP Architecture: 64 Bits
-Stable tag: 2.8.1
+Stable tag: 2.8.2
License: GPLv3
License URI: https://www.gnu.org/licenses/gpl-3.0.html
@@ -13,8 +13,6 @@ Native integration with Google that allows merchants to easily display their pro
== Description ==
-https://www.youtube.com/watch?v=lYCx7ZqA1uo
-
Google for WooCommerce makes it simple to showcase your products to shoppers across Google. Whether you’re brand new to digital advertising or a marketing expert, you can expand your reach and grow your business, for free and with ads.
Sync your store with Google to list products for free, run paid ads, and track performance straight from your store dashboard.
@@ -85,32 +83,75 @@ Release and roadmap notes available on the [WooCommerce Developers Blog](https:/
== FAQ ==
= What is Google Merchant Center? =
-The Google Merchant Center helps you sync your store and product data with Google and makes the information available for both free listings on the Shopping tab and Google Shopping Ads. That means everything about your stores and products is available to shoppers when they search on a Google property.
+[Google Merchant Center](https://woocommerce.com/document/google-for-woocommerce/#connect-your-store-with-google-merchant-center) is like a digital storefront for your products on Google. It’s where you upload and manage information about your products, like titles, descriptions, images, prices, and availability. This data is used to create product listings that can appear across Google.
-= Which countries are available for Google for WooCommerce? =
-Learn more about supported countries for Google free listings [here](https://support.google.com/merchants/answer/10033607?hl=en).
+= Why should I connect to Google Merchant Center? =
+By syncing your product information to [Google Merchant Center](https://woocommerce.com/document/google-for-woocommerce/#connect-your-store-with-google-merchant-center), your products can appear in relevant Google searches, Shopping tab, image searches, and even on other platforms like YouTube. When running [Performance Max campaigns](https://woocommerce.com/document/google-for-woocommerce/get-started/google-performance-max-campaigns/), Google Merchant Center ensures that shoppers see the most up-to-date and accurate information about your product feed, reducing confusion and improving the chances of a purchase.
-Learn more about supported countries and currencies for Performance Max campaigns [here](https://support.google.com/merchants/answer/160637#countrytable).
+= Will my deals and promotions display on Google? =
+To show your coupons and promotions on Google Shopping listings, make sure you’re using the latest version of Google for WooCommerce. When you create or update a coupon in your WordPress dashboard under Marketing > Coupons, you’ll see a Channel Visibility settings box on the right: select “Show coupon on Google” to enable it. [Learn more](https://support.google.com/merchants/answer/11338950#zippy=%2Cmanage-promotions-using-woocommerce) about managing promotions for Google for WooCommerce. This feature is currently available in Australia, Canada, Germany, France, India, the United Kingdom, and the United States.
-= Where will my products appear? =
-If you’re selling in the US, then eligible free listings can appear in search results across Google Search, Google Images, and the Google Shopping tab. If you're selling outside the US, free listings will appear on the Shopping tab.
+= What is Product Sync? =
+Product Sync is a feature fully integrated into WooCommerce’s management platform that automatically lets you sync your product feed to Google Merchant Center. It will sync all your WooCommerce product data, and you can also add or edit products individually or in bulk. To ensure products are approved by Google, check that your product feed includes the following information:
+
+* General product information
+* Unique product identifiers
+* Data requirements for specific categories (auto-assigned by Google):
+ * Apparel & Accessories
+ * Media
+ * Books
-If you’re running a Performance Max campaign, your approved products can appear on Google Search, the Shopping tab, Gmail, Youtube and the Google Display Network.
+= Where do I manage my product feed and my Google Ads campaigns? =
+You can manage and edit all of your products and your Google Ads campaigns right from your WooCommerce dashboard and on the WooCommerce Mobile App.
-= Will my deals and promotions display on Google? =
-To show your coupons and promotions on Google Shopping listings, make sure you’re using the latest version of Google for WooCommerce. When you create or update a coupon in your WordPress dashboard under Marketing > Coupons, you’ll see a Channel Visibility settings box on the right: select “Show coupon on Google” to enable. This is currently available in the US only.
+= Where will my products appear? =
+Once you start running a [Performance Max campaign](https://woocommerce.com/document/google-for-woocommerce/get-started/google-performance-max-campaigns/), your approved products will reach more shoppers to help grow your business by being shown on Google Search, Google Maps, the Shopping tab, Gmail, Youtube, the Google Display Network, and Discover feed.
= What are Performance Max campaigns? =
-Performance Max campaigns are Google Ads that combine Google’s machine learning with automated bidding and ad placements to maximize conversion value and strategically display your ads to people searching for products like yours, at your given budget. The best part? You only pay when people click on your ad.
+[Performance Max campaigns](https://woocommerce.com/document/google-for-woocommerce/get-started/google-performance-max-campaigns/) help you combine your expertise with Google AI to reach your most valuable customers and drive sales. Just set your goals and budget and Google AI will get your ads seen by the right customers at the right time across Google Search, Google Maps, the Shopping tab, Gmail, Youtube, the Google Display Network, and Discover feed.
= How much do Performance Max campaigns cost? =
-Performance Max campaigns are pay-per-click, meaning you only pay when someone clicks on your ads. You can customize your daily budget in Google for WooCommerce but we recommend starting off with the suggested minimum budget, and you can change this budget at any time.
+[Performance Max campaigns](https://woocommerce.com/document/google-for-woocommerce/get-started/google-performance-max-campaigns/) are pay-per-click, meaning you only pay when someone clicks on your ads. To get the best results and ensure your products reach the right customers, we recommend starting with the suggested Google for WooCommerce minimum daily budget for your [Performance Max campaign](https://woocommerce.com/document/google-for-woocommerce/get-started/google-performance-max-campaigns/). This helps jumpstart your campaign and drive early conversions. You can always adjust your budget later as you see what works best for your business.
+
+= Can I sync my products and run Performance Max campaigns on Google for WooCommerce at the same time? =
+Yes, you can run both at the same time, and we recommend you do! Once you sync your store it’s automatically listed on Google, so you can choose to run a paid [Performance Max campaign](https://woocommerce.com/document/google-for-woocommerce/get-started/google-performance-max-campaigns/) as soon as you’d like. In the US, advertisers who sync their products to Google and run Google Ads [Performance Max campaigns](https://woocommerce.com/document/google-for-woocommerce/get-started/google-performance-max-campaigns/) have seen an average of over 50% increase in clicks and over 100% increase in impressions in both their product listings and their ads on the Shopping tab.
-= Can I run both free listings and Performance Max campaigns at the same time? =
-Yes, you can run both at the same time, and we recommend it! In the US, advertisers running free listings and ads together have seen an average of over 50% increase in clicks and over 100% increase in impressions on both free listings and ads on the Shopping tab. Your store is automatically opted into free listings automatically and can choose to run a paid Performance Max campaign.
+= How does Google for WooCommerce help me drive sales? =
+With Google for WooCommerce, you can serve the best-performing ads more often, by using Google AI to pull headlines, images, product details, and more from your product feed and find more relevant customers. Your campaigns will learn and optimize in real time – to help deliver better performance and boost your ROI.
+
+= What are Enhanced conversions? =
+Enhanced conversions is a feature that can improve the accuracy of your conversion measurement and unlock more powerful bidding. It supplements your existing conversion tags by sending hashed first-party conversion data from your website to Google in a privacy-safe way.
+
+= Which countries are available for Google for WooCommerce? =
+For [Performance Max campaigns](https://woocommerce.com/document/google-for-woocommerce/get-started/google-performance-max-campaigns/), learn more about supported countries and currencies [here](https://support.google.com/merchants/answer/160637#countrytable).
+
+= What is Multi-Country Advertising? =
+Multi-Country Advertising enables you to create a single Google Ads campaign that targets multiple countries at once. Google for WooCommerce automatically populates eligible countries from your Google Merchant Center account into the plug-in ads campaign creation flow.
+
+= Can I enable Multi-Country Advertising on my existing campaigns? =
+If you created a campaign before this feature launched, you’ll need to create a new campaign to target new countries with Multi-Country Advertising. [Learn more](https://woocommerce.com/document/google-listings-and-ads/).
+
+= How is my ads budget split between the different countries? =
+Identify the best performing targeted countries with the help of Google AI, to make your ads reach the right shoppers at the right time.
+
+= Which countries can I target? =
+You can only select the countries that you’re targeting on Google Merchant Center. Your target countries must be eligible for both Google Merchant Center and Google Ads.
+
+To allow your products to appear in all relevant locations, make sure you’ve correctly [configured your shipping](https://support.google.com/merchants/answer/6069284) for countries where your products can be delivered. Keep in mind that shipping services can cover multiple countries. [Learn more about multi-country shipping](https://support.google.com/merchants/answer/6069284#multicountryshipping).
== Changelog ==
+= 2.8.2 - 2024-08-14 =
+* Fix - Disconnecting all accounts when WPCOM connection is not granted.
+* Fix - Error when Google Merchant Center account is undefined while checking the notification service enabled property.
+* Tweak - Label campaigns for the web version and the WooCommerce Mobile app.
+* Tweak - Update FAQS in Getting Started page.
+* Tweak - Update WP.org plugin FAQs.
+* Tweak - Update WPORG plugin page header image.
+* Tweak - Update get started page.
+* Tweak - WC 9.2.0 compatibility.
+* Update - Block validation to support error context.
+
= 2.8.1 - 2024-08-06 =
* Add - Enable labeling of Ads campaigns.
* Tweak - Update doc links references.
@@ -120,8 +161,4 @@ Yes, you can run both at the same time, and we recommend it! In the US, advertis
* Add Google API Pull method.
* Rebranding Google Listings and Ads with Google for WooCommerce.
-= 2.7.7 - 2024-07-24 =
-* Dev - Fix E2E tests failed with WC 9.1.
-* Tweak - Make campaign preview card responsive.
-
[See changelog for all versions](https://raw.githubusercontent.com/woocommerce/google-listings-and-ads/trunk/changelog.txt).
diff --git a/src/API/Site/Controllers/Ads/CampaignController.php b/src/API/Site/Controllers/Ads/CampaignController.php
index 90d220117e..6fefab6936 100644
--- a/src/API/Site/Controllers/Ads/CampaignController.php
+++ b/src/API/Site/Controllers/Ads/CampaignController.php
@@ -164,6 +164,7 @@ protected function create_campaign_callback(): callable {
* @property float amount Campaign budget.
* @property string country Base target country code.
* @property string targeted_locations Additional target country codes.
+ * @property string source The source of the campaign creation.
*/
do_action(
'woocommerce_gla_track_event',
@@ -175,6 +176,7 @@ protected function create_campaign_callback(): callable {
'amount' => $campaign['amount'],
'country' => $campaign['country'],
'targeted_locations' => join( ',', $campaign['targeted_locations'] ),
+ 'source' => $fields['label'] ?? '',
]
);
diff --git a/src/Admin/Input/Integer.php b/src/Admin/Input/Integer.php
index c40dc78625..72c3b79be7 100644
--- a/src/Admin/Input/Integer.php
+++ b/src/Admin/Input/Integer.php
@@ -20,6 +20,11 @@ public function __construct() {
// the text field block to work around it.
parent::__construct( 'integer', 'woocommerce/product-text-field' );
- $this->set_block_attribute( 'type', [ 'value' => 'number' ] );
+ $this->set_block_attribute(
+ 'pattern',
+ [
+ 'value' => '0|[1-9]\d*',
+ ]
+ );
}
}
diff --git a/src/Hooks/README.md b/src/Hooks/README.md
index 77a2a1b688..d86c104d89 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/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Admin/BulkEdit/BulkEditInitializer.php#L36)
+- [BulkEditInitializer.php#L36](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Admin/BulkEdit/BulkEditInitializer.php#L36)
## jetpack_verify_api_authorization_request_error_double_encode
@@ -16,7 +16,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [JetpackWPCOM.php#L223](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Integration/JetpackWPCOM.php#L223)
+- [JetpackWPCOM.php#L223](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Integration/JetpackWPCOM.php#L223)
## woocommerce_admin_disabled
@@ -24,7 +24,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/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Internal/Requirements/WCAdminValidator.php#L38)
+- [WCAdminValidator.php#L38](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Internal/Requirements/WCAdminValidator.php#L38)
## woocommerce_gla_ads_billing_setup_status
@@ -32,8 +32,8 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [Ads.php#L113](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Ads.php#L113)
-- [Ads.php#L122](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Ads.php#L122)
+- [Ads.php#L113](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Ads.php#L113)
+- [Ads.php#L122](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Ads.php#L122)
## woocommerce_gla_ads_client_exception
@@ -41,24 +41,24 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [Ads.php#L74](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Ads.php#L74)
-- [Ads.php#L118](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Ads.php#L118)
-- [Ads.php#L167](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Ads.php#L167)
-- [Ads.php#L209](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Ads.php#L209)
-- [Ads.php#L319](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Ads.php#L319)
-- [AdsAssetGroupAsset.php#L135](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/AdsAssetGroupAsset.php#L135)
-- [AdsAssetGroupAsset.php#L201](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/AdsAssetGroupAsset.php#L201)
-- [AdsCampaign.php#L163](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/AdsCampaign.php#L163)
-- [AdsCampaign.php#L206](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/AdsCampaign.php#L206)
-- [AdsCampaign.php#L273](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/AdsCampaign.php#L273)
-- [AdsCampaign.php#L328](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/AdsCampaign.php#L328)
-- [AdsCampaign.php#L365](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/AdsCampaign.php#L365)
-- [AdsConversionAction.php#L100](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/AdsConversionAction.php#L100)
-- [AdsConversionAction.php#L146](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/AdsConversionAction.php#L146)
-- [AdsAssetGroup.php#L113](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/AdsAssetGroup.php#L113)
-- [AdsAssetGroup.php#L261](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/AdsAssetGroup.php#L261)
-- [AdsAssetGroup.php#L325](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/AdsAssetGroup.php#L325)
-- [AdsReport.php#L105](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/AdsReport.php#L105)
+- [AdsCampaign.php#L163](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/AdsCampaign.php#L163)
+- [AdsCampaign.php#L206](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/AdsCampaign.php#L206)
+- [AdsCampaign.php#L273](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/AdsCampaign.php#L273)
+- [AdsCampaign.php#L328](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/AdsCampaign.php#L328)
+- [AdsCampaign.php#L365](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/AdsCampaign.php#L365)
+- [AdsConversionAction.php#L100](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/AdsConversionAction.php#L100)
+- [AdsConversionAction.php#L146](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/AdsConversionAction.php#L146)
+- [AdsAssetGroupAsset.php#L135](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/AdsAssetGroupAsset.php#L135)
+- [AdsAssetGroupAsset.php#L201](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/AdsAssetGroupAsset.php#L201)
+- [AdsAssetGroup.php#L113](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/AdsAssetGroup.php#L113)
+- [AdsAssetGroup.php#L261](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/AdsAssetGroup.php#L261)
+- [AdsAssetGroup.php#L325](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/AdsAssetGroup.php#L325)
+- [AdsReport.php#L105](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/AdsReport.php#L105)
+- [Ads.php#L74](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Ads.php#L74)
+- [Ads.php#L118](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Ads.php#L118)
+- [Ads.php#L167](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Ads.php#L167)
+- [Ads.php#L209](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Ads.php#L209)
+- [Ads.php#L319](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Ads.php#L319)
## woocommerce_gla_ads_setup_completed
@@ -66,7 +66,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [SetupCompleteController.php#L66](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Site/Controllers/Ads/SetupCompleteController.php#L66)
+- [SetupCompleteController.php#L66](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Site/Controllers/Ads/SetupCompleteController.php#L66)
## woocommerce_gla_attribute_applicable_product_types_
@@ -74,8 +74,8 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [AttributesForm.php#L98](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Admin/Product/Attributes/AttributesForm.php#L98)
-- [AttributeManager.php#L368](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/Attributes/AttributeManager.php#L368)
+- [AttributesForm.php#L98](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Admin/Product/Attributes/AttributesForm.php#L98)
+- [AttributeManager.php#L368](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/Attributes/AttributeManager.php#L368)
## woocommerce_gla_attribute_hidden_product_types_
@@ -83,7 +83,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [AttributesForm.php#L103](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Admin/Product/Attributes/AttributesForm.php#L103)
+- [AttributesForm.php#L103](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Admin/Product/Attributes/AttributesForm.php#L103)
## woocommerce_gla_attribute_mapping_sources
@@ -91,7 +91,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/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/AttributeMapping/Traits/IsFieldTrait.php#L31)
+- [IsFieldTrait.php#L31](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/AttributeMapping/Traits/IsFieldTrait.php#L31)
## woocommerce_gla_attribute_mapping_sources_custom_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#L125](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/AttributeMapping/Traits/IsFieldTrait.php#L125)
+- [IsFieldTrait.php#L125](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/AttributeMapping/Traits/IsFieldTrait.php#L125)
## woocommerce_gla_attribute_mapping_sources_global_attributes
@@ -107,7 +107,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/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/AttributeMapping/Traits/IsFieldTrait.php#L64)
+- [IsFieldTrait.php#L64](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/AttributeMapping/Traits/IsFieldTrait.php#L64)
## woocommerce_gla_attribute_mapping_sources_product_fields
@@ -115,7 +115,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/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/AttributeMapping/Traits/IsFieldTrait.php#L115)
+- [IsFieldTrait.php#L115](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/AttributeMapping/Traits/IsFieldTrait.php#L115)
## woocommerce_gla_attribute_mapping_sources_taxonomies
@@ -123,7 +123,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/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/AttributeMapping/Traits/IsFieldTrait.php#L65)
+- [IsFieldTrait.php#L65](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/AttributeMapping/Traits/IsFieldTrait.php#L65)
## woocommerce_gla_attributes_tab_applicable_product_types
@@ -131,7 +131,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [AttributesTrait.php#L18](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Admin/Product/Attributes/AttributesTrait.php#L18)
+- [AttributesTrait.php#L18](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Admin/Product/Attributes/AttributesTrait.php#L18)
## woocommerce_gla_batch_deleted_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#L228](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/ProductSyncer.php#L228)
+- [ProductSyncer.php#L228](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/ProductSyncer.php#L228)
## woocommerce_gla_batch_retry_delete_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#L342](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/ProductSyncer.php#L342)
+- [ProductSyncer.php#L342](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/ProductSyncer.php#L342)
## woocommerce_gla_batch_retry_update_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#L286](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/ProductSyncer.php#L286)
+- [ProductSyncer.php#L286](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/ProductSyncer.php#L286)
## woocommerce_gla_batch_updated_products
@@ -163,7 +163,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [ProductSyncer.php#L142](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/ProductSyncer.php#L142)
+- [ProductSyncer.php#L142](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/ProductSyncer.php#L142)
## woocommerce_gla_batched_job_size
@@ -171,8 +171,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/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Jobs/UpdateSyncableProductsCount.php#L74)
-- [AbstractBatchedActionSchedulerJob.php#L104](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Jobs/AbstractBatchedActionSchedulerJob.php#L104)
+- [AbstractBatchedActionSchedulerJob.php#L104](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Jobs/AbstractBatchedActionSchedulerJob.php#L104)
+- [UpdateSyncableProductsCount.php#L74](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Jobs/UpdateSyncableProductsCount.php#L74)
## woocommerce_gla_bulk_update_coupon
@@ -180,7 +180,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [CouponBulkEdit.php#L133](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Admin/BulkEdit/CouponBulkEdit.php#L133)
+- [CouponBulkEdit.php#L133](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Admin/BulkEdit/CouponBulkEdit.php#L133)
## woocommerce_gla_conversion_action_name
@@ -188,7 +188,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [AdsConversionAction.php#L67](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/AdsConversionAction.php#L67)
+- [AdsConversionAction.php#L67](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/AdsConversionAction.php#L67)
## woocommerce_gla_coupon_destinations
@@ -196,7 +196,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [WCCouponAdapter.php#L391](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Coupon/WCCouponAdapter.php#L391)
+- [WCCouponAdapter.php#L391](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Coupon/WCCouponAdapter.php#L391)
## woocommerce_gla_coupon_is_ready_to_notify
@@ -204,7 +204,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [CouponHelper.php#L359](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Coupon/CouponHelper.php#L359)
+- [CouponHelper.php#L359](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Coupon/CouponHelper.php#L359)
## woocommerce_gla_coupons_delete_retry_on_failure
@@ -212,7 +212,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [CouponSyncer.php#L438](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Coupon/CouponSyncer.php#L438)
+- [CouponSyncer.php#L438](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Coupon/CouponSyncer.php#L438)
## woocommerce_gla_coupons_update_retry_on_failure
@@ -220,7 +220,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [CouponSyncer.php#L400](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Coupon/CouponSyncer.php#L400)
+- [CouponSyncer.php#L400](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Coupon/CouponSyncer.php#L400)
## woocommerce_gla_custom_merchant_issues
@@ -228,7 +228,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [MerchantStatuses.php#L538](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/MerchantCenter/MerchantStatuses.php#L538)
+- [MerchantStatuses.php#L538](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/MerchantCenter/MerchantStatuses.php#L538)
## woocommerce_gla_debug_message
@@ -236,40 +236,40 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [ActionSchedulerJobMonitor.php#L117](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Jobs/ActionSchedulerJobMonitor.php#L117)
-- [ActionSchedulerJobMonitor.php#L126](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Jobs/ActionSchedulerJobMonitor.php#L126)
-- [CleanupSyncedProducts.php#L74](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Jobs/CleanupSyncedProducts.php#L74)
-- [ProductMetaQueryHelper.php#L109](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/DB/ProductMetaQueryHelper.php#L109)
-- [ProductMetaQueryHelper.php#L140](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/DB/ProductMetaQueryHelper.php#L140)
-- [SyncerHooks.php#L210](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Coupon/SyncerHooks.php#L210)
-- [CouponSyncer.php#L103](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Coupon/CouponSyncer.php#L103)
-- [CouponSyncer.php#L116](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Coupon/CouponSyncer.php#L116)
-- [CouponSyncer.php#L141](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Coupon/CouponSyncer.php#L141)
-- [CouponSyncer.php#L155](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Coupon/CouponSyncer.php#L155)
-- [CouponSyncer.php#L172](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Coupon/CouponSyncer.php#L172)
-- [CouponSyncer.php#L195](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Coupon/CouponSyncer.php#L195)
-- [CouponSyncer.php#L260](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Coupon/CouponSyncer.php#L260)
-- [CouponSyncer.php#L309](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Coupon/CouponSyncer.php#L309)
-- [CouponSyncer.php#L328](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Coupon/CouponSyncer.php#L328)
-- [CouponHelper.php#L272](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Coupon/CouponHelper.php#L272)
-- [CouponHelper.php#L309](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Coupon/CouponHelper.php#L309)
-- [MerchantCenterService.php#L325](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/MerchantCenter/MerchantCenterService.php#L325)
-- [MerchantStatuses.php#L413](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/MerchantCenter/MerchantStatuses.php#L413)
-- [MerchantStatuses.php#L667](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/MerchantCenter/MerchantStatuses.php#L667)
-- [MerchantStatuses.php#L916](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/MerchantCenter/MerchantStatuses.php#L916)
-- [WCProductAdapter.php#L205](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/WCProductAdapter.php#L205)
-- [ProductSyncer.php#L148](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/ProductSyncer.php#L148)
-- [ProductSyncer.php#L158](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/ProductSyncer.php#L158)
-- [ProductSyncer.php#L234](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/ProductSyncer.php#L234)
-- [ProductSyncer.php#L244](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/ProductSyncer.php#L244)
-- [ProductHelper.php#L612](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/ProductHelper.php#L612)
-- [ProductHelper.php#L645](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/ProductHelper.php#L645)
-- [SyncerHooks.php#L251](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/SyncerHooks.php#L251)
-- [BatchProductHelper.php#L208](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/BatchProductHelper.php#L208)
-- [BatchProductHelper.php#L231](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/BatchProductHelper.php#L231)
-- [ProductRepository.php#L315](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/ProductRepository.php#L315)
-- [NotificationsService.php#L118](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/WP/NotificationsService.php#L118)
-- [IssuesController.php#L95](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Site/Controllers/MerchantCenter/IssuesController.php#L95)
+- [MerchantCenterService.php#L325](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/MerchantCenter/MerchantCenterService.php#L325)
+- [MerchantStatuses.php#L413](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/MerchantCenter/MerchantStatuses.php#L413)
+- [MerchantStatuses.php#L667](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/MerchantCenter/MerchantStatuses.php#L667)
+- [MerchantStatuses.php#L916](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/MerchantCenter/MerchantStatuses.php#L916)
+- [NotificationsService.php#L118](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/WP/NotificationsService.php#L118)
+- [IssuesController.php#L95](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Site/Controllers/MerchantCenter/IssuesController.php#L95)
+- [CleanupSyncedProducts.php#L74](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Jobs/CleanupSyncedProducts.php#L74)
+- [ActionSchedulerJobMonitor.php#L117](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Jobs/ActionSchedulerJobMonitor.php#L117)
+- [ActionSchedulerJobMonitor.php#L126](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Jobs/ActionSchedulerJobMonitor.php#L126)
+- [ProductSyncer.php#L148](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/ProductSyncer.php#L148)
+- [ProductSyncer.php#L158](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/ProductSyncer.php#L158)
+- [ProductSyncer.php#L234](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/ProductSyncer.php#L234)
+- [ProductSyncer.php#L244](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/ProductSyncer.php#L244)
+- [WCProductAdapter.php#L205](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/WCProductAdapter.php#L205)
+- [ProductHelper.php#L612](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/ProductHelper.php#L612)
+- [ProductHelper.php#L645](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/ProductHelper.php#L645)
+- [SyncerHooks.php#L251](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/SyncerHooks.php#L251)
+- [BatchProductHelper.php#L208](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/BatchProductHelper.php#L208)
+- [BatchProductHelper.php#L231](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/BatchProductHelper.php#L231)
+- [ProductRepository.php#L315](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/ProductRepository.php#L315)
+- [CouponHelper.php#L272](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Coupon/CouponHelper.php#L272)
+- [CouponHelper.php#L309](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Coupon/CouponHelper.php#L309)
+- [SyncerHooks.php#L210](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Coupon/SyncerHooks.php#L210)
+- [CouponSyncer.php#L103](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Coupon/CouponSyncer.php#L103)
+- [CouponSyncer.php#L116](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Coupon/CouponSyncer.php#L116)
+- [CouponSyncer.php#L141](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Coupon/CouponSyncer.php#L141)
+- [CouponSyncer.php#L155](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Coupon/CouponSyncer.php#L155)
+- [CouponSyncer.php#L172](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Coupon/CouponSyncer.php#L172)
+- [CouponSyncer.php#L195](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Coupon/CouponSyncer.php#L195)
+- [CouponSyncer.php#L260](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Coupon/CouponSyncer.php#L260)
+- [CouponSyncer.php#L309](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Coupon/CouponSyncer.php#L309)
+- [CouponSyncer.php#L328](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Coupon/CouponSyncer.php#L328)
+- [ProductMetaQueryHelper.php#L109](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/DB/ProductMetaQueryHelper.php#L109)
+- [ProductMetaQueryHelper.php#L140](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/DB/ProductMetaQueryHelper.php#L140)
## woocommerce_gla_deleted_promotions
@@ -277,7 +277,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [CouponSyncer.php#L322](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Coupon/CouponSyncer.php#L322)
+- [CouponSyncer.php#L322](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Coupon/CouponSyncer.php#L322)
## woocommerce_gla_dimension_unit
@@ -285,7 +285,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [WCProductAdapter.php#L431](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/WCProductAdapter.php#L431)
+- [WCProductAdapter.php#L431](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/WCProductAdapter.php#L431)
## woocommerce_gla_disable_gtag_tracking
@@ -293,7 +293,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [GlobalSiteTag.php#L545](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Google/GlobalSiteTag.php#L545)
+- [GlobalSiteTag.php#L545](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Google/GlobalSiteTag.php#L545)
## woocommerce_gla_enable_connection_test
@@ -301,7 +301,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [ConnectionTest.php#L97](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/ConnectionTest.php#L97)
+- [ConnectionTest.php#L97](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/ConnectionTest.php#L97)
## woocommerce_gla_enable_debug_logging
@@ -309,7 +309,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/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Logging/DebugLogger.php#L33)
+- [DebugLogger.php#L33](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Logging/DebugLogger.php#L33)
## woocommerce_gla_enable_mcm
@@ -317,7 +317,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [GLAChannel.php#L86](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/MultichannelMarketing/GLAChannel.php#L86)
+- [GLAChannel.php#L86](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/MultichannelMarketing/GLAChannel.php#L86)
## woocommerce_gla_enable_reports
@@ -325,7 +325,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [Admin.php#L271](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Admin/Admin.php#L271)
+- [Admin.php#L271](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Admin/Admin.php#L271)
## woocommerce_gla_error
@@ -333,29 +333,29 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [AbstractItemNotificationJob.php#L28](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Jobs/Notifications/AbstractItemNotificationJob.php#L28)
-- [AbstractItemNotificationJob.php#L46](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Jobs/Notifications/AbstractItemNotificationJob.php#L46)
-- [PHPView.php#L136](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/View/PHPView.php#L136)
-- [PHPView.php#L164](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/View/PHPView.php#L164)
-- [PHPView.php#L208](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/View/PHPView.php#L208)
-- [ProductMetaQueryHelper.php#L156](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/DB/ProductMetaQueryHelper.php#L156)
-- [CouponMetaHandler.php#L227](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Coupon/CouponMetaHandler.php#L227)
-- [CouponSyncer.php#L410](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Coupon/CouponSyncer.php#L410)
-- [CouponSyncer.php#L448](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Coupon/CouponSyncer.php#L448)
-- [CouponSyncer.php#L466](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Coupon/CouponSyncer.php#L466)
-- [CouponSyncer.php#L481](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Coupon/CouponSyncer.php#L481)
-- [ProductSyncer.php#L289](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/ProductSyncer.php#L289)
-- [ProductSyncer.php#L312](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/ProductSyncer.php#L312)
-- [ProductSyncer.php#L345](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/ProductSyncer.php#L345)
-- [ProductSyncer.php#L360](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/ProductSyncer.php#L360)
-- [ProductSyncer.php#L367](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/ProductSyncer.php#L367)
-- [ProductHelper.php#L504](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/ProductHelper.php#L504)
-- [ProductHelper.php#L721](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/ProductHelper.php#L721)
-- [BatchProductHelper.php#L248](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/BatchProductHelper.php#L248)
-- [ProductMetaHandler.php#L178](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/ProductMetaHandler.php#L178)
-- [AttributeManager.php#L342](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/Attributes/AttributeManager.php#L342)
-- [OAuthService.php#L244](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/WP/OAuthService.php#L244)
-- [NotificationsService.php#L135](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/WP/NotificationsService.php#L135)
+- [OAuthService.php#L244](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/WP/OAuthService.php#L244)
+- [NotificationsService.php#L135](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/WP/NotificationsService.php#L135)
+- [AbstractItemNotificationJob.php#L28](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Jobs/Notifications/AbstractItemNotificationJob.php#L28)
+- [AbstractItemNotificationJob.php#L46](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Jobs/Notifications/AbstractItemNotificationJob.php#L46)
+- [ProductSyncer.php#L289](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/ProductSyncer.php#L289)
+- [ProductSyncer.php#L312](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/ProductSyncer.php#L312)
+- [ProductSyncer.php#L345](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/ProductSyncer.php#L345)
+- [ProductSyncer.php#L360](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/ProductSyncer.php#L360)
+- [ProductSyncer.php#L367](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/ProductSyncer.php#L367)
+- [ProductMetaHandler.php#L178](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/ProductMetaHandler.php#L178)
+- [ProductHelper.php#L504](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/ProductHelper.php#L504)
+- [ProductHelper.php#L721](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/ProductHelper.php#L721)
+- [AttributeManager.php#L342](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/Attributes/AttributeManager.php#L342)
+- [BatchProductHelper.php#L248](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/BatchProductHelper.php#L248)
+- [CouponSyncer.php#L410](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Coupon/CouponSyncer.php#L410)
+- [CouponSyncer.php#L448](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Coupon/CouponSyncer.php#L448)
+- [CouponSyncer.php#L466](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Coupon/CouponSyncer.php#L466)
+- [CouponSyncer.php#L481](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Coupon/CouponSyncer.php#L481)
+- [CouponMetaHandler.php#L227](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Coupon/CouponMetaHandler.php#L227)
+- [ProductMetaQueryHelper.php#L156](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/DB/ProductMetaQueryHelper.php#L156)
+- [PHPView.php#L136](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/View/PHPView.php#L136)
+- [PHPView.php#L164](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/View/PHPView.php#L164)
+- [PHPView.php#L208](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/View/PHPView.php#L208)
## woocommerce_gla_exception
@@ -363,32 +363,32 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [PluginUpdate.php#L75](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Jobs/Update/PluginUpdate.php#L75)
-- [CouponChannelVisibilityMetaBox.php#L197](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Admin/MetaBox/CouponChannelVisibilityMetaBox.php#L197)
-- [ChannelVisibilityMetaBox.php#L176](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Admin/MetaBox/ChannelVisibilityMetaBox.php#L176)
-- [DateTime.php#L44](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Admin/Input/DateTime.php#L44)
-- [DateTime.php#L80](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Admin/Input/DateTime.php#L80)
-- [PHPView.php#L87](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/View/PHPView.php#L87)
-- [CouponSyncer.php#L203](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Coupon/CouponSyncer.php#L203)
-- [CouponSyncer.php#L293](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Coupon/CouponSyncer.php#L293)
-- [GoogleServiceProvider.php#L237](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Internal/DependencyManagement/GoogleServiceProvider.php#L237)
-- [GoogleServiceProvider.php#L247](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Internal/DependencyManagement/GoogleServiceProvider.php#L247)
-- [WooCommercePreOrders.php#L111](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Integration/WooCommercePreOrders.php#L111)
-- [WooCommercePreOrders.php#L131](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Integration/WooCommercePreOrders.php#L131)
-- [ProductSyncer.php#L133](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/ProductSyncer.php#L133)
-- [ProductSyncer.php#L219](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/ProductSyncer.php#L219)
-- [ProductHelper.php#L284](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/ProductHelper.php#L284)
-- [ClearProductStatsCache.php#L61](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Event/ClearProductStatsCache.php#L61)
-- [ScriptWithBuiltDependenciesAsset.php#L66](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Assets/ScriptWithBuiltDependenciesAsset.php#L66)
-- [Connection.php#L95](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Connection.php#L95)
-- [Middleware.php#L458](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Middleware.php#L458)
-- [ProductVisibilityController.php#L193](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Site/Controllers/MerchantCenter/ProductVisibilityController.php#L193)
-- [SettingsSyncController.php#L96](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Site/Controllers/MerchantCenter/SettingsSyncController.php#L96)
-- [RequestReviewController.php#L284](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Site/Controllers/MerchantCenter/RequestReviewController.php#L284)
-- [RequestReviewController.php#L329](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Site/Controllers/MerchantCenter/RequestReviewController.php#L329)
-- [ContactInformationController.php#L242](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Site/Controllers/MerchantCenter/ContactInformationController.php#L242)
-- [NoteInitializer.php#L74](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Notes/NoteInitializer.php#L74)
-- [NoteInitializer.php#L116](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Notes/NoteInitializer.php#L116)
+- [DateTime.php#L44](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Admin/Input/DateTime.php#L44)
+- [DateTime.php#L80](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Admin/Input/DateTime.php#L80)
+- [ChannelVisibilityMetaBox.php#L176](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Admin/MetaBox/ChannelVisibilityMetaBox.php#L176)
+- [CouponChannelVisibilityMetaBox.php#L197](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Admin/MetaBox/CouponChannelVisibilityMetaBox.php#L197)
+- [ProductVisibilityController.php#L193](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Site/Controllers/MerchantCenter/ProductVisibilityController.php#L193)
+- [ContactInformationController.php#L242](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Site/Controllers/MerchantCenter/ContactInformationController.php#L242)
+- [SettingsSyncController.php#L96](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Site/Controllers/MerchantCenter/SettingsSyncController.php#L96)
+- [RequestReviewController.php#L284](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Site/Controllers/MerchantCenter/RequestReviewController.php#L284)
+- [RequestReviewController.php#L329](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Site/Controllers/MerchantCenter/RequestReviewController.php#L329)
+- [Connection.php#L95](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Connection.php#L95)
+- [Middleware.php#L458](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Middleware.php#L458)
+- [PluginUpdate.php#L75](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Jobs/Update/PluginUpdate.php#L75)
+- [ProductSyncer.php#L133](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/ProductSyncer.php#L133)
+- [ProductSyncer.php#L219](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/ProductSyncer.php#L219)
+- [ProductHelper.php#L284](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/ProductHelper.php#L284)
+- [NoteInitializer.php#L74](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Notes/NoteInitializer.php#L74)
+- [NoteInitializer.php#L116](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Notes/NoteInitializer.php#L116)
+- [CouponSyncer.php#L203](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Coupon/CouponSyncer.php#L203)
+- [CouponSyncer.php#L293](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Coupon/CouponSyncer.php#L293)
+- [WooCommercePreOrders.php#L111](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Integration/WooCommercePreOrders.php#L111)
+- [WooCommercePreOrders.php#L131](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Integration/WooCommercePreOrders.php#L131)
+- [PHPView.php#L87](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/View/PHPView.php#L87)
+- [ClearProductStatsCache.php#L61](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Event/ClearProductStatsCache.php#L61)
+- [ScriptWithBuiltDependenciesAsset.php#L66](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Assets/ScriptWithBuiltDependenciesAsset.php#L66)
+- [GoogleServiceProvider.php#L237](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Internal/DependencyManagement/GoogleServiceProvider.php#L237)
+- [GoogleServiceProvider.php#L247](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Internal/DependencyManagement/GoogleServiceProvider.php#L247)
## woocommerce_gla_force_run_install
@@ -396,7 +396,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/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Installer.php#L82)
+- [Installer.php#L82](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Installer.php#L82)
## woocommerce_gla_get_google_product_offer_id
@@ -404,7 +404,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [WCProductAdapter.php#L284](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/WCProductAdapter.php#L284)
+- [WCProductAdapter.php#L284](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/WCProductAdapter.php#L284)
## woocommerce_gla_get_sync_ready_products_filter
@@ -412,7 +412,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/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/ProductFilter.php#L61)
+- [ProductFilter.php#L61](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/ProductFilter.php#L61)
## woocommerce_gla_get_sync_ready_products_pre_filter
@@ -420,7 +420,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/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/ProductFilter.php#L47)
+- [ProductFilter.php#L47](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/ProductFilter.php#L47)
## woocommerce_gla_get_wc_product_id
@@ -428,7 +428,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [ProductHelper.php#L329](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/ProductHelper.php#L329)
+- [ProductHelper.php#L329](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/ProductHelper.php#L329)
## woocommerce_gla_gtag_consent
@@ -436,7 +436,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [GlobalSiteTag.php#L321](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Google/GlobalSiteTag.php#L321)
+- [GlobalSiteTag.php#L321](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Google/GlobalSiteTag.php#L321)
## woocommerce_gla_guzzle_client_exception
@@ -444,19 +444,19 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [GoogleServiceProvider.php#L266](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Internal/DependencyManagement/GoogleServiceProvider.php#L266)
-- [Connection.php#L70](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Connection.php#L70)
-- [Connection.php#L91](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Connection.php#L91)
-- [Connection.php#L126](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Connection.php#L126)
-- [Middleware.php#L82](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Middleware.php#L82)
-- [Middleware.php#L180](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Middleware.php#L180)
-- [Middleware.php#L230](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Middleware.php#L230)
-- [Middleware.php#L275](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Middleware.php#L275)
-- [Middleware.php#L347](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Middleware.php#L347)
-- [Middleware.php#L397](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Middleware.php#L397)
-- [Middleware.php#L421](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Middleware.php#L421)
-- [Middleware.php#L455](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Middleware.php#L455)
-- [Middleware.php#L603](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Middleware.php#L603)
+- [Connection.php#L70](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Connection.php#L70)
+- [Connection.php#L91](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Connection.php#L91)
+- [Connection.php#L126](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Connection.php#L126)
+- [Middleware.php#L82](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Middleware.php#L82)
+- [Middleware.php#L180](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Middleware.php#L180)
+- [Middleware.php#L230](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Middleware.php#L230)
+- [Middleware.php#L275](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Middleware.php#L275)
+- [Middleware.php#L347](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Middleware.php#L347)
+- [Middleware.php#L397](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Middleware.php#L397)
+- [Middleware.php#L421](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Middleware.php#L421)
+- [Middleware.php#L455](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Middleware.php#L455)
+- [Middleware.php#L603](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Middleware.php#L603)
+- [GoogleServiceProvider.php#L266](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Internal/DependencyManagement/GoogleServiceProvider.php#L266)
## woocommerce_gla_guzzle_invalid_response
@@ -464,15 +464,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/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Connection.php#L66)
-- [Connection.php#L121](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Connection.php#L121)
-- [Middleware.php#L161](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Middleware.php#L161)
-- [Middleware.php#L225](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Middleware.php#L225)
-- [Middleware.php#L269](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Middleware.php#L269)
-- [Middleware.php#L342](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Middleware.php#L342)
-- [Middleware.php#L392](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Middleware.php#L392)
-- [Middleware.php#L595](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Middleware.php#L595)
-- [RequestReviewController.php#L317](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Site/Controllers/MerchantCenter/RequestReviewController.php#L317)
+- [RequestReviewController.php#L317](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Site/Controllers/MerchantCenter/RequestReviewController.php#L317)
+- [Connection.php#L66](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Connection.php#L66)
+- [Connection.php#L121](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Connection.php#L121)
+- [Middleware.php#L161](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Middleware.php#L161)
+- [Middleware.php#L225](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Middleware.php#L225)
+- [Middleware.php#L269](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Middleware.php#L269)
+- [Middleware.php#L342](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Middleware.php#L342)
+- [Middleware.php#L392](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Middleware.php#L392)
+- [Middleware.php#L595](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Middleware.php#L595)
## woocommerce_gla_handle_shipping_method_to_rates
@@ -480,7 +480,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [ZoneMethodsParser.php#L106](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Shipping/ZoneMethodsParser.php#L106)
+- [ZoneMethodsParser.php#L106](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Shipping/ZoneMethodsParser.php#L106)
## woocommerce_gla_hidden_coupon_types
@@ -488,7 +488,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [CouponSyncer.php#L379](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Coupon/CouponSyncer.php#L379)
+- [CouponSyncer.php#L379](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Coupon/CouponSyncer.php#L379)
## woocommerce_gla_job_failure_rate_threshold
@@ -496,7 +496,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/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Jobs/ActionSchedulerJobMonitor.php#L186)
+- [ActionSchedulerJobMonitor.php#L186](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Jobs/ActionSchedulerJobMonitor.php#L186)
## woocommerce_gla_job_failure_timeframe
@@ -504,7 +504,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/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Jobs/ActionSchedulerJobMonitor.php#L195)
+- [ActionSchedulerJobMonitor.php#L195](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Jobs/ActionSchedulerJobMonitor.php#L195)
## woocommerce_gla_mapping_rules_change
@@ -512,9 +512,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/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Site/Controllers/AttributeMapping/AttributeMappingRulesController.php#L143)
-- [AttributeMappingRulesController.php#L166](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Site/Controllers/AttributeMapping/AttributeMappingRulesController.php#L166)
-- [AttributeMappingRulesController.php#L188](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Site/Controllers/AttributeMapping/AttributeMappingRulesController.php#L188)
+- [AttributeMappingRulesController.php#L143](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Site/Controllers/AttributeMapping/AttributeMappingRulesController.php#L143)
+- [AttributeMappingRulesController.php#L166](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Site/Controllers/AttributeMapping/AttributeMappingRulesController.php#L166)
+- [AttributeMappingRulesController.php#L188](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Site/Controllers/AttributeMapping/AttributeMappingRulesController.php#L188)
## woocommerce_gla_mc_account_review_lifetime
@@ -522,7 +522,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [RequestReviewStatuses.php#L157](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Google/RequestReviewStatuses.php#L157)
+- [RequestReviewStatuses.php#L157](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Google/RequestReviewStatuses.php#L157)
## woocommerce_gla_mc_client_exception
@@ -530,17 +530,17 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [Merchant.php#L95](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Merchant.php#L95)
-- [Merchant.php#L143](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Merchant.php#L143)
-- [Merchant.php#L175](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Merchant.php#L175)
-- [Merchant.php#L194](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Merchant.php#L194)
-- [Merchant.php#L250](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Merchant.php#L250)
-- [Merchant.php#L295](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Merchant.php#L295)
-- [Merchant.php#L357](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Merchant.php#L357)
-- [Merchant.php#L390](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Merchant.php#L390)
-- [Merchant.php#L423](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Merchant.php#L423)
-- [MerchantReport.php#L115](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/MerchantReport.php#L115)
-- [MerchantReport.php#L183](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/MerchantReport.php#L183)
+- [Merchant.php#L95](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Merchant.php#L95)
+- [Merchant.php#L143](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Merchant.php#L143)
+- [Merchant.php#L175](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Merchant.php#L175)
+- [Merchant.php#L194](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Merchant.php#L194)
+- [Merchant.php#L250](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Merchant.php#L250)
+- [Merchant.php#L295](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Merchant.php#L295)
+- [Merchant.php#L357](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Merchant.php#L357)
+- [Merchant.php#L390](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Merchant.php#L390)
+- [Merchant.php#L423](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Merchant.php#L423)
+- [MerchantReport.php#L115](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/MerchantReport.php#L115)
+- [MerchantReport.php#L183](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/MerchantReport.php#L183)
## woocommerce_gla_mc_settings_sync
@@ -548,7 +548,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/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Site/Controllers/MerchantCenter/SettingsSyncController.php#L69)
+- [SettingsSyncController.php#L69](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Site/Controllers/MerchantCenter/SettingsSyncController.php#L69)
## woocommerce_gla_mc_status_lifetime
@@ -556,7 +556,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [MerchantStatuses.php#L935](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/MerchantCenter/MerchantStatuses.php#L935)
+- [MerchantStatuses.php#L935](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/MerchantCenter/MerchantStatuses.php#L935)
## woocommerce_gla_merchant_issue_override
@@ -564,7 +564,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [IssuesController.php#L85](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Site/Controllers/MerchantCenter/IssuesController.php#L85)
+- [IssuesController.php#L85](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Site/Controllers/MerchantCenter/IssuesController.php#L85)
## woocommerce_gla_merchant_status_presync_issues_chunk
@@ -572,7 +572,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [MerchantStatuses.php#L596](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/MerchantCenter/MerchantStatuses.php#L596)
+- [MerchantStatuses.php#L596](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/MerchantCenter/MerchantStatuses.php#L596)
## woocommerce_gla_notification_job_can_schedule
@@ -580,7 +580,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [AbstractNotificationJob.php#L86](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Jobs/Notifications/AbstractNotificationJob.php#L86)
+- [AbstractNotificationJob.php#L86](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Jobs/Notifications/AbstractNotificationJob.php#L86)
## woocommerce_gla_notifications_enabled
@@ -588,7 +588,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [NotificationsService.php#L176](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/WP/NotificationsService.php#L176)
+- [NotificationsService.php#L176](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/WP/NotificationsService.php#L176)
## woocommerce_gla_notify
@@ -596,7 +596,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [NotificationsService.php#L93](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/WP/NotificationsService.php#L93)
+- [NotificationsService.php#L93](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/WP/NotificationsService.php#L93)
## woocommerce_gla_options_deleted_
@@ -604,7 +604,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/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Options/Options.php#L103)
+- [Options.php#L103](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Options/Options.php#L103)
## woocommerce_gla_options_updated_
@@ -612,8 +612,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/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Options/Options.php#L65)
-- [Options.php#L85](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Options/Options.php#L85)
+- [Options.php#L65](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Options/Options.php#L65)
+- [Options.php#L85](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Options/Options.php#L85)
## woocommerce_gla_partner_app_auth_failure
@@ -621,7 +621,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [Middleware.php#L589](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Middleware.php#L589)
+- [Middleware.php#L589](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Middleware.php#L589)
## woocommerce_gla_prepared_response_->GET_ROUTE_NAME
@@ -629,7 +629,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [BaseController.php#L160](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Site/Controllers/BaseController.php#L160)
+- [BaseController.php#L160](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Site/Controllers/BaseController.php#L160)
## woocommerce_gla_product_attribute_types
@@ -637,7 +637,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [AttributeManager.php#L316](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/Attributes/AttributeManager.php#L316)
+- [AttributeManager.php#L316](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/Attributes/AttributeManager.php#L316)
## woocommerce_gla_product_attribute_value_
@@ -645,8 +645,8 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [WCProductAdapter.php#L916](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/WCProductAdapter.php#L916)
-- [WCProductAdapter.php#L967](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/WCProductAdapter.php#L967)
+- [WCProductAdapter.php#L916](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/WCProductAdapter.php#L916)
+- [WCProductAdapter.php#L967](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/WCProductAdapter.php#L967)
## woocommerce_gla_product_attribute_value_description
@@ -654,7 +654,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [WCProductAdapter.php#L352](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/WCProductAdapter.php#L352)
+- [WCProductAdapter.php#L352](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/WCProductAdapter.php#L352)
## woocommerce_gla_product_attribute_value_options_::get_id
@@ -662,7 +662,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [AttributesForm.php#L127](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Admin/Product/Attributes/AttributesForm.php#L127)
+- [AttributesForm.php#L127](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Admin/Product/Attributes/AttributesForm.php#L127)
## woocommerce_gla_product_attribute_value_price
@@ -670,7 +670,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [WCProductAdapter.php#L640](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/WCProductAdapter.php#L640)
+- [WCProductAdapter.php#L640](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/WCProductAdapter.php#L640)
## woocommerce_gla_product_attribute_value_sale_price
@@ -678,7 +678,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [WCProductAdapter.php#L692](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/WCProductAdapter.php#L692)
+- [WCProductAdapter.php#L692](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/WCProductAdapter.php#L692)
## woocommerce_gla_product_attribute_values
@@ -686,7 +686,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [WCProductAdapter.php#L166](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/WCProductAdapter.php#L166)
+- [WCProductAdapter.php#L166](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/WCProductAdapter.php#L166)
## woocommerce_gla_product_description_apply_shortcodes
@@ -694,7 +694,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [WCProductAdapter.php#L321](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/WCProductAdapter.php#L321)
+- [WCProductAdapter.php#L321](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/WCProductAdapter.php#L321)
## woocommerce_gla_product_is_ready_to_notify
@@ -702,7 +702,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [ProductHelper.php#L413](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/ProductHelper.php#L413)
+- [ProductHelper.php#L413](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/ProductHelper.php#L413)
## woocommerce_gla_product_property_value_is_virtual
@@ -710,7 +710,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [WCProductAdapter.php#L782](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/WCProductAdapter.php#L782)
+- [WCProductAdapter.php#L782](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/WCProductAdapter.php#L782)
## woocommerce_gla_product_query_args
@@ -718,7 +718,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [ProductRepository.php#L376](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/ProductRepository.php#L376)
+- [ProductRepository.php#L376](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/ProductRepository.php#L376)
## woocommerce_gla_product_view_report_page_size
@@ -726,7 +726,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [MerchantReport.php#L68](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/MerchantReport.php#L68)
+- [MerchantReport.php#L68](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/MerchantReport.php#L68)
## woocommerce_gla_products_delete_retry_on_failure
@@ -734,7 +734,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [ProductSyncer.php#L341](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/ProductSyncer.php#L341)
+- [ProductSyncer.php#L341](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/ProductSyncer.php#L341)
## woocommerce_gla_products_update_retry_on_failure
@@ -742,7 +742,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [ProductSyncer.php#L285](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/ProductSyncer.php#L285)
+- [ProductSyncer.php#L285](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/ProductSyncer.php#L285)
## woocommerce_gla_ready_for_syncing
@@ -750,7 +750,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [MerchantCenterService.php#L121](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/MerchantCenter/MerchantCenterService.php#L121)
+- [MerchantCenterService.php#L121](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/MerchantCenter/MerchantCenterService.php#L121)
## woocommerce_gla_request_review_failure
@@ -758,9 +758,9 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [RequestReviewController.php#L113](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Site/Controllers/MerchantCenter/RequestReviewController.php#L113)
-- [RequestReviewController.php#L125](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Site/Controllers/MerchantCenter/RequestReviewController.php#L125)
-- [RequestReviewController.php#L310](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Site/Controllers/MerchantCenter/RequestReviewController.php#L310)
+- [RequestReviewController.php#L113](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Site/Controllers/MerchantCenter/RequestReviewController.php#L113)
+- [RequestReviewController.php#L125](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Site/Controllers/MerchantCenter/RequestReviewController.php#L125)
+- [RequestReviewController.php#L310](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Site/Controllers/MerchantCenter/RequestReviewController.php#L310)
## woocommerce_gla_request_review_response
@@ -768,7 +768,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [RequestReviewController.php#L281](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Site/Controllers/MerchantCenter/RequestReviewController.php#L281)
+- [RequestReviewController.php#L281](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Site/Controllers/MerchantCenter/RequestReviewController.php#L281)
## woocommerce_gla_retry_delete_coupons
@@ -776,7 +776,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [CouponSyncer.php#L443](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Coupon/CouponSyncer.php#L443)
+- [CouponSyncer.php#L443](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Coupon/CouponSyncer.php#L443)
## woocommerce_gla_retry_update_coupons
@@ -784,7 +784,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [CouponSyncer.php#L405](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Coupon/CouponSyncer.php#L405)
+- [CouponSyncer.php#L405](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Coupon/CouponSyncer.php#L405)
## woocommerce_gla_site_claim_failure
@@ -792,10 +792,10 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [AccountService.php#L388](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/MerchantCenter/AccountService.php#L388)
-- [Merchant.php#L96](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Merchant.php#L96)
-- [Middleware.php#L270](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Middleware.php#L270)
-- [Middleware.php#L276](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Middleware.php#L276)
+- [AccountService.php#L388](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/MerchantCenter/AccountService.php#L388)
+- [Merchant.php#L96](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Merchant.php#L96)
+- [Middleware.php#L270](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Middleware.php#L270)
+- [Middleware.php#L276](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Middleware.php#L276)
## woocommerce_gla_site_claim_overwrite_required
@@ -803,7 +803,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [AccountService.php#L383](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/MerchantCenter/AccountService.php#L383)
+- [AccountService.php#L383](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/MerchantCenter/AccountService.php#L383)
## woocommerce_gla_site_claim_success
@@ -811,8 +811,8 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [Merchant.php#L93](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Merchant.php#L93)
-- [Middleware.php#L265](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/Middleware.php#L265)
+- [Merchant.php#L93](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Merchant.php#L93)
+- [Middleware.php#L265](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/Middleware.php#L265)
## woocommerce_gla_site_url
@@ -820,7 +820,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [PluginHelper.php#L188](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/PluginHelper.php#L188)
+- [PluginHelper.php#L188](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/PluginHelper.php#L188)
## woocommerce_gla_site_verify_failure
@@ -828,9 +828,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/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/SiteVerification.php#L58)
-- [SiteVerification.php#L66](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/SiteVerification.php#L66)
-- [SiteVerification.php#L87](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/SiteVerification.php#L87)
+- [SiteVerification.php#L58](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/SiteVerification.php#L58)
+- [SiteVerification.php#L66](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/SiteVerification.php#L66)
+- [SiteVerification.php#L87](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/SiteVerification.php#L87)
## woocommerce_gla_site_verify_success
@@ -838,7 +838,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/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/SiteVerification.php#L85)
+- [SiteVerification.php#L85](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/SiteVerification.php#L85)
## woocommerce_gla_supported_coupon_types
@@ -846,7 +846,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [CouponSyncer.php#L366](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Coupon/CouponSyncer.php#L366)
+- [CouponSyncer.php#L366](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Coupon/CouponSyncer.php#L366)
## woocommerce_gla_supported_product_types
@@ -854,7 +854,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [ProductSyncer.php#L263](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/ProductSyncer.php#L263)
+- [ProductSyncer.php#L263](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/ProductSyncer.php#L263)
## woocommerce_gla_sv_client_exception
@@ -862,8 +862,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/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/SiteVerification.php#L120)
-- [SiteVerification.php#L162](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Google/SiteVerification.php#L162)
+- [SiteVerification.php#L120](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/SiteVerification.php#L120)
+- [SiteVerification.php#L162](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Google/SiteVerification.php#L162)
## woocommerce_gla_tax_excluded
@@ -871,7 +871,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [WCProductAdapter.php#L601](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/WCProductAdapter.php#L601)
+- [WCProductAdapter.php#L601](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/WCProductAdapter.php#L601)
## woocommerce_gla_track_event
@@ -879,16 +879,16 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [AccountService.php#L587](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/MerchantCenter/AccountService.php#L587)
-- [AccountService.php#L606](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/MerchantCenter/AccountService.php#L606)
-- [OAuthService.php#L172](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/WP/OAuthService.php#L172)
-- [OAuthService.php#L200](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/WP/OAuthService.php#L200)
-- [OAuthService.php#L220](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/WP/OAuthService.php#L220)
-- [CampaignController.php#L169](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Site/Controllers/Ads/CampaignController.php#L169)
-- [CampaignController.php#L247](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Site/Controllers/Ads/CampaignController.php#L247)
-- [CampaignController.php#L285](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Site/Controllers/Ads/CampaignController.php#L285)
-- [SetupCompleteController.php#L75](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Site/Controllers/Ads/SetupCompleteController.php#L75)
-- [SettingsSyncController.php#L83](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/API/Site/Controllers/MerchantCenter/SettingsSyncController.php#L83)
+- [AccountService.php#L587](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/MerchantCenter/AccountService.php#L587)
+- [AccountService.php#L606](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/MerchantCenter/AccountService.php#L606)
+- [OAuthService.php#L172](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/WP/OAuthService.php#L172)
+- [OAuthService.php#L200](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/WP/OAuthService.php#L200)
+- [OAuthService.php#L220](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/WP/OAuthService.php#L220)
+- [SettingsSyncController.php#L83](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Site/Controllers/MerchantCenter/SettingsSyncController.php#L83)
+- [CampaignController.php#L170](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Site/Controllers/Ads/CampaignController.php#L170)
+- [CampaignController.php#L249](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Site/Controllers/Ads/CampaignController.php#L249)
+- [CampaignController.php#L287](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Site/Controllers/Ads/CampaignController.php#L287)
+- [SetupCompleteController.php#L75](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/API/Site/Controllers/Ads/SetupCompleteController.php#L75)
## woocommerce_gla_updated_coupon
@@ -896,7 +896,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [CouponSyncer.php#L169](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Coupon/CouponSyncer.php#L169)
+- [CouponSyncer.php#L169](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Coupon/CouponSyncer.php#L169)
## woocommerce_gla_url_switch_required
@@ -904,7 +904,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/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/MerchantCenter/AccountService.php#L468)
+- [AccountService.php#L468](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/MerchantCenter/AccountService.php#L468)
## woocommerce_gla_url_switch_success
@@ -912,7 +912,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [AccountService.php#L491](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/MerchantCenter/AccountService.php#L491)
+- [AccountService.php#L491](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/MerchantCenter/AccountService.php#L491)
## woocommerce_gla_use_short_description
@@ -920,7 +920,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [WCProductAdapter.php#L298](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/WCProductAdapter.php#L298)
+- [WCProductAdapter.php#L298](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/WCProductAdapter.php#L298)
## woocommerce_gla_wcs_url
@@ -928,8 +928,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/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/PluginHelper.php#L174)
-- [PluginHelper.php#L177](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/PluginHelper.php#L177)
+- [PluginHelper.php#L174](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/PluginHelper.php#L174)
+- [PluginHelper.php#L177](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/PluginHelper.php#L177)
## woocommerce_gla_weight_unit
@@ -937,7 +937,7 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [WCProductAdapter.php#L432](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/WCProductAdapter.php#L432)
+- [WCProductAdapter.php#L432](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/WCProductAdapter.php#L432)
## woocommerce_hide_invisible_variations
@@ -945,5 +945,5 @@ A list of hooks, e.g. `actions` and `filters`, that are defined or used in this
**Used in**:
-- [ProductHelper.php#L519](https://github.com/woocommerce/google-listings-and-ads/blob/cf43caf5ac07cf9e013f15cf7128c9946290b6b8/src/Product/ProductHelper.php#L519)
+- [ProductHelper.php#L519](https://github.com/woocommerce/google-listings-and-ads/blob/32034a39c1c8676ef49ad4777710893f083437c3/src/Product/ProductHelper.php#L519)
diff --git a/src/Tracking/README.md b/src/Tracking/README.md
index eba460a7ac..14b42d1048 100644
--- a/src/Tracking/README.md
+++ b/src/Tracking/README.md
@@ -324,7 +324,7 @@ When a documentation link is clicked.
- [`AppDocumentationLink`](../../js/src/components/app-documentation-link/index.js#L29)
- [`ChooseAudienceSection`](../../js/src/components/free-listings/choose-audience-section/choose-audience-section.js#L29) with `{ context: 'setup-mc-audience', link_id: 'site-language', href: 'https://support.google.com/merchants/answer/160637' }`
- [`ConnectAds`](../../js/src/components/google-ads-account-card/connect-ads/index.js#L42) with `{ context: 'setup-ads-connect-account', link_id: 'connect-sub-account', href: 'https://support.google.com/google-ads/answer/6139186' }`
-- [`ConnectGoogleAccountCard`](../../js/src/components/google-account-card/connect-google-account-card.js#L23) with `{ context: 'setup-mc-accounts', link_id: 'required-google-permissions', href: 'https://woocommerce.com/document/google-for-woocommerce/get-started/requirements/#general-requirements' }`
+- [`ConnectGoogleAccountCard`](../../js/src/components/google-account-card/connect-google-account-card.js#L23) with `{ context: 'setup-mc-accounts', link_id: 'required-google-permissions', href: 'https://woocommerce.com/document/google-for-woocommerce/get-started/setup-and-configuration/#required-google-permissions' }`
- [`ContactInformation`](../../js/src/components/contact-information/index.js#L91)
- with `{ context: 'setup-mc-contact-information', link_id: 'contact-information-read-more', href: 'https://woocommerce.com/document/google-for-woocommerce/get-started/requirements/#contact-information' }`
- with `{ context: 'settings-no-phone-number-notice', link_id: 'contact-information-read-more', href: 'https://woocommerce.com/document/google-for-woocommerce/get-started/requirements/#contact-information' }`
@@ -335,7 +335,7 @@ When a documentation link is clicked.
- with `{ context: "reports-programs", link_id: "setting-up-currency", href: "https://support.google.com/google-ads/answer/9841530" }`
- [`EditPhoneNumber`](../../js/src/settings/edit-phone-number.js#L29) with `{ context: "settings-phone-number", link_id: "contact-information-read-more", href: "https://woocommerce.com/document/google-for-woocommerce/get-started/requirements/#contact-information" }`
- [`EditStoreAddress`](../../js/src/settings/edit-store-address.js#L41) with `{ context: "settings-store-address", link_id: "contact-information-read-more", href: "https://woocommerce.com/document/google-for-woocommerce/get-started/requirements/#contact-information" }`
-- [`Faqs`](../../js/src/get-started-page/faqs/index.js#L276)
+- [`Faqs`](../../js/src/get-started-page/faqs/index.js#L428)
- with `{ context: 'faqs', linkId: 'general-requirements', href: 'https://woocommerce.com/document/google-for-woocommerce/get-started/requirements/#general-requirements' }`.
- with `{ context: 'faqs', linkId: 'claiming-urls', href: 'https://support.google.com/merchants/answer/7527436' }`.
- with `{ context: 'faqs', linkId: 'google-merchant-center-requirements', href: 'https://woocommerce.com/document/google-for-woocommerce/get-started/requirements/#google-merchant-center-requirements' }`.
@@ -347,14 +347,14 @@ When a documentation link is clicked.
- [`FaqsSection`](../../js/src/components/paid-ads/asset-group/faqs-section.js#L73) with `{ context: 'assets-faq', linkId: 'assets-faq-about-ad-formats-available-in-different-campaign-types', href: 'https://support.google.com/google-ads/answer/1722124' }`.
- [`FreeAdCredit`](../../js/src/setup-ads/ads-stepper/setup-accounts/free-ad-credit/index.js#L27) with `{ context: 'setup-ads', link_id: 'free-ad-credit-terms', href: 'https://www.google.com/ads/coupons/terms/' }`
- [`GetStartedCard`](../../js/src/get-started-page/get-started-card/index.js#L23) with `{ context: 'get-started', linkId: 'wp-terms-of-service', href: 'https://wordpress.com/tos/' }`.
-- [`GetStartedWithVideoCard`](../../js/src/get-started-page/get-started-with-video-card/index.js#L23) with `{ context: 'get-started-with-video', linkId: 'wp-terms-of-service', href: 'https://wordpress.com/tos/' }`.
+- [`GetStartedWithHeroCard`](../../js/src/get-started-page/get-started-with-hero-card/index.js#L23) with `{ context: 'get-started-with-hero', linkId: 'wp-terms-of-service', href: 'https://wordpress.com/tos/' }`.
- [`GoogleMCDisclaimer`](../../js/src/setup-mc/setup-stepper/setup-accounts/index.js#L36)
- with `{ context: 'setup-mc-accounts', link_id: 'comparison-shopping-services', href: 'https://support.google.com/merchants/topic/9080307' }`
- with `{ context: 'setup-mc-accounts', link_id: 'comparison-shopping-partners-find-a-partner', href: 'https://comparisonshoppingpartners.withgoogle.com/find_a_partner/' }`
- [`IssuesTableDataModal`](../../js/src/product-feed/issues-table-card/issues-table-data-modal.js#L21) with { context: 'issues-data-table-modal' }
- [`ProductStatusHelpPopover`](../../js/src/product-feed/product-statistics/product-status-help-popover/index.js#L16) with `{ context: 'product-feed', link_id: 'product-sync-statuses', href: 'https://support.google.com/merchants/answer/160491' }`
- [`ReclaimUrlCard`](../../js/src/components/google-mc-account-card/reclaim-url-card/index.js#L41) with `{ context: 'setup-mc', link_id: 'claim-url', href: 'https://support.google.com/merchants/answer/176793' }`
-- [`RequestFullAccessGoogleAccountCard`](../../js/src/components/google-account-card/request-full-access-google-account-card.js#L26) with `{ context: 'setup-mc-accounts', link_id: 'required-google-permissions', href: 'https://woocommerce.com/document/google-for-woocommerce/get-started/requirements/#general-requirements' }`
+- [`RequestFullAccessGoogleAccountCard`](../../js/src/components/google-account-card/request-full-access-google-account-card.js#L26) with `{ context: 'setup-mc-accounts', link_id: 'required-google-permissions', href: 'https://woocommerce.com/document/google-for-woocommerce/get-started/setup-and-configuration/#required-google-permissions' }`
- [`ShippingRateSection`](../../js/src/components/shipping-rate-section/shipping-rate-section.js#L23)
- with `{ context: 'setup-mc-shipping', link_id: 'shipping-read-more', href: 'https://support.google.com/merchants/answer/7050921' }`
- with `{ context: 'setup-mc-shipping', link_id: 'shipping-manual', href: 'https://www.google.com/retail/solutions/merchant-center/' }`
@@ -429,7 +429,7 @@ Clicking on faq item to collapse or expand it.
`action` | `string` | (`expand`\|`collapse`)
`context` | `string` | Indicates which page / module the FAQ is in
#### Emitters
-- [`Faqs`](../../js/src/get-started-page/faqs/index.js#L276)
+- [`Faqs`](../../js/src/get-started-page/faqs/index.js#L428)
- with `{ context: 'get-started', id: 'what-do-i-need-to-get-started', action: 'expand' }`.
- with `{ context: 'get-started', id: 'what-do-i-need-to-get-started', action: 'collapse' }`.
- with `{ context: 'get-started', id: 'what-if-i-already-have-free-listings', action: 'expand' }`.
@@ -773,7 +773,7 @@ Setup Merchant Center
`context` | `string \| undefined` | Indicates which CTA is clicked
#### Emitters
- [`GetStartedCard`](../../js/src/get-started-page/get-started-card/index.js#L23) with `{ triggered_by: 'start-onboarding-button', action: 'go-to-onboarding', context: 'get-started' }`.
-- [`GetStartedWithVideoCard`](../../js/src/get-started-page/get-started-with-video-card/index.js#L23) with `{ triggered_by: 'start-onboarding-button', action: 'go-to-onboarding', context: 'get-started-with-video' }`.
+- [`GetStartedWithHeroCard`](../../js/src/get-started-page/get-started-with-hero-card/index.js#L23) with `{ triggered_by: 'start-onboarding-button', action: 'go-to-onboarding', context: 'get-started-with-hero' }`.
- [`SavedSetupStepper`](../../js/src/setup-mc/setup-stepper/saved-setup-stepper.js#L39)
- with `{ triggered_by: 'step1-continue-button' | 'step2-continue-button', 'step3-continue-button', action: 'go-to-step2' | 'go-to-step3' | 'go-to-step4' }`.
- with `{ triggered_by: 'stepper-step1-button' | 'stepper-step2-button' | 'stepper-step3-button', action: 'go-to-step1' | 'go-to-step2' | 'go-to-step3' }`.
diff --git a/tests/Framework/RESTControllerUnitTest.php b/tests/Framework/RESTControllerUnitTest.php
index e2f83b2907..775a43f301 100644
--- a/tests/Framework/RESTControllerUnitTest.php
+++ b/tests/Framework/RESTControllerUnitTest.php
@@ -76,10 +76,11 @@ public function tearDown(): void {
* @param string $endpoint Endpoint to hit.
* @param string $type Type of request e.g GET or POST.
* @param array $params Request body or query.
+ * @param array $headers Request headers in format key => value.
*
* @return Response
*/
- protected function do_request( string $endpoint, string $type = 'GET', array $params = [] ): object {
+ protected function do_request( string $endpoint, string $type = 'GET', array $params = [], array $headers = [] ): object {
$request = new Request( $type, $endpoint );
if ( 'GET' === $type ) {
@@ -90,6 +91,10 @@ protected function do_request( string $endpoint, string $type = 'GET', array $pa
$request->set_body( wp_json_encode( $params ) );
}
+ foreach ( $headers as $key => $value ) {
+ $request->set_header( $key, $value );
+ }
+
return $this->server->dispatch_request( $request );
}
}
diff --git a/tests/Unit/API/Site/Controllers/Ads/CampaignControllerTest.php b/tests/Unit/API/Site/Controllers/Ads/CampaignControllerTest.php
index de1d5c01ec..5491201228 100644
--- a/tests/Unit/API/Site/Controllers/Ads/CampaignControllerTest.php
+++ b/tests/Unit/API/Site/Controllers/Ads/CampaignControllerTest.php
@@ -300,6 +300,7 @@ public function test_create_campaign() {
'name' => 'New Campaign',
'amount' => 20,
'targeted_locations' => [ 'US', 'GB', 'TW' ],
+ 'label' => 'wc-web',
];
$expected = [
@@ -307,7 +308,48 @@ public function test_create_campaign() {
'status' => 'enabled',
'type' => 'performance_max',
'country' => self::BASE_COUNTRY,
- ] + $campaign_data;
+ ] + array_diff_key( $campaign_data, [ 'label' => 'wc-web' ] );
+
+ $this->ads_campaign->expects( $this->once() )
+ ->method( 'create_campaign' )
+ ->with( $campaign_data )
+ ->willReturn( $expected );
+
+ $this->expect_track_event(
+ 'created_campaign',
+ [
+ 'id' => self::TEST_CAMPAIGN_ID,
+ 'status' => 'enabled',
+ 'name' => 'New Campaign',
+ 'amount' => 20,
+ 'country' => self::BASE_COUNTRY,
+ 'targeted_locations' => 'US,GB,TW',
+ 'source' => 'wc-web',
+ ]
+ );
+
+ $response = $this->do_request( self::ROUTE_CAMPAIGNS, 'POST', $campaign_data );
+
+ $this->assertEquals( $expected, $response->get_data() );
+ $this->assertEquals( 200, $response->get_status() );
+ }
+
+ public function test_create_campaign_with_label() {
+ $campaign_data = [
+ 'name' => 'New Campaign',
+ 'amount' => 20,
+ 'targeted_locations' => [ 'US', 'GB', 'TW' ],
+ ];
+
+ $expected = [
+ 'id' => self::TEST_CAMPAIGN_ID,
+ 'status' => 'enabled',
+ 'type' => 'performance_max',
+ 'country' => self::BASE_COUNTRY,
+ 'name' => 'New Campaign',
+ 'amount' => 20,
+ 'targeted_locations' => [ 'US', 'GB', 'TW' ],
+ ];
$this->ads_campaign->expects( $this->once() )
->method( 'create_campaign' )
@@ -323,6 +365,7 @@ public function test_create_campaign() {
'amount' => 20,
'country' => self::BASE_COUNTRY,
'targeted_locations' => 'US,GB,TW',
+ 'source' => '',
]
);
diff --git a/tests/Unit/API/Site/Controllers/RestAPI/AuthControllerTest.php b/tests/Unit/API/Site/Controllers/RestAPI/AuthControllerTest.php
index 849d13921e..2c134ccc2a 100644
--- a/tests/Unit/API/Site/Controllers/RestAPI/AuthControllerTest.php
+++ b/tests/Unit/API/Site/Controllers/RestAPI/AuthControllerTest.php
@@ -126,4 +126,27 @@ public function test_update_authorize_wrong_status_param() {
$this->assertEquals( 'Invalid parameter(s): status', $response->get_data()['message'] );
$this->assertEquals( 400, $response->get_status() );
}
+
+ public function test_revoke_wpcom_token() {
+ $this->oauth_service->expects( $this->once() )->method( 'revoke_wpcom_api_auth' );
+
+ $response = $this->do_request(
+ self::ROUTE_AUTHORIZE,
+ 'DELETE'
+ );
+
+ $this->assertEquals( 200, $response->get_status() );
+ }
+
+ public function test_revoke_wpcom_token_with_error() {
+ $this->oauth_service->expects( $this->once() )->method( 'revoke_wpcom_api_auth' )->willThrowException( new Exception( 'No token found', 400 ) );
+
+ $response = $this->do_request(
+ self::ROUTE_AUTHORIZE,
+ 'DELETE'
+ );
+
+ $this->assertEquals( [ 'message' => 'No token found' ], $response->get_data() );
+ $this->assertEquals( 400, $response->get_status() );
+ }
}
diff --git a/tests/Unit/Admin/Input/InputCollectionTest.php b/tests/Unit/Admin/Input/InputCollectionTest.php
index 5184fbaa5e..3fd05c38ef 100644
--- a/tests/Unit/Admin/Input/InputCollectionTest.php
+++ b/tests/Unit/Admin/Input/InputCollectionTest.php
@@ -108,7 +108,12 @@ public function test_integer() {
$this->assertEquals( 'integer', $input->get_type() );
$this->assertEquals( 'woocommerce/product-text-field', $input->get_block_name() );
- $this->assertEquals( [ 'value' => 'number' ], $input->get_block_attributes()['type'] );
+ $this->assertEquals(
+ [
+ 'value' => '0|[1-9]\d*',
+ ],
+ $input->get_block_attributes()['pattern']
+ );
}
public function test_select() {
diff --git a/tests/Unit/Admin/Product/Attributes/Input/AttributeInputCollectionTest.php b/tests/Unit/Admin/Product/Attributes/Input/AttributeInputCollectionTest.php
index 5176dc8c96..db09281024 100644
--- a/tests/Unit/Admin/Product/Attributes/Input/AttributeInputCollectionTest.php
+++ b/tests/Unit/Admin/Product/Attributes/Input/AttributeInputCollectionTest.php
@@ -485,7 +485,9 @@ public function test_multipack_input() {
'property' => 'meta_data._wc_gla_multipack',
'label' => 'Multipack',
'tooltip' => 'The number of identical products in a multipack. Use this attribute to indicate that you\'ve grouped multiple identical products for sale as one item.',
- 'type' => [ 'value' => 'number' ],
+ 'pattern' => [
+ 'value' => '0|[1-9]\d*',
+ ],
'min' => [ 'value' => 0 ],
],
],
diff --git a/tests/e2e/specs/get-started.test.js b/tests/e2e/specs/get-started.test.js
index 02a164ed78..1720cb6bbe 100644
--- a/tests/e2e/specs/get-started.test.js
+++ b/tests/e2e/specs/get-started.test.js
@@ -32,7 +32,7 @@ test( 'Merchant who is getting started clicks on the Marketing > GLA link, click
await expect( page ).toHaveTitle( /Google for WooCommerce/ );
// click on the call-to-action button.
- await page.getByText( 'Start listing products →' ).first().click();
+ await page.getByText( 'Sell more on Google →' ).first().click();
await page.waitForLoadState( LOAD_STATE.DOM_CONTENT_LOADED );
// Check we are in the Setup MC page.
diff --git a/tests/e2e/specs/product-editor/block-integration.test.js b/tests/e2e/specs/product-editor/block-integration.test.js
index a2191dc166..f42854899f 100644
--- a/tests/e2e/specs/product-editor/block-integration.test.js
+++ b/tests/e2e/specs/product-editor/block-integration.test.js
@@ -93,23 +93,18 @@ test.describe( 'Product Block Editor integration', () => {
await expect( panel.getByRole( 'combobox' ) ).toHaveCount( 9 );
/*
- * 8 :
+ * 9 :
* - GTIN
* - MPN
* - Size
* - Color
* - Material
* - Pattern
+ * - Multipack
* - Availability date
* - Availability time
*/
- await expect( panel.getByRole( 'textbox' ) ).toHaveCount( 8 );
-
- /*
- * 1 :
- * - Multipack
- */
- await expect( panel.getByRole( 'spinbutton' ) ).toHaveCount( 1 );
+ await expect( panel.getByRole( 'textbox' ) ).toHaveCount( 9 );
/*
* 16 pairs of