Files
wp-multisite-waas/inc/class-newsletter.php
2025-01-11 09:39:16 -07:00

75 lines
2.7 KiB
PHP

<?php
namespace WP_Ultimo;
class Newsletter {
use \WP_Ultimo\Traits\Singleton;
const SETTING_FIELD_SLUG = 'newsletter_optin';
public function init() {
add_action('wu_settings_login', array($this, 'add_settings'), 20);
add_filter('wu_pre_save_settings', array($this, 'maybe_update_newsletter_subscription'), 10, 3);
} // end init;
public function add_settings() {
wu_register_settings_field('general', self::SETTING_FIELD_SLUG, array(
'title' => __('Signup for WP Multisite WaaS Newsletter', 'wp-ultimo'),
'desc' => __('Be informed of new releases and all things related to running a WaaS Network.', 'wp-ultimo'),
'type' => 'toggle',
'value' => '1',
),
45
);
}
/**
* Fix stripe settings
*
* @since 2.0.18
*
* @param array $settings The final settings array being saved, containing ALL options.
* @param array $settings_to_save Array containing just the options being updated.
* @param array $saved_settings Array containing the original settings.
* @return array
*/
public function maybe_update_newsletter_subscription($settings, $settings_to_save, $saved_settings) {
if ( isset($settings_to_save[ self::SETTING_FIELD_SLUG ]) && $settings_to_save[ self::SETTING_FIELD_SLUG ] && $settings_to_save[ self::SETTING_FIELD_SLUG ] != $saved_settings[ self::SETTING_FIELD_SLUG ] ) {
$response = wp_remote_post( 'https://wpmultisitewaas.org/wp-json/newsletter/v2/subscribers', [
'method' => 'PUT',
'body' => wp_json_encode( [
'email' => $settings['company_email'],
'status' => 'confirmed',
'first_name' => $settings['company_name'],
'country' => $settings['company_country'],
] ),
'headers' => [
'Accept' => 'application/json',
'Content-Type' => 'application/json',
'Authorization' => 'Basic ' . base64_encode( '30220d7fb4ec49a7410b3a309b9346c18410bd56:0407cd731d6f074cd0b96f2643b7619e89af1ed2' ),
],
] );
} elseif( empty($settings_to_save[ self::SETTING_FIELD_SLUG ]) && ! empty( $saved_settings[ self::SETTING_FIELD_SLUG ] ) ) {
$response = wp_remote_post( 'https://wpmultisitewaas.org/wp-json/newsletter/v2/subscribers', [
'method' => 'PUT',
'body' => wp_json_encode( [
'email' => $settings['company_email'],
'status' => 'unsubscribed',
] ),
'headers' => [
'Accept' => 'application/json',
'Content-Type' => 'application/json',
'Authorization' => 'Basic ' . base64_encode( '30220d7fb4ec49a7410b3a309b9346c18410bd56:0407cd731d6f074cd0b96f2643b7619e89af1ed2' ),
],
] );
}
return $settings;
} // end fix_saving_settings;
}