diff --git a/modules/ppcp-settings/resources/js/Components/Screens/Settings/Components/Settings/Blocks/KeepUpdated.js b/modules/ppcp-settings/resources/js/Components/Screens/Settings/Components/Settings/Blocks/KeepUpdated.js
new file mode 100644
index 000000000..29512e839
--- /dev/null
+++ b/modules/ppcp-settings/resources/js/Components/Screens/Settings/Components/Settings/Blocks/KeepUpdated.js
@@ -0,0 +1,28 @@
+import { __ } from '@wordpress/i18n';
+
+import { ControlToggleButton } from '../../../../../ReusableComponents/Controls';
+import { SettingsHooks } from '../../../../../../data';
+import SettingsBlock from '../../../../../ReusableComponents/SettingsBlock';
+
+const KeepUpdated = () => {
+ const { keepUpdated, setKeepUpdated } = SettingsHooks.useSettings();
+
+ return (
+
+
+
+ );
+};
+
+export default KeepUpdated;
diff --git a/modules/ppcp-settings/resources/js/Components/Screens/Settings/Components/Settings/CommonSettings.js b/modules/ppcp-settings/resources/js/Components/Screens/Settings/Components/Settings/CommonSettings.js
index fad24bc01..95b0d9841 100644
--- a/modules/ppcp-settings/resources/js/Components/Screens/Settings/Components/Settings/CommonSettings.js
+++ b/modules/ppcp-settings/resources/js/Components/Screens/Settings/Components/Settings/CommonSettings.js
@@ -5,6 +5,7 @@ import OrderIntent from './Blocks/OrderIntent';
import SavePaymentMethods from './Blocks/SavePaymentMethods';
import InvoicePrefix from './Blocks/InvoicePrefix';
import PayNowExperience from './Blocks/PayNowExperience';
+import KeepUpdated from './Blocks/KeepUpdated';
const CommonSettings = ( { ownBradOnly } ) => (
(
+
);
diff --git a/modules/ppcp-settings/resources/js/data/settings/hooks.js b/modules/ppcp-settings/resources/js/data/settings/hooks.js
index 4a97afa9e..8635c7887 100644
--- a/modules/ppcp-settings/resources/js/data/settings/hooks.js
+++ b/modules/ppcp-settings/resources/js/data/settings/hooks.js
@@ -63,6 +63,7 @@ const useHooks = () => {
const [ payNowExperience, setPayNowExperience ] =
usePersistent( 'enablePayNow' );
const [ logging, setLogging ] = usePersistent( 'enableLogging' );
+ const [ keepUpdated, setKeepUpdated ] = usePersistent( 'keepUpdated' );
const [ disabledCards, setDisabledCards ] =
usePersistent( 'disabledCards' );
@@ -82,6 +83,8 @@ const useHooks = () => {
setPayNowExperience,
logging,
setLogging,
+ keepUpdated,
+ setKeepUpdated,
subtotalAdjustment,
setSubtotalAdjustment,
brandName,
@@ -126,6 +129,8 @@ export const useSettings = () => {
setPayNowExperience,
logging,
setLogging,
+ keepUpdated,
+ setKeepUpdated,
subtotalAdjustment,
setSubtotalAdjustment,
brandName,
@@ -155,6 +160,8 @@ export const useSettings = () => {
setPayNowExperience,
logging,
setLogging,
+ keepUpdated,
+ setKeepUpdated,
subtotalAdjustment,
setSubtotalAdjustment,
brandName,
diff --git a/modules/ppcp-settings/resources/js/data/settings/reducer.js b/modules/ppcp-settings/resources/js/data/settings/reducer.js
index 875129bd8..274e7ef9b 100644
--- a/modules/ppcp-settings/resources/js/data/settings/reducer.js
+++ b/modules/ppcp-settings/resources/js/data/settings/reducer.js
@@ -42,6 +42,7 @@ const defaultPersistent = Object.freeze( {
saveCardDetails: false, // Enable card vaulting
enablePayNow: false, // Enable Pay Now experience
enableLogging: false, // Enable debug logging
+ keepUpdated: false, // Enable to receive PayPal-related updates
// String arrays.
disabledCards: [], // Disabled credit card types
diff --git a/modules/ppcp-settings/src/Data/SettingsModel.php b/modules/ppcp-settings/src/Data/SettingsModel.php
index 713786651..81d879bd3 100644
--- a/modules/ppcp-settings/src/Data/SettingsModel.php
+++ b/modules/ppcp-settings/src/Data/SettingsModel.php
@@ -82,6 +82,7 @@ class SettingsModel extends AbstractDataModel {
'save_card_details' => false,
'enable_pay_now' => false,
'enable_logging' => false,
+ 'keep_updated' => true,
// Array of string values.
'disabled_cards' => array(),
diff --git a/modules/ppcp-settings/src/Endpoint/SettingsRestEndpoint.php b/modules/ppcp-settings/src/Endpoint/SettingsRestEndpoint.php
index 06f639bba..a534f74e5 100644
--- a/modules/ppcp-settings/src/Endpoint/SettingsRestEndpoint.php
+++ b/modules/ppcp-settings/src/Endpoint/SettingsRestEndpoint.php
@@ -86,6 +86,10 @@ class SettingsRestEndpoint extends RestEndpoint {
'js_name' => 'enableLogging',
'sanitize' => 'to_boolean',
),
+ 'keep_updated' => array(
+ 'js_name' => 'keepUpdated',
+ 'sanitize' => 'to_boolean',
+ ),
'disabled_cards' => array(
'js_name' => 'disabledCards',
),