public static function save_config_page($config) { if (!current_user_can('update_plugins')) { return; } $sdk_dir = plugin_dir_path(__FILE__) . 'sdk_files/'; $onesignal_wp_settings = OneSignal::get_onesignal_settings(); $new_app_id = $config['app_id']; // Validate the UUID if (preg_match('/([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})/', $new_app_id, $m)) { $onesignal_wp_settings['app_id'] = $new_app_id; } if (is_numeric($config['gcm_sender_id'])) { $onesignal_wp_settings['gcm_sender_id'] = $config['gcm_sender_id']; } if (array_key_exists('subdomain', $config)) { $onesignal_wp_settings['subdomain'] = $config['subdomain']; } else { $onesignal_wp_settings['subdomain'] = ""; } $onesignal_wp_settings['is_site_https_firsttime'] = 'set'; $booleanSettings = array('is_site_https', 'prompt_auto_register', 'use_modal_prompt', 'send_welcome_notification', 'notification_on_post', 'notification_on_post_from_plugin', 'showNotificationIconFromPostThumbnail', 'chrome_auto_dismiss_notifications', 'prompt_customize_enable', 'prompt_showcredit', 'notifyButton_enable', 'notifyButton_prenotify', 'notifyButton_showcredit', 'notifyButton_customize_enable', 'notifyButton_customize_colors_enable', 'notifyButton_customize_offset_enable'); OneSignal_Admin::saveBooleanSettings($onesignal_wp_settings, $config, $booleanSettings); $stringSettings = array('app_rest_api_key', 'safari_web_id', 'prompt_action_message', 'prompt_example_notification_title_desktop', 'prompt_example_notification_message_desktop', 'prompt_example_notification_title_mobile', 'prompt_example_notification_message_mobile', 'prompt_example_notification_caption', 'prompt_cancel_button_text', 'prompt_accept_button_text', 'welcome_notification_title', 'welcome_notification_message', 'welcome_notification_url', 'subscriberTags', 'includedSegments', 'notifyButton_size', 'notifyButton_theme', 'notifyButton_position', 'notifyButton_color_background', 'notifyButton_color_foreground', 'notifyButton_color_badge_background', 'notifyButton_color_badge_foreground', 'notifyButton_color_badge_border', 'notifyButton_color_pulse', 'notifyButton_color_popup_button_background', 'notifyButton_color_popup_button_background_hover', 'notifyButton_color_popup_button_background_active', 'notifyButton_color_popup_button_color', 'notifyButton_offset_bottom', 'notifyButton_offset_left', 'notifyButton_offset_right', 'notifyButton_message_prenotify', 'notifyButton_tip_state_unsubscribed', 'notifyButton_tip_state_subscribed', 'notifyButton_tip_state_blocked', 'notifyButton_message_action_subscribed', 'notifyButton_message_action_resubscribed', 'notifyButton_message_action_unsubscribed', 'notifyButton_dialog_main_title', 'notifyButton_dialog_main_button_subscribe', 'notifyButton_dialog_main_button_unsubscribe', 'notifyButton_dialog_blocked_title', 'notifyButton_dialog_blocked_message'); OneSignal_Admin::saveStringSettings($onesignal_wp_settings, $config, $stringSettings); OneSignal::save_onesignal_settings($onesignal_wp_settings); return $onesignal_wp_settings; }