Changeset 3253534
- Timestamp:
- 03/10/2025 06:43:22 PM (9 months ago)
- Location:
- google-site-kit
- Files:
-
- 130 added
- 94 deleted
- 48 edited
- 1 copied
-
tags/1.148.0 (copied) (copied from google-site-kit/trunk)
-
tags/1.148.0/dist/assets/css/googlesitekit-admin-css-0ed888e9f46eb775c4a9.min.css (deleted)
-
tags/1.148.0/dist/assets/css/googlesitekit-admin-css-e86016510d7baa4a7353.min.css (added)
-
tags/1.148.0/dist/assets/js/33-7a74bc9e2a0843dd7dd2.js (deleted)
-
tags/1.148.0/dist/assets/js/33-abc1ae5d2b28ff55e3a5.js (added)
-
tags/1.148.0/dist/assets/js/34-1494ac14821b304439dc.js (added)
-
tags/1.148.0/dist/assets/js/34-c6ddd0bdfd06c135c502.js (deleted)
-
tags/1.148.0/dist/assets/js/35-cb9f60cef2d255f9c0a5.js (deleted)
-
tags/1.148.0/dist/assets/js/35-f4c6f9d210ba5bba38df.js (added)
-
tags/1.148.0/dist/assets/js/36-3424ad40de0cd702c19b.js (added)
-
tags/1.148.0/dist/assets/js/36-422c63c503b5f8c8c966.js (deleted)
-
tags/1.148.0/dist/assets/js/37-3a5b0e412fcd8462e42d.js (deleted)
-
tags/1.148.0/dist/assets/js/37-b2b587c9a0d9f3f19ed7.js (added)
-
tags/1.148.0/dist/assets/js/38-3a9578b5c914e5bfe4b1.js (deleted)
-
tags/1.148.0/dist/assets/js/38-d2e8edc0266738acac8f.js (added)
-
tags/1.148.0/dist/assets/js/39-1fdf5824200c4eb21c7c.js (added)
-
tags/1.148.0/dist/assets/js/39-42fc278386bc5cab829c.js (deleted)
-
tags/1.148.0/dist/assets/js/40-5079486df489eb621511.js (deleted)
-
tags/1.148.0/dist/assets/js/40-f1a98e6a0639637772fc.js (added)
-
tags/1.148.0/dist/assets/js/41-ecfb349943ce99a55a02.js (added)
-
tags/1.148.0/dist/assets/js/41-fdc59437b26b12785efb.js (deleted)
-
tags/1.148.0/dist/assets/js/42-29d60ff73c6eb5de8c9e.js (deleted)
-
tags/1.148.0/dist/assets/js/42-5b9a44b1bed5dadd748c.js (added)
-
tags/1.148.0/dist/assets/js/43-085c9513046075983032.js (added)
-
tags/1.148.0/dist/assets/js/43-bd0a9a5f1951e20e70fb.js (deleted)
-
tags/1.148.0/dist/assets/js/blocks/googlesitekit-reader-revenue-manager-block-editor.js (deleted)
-
tags/1.148.0/dist/assets/js/blocks/reader-revenue-manager (added)
-
tags/1.148.0/dist/assets/js/blocks/reader-revenue-manager/block-editor-plugin (added)
-
tags/1.148.0/dist/assets/js/blocks/reader-revenue-manager/block-editor-plugin/editor-styles.css (added)
-
tags/1.148.0/dist/assets/js/blocks/reader-revenue-manager/block-editor-plugin/editor-styles.js (added)
-
tags/1.148.0/dist/assets/js/blocks/reader-revenue-manager/block-editor-plugin/index.js (added)
-
tags/1.148.0/dist/assets/js/blocks/reader-revenue-manager/common (added)
-
tags/1.148.0/dist/assets/js/blocks/reader-revenue-manager/common/editor-styles.css (added)
-
tags/1.148.0/dist/assets/js/blocks/reader-revenue-manager/common/editor-styles.js (added)
-
tags/1.148.0/dist/assets/js/blocks/reader-revenue-manager/contribute-with-google (added)
-
tags/1.148.0/dist/assets/js/blocks/reader-revenue-manager/contribute-with-google/block.json (added)
-
tags/1.148.0/dist/assets/js/blocks/reader-revenue-manager/contribute-with-google/index.js (added)
-
tags/1.148.0/dist/assets/js/blocks/reader-revenue-manager/subscribe-with-google (added)
-
tags/1.148.0/dist/assets/js/blocks/reader-revenue-manager/subscribe-with-google/block.json (added)
-
tags/1.148.0/dist/assets/js/blocks/reader-revenue-manager/subscribe-with-google/index.js (added)
-
tags/1.148.0/dist/assets/js/blocks/sign-in-with-google/block.json (modified) (1 diff)
-
tags/1.148.0/dist/assets/js/blocks/sign-in-with-google/editor-styles.js (modified) (1 diff)
-
tags/1.148.0/dist/assets/js/blocks/sign-in-with-google/index.js (modified) (1 diff)
-
tags/1.148.0/dist/assets/js/googlesitekit-activation-08970804363d3f89f12e.js (deleted)
-
tags/1.148.0/dist/assets/js/googlesitekit-activation-ef136fa2d705890f91b3.js (added)
-
tags/1.148.0/dist/assets/js/googlesitekit-ad-blocking-recovery-7c1bee68a11e1537fba9.js (deleted)
-
tags/1.148.0/dist/assets/js/googlesitekit-ad-blocking-recovery-ea1f8cdd3eebac89f55c.js (added)
-
tags/1.148.0/dist/assets/js/googlesitekit-adminbar-494060be019092a480bf.js (deleted)
-
tags/1.148.0/dist/assets/js/googlesitekit-adminbar-8186a58dffbe9861983a.js (added)
-
tags/1.148.0/dist/assets/js/googlesitekit-api-2766e9472b9ab9216ca1.js (deleted)
-
tags/1.148.0/dist/assets/js/googlesitekit-api-bcc1c62e15d079907a56.js (added)
-
tags/1.148.0/dist/assets/js/googlesitekit-components-gm2-8bf8544d07a6da530f8f.js (added)
-
tags/1.148.0/dist/assets/js/googlesitekit-components-gm2-8ef0fd892597f5776726.js (deleted)
-
tags/1.148.0/dist/assets/js/googlesitekit-components-gm3-3d043a9ad4684e207690.js (added)
-
tags/1.148.0/dist/assets/js/googlesitekit-components-gm3-96f619a4dfa6a62e80b0.js (deleted)
-
tags/1.148.0/dist/assets/js/googlesitekit-data-10660ec4fa4de9e5a0ad.js (added)
-
tags/1.148.0/dist/assets/js/googlesitekit-data-b9cd43cf5269111852ae.js (deleted)
-
tags/1.148.0/dist/assets/js/googlesitekit-datastore-forms-58356fd14af30247220b.js (added)
-
tags/1.148.0/dist/assets/js/googlesitekit-datastore-forms-fda104b042221bd85889.js (deleted)
-
tags/1.148.0/dist/assets/js/googlesitekit-datastore-location-d6cc723fb9213326c8df.js (added)
-
tags/1.148.0/dist/assets/js/googlesitekit-datastore-location-f342a662bcd23bad5197.js (deleted)
-
tags/1.148.0/dist/assets/js/googlesitekit-datastore-site-32262604b05a3f29ffbd.js (added)
-
tags/1.148.0/dist/assets/js/googlesitekit-datastore-site-6a6c78749feb8856beac.js (deleted)
-
tags/1.148.0/dist/assets/js/googlesitekit-datastore-ui-2a4a47d4c0cd789f71e9.js (added)
-
tags/1.148.0/dist/assets/js/googlesitekit-datastore-ui-abfcc74f97bbff8b2eac.js (deleted)
-
tags/1.148.0/dist/assets/js/googlesitekit-datastore-user-3378174b7e259484c79a.js (deleted)
-
tags/1.148.0/dist/assets/js/googlesitekit-datastore-user-3cd7c04a250e40fbee46.js (added)
-
tags/1.148.0/dist/assets/js/googlesitekit-entity-dashboard-12ac51781ea2a575d5d6.js (deleted)
-
tags/1.148.0/dist/assets/js/googlesitekit-entity-dashboard-594bf471eb193b4f1a94.js (added)
-
tags/1.148.0/dist/assets/js/googlesitekit-main-dashboard-be615811bedf8348b6b3.js (added)
-
tags/1.148.0/dist/assets/js/googlesitekit-main-dashboard-d2235f7e737fa3cc6542.js (deleted)
-
tags/1.148.0/dist/assets/js/googlesitekit-metric-selection-4e96dd3bd15106d6f9b1.js (deleted)
-
tags/1.148.0/dist/assets/js/googlesitekit-metric-selection-8a40812867bda4ccc557.js (added)
-
tags/1.148.0/dist/assets/js/googlesitekit-modules-271a2bc6321bc5512177.js (deleted)
-
tags/1.148.0/dist/assets/js/googlesitekit-modules-ads-5c3840d282a55fec7b91.js (deleted)
-
tags/1.148.0/dist/assets/js/googlesitekit-modules-ads-dbd862ea5480cfe6c092.js (added)
-
tags/1.148.0/dist/assets/js/googlesitekit-modules-adsense-8dae88c7b504d6eeffbd.js (deleted)
-
tags/1.148.0/dist/assets/js/googlesitekit-modules-adsense-aac303a1bfa905c4953e.js (added)
-
tags/1.148.0/dist/assets/js/googlesitekit-modules-analytics-4-03ff53d67f0730fef532.js (deleted)
-
tags/1.148.0/dist/assets/js/googlesitekit-modules-analytics-4-4107886672cca10485da.js (added)
-
tags/1.148.0/dist/assets/js/googlesitekit-modules-f29528994921322c9c2d.js (added)
-
tags/1.148.0/dist/assets/js/googlesitekit-modules-pagespeed-insights-c03a4bc015c93be68ba2.js (deleted)
-
tags/1.148.0/dist/assets/js/googlesitekit-modules-pagespeed-insights-fa61f9f00c3cb3a11b48.js (added)
-
tags/1.148.0/dist/assets/js/googlesitekit-modules-reader-revenue-manager-28ec1502574278161523.js (added)
-
tags/1.148.0/dist/assets/js/googlesitekit-modules-reader-revenue-manager-f64ae5a06452a7c70545.js (deleted)
-
tags/1.148.0/dist/assets/js/googlesitekit-modules-search-console-76205470debaed0c391f.js (deleted)
-
tags/1.148.0/dist/assets/js/googlesitekit-modules-search-console-c5ee61ebe5c4758697f7.js (added)
-
tags/1.148.0/dist/assets/js/googlesitekit-modules-sign-in-with-google-72ac70043d96dfcec075.js (deleted)
-
tags/1.148.0/dist/assets/js/googlesitekit-modules-sign-in-with-google-ff4cc66e0355cefa5b59.js (added)
-
tags/1.148.0/dist/assets/js/googlesitekit-modules-tagmanager-3dd7cdfe4eab5a246d90.js (deleted)
-
tags/1.148.0/dist/assets/js/googlesitekit-modules-tagmanager-6e0cd98eb5fa67a088fd.js (added)
-
tags/1.148.0/dist/assets/js/googlesitekit-notifications-05633f57dd25402f9646.js (deleted)
-
tags/1.148.0/dist/assets/js/googlesitekit-notifications-68b6123744fc1447c597.js (added)
-
tags/1.148.0/dist/assets/js/googlesitekit-polyfills-b90168a70cb376a88ee6.js (deleted)
-
tags/1.148.0/dist/assets/js/googlesitekit-polyfills-f5a1154bf6114abcdbae.js (added)
-
tags/1.148.0/dist/assets/js/googlesitekit-settings-1e24b6995d523f1fa3d1.js (deleted)
-
tags/1.148.0/dist/assets/js/googlesitekit-settings-f38fb475207deb40d30a.js (added)
-
tags/1.148.0/dist/assets/js/googlesitekit-splash-8149844e0600ee696450.js (added)
-
tags/1.148.0/dist/assets/js/googlesitekit-splash-b273b7be927790dc2c4e.js (deleted)
-
tags/1.148.0/dist/assets/js/googlesitekit-user-input-32ce19372c4a80d3525c.js (added)
-
tags/1.148.0/dist/assets/js/googlesitekit-user-input-818d71397d6d1f15d951.js (deleted)
-
tags/1.148.0/dist/assets/js/googlesitekit-vendor-5aa94214da516df44edd.js (added)
-
tags/1.148.0/dist/assets/js/googlesitekit-vendor-68e1c45ab88797e2725b.js (deleted)
-
tags/1.148.0/dist/assets/js/googlesitekit-widgets-66b135342a210db1628b.js (added)
-
tags/1.148.0/dist/assets/js/googlesitekit-widgets-79a0290d39373d503c60.js (deleted)
-
tags/1.148.0/dist/assets/js/googlesitekit-wp-dashboard-26aef10466d76e72e042.js (added)
-
tags/1.148.0/dist/assets/js/googlesitekit-wp-dashboard-4e8db01e6c2bad945b9c.js (deleted)
-
tags/1.148.0/dist/assets/js/runtime-89f677636011f47c68b1.js (deleted)
-
tags/1.148.0/dist/assets/js/runtime-fb338303cadc59781996.js (added)
-
tags/1.148.0/dist/config.php (modified) (1 diff)
-
tags/1.148.0/dist/manifest.php (modified) (1 diff)
-
tags/1.148.0/google-site-kit.php (modified) (2 diffs)
-
tags/1.148.0/includes/Core/Assets/Assets.php (modified) (1 diff)
-
tags/1.148.0/includes/Core/Consent_Mode/REST_Consent_Mode_Controller.php (modified) (3 diffs)
-
tags/1.148.0/includes/Core/Conversion_Tracking/Conversion_Event_Providers/WooCommerce.php (modified) (1 diff)
-
tags/1.148.0/includes/Core/Dismissals/REST_Dismissals_Controller.php (modified) (2 diffs)
-
tags/1.148.0/includes/Core/Modules/Modules.php (modified) (2 diffs)
-
tags/1.148.0/includes/Core/Util/Block_Support.php (added)
-
tags/1.148.0/includes/Core/Util/Plugin_Status.php (added)
-
tags/1.148.0/includes/Modules/Ads.php (modified) (6 diffs)
-
tags/1.148.0/includes/Modules/Analytics_4.php (modified) (7 diffs)
-
tags/1.148.0/includes/Modules/Analytics_4/Audience_Settings.php (added)
-
tags/1.148.0/includes/Modules/Analytics_4/Conversion_Reporting/Conversion_Reporting_Events_Sync.php (modified) (1 diff)
-
tags/1.148.0/includes/Modules/Analytics_4/Conversion_Reporting/Conversion_Reporting_New_Badge_Events_Sync.php (modified) (2 diffs)
-
tags/1.148.0/includes/Modules/Reader_Revenue_Manager.php (modified) (8 diffs)
-
tags/1.148.0/includes/Modules/Reader_Revenue_Manager/Admin_Post_List.php (added)
-
tags/1.148.0/includes/Modules/Reader_Revenue_Manager/Contribute_With_Google_Block.php (added)
-
tags/1.148.0/includes/Modules/Reader_Revenue_Manager/Post_Product_ID.php (modified) (4 diffs)
-
tags/1.148.0/includes/Modules/Reader_Revenue_Manager/Settings.php (modified) (1 diff)
-
tags/1.148.0/includes/Modules/Reader_Revenue_Manager/Subscribe_With_Google_Block.php (added)
-
tags/1.148.0/includes/Modules/Reader_Revenue_Manager/Tag_Guard.php (modified) (3 diffs)
-
tags/1.148.0/includes/Modules/Reader_Revenue_Manager/Term_Product_ID.php (deleted)
-
tags/1.148.0/includes/Modules/Reader_Revenue_Manager/Web_Tag.php (modified) (3 diffs)
-
tags/1.148.0/includes/Modules/Sign_In_With_Google.php (modified) (9 diffs)
-
tags/1.148.0/includes/Modules/Sign_In_With_Google/Sign_In_With_Google_Block.php (modified) (2 diffs)
-
tags/1.148.0/includes/vendor/composer/autoload_classmap.php (modified) (4 diffs)
-
tags/1.148.0/readme.txt (modified) (2 diffs)
-
trunk/dist/assets/css/googlesitekit-admin-css-0ed888e9f46eb775c4a9.min.css (deleted)
-
trunk/dist/assets/css/googlesitekit-admin-css-e86016510d7baa4a7353.min.css (added)
-
trunk/dist/assets/js/33-7a74bc9e2a0843dd7dd2.js (deleted)
-
trunk/dist/assets/js/33-abc1ae5d2b28ff55e3a5.js (added)
-
trunk/dist/assets/js/34-1494ac14821b304439dc.js (added)
-
trunk/dist/assets/js/34-c6ddd0bdfd06c135c502.js (deleted)
-
trunk/dist/assets/js/35-cb9f60cef2d255f9c0a5.js (deleted)
-
trunk/dist/assets/js/35-f4c6f9d210ba5bba38df.js (added)
-
trunk/dist/assets/js/36-3424ad40de0cd702c19b.js (added)
-
trunk/dist/assets/js/36-422c63c503b5f8c8c966.js (deleted)
-
trunk/dist/assets/js/37-3a5b0e412fcd8462e42d.js (deleted)
-
trunk/dist/assets/js/37-b2b587c9a0d9f3f19ed7.js (added)
-
trunk/dist/assets/js/38-3a9578b5c914e5bfe4b1.js (deleted)
-
trunk/dist/assets/js/38-d2e8edc0266738acac8f.js (added)
-
trunk/dist/assets/js/39-1fdf5824200c4eb21c7c.js (added)
-
trunk/dist/assets/js/39-42fc278386bc5cab829c.js (deleted)
-
trunk/dist/assets/js/40-5079486df489eb621511.js (deleted)
-
trunk/dist/assets/js/40-f1a98e6a0639637772fc.js (added)
-
trunk/dist/assets/js/41-ecfb349943ce99a55a02.js (added)
-
trunk/dist/assets/js/41-fdc59437b26b12785efb.js (deleted)
-
trunk/dist/assets/js/42-29d60ff73c6eb5de8c9e.js (deleted)
-
trunk/dist/assets/js/42-5b9a44b1bed5dadd748c.js (added)
-
trunk/dist/assets/js/43-085c9513046075983032.js (added)
-
trunk/dist/assets/js/43-bd0a9a5f1951e20e70fb.js (deleted)
-
trunk/dist/assets/js/blocks/googlesitekit-reader-revenue-manager-block-editor.js (deleted)
-
trunk/dist/assets/js/blocks/reader-revenue-manager (added)
-
trunk/dist/assets/js/blocks/reader-revenue-manager/block-editor-plugin (added)
-
trunk/dist/assets/js/blocks/reader-revenue-manager/block-editor-plugin/editor-styles.css (added)
-
trunk/dist/assets/js/blocks/reader-revenue-manager/block-editor-plugin/editor-styles.js (added)
-
trunk/dist/assets/js/blocks/reader-revenue-manager/block-editor-plugin/index.js (added)
-
trunk/dist/assets/js/blocks/reader-revenue-manager/common (added)
-
trunk/dist/assets/js/blocks/reader-revenue-manager/common/editor-styles.css (added)
-
trunk/dist/assets/js/blocks/reader-revenue-manager/common/editor-styles.js (added)
-
trunk/dist/assets/js/blocks/reader-revenue-manager/contribute-with-google (added)
-
trunk/dist/assets/js/blocks/reader-revenue-manager/contribute-with-google/block.json (added)
-
trunk/dist/assets/js/blocks/reader-revenue-manager/contribute-with-google/index.js (added)
-
trunk/dist/assets/js/blocks/reader-revenue-manager/subscribe-with-google (added)
-
trunk/dist/assets/js/blocks/reader-revenue-manager/subscribe-with-google/block.json (added)
-
trunk/dist/assets/js/blocks/reader-revenue-manager/subscribe-with-google/index.js (added)
-
trunk/dist/assets/js/blocks/sign-in-with-google/block.json (modified) (1 diff)
-
trunk/dist/assets/js/blocks/sign-in-with-google/editor-styles.js (modified) (1 diff)
-
trunk/dist/assets/js/blocks/sign-in-with-google/index.js (modified) (1 diff)
-
trunk/dist/assets/js/googlesitekit-activation-08970804363d3f89f12e.js (deleted)
-
trunk/dist/assets/js/googlesitekit-activation-ef136fa2d705890f91b3.js (added)
-
trunk/dist/assets/js/googlesitekit-ad-blocking-recovery-7c1bee68a11e1537fba9.js (deleted)
-
trunk/dist/assets/js/googlesitekit-ad-blocking-recovery-ea1f8cdd3eebac89f55c.js (added)
-
trunk/dist/assets/js/googlesitekit-adminbar-494060be019092a480bf.js (deleted)
-
trunk/dist/assets/js/googlesitekit-adminbar-8186a58dffbe9861983a.js (added)
-
trunk/dist/assets/js/googlesitekit-api-2766e9472b9ab9216ca1.js (deleted)
-
trunk/dist/assets/js/googlesitekit-api-bcc1c62e15d079907a56.js (added)
-
trunk/dist/assets/js/googlesitekit-components-gm2-8bf8544d07a6da530f8f.js (added)
-
trunk/dist/assets/js/googlesitekit-components-gm2-8ef0fd892597f5776726.js (deleted)
-
trunk/dist/assets/js/googlesitekit-components-gm3-3d043a9ad4684e207690.js (added)
-
trunk/dist/assets/js/googlesitekit-components-gm3-96f619a4dfa6a62e80b0.js (deleted)
-
trunk/dist/assets/js/googlesitekit-data-10660ec4fa4de9e5a0ad.js (added)
-
trunk/dist/assets/js/googlesitekit-data-b9cd43cf5269111852ae.js (deleted)
-
trunk/dist/assets/js/googlesitekit-datastore-forms-58356fd14af30247220b.js (added)
-
trunk/dist/assets/js/googlesitekit-datastore-forms-fda104b042221bd85889.js (deleted)
-
trunk/dist/assets/js/googlesitekit-datastore-location-d6cc723fb9213326c8df.js (added)
-
trunk/dist/assets/js/googlesitekit-datastore-location-f342a662bcd23bad5197.js (deleted)
-
trunk/dist/assets/js/googlesitekit-datastore-site-32262604b05a3f29ffbd.js (added)
-
trunk/dist/assets/js/googlesitekit-datastore-site-6a6c78749feb8856beac.js (deleted)
-
trunk/dist/assets/js/googlesitekit-datastore-ui-2a4a47d4c0cd789f71e9.js (added)
-
trunk/dist/assets/js/googlesitekit-datastore-ui-abfcc74f97bbff8b2eac.js (deleted)
-
trunk/dist/assets/js/googlesitekit-datastore-user-3378174b7e259484c79a.js (deleted)
-
trunk/dist/assets/js/googlesitekit-datastore-user-3cd7c04a250e40fbee46.js (added)
-
trunk/dist/assets/js/googlesitekit-entity-dashboard-12ac51781ea2a575d5d6.js (deleted)
-
trunk/dist/assets/js/googlesitekit-entity-dashboard-594bf471eb193b4f1a94.js (added)
-
trunk/dist/assets/js/googlesitekit-main-dashboard-be615811bedf8348b6b3.js (added)
-
trunk/dist/assets/js/googlesitekit-main-dashboard-d2235f7e737fa3cc6542.js (deleted)
-
trunk/dist/assets/js/googlesitekit-metric-selection-4e96dd3bd15106d6f9b1.js (deleted)
-
trunk/dist/assets/js/googlesitekit-metric-selection-8a40812867bda4ccc557.js (added)
-
trunk/dist/assets/js/googlesitekit-modules-271a2bc6321bc5512177.js (deleted)
-
trunk/dist/assets/js/googlesitekit-modules-ads-5c3840d282a55fec7b91.js (deleted)
-
trunk/dist/assets/js/googlesitekit-modules-ads-dbd862ea5480cfe6c092.js (added)
-
trunk/dist/assets/js/googlesitekit-modules-adsense-8dae88c7b504d6eeffbd.js (deleted)
-
trunk/dist/assets/js/googlesitekit-modules-adsense-aac303a1bfa905c4953e.js (added)
-
trunk/dist/assets/js/googlesitekit-modules-analytics-4-03ff53d67f0730fef532.js (deleted)
-
trunk/dist/assets/js/googlesitekit-modules-analytics-4-4107886672cca10485da.js (added)
-
trunk/dist/assets/js/googlesitekit-modules-f29528994921322c9c2d.js (added)
-
trunk/dist/assets/js/googlesitekit-modules-pagespeed-insights-c03a4bc015c93be68ba2.js (deleted)
-
trunk/dist/assets/js/googlesitekit-modules-pagespeed-insights-fa61f9f00c3cb3a11b48.js (added)
-
trunk/dist/assets/js/googlesitekit-modules-reader-revenue-manager-28ec1502574278161523.js (added)
-
trunk/dist/assets/js/googlesitekit-modules-reader-revenue-manager-f64ae5a06452a7c70545.js (deleted)
-
trunk/dist/assets/js/googlesitekit-modules-search-console-76205470debaed0c391f.js (deleted)
-
trunk/dist/assets/js/googlesitekit-modules-search-console-c5ee61ebe5c4758697f7.js (added)
-
trunk/dist/assets/js/googlesitekit-modules-sign-in-with-google-72ac70043d96dfcec075.js (deleted)
-
trunk/dist/assets/js/googlesitekit-modules-sign-in-with-google-ff4cc66e0355cefa5b59.js (added)
-
trunk/dist/assets/js/googlesitekit-modules-tagmanager-3dd7cdfe4eab5a246d90.js (deleted)
-
trunk/dist/assets/js/googlesitekit-modules-tagmanager-6e0cd98eb5fa67a088fd.js (added)
-
trunk/dist/assets/js/googlesitekit-notifications-05633f57dd25402f9646.js (deleted)
-
trunk/dist/assets/js/googlesitekit-notifications-68b6123744fc1447c597.js (added)
-
trunk/dist/assets/js/googlesitekit-polyfills-b90168a70cb376a88ee6.js (deleted)
-
trunk/dist/assets/js/googlesitekit-polyfills-f5a1154bf6114abcdbae.js (added)
-
trunk/dist/assets/js/googlesitekit-settings-1e24b6995d523f1fa3d1.js (deleted)
-
trunk/dist/assets/js/googlesitekit-settings-f38fb475207deb40d30a.js (added)
-
trunk/dist/assets/js/googlesitekit-splash-8149844e0600ee696450.js (added)
-
trunk/dist/assets/js/googlesitekit-splash-b273b7be927790dc2c4e.js (deleted)
-
trunk/dist/assets/js/googlesitekit-user-input-32ce19372c4a80d3525c.js (added)
-
trunk/dist/assets/js/googlesitekit-user-input-818d71397d6d1f15d951.js (deleted)
-
trunk/dist/assets/js/googlesitekit-vendor-5aa94214da516df44edd.js (added)
-
trunk/dist/assets/js/googlesitekit-vendor-68e1c45ab88797e2725b.js (deleted)
-
trunk/dist/assets/js/googlesitekit-widgets-66b135342a210db1628b.js (added)
-
trunk/dist/assets/js/googlesitekit-widgets-79a0290d39373d503c60.js (deleted)
-
trunk/dist/assets/js/googlesitekit-wp-dashboard-26aef10466d76e72e042.js (added)
-
trunk/dist/assets/js/googlesitekit-wp-dashboard-4e8db01e6c2bad945b9c.js (deleted)
-
trunk/dist/assets/js/runtime-89f677636011f47c68b1.js (deleted)
-
trunk/dist/assets/js/runtime-fb338303cadc59781996.js (added)
-
trunk/dist/config.php (modified) (1 diff)
-
trunk/dist/manifest.php (modified) (1 diff)
-
trunk/google-site-kit.php (modified) (2 diffs)
-
trunk/includes/Core/Assets/Assets.php (modified) (1 diff)
-
trunk/includes/Core/Consent_Mode/REST_Consent_Mode_Controller.php (modified) (3 diffs)
-
trunk/includes/Core/Conversion_Tracking/Conversion_Event_Providers/WooCommerce.php (modified) (1 diff)
-
trunk/includes/Core/Dismissals/REST_Dismissals_Controller.php (modified) (2 diffs)
-
trunk/includes/Core/Modules/Modules.php (modified) (2 diffs)
-
trunk/includes/Core/Util/Block_Support.php (added)
-
trunk/includes/Core/Util/Plugin_Status.php (added)
-
trunk/includes/Modules/Ads.php (modified) (6 diffs)
-
trunk/includes/Modules/Analytics_4.php (modified) (7 diffs)
-
trunk/includes/Modules/Analytics_4/Audience_Settings.php (added)
-
trunk/includes/Modules/Analytics_4/Conversion_Reporting/Conversion_Reporting_Events_Sync.php (modified) (1 diff)
-
trunk/includes/Modules/Analytics_4/Conversion_Reporting/Conversion_Reporting_New_Badge_Events_Sync.php (modified) (2 diffs)
-
trunk/includes/Modules/Reader_Revenue_Manager.php (modified) (8 diffs)
-
trunk/includes/Modules/Reader_Revenue_Manager/Admin_Post_List.php (added)
-
trunk/includes/Modules/Reader_Revenue_Manager/Contribute_With_Google_Block.php (added)
-
trunk/includes/Modules/Reader_Revenue_Manager/Post_Product_ID.php (modified) (4 diffs)
-
trunk/includes/Modules/Reader_Revenue_Manager/Settings.php (modified) (1 diff)
-
trunk/includes/Modules/Reader_Revenue_Manager/Subscribe_With_Google_Block.php (added)
-
trunk/includes/Modules/Reader_Revenue_Manager/Tag_Guard.php (modified) (3 diffs)
-
trunk/includes/Modules/Reader_Revenue_Manager/Term_Product_ID.php (deleted)
-
trunk/includes/Modules/Reader_Revenue_Manager/Web_Tag.php (modified) (3 diffs)
-
trunk/includes/Modules/Sign_In_With_Google.php (modified) (9 diffs)
-
trunk/includes/Modules/Sign_In_With_Google/Sign_In_With_Google_Block.php (modified) (2 diffs)
-
trunk/includes/vendor/composer/autoload_classmap.php (modified) (4 diffs)
-
trunk/readme.txt (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
google-site-kit/tags/1.148.0/dist/assets/js/blocks/sign-in-with-google/block.json
r3246532 r3253534 3 3 "apiVersion": 2, 4 4 "name": "google-site-kit/sign-in-with-google", 5 "version": "1.14 7.0",5 "version": "1.148.0", 6 6 "title": "Sign in with Google", 7 7 "category": "widgets", -
google-site-kit/tags/1.148.0/dist/assets/js/blocks/sign-in-with-google/editor-styles.js
r3246532 r3253534 1 !function(e){var _={};function __webpack_require__(r){if(_[r])return _[r].exports;var t=_[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,__webpack_require__),t.l=!0,t.exports}__webpack_require__.m=e,__webpack_require__.c=_,__webpack_require__.d=function(e,_,r){__webpack_require__.o(e,_)||Object.defineProperty(e,_,{enumerable:!0,get:r})},__webpack_require__.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.t=function(e,_){if(1&_&&(e=__webpack_require__(e)),8&_)return e;if(4&_&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(__webpack_require__.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&_&&"string"!=typeof e)for(var t in e)__webpack_require__.d(r,t,function(_){return e[_]}.bind(null,t));return r},__webpack_require__.n=function(e){var _=e&&e.__esModule?function(){return e.default}:function(){return e};return __webpack_require__.d(_,"a",_),_},__webpack_require__.o=function(e,_){return Object.prototype.hasOwnProperty.call(e,_)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s= 7)}({7:function(e,_,r){"use strict";r.r(_)}});1 !function(e){var _={};function __webpack_require__(r){if(_[r])return _[r].exports;var t=_[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,__webpack_require__),t.l=!0,t.exports}__webpack_require__.m=e,__webpack_require__.c=_,__webpack_require__.d=function(e,_,r){__webpack_require__.o(e,_)||Object.defineProperty(e,_,{enumerable:!0,get:r})},__webpack_require__.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.t=function(e,_){if(1&_&&(e=__webpack_require__(e)),8&_)return e;if(4&_&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(__webpack_require__.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&_&&"string"!=typeof e)for(var t in e)__webpack_require__.d(r,t,function(_){return e[_]}.bind(null,t));return r},__webpack_require__.n=function(e){var _=e&&e.__esModule?function(){return e.default}:function(){return e};return __webpack_require__.d(_,"a",_),_},__webpack_require__.o=function(e,_){return Object.prototype.hasOwnProperty.call(e,_)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s=43)}({43:function(e,_,r){"use strict";r.r(_)}}); -
google-site-kit/tags/1.148.0/dist/assets/js/blocks/sign-in-with-google/index.js
r3246532 r3253534 1 !function(e){var t={};function __webpack_require__(r){if(t[r])return t[r].exports;var n=t[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,__webpack_require__),n.l=!0,n.exports}__webpack_require__.m=e,__webpack_require__.c=t,__webpack_require__.d=function(e,t,r){__webpack_require__.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},__webpack_require__.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.t=function(e,t){if(1&t&&(e=__webpack_require__(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(__webpack_require__.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)__webpack_require__.d(r,n,function(t){return e[t]}.bind(null,n));return r},__webpack_require__.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return __webpack_require__.d(t,"a",t),t},__webpack_require__.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s= 8)}([function(e,t,r){"use strict";e.exports=r(5)},function(e,t){e.exports=wp.blocks},function(e,t){e.exports=wp.blockEditor},function(e){e.exports=JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"google-site-kit/sign-in-with-google","version":"1.147.0","title":"Sign in with Google","category":"widgets","icon":"google","description":"Allow users to sign in to your site using their Google Account.","textdomain":"google-site-kit"}')},,function(e,t,r){"use strict";var n=r(6),A="function"==typeof Symbol&&Symbol.for,o=A?Symbol.for("react.element"):60103,i=A?Symbol.for("react.portal"):60106,u=A?Symbol.for("react.fragment"):60107,c=A?Symbol.for("react.strict_mode"):60108,l=A?Symbol.for("react.profiler"):60114,a=A?Symbol.for("react.provider"):60109,f=A?Symbol.for("react.context"):60110,s=A?Symbol.for("react.forward_ref"):60112,p=A?Symbol.for("react.suspense"):60113,g=A?Symbol.for("react.memo"):60115,v=A?Symbol.for("react.lazy"):60116,C="function"==typeof Symbol&&Symbol.iterator;function h(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=1;r<arguments.length;r++)t+="&args[]="+encodeURIComponent(arguments[r]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var y={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},w={};function B(e,t,r){this.props=e,this.context=t,this.refs=w,this.updater=r||y}function b(){}function m(e,t,r){this.props=e,this.context=t,this.refs=w,this.updater=r||y}B.prototype.isReactComponent={},B.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(h(85));this.updater.enqueueSetState(this,e,t,"setState")},B.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=B.prototype;var E=m.prototype=new b;E.constructor=m,n(E,B.prototype),E.isPureReactComponent=!0;var R={current:null},d=Object.prototype.hasOwnProperty,Y={key:!0,ref:!0,__self:!0,__source:!0};function j(e,t,r){var n,A={},i=null,u=null;if(null!=t)for(n in void 0!==t.ref&&(u=t.ref),void 0!==t.key&&(i=""+t.key),t)d.call(t,n)&&!Y.hasOwnProperty(n)&&(A[n]=t[n]);var c=arguments.length-2;if(1===c)A.children=r;else if(1<c){for(var l=Array(c),a=0;a<c;a++)l[a]=arguments[a+2];A.children=l}if(e&&e.defaultProps)for(n in c=e.defaultProps)void 0===A[n]&&(A[n]=c[n]);return{$$typeof:o,type:e,key:i,ref:u,props:A,_owner:R.current}}function G(e){return"object"==typeof e&&null!==e&&e.$$typeof===o}var P=/\/+/g,I=[];function F(e,t,r,n){if(I.length){var A=I.pop();return A.result=e,A.keyPrefix=t,A.func=r,A.context=n,A.count=0,A}return{result:e,keyPrefix:t,func:r,context:n,count:0}}function S(e){e.result=null,e.keyPrefix=null,e.func=null,e.context=null,e.count=0,10>I.length&&I.push(e)}function k(e,t,r){return null==e?0:function e(t,r,n,A){var u=typeof t;"undefined"!==u&&"boolean"!==u||(t=null);var c=!1;if(null===t)c=!0;else switch(u){case"string":case"number":c=!0;break;case"object":switch(t.$$typeof){case o:case i:c=!0}}if(c)return n(A,t,""===r?"."+W(t,0):r),1;if(c=0,r=""===r?".":r+":",Array.isArray(t))for(var l=0;l<t.length;l++){var a=r+W(u=t[l],l);c+=e(u,a,n,A)}else if(null===t||"object"!=typeof t?a=null:a="function"==typeof(a=C&&t[C]||t["@@iterator"])?a:null,"function"==typeof a)for(t=a.call(t),l=0;!(u=t.next()).done;)c+=e(u=u.value,a=r+W(u,l++),n,A);else if("object"===u)throw n=""+t,Error(h(31,"[object Object]"===n?"object with keys {"+Object.keys(t).join(", ")+"}":n,""));return c}(e,"",t,r)}function W(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+(""+e).replace(/[=:]/g,(function(e){return t[e]}))}(e.key):t.toString(36)}function L(e,t){e.func.call(e.context,t,e.count++)}function N(e,t,r){var n=e.result,A=e.keyPrefix;e=e.func.call(e.context,t,e.count++),Array.isArray(e)?q(e,n,r,(function(e){return e})):null!=e&&(G(e)&&(e=function(e,t){return{$$typeof:o,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(e,A+(!e.key||t&&t.key===e.key?"":(""+e.key).replace(P,"$&/")+"/")+r)),n.push(e))}function q(e,t,r,n,A){var o="";null!=r&&(o=(""+r).replace(P,"$&/")+"/"),k(e,N,t=F(t,o,n,A)),S(t)}var V={current:null};function Z(){var e=V.current;if(null===e)throw Error(h(321));return e}var D={ReactCurrentDispatcher:V,ReactCurrentBatchConfig:{suspense:null},ReactCurrentOwner:R,IsSomeRendererActing:{current:!1},assign:n};t.Children={map:function(e,t,r){if(null==e)return e;var n=[];return q(e,n,null,t,r),n},forEach:function(e,t,r){if(null==e)return e;k(e,L,t=F(null,null,t,r)),S(t)},count:function(e){return k(e,(function(){return null}),null)},toArray:function(e){var t=[];return q(e,t,null,(function(e){return e})),t},only:function(e){if(!G(e))throw Error(h(143));return e}},t.Component=B,t.Fragment=u,t.Profiler=l,t.PureComponent=m,t.StrictMode=c,t.Suspense=p,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=D,t.cloneElement=function(e,t,r){if(null==e)throw Error(h(267,e));var A=n({},e.props),i=e.key,u=e.ref,c=e._owner;if(null!=t){if(void 0!==t.ref&&(u=t.ref,c=R.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var l=e.type.defaultProps;for(a in t)d.call(t,a)&&!Y.hasOwnProperty(a)&&(A[a]=void 0===t[a]&&void 0!==l?l[a]:t[a])}var a=arguments.length-2;if(1===a)A.children=r;else if(1<a){l=Array(a);for(var f=0;f<a;f++)l[f]=arguments[f+2];A.children=l}return{$$typeof:o,type:e.type,key:i,ref:u,props:A,_owner:c}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:f,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:a,_context:e},e.Consumer=e},t.createElement=j,t.createFactory=function(e){var t=j.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:s,render:e}},t.isValidElement=G,t.lazy=function(e){return{$$typeof:v,_ctor:e,_status:-1,_result:null}},t.memo=function(e,t){return{$$typeof:g,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return Z().useCallback(e,t)},t.useContext=function(e,t){return Z().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return Z().useEffect(e,t)},t.useImperativeHandle=function(e,t,r){return Z().useImperativeHandle(e,t,r)},t.useLayoutEffect=function(e,t){return Z().useLayoutEffect(e,t)},t.useMemo=function(e,t){return Z().useMemo(e,t)},t.useReducer=function(e,t,r){return Z().useReducer(e,t,r)},t.useRef=function(e){return Z().useRef(e)},t.useState=function(e){return Z().useState(e)},t.version="16.14.0"},function(e,t,r){"use strict";var n=Object.getOwnPropertySymbols,A=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable;function i(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},r=0;r<10;r++)t["_"+String.fromCharCode(r)]=r;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach((function(e){n[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var r,u,c=i(e),l=1;l<arguments.length;l++){for(var a in r=Object(arguments[l]))A.call(r,a)&&(c[a]=r[a]);if(n){u=n(r);for(var f=0;f<u.length;f++)o.call(r,u[f])&&(c[u[f]]=r[u[f]])}}return c}},,function(e,t,r){"use strict";r.r(t);var n=r(1),A=r(2),o=r(0);function i(){return(i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}var u=o.createElement("rect",{width:180,height:41,rx:20.5,fill:"#fff"}),c=o.createElement("path",{fill:"url(#icon_svg__pattern0_1_99)",d:"M9 8h162v26H9z"}),l=o.createElement("defs",null,o.createElement("pattern",{id:"icon_svg__pattern0_1_99",patternContentUnits:"objectBoundingBox",width:1,height:1},o.createElement("use",{xlinkHref:"#icon_svg__image0_1_99",transform:"matrix(.00309 0 0 .01923 -.117 -.692)"})),o.createElement("image",{id:"icon_svg__image0_1_99",width:406,height:126,xlinkHref:"data:image/png;base64,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"}));var a=function SvgIcon(e){return o.createElement("svg",i({viewBox:"0 0 180 41",fill:"none"},e),u,c,l)};var f=r(3);Object(n.registerBlockType)(f.name,{edit:function Edit(){var e=Object(A.useBlockProps)();return React.createElement("div",e,React.createElement("div",{className:"googlesitekit-blocks-sign-in-with-google",style:{maxWidth:"180px",minWidth:"120px"}},React.createElement(a,null)))}})}]);1 !function(e){var t={};function __webpack_require__(r){if(t[r])return t[r].exports;var n=t[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,__webpack_require__),n.l=!0,n.exports}__webpack_require__.m=e,__webpack_require__.c=t,__webpack_require__.d=function(e,t,r){__webpack_require__.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},__webpack_require__.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.t=function(e,t){if(1&t&&(e=__webpack_require__(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(__webpack_require__.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)__webpack_require__.d(r,n,function(t){return e[t]}.bind(null,n));return r},__webpack_require__.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return __webpack_require__.d(t,"a",t),t},__webpack_require__.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s=45)}({1:function(e,t,r){"use strict";e.exports=r(17)},12:function(e,t){e.exports=wp.blockEditor},16:function(e,t){e.exports=wp.blocks},17:function(e,t,r){"use strict";var n=r(18),A="function"==typeof Symbol&&Symbol.for,o=A?Symbol.for("react.element"):60103,i=A?Symbol.for("react.portal"):60106,u=A?Symbol.for("react.fragment"):60107,c=A?Symbol.for("react.strict_mode"):60108,l=A?Symbol.for("react.profiler"):60114,a=A?Symbol.for("react.provider"):60109,f=A?Symbol.for("react.context"):60110,s=A?Symbol.for("react.forward_ref"):60112,p=A?Symbol.for("react.suspense"):60113,g=A?Symbol.for("react.memo"):60115,v=A?Symbol.for("react.lazy"):60116,C="function"==typeof Symbol&&Symbol.iterator;function h(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=1;r<arguments.length;r++)t+="&args[]="+encodeURIComponent(arguments[r]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var y={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},w={};function B(e,t,r){this.props=e,this.context=t,this.refs=w,this.updater=r||y}function b(){}function m(e,t,r){this.props=e,this.context=t,this.refs=w,this.updater=r||y}B.prototype.isReactComponent={},B.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(h(85));this.updater.enqueueSetState(this,e,t,"setState")},B.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=B.prototype;var E=m.prototype=new b;E.constructor=m,n(E,B.prototype),E.isPureReactComponent=!0;var R={current:null},d=Object.prototype.hasOwnProperty,Y={key:!0,ref:!0,__self:!0,__source:!0};function j(e,t,r){var n,A={},i=null,u=null;if(null!=t)for(n in void 0!==t.ref&&(u=t.ref),void 0!==t.key&&(i=""+t.key),t)d.call(t,n)&&!Y.hasOwnProperty(n)&&(A[n]=t[n]);var c=arguments.length-2;if(1===c)A.children=r;else if(1<c){for(var l=Array(c),a=0;a<c;a++)l[a]=arguments[a+2];A.children=l}if(e&&e.defaultProps)for(n in c=e.defaultProps)void 0===A[n]&&(A[n]=c[n]);return{$$typeof:o,type:e,key:i,ref:u,props:A,_owner:R.current}}function G(e){return"object"==typeof e&&null!==e&&e.$$typeof===o}var P=/\/+/g,I=[];function F(e,t,r,n){if(I.length){var A=I.pop();return A.result=e,A.keyPrefix=t,A.func=r,A.context=n,A.count=0,A}return{result:e,keyPrefix:t,func:r,context:n,count:0}}function S(e){e.result=null,e.keyPrefix=null,e.func=null,e.context=null,e.count=0,10>I.length&&I.push(e)}function k(e,t,r){return null==e?0:function e(t,r,n,A){var u=typeof t;"undefined"!==u&&"boolean"!==u||(t=null);var c=!1;if(null===t)c=!0;else switch(u){case"string":case"number":c=!0;break;case"object":switch(t.$$typeof){case o:case i:c=!0}}if(c)return n(A,t,""===r?"."+W(t,0):r),1;if(c=0,r=""===r?".":r+":",Array.isArray(t))for(var l=0;l<t.length;l++){var a=r+W(u=t[l],l);c+=e(u,a,n,A)}else if(null===t||"object"!=typeof t?a=null:a="function"==typeof(a=C&&t[C]||t["@@iterator"])?a:null,"function"==typeof a)for(t=a.call(t),l=0;!(u=t.next()).done;)c+=e(u=u.value,a=r+W(u,l++),n,A);else if("object"===u)throw n=""+t,Error(h(31,"[object Object]"===n?"object with keys {"+Object.keys(t).join(", ")+"}":n,""));return c}(e,"",t,r)}function W(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+(""+e).replace(/[=:]/g,(function(e){return t[e]}))}(e.key):t.toString(36)}function L(e,t){e.func.call(e.context,t,e.count++)}function N(e,t,r){var n=e.result,A=e.keyPrefix;e=e.func.call(e.context,t,e.count++),Array.isArray(e)?q(e,n,r,(function(e){return e})):null!=e&&(G(e)&&(e=function(e,t){return{$$typeof:o,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(e,A+(!e.key||t&&t.key===e.key?"":(""+e.key).replace(P,"$&/")+"/")+r)),n.push(e))}function q(e,t,r,n,A){var o="";null!=r&&(o=(""+r).replace(P,"$&/")+"/"),k(e,N,t=F(t,o,n,A)),S(t)}var V={current:null};function Z(){var e=V.current;if(null===e)throw Error(h(321));return e}var D={ReactCurrentDispatcher:V,ReactCurrentBatchConfig:{suspense:null},ReactCurrentOwner:R,IsSomeRendererActing:{current:!1},assign:n};t.Children={map:function(e,t,r){if(null==e)return e;var n=[];return q(e,n,null,t,r),n},forEach:function(e,t,r){if(null==e)return e;k(e,L,t=F(null,null,t,r)),S(t)},count:function(e){return k(e,(function(){return null}),null)},toArray:function(e){var t=[];return q(e,t,null,(function(e){return e})),t},only:function(e){if(!G(e))throw Error(h(143));return e}},t.Component=B,t.Fragment=u,t.Profiler=l,t.PureComponent=m,t.StrictMode=c,t.Suspense=p,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=D,t.cloneElement=function(e,t,r){if(null==e)throw Error(h(267,e));var A=n({},e.props),i=e.key,u=e.ref,c=e._owner;if(null!=t){if(void 0!==t.ref&&(u=t.ref,c=R.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var l=e.type.defaultProps;for(a in t)d.call(t,a)&&!Y.hasOwnProperty(a)&&(A[a]=void 0===t[a]&&void 0!==l?l[a]:t[a])}var a=arguments.length-2;if(1===a)A.children=r;else if(1<a){l=Array(a);for(var f=0;f<a;f++)l[f]=arguments[f+2];A.children=l}return{$$typeof:o,type:e.type,key:i,ref:u,props:A,_owner:c}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:f,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:a,_context:e},e.Consumer=e},t.createElement=j,t.createFactory=function(e){var t=j.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:s,render:e}},t.isValidElement=G,t.lazy=function(e){return{$$typeof:v,_ctor:e,_status:-1,_result:null}},t.memo=function(e,t){return{$$typeof:g,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return Z().useCallback(e,t)},t.useContext=function(e,t){return Z().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return Z().useEffect(e,t)},t.useImperativeHandle=function(e,t,r){return Z().useImperativeHandle(e,t,r)},t.useLayoutEffect=function(e,t){return Z().useLayoutEffect(e,t)},t.useMemo=function(e,t){return Z().useMemo(e,t)},t.useReducer=function(e,t,r){return Z().useReducer(e,t,r)},t.useRef=function(e){return Z().useRef(e)},t.useState=function(e){return Z().useState(e)},t.version="16.14.0"},18:function(e,t,r){"use strict";var n=Object.getOwnPropertySymbols,A=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable;function i(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},r=0;r<10;r++)t["_"+String.fromCharCode(r)]=r;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach((function(e){n[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var r,u,c=i(e),l=1;l<arguments.length;l++){for(var a in r=Object(arguments[l]))A.call(r,a)&&(c[a]=r[a]);if(n){u=n(r);for(var f=0;f<u.length;f++)o.call(r,u[f])&&(c[u[f]]=r[u[f]])}}return c}},37:function(e){e.exports=JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"google-site-kit/sign-in-with-google","version":"1.148.0","title":"Sign in with Google","category":"widgets","icon":"google","description":"Allow users to sign in to your site using their Google Account.","textdomain":"google-site-kit"}')},45:function(e,t,r){"use strict";r.r(t);var n=r(16),A=r(12),o=r(1);function i(){return(i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}var u=o.createElement("rect",{width:180,height:41,rx:20.5,fill:"#fff"}),c=o.createElement("path",{fill:"url(#icon_svg__pattern0_1_99)",d:"M9 8h162v26H9z"}),l=o.createElement("defs",null,o.createElement("pattern",{id:"icon_svg__pattern0_1_99",patternContentUnits:"objectBoundingBox",width:1,height:1},o.createElement("use",{xlinkHref:"#icon_svg__image0_1_99",transform:"matrix(.00309 0 0 .01923 -.117 -.692)"})),o.createElement("image",{id:"icon_svg__image0_1_99",width:406,height:126,xlinkHref:"data:image/png;base64,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"}));var a=function SvgIcon(e){return o.createElement("svg",i({viewBox:"0 0 180 41",fill:"none"},e),u,c,l)};var f=r(37);Object(n.registerBlockType)(f.name,{edit:function Edit(){var e=Object(A.useBlockProps)();return React.createElement("div",e,React.createElement("div",{className:"googlesitekit-blocks-sign-in-with-google",style:{maxWidth:"180px",minWidth:"120px"}},React.createElement(a,null)))}})}}); -
google-site-kit/tags/1.148.0/dist/config.php
r3221899 r3253534 8 8 9 9 return array( 10 'features' => array( 'adsPax','audienceSegmentation','conversionReporting','firstPartyMode','gm3Components','privacySandboxModule','rrmModule','rrmModuleV2' ,'signInWithGoogleModule'),10 'features' => array( 'adsPax','audienceSegmentation','conversionReporting','firstPartyMode','gm3Components','privacySandboxModule','rrmModule','rrmModuleV2' ), 11 11 ); -
google-site-kit/tags/1.148.0/dist/manifest.php
r3246532 r3253534 8 8 9 9 return array( 10 'googlesitekit-consent-mode' => array( "googlesitekit-consent-mode-3d6495dceaebc28bcca3.js", null ), 11 'googlesitekit-events-provider-contact-form-7' => array( "googlesitekit-events-provider-contact-form-7-21cf1c445673c649970d.js", null ), 12 'googlesitekit-events-provider-easy-digital-downloads' => array( "googlesitekit-events-provider-easy-digital-downloads-a3b438fc133106da6a33.js", null ), 13 'googlesitekit-events-provider-mailchimp' => array( "googlesitekit-events-provider-mailchimp-7920d200a07d3bcd60bb.js", null ), 14 'googlesitekit-events-provider-ninja-forms' => array( "googlesitekit-events-provider-ninja-forms-ddd9645222a85c7954f3.js", null ), 15 'googlesitekit-events-provider-optin-monster' => array( "googlesitekit-events-provider-optin-monster-2bb9e40daaa87763f38e.js", null ), 16 'googlesitekit-events-provider-popup-maker' => array( "googlesitekit-events-provider-popup-maker-e1863af0c352a2ce8748.js", null ), 17 'googlesitekit-events-provider-woocommerce' => array( "googlesitekit-events-provider-woocommerce-9043ca3351c215979b62.js", null ), 18 'googlesitekit-events-provider-wpforms' => array( "googlesitekit-events-provider-wpforms-b35450445f9cb0eeb855.js", null ), 19 'analytics-advanced-tracking' => array( "analytics-advanced-tracking-ea84b2c367b69f5c094b.js", null ), 20 'googlesitekit-i18n' => array( "googlesitekit-i18n-33cdd2dee5d1d1f4fb34.js", null ), 21 'googlesitekit-reader-revenue-manager-block-editor' => array( "googlesitekit-reader-revenue-manager-block-editor.js", null ), 22 'sign-in-with-google/editor-styles' => array( "sign-in-with-google/editor-styles.js", null ), 23 'sign-in-with-google/index' => array( "sign-in-with-google/index.js", null ), 24 'googlesitekit-admin-css' => array( "googlesitekit-admin-css-0ed888e9f46eb775c4a9.min.css", null ), 25 'googlesitekit-adminbar-css' => array( "googlesitekit-adminbar-css-281d66e21d2b87430998.min.css", null ), 26 'googlesitekit-authorize-application-css' => array( "googlesitekit-authorize-application-css-ce25e97404abc5a02921.min.css", null ), 27 'googlesitekit-wp-dashboard-css' => array( "googlesitekit-wp-dashboard-css-55d9d8bb13cf249a2389.min.css", null ), 28 'googlesitekit-vendor' => array( "googlesitekit-vendor-68e1c45ab88797e2725b.js", null ), 29 'googlesitekit-runtime' => array( "runtime-89f677636011f47c68b1.js", null ), 30 'googlesitekit-activation' => array( "googlesitekit-activation-08970804363d3f89f12e.js", null ), 31 'googlesitekit-ad-blocking-recovery' => array( "googlesitekit-ad-blocking-recovery-7c1bee68a11e1537fba9.js", null ), 32 'googlesitekit-adminbar' => array( "googlesitekit-adminbar-494060be019092a480bf.js", null ), 33 'googlesitekit-api' => array( "googlesitekit-api-2766e9472b9ab9216ca1.js", null ), 34 'googlesitekit-components' => array( array( "googlesitekit-components-gm2-8ef0fd892597f5776726.js", null ), array( "googlesitekit-components-gm3-96f619a4dfa6a62e80b0.js", null ) ), 35 'googlesitekit-data' => array( "googlesitekit-data-b9cd43cf5269111852ae.js", null ), 36 'googlesitekit-datastore-forms' => array( "googlesitekit-datastore-forms-fda104b042221bd85889.js", null ), 37 'googlesitekit-datastore-location' => array( "googlesitekit-datastore-location-f342a662bcd23bad5197.js", null ), 38 'googlesitekit-datastore-site' => array( "googlesitekit-datastore-site-6a6c78749feb8856beac.js", null ), 39 'googlesitekit-datastore-ui' => array( "googlesitekit-datastore-ui-abfcc74f97bbff8b2eac.js", null ), 40 'googlesitekit-datastore-user' => array( "googlesitekit-datastore-user-3378174b7e259484c79a.js", null ), 41 'googlesitekit-entity-dashboard' => array( "googlesitekit-entity-dashboard-12ac51781ea2a575d5d6.js", null ), 42 'googlesitekit-main-dashboard' => array( "googlesitekit-main-dashboard-d2235f7e737fa3cc6542.js", null ), 43 'googlesitekit-metric-selection' => array( "googlesitekit-metric-selection-4e96dd3bd15106d6f9b1.js", null ), 44 'googlesitekit-modules' => array( "googlesitekit-modules-271a2bc6321bc5512177.js", null ), 45 'googlesitekit-modules-ads' => array( "googlesitekit-modules-ads-5c3840d282a55fec7b91.js", null ), 46 'googlesitekit-modules-adsense' => array( "googlesitekit-modules-adsense-8dae88c7b504d6eeffbd.js", null ), 47 'googlesitekit-modules-analytics-4' => array( "googlesitekit-modules-analytics-4-03ff53d67f0730fef532.js", null ), 48 'googlesitekit-modules-pagespeed-insights' => array( "googlesitekit-modules-pagespeed-insights-c03a4bc015c93be68ba2.js", null ), 49 'googlesitekit-modules-reader-revenue-manager' => array( "googlesitekit-modules-reader-revenue-manager-f64ae5a06452a7c70545.js", null ), 50 'googlesitekit-modules-search-console' => array( "googlesitekit-modules-search-console-76205470debaed0c391f.js", null ), 51 'googlesitekit-modules-sign-in-with-google' => array( "googlesitekit-modules-sign-in-with-google-72ac70043d96dfcec075.js", null ), 52 'googlesitekit-modules-tagmanager' => array( "googlesitekit-modules-tagmanager-3dd7cdfe4eab5a246d90.js", null ), 53 'googlesitekit-notifications' => array( "googlesitekit-notifications-05633f57dd25402f9646.js", null ), 54 'googlesitekit-polyfills' => array( "googlesitekit-polyfills-b90168a70cb376a88ee6.js", null ), 55 'googlesitekit-settings' => array( "googlesitekit-settings-1e24b6995d523f1fa3d1.js", null ), 56 'googlesitekit-splash' => array( "googlesitekit-splash-b273b7be927790dc2c4e.js", null ), 57 'googlesitekit-user-input' => array( "googlesitekit-user-input-818d71397d6d1f15d951.js", null ), 58 'googlesitekit-widgets' => array( "googlesitekit-widgets-79a0290d39373d503c60.js", null ), 59 'googlesitekit-wp-dashboard' => array( "googlesitekit-wp-dashboard-4e8db01e6c2bad945b9c.js", null ), 10 'googlesitekit-consent-mode' => array( "googlesitekit-consent-mode-3d6495dceaebc28bcca3.js", null ), 11 'googlesitekit-events-provider-contact-form-7' => array( "googlesitekit-events-provider-contact-form-7-21cf1c445673c649970d.js", null ), 12 'googlesitekit-events-provider-easy-digital-downloads' => array( "googlesitekit-events-provider-easy-digital-downloads-a3b438fc133106da6a33.js", null ), 13 'googlesitekit-events-provider-mailchimp' => array( "googlesitekit-events-provider-mailchimp-7920d200a07d3bcd60bb.js", null ), 14 'googlesitekit-events-provider-ninja-forms' => array( "googlesitekit-events-provider-ninja-forms-ddd9645222a85c7954f3.js", null ), 15 'googlesitekit-events-provider-optin-monster' => array( "googlesitekit-events-provider-optin-monster-2bb9e40daaa87763f38e.js", null ), 16 'googlesitekit-events-provider-popup-maker' => array( "googlesitekit-events-provider-popup-maker-e1863af0c352a2ce8748.js", null ), 17 'googlesitekit-events-provider-woocommerce' => array( "googlesitekit-events-provider-woocommerce-9043ca3351c215979b62.js", null ), 18 'googlesitekit-events-provider-wpforms' => array( "googlesitekit-events-provider-wpforms-b35450445f9cb0eeb855.js", null ), 19 'analytics-advanced-tracking' => array( "analytics-advanced-tracking-ea84b2c367b69f5c094b.js", null ), 20 'googlesitekit-i18n' => array( "googlesitekit-i18n-33cdd2dee5d1d1f4fb34.js", null ), 21 'reader-revenue-manager/block-editor-plugin/editor-styles' => array( "reader-revenue-manager/block-editor-plugin/editor-styles.js", null ), 22 'reader-revenue-manager/block-editor-plugin/index' => array( "reader-revenue-manager/block-editor-plugin/index.js", null ), 23 'reader-revenue-manager/common/editor-styles' => array( "reader-revenue-manager/common/editor-styles.js", null ), 24 'reader-revenue-manager/contribute-with-google/index' => array( "reader-revenue-manager/contribute-with-google/index.js", null ), 25 'reader-revenue-manager/subscribe-with-google/index' => array( "reader-revenue-manager/subscribe-with-google/index.js", null ), 26 'sign-in-with-google/editor-styles' => array( "sign-in-with-google/editor-styles.js", null ), 27 'sign-in-with-google/index' => array( "sign-in-with-google/index.js", null ), 28 'googlesitekit-admin-css' => array( "googlesitekit-admin-css-e86016510d7baa4a7353.min.css", null ), 29 'googlesitekit-adminbar-css' => array( "googlesitekit-adminbar-css-281d66e21d2b87430998.min.css", null ), 30 'googlesitekit-authorize-application-css' => array( "googlesitekit-authorize-application-css-ce25e97404abc5a02921.min.css", null ), 31 'googlesitekit-wp-dashboard-css' => array( "googlesitekit-wp-dashboard-css-55d9d8bb13cf249a2389.min.css", null ), 32 'googlesitekit-vendor' => array( "googlesitekit-vendor-5aa94214da516df44edd.js", null ), 33 'googlesitekit-runtime' => array( "runtime-fb338303cadc59781996.js", null ), 34 'googlesitekit-activation' => array( "googlesitekit-activation-ef136fa2d705890f91b3.js", null ), 35 'googlesitekit-ad-blocking-recovery' => array( "googlesitekit-ad-blocking-recovery-ea1f8cdd3eebac89f55c.js", null ), 36 'googlesitekit-adminbar' => array( "googlesitekit-adminbar-8186a58dffbe9861983a.js", null ), 37 'googlesitekit-api' => array( "googlesitekit-api-bcc1c62e15d079907a56.js", null ), 38 'googlesitekit-components' => array( array( "googlesitekit-components-gm2-8bf8544d07a6da530f8f.js", null ), array( "googlesitekit-components-gm3-3d043a9ad4684e207690.js", null ) ), 39 'googlesitekit-data' => array( "googlesitekit-data-10660ec4fa4de9e5a0ad.js", null ), 40 'googlesitekit-datastore-forms' => array( "googlesitekit-datastore-forms-58356fd14af30247220b.js", null ), 41 'googlesitekit-datastore-location' => array( "googlesitekit-datastore-location-d6cc723fb9213326c8df.js", null ), 42 'googlesitekit-datastore-site' => array( "googlesitekit-datastore-site-32262604b05a3f29ffbd.js", null ), 43 'googlesitekit-datastore-ui' => array( "googlesitekit-datastore-ui-2a4a47d4c0cd789f71e9.js", null ), 44 'googlesitekit-datastore-user' => array( "googlesitekit-datastore-user-3cd7c04a250e40fbee46.js", null ), 45 'googlesitekit-entity-dashboard' => array( "googlesitekit-entity-dashboard-594bf471eb193b4f1a94.js", null ), 46 'googlesitekit-main-dashboard' => array( "googlesitekit-main-dashboard-be615811bedf8348b6b3.js", null ), 47 'googlesitekit-metric-selection' => array( "googlesitekit-metric-selection-8a40812867bda4ccc557.js", null ), 48 'googlesitekit-modules' => array( "googlesitekit-modules-f29528994921322c9c2d.js", null ), 49 'googlesitekit-modules-ads' => array( "googlesitekit-modules-ads-dbd862ea5480cfe6c092.js", null ), 50 'googlesitekit-modules-adsense' => array( "googlesitekit-modules-adsense-aac303a1bfa905c4953e.js", null ), 51 'googlesitekit-modules-analytics-4' => array( "googlesitekit-modules-analytics-4-4107886672cca10485da.js", null ), 52 'googlesitekit-modules-pagespeed-insights' => array( "googlesitekit-modules-pagespeed-insights-fa61f9f00c3cb3a11b48.js", null ), 53 'googlesitekit-modules-reader-revenue-manager' => array( "googlesitekit-modules-reader-revenue-manager-28ec1502574278161523.js", null ), 54 'googlesitekit-modules-search-console' => array( "googlesitekit-modules-search-console-c5ee61ebe5c4758697f7.js", null ), 55 'googlesitekit-modules-sign-in-with-google' => array( "googlesitekit-modules-sign-in-with-google-ff4cc66e0355cefa5b59.js", null ), 56 'googlesitekit-modules-tagmanager' => array( "googlesitekit-modules-tagmanager-6e0cd98eb5fa67a088fd.js", null ), 57 'googlesitekit-notifications' => array( "googlesitekit-notifications-68b6123744fc1447c597.js", null ), 58 'googlesitekit-polyfills' => array( "googlesitekit-polyfills-f5a1154bf6114abcdbae.js", null ), 59 'googlesitekit-settings' => array( "googlesitekit-settings-f38fb475207deb40d30a.js", null ), 60 'googlesitekit-splash' => array( "googlesitekit-splash-8149844e0600ee696450.js", null ), 61 'googlesitekit-user-input' => array( "googlesitekit-user-input-32ce19372c4a80d3525c.js", null ), 62 'googlesitekit-widgets' => array( "googlesitekit-widgets-66b135342a210db1628b.js", null ), 63 'googlesitekit-wp-dashboard' => array( "googlesitekit-wp-dashboard-26aef10466d76e72e042.js", null ), 60 64 ); -
google-site-kit/tags/1.148.0/google-site-kit.php
r3246532 r3253534 12 12 * Plugin URI: https://sitekit.withgoogle.com 13 13 * Description: Site Kit is a one-stop solution for WordPress users to use everything Google has to offer to make them successful on the web. 14 * Version: 1.14 7.014 * Version: 1.148.0 15 15 * Requires at least: 5.2 16 16 * Requires PHP: 7.4 … … 27 27 28 28 // Define most essential constants. 29 define( 'GOOGLESITEKIT_VERSION', '1.14 7.0' );29 define( 'GOOGLESITEKIT_VERSION', '1.148.0' ); 30 30 define( 'GOOGLESITEKIT_PLUGIN_MAIN_FILE', __FILE__ ); 31 31 define( 'GOOGLESITEKIT_PHP_MINIMUM', '7.4.0' ); -
google-site-kit/tags/1.148.0/includes/Core/Assets/Assets.php
r3246532 r3253534 16 16 use Google\Site_Kit\Core\Storage\Options; 17 17 use Google\Site_Kit\Core\Util\Feature_Flags; 18 use Google\Site_Kit\Core\Util\ URL;18 use Google\Site_Kit\Core\Util\Plugin_Status; 19 19 use WP_Dependencies; 20 20 use WP_Post_Type; -
google-site-kit/tags/1.148.0/includes/Core/Consent_Mode/REST_Consent_Mode_Controller.php
r3208808 r3253534 16 16 use Google\Site_Kit\Core\REST_API\REST_Routes; 17 17 use Google\Site_Kit\Core\Storage\Options; 18 use Google\Site_Kit\Core\Util\Plugin_Status; 18 19 use Google\Site_Kit\Modules\Ads; 19 20 use Google\Site_Kit\Modules\Analytics_4; … … 188 189 'methods' => WP_REST_Server::READABLE, 189 190 'callback' => function () { 190 $is_active = function_exists( 'wp_set_consent' ); 191 $installed = $is_active; 192 $plugin_uri = 'https://wordpress.org/plugins/wp-consent-api'; 193 $plugin = 'wp-consent-api/wp-consent-api.php'; 194 195 $response = array( 191 // Here we intentionally use a non-plugin-specific detection strategy. 192 $is_active = function_exists( 'wp_set_consent' ); 193 $response = array( 196 194 'hasConsentAPI' => $is_active, 197 195 ); 198 196 197 // Alternate wp_nonce_url without esc_html breaking query parameters. 198 $nonce_url = function ( $action_url, $action ) { 199 return add_query_arg( '_wpnonce', wp_create_nonce( $action ), $action_url ); 200 }; 201 199 202 if ( ! $is_active ) { 200 if ( ! function_exists( 'get_plugins' ) ) { 201 require_once ABSPATH . 'wp-admin/includes/plugin.php'; 202 } 203 204 $plugins = get_plugins(); 205 206 if ( array_key_exists( $plugin, $plugins ) ) { 207 $installed = true; 208 } else { 209 foreach ( $plugins as $plugin_file => $installed_plugin ) { 210 if ( $installed_plugin['PluginURI'] === $plugin_uri ) { 211 $plugin = $plugin_file; 212 $installed = true; 213 break; 214 } 215 } 216 } 217 218 // Alternate wp_nonce_url without esc_html breaking query parameters. 219 $nonce_url = function ( $action_url, $action ) { 220 return add_query_arg( '_wpnonce', wp_create_nonce( $action ), $action_url ); 221 }; 222 $activate_url = $nonce_url( self_admin_url( 'plugins.php?action=activate&plugin=' . $plugin ), 'activate-plugin_' . $plugin ); 223 $install_url = $nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=wp-consent-api' ), 'install-plugin_wp-consent-api' ); 224 225 $response['wpConsentPlugin'] = array( 226 'installed' => $installed, 227 'activateURL' => current_user_can( 'activate_plugin', $plugin ) ? esc_url_raw( $activate_url ) : false, 228 'installURL' => current_user_can( 'install_plugins' ) ? esc_url_raw( $install_url ) : false, 203 $installed_plugin = $this->get_consent_api_plugin_file(); 204 205 $consent_plugin = array( 206 'installed' => (bool) $installed_plugin, 207 'installURL' => false, 208 'activateURL' => false, 229 209 ); 210 211 if ( ! $installed_plugin && current_user_can( 'install_plugins' ) ) { 212 $consent_plugin['installURL'] = $nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=wp-consent-api' ), 'install-plugin_wp-consent-api' ); 213 } 214 215 if ( $installed_plugin && current_user_can( 'activate_plugin', $installed_plugin ) ) { 216 $consent_plugin['activateURL'] = $nonce_url( self_admin_url( 'plugins.php?action=activate&plugin=' . $installed_plugin ), 'activate-plugin_' . $installed_plugin ); 217 } 218 219 $response['wpConsentPlugin'] = $consent_plugin; 230 220 } 231 221 … … 321 311 ); 322 312 } 313 314 /** 315 * Gets the plugin file of the installed WP Consent API if found. 316 * 317 * @since 1.148.0 318 * 319 * @return false|string 320 */ 321 protected function get_consent_api_plugin_file() { 322 // Check the default location first. 323 if ( Plugin_Status::is_plugin_installed( 'wp-consent-api/wp-consent-api.php' ) ) { 324 return 'wp-consent-api/wp-consent-api.php'; 325 } 326 327 // Here we make an extra effort to attempt to detect the plugin if installed in a non-standard location. 328 return Plugin_Status::is_plugin_installed( 329 fn ( $installed_plugin ) => 'https://wordpress.org/plugins/wp-consent-api' === $installed_plugin['PluginURI'] 330 ); 331 } 323 332 } -
google-site-kit/tags/1.148.0/includes/Core/Conversion_Tracking/Conversion_Event_Providers/WooCommerce.php
r3181737 r3253534 34 34 */ 35 35 public function is_active() { 36 return did_action( 'woocommerce_loaded' ) > 0;36 return class_exists( 'WooCommerce' ); 37 37 } 38 38 -
google-site-kit/tags/1.148.0/includes/Core/Dismissals/REST_Dismissals_Controller.php
r3134468 r3253534 12 12 13 13 use Google\Site_Kit\Core\Permissions\Permissions; 14 use Google\Site_Kit\Core\REST_API\Exception\Invalid_Param_Exception; 14 15 use Google\Site_Kit\Core\REST_API\REST_Route; 15 16 use Google\Site_Kit\Core\REST_API\REST_Routes; … … 102 103 'methods' => WP_REST_Server::DELETABLE, 103 104 'callback' => function ( WP_REST_Request $request ) { 104 $slugs = $request['data']['slugs']; 105 if ( empty( $request['data']['slugs'] ) ) { 106 // Schema validation does not catch empty object params 107 // in older versions of WP. 108 return ( new Invalid_Param_Exception( 'data' ) )->to_wp_error(); 109 } 105 110 106 foreach ( $ slugsas $slug ) {111 foreach ( $request['data']['slugs'] as $slug ) { 107 112 $this->dismissed_items->remove( $slug ); 108 113 } -
google-site-kit/tags/1.148.0/includes/Core/Modules/Modules.php
r3164469 r3253534 146 146 */ 147 147 private $core_modules = array( 148 Site_Verification::MODULE_SLUG => Site_Verification::class, 149 Search_Console::MODULE_SLUG => Search_Console::class, 150 Ads::MODULE_SLUG => Ads::class, 151 Analytics_4::MODULE_SLUG => Analytics_4::class, 152 Tag_Manager::MODULE_SLUG => Tag_Manager::class, 153 AdSense::MODULE_SLUG => AdSense::class, 154 PageSpeed_Insights::MODULE_SLUG => PageSpeed_Insights::class, 148 Site_Verification::MODULE_SLUG => Site_Verification::class, 149 Search_Console::MODULE_SLUG => Search_Console::class, 150 Ads::MODULE_SLUG => Ads::class, 151 Analytics_4::MODULE_SLUG => Analytics_4::class, 152 Tag_Manager::MODULE_SLUG => Tag_Manager::class, 153 AdSense::MODULE_SLUG => AdSense::class, 154 PageSpeed_Insights::MODULE_SLUG => PageSpeed_Insights::class, 155 Sign_In_With_Google::MODULE_SLUG => Sign_In_With_Google::class, 155 156 ); 156 157 … … 182 183 if ( Feature_Flags::enabled( 'rrmModule' ) ) { 183 184 $this->core_modules[ Reader_Revenue_Manager::MODULE_SLUG ] = Reader_Revenue_Manager::class; 184 }185 186 if ( Feature_Flags::enabled( 'signInWithGoogleModule' ) ) {187 $this->core_modules[ Sign_In_With_Google::MODULE_SLUG ] = Sign_In_With_Google::class;188 185 } 189 186 -
google-site-kit/tags/1.148.0/includes/Modules/Ads.php
r3246532 r3253534 23 23 use Google\Site_Kit\Core\Modules\Module_With_Debug_Fields; 24 24 use Google\Site_Kit\Core\Modules\Module_With_Deactivation; 25 use Google\Site_Kit\Core\Modules\Module_With_Persistent_Registration; 25 26 use Google\Site_Kit\Core\Modules\Module_With_Scopes; 26 27 use Google\Site_Kit\Core\Modules\Module_With_Scopes_Trait; … … 35 36 use Google\Site_Kit\Core\Storage\User_Options; 36 37 use Google\Site_Kit\Core\Tags\First_Party_Mode\First_Party_Mode; 38 use Google\Site_Kit\Core\Util\Plugin_Status; 37 39 use Google\Site_Kit\Modules\Ads\PAX_Config; 38 40 use Google\Site_Kit\Modules\Ads\Settings; … … 55 57 * @ignore 56 58 */ 57 final class Ads extends Module implements Module_With_Assets, Module_With_Debug_Fields, Module_With_Scopes, Module_With_Settings, Module_With_Tag, Module_With_Deactivation {59 final class Ads extends Module implements Module_With_Assets, Module_With_Debug_Fields, Module_With_Scopes, Module_With_Settings, Module_With_Tag, Module_With_Deactivation, Module_With_Persistent_Registration { 58 60 use Module_With_Assets_Trait; 59 61 use Module_With_Scopes_Trait; … … 106 108 107 109 add_filter( 'googlesitekit_inline_modules_data', $this->get_method_proxy( 'inline_modules_data' ) ); 110 } 111 112 /** 113 * Registers functionality independent of module activation. 114 * 115 * @since 1.148.0 116 */ 117 public function register_persistent() { 118 add_filter( 'googlesitekit_inline_modules_data', fn ( $data ) => $this->persistent_inline_modules_data( $data ) ); 108 119 } 109 120 … … 190 201 191 202 /** 192 * Populates module data to pass to JS via _googlesitekitModulesData.193 * 194 * @since 1.1 26.0203 * Populates module data needed independent of Ads module activation. 204 * 205 * @since 1.148.0 195 206 * 196 207 * @param array $modules_data Inline modules data. 197 208 * @return array Inline modules data. 198 209 */ 210 protected function persistent_inline_modules_data( $modules_data ) { 211 if ( ! Feature_Flags::enabled( 'adsPax' ) ) { 212 return $modules_data; 213 } 214 215 if ( empty( $modules_data['ads'] ) ) { 216 $modules_data['ads'] = array(); 217 } 218 219 $active_wc = class_exists( 'WooCommerce' ); 220 $active_gla = defined( 'WC_GLA_VERSION' ); 221 222 $gla_ads_conversion_action = get_option( 'gla_ads_conversion_action' ); 223 224 $modules_data['ads']['plugins'] = array( 225 'woocommerce' => array( 226 'active' => $active_wc, 227 'installed' => $active_wc || Plugin_Status::is_plugin_installed( 'woocommerce/woocommerce.php' ), 228 ), 229 'google-listings-and-ads' => array( 230 'active' => $active_gla, 231 'installed' => $active_gla || Plugin_Status::is_plugin_installed( 'google-listings-and-ads/google-listings-and-ads.php' ), 232 'adsConnected' => $active_gla && get_option( 'gla_ads_id' ), 233 'conversionID' => is_array( $gla_ads_conversion_action ) ? $gla_ads_conversion_action['conversion_id'] : '', 234 ), 235 ); 236 237 return $modules_data; 238 } 239 240 /** 241 * Populates module data to pass to JS via _googlesitekitModulesData. 242 * 243 * @since 1.126.0 244 * 245 * @param array $modules_data Inline modules data. 246 * @return array Inline modules data. 247 */ 199 248 private function inline_modules_data( $modules_data ) { 200 if ( Feature_Flags::enabled( 'adsPax' ) ) { 201 // Get detected events. 202 $detected_events = $this->get_supported_conversion_events(); 203 // Add the data under the `ads` key to make it clear it's scoped to this module. 204 $modules_data['ads'] = array( 205 'supportedConversionEvents' => $detected_events, 206 ); 207 } 249 if ( ! Feature_Flags::enabled( 'adsPax' ) ) { 250 return $modules_data; 251 } 252 253 if ( empty( $modules_data['ads'] ) ) { 254 $modules_data['ads'] = array(); 255 } 256 257 $modules_data['ads']['supportedConversionEvents'] = $this->get_supported_conversion_events(); 208 258 209 259 return $modules_data; … … 343 393 $debug_fields = array( 344 394 'ads_conversion_tracking_id' => array( 345 'label' => __( 'Ads: Conversion TrackingID', 'google-site-kit' ),395 'label' => __( 'Ads: Conversion ID', 'google-site-kit' ), 346 396 'value' => $settings['conversionID'], 347 397 'debug' => Debug_Data::redact_debug_value( $settings['conversionID'] ), -
google-site-kit/tags/1.148.0/includes/Modules/Analytics_4.php
r3229883 r3253534 91 91 use Google\Site_Kit\Core\REST_API\REST_Routes; 92 92 use Google\Site_Kit\Core\Tags\First_Party_Mode\First_Party_Mode; 93 use Google\Site_Kit\Modules\Analytics_4\Audience_Settings; 93 94 use Google\Site_Kit\Modules\Analytics_4\Conversion_Reporting\Conversion_Reporting_Cron; 94 95 use Google\Site_Kit\Modules\Analytics_4\Conversion_Reporting\Conversion_Reporting_Events_Sync; … … 172 173 */ 173 174 protected $resource_data_availability_date; 175 176 /** 177 * Audience_Settings instance. 178 * 179 * @since 1.148.0 180 * 181 * @var Audience_Settings 182 */ 183 protected $audience_settings; 174 184 175 185 /** … … 235 245 } 236 246 247 if ( Feature_Flags::enabled( 'audienceSegmentation' ) ) { 248 $this->audience_settings = new Audience_Settings( $this->options ); 249 $this->audience_settings->register(); 250 } 251 237 252 ( new Advanced_Tracking( $this->context ) )->register(); 238 253 … … 311 326 312 327 if ( Feature_Flags::enabled( 'conversionReporting' ) ) { 328 // Reset event detection and new badge events. 329 $this->transients->delete( Conversion_Reporting_Events_Sync::DETECTED_EVENTS_TRANSIENT ); 330 $this->transients->delete( Conversion_Reporting_Events_Sync::LOST_EVENTS_TRANSIENT ); 331 $this->transients->delete( Conversion_Reporting_New_Badge_Events_Sync::NEW_EVENTS_BADGE_TRANSIENT ); 332 333 $this->transients->set( Conversion_Reporting_New_Badge_Events_Sync::SKIP_NEW_BADGE_TRANSIENT, 1 ); 334 313 335 do_action( Conversion_Reporting_Cron::CRON_ACTION ); 314 336 } … … 706 728 'shareable' => true, 707 729 ); 730 $datapoints['GET:audience-settings'] = array( 731 'service' => '', 732 'shareable' => true, 733 ); 734 $datapoints['POST:save-audience-settings'] = array( 735 'service' => '', 736 ); 708 737 } 709 738 … … 809 838 810 839 if ( $this->context->is_amp() ) : ?> 811 <!-- <?php esc_html_e( 'Google Analytics AMP opt-out snippet added by Site Kit', 'google-site-kit' ); ?> -->812 <meta name="ga-opt-out" content="" id="__gaOptOutExtension">813 <!-- <?php esc_html_e( 'End Google Analytics AMP opt-out snippet added by Site Kit', 'google-site-kit' ); ?> -->814 <?php else : ?>815 <!-- <?php esc_html_e( 'Google Analytics opt-out snippet added by Site Kit', 'google-site-kit' ); ?> -->816 <?php840 <!-- <?php esc_html_e( 'Google Analytics AMP opt-out snippet added by Site Kit', 'google-site-kit' ); ?> --> 841 <meta name="ga-opt-out" content="" id="__gaOptOutExtension"> 842 <!-- <?php esc_html_e( 'End Google Analytics AMP opt-out snippet added by Site Kit', 'google-site-kit' ); ?> --> 843 <?php else : ?> 844 <!-- <?php esc_html_e( 'Google Analytics opt-out snippet added by Site Kit', 'google-site-kit' ); ?> --> 845 <?php 817 846 // Opt-out should always use the measurement ID, even when using a GT tag. 818 847 $tag_id = $this->get_measurement_id(); 819 if ( ! empty( $tag_id ) ) {820 BC_Functions::wp_print_inline_script_tag( sprintf( 'window["ga-disable-%s"] = true;', esc_attr( $tag_id ) ) );821 }822 ?>823 <?php do_action( 'googlesitekit_analytics_tracking_opt_out', $property_id, $account_id ); ?>824 <!-- <?php esc_html_e( 'End Google Analytics opt-out snippet added by Site Kit', 'google-site-kit' ); ?> -->825 <?php848 if ( ! empty( $tag_id ) ) { 849 BC_Functions::wp_print_inline_script_tag( sprintf( 'window["ga-disable-%s"] = true;', esc_attr( $tag_id ) ) ); 850 } 851 ?> 852 <?php do_action( 'googlesitekit_analytics_tracking_opt_out', $property_id, $account_id ); ?> 853 <!-- <?php esc_html_e( 'End Google Analytics opt-out snippet added by Site Kit', 'google-site-kit' ); ?> --> 854 <?php 826 855 endif; 827 856 } … … 1470 1499 $custom_dimension 1471 1500 ); 1501 1502 case 'GET:audience-settings': 1503 return function () { 1504 $settings = $this->audience_settings->get(); 1505 return current_user_can( Permissions::MANAGE_OPTIONS ) ? $settings : array_intersect_key( $settings, array_flip( $this->audience_settings->get_view_only_keys() ) ); 1506 }; 1507 1508 case 'POST:save-audience-settings': 1509 if ( ! current_user_can( Permissions::MANAGE_OPTIONS ) ) { 1510 return new WP_Error( 1511 'forbidden', 1512 __( 'User does not have permission to save audience settings.', 'google-site-kit' ), 1513 array( 'status' => 403 ) 1514 ); 1515 } 1516 1517 if ( isset( $data['audienceSegmentationSetupCompletedBy'] ) && ! is_int( $data['audienceSegmentationSetupCompletedBy'] ) ) { 1518 throw new Invalid_Param_Exception( 'audienceSegmentationSetupCompletedBy' ); 1519 } 1520 1521 return function () use ( $data ) { 1522 if ( isset( $data['audienceSegmentationSetupCompletedBy'] ) ) { 1523 $new_settings['audienceSegmentationSetupCompletedBy'] = $data['audienceSegmentationSetupCompletedBy']; 1524 } 1525 1526 $settings = $this->audience_settings->merge( $new_settings ); 1527 1528 return $settings; 1529 }; 1530 1472 1531 case 'POST:sync-audiences': 1473 1532 if ( ! $this->authentication->is_authenticated() ) { -
google-site-kit/tags/1.148.0/includes/Modules/Analytics_4/Conversion_Reporting/Conversion_Reporting_Events_Sync.php
r3221899 r3253534 156 156 $this->new_badge_events_sync->sync_new_badge_events( $new_events ); 157 157 $settings_partial['newConversionEventsLastUpdateAt'] = time(); 158 159 // Remove new events from lost events if present. 160 $saved_lost_events = $this->transients->get( self::LOST_EVENTS_TRANSIENT ); 161 if ( $saved_lost_events ) { 162 $filtered_lost_events = array_diff( $saved_lost_events, $new_events ); 163 $lost_events = array_merge( $lost_events, $filtered_lost_events ); 164 } 158 165 } 159 166 -
google-site-kit/tags/1.148.0/includes/Modules/Analytics_4/Conversion_Reporting/Conversion_Reporting_New_Badge_Events_Sync.php
r3221899 r3253534 26 26 */ 27 27 public const NEW_EVENTS_BADGE_TRANSIENT = 'googlesitekit_conversion_reporting_new_badge_events'; 28 29 /** 30 * The skip new badge events transient name. 31 */ 32 public const SKIP_NEW_BADGE_TRANSIENT = 'googlesitekit_conversion_reporting_skip_new_badge_events'; 28 33 29 34 /** … … 56 61 */ 57 62 public function sync_new_badge_events( $new_events ) { 63 $skip_events_badge = $this->transients->get( self::SKIP_NEW_BADGE_TRANSIENT ); 64 if ( $skip_events_badge ) { 65 $this->transients->delete( self::SKIP_NEW_BADGE_TRANSIENT ); 66 return; 67 } 68 58 69 $new_events_badge = $this->transients->get( self::NEW_EVENTS_BADGE_TRANSIENT ); 59 70 $save_new_badge_transient = fn( $events ) => $this->transients->set( -
google-site-kit/tags/1.148.0/includes/Modules/Reader_Revenue_Manager.php
r3246532 r3253534 12 12 13 13 use Exception; 14 use Google\Site_Kit\Context; 14 15 use Google\Site_Kit\Core\Assets\Asset; 16 use Google\Site_Kit\Core\Assets\Assets; 15 17 use Google\Site_Kit\Core\Assets\Script; 18 use Google\Site_Kit\Core\Assets\Stylesheet; 19 use Google\Site_Kit\Core\Authentication\Authentication; 16 20 use Google\Site_Kit\Core\Authentication\Clients\Google_Site_Kit_Client; 17 21 use Google\Site_Kit\Core\Modules\Module; … … 32 36 use Google\Site_Kit\Core\REST_API\Exception\Missing_Required_Param_Exception; 33 37 use Google\Site_Kit\Core\Site_Health\Debug_Data; 38 use Google\Site_Kit\Core\Storage\Options; 34 39 use Google\Site_Kit\Core\Storage\Post_Meta; 35 use Google\Site_Kit\Core\Storage\ Term_Meta;40 use Google\Site_Kit\Core\Storage\User_Options; 36 41 use Google\Site_Kit\Core\Tags\Guards\Tag_Environment_Type_Guard; 37 42 use Google\Site_Kit\Core\Tags\Guards\Tag_Verify_Guard; 43 use Google\Site_Kit\Core\Util\Block_Support; 38 44 use Google\Site_Kit\Core\Util\Feature_Flags; 39 45 use Google\Site_Kit\Core\Util\URL; 46 use Google\Site_Kit\Modules\Reader_Revenue_Manager\Admin_Post_List; 47 use Google\Site_Kit\Modules\Reader_Revenue_Manager\Contribute_With_Google_Block; 48 use Google\Site_Kit\Modules\Reader_Revenue_Manager\Subscribe_With_Google_Block; 40 49 use Google\Site_Kit\Modules\Reader_Revenue_Manager\Post_Product_ID; 41 use Google\Site_Kit\Modules\Reader_Revenue_Manager\Term_Product_ID;42 50 use Google\Site_Kit\Modules\Reader_Revenue_Manager\Settings; 43 51 use Google\Site_Kit\Modules\Reader_Revenue_Manager\Synchronize_Publication; … … 69 77 70 78 /** 79 * Post_Product_ID instance. 80 * 81 * @since 1.148.0 82 * 83 * @var Post_Product_ID 84 */ 85 private $post_product_id; 86 87 /** 88 * Contribute_With_Google_Block instance. 89 * 90 * @since 1.148.0 91 * 92 * @var Contribute_With_Google_Block 93 */ 94 private $contribute_with_google_block; 95 96 /** 97 * Subscribe_With_Google_Block instance. 98 * 99 * @since 1.148.0 100 * 101 * @var Subscribe_With_Google_Block 102 */ 103 private $subscribe_with_google_block; 104 105 /** 106 * Tag_Guard instance. 107 * 108 * @since 1.148.0 109 * 110 * @var Tag_Guard 111 */ 112 private $tag_guard; 113 114 /** 115 * Constructor. 116 * 117 * @since 1.148.0 118 * 119 * @param Context $context Plugin context. 120 * @param Options $options Optional. Option API instance. Default is a new instance. 121 * @param User_Options $user_options Optional. User Option API instance. Default is a new instance. 122 * @param Authentication $authentication Optional. Authentication instance. Default is a new instance. 123 * @param Assets $assets Optional. Assets API instance. Default is a new instance. 124 */ 125 public function __construct( 126 Context $context, 127 Options $options = null, 128 User_Options $user_options = null, 129 Authentication $authentication = null, 130 Assets $assets = null 131 ) { 132 parent::__construct( $context, $options, $user_options, $authentication, $assets ); 133 134 $post_meta = new Post_Meta(); 135 $settings = $this->get_settings(); 136 137 $this->post_product_id = new Post_Product_ID( $post_meta, $settings ); 138 $this->tag_guard = new Tag_Guard( $settings, $this->post_product_id ); 139 $this->contribute_with_google_block = new Contribute_With_Google_Block( $this->context, $this->tag_guard, $settings ); 140 $this->subscribe_with_google_block = new Subscribe_With_Google_Block( $this->context, $this->tag_guard, $settings ); 141 } 142 143 /** 71 144 * Registers functionality through WordPress hooks. 72 145 * … … 83 156 84 157 if ( Feature_Flags::enabled( 'rrmModuleV2' ) && $this->is_connected() ) { 85 $post_meta = new Post_Meta(); 86 $publication_id = $this->get_settings()->get()['publicationID']; 87 $post_product_id = new Post_Product_ID( $post_meta, $publication_id ); 88 $post_product_id->register(); 89 90 $term_meta = new Term_Meta(); 91 $term_product_id = new Term_Product_ID( $term_meta, $publication_id ); 92 $term_product_id->register(); 158 $this->post_product_id->register(); 159 160 $admin_post_list = new Admin_Post_List( 161 $this->get_settings(), 162 $this->post_product_id 163 ); 164 $admin_post_list->register(); 165 166 if ( Block_Support::has_block_support() ) { 167 $this->contribute_with_google_block->register(); 168 $this->subscribe_with_google_block->register(); 169 } 93 170 } 94 171 … … 411 488 'googlesitekit-data', 412 489 'googlesitekit-modules', 490 'googlesitekit-notifications', 413 491 'googlesitekit-datastore-site', 414 492 'googlesitekit-datastore-user', … … 419 497 ); 420 498 421 if ( Feature_Flags::enabled( 'rrmModuleV2' ) ) {499 if ( Feature_Flags::enabled( 'rrmModuleV2' ) && Block_Support::has_block_support() ) { 422 500 $assets[] = new Script( 423 ' googlesitekit-reader-revenue-manager-block-editor',501 'blocks-reader-revenue-manager-block-editor-plugin', 424 502 array( 425 'src' => $base_url . 'js/blocks/googlesitekit-reader-revenue-manager-block-editor.js', 503 'src' => $base_url . 'js/blocks/reader-revenue-manager/block-editor-plugin/index.js', 504 'dependencies' => array( 505 'googlesitekit-data', 506 'googlesitekit-i18n', 507 'googlesitekit-modules', 508 'googlesitekit-modules-reader-revenue-manager', 509 ), 510 'execution' => 'defer', 511 'load_contexts' => array( Asset::CONTEXT_ADMIN_POST_EDITOR ), 512 ) 513 ); 514 515 $assets[] = new Stylesheet( 516 'blocks-reader-revenue-manager-block-editor-plugin-styles', 517 array( 518 'src' => $base_url . 'js/blocks/reader-revenue-manager/block-editor-plugin/editor-styles.css', 519 'dependencies' => array(), 520 'load_contexts' => array( Asset::CONTEXT_ADMIN_POST_EDITOR ), 521 ) 522 ); 523 524 $assets[] = new Script( 525 'blocks-contribute-with-google', 526 array( 527 'src' => $base_url . 'js/blocks/reader-revenue-manager/contribute-with-google/index.js', 528 'dependencies' => array( 529 'googlesitekit-data', 530 'googlesitekit-i18n', 531 'googlesitekit-modules', 532 'googlesitekit-modules-reader-revenue-manager', 533 ), 534 'load_contexts' => array( Asset::CONTEXT_ADMIN_POST_EDITOR ), 535 'execution' => 'defer', 536 ) 537 ); 538 539 $assets[] = new Script( 540 'blocks-subscribe-with-google', 541 array( 542 'src' => $base_url . 'js/blocks/reader-revenue-manager/subscribe-with-google/index.js', 543 'dependencies' => array( 544 'googlesitekit-data', 545 'googlesitekit-i18n', 546 'googlesitekit-modules', 547 'googlesitekit-modules-reader-revenue-manager', 548 ), 549 'load_contexts' => array( Asset::CONTEXT_ADMIN_POST_EDITOR ), 550 'execution' => 'defer', 551 ) 552 ); 553 554 $assets[] = new Stylesheet( 555 'blocks-reader-revenue-manager-common-editor-styles', 556 array( 557 'src' => $base_url . 'js/blocks/reader-revenue-manager/common/editor-styles.css', 426 558 'dependencies' => array(), 427 559 'load_contexts' => array( Asset::CONTEXT_ADMIN_POST_EDITOR ), … … 460 592 461 593 $tag->use_guard( new Tag_Verify_Guard( $this->context->input() ) ); 462 $tag->use_guard( new Tag_Guard( $module_settings ));594 $tag->use_guard( $this->tag_guard ); 463 595 $tag->use_guard( new Tag_Environment_Type_Guard() ); 464 596 … … 467 599 } 468 600 601 $product_id = 'openaccess'; 602 603 if ( Feature_Flags::enabled( 'rrmModuleV2' ) ) { 604 $product_id = $settings['productID']; 605 $post_product_id = ''; 606 607 if ( is_singular() ) { 608 $post_product_id = $this->post_product_id->get( get_the_ID() ); 609 610 if ( ! empty( $post_product_id ) ) { 611 $product_id = $post_product_id; 612 } 613 } 614 615 // Extract the product ID from the setting, which is in the format 616 // of `publicationID:productID`. 617 if ( 'openaccess' !== $product_id ) { 618 $separator_index = strpos( $product_id, ':' ); 619 620 if ( false !== $separator_index ) { 621 $product_id = substr( $product_id, $separator_index + 1 ); 622 } 623 } 624 } 625 626 $tag->set_product_id( $product_id ); 469 627 $tag->register(); 470 628 } -
google-site-kit/tags/1.148.0/includes/Modules/Reader_Revenue_Manager/Post_Product_ID.php
r3238118 r3253534 11 11 namespace Google\Site_Kit\Modules\Reader_Revenue_Manager; 12 12 13 use Google\Site_Kit\Core\Storage\Meta_Setting_Trait; 13 14 use Google\Site_Kit\Core\Storage\Post_Meta; 14 use Google\Site_Kit\ Core\Storage\Meta_Setting_Trait;15 use Google\Site_Kit\Modules\Reader_Revenue_Manager\Settings; 15 16 16 17 /** … … 26 27 27 28 /** 28 * Publication ID.29 * Settings instance. 29 30 * 30 * @since 1.14 5.031 * @since 1.148.0 31 32 * 32 * @var string33 * @var Settings 33 34 */ 34 private string $publication_id;35 private $settings; 35 36 36 37 /** … … 40 41 * 41 42 * @param Post_Meta $post_meta Post_Meta instance. 42 * @param string $publication_id Publication ID.43 * @param Settings $settings Reader Revenue Manager module settings instance. 43 44 */ 44 public function __construct( Post_Meta $post_meta, string $publication_id) {45 $this->meta = $post_meta;46 $this-> publication_id = $publication_id;45 public function __construct( Post_Meta $post_meta, Settings $settings ) { 46 $this->meta = $post_meta; 47 $this->settings = $settings; 47 48 } 48 49 … … 55 56 */ 56 57 protected function get_meta_key(): string { 57 return 'googlesitekit_rrm_' . $this->publication_id . ':productID'; 58 $publication_id = $this->settings->get()['publicationID']; 59 return 'googlesitekit_rrm_' . $publication_id . ':productID'; 58 60 } 59 61 -
google-site-kit/tags/1.148.0/includes/Modules/Reader_Revenue_Manager/Settings.php
r3229883 r3253534 101 101 */ 102 102 public function get_view_only_keys() { 103 return array(); 103 $keys = array( 104 'publicationID', 105 ); 106 107 if ( Feature_Flags::enabled( 'rrmModuleV2' ) ) { 108 $keys = array_merge( 109 $keys, 110 array( 111 'snippetMode', 112 'postTypes', 113 'paymentOption', 114 ) 115 ); 116 } 117 118 return $keys; 104 119 } 105 120 -
google-site-kit/tags/1.148.0/includes/Modules/Reader_Revenue_Manager/Tag_Guard.php
r3127664 r3253534 11 11 namespace Google\Site_Kit\Modules\Reader_Revenue_Manager; 12 12 13 use Google\Site_Kit\Core\Modules\Module_Settings; 13 14 use Google\Site_Kit\Core\Modules\Tags\Module_Tag_Guard; 15 use Google\Site_Kit\Core\Util\Feature_Flags; 16 use Google\Site_Kit\Modules\Reader_Revenue_Manager\Post_Product_ID; 14 17 15 18 /** … … 23 26 24 27 /** 28 * Post_Product_ID instance. 29 * 30 * @since 1.148.0 31 * 32 * @var Post_Product_ID 33 */ 34 private $post_product_id; 35 36 /** 37 * Constructor. 38 * 39 * @since 1.148.0 40 * 41 * @param Module_Settings $settings Module settings instance. 42 * @param Post_Product_ID $post_product_id Post_Product_ID instance. 43 */ 44 public function __construct( Module_Settings $settings, $post_product_id ) { 45 parent::__construct( $settings ); 46 47 $this->post_product_id = $post_product_id; 48 } 49 50 /** 25 51 * Determines whether the guarded tag can be activated or not. 26 52 * … … 31 57 public function can_activate() { 32 58 $settings = $this->settings->get(); 33 return ! empty( $settings['publicationID'] ); 59 60 if ( empty( $settings['publicationID'] ) ) { 61 return false; 62 } 63 64 if ( ! Feature_Flags::enabled( 'rrmModuleV2' ) ) { 65 return true; 66 } 67 68 if ( is_singular() ) { 69 return $this->can_activate_for_singular_post(); 70 } 71 72 return 'sitewide' === $settings['snippetMode']; 73 } 74 75 /** 76 * Determines whether the guarded tag can be activated for a singular post or not. 77 * 78 * @since 1.148.0 79 * 80 * @return bool TRUE if guarded tag can be activated for a singular post, otherwise FALSE. 81 */ 82 private function can_activate_for_singular_post() { 83 $post_product_id = $this->post_product_id->get( get_the_ID() ); 84 85 if ( 'none' === $post_product_id ) { 86 return false; 87 } 88 89 if ( ! empty( $post_product_id ) ) { 90 return true; 91 } 92 93 $settings = $this->settings->get(); 94 95 // If the snippet mode is `per_post` and there is no post product ID, 96 // we don't want to render the tag. 97 if ( 'per_post' === $settings['snippetMode'] ) { 98 return false; 99 } 100 101 // If the snippet mode is `post_types`, we only want to render the tag 102 // if the current post type is in the list of allowed post types. 103 if ( 'post_types' === $settings['snippetMode'] ) { 104 /** 105 * Filters the post types where Reader Revenue Manager CTAs should appear. 106 * 107 * @since 1.140.0 108 * 109 * @param array $cta_post_types The array of post types. 110 */ 111 $cta_post_types = apply_filters( 112 'googlesitekit_reader_revenue_manager_cta_post_types', 113 $settings['postTypes'] 114 ); 115 116 return in_array( get_post_type(), $cta_post_types, true ); 117 } 118 119 // Snippet mode is `sitewide` at this point, so we want to render the tag. 120 return true; 34 121 } 35 122 } -
google-site-kit/tags/1.148.0/includes/Modules/Reader_Revenue_Manager/Web_Tag.php
r3191565 r3253534 26 26 use Method_Proxy_Trait; 27 27 use Tag_With_DNS_Prefetch_Trait; 28 29 /** 30 * Product ID. 31 * 32 * @since 1.148.0 33 * 34 * @var string 35 */ 36 private $product_id; 37 38 /** 39 * Sets the product ID. 40 * 41 * @since 1.148.0 42 * 43 * @param string $product_id Product ID. 44 */ 45 public function set_product_id( $product_id ) { 46 $this->product_id = $product_id; 47 } 28 48 29 49 /** … … 61 81 $locale = str_replace( '_', '-', get_locale() ); 62 82 83 /** 84 * Filters the Reader Revenue Manager product ID. 85 * 86 * @since 1.148.0 87 * 88 * @param string $product_id The array of post types. 89 */ 90 $product_id = apply_filters( 91 'googlesitekit_reader_revenue_manager_product_id', 92 $this->product_id 93 ); 94 63 95 $subscription = array( 64 96 'type' => 'NewsArticle', 65 97 'isPartOfType' => array( 'Product' ), 66 'isPartOfProductId' => $this->tag_id . ': openaccess',98 'isPartOfProductId' => $this->tag_id . ':' . $product_id, 67 99 'clientOptions' => array( 68 100 'theme' => 'light', … … 87 119 wp_add_inline_script( 'google_swgjs', $swg_inline_script, 'before' ); 88 120 89 /** 90 * Filters the post types where Reader Revenue Manager CTAs should appear. 91 * 92 * @since 1.140.0 93 * 94 * @param array $cta_post_types The array of post types. 95 */ 96 $cta_post_types = apply_filters( 97 'googlesitekit_reader_revenue_manager_cta_post_types', 98 array( 'post' ) 99 ); 100 101 if ( is_singular( $cta_post_types ) ) { 102 wp_enqueue_script( 'google_swgjs' ); 103 } 121 wp_enqueue_script( 'google_swgjs' ); 104 122 } 105 123 -
google-site-kit/tags/1.148.0/includes/Modules/Sign_In_With_Google.php
r3246532 r3253534 17 17 use Google\Site_Kit\Core\Assets\Stylesheet; 18 18 use Google\Site_Kit\Core\Authentication\Authentication; 19 use Google\Site_Kit\Core\Conversion_Tracking\Conversion_Event_Providers\WooCommerce;20 19 use Google\Site_Kit\Core\Modules\Module; 21 20 use Google\Site_Kit\Core\Modules\Module_With_Assets; … … 34 33 use Google\Site_Kit\Core\Util\BC_Functions; 35 34 use Google\Site_Kit\Core\Util\Method_Proxy_Trait; 35 use Google\Site_Kit\Core\Util\Plugin_Status; 36 36 use Google\Site_Kit\Modules\Sign_In_With_Google\Authenticator; 37 37 use Google\Site_Kit\Modules\Sign_In_With_Google\Authenticator_Interface; … … 92 92 93 93 /** 94 * WooCommerce instance. 95 * 96 * @since 1.146.0 97 * @var WooCommerce 98 */ 99 protected $woocommerce; 94 * Stores the active state of the WooCommerce plugin. 95 * 96 * @since 1.148.0 97 * @var bool Whether WooCommerce is active or not. 98 */ 99 protected $is_woocommerce_active; 100 100 101 101 102 /** … … 118 119 ) { 119 120 parent::__construct( $context, $options, $user_options, $authentication, $assets ); 121 120 122 $this->existing_client_id = new Existing_Client_ID( $this->options ); 121 123 $this->sign_in_with_google_block = new Sign_In_With_Google_Block( $this->context ); 122 $this->woocommerce = new WooCommerce( $this->context );123 124 } 124 125 … … 368 369 * 369 370 * - the Sign in with Google module is connected 370 * - WooCommerce is active371 371 * - the user is not logged in 372 372 */ 373 if ( ! $this->is_connected() || ! $this->woocommerce->is_active() ||is_user_logged_in() ) {373 if ( ! $this->is_connected() || is_user_logged_in() ) { 374 374 return; 375 375 } … … 389 389 */ 390 390 private function render_signinwithgoogle() { 391 $is_wp_login = is_login(); 391 // `is_login()` isn't available until WP 6.1. 392 $is_wp_login = false !== stripos( wp_login_url(), $_SERVER['SCRIPT_NAME'] ?? '' ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput 392 393 $is_woocommerce = class_exists( 'woocommerce' ); 393 394 $is_woocommerce_login = did_action( 'woocommerce_login_form_start' ); … … 621 622 * @since 1.140.0 622 623 * 623 * @return string TRUE if tag is found, FALSE if not.624 * @return string|array 624 625 */ 625 626 public function get_content_url() { 626 627 $wp_login_url = wp_login_url(); 627 628 628 if ( $this-> woocommerce->is_active() ) {629 if ( $this->is_woocommerce_active() ) { 629 630 $wc_login_page_id = wc_get_page_id( 'myaccount' ); 630 631 $wc_login_url = get_permalink( $wc_login_page_id ); … … 781 782 } 782 783 783 $is_woocommerce_active = $this-> woocommerce->is_active();784 $is_woocommerce_active = $this->is_woocommerce_active(); 784 785 $woocommerce_registration_enabled = $is_woocommerce_active ? get_option( 'woocommerce_enable_myaccount_registration' ) : null; 785 786 … … 792 793 return $modules_data; 793 794 } 795 796 /** 797 * Helper method to determine if the WooCommerce plugin is active. 798 * 799 * @since 1.148.0 800 * 801 * @return bool True if active, false if not. 802 */ 803 protected function is_woocommerce_active() { 804 return class_exists( 'WooCommerce' ); 805 } 794 806 } -
google-site-kit/tags/1.148.0/includes/Modules/Sign_In_With_Google/Sign_In_With_Google_Block.php
r3246532 r3253534 12 12 13 13 use Google\Site_Kit\Context; 14 use Google\Site_Kit\Core\Util\Block_Support; 14 15 15 16 /** … … 46 47 */ 47 48 public static function can_register() { 48 $wp_version = get_bloginfo( 'version' ); 49 // The block currently requires version WP 5.8 or higher. 50 return (bool) version_compare( '5.8', $wp_version, '<=' ); 49 return Block_Support::has_block_support(); 51 50 } 52 51 -
google-site-kit/tags/1.148.0/includes/vendor/composer/autoload_classmap.php
r3246532 r3253534 214 214 'Google\\Site_Kit\\Core\\Util\\Auto_Updates' => $baseDir . '/Core/Util/Auto_Updates.php', 215 215 'Google\\Site_Kit\\Core\\Util\\BC_Functions' => $baseDir . '/Core/Util/BC_Functions.php', 216 'Google\\Site_Kit\\Core\\Util\\Block_Support' => $baseDir . '/Core/Util/Block_Support.php', 216 217 'Google\\Site_Kit\\Core\\Util\\Collection_Key_Cap_Filter' => $baseDir . '/Core/Util/Collection_Key_Cap_Filter.php', 217 218 'Google\\Site_Kit\\Core\\Util\\Date' => $baseDir . '/Core/Util/Date.php', … … 232 233 'Google\\Site_Kit\\Core\\Util\\Migration_1_3_0' => $baseDir . '/Core/Util/Migration_1_3_0.php', 233 234 'Google\\Site_Kit\\Core\\Util\\Migration_1_8_1' => $baseDir . '/Core/Util/Migration_1_8_1.php', 235 'Google\\Site_Kit\\Core\\Util\\Plugin_Status' => $baseDir . '/Core/Util/Plugin_Status.php', 234 236 'Google\\Site_Kit\\Core\\Util\\REST_Entity_Search_Controller' => $baseDir . '/Core/Util/REST_Entity_Search_Controller.php', 235 237 'Google\\Site_Kit\\Core\\Util\\Requires_Javascript_Trait' => $baseDir . '/Core/Util/Requires_Javascript_Trait.php', … … 271 273 'Google\\Site_Kit\\Modules\\Analytics_4\\Advanced_Tracking\\Event_List_Registry' => $baseDir . '/Modules/Analytics_4/Advanced_Tracking/Event_List_Registry.php', 272 274 'Google\\Site_Kit\\Modules\\Analytics_4\\Advanced_Tracking\\Script_Injector' => $baseDir . '/Modules/Analytics_4/Advanced_Tracking/Script_Injector.php', 275 'Google\\Site_Kit\\Modules\\Analytics_4\\Audience_Settings' => $baseDir . '/Modules/Analytics_4/Audience_Settings.php', 273 276 'Google\\Site_Kit\\Modules\\Analytics_4\\Conversion_Reporting\\Conversion_Reporting_Cron' => $baseDir . '/Modules/Analytics_4/Conversion_Reporting/Conversion_Reporting_Cron.php', 274 277 'Google\\Site_Kit\\Modules\\Analytics_4\\Conversion_Reporting\\Conversion_Reporting_Events_Sync' => $baseDir . '/Modules/Analytics_4/Conversion_Reporting/Conversion_Reporting_Events_Sync.php', … … 310 313 'Google\\Site_Kit\\Modules\\PageSpeed_Insights\\Settings' => $baseDir . '/Modules/PageSpeed_Insights/Settings.php', 311 314 'Google\\Site_Kit\\Modules\\Reader_Revenue_Manager' => $baseDir . '/Modules/Reader_Revenue_Manager.php', 315 'Google\\Site_Kit\\Modules\\Reader_Revenue_Manager\\Admin_Post_List' => $baseDir . '/Modules/Reader_Revenue_Manager/Admin_Post_List.php', 316 'Google\\Site_Kit\\Modules\\Reader_Revenue_Manager\\Contribute_With_Google_Block' => $baseDir . '/Modules/Reader_Revenue_Manager/Contribute_With_Google_Block.php', 312 317 'Google\\Site_Kit\\Modules\\Reader_Revenue_Manager\\Post_Product_ID' => $baseDir . '/Modules/Reader_Revenue_Manager/Post_Product_ID.php', 313 318 'Google\\Site_Kit\\Modules\\Reader_Revenue_Manager\\Settings' => $baseDir . '/Modules/Reader_Revenue_Manager/Settings.php', 319 'Google\\Site_Kit\\Modules\\Reader_Revenue_Manager\\Subscribe_With_Google_Block' => $baseDir . '/Modules/Reader_Revenue_Manager/Subscribe_With_Google_Block.php', 314 320 'Google\\Site_Kit\\Modules\\Reader_Revenue_Manager\\Synchronize_Publication' => $baseDir . '/Modules/Reader_Revenue_Manager/Synchronize_Publication.php', 315 321 'Google\\Site_Kit\\Modules\\Reader_Revenue_Manager\\Tag_Guard' => $baseDir . '/Modules/Reader_Revenue_Manager/Tag_Guard.php', 316 322 'Google\\Site_Kit\\Modules\\Reader_Revenue_Manager\\Tag_Matchers' => $baseDir . '/Modules/Reader_Revenue_Manager/Tag_Matchers.php', 317 'Google\\Site_Kit\\Modules\\Reader_Revenue_Manager\\Term_Product_ID' => $baseDir . '/Modules/Reader_Revenue_Manager/Term_Product_ID.php',318 323 'Google\\Site_Kit\\Modules\\Reader_Revenue_Manager\\Web_Tag' => $baseDir . '/Modules/Reader_Revenue_Manager/Web_Tag.php', 319 324 'Google\\Site_Kit\\Modules\\Search_Console' => $baseDir . '/Modules/Search_Console.php', -
google-site-kit/tags/1.148.0/readme.txt
r3246532 r3253534 5 5 Tested up to: 6.7 6 6 Requires PHP: 7.4 7 Stable tag: 1.14 7.07 Stable tag: 1.148.0 8 8 License: Apache License 2.0 9 9 License URI: https://www.apache.org/licenses/LICENSE-2.0 … … 110 110 == Changelog == 111 111 112 = 1.147.0 = 112 = 1.148.0 = 113 114 **Added** 115 116 * Unregister the `PartnerAdsPAXWidget` widget. See [#10219](https://github.com/google/site-kit-wp/issues/10219). 113 117 114 118 **Enhanced** 115 119 116 * Retain the publication ID prefix for product IDs when storing them in Reader Revenue Manager settings. See [#10228](https://github.com/google/site-kit-wp/issues/10228). 117 * Update URL for RRM publication creation to streamline configuration. See [#10166](https://github.com/google/site-kit-wp/issues/10166). 118 * Update the Analytics zero-data report to include the comparison date range, ensuring we check for data across both the previous and current date range when determining the gathering data state. See [#10105](https://github.com/google/site-kit-wp/issues/10105). 119 * Add Reader Revenue Manager introductory overlay notifications. See [#10070](https://github.com/google/site-kit-wp/issues/10070). 120 * Add Reader Revenue Manager product ID notifications. See [#10069](https://github.com/google/site-kit-wp/issues/10069). 121 * Add a new "CTA placement" section to the Reader Revenue Manager settings, allowing users to select where CTAs should appear using a dropdown and chip multi-select. See [#10066](https://github.com/google/site-kit-wp/issues/10066). 122 * Add the learn more link to the lost events banner. See [#10045](https://github.com/google/site-kit-wp/issues/10045). 123 * Update Ads PAX Application to be aware of supported conversion events. See [#10032](https://github.com/google/site-kit-wp/issues/10032). 120 * Update the Ads setup CTA banner to appear before the Audience Segmentation banner. See [#10290](https://github.com/google/site-kit-wp/issues/10290). 121 * Update the "Learn more" link in the Ads Module Setup banner. See [#10278](https://github.com/google/site-kit-wp/issues/10278). 122 * Show warning when Google for WooCommerce ads account is enabled. See [#10257](https://github.com/google/site-kit-wp/issues/10257). 123 * Add WordPress post list bulk edit setting for Reader Revenue Manager. See [#10248](https://github.com/google/site-kit-wp/issues/10248). 124 * Update the Ads module setup layout. See [#10193](https://github.com/google/site-kit-wp/issues/10193). 125 * Fix bug that could cause console errors when answering tailored metrics questions. See [#10182](https://github.com/google/site-kit-wp/issues/10182). 126 * Add the subtle notification component for existing Google for WooCommerce Ads users. See [#10176](https://github.com/google/site-kit-wp/issues/10176). 127 * Update Ads Setup CTA to add support for WooCommerce plugins. See [#10175](https://github.com/google/site-kit-wp/issues/10175). 128 * Add the `WooCommerceRedirectModal` component. See [#10172](https://github.com/google/site-kit-wp/issues/10172). 129 * Add plugin detection selectors to the core/site datastore. See [#10170](https://github.com/google/site-kit-wp/issues/10170). 130 * Add support for detecting WooCommerce and Google for Woo plugins. See [#10169](https://github.com/google/site-kit-wp/issues/10169). 131 * Handle the error case where the saved product ID is no longer available in the current Reader Revenue Manager publication. See [#10131](https://github.com/google/site-kit-wp/issues/10131). 132 * Display context-aware messaging based on the publication’s monetization mode in the Reader Revenue Manager module's the setup success notification. See [#10068](https://github.com/google/site-kit-wp/issues/10068). 133 * Add a dropdown and associated informational elements to the Reader Revenue Manager setup and settings screens, to aid the selection of a product ID. See [#10065](https://github.com/google/site-kit-wp/issues/10065). 134 * Enable conditional and context-aware placement of the Reader Revenue Manager code snippet. See [#9973](https://github.com/google/site-kit-wp/issues/9973). 135 * Add WordPress editor blocks for Reader Revenue Manager inline CTA buttons. See [#9963](https://github.com/google/site-kit-wp/issues/9963). 136 * Add a panel to the WordPress post editor to users to override the Reader Revenue Manager snippet configuration at the post level. See [#9962](https://github.com/google/site-kit-wp/issues/9962). 137 * When enabling groups, ensure Analytics scope is only requested when needed. See [#9595](https://github.com/google/site-kit-wp/issues/9595). 138 * Rework the Auto Update banner to use the new notification infrastructure. See [#9295](https://github.com/google/site-kit-wp/issues/9295). 124 139 125 140 **Changed** 126 141 127 * Move js dependencies required for backstop tests to their own workspace. See [#10093](https://github.com/google/site-kit-wp/issues/10093). 128 * Refactor filtering of `(not set)` values in reports to use the new `EmptyFilter` filter type. See [#10059](https://github.com/google/site-kit-wp/issues/10059). 129 * Implement the Sign in with Google block. See [#10046](https://github.com/google/site-kit-wp/issues/10046). 130 * Move e2e related dependencies into their own workspace. See [#10013](https://github.com/google/site-kit-wp/issues/10013). 131 * Refactor report filters so as to be usable for both dimensions and metrics. See [#7634](https://github.com/google/site-kit-wp/issues/7634). 142 * Ensure that client-side filtering of unset Analytics report values filters out empty strings as well as '(not set)', to align with changes to the Analytics Data API. See [#10143](https://github.com/google/site-kit-wp/issues/10143). 132 143 133 144 **Fixed** 134 145 135 * Fix error that could occur on the dashboard when connecting a new Analytics account after connecting a previously-connected account. See [#10187](https://github.com/google/site-kit-wp/issues/10187). 136 * Fix Key Metrics positioning on large screens. See [#10050](https://github.com/google/site-kit-wp/issues/10050). 137 * Update description of the new detected events notice. See [#10049](https://github.com/google/site-kit-wp/issues/10049). 138 * Update language used in tailored metrics questionnaire. See [#10040](https://github.com/google/site-kit-wp/issues/10040). 139 * Fix incorrect dismiss notification event tracking. See [#10038](https://github.com/google/site-kit-wp/issues/10038). 140 * Fix duplicate survey triggers issue. See [#10036](https://github.com/google/site-kit-wp/issues/10036). 146 * Fix the console error that appears when the `conversionReporting` flag is enabled and the Analytics module is not connected. See [#10289](https://github.com/google/site-kit-wp/issues/10289). 147 * Add a datastore slice with actions and selectors for retrieving and updating the new set of audience settings. See [#10154](https://github.com/google/site-kit-wp/issues/10154). 148 * Add a new option for audience settings, with REST endpoints to retrieve and update it. See [#10153](https://github.com/google/site-kit-wp/issues/10153). 149 * Hide the new badge in the key metrics settings when they have been configured in the full screen editing for the first time. See [#10083](https://github.com/google/site-kit-wp/issues/10083). 141 150 142 151 [See changelog for all versions](https://raw.githubusercontent.com/google/site-kit-wp/main/changelog.txt). -
google-site-kit/trunk/dist/assets/js/blocks/sign-in-with-google/block.json
r3246532 r3253534 3 3 "apiVersion": 2, 4 4 "name": "google-site-kit/sign-in-with-google", 5 "version": "1.14 7.0",5 "version": "1.148.0", 6 6 "title": "Sign in with Google", 7 7 "category": "widgets", -
google-site-kit/trunk/dist/assets/js/blocks/sign-in-with-google/editor-styles.js
r3246532 r3253534 1 !function(e){var _={};function __webpack_require__(r){if(_[r])return _[r].exports;var t=_[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,__webpack_require__),t.l=!0,t.exports}__webpack_require__.m=e,__webpack_require__.c=_,__webpack_require__.d=function(e,_,r){__webpack_require__.o(e,_)||Object.defineProperty(e,_,{enumerable:!0,get:r})},__webpack_require__.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.t=function(e,_){if(1&_&&(e=__webpack_require__(e)),8&_)return e;if(4&_&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(__webpack_require__.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&_&&"string"!=typeof e)for(var t in e)__webpack_require__.d(r,t,function(_){return e[_]}.bind(null,t));return r},__webpack_require__.n=function(e){var _=e&&e.__esModule?function(){return e.default}:function(){return e};return __webpack_require__.d(_,"a",_),_},__webpack_require__.o=function(e,_){return Object.prototype.hasOwnProperty.call(e,_)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s= 7)}({7:function(e,_,r){"use strict";r.r(_)}});1 !function(e){var _={};function __webpack_require__(r){if(_[r])return _[r].exports;var t=_[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,__webpack_require__),t.l=!0,t.exports}__webpack_require__.m=e,__webpack_require__.c=_,__webpack_require__.d=function(e,_,r){__webpack_require__.o(e,_)||Object.defineProperty(e,_,{enumerable:!0,get:r})},__webpack_require__.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.t=function(e,_){if(1&_&&(e=__webpack_require__(e)),8&_)return e;if(4&_&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(__webpack_require__.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&_&&"string"!=typeof e)for(var t in e)__webpack_require__.d(r,t,function(_){return e[_]}.bind(null,t));return r},__webpack_require__.n=function(e){var _=e&&e.__esModule?function(){return e.default}:function(){return e};return __webpack_require__.d(_,"a",_),_},__webpack_require__.o=function(e,_){return Object.prototype.hasOwnProperty.call(e,_)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s=43)}({43:function(e,_,r){"use strict";r.r(_)}}); -
google-site-kit/trunk/dist/assets/js/blocks/sign-in-with-google/index.js
r3246532 r3253534 1 !function(e){var t={};function __webpack_require__(r){if(t[r])return t[r].exports;var n=t[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,__webpack_require__),n.l=!0,n.exports}__webpack_require__.m=e,__webpack_require__.c=t,__webpack_require__.d=function(e,t,r){__webpack_require__.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},__webpack_require__.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.t=function(e,t){if(1&t&&(e=__webpack_require__(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(__webpack_require__.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)__webpack_require__.d(r,n,function(t){return e[t]}.bind(null,n));return r},__webpack_require__.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return __webpack_require__.d(t,"a",t),t},__webpack_require__.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s= 8)}([function(e,t,r){"use strict";e.exports=r(5)},function(e,t){e.exports=wp.blocks},function(e,t){e.exports=wp.blockEditor},function(e){e.exports=JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"google-site-kit/sign-in-with-google","version":"1.147.0","title":"Sign in with Google","category":"widgets","icon":"google","description":"Allow users to sign in to your site using their Google Account.","textdomain":"google-site-kit"}')},,function(e,t,r){"use strict";var n=r(6),A="function"==typeof Symbol&&Symbol.for,o=A?Symbol.for("react.element"):60103,i=A?Symbol.for("react.portal"):60106,u=A?Symbol.for("react.fragment"):60107,c=A?Symbol.for("react.strict_mode"):60108,l=A?Symbol.for("react.profiler"):60114,a=A?Symbol.for("react.provider"):60109,f=A?Symbol.for("react.context"):60110,s=A?Symbol.for("react.forward_ref"):60112,p=A?Symbol.for("react.suspense"):60113,g=A?Symbol.for("react.memo"):60115,v=A?Symbol.for("react.lazy"):60116,C="function"==typeof Symbol&&Symbol.iterator;function h(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=1;r<arguments.length;r++)t+="&args[]="+encodeURIComponent(arguments[r]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var y={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},w={};function B(e,t,r){this.props=e,this.context=t,this.refs=w,this.updater=r||y}function b(){}function m(e,t,r){this.props=e,this.context=t,this.refs=w,this.updater=r||y}B.prototype.isReactComponent={},B.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(h(85));this.updater.enqueueSetState(this,e,t,"setState")},B.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=B.prototype;var E=m.prototype=new b;E.constructor=m,n(E,B.prototype),E.isPureReactComponent=!0;var R={current:null},d=Object.prototype.hasOwnProperty,Y={key:!0,ref:!0,__self:!0,__source:!0};function j(e,t,r){var n,A={},i=null,u=null;if(null!=t)for(n in void 0!==t.ref&&(u=t.ref),void 0!==t.key&&(i=""+t.key),t)d.call(t,n)&&!Y.hasOwnProperty(n)&&(A[n]=t[n]);var c=arguments.length-2;if(1===c)A.children=r;else if(1<c){for(var l=Array(c),a=0;a<c;a++)l[a]=arguments[a+2];A.children=l}if(e&&e.defaultProps)for(n in c=e.defaultProps)void 0===A[n]&&(A[n]=c[n]);return{$$typeof:o,type:e,key:i,ref:u,props:A,_owner:R.current}}function G(e){return"object"==typeof e&&null!==e&&e.$$typeof===o}var P=/\/+/g,I=[];function F(e,t,r,n){if(I.length){var A=I.pop();return A.result=e,A.keyPrefix=t,A.func=r,A.context=n,A.count=0,A}return{result:e,keyPrefix:t,func:r,context:n,count:0}}function S(e){e.result=null,e.keyPrefix=null,e.func=null,e.context=null,e.count=0,10>I.length&&I.push(e)}function k(e,t,r){return null==e?0:function e(t,r,n,A){var u=typeof t;"undefined"!==u&&"boolean"!==u||(t=null);var c=!1;if(null===t)c=!0;else switch(u){case"string":case"number":c=!0;break;case"object":switch(t.$$typeof){case o:case i:c=!0}}if(c)return n(A,t,""===r?"."+W(t,0):r),1;if(c=0,r=""===r?".":r+":",Array.isArray(t))for(var l=0;l<t.length;l++){var a=r+W(u=t[l],l);c+=e(u,a,n,A)}else if(null===t||"object"!=typeof t?a=null:a="function"==typeof(a=C&&t[C]||t["@@iterator"])?a:null,"function"==typeof a)for(t=a.call(t),l=0;!(u=t.next()).done;)c+=e(u=u.value,a=r+W(u,l++),n,A);else if("object"===u)throw n=""+t,Error(h(31,"[object Object]"===n?"object with keys {"+Object.keys(t).join(", ")+"}":n,""));return c}(e,"",t,r)}function W(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+(""+e).replace(/[=:]/g,(function(e){return t[e]}))}(e.key):t.toString(36)}function L(e,t){e.func.call(e.context,t,e.count++)}function N(e,t,r){var n=e.result,A=e.keyPrefix;e=e.func.call(e.context,t,e.count++),Array.isArray(e)?q(e,n,r,(function(e){return e})):null!=e&&(G(e)&&(e=function(e,t){return{$$typeof:o,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(e,A+(!e.key||t&&t.key===e.key?"":(""+e.key).replace(P,"$&/")+"/")+r)),n.push(e))}function q(e,t,r,n,A){var o="";null!=r&&(o=(""+r).replace(P,"$&/")+"/"),k(e,N,t=F(t,o,n,A)),S(t)}var V={current:null};function Z(){var e=V.current;if(null===e)throw Error(h(321));return e}var D={ReactCurrentDispatcher:V,ReactCurrentBatchConfig:{suspense:null},ReactCurrentOwner:R,IsSomeRendererActing:{current:!1},assign:n};t.Children={map:function(e,t,r){if(null==e)return e;var n=[];return q(e,n,null,t,r),n},forEach:function(e,t,r){if(null==e)return e;k(e,L,t=F(null,null,t,r)),S(t)},count:function(e){return k(e,(function(){return null}),null)},toArray:function(e){var t=[];return q(e,t,null,(function(e){return e})),t},only:function(e){if(!G(e))throw Error(h(143));return e}},t.Component=B,t.Fragment=u,t.Profiler=l,t.PureComponent=m,t.StrictMode=c,t.Suspense=p,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=D,t.cloneElement=function(e,t,r){if(null==e)throw Error(h(267,e));var A=n({},e.props),i=e.key,u=e.ref,c=e._owner;if(null!=t){if(void 0!==t.ref&&(u=t.ref,c=R.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var l=e.type.defaultProps;for(a in t)d.call(t,a)&&!Y.hasOwnProperty(a)&&(A[a]=void 0===t[a]&&void 0!==l?l[a]:t[a])}var a=arguments.length-2;if(1===a)A.children=r;else if(1<a){l=Array(a);for(var f=0;f<a;f++)l[f]=arguments[f+2];A.children=l}return{$$typeof:o,type:e.type,key:i,ref:u,props:A,_owner:c}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:f,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:a,_context:e},e.Consumer=e},t.createElement=j,t.createFactory=function(e){var t=j.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:s,render:e}},t.isValidElement=G,t.lazy=function(e){return{$$typeof:v,_ctor:e,_status:-1,_result:null}},t.memo=function(e,t){return{$$typeof:g,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return Z().useCallback(e,t)},t.useContext=function(e,t){return Z().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return Z().useEffect(e,t)},t.useImperativeHandle=function(e,t,r){return Z().useImperativeHandle(e,t,r)},t.useLayoutEffect=function(e,t){return Z().useLayoutEffect(e,t)},t.useMemo=function(e,t){return Z().useMemo(e,t)},t.useReducer=function(e,t,r){return Z().useReducer(e,t,r)},t.useRef=function(e){return Z().useRef(e)},t.useState=function(e){return Z().useState(e)},t.version="16.14.0"},function(e,t,r){"use strict";var n=Object.getOwnPropertySymbols,A=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable;function i(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},r=0;r<10;r++)t["_"+String.fromCharCode(r)]=r;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach((function(e){n[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var r,u,c=i(e),l=1;l<arguments.length;l++){for(var a in r=Object(arguments[l]))A.call(r,a)&&(c[a]=r[a]);if(n){u=n(r);for(var f=0;f<u.length;f++)o.call(r,u[f])&&(c[u[f]]=r[u[f]])}}return c}},,function(e,t,r){"use strict";r.r(t);var n=r(1),A=r(2),o=r(0);function i(){return(i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}var u=o.createElement("rect",{width:180,height:41,rx:20.5,fill:"#fff"}),c=o.createElement("path",{fill:"url(#icon_svg__pattern0_1_99)",d:"M9 8h162v26H9z"}),l=o.createElement("defs",null,o.createElement("pattern",{id:"icon_svg__pattern0_1_99",patternContentUnits:"objectBoundingBox",width:1,height:1},o.createElement("use",{xlinkHref:"#icon_svg__image0_1_99",transform:"matrix(.00309 0 0 .01923 -.117 -.692)"})),o.createElement("image",{id:"icon_svg__image0_1_99",width:406,height:126,xlinkHref:"data:image/png;base64,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"}));var a=function SvgIcon(e){return o.createElement("svg",i({viewBox:"0 0 180 41",fill:"none"},e),u,c,l)};var f=r(3);Object(n.registerBlockType)(f.name,{edit:function Edit(){var e=Object(A.useBlockProps)();return React.createElement("div",e,React.createElement("div",{className:"googlesitekit-blocks-sign-in-with-google",style:{maxWidth:"180px",minWidth:"120px"}},React.createElement(a,null)))}})}]);1 !function(e){var t={};function __webpack_require__(r){if(t[r])return t[r].exports;var n=t[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,__webpack_require__),n.l=!0,n.exports}__webpack_require__.m=e,__webpack_require__.c=t,__webpack_require__.d=function(e,t,r){__webpack_require__.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},__webpack_require__.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.t=function(e,t){if(1&t&&(e=__webpack_require__(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(__webpack_require__.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)__webpack_require__.d(r,n,function(t){return e[t]}.bind(null,n));return r},__webpack_require__.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return __webpack_require__.d(t,"a",t),t},__webpack_require__.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s=45)}({1:function(e,t,r){"use strict";e.exports=r(17)},12:function(e,t){e.exports=wp.blockEditor},16:function(e,t){e.exports=wp.blocks},17:function(e,t,r){"use strict";var n=r(18),A="function"==typeof Symbol&&Symbol.for,o=A?Symbol.for("react.element"):60103,i=A?Symbol.for("react.portal"):60106,u=A?Symbol.for("react.fragment"):60107,c=A?Symbol.for("react.strict_mode"):60108,l=A?Symbol.for("react.profiler"):60114,a=A?Symbol.for("react.provider"):60109,f=A?Symbol.for("react.context"):60110,s=A?Symbol.for("react.forward_ref"):60112,p=A?Symbol.for("react.suspense"):60113,g=A?Symbol.for("react.memo"):60115,v=A?Symbol.for("react.lazy"):60116,C="function"==typeof Symbol&&Symbol.iterator;function h(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=1;r<arguments.length;r++)t+="&args[]="+encodeURIComponent(arguments[r]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var y={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},w={};function B(e,t,r){this.props=e,this.context=t,this.refs=w,this.updater=r||y}function b(){}function m(e,t,r){this.props=e,this.context=t,this.refs=w,this.updater=r||y}B.prototype.isReactComponent={},B.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(h(85));this.updater.enqueueSetState(this,e,t,"setState")},B.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=B.prototype;var E=m.prototype=new b;E.constructor=m,n(E,B.prototype),E.isPureReactComponent=!0;var R={current:null},d=Object.prototype.hasOwnProperty,Y={key:!0,ref:!0,__self:!0,__source:!0};function j(e,t,r){var n,A={},i=null,u=null;if(null!=t)for(n in void 0!==t.ref&&(u=t.ref),void 0!==t.key&&(i=""+t.key),t)d.call(t,n)&&!Y.hasOwnProperty(n)&&(A[n]=t[n]);var c=arguments.length-2;if(1===c)A.children=r;else if(1<c){for(var l=Array(c),a=0;a<c;a++)l[a]=arguments[a+2];A.children=l}if(e&&e.defaultProps)for(n in c=e.defaultProps)void 0===A[n]&&(A[n]=c[n]);return{$$typeof:o,type:e,key:i,ref:u,props:A,_owner:R.current}}function G(e){return"object"==typeof e&&null!==e&&e.$$typeof===o}var P=/\/+/g,I=[];function F(e,t,r,n){if(I.length){var A=I.pop();return A.result=e,A.keyPrefix=t,A.func=r,A.context=n,A.count=0,A}return{result:e,keyPrefix:t,func:r,context:n,count:0}}function S(e){e.result=null,e.keyPrefix=null,e.func=null,e.context=null,e.count=0,10>I.length&&I.push(e)}function k(e,t,r){return null==e?0:function e(t,r,n,A){var u=typeof t;"undefined"!==u&&"boolean"!==u||(t=null);var c=!1;if(null===t)c=!0;else switch(u){case"string":case"number":c=!0;break;case"object":switch(t.$$typeof){case o:case i:c=!0}}if(c)return n(A,t,""===r?"."+W(t,0):r),1;if(c=0,r=""===r?".":r+":",Array.isArray(t))for(var l=0;l<t.length;l++){var a=r+W(u=t[l],l);c+=e(u,a,n,A)}else if(null===t||"object"!=typeof t?a=null:a="function"==typeof(a=C&&t[C]||t["@@iterator"])?a:null,"function"==typeof a)for(t=a.call(t),l=0;!(u=t.next()).done;)c+=e(u=u.value,a=r+W(u,l++),n,A);else if("object"===u)throw n=""+t,Error(h(31,"[object Object]"===n?"object with keys {"+Object.keys(t).join(", ")+"}":n,""));return c}(e,"",t,r)}function W(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+(""+e).replace(/[=:]/g,(function(e){return t[e]}))}(e.key):t.toString(36)}function L(e,t){e.func.call(e.context,t,e.count++)}function N(e,t,r){var n=e.result,A=e.keyPrefix;e=e.func.call(e.context,t,e.count++),Array.isArray(e)?q(e,n,r,(function(e){return e})):null!=e&&(G(e)&&(e=function(e,t){return{$$typeof:o,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(e,A+(!e.key||t&&t.key===e.key?"":(""+e.key).replace(P,"$&/")+"/")+r)),n.push(e))}function q(e,t,r,n,A){var o="";null!=r&&(o=(""+r).replace(P,"$&/")+"/"),k(e,N,t=F(t,o,n,A)),S(t)}var V={current:null};function Z(){var e=V.current;if(null===e)throw Error(h(321));return e}var D={ReactCurrentDispatcher:V,ReactCurrentBatchConfig:{suspense:null},ReactCurrentOwner:R,IsSomeRendererActing:{current:!1},assign:n};t.Children={map:function(e,t,r){if(null==e)return e;var n=[];return q(e,n,null,t,r),n},forEach:function(e,t,r){if(null==e)return e;k(e,L,t=F(null,null,t,r)),S(t)},count:function(e){return k(e,(function(){return null}),null)},toArray:function(e){var t=[];return q(e,t,null,(function(e){return e})),t},only:function(e){if(!G(e))throw Error(h(143));return e}},t.Component=B,t.Fragment=u,t.Profiler=l,t.PureComponent=m,t.StrictMode=c,t.Suspense=p,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=D,t.cloneElement=function(e,t,r){if(null==e)throw Error(h(267,e));var A=n({},e.props),i=e.key,u=e.ref,c=e._owner;if(null!=t){if(void 0!==t.ref&&(u=t.ref,c=R.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var l=e.type.defaultProps;for(a in t)d.call(t,a)&&!Y.hasOwnProperty(a)&&(A[a]=void 0===t[a]&&void 0!==l?l[a]:t[a])}var a=arguments.length-2;if(1===a)A.children=r;else if(1<a){l=Array(a);for(var f=0;f<a;f++)l[f]=arguments[f+2];A.children=l}return{$$typeof:o,type:e.type,key:i,ref:u,props:A,_owner:c}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:f,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:a,_context:e},e.Consumer=e},t.createElement=j,t.createFactory=function(e){var t=j.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:s,render:e}},t.isValidElement=G,t.lazy=function(e){return{$$typeof:v,_ctor:e,_status:-1,_result:null}},t.memo=function(e,t){return{$$typeof:g,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return Z().useCallback(e,t)},t.useContext=function(e,t){return Z().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return Z().useEffect(e,t)},t.useImperativeHandle=function(e,t,r){return Z().useImperativeHandle(e,t,r)},t.useLayoutEffect=function(e,t){return Z().useLayoutEffect(e,t)},t.useMemo=function(e,t){return Z().useMemo(e,t)},t.useReducer=function(e,t,r){return Z().useReducer(e,t,r)},t.useRef=function(e){return Z().useRef(e)},t.useState=function(e){return Z().useState(e)},t.version="16.14.0"},18:function(e,t,r){"use strict";var n=Object.getOwnPropertySymbols,A=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable;function i(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},r=0;r<10;r++)t["_"+String.fromCharCode(r)]=r;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach((function(e){n[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var r,u,c=i(e),l=1;l<arguments.length;l++){for(var a in r=Object(arguments[l]))A.call(r,a)&&(c[a]=r[a]);if(n){u=n(r);for(var f=0;f<u.length;f++)o.call(r,u[f])&&(c[u[f]]=r[u[f]])}}return c}},37:function(e){e.exports=JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"google-site-kit/sign-in-with-google","version":"1.148.0","title":"Sign in with Google","category":"widgets","icon":"google","description":"Allow users to sign in to your site using their Google Account.","textdomain":"google-site-kit"}')},45:function(e,t,r){"use strict";r.r(t);var n=r(16),A=r(12),o=r(1);function i(){return(i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}var u=o.createElement("rect",{width:180,height:41,rx:20.5,fill:"#fff"}),c=o.createElement("path",{fill:"url(#icon_svg__pattern0_1_99)",d:"M9 8h162v26H9z"}),l=o.createElement("defs",null,o.createElement("pattern",{id:"icon_svg__pattern0_1_99",patternContentUnits:"objectBoundingBox",width:1,height:1},o.createElement("use",{xlinkHref:"#icon_svg__image0_1_99",transform:"matrix(.00309 0 0 .01923 -.117 -.692)"})),o.createElement("image",{id:"icon_svg__image0_1_99",width:406,height:126,xlinkHref:"data:image/png;base64,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"}));var a=function SvgIcon(e){return o.createElement("svg",i({viewBox:"0 0 180 41",fill:"none"},e),u,c,l)};var f=r(37);Object(n.registerBlockType)(f.name,{edit:function Edit(){var e=Object(A.useBlockProps)();return React.createElement("div",e,React.createElement("div",{className:"googlesitekit-blocks-sign-in-with-google",style:{maxWidth:"180px",minWidth:"120px"}},React.createElement(a,null)))}})}}); -
google-site-kit/trunk/dist/config.php
r3221899 r3253534 8 8 9 9 return array( 10 'features' => array( 'adsPax','audienceSegmentation','conversionReporting','firstPartyMode','gm3Components','privacySandboxModule','rrmModule','rrmModuleV2' ,'signInWithGoogleModule'),10 'features' => array( 'adsPax','audienceSegmentation','conversionReporting','firstPartyMode','gm3Components','privacySandboxModule','rrmModule','rrmModuleV2' ), 11 11 ); -
google-site-kit/trunk/dist/manifest.php
r3246532 r3253534 8 8 9 9 return array( 10 'googlesitekit-consent-mode' => array( "googlesitekit-consent-mode-3d6495dceaebc28bcca3.js", null ), 11 'googlesitekit-events-provider-contact-form-7' => array( "googlesitekit-events-provider-contact-form-7-21cf1c445673c649970d.js", null ), 12 'googlesitekit-events-provider-easy-digital-downloads' => array( "googlesitekit-events-provider-easy-digital-downloads-a3b438fc133106da6a33.js", null ), 13 'googlesitekit-events-provider-mailchimp' => array( "googlesitekit-events-provider-mailchimp-7920d200a07d3bcd60bb.js", null ), 14 'googlesitekit-events-provider-ninja-forms' => array( "googlesitekit-events-provider-ninja-forms-ddd9645222a85c7954f3.js", null ), 15 'googlesitekit-events-provider-optin-monster' => array( "googlesitekit-events-provider-optin-monster-2bb9e40daaa87763f38e.js", null ), 16 'googlesitekit-events-provider-popup-maker' => array( "googlesitekit-events-provider-popup-maker-e1863af0c352a2ce8748.js", null ), 17 'googlesitekit-events-provider-woocommerce' => array( "googlesitekit-events-provider-woocommerce-9043ca3351c215979b62.js", null ), 18 'googlesitekit-events-provider-wpforms' => array( "googlesitekit-events-provider-wpforms-b35450445f9cb0eeb855.js", null ), 19 'analytics-advanced-tracking' => array( "analytics-advanced-tracking-ea84b2c367b69f5c094b.js", null ), 20 'googlesitekit-i18n' => array( "googlesitekit-i18n-33cdd2dee5d1d1f4fb34.js", null ), 21 'googlesitekit-reader-revenue-manager-block-editor' => array( "googlesitekit-reader-revenue-manager-block-editor.js", null ), 22 'sign-in-with-google/editor-styles' => array( "sign-in-with-google/editor-styles.js", null ), 23 'sign-in-with-google/index' => array( "sign-in-with-google/index.js", null ), 24 'googlesitekit-admin-css' => array( "googlesitekit-admin-css-0ed888e9f46eb775c4a9.min.css", null ), 25 'googlesitekit-adminbar-css' => array( "googlesitekit-adminbar-css-281d66e21d2b87430998.min.css", null ), 26 'googlesitekit-authorize-application-css' => array( "googlesitekit-authorize-application-css-ce25e97404abc5a02921.min.css", null ), 27 'googlesitekit-wp-dashboard-css' => array( "googlesitekit-wp-dashboard-css-55d9d8bb13cf249a2389.min.css", null ), 28 'googlesitekit-vendor' => array( "googlesitekit-vendor-68e1c45ab88797e2725b.js", null ), 29 'googlesitekit-runtime' => array( "runtime-89f677636011f47c68b1.js", null ), 30 'googlesitekit-activation' => array( "googlesitekit-activation-08970804363d3f89f12e.js", null ), 31 'googlesitekit-ad-blocking-recovery' => array( "googlesitekit-ad-blocking-recovery-7c1bee68a11e1537fba9.js", null ), 32 'googlesitekit-adminbar' => array( "googlesitekit-adminbar-494060be019092a480bf.js", null ), 33 'googlesitekit-api' => array( "googlesitekit-api-2766e9472b9ab9216ca1.js", null ), 34 'googlesitekit-components' => array( array( "googlesitekit-components-gm2-8ef0fd892597f5776726.js", null ), array( "googlesitekit-components-gm3-96f619a4dfa6a62e80b0.js", null ) ), 35 'googlesitekit-data' => array( "googlesitekit-data-b9cd43cf5269111852ae.js", null ), 36 'googlesitekit-datastore-forms' => array( "googlesitekit-datastore-forms-fda104b042221bd85889.js", null ), 37 'googlesitekit-datastore-location' => array( "googlesitekit-datastore-location-f342a662bcd23bad5197.js", null ), 38 'googlesitekit-datastore-site' => array( "googlesitekit-datastore-site-6a6c78749feb8856beac.js", null ), 39 'googlesitekit-datastore-ui' => array( "googlesitekit-datastore-ui-abfcc74f97bbff8b2eac.js", null ), 40 'googlesitekit-datastore-user' => array( "googlesitekit-datastore-user-3378174b7e259484c79a.js", null ), 41 'googlesitekit-entity-dashboard' => array( "googlesitekit-entity-dashboard-12ac51781ea2a575d5d6.js", null ), 42 'googlesitekit-main-dashboard' => array( "googlesitekit-main-dashboard-d2235f7e737fa3cc6542.js", null ), 43 'googlesitekit-metric-selection' => array( "googlesitekit-metric-selection-4e96dd3bd15106d6f9b1.js", null ), 44 'googlesitekit-modules' => array( "googlesitekit-modules-271a2bc6321bc5512177.js", null ), 45 'googlesitekit-modules-ads' => array( "googlesitekit-modules-ads-5c3840d282a55fec7b91.js", null ), 46 'googlesitekit-modules-adsense' => array( "googlesitekit-modules-adsense-8dae88c7b504d6eeffbd.js", null ), 47 'googlesitekit-modules-analytics-4' => array( "googlesitekit-modules-analytics-4-03ff53d67f0730fef532.js", null ), 48 'googlesitekit-modules-pagespeed-insights' => array( "googlesitekit-modules-pagespeed-insights-c03a4bc015c93be68ba2.js", null ), 49 'googlesitekit-modules-reader-revenue-manager' => array( "googlesitekit-modules-reader-revenue-manager-f64ae5a06452a7c70545.js", null ), 50 'googlesitekit-modules-search-console' => array( "googlesitekit-modules-search-console-76205470debaed0c391f.js", null ), 51 'googlesitekit-modules-sign-in-with-google' => array( "googlesitekit-modules-sign-in-with-google-72ac70043d96dfcec075.js", null ), 52 'googlesitekit-modules-tagmanager' => array( "googlesitekit-modules-tagmanager-3dd7cdfe4eab5a246d90.js", null ), 53 'googlesitekit-notifications' => array( "googlesitekit-notifications-05633f57dd25402f9646.js", null ), 54 'googlesitekit-polyfills' => array( "googlesitekit-polyfills-b90168a70cb376a88ee6.js", null ), 55 'googlesitekit-settings' => array( "googlesitekit-settings-1e24b6995d523f1fa3d1.js", null ), 56 'googlesitekit-splash' => array( "googlesitekit-splash-b273b7be927790dc2c4e.js", null ), 57 'googlesitekit-user-input' => array( "googlesitekit-user-input-818d71397d6d1f15d951.js", null ), 58 'googlesitekit-widgets' => array( "googlesitekit-widgets-79a0290d39373d503c60.js", null ), 59 'googlesitekit-wp-dashboard' => array( "googlesitekit-wp-dashboard-4e8db01e6c2bad945b9c.js", null ), 10 'googlesitekit-consent-mode' => array( "googlesitekit-consent-mode-3d6495dceaebc28bcca3.js", null ), 11 'googlesitekit-events-provider-contact-form-7' => array( "googlesitekit-events-provider-contact-form-7-21cf1c445673c649970d.js", null ), 12 'googlesitekit-events-provider-easy-digital-downloads' => array( "googlesitekit-events-provider-easy-digital-downloads-a3b438fc133106da6a33.js", null ), 13 'googlesitekit-events-provider-mailchimp' => array( "googlesitekit-events-provider-mailchimp-7920d200a07d3bcd60bb.js", null ), 14 'googlesitekit-events-provider-ninja-forms' => array( "googlesitekit-events-provider-ninja-forms-ddd9645222a85c7954f3.js", null ), 15 'googlesitekit-events-provider-optin-monster' => array( "googlesitekit-events-provider-optin-monster-2bb9e40daaa87763f38e.js", null ), 16 'googlesitekit-events-provider-popup-maker' => array( "googlesitekit-events-provider-popup-maker-e1863af0c352a2ce8748.js", null ), 17 'googlesitekit-events-provider-woocommerce' => array( "googlesitekit-events-provider-woocommerce-9043ca3351c215979b62.js", null ), 18 'googlesitekit-events-provider-wpforms' => array( "googlesitekit-events-provider-wpforms-b35450445f9cb0eeb855.js", null ), 19 'analytics-advanced-tracking' => array( "analytics-advanced-tracking-ea84b2c367b69f5c094b.js", null ), 20 'googlesitekit-i18n' => array( "googlesitekit-i18n-33cdd2dee5d1d1f4fb34.js", null ), 21 'reader-revenue-manager/block-editor-plugin/editor-styles' => array( "reader-revenue-manager/block-editor-plugin/editor-styles.js", null ), 22 'reader-revenue-manager/block-editor-plugin/index' => array( "reader-revenue-manager/block-editor-plugin/index.js", null ), 23 'reader-revenue-manager/common/editor-styles' => array( "reader-revenue-manager/common/editor-styles.js", null ), 24 'reader-revenue-manager/contribute-with-google/index' => array( "reader-revenue-manager/contribute-with-google/index.js", null ), 25 'reader-revenue-manager/subscribe-with-google/index' => array( "reader-revenue-manager/subscribe-with-google/index.js", null ), 26 'sign-in-with-google/editor-styles' => array( "sign-in-with-google/editor-styles.js", null ), 27 'sign-in-with-google/index' => array( "sign-in-with-google/index.js", null ), 28 'googlesitekit-admin-css' => array( "googlesitekit-admin-css-e86016510d7baa4a7353.min.css", null ), 29 'googlesitekit-adminbar-css' => array( "googlesitekit-adminbar-css-281d66e21d2b87430998.min.css", null ), 30 'googlesitekit-authorize-application-css' => array( "googlesitekit-authorize-application-css-ce25e97404abc5a02921.min.css", null ), 31 'googlesitekit-wp-dashboard-css' => array( "googlesitekit-wp-dashboard-css-55d9d8bb13cf249a2389.min.css", null ), 32 'googlesitekit-vendor' => array( "googlesitekit-vendor-5aa94214da516df44edd.js", null ), 33 'googlesitekit-runtime' => array( "runtime-fb338303cadc59781996.js", null ), 34 'googlesitekit-activation' => array( "googlesitekit-activation-ef136fa2d705890f91b3.js", null ), 35 'googlesitekit-ad-blocking-recovery' => array( "googlesitekit-ad-blocking-recovery-ea1f8cdd3eebac89f55c.js", null ), 36 'googlesitekit-adminbar' => array( "googlesitekit-adminbar-8186a58dffbe9861983a.js", null ), 37 'googlesitekit-api' => array( "googlesitekit-api-bcc1c62e15d079907a56.js", null ), 38 'googlesitekit-components' => array( array( "googlesitekit-components-gm2-8bf8544d07a6da530f8f.js", null ), array( "googlesitekit-components-gm3-3d043a9ad4684e207690.js", null ) ), 39 'googlesitekit-data' => array( "googlesitekit-data-10660ec4fa4de9e5a0ad.js", null ), 40 'googlesitekit-datastore-forms' => array( "googlesitekit-datastore-forms-58356fd14af30247220b.js", null ), 41 'googlesitekit-datastore-location' => array( "googlesitekit-datastore-location-d6cc723fb9213326c8df.js", null ), 42 'googlesitekit-datastore-site' => array( "googlesitekit-datastore-site-32262604b05a3f29ffbd.js", null ), 43 'googlesitekit-datastore-ui' => array( "googlesitekit-datastore-ui-2a4a47d4c0cd789f71e9.js", null ), 44 'googlesitekit-datastore-user' => array( "googlesitekit-datastore-user-3cd7c04a250e40fbee46.js", null ), 45 'googlesitekit-entity-dashboard' => array( "googlesitekit-entity-dashboard-594bf471eb193b4f1a94.js", null ), 46 'googlesitekit-main-dashboard' => array( "googlesitekit-main-dashboard-be615811bedf8348b6b3.js", null ), 47 'googlesitekit-metric-selection' => array( "googlesitekit-metric-selection-8a40812867bda4ccc557.js", null ), 48 'googlesitekit-modules' => array( "googlesitekit-modules-f29528994921322c9c2d.js", null ), 49 'googlesitekit-modules-ads' => array( "googlesitekit-modules-ads-dbd862ea5480cfe6c092.js", null ), 50 'googlesitekit-modules-adsense' => array( "googlesitekit-modules-adsense-aac303a1bfa905c4953e.js", null ), 51 'googlesitekit-modules-analytics-4' => array( "googlesitekit-modules-analytics-4-4107886672cca10485da.js", null ), 52 'googlesitekit-modules-pagespeed-insights' => array( "googlesitekit-modules-pagespeed-insights-fa61f9f00c3cb3a11b48.js", null ), 53 'googlesitekit-modules-reader-revenue-manager' => array( "googlesitekit-modules-reader-revenue-manager-28ec1502574278161523.js", null ), 54 'googlesitekit-modules-search-console' => array( "googlesitekit-modules-search-console-c5ee61ebe5c4758697f7.js", null ), 55 'googlesitekit-modules-sign-in-with-google' => array( "googlesitekit-modules-sign-in-with-google-ff4cc66e0355cefa5b59.js", null ), 56 'googlesitekit-modules-tagmanager' => array( "googlesitekit-modules-tagmanager-6e0cd98eb5fa67a088fd.js", null ), 57 'googlesitekit-notifications' => array( "googlesitekit-notifications-68b6123744fc1447c597.js", null ), 58 'googlesitekit-polyfills' => array( "googlesitekit-polyfills-f5a1154bf6114abcdbae.js", null ), 59 'googlesitekit-settings' => array( "googlesitekit-settings-f38fb475207deb40d30a.js", null ), 60 'googlesitekit-splash' => array( "googlesitekit-splash-8149844e0600ee696450.js", null ), 61 'googlesitekit-user-input' => array( "googlesitekit-user-input-32ce19372c4a80d3525c.js", null ), 62 'googlesitekit-widgets' => array( "googlesitekit-widgets-66b135342a210db1628b.js", null ), 63 'googlesitekit-wp-dashboard' => array( "googlesitekit-wp-dashboard-26aef10466d76e72e042.js", null ), 60 64 ); -
google-site-kit/trunk/google-site-kit.php
r3246532 r3253534 12 12 * Plugin URI: https://sitekit.withgoogle.com 13 13 * Description: Site Kit is a one-stop solution for WordPress users to use everything Google has to offer to make them successful on the web. 14 * Version: 1.14 7.014 * Version: 1.148.0 15 15 * Requires at least: 5.2 16 16 * Requires PHP: 7.4 … … 27 27 28 28 // Define most essential constants. 29 define( 'GOOGLESITEKIT_VERSION', '1.14 7.0' );29 define( 'GOOGLESITEKIT_VERSION', '1.148.0' ); 30 30 define( 'GOOGLESITEKIT_PLUGIN_MAIN_FILE', __FILE__ ); 31 31 define( 'GOOGLESITEKIT_PHP_MINIMUM', '7.4.0' ); -
google-site-kit/trunk/includes/Core/Assets/Assets.php
r3246532 r3253534 16 16 use Google\Site_Kit\Core\Storage\Options; 17 17 use Google\Site_Kit\Core\Util\Feature_Flags; 18 use Google\Site_Kit\Core\Util\ URL;18 use Google\Site_Kit\Core\Util\Plugin_Status; 19 19 use WP_Dependencies; 20 20 use WP_Post_Type; -
google-site-kit/trunk/includes/Core/Consent_Mode/REST_Consent_Mode_Controller.php
r3208808 r3253534 16 16 use Google\Site_Kit\Core\REST_API\REST_Routes; 17 17 use Google\Site_Kit\Core\Storage\Options; 18 use Google\Site_Kit\Core\Util\Plugin_Status; 18 19 use Google\Site_Kit\Modules\Ads; 19 20 use Google\Site_Kit\Modules\Analytics_4; … … 188 189 'methods' => WP_REST_Server::READABLE, 189 190 'callback' => function () { 190 $is_active = function_exists( 'wp_set_consent' ); 191 $installed = $is_active; 192 $plugin_uri = 'https://wordpress.org/plugins/wp-consent-api'; 193 $plugin = 'wp-consent-api/wp-consent-api.php'; 194 195 $response = array( 191 // Here we intentionally use a non-plugin-specific detection strategy. 192 $is_active = function_exists( 'wp_set_consent' ); 193 $response = array( 196 194 'hasConsentAPI' => $is_active, 197 195 ); 198 196 197 // Alternate wp_nonce_url without esc_html breaking query parameters. 198 $nonce_url = function ( $action_url, $action ) { 199 return add_query_arg( '_wpnonce', wp_create_nonce( $action ), $action_url ); 200 }; 201 199 202 if ( ! $is_active ) { 200 if ( ! function_exists( 'get_plugins' ) ) { 201 require_once ABSPATH . 'wp-admin/includes/plugin.php'; 202 } 203 204 $plugins = get_plugins(); 205 206 if ( array_key_exists( $plugin, $plugins ) ) { 207 $installed = true; 208 } else { 209 foreach ( $plugins as $plugin_file => $installed_plugin ) { 210 if ( $installed_plugin['PluginURI'] === $plugin_uri ) { 211 $plugin = $plugin_file; 212 $installed = true; 213 break; 214 } 215 } 216 } 217 218 // Alternate wp_nonce_url without esc_html breaking query parameters. 219 $nonce_url = function ( $action_url, $action ) { 220 return add_query_arg( '_wpnonce', wp_create_nonce( $action ), $action_url ); 221 }; 222 $activate_url = $nonce_url( self_admin_url( 'plugins.php?action=activate&plugin=' . $plugin ), 'activate-plugin_' . $plugin ); 223 $install_url = $nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=wp-consent-api' ), 'install-plugin_wp-consent-api' ); 224 225 $response['wpConsentPlugin'] = array( 226 'installed' => $installed, 227 'activateURL' => current_user_can( 'activate_plugin', $plugin ) ? esc_url_raw( $activate_url ) : false, 228 'installURL' => current_user_can( 'install_plugins' ) ? esc_url_raw( $install_url ) : false, 203 $installed_plugin = $this->get_consent_api_plugin_file(); 204 205 $consent_plugin = array( 206 'installed' => (bool) $installed_plugin, 207 'installURL' => false, 208 'activateURL' => false, 229 209 ); 210 211 if ( ! $installed_plugin && current_user_can( 'install_plugins' ) ) { 212 $consent_plugin['installURL'] = $nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=wp-consent-api' ), 'install-plugin_wp-consent-api' ); 213 } 214 215 if ( $installed_plugin && current_user_can( 'activate_plugin', $installed_plugin ) ) { 216 $consent_plugin['activateURL'] = $nonce_url( self_admin_url( 'plugins.php?action=activate&plugin=' . $installed_plugin ), 'activate-plugin_' . $installed_plugin ); 217 } 218 219 $response['wpConsentPlugin'] = $consent_plugin; 230 220 } 231 221 … … 321 311 ); 322 312 } 313 314 /** 315 * Gets the plugin file of the installed WP Consent API if found. 316 * 317 * @since 1.148.0 318 * 319 * @return false|string 320 */ 321 protected function get_consent_api_plugin_file() { 322 // Check the default location first. 323 if ( Plugin_Status::is_plugin_installed( 'wp-consent-api/wp-consent-api.php' ) ) { 324 return 'wp-consent-api/wp-consent-api.php'; 325 } 326 327 // Here we make an extra effort to attempt to detect the plugin if installed in a non-standard location. 328 return Plugin_Status::is_plugin_installed( 329 fn ( $installed_plugin ) => 'https://wordpress.org/plugins/wp-consent-api' === $installed_plugin['PluginURI'] 330 ); 331 } 323 332 } -
google-site-kit/trunk/includes/Core/Conversion_Tracking/Conversion_Event_Providers/WooCommerce.php
r3181737 r3253534 34 34 */ 35 35 public function is_active() { 36 return did_action( 'woocommerce_loaded' ) > 0;36 return class_exists( 'WooCommerce' ); 37 37 } 38 38 -
google-site-kit/trunk/includes/Core/Dismissals/REST_Dismissals_Controller.php
r3134468 r3253534 12 12 13 13 use Google\Site_Kit\Core\Permissions\Permissions; 14 use Google\Site_Kit\Core\REST_API\Exception\Invalid_Param_Exception; 14 15 use Google\Site_Kit\Core\REST_API\REST_Route; 15 16 use Google\Site_Kit\Core\REST_API\REST_Routes; … … 102 103 'methods' => WP_REST_Server::DELETABLE, 103 104 'callback' => function ( WP_REST_Request $request ) { 104 $slugs = $request['data']['slugs']; 105 if ( empty( $request['data']['slugs'] ) ) { 106 // Schema validation does not catch empty object params 107 // in older versions of WP. 108 return ( new Invalid_Param_Exception( 'data' ) )->to_wp_error(); 109 } 105 110 106 foreach ( $ slugsas $slug ) {111 foreach ( $request['data']['slugs'] as $slug ) { 107 112 $this->dismissed_items->remove( $slug ); 108 113 } -
google-site-kit/trunk/includes/Core/Modules/Modules.php
r3164469 r3253534 146 146 */ 147 147 private $core_modules = array( 148 Site_Verification::MODULE_SLUG => Site_Verification::class, 149 Search_Console::MODULE_SLUG => Search_Console::class, 150 Ads::MODULE_SLUG => Ads::class, 151 Analytics_4::MODULE_SLUG => Analytics_4::class, 152 Tag_Manager::MODULE_SLUG => Tag_Manager::class, 153 AdSense::MODULE_SLUG => AdSense::class, 154 PageSpeed_Insights::MODULE_SLUG => PageSpeed_Insights::class, 148 Site_Verification::MODULE_SLUG => Site_Verification::class, 149 Search_Console::MODULE_SLUG => Search_Console::class, 150 Ads::MODULE_SLUG => Ads::class, 151 Analytics_4::MODULE_SLUG => Analytics_4::class, 152 Tag_Manager::MODULE_SLUG => Tag_Manager::class, 153 AdSense::MODULE_SLUG => AdSense::class, 154 PageSpeed_Insights::MODULE_SLUG => PageSpeed_Insights::class, 155 Sign_In_With_Google::MODULE_SLUG => Sign_In_With_Google::class, 155 156 ); 156 157 … … 182 183 if ( Feature_Flags::enabled( 'rrmModule' ) ) { 183 184 $this->core_modules[ Reader_Revenue_Manager::MODULE_SLUG ] = Reader_Revenue_Manager::class; 184 }185 186 if ( Feature_Flags::enabled( 'signInWithGoogleModule' ) ) {187 $this->core_modules[ Sign_In_With_Google::MODULE_SLUG ] = Sign_In_With_Google::class;188 185 } 189 186 -
google-site-kit/trunk/includes/Modules/Ads.php
r3246532 r3253534 23 23 use Google\Site_Kit\Core\Modules\Module_With_Debug_Fields; 24 24 use Google\Site_Kit\Core\Modules\Module_With_Deactivation; 25 use Google\Site_Kit\Core\Modules\Module_With_Persistent_Registration; 25 26 use Google\Site_Kit\Core\Modules\Module_With_Scopes; 26 27 use Google\Site_Kit\Core\Modules\Module_With_Scopes_Trait; … … 35 36 use Google\Site_Kit\Core\Storage\User_Options; 36 37 use Google\Site_Kit\Core\Tags\First_Party_Mode\First_Party_Mode; 38 use Google\Site_Kit\Core\Util\Plugin_Status; 37 39 use Google\Site_Kit\Modules\Ads\PAX_Config; 38 40 use Google\Site_Kit\Modules\Ads\Settings; … … 55 57 * @ignore 56 58 */ 57 final class Ads extends Module implements Module_With_Assets, Module_With_Debug_Fields, Module_With_Scopes, Module_With_Settings, Module_With_Tag, Module_With_Deactivation {59 final class Ads extends Module implements Module_With_Assets, Module_With_Debug_Fields, Module_With_Scopes, Module_With_Settings, Module_With_Tag, Module_With_Deactivation, Module_With_Persistent_Registration { 58 60 use Module_With_Assets_Trait; 59 61 use Module_With_Scopes_Trait; … … 106 108 107 109 add_filter( 'googlesitekit_inline_modules_data', $this->get_method_proxy( 'inline_modules_data' ) ); 110 } 111 112 /** 113 * Registers functionality independent of module activation. 114 * 115 * @since 1.148.0 116 */ 117 public function register_persistent() { 118 add_filter( 'googlesitekit_inline_modules_data', fn ( $data ) => $this->persistent_inline_modules_data( $data ) ); 108 119 } 109 120 … … 190 201 191 202 /** 192 * Populates module data to pass to JS via _googlesitekitModulesData.193 * 194 * @since 1.1 26.0203 * Populates module data needed independent of Ads module activation. 204 * 205 * @since 1.148.0 195 206 * 196 207 * @param array $modules_data Inline modules data. 197 208 * @return array Inline modules data. 198 209 */ 210 protected function persistent_inline_modules_data( $modules_data ) { 211 if ( ! Feature_Flags::enabled( 'adsPax' ) ) { 212 return $modules_data; 213 } 214 215 if ( empty( $modules_data['ads'] ) ) { 216 $modules_data['ads'] = array(); 217 } 218 219 $active_wc = class_exists( 'WooCommerce' ); 220 $active_gla = defined( 'WC_GLA_VERSION' ); 221 222 $gla_ads_conversion_action = get_option( 'gla_ads_conversion_action' ); 223 224 $modules_data['ads']['plugins'] = array( 225 'woocommerce' => array( 226 'active' => $active_wc, 227 'installed' => $active_wc || Plugin_Status::is_plugin_installed( 'woocommerce/woocommerce.php' ), 228 ), 229 'google-listings-and-ads' => array( 230 'active' => $active_gla, 231 'installed' => $active_gla || Plugin_Status::is_plugin_installed( 'google-listings-and-ads/google-listings-and-ads.php' ), 232 'adsConnected' => $active_gla && get_option( 'gla_ads_id' ), 233 'conversionID' => is_array( $gla_ads_conversion_action ) ? $gla_ads_conversion_action['conversion_id'] : '', 234 ), 235 ); 236 237 return $modules_data; 238 } 239 240 /** 241 * Populates module data to pass to JS via _googlesitekitModulesData. 242 * 243 * @since 1.126.0 244 * 245 * @param array $modules_data Inline modules data. 246 * @return array Inline modules data. 247 */ 199 248 private function inline_modules_data( $modules_data ) { 200 if ( Feature_Flags::enabled( 'adsPax' ) ) { 201 // Get detected events. 202 $detected_events = $this->get_supported_conversion_events(); 203 // Add the data under the `ads` key to make it clear it's scoped to this module. 204 $modules_data['ads'] = array( 205 'supportedConversionEvents' => $detected_events, 206 ); 207 } 249 if ( ! Feature_Flags::enabled( 'adsPax' ) ) { 250 return $modules_data; 251 } 252 253 if ( empty( $modules_data['ads'] ) ) { 254 $modules_data['ads'] = array(); 255 } 256 257 $modules_data['ads']['supportedConversionEvents'] = $this->get_supported_conversion_events(); 208 258 209 259 return $modules_data; … … 343 393 $debug_fields = array( 344 394 'ads_conversion_tracking_id' => array( 345 'label' => __( 'Ads: Conversion TrackingID', 'google-site-kit' ),395 'label' => __( 'Ads: Conversion ID', 'google-site-kit' ), 346 396 'value' => $settings['conversionID'], 347 397 'debug' => Debug_Data::redact_debug_value( $settings['conversionID'] ), -
google-site-kit/trunk/includes/Modules/Analytics_4.php
r3229883 r3253534 91 91 use Google\Site_Kit\Core\REST_API\REST_Routes; 92 92 use Google\Site_Kit\Core\Tags\First_Party_Mode\First_Party_Mode; 93 use Google\Site_Kit\Modules\Analytics_4\Audience_Settings; 93 94 use Google\Site_Kit\Modules\Analytics_4\Conversion_Reporting\Conversion_Reporting_Cron; 94 95 use Google\Site_Kit\Modules\Analytics_4\Conversion_Reporting\Conversion_Reporting_Events_Sync; … … 172 173 */ 173 174 protected $resource_data_availability_date; 175 176 /** 177 * Audience_Settings instance. 178 * 179 * @since 1.148.0 180 * 181 * @var Audience_Settings 182 */ 183 protected $audience_settings; 174 184 175 185 /** … … 235 245 } 236 246 247 if ( Feature_Flags::enabled( 'audienceSegmentation' ) ) { 248 $this->audience_settings = new Audience_Settings( $this->options ); 249 $this->audience_settings->register(); 250 } 251 237 252 ( new Advanced_Tracking( $this->context ) )->register(); 238 253 … … 311 326 312 327 if ( Feature_Flags::enabled( 'conversionReporting' ) ) { 328 // Reset event detection and new badge events. 329 $this->transients->delete( Conversion_Reporting_Events_Sync::DETECTED_EVENTS_TRANSIENT ); 330 $this->transients->delete( Conversion_Reporting_Events_Sync::LOST_EVENTS_TRANSIENT ); 331 $this->transients->delete( Conversion_Reporting_New_Badge_Events_Sync::NEW_EVENTS_BADGE_TRANSIENT ); 332 333 $this->transients->set( Conversion_Reporting_New_Badge_Events_Sync::SKIP_NEW_BADGE_TRANSIENT, 1 ); 334 313 335 do_action( Conversion_Reporting_Cron::CRON_ACTION ); 314 336 } … … 706 728 'shareable' => true, 707 729 ); 730 $datapoints['GET:audience-settings'] = array( 731 'service' => '', 732 'shareable' => true, 733 ); 734 $datapoints['POST:save-audience-settings'] = array( 735 'service' => '', 736 ); 708 737 } 709 738 … … 809 838 810 839 if ( $this->context->is_amp() ) : ?> 811 <!-- <?php esc_html_e( 'Google Analytics AMP opt-out snippet added by Site Kit', 'google-site-kit' ); ?> -->812 <meta name="ga-opt-out" content="" id="__gaOptOutExtension">813 <!-- <?php esc_html_e( 'End Google Analytics AMP opt-out snippet added by Site Kit', 'google-site-kit' ); ?> -->814 <?php else : ?>815 <!-- <?php esc_html_e( 'Google Analytics opt-out snippet added by Site Kit', 'google-site-kit' ); ?> -->816 <?php840 <!-- <?php esc_html_e( 'Google Analytics AMP opt-out snippet added by Site Kit', 'google-site-kit' ); ?> --> 841 <meta name="ga-opt-out" content="" id="__gaOptOutExtension"> 842 <!-- <?php esc_html_e( 'End Google Analytics AMP opt-out snippet added by Site Kit', 'google-site-kit' ); ?> --> 843 <?php else : ?> 844 <!-- <?php esc_html_e( 'Google Analytics opt-out snippet added by Site Kit', 'google-site-kit' ); ?> --> 845 <?php 817 846 // Opt-out should always use the measurement ID, even when using a GT tag. 818 847 $tag_id = $this->get_measurement_id(); 819 if ( ! empty( $tag_id ) ) {820 BC_Functions::wp_print_inline_script_tag( sprintf( 'window["ga-disable-%s"] = true;', esc_attr( $tag_id ) ) );821 }822 ?>823 <?php do_action( 'googlesitekit_analytics_tracking_opt_out', $property_id, $account_id ); ?>824 <!-- <?php esc_html_e( 'End Google Analytics opt-out snippet added by Site Kit', 'google-site-kit' ); ?> -->825 <?php848 if ( ! empty( $tag_id ) ) { 849 BC_Functions::wp_print_inline_script_tag( sprintf( 'window["ga-disable-%s"] = true;', esc_attr( $tag_id ) ) ); 850 } 851 ?> 852 <?php do_action( 'googlesitekit_analytics_tracking_opt_out', $property_id, $account_id ); ?> 853 <!-- <?php esc_html_e( 'End Google Analytics opt-out snippet added by Site Kit', 'google-site-kit' ); ?> --> 854 <?php 826 855 endif; 827 856 } … … 1470 1499 $custom_dimension 1471 1500 ); 1501 1502 case 'GET:audience-settings': 1503 return function () { 1504 $settings = $this->audience_settings->get(); 1505 return current_user_can( Permissions::MANAGE_OPTIONS ) ? $settings : array_intersect_key( $settings, array_flip( $this->audience_settings->get_view_only_keys() ) ); 1506 }; 1507 1508 case 'POST:save-audience-settings': 1509 if ( ! current_user_can( Permissions::MANAGE_OPTIONS ) ) { 1510 return new WP_Error( 1511 'forbidden', 1512 __( 'User does not have permission to save audience settings.', 'google-site-kit' ), 1513 array( 'status' => 403 ) 1514 ); 1515 } 1516 1517 if ( isset( $data['audienceSegmentationSetupCompletedBy'] ) && ! is_int( $data['audienceSegmentationSetupCompletedBy'] ) ) { 1518 throw new Invalid_Param_Exception( 'audienceSegmentationSetupCompletedBy' ); 1519 } 1520 1521 return function () use ( $data ) { 1522 if ( isset( $data['audienceSegmentationSetupCompletedBy'] ) ) { 1523 $new_settings['audienceSegmentationSetupCompletedBy'] = $data['audienceSegmentationSetupCompletedBy']; 1524 } 1525 1526 $settings = $this->audience_settings->merge( $new_settings ); 1527 1528 return $settings; 1529 }; 1530 1472 1531 case 'POST:sync-audiences': 1473 1532 if ( ! $this->authentication->is_authenticated() ) { -
google-site-kit/trunk/includes/Modules/Analytics_4/Conversion_Reporting/Conversion_Reporting_Events_Sync.php
r3221899 r3253534 156 156 $this->new_badge_events_sync->sync_new_badge_events( $new_events ); 157 157 $settings_partial['newConversionEventsLastUpdateAt'] = time(); 158 159 // Remove new events from lost events if present. 160 $saved_lost_events = $this->transients->get( self::LOST_EVENTS_TRANSIENT ); 161 if ( $saved_lost_events ) { 162 $filtered_lost_events = array_diff( $saved_lost_events, $new_events ); 163 $lost_events = array_merge( $lost_events, $filtered_lost_events ); 164 } 158 165 } 159 166 -
google-site-kit/trunk/includes/Modules/Analytics_4/Conversion_Reporting/Conversion_Reporting_New_Badge_Events_Sync.php
r3221899 r3253534 26 26 */ 27 27 public const NEW_EVENTS_BADGE_TRANSIENT = 'googlesitekit_conversion_reporting_new_badge_events'; 28 29 /** 30 * The skip new badge events transient name. 31 */ 32 public const SKIP_NEW_BADGE_TRANSIENT = 'googlesitekit_conversion_reporting_skip_new_badge_events'; 28 33 29 34 /** … … 56 61 */ 57 62 public function sync_new_badge_events( $new_events ) { 63 $skip_events_badge = $this->transients->get( self::SKIP_NEW_BADGE_TRANSIENT ); 64 if ( $skip_events_badge ) { 65 $this->transients->delete( self::SKIP_NEW_BADGE_TRANSIENT ); 66 return; 67 } 68 58 69 $new_events_badge = $this->transients->get( self::NEW_EVENTS_BADGE_TRANSIENT ); 59 70 $save_new_badge_transient = fn( $events ) => $this->transients->set( -
google-site-kit/trunk/includes/Modules/Reader_Revenue_Manager.php
r3246532 r3253534 12 12 13 13 use Exception; 14 use Google\Site_Kit\Context; 14 15 use Google\Site_Kit\Core\Assets\Asset; 16 use Google\Site_Kit\Core\Assets\Assets; 15 17 use Google\Site_Kit\Core\Assets\Script; 18 use Google\Site_Kit\Core\Assets\Stylesheet; 19 use Google\Site_Kit\Core\Authentication\Authentication; 16 20 use Google\Site_Kit\Core\Authentication\Clients\Google_Site_Kit_Client; 17 21 use Google\Site_Kit\Core\Modules\Module; … … 32 36 use Google\Site_Kit\Core\REST_API\Exception\Missing_Required_Param_Exception; 33 37 use Google\Site_Kit\Core\Site_Health\Debug_Data; 38 use Google\Site_Kit\Core\Storage\Options; 34 39 use Google\Site_Kit\Core\Storage\Post_Meta; 35 use Google\Site_Kit\Core\Storage\ Term_Meta;40 use Google\Site_Kit\Core\Storage\User_Options; 36 41 use Google\Site_Kit\Core\Tags\Guards\Tag_Environment_Type_Guard; 37 42 use Google\Site_Kit\Core\Tags\Guards\Tag_Verify_Guard; 43 use Google\Site_Kit\Core\Util\Block_Support; 38 44 use Google\Site_Kit\Core\Util\Feature_Flags; 39 45 use Google\Site_Kit\Core\Util\URL; 46 use Google\Site_Kit\Modules\Reader_Revenue_Manager\Admin_Post_List; 47 use Google\Site_Kit\Modules\Reader_Revenue_Manager\Contribute_With_Google_Block; 48 use Google\Site_Kit\Modules\Reader_Revenue_Manager\Subscribe_With_Google_Block; 40 49 use Google\Site_Kit\Modules\Reader_Revenue_Manager\Post_Product_ID; 41 use Google\Site_Kit\Modules\Reader_Revenue_Manager\Term_Product_ID;42 50 use Google\Site_Kit\Modules\Reader_Revenue_Manager\Settings; 43 51 use Google\Site_Kit\Modules\Reader_Revenue_Manager\Synchronize_Publication; … … 69 77 70 78 /** 79 * Post_Product_ID instance. 80 * 81 * @since 1.148.0 82 * 83 * @var Post_Product_ID 84 */ 85 private $post_product_id; 86 87 /** 88 * Contribute_With_Google_Block instance. 89 * 90 * @since 1.148.0 91 * 92 * @var Contribute_With_Google_Block 93 */ 94 private $contribute_with_google_block; 95 96 /** 97 * Subscribe_With_Google_Block instance. 98 * 99 * @since 1.148.0 100 * 101 * @var Subscribe_With_Google_Block 102 */ 103 private $subscribe_with_google_block; 104 105 /** 106 * Tag_Guard instance. 107 * 108 * @since 1.148.0 109 * 110 * @var Tag_Guard 111 */ 112 private $tag_guard; 113 114 /** 115 * Constructor. 116 * 117 * @since 1.148.0 118 * 119 * @param Context $context Plugin context. 120 * @param Options $options Optional. Option API instance. Default is a new instance. 121 * @param User_Options $user_options Optional. User Option API instance. Default is a new instance. 122 * @param Authentication $authentication Optional. Authentication instance. Default is a new instance. 123 * @param Assets $assets Optional. Assets API instance. Default is a new instance. 124 */ 125 public function __construct( 126 Context $context, 127 Options $options = null, 128 User_Options $user_options = null, 129 Authentication $authentication = null, 130 Assets $assets = null 131 ) { 132 parent::__construct( $context, $options, $user_options, $authentication, $assets ); 133 134 $post_meta = new Post_Meta(); 135 $settings = $this->get_settings(); 136 137 $this->post_product_id = new Post_Product_ID( $post_meta, $settings ); 138 $this->tag_guard = new Tag_Guard( $settings, $this->post_product_id ); 139 $this->contribute_with_google_block = new Contribute_With_Google_Block( $this->context, $this->tag_guard, $settings ); 140 $this->subscribe_with_google_block = new Subscribe_With_Google_Block( $this->context, $this->tag_guard, $settings ); 141 } 142 143 /** 71 144 * Registers functionality through WordPress hooks. 72 145 * … … 83 156 84 157 if ( Feature_Flags::enabled( 'rrmModuleV2' ) && $this->is_connected() ) { 85 $post_meta = new Post_Meta(); 86 $publication_id = $this->get_settings()->get()['publicationID']; 87 $post_product_id = new Post_Product_ID( $post_meta, $publication_id ); 88 $post_product_id->register(); 89 90 $term_meta = new Term_Meta(); 91 $term_product_id = new Term_Product_ID( $term_meta, $publication_id ); 92 $term_product_id->register(); 158 $this->post_product_id->register(); 159 160 $admin_post_list = new Admin_Post_List( 161 $this->get_settings(), 162 $this->post_product_id 163 ); 164 $admin_post_list->register(); 165 166 if ( Block_Support::has_block_support() ) { 167 $this->contribute_with_google_block->register(); 168 $this->subscribe_with_google_block->register(); 169 } 93 170 } 94 171 … … 411 488 'googlesitekit-data', 412 489 'googlesitekit-modules', 490 'googlesitekit-notifications', 413 491 'googlesitekit-datastore-site', 414 492 'googlesitekit-datastore-user', … … 419 497 ); 420 498 421 if ( Feature_Flags::enabled( 'rrmModuleV2' ) ) {499 if ( Feature_Flags::enabled( 'rrmModuleV2' ) && Block_Support::has_block_support() ) { 422 500 $assets[] = new Script( 423 ' googlesitekit-reader-revenue-manager-block-editor',501 'blocks-reader-revenue-manager-block-editor-plugin', 424 502 array( 425 'src' => $base_url . 'js/blocks/googlesitekit-reader-revenue-manager-block-editor.js', 503 'src' => $base_url . 'js/blocks/reader-revenue-manager/block-editor-plugin/index.js', 504 'dependencies' => array( 505 'googlesitekit-data', 506 'googlesitekit-i18n', 507 'googlesitekit-modules', 508 'googlesitekit-modules-reader-revenue-manager', 509 ), 510 'execution' => 'defer', 511 'load_contexts' => array( Asset::CONTEXT_ADMIN_POST_EDITOR ), 512 ) 513 ); 514 515 $assets[] = new Stylesheet( 516 'blocks-reader-revenue-manager-block-editor-plugin-styles', 517 array( 518 'src' => $base_url . 'js/blocks/reader-revenue-manager/block-editor-plugin/editor-styles.css', 519 'dependencies' => array(), 520 'load_contexts' => array( Asset::CONTEXT_ADMIN_POST_EDITOR ), 521 ) 522 ); 523 524 $assets[] = new Script( 525 'blocks-contribute-with-google', 526 array( 527 'src' => $base_url . 'js/blocks/reader-revenue-manager/contribute-with-google/index.js', 528 'dependencies' => array( 529 'googlesitekit-data', 530 'googlesitekit-i18n', 531 'googlesitekit-modules', 532 'googlesitekit-modules-reader-revenue-manager', 533 ), 534 'load_contexts' => array( Asset::CONTEXT_ADMIN_POST_EDITOR ), 535 'execution' => 'defer', 536 ) 537 ); 538 539 $assets[] = new Script( 540 'blocks-subscribe-with-google', 541 array( 542 'src' => $base_url . 'js/blocks/reader-revenue-manager/subscribe-with-google/index.js', 543 'dependencies' => array( 544 'googlesitekit-data', 545 'googlesitekit-i18n', 546 'googlesitekit-modules', 547 'googlesitekit-modules-reader-revenue-manager', 548 ), 549 'load_contexts' => array( Asset::CONTEXT_ADMIN_POST_EDITOR ), 550 'execution' => 'defer', 551 ) 552 ); 553 554 $assets[] = new Stylesheet( 555 'blocks-reader-revenue-manager-common-editor-styles', 556 array( 557 'src' => $base_url . 'js/blocks/reader-revenue-manager/common/editor-styles.css', 426 558 'dependencies' => array(), 427 559 'load_contexts' => array( Asset::CONTEXT_ADMIN_POST_EDITOR ), … … 460 592 461 593 $tag->use_guard( new Tag_Verify_Guard( $this->context->input() ) ); 462 $tag->use_guard( new Tag_Guard( $module_settings ));594 $tag->use_guard( $this->tag_guard ); 463 595 $tag->use_guard( new Tag_Environment_Type_Guard() ); 464 596 … … 467 599 } 468 600 601 $product_id = 'openaccess'; 602 603 if ( Feature_Flags::enabled( 'rrmModuleV2' ) ) { 604 $product_id = $settings['productID']; 605 $post_product_id = ''; 606 607 if ( is_singular() ) { 608 $post_product_id = $this->post_product_id->get( get_the_ID() ); 609 610 if ( ! empty( $post_product_id ) ) { 611 $product_id = $post_product_id; 612 } 613 } 614 615 // Extract the product ID from the setting, which is in the format 616 // of `publicationID:productID`. 617 if ( 'openaccess' !== $product_id ) { 618 $separator_index = strpos( $product_id, ':' ); 619 620 if ( false !== $separator_index ) { 621 $product_id = substr( $product_id, $separator_index + 1 ); 622 } 623 } 624 } 625 626 $tag->set_product_id( $product_id ); 469 627 $tag->register(); 470 628 } -
google-site-kit/trunk/includes/Modules/Reader_Revenue_Manager/Post_Product_ID.php
r3238118 r3253534 11 11 namespace Google\Site_Kit\Modules\Reader_Revenue_Manager; 12 12 13 use Google\Site_Kit\Core\Storage\Meta_Setting_Trait; 13 14 use Google\Site_Kit\Core\Storage\Post_Meta; 14 use Google\Site_Kit\ Core\Storage\Meta_Setting_Trait;15 use Google\Site_Kit\Modules\Reader_Revenue_Manager\Settings; 15 16 16 17 /** … … 26 27 27 28 /** 28 * Publication ID.29 * Settings instance. 29 30 * 30 * @since 1.14 5.031 * @since 1.148.0 31 32 * 32 * @var string33 * @var Settings 33 34 */ 34 private string $publication_id;35 private $settings; 35 36 36 37 /** … … 40 41 * 41 42 * @param Post_Meta $post_meta Post_Meta instance. 42 * @param string $publication_id Publication ID.43 * @param Settings $settings Reader Revenue Manager module settings instance. 43 44 */ 44 public function __construct( Post_Meta $post_meta, string $publication_id) {45 $this->meta = $post_meta;46 $this-> publication_id = $publication_id;45 public function __construct( Post_Meta $post_meta, Settings $settings ) { 46 $this->meta = $post_meta; 47 $this->settings = $settings; 47 48 } 48 49 … … 55 56 */ 56 57 protected function get_meta_key(): string { 57 return 'googlesitekit_rrm_' . $this->publication_id . ':productID'; 58 $publication_id = $this->settings->get()['publicationID']; 59 return 'googlesitekit_rrm_' . $publication_id . ':productID'; 58 60 } 59 61 -
google-site-kit/trunk/includes/Modules/Reader_Revenue_Manager/Settings.php
r3229883 r3253534 101 101 */ 102 102 public function get_view_only_keys() { 103 return array(); 103 $keys = array( 104 'publicationID', 105 ); 106 107 if ( Feature_Flags::enabled( 'rrmModuleV2' ) ) { 108 $keys = array_merge( 109 $keys, 110 array( 111 'snippetMode', 112 'postTypes', 113 'paymentOption', 114 ) 115 ); 116 } 117 118 return $keys; 104 119 } 105 120 -
google-site-kit/trunk/includes/Modules/Reader_Revenue_Manager/Tag_Guard.php
r3127664 r3253534 11 11 namespace Google\Site_Kit\Modules\Reader_Revenue_Manager; 12 12 13 use Google\Site_Kit\Core\Modules\Module_Settings; 13 14 use Google\Site_Kit\Core\Modules\Tags\Module_Tag_Guard; 15 use Google\Site_Kit\Core\Util\Feature_Flags; 16 use Google\Site_Kit\Modules\Reader_Revenue_Manager\Post_Product_ID; 14 17 15 18 /** … … 23 26 24 27 /** 28 * Post_Product_ID instance. 29 * 30 * @since 1.148.0 31 * 32 * @var Post_Product_ID 33 */ 34 private $post_product_id; 35 36 /** 37 * Constructor. 38 * 39 * @since 1.148.0 40 * 41 * @param Module_Settings $settings Module settings instance. 42 * @param Post_Product_ID $post_product_id Post_Product_ID instance. 43 */ 44 public function __construct( Module_Settings $settings, $post_product_id ) { 45 parent::__construct( $settings ); 46 47 $this->post_product_id = $post_product_id; 48 } 49 50 /** 25 51 * Determines whether the guarded tag can be activated or not. 26 52 * … … 31 57 public function can_activate() { 32 58 $settings = $this->settings->get(); 33 return ! empty( $settings['publicationID'] ); 59 60 if ( empty( $settings['publicationID'] ) ) { 61 return false; 62 } 63 64 if ( ! Feature_Flags::enabled( 'rrmModuleV2' ) ) { 65 return true; 66 } 67 68 if ( is_singular() ) { 69 return $this->can_activate_for_singular_post(); 70 } 71 72 return 'sitewide' === $settings['snippetMode']; 73 } 74 75 /** 76 * Determines whether the guarded tag can be activated for a singular post or not. 77 * 78 * @since 1.148.0 79 * 80 * @return bool TRUE if guarded tag can be activated for a singular post, otherwise FALSE. 81 */ 82 private function can_activate_for_singular_post() { 83 $post_product_id = $this->post_product_id->get( get_the_ID() ); 84 85 if ( 'none' === $post_product_id ) { 86 return false; 87 } 88 89 if ( ! empty( $post_product_id ) ) { 90 return true; 91 } 92 93 $settings = $this->settings->get(); 94 95 // If the snippet mode is `per_post` and there is no post product ID, 96 // we don't want to render the tag. 97 if ( 'per_post' === $settings['snippetMode'] ) { 98 return false; 99 } 100 101 // If the snippet mode is `post_types`, we only want to render the tag 102 // if the current post type is in the list of allowed post types. 103 if ( 'post_types' === $settings['snippetMode'] ) { 104 /** 105 * Filters the post types where Reader Revenue Manager CTAs should appear. 106 * 107 * @since 1.140.0 108 * 109 * @param array $cta_post_types The array of post types. 110 */ 111 $cta_post_types = apply_filters( 112 'googlesitekit_reader_revenue_manager_cta_post_types', 113 $settings['postTypes'] 114 ); 115 116 return in_array( get_post_type(), $cta_post_types, true ); 117 } 118 119 // Snippet mode is `sitewide` at this point, so we want to render the tag. 120 return true; 34 121 } 35 122 } -
google-site-kit/trunk/includes/Modules/Reader_Revenue_Manager/Web_Tag.php
r3191565 r3253534 26 26 use Method_Proxy_Trait; 27 27 use Tag_With_DNS_Prefetch_Trait; 28 29 /** 30 * Product ID. 31 * 32 * @since 1.148.0 33 * 34 * @var string 35 */ 36 private $product_id; 37 38 /** 39 * Sets the product ID. 40 * 41 * @since 1.148.0 42 * 43 * @param string $product_id Product ID. 44 */ 45 public function set_product_id( $product_id ) { 46 $this->product_id = $product_id; 47 } 28 48 29 49 /** … … 61 81 $locale = str_replace( '_', '-', get_locale() ); 62 82 83 /** 84 * Filters the Reader Revenue Manager product ID. 85 * 86 * @since 1.148.0 87 * 88 * @param string $product_id The array of post types. 89 */ 90 $product_id = apply_filters( 91 'googlesitekit_reader_revenue_manager_product_id', 92 $this->product_id 93 ); 94 63 95 $subscription = array( 64 96 'type' => 'NewsArticle', 65 97 'isPartOfType' => array( 'Product' ), 66 'isPartOfProductId' => $this->tag_id . ': openaccess',98 'isPartOfProductId' => $this->tag_id . ':' . $product_id, 67 99 'clientOptions' => array( 68 100 'theme' => 'light', … … 87 119 wp_add_inline_script( 'google_swgjs', $swg_inline_script, 'before' ); 88 120 89 /** 90 * Filters the post types where Reader Revenue Manager CTAs should appear. 91 * 92 * @since 1.140.0 93 * 94 * @param array $cta_post_types The array of post types. 95 */ 96 $cta_post_types = apply_filters( 97 'googlesitekit_reader_revenue_manager_cta_post_types', 98 array( 'post' ) 99 ); 100 101 if ( is_singular( $cta_post_types ) ) { 102 wp_enqueue_script( 'google_swgjs' ); 103 } 121 wp_enqueue_script( 'google_swgjs' ); 104 122 } 105 123 -
google-site-kit/trunk/includes/Modules/Sign_In_With_Google.php
r3246532 r3253534 17 17 use Google\Site_Kit\Core\Assets\Stylesheet; 18 18 use Google\Site_Kit\Core\Authentication\Authentication; 19 use Google\Site_Kit\Core\Conversion_Tracking\Conversion_Event_Providers\WooCommerce;20 19 use Google\Site_Kit\Core\Modules\Module; 21 20 use Google\Site_Kit\Core\Modules\Module_With_Assets; … … 34 33 use Google\Site_Kit\Core\Util\BC_Functions; 35 34 use Google\Site_Kit\Core\Util\Method_Proxy_Trait; 35 use Google\Site_Kit\Core\Util\Plugin_Status; 36 36 use Google\Site_Kit\Modules\Sign_In_With_Google\Authenticator; 37 37 use Google\Site_Kit\Modules\Sign_In_With_Google\Authenticator_Interface; … … 92 92 93 93 /** 94 * WooCommerce instance. 95 * 96 * @since 1.146.0 97 * @var WooCommerce 98 */ 99 protected $woocommerce; 94 * Stores the active state of the WooCommerce plugin. 95 * 96 * @since 1.148.0 97 * @var bool Whether WooCommerce is active or not. 98 */ 99 protected $is_woocommerce_active; 100 100 101 101 102 /** … … 118 119 ) { 119 120 parent::__construct( $context, $options, $user_options, $authentication, $assets ); 121 120 122 $this->existing_client_id = new Existing_Client_ID( $this->options ); 121 123 $this->sign_in_with_google_block = new Sign_In_With_Google_Block( $this->context ); 122 $this->woocommerce = new WooCommerce( $this->context );123 124 } 124 125 … … 368 369 * 369 370 * - the Sign in with Google module is connected 370 * - WooCommerce is active371 371 * - the user is not logged in 372 372 */ 373 if ( ! $this->is_connected() || ! $this->woocommerce->is_active() ||is_user_logged_in() ) {373 if ( ! $this->is_connected() || is_user_logged_in() ) { 374 374 return; 375 375 } … … 389 389 */ 390 390 private function render_signinwithgoogle() { 391 $is_wp_login = is_login(); 391 // `is_login()` isn't available until WP 6.1. 392 $is_wp_login = false !== stripos( wp_login_url(), $_SERVER['SCRIPT_NAME'] ?? '' ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput 392 393 $is_woocommerce = class_exists( 'woocommerce' ); 393 394 $is_woocommerce_login = did_action( 'woocommerce_login_form_start' ); … … 621 622 * @since 1.140.0 622 623 * 623 * @return string TRUE if tag is found, FALSE if not.624 * @return string|array 624 625 */ 625 626 public function get_content_url() { 626 627 $wp_login_url = wp_login_url(); 627 628 628 if ( $this-> woocommerce->is_active() ) {629 if ( $this->is_woocommerce_active() ) { 629 630 $wc_login_page_id = wc_get_page_id( 'myaccount' ); 630 631 $wc_login_url = get_permalink( $wc_login_page_id ); … … 781 782 } 782 783 783 $is_woocommerce_active = $this-> woocommerce->is_active();784 $is_woocommerce_active = $this->is_woocommerce_active(); 784 785 $woocommerce_registration_enabled = $is_woocommerce_active ? get_option( 'woocommerce_enable_myaccount_registration' ) : null; 785 786 … … 792 793 return $modules_data; 793 794 } 795 796 /** 797 * Helper method to determine if the WooCommerce plugin is active. 798 * 799 * @since 1.148.0 800 * 801 * @return bool True if active, false if not. 802 */ 803 protected function is_woocommerce_active() { 804 return class_exists( 'WooCommerce' ); 805 } 794 806 } -
google-site-kit/trunk/includes/Modules/Sign_In_With_Google/Sign_In_With_Google_Block.php
r3246532 r3253534 12 12 13 13 use Google\Site_Kit\Context; 14 use Google\Site_Kit\Core\Util\Block_Support; 14 15 15 16 /** … … 46 47 */ 47 48 public static function can_register() { 48 $wp_version = get_bloginfo( 'version' ); 49 // The block currently requires version WP 5.8 or higher. 50 return (bool) version_compare( '5.8', $wp_version, '<=' ); 49 return Block_Support::has_block_support(); 51 50 } 52 51 -
google-site-kit/trunk/includes/vendor/composer/autoload_classmap.php
r3246532 r3253534 214 214 'Google\\Site_Kit\\Core\\Util\\Auto_Updates' => $baseDir . '/Core/Util/Auto_Updates.php', 215 215 'Google\\Site_Kit\\Core\\Util\\BC_Functions' => $baseDir . '/Core/Util/BC_Functions.php', 216 'Google\\Site_Kit\\Core\\Util\\Block_Support' => $baseDir . '/Core/Util/Block_Support.php', 216 217 'Google\\Site_Kit\\Core\\Util\\Collection_Key_Cap_Filter' => $baseDir . '/Core/Util/Collection_Key_Cap_Filter.php', 217 218 'Google\\Site_Kit\\Core\\Util\\Date' => $baseDir . '/Core/Util/Date.php', … … 232 233 'Google\\Site_Kit\\Core\\Util\\Migration_1_3_0' => $baseDir . '/Core/Util/Migration_1_3_0.php', 233 234 'Google\\Site_Kit\\Core\\Util\\Migration_1_8_1' => $baseDir . '/Core/Util/Migration_1_8_1.php', 235 'Google\\Site_Kit\\Core\\Util\\Plugin_Status' => $baseDir . '/Core/Util/Plugin_Status.php', 234 236 'Google\\Site_Kit\\Core\\Util\\REST_Entity_Search_Controller' => $baseDir . '/Core/Util/REST_Entity_Search_Controller.php', 235 237 'Google\\Site_Kit\\Core\\Util\\Requires_Javascript_Trait' => $baseDir . '/Core/Util/Requires_Javascript_Trait.php', … … 271 273 'Google\\Site_Kit\\Modules\\Analytics_4\\Advanced_Tracking\\Event_List_Registry' => $baseDir . '/Modules/Analytics_4/Advanced_Tracking/Event_List_Registry.php', 272 274 'Google\\Site_Kit\\Modules\\Analytics_4\\Advanced_Tracking\\Script_Injector' => $baseDir . '/Modules/Analytics_4/Advanced_Tracking/Script_Injector.php', 275 'Google\\Site_Kit\\Modules\\Analytics_4\\Audience_Settings' => $baseDir . '/Modules/Analytics_4/Audience_Settings.php', 273 276 'Google\\Site_Kit\\Modules\\Analytics_4\\Conversion_Reporting\\Conversion_Reporting_Cron' => $baseDir . '/Modules/Analytics_4/Conversion_Reporting/Conversion_Reporting_Cron.php', 274 277 'Google\\Site_Kit\\Modules\\Analytics_4\\Conversion_Reporting\\Conversion_Reporting_Events_Sync' => $baseDir . '/Modules/Analytics_4/Conversion_Reporting/Conversion_Reporting_Events_Sync.php', … … 310 313 'Google\\Site_Kit\\Modules\\PageSpeed_Insights\\Settings' => $baseDir . '/Modules/PageSpeed_Insights/Settings.php', 311 314 'Google\\Site_Kit\\Modules\\Reader_Revenue_Manager' => $baseDir . '/Modules/Reader_Revenue_Manager.php', 315 'Google\\Site_Kit\\Modules\\Reader_Revenue_Manager\\Admin_Post_List' => $baseDir . '/Modules/Reader_Revenue_Manager/Admin_Post_List.php', 316 'Google\\Site_Kit\\Modules\\Reader_Revenue_Manager\\Contribute_With_Google_Block' => $baseDir . '/Modules/Reader_Revenue_Manager/Contribute_With_Google_Block.php', 312 317 'Google\\Site_Kit\\Modules\\Reader_Revenue_Manager\\Post_Product_ID' => $baseDir . '/Modules/Reader_Revenue_Manager/Post_Product_ID.php', 313 318 'Google\\Site_Kit\\Modules\\Reader_Revenue_Manager\\Settings' => $baseDir . '/Modules/Reader_Revenue_Manager/Settings.php', 319 'Google\\Site_Kit\\Modules\\Reader_Revenue_Manager\\Subscribe_With_Google_Block' => $baseDir . '/Modules/Reader_Revenue_Manager/Subscribe_With_Google_Block.php', 314 320 'Google\\Site_Kit\\Modules\\Reader_Revenue_Manager\\Synchronize_Publication' => $baseDir . '/Modules/Reader_Revenue_Manager/Synchronize_Publication.php', 315 321 'Google\\Site_Kit\\Modules\\Reader_Revenue_Manager\\Tag_Guard' => $baseDir . '/Modules/Reader_Revenue_Manager/Tag_Guard.php', 316 322 'Google\\Site_Kit\\Modules\\Reader_Revenue_Manager\\Tag_Matchers' => $baseDir . '/Modules/Reader_Revenue_Manager/Tag_Matchers.php', 317 'Google\\Site_Kit\\Modules\\Reader_Revenue_Manager\\Term_Product_ID' => $baseDir . '/Modules/Reader_Revenue_Manager/Term_Product_ID.php',318 323 'Google\\Site_Kit\\Modules\\Reader_Revenue_Manager\\Web_Tag' => $baseDir . '/Modules/Reader_Revenue_Manager/Web_Tag.php', 319 324 'Google\\Site_Kit\\Modules\\Search_Console' => $baseDir . '/Modules/Search_Console.php', -
google-site-kit/trunk/readme.txt
r3246532 r3253534 5 5 Tested up to: 6.7 6 6 Requires PHP: 7.4 7 Stable tag: 1.14 7.07 Stable tag: 1.148.0 8 8 License: Apache License 2.0 9 9 License URI: https://www.apache.org/licenses/LICENSE-2.0 … … 110 110 == Changelog == 111 111 112 = 1.147.0 = 112 = 1.148.0 = 113 114 **Added** 115 116 * Unregister the `PartnerAdsPAXWidget` widget. See [#10219](https://github.com/google/site-kit-wp/issues/10219). 113 117 114 118 **Enhanced** 115 119 116 * Retain the publication ID prefix for product IDs when storing them in Reader Revenue Manager settings. See [#10228](https://github.com/google/site-kit-wp/issues/10228). 117 * Update URL for RRM publication creation to streamline configuration. See [#10166](https://github.com/google/site-kit-wp/issues/10166). 118 * Update the Analytics zero-data report to include the comparison date range, ensuring we check for data across both the previous and current date range when determining the gathering data state. See [#10105](https://github.com/google/site-kit-wp/issues/10105). 119 * Add Reader Revenue Manager introductory overlay notifications. See [#10070](https://github.com/google/site-kit-wp/issues/10070). 120 * Add Reader Revenue Manager product ID notifications. See [#10069](https://github.com/google/site-kit-wp/issues/10069). 121 * Add a new "CTA placement" section to the Reader Revenue Manager settings, allowing users to select where CTAs should appear using a dropdown and chip multi-select. See [#10066](https://github.com/google/site-kit-wp/issues/10066). 122 * Add the learn more link to the lost events banner. See [#10045](https://github.com/google/site-kit-wp/issues/10045). 123 * Update Ads PAX Application to be aware of supported conversion events. See [#10032](https://github.com/google/site-kit-wp/issues/10032). 120 * Update the Ads setup CTA banner to appear before the Audience Segmentation banner. See [#10290](https://github.com/google/site-kit-wp/issues/10290). 121 * Update the "Learn more" link in the Ads Module Setup banner. See [#10278](https://github.com/google/site-kit-wp/issues/10278). 122 * Show warning when Google for WooCommerce ads account is enabled. See [#10257](https://github.com/google/site-kit-wp/issues/10257). 123 * Add WordPress post list bulk edit setting for Reader Revenue Manager. See [#10248](https://github.com/google/site-kit-wp/issues/10248). 124 * Update the Ads module setup layout. See [#10193](https://github.com/google/site-kit-wp/issues/10193). 125 * Fix bug that could cause console errors when answering tailored metrics questions. See [#10182](https://github.com/google/site-kit-wp/issues/10182). 126 * Add the subtle notification component for existing Google for WooCommerce Ads users. See [#10176](https://github.com/google/site-kit-wp/issues/10176). 127 * Update Ads Setup CTA to add support for WooCommerce plugins. See [#10175](https://github.com/google/site-kit-wp/issues/10175). 128 * Add the `WooCommerceRedirectModal` component. See [#10172](https://github.com/google/site-kit-wp/issues/10172). 129 * Add plugin detection selectors to the core/site datastore. See [#10170](https://github.com/google/site-kit-wp/issues/10170). 130 * Add support for detecting WooCommerce and Google for Woo plugins. See [#10169](https://github.com/google/site-kit-wp/issues/10169). 131 * Handle the error case where the saved product ID is no longer available in the current Reader Revenue Manager publication. See [#10131](https://github.com/google/site-kit-wp/issues/10131). 132 * Display context-aware messaging based on the publication’s monetization mode in the Reader Revenue Manager module's the setup success notification. See [#10068](https://github.com/google/site-kit-wp/issues/10068). 133 * Add a dropdown and associated informational elements to the Reader Revenue Manager setup and settings screens, to aid the selection of a product ID. See [#10065](https://github.com/google/site-kit-wp/issues/10065). 134 * Enable conditional and context-aware placement of the Reader Revenue Manager code snippet. See [#9973](https://github.com/google/site-kit-wp/issues/9973). 135 * Add WordPress editor blocks for Reader Revenue Manager inline CTA buttons. See [#9963](https://github.com/google/site-kit-wp/issues/9963). 136 * Add a panel to the WordPress post editor to users to override the Reader Revenue Manager snippet configuration at the post level. See [#9962](https://github.com/google/site-kit-wp/issues/9962). 137 * When enabling groups, ensure Analytics scope is only requested when needed. See [#9595](https://github.com/google/site-kit-wp/issues/9595). 138 * Rework the Auto Update banner to use the new notification infrastructure. See [#9295](https://github.com/google/site-kit-wp/issues/9295). 124 139 125 140 **Changed** 126 141 127 * Move js dependencies required for backstop tests to their own workspace. See [#10093](https://github.com/google/site-kit-wp/issues/10093). 128 * Refactor filtering of `(not set)` values in reports to use the new `EmptyFilter` filter type. See [#10059](https://github.com/google/site-kit-wp/issues/10059). 129 * Implement the Sign in with Google block. See [#10046](https://github.com/google/site-kit-wp/issues/10046). 130 * Move e2e related dependencies into their own workspace. See [#10013](https://github.com/google/site-kit-wp/issues/10013). 131 * Refactor report filters so as to be usable for both dimensions and metrics. See [#7634](https://github.com/google/site-kit-wp/issues/7634). 142 * Ensure that client-side filtering of unset Analytics report values filters out empty strings as well as '(not set)', to align with changes to the Analytics Data API. See [#10143](https://github.com/google/site-kit-wp/issues/10143). 132 143 133 144 **Fixed** 134 145 135 * Fix error that could occur on the dashboard when connecting a new Analytics account after connecting a previously-connected account. See [#10187](https://github.com/google/site-kit-wp/issues/10187). 136 * Fix Key Metrics positioning on large screens. See [#10050](https://github.com/google/site-kit-wp/issues/10050). 137 * Update description of the new detected events notice. See [#10049](https://github.com/google/site-kit-wp/issues/10049). 138 * Update language used in tailored metrics questionnaire. See [#10040](https://github.com/google/site-kit-wp/issues/10040). 139 * Fix incorrect dismiss notification event tracking. See [#10038](https://github.com/google/site-kit-wp/issues/10038). 140 * Fix duplicate survey triggers issue. See [#10036](https://github.com/google/site-kit-wp/issues/10036). 146 * Fix the console error that appears when the `conversionReporting` flag is enabled and the Analytics module is not connected. See [#10289](https://github.com/google/site-kit-wp/issues/10289). 147 * Add a datastore slice with actions and selectors for retrieving and updating the new set of audience settings. See [#10154](https://github.com/google/site-kit-wp/issues/10154). 148 * Add a new option for audience settings, with REST endpoints to retrieve and update it. See [#10153](https://github.com/google/site-kit-wp/issues/10153). 149 * Hide the new badge in the key metrics settings when they have been configured in the full screen editing for the first time. See [#10083](https://github.com/google/site-kit-wp/issues/10083). 141 150 142 151 [See changelog for all versions](https://raw.githubusercontent.com/google/site-kit-wp/main/changelog.txt).
Note: See TracChangeset
for help on using the changeset viewer.