PluginProbe ʕ •ᴥ•ʔ
EmbedPress – PDF Embedder, 3D PDF FlipBook, Google Reviews, YouTube Videos, Upload & Embed PDF documents / 3.5.1
EmbedPress – PDF Embedder, 3D PDF FlipBook, Google Reviews, YouTube Videos, Upload & Embed PDF documents v3.5.1
4.6.1 4.6.0 4.5.6 4.5.5 4.5.4 4.5.3 4.5.2 trunk 1.0.0 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.5.0 1.6.0 1.6.1 1.6.2 1.6.3 1.7.0 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 2.0.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.2.0 2.2.1 2.2.2 2.3.0 2.3.1 2.3.2 2.3.3 2.4.0 2.4.1 2.5.0 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.1.3 3.2.0 3.2.1 3.3.0 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.5.3 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.6.8 3.7.0 3.7.1 3.7.2 3.7.3 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 3.9.1 3.9.10 3.9.11 3.9.12 3.9.13 3.9.14 3.9.15 3.9.16 3.9.17 3.9.2 3.9.3 3.9.4 3.9.5 3.9.6 3.9.7 3.9.8 3.9.9 4.0.0 4.0.1 4.0.10 4.0.11 4.0.12 4.0.13 4.0.14 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.0.9 4.1.0 4.1.1 4.1.10 4.1.2 4.1.3 4.1.4 4.1.5 4.1.6 4.1.7 4.1.8 4.1.9 4.2.0 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.2.8 4.2.9 4.3.0 4.3.1 4.4.0 4.4.1 4.4.10 4.4.11 4.4.2 4.4.3 4.4.4 4.4.5 4.4.6 4.4.7 4.4.8 4.4.9 4.5.0 4.5.1
embedpress / EmbedPress / Ends / Back / Settings / EmbedpressSettings.php
embedpress / EmbedPress / Ends / Back / Settings Last commit date
assets 4 years ago templates 3 years ago EmbedpressSettings.php 3 years ago
EmbedpressSettings.php
372 lines
1 <?php
2 namespace EmbedPress\Ends\Back\Settings;
3
4 class EmbedpressSettings {
5 var $page_slug = '';
6 /**
7 * @var int|string
8 */
9 protected $file_version;
10
11 public function __construct($page_slug = 'embedpress') {
12 $this->page_slug = $page_slug;
13 $this->file_version = defined( 'WP_DEBUG') && WP_DEBUG ? time() : EMBEDPRESS_VERSION;
14 add_action('admin_enqueue_scripts', [$this, 'handle_scripts_and_styles']);
15 add_action('admin_menu', [$this, 'register_menu']);
16 add_action( 'init', [$this, 'save_settings']);
17
18 // ajax
19 add_action( 'wp_ajax_embedpress_elements_action', [$this, 'update_elements_list']);
20 add_action( 'wp_ajax_embedpress_settings_action', [$this, 'save_settings']);
21
22 // Migration
23 $option = 'embedpress_elements_updated'; // to update initially for backward compatibility
24 if ( !get_option( $option, false) ) {
25 $elements_initial_states = [
26 'gutenberg' => [
27 'google-docs-block' => 'google-docs-block',
28 'document' => 'document',
29 'embedpress' => 'embedpress',
30 'embedpress-pdf' => 'embedpress-pdf',
31 'google-sheets-block' => 'google-sheets-block',
32 'google-slides-block' => 'google-slides-block',
33 'youtube-block' => 'youtube-block',
34 'google-forms-block' => 'google-forms-block',
35 'google-drawings-block' => 'google-drawings-block',
36 'google-maps-block' => 'google-maps-block',
37 'twitch-block' => 'twitch-block',
38 'wistia-block' => 'wistia-block',
39 'vimeo-block' => 'vimeo-block',
40 ],
41 'elementor' => [
42 'embedpress-document' => 'embedpress-document',
43 'embedpress' => 'embedpress',
44 'embedpress-pdf' => 'embedpress-pdf',
45 ]
46 ];
47
48 $settings = get_option( EMBEDPRESS_PLG_NAME, [] );
49 $yt = get_option( EMBEDPRESS_PLG_NAME.':youtube' );
50 if ( empty( $settings) && empty( $yt) ) {
51 $settings['need_first_time_redirect'] = true;
52 }
53 if ( !isset( $settings['enablePluginInAdmin']) ) {
54 $settings['enablePluginInAdmin'] = 1;
55 }
56 if ( !isset( $settings['enablePluginInFront']) ) {
57 $settings['enablePluginInFront'] = 1;
58 }
59
60 update_option( EMBEDPRESS_PLG_NAME.":elements", $elements_initial_states);
61 update_option( EMBEDPRESS_PLG_NAME, $settings);
62 update_option( $option, true);
63 }
64 $migration_v_320 = 'embedpress_v_320_migration';
65 if ( !get_option( $migration_v_320, false) ) {
66 $elements = (array) get_option( EMBEDPRESS_PLG_NAME.":elements", []);
67 $elements['gutenberg']['embedpress-pdf'] = 'embedpress-pdf';
68 $elements['elementor']['embedpress-pdf'] = 'embedpress-pdf';
69 update_option( EMBEDPRESS_PLG_NAME.":elements", $elements);
70 update_option( $migration_v_320, true);
71 }
72
73 $migration_v_330 = 'embedpress_v_330_migration';
74 if ( !get_option( $migration_v_330, false) ) {
75 $elements = (array) get_option( EMBEDPRESS_PLG_NAME.":elements", []);
76 $elements['gutenberg']['embedpress-calendar'] = 'embedpress-calendar';
77 $elements['elementor']['embedpress-calendar'] = 'embedpress-calendar';
78 update_option( EMBEDPRESS_PLG_NAME.":elements", $elements);
79 update_option( $migration_v_330, true);
80 }
81
82 add_action( 'admin_init', [$this, 'embedpress_maybe_redirect_to_settings'] );
83
84
85 }
86 function embedpress_maybe_redirect_to_settings() {
87 $settings = get_option( EMBEDPRESS_PLG_NAME, [] );
88 if ( isset( $settings['need_first_time_redirect']) && $settings['need_first_time_redirect'] ) {
89 if ( get_option( 'embedpress_activation_redirect_done' ) || wp_doing_ajax() ) {
90 return;
91 }
92
93
94 update_option( 'embedpress_activation_redirect_done', true );
95 $settings['need_first_time_redirect'] = false;
96 update_option( EMBEDPRESS_PLG_NAME, $settings);
97
98 if ( is_network_admin() || isset( $_GET['activate-multi'] ) ) {
99 return;
100 }
101
102 wp_safe_redirect( admin_url('admin.php?page='.$this->page_slug) );
103 exit;
104 }
105
106 }
107 public function update_elements_list() {
108 if ( !empty($_POST['_wpnonce'] && wp_verify_nonce( $_POST['_wpnonce'], 'embedpress_elements_action')) ) {
109 $option = EMBEDPRESS_PLG_NAME.":elements";
110 $elements = (array) get_option( $option, []);
111 $settings = (array) get_option( EMBEDPRESS_PLG_NAME, []);
112
113 $type = !empty( $_POST['element_type']) ? sanitize_text_field( $_POST['element_type']) : '';
114 $name = !empty( $_POST['element_name']) ? sanitize_text_field( $_POST['element_name']) : '';
115 $checked = !empty( $_POST['checked']) ? $_POST['checked'] : false;
116 if ( 'false' != $checked ) {
117 $elements[$type][$name] = $name;
118 if ( $type === 'classic' ) {
119 $settings[$name] = 1;
120 }
121 }else{
122 if( isset( $elements[$type]) && isset( $elements[$type][$name])){
123 unset( $elements[$type][$name]);
124 }
125 if ( $type === 'classic' ) {
126 $settings[$name] = 0;
127 }
128 }
129 update_option( EMBEDPRESS_PLG_NAME, $settings);
130 update_option( $option, $elements);
131 wp_send_json_success();
132 }
133 wp_send_json_error();
134 }
135
136 public function register_menu() {
137 add_menu_page( __('EmbedPress Settings', 'embedpress'), 'EmbedPress', 'manage_options', $this->page_slug,
138 [ $this, 'render_settings_page' ], EMBEDPRESS_URL_ASSETS.'images/menu-icon.svg', 64 );
139
140 }
141
142 public function handle_scripts_and_styles() {
143 if ( !empty( $_REQUEST['page']) && $this->page_slug === $_REQUEST['page'] ) {
144 $this->enqueue_styles();
145 $this->enqueue_scripts();
146 }
147 }
148
149 public function enqueue_scripts() {
150 if ( !did_action( 'wp_enqueue_media') ) {
151 wp_enqueue_media();
152 }
153 wp_register_script( 'ep-settings-script', EMBEDPRESS_SETTINGS_ASSETS_URL.'js/settings.js', ['jquery', 'wp-color-picker' ], $this->file_version, true );
154 wp_enqueue_script( 'ep-settings', EMBEDPRESS_URL_ASSETS . 'js/settings.js', ['jquery', 'wp-color-picker' ], $this->file_version, true );
155 wp_localize_script( 'ep-settings-script', 'embedpressObj', array(
156 'nonce' => wp_create_nonce('embedpress_elements_action'),
157 ) );
158
159 wp_enqueue_script( 'ep-settings-script');
160 }
161
162 public function enqueue_styles() {
163 wp_enqueue_style( 'ep-settings-style', EMBEDPRESS_SETTINGS_ASSETS_URL.'css/style.css', null, $this->file_version );
164 wp_enqueue_style( 'ep-settings-icon-style', EMBEDPRESS_SETTINGS_ASSETS_URL.'css/icon/style.css', null, $this->file_version );
165 wp_enqueue_style( 'wp-color-picker' );
166
167 }
168
169 public function render_settings_page( ) {
170 global $template, $page_slug, $nonce_field, $ep_page, $gen_menu_template_names, $brand_menu_template_names, $pro_active, $coming_soon, $success_message, $error_message, $platform_menu_template_names;
171
172 $page_slug = $this->page_slug; // make this available for included template
173 $template = !empty( $_GET['page_type'] ) ? sanitize_text_field( $_GET['page_type']) : 'general';
174 $nonce_field = wp_nonce_field('ep_settings_nonce', 'ep_settings_nonce', true, false);
175 $ep_page = admin_url('admin.php?page='.$this->page_slug);
176 $gen_menu_template_names = apply_filters('ep_general_menu_tmpl_names', ['general', 'shortcode',]);
177 $platform_menu_template_names = apply_filters('ep_platform_menu_tmpl_names', [ 'youtube', 'vimeo', 'wistia', 'twitch','dailymotion', 'soundcloud' ,'spotify','google-calendar']);
178 $brand_menu_template_names = apply_filters('ep_brand_menu_templates', ['custom-logo', 'branding',]);
179 $pro_active = is_embedpress_pro_active();
180 $coming_soon = "<span class='ep-coming-soon'>". esc_html__( '(Coming soon)', 'embedpress'). "</span>";
181 $success_message = esc_html__( "Settings Updated", "embedpress" );
182 $error_message = esc_html__( "Ops! Something went wrong.", "embedpress" );
183 include_once EMBEDPRESS_SETTINGS_PATH . 'templates/main-template.php';
184 }
185
186 public function save_settings() {
187 // needs to check for ajax and return response accordingly.
188 if ( !empty( $_POST['ep_settings_nonce']) && wp_verify_nonce( $_POST['ep_settings_nonce'], 'ep_settings_nonce') ) {
189 $submit_type = !empty( $_POST['submit'] ) ? $_POST['submit'] : '';
190 $save_handler_method = "save_{$submit_type}_settings";
191 do_action( "before_{$save_handler_method}");
192 do_action( "before_embedpress_settings_save");
193 if ( method_exists( $this, $save_handler_method ) ) {
194 $this->$save_handler_method();
195 }
196 do_action( "after_embedpress_settings_save");
197 $return_url = isset( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : admin_url();
198 $return_url = add_query_arg( 'success', 1, $return_url );
199 if ( wp_doing_ajax() ) {
200 wp_send_json_success();
201 }
202 wp_safe_redirect( $return_url);
203 exit();
204 }
205 }
206
207 public function save_general_settings() {
208 $settings = (array) get_option( EMBEDPRESS_PLG_NAME, []);
209 $settings ['enableEmbedResizeWidth'] = isset( $_POST['enableEmbedResizeWidth']) ? intval( $_POST['enableEmbedResizeWidth']) : 600;
210 $settings ['enableEmbedResizeHeight'] = isset( $_POST['enableEmbedResizeHeight']) ? intval( $_POST['enableEmbedResizeHeight']) : 550;
211
212 // Pro will handle g_loading_animation settings and other
213 $settings = apply_filters( 'ep_general_settings_before_save', $settings, $_POST);
214
215 update_option( EMBEDPRESS_PLG_NAME, $settings);
216 do_action( 'ep_general_settings_after_save', $settings, $_POST);
217 }
218
219 public function save_youtube_settings() {
220 $option_name = EMBEDPRESS_PLG_NAME.':youtube';
221 $settings = get_option( $option_name, []);
222 $settings['api_key'] = isset( $_POST['api_key']) ? sanitize_text_field( $_POST['api_key']) : 0;
223 $settings['pagesize'] = isset( $_POST['pagesize']) ? sanitize_text_field( $_POST['pagesize']) : 0;
224 $settings['start_time'] = isset( $_POST['start_time']) ? sanitize_text_field( $_POST['start_time']) : 0;
225 $settings['end_time'] = isset( $_POST['end_time']) ? sanitize_text_field( $_POST['end_time']) : 0;
226 $settings['autoplay'] = isset( $_POST['autoplay']) ? sanitize_text_field( $_POST['autoplay']) : '';
227 $settings['controls'] = isset( $_POST['controls']) ? sanitize_text_field( $_POST['controls']) : '';
228 $settings['fs'] = isset( $_POST['fs']) ? sanitize_text_field( $_POST['fs']) : '';
229 $settings['iv_load_policy'] = isset( $_POST['iv_load_policy']) ? sanitize_text_field( $_POST['iv_load_policy']) : 1;
230 $settings['color'] = isset( $_POST['color']) ? sanitize_text_field( $_POST['color']) : 'red';
231 $settings['rel'] = isset( $_POST['rel']) ? sanitize_text_field( $_POST['rel']) : 1;
232 $settings['license_key'] = 1; // backward compatibility
233
234 // Pro will handle g_loading_animation settings and other
235 $settings = apply_filters( 'ep_youtube_settings_before_save', $settings);
236 update_option( $option_name, $settings);
237 do_action( 'ep_youtube_settings_after_save', $settings);
238
239 }
240
241 public function save_wistia_settings() {
242 $option_name = EMBEDPRESS_PLG_NAME.':wistia';
243 $settings = get_option( $option_name, []);
244 $settings['start_time'] = isset( $_POST['start_time']) ? sanitize_text_field( $_POST['start_time']) : 0;
245 $settings['autoplay'] = isset( $_POST['autoplay']) ? sanitize_text_field( $_POST['autoplay']) : '';
246 $settings['display_fullscreen_button'] = isset( $_POST['display_fullscreen_button']) ? sanitize_text_field( $_POST['display_fullscreen_button']) : '';
247 $settings['small_play_button'] = isset( $_POST['small_play_button']) ? sanitize_text_field( $_POST['small_play_button']) : '';
248 $settings['player_color'] = isset( $_POST['player_color']) ? sanitize_text_field( $_POST['player_color']) : '';
249 $settings['plugin_resumable'] = isset( $_POST['plugin_resumable']) ? sanitize_text_field( $_POST['plugin_resumable']) : '';
250 $settings['plugin_focus'] = isset( $_POST['plugin_focus']) ? sanitize_text_field( $_POST['plugin_focus']) : '';
251 $settings['plugin_rewind'] = isset( $_POST['plugin_rewind']) ? sanitize_text_field( $_POST['plugin_rewind']) : '';
252 $settings['display_playbar'] = isset( $_POST['display_playbar']) ? sanitize_text_field( $_POST['display_playbar']) : 1;
253 $settings['plugin_rewind_time'] = isset( $_POST['plugin_rewind_time']) ? sanitize_text_field( $_POST['plugin_rewind_time']) : 10;
254 $settings['license_key'] = 1; // backward compatibility
255 // Pro will handle g_loading_animation settings and other
256 $settings = apply_filters( 'ep_wistia_settings_before_save', $settings);
257 update_option( $option_name, $settings);
258 do_action( 'ep_wistia_settings_after_save', $settings);
259 }
260
261 public function save_vimeo_settings() {
262 $option_name = EMBEDPRESS_PLG_NAME.':vimeo';
263 $settings = get_option( $option_name, []);
264 $settings['start_time'] = isset( $_POST['start_time']) ? sanitize_text_field( $_POST['start_time']) : 0;
265 $settings['autoplay'] = isset( $_POST['autoplay']) ? sanitize_text_field( $_POST['autoplay']) : '';
266 $settings['color'] = isset( $_POST['color']) ? sanitize_text_field( $_POST['color']) : '#00adef';
267 $settings['display_title'] = isset( $_POST['display_title']) ? sanitize_text_field( $_POST['display_title']) : 1;
268 $settings['display_author'] = isset( $_POST['display_author']) ? sanitize_text_field( $_POST['display_author']) : 1;
269 $settings['display_avatar'] = isset( $_POST['display_avatar']) ? sanitize_text_field( $_POST['display_avatar']) : 1;
270 $settings['license_key'] = 1; // backward compatibility
271 // Pro will handle g_loading_animation settings and other
272 $settings = apply_filters( 'ep_vimeo_settings_before_save', $settings);
273 update_option( $option_name, $settings);
274 do_action( 'ep_vimeo_settings_after_save', $settings);
275 }
276
277 public function save_twitch_settings() {
278 $option_name = EMBEDPRESS_PLG_NAME.':twitch';
279 $settings = get_option( $option_name, []);
280 $settings['embedpress_pro_twitch_autoplay'] = isset( $_POST['autoplay']) ? sanitize_text_field( $_POST['autoplay']) : 'no';
281 $settings['embedpress_pro_fs'] = isset( $_POST['fs']) ? sanitize_text_field( $_POST['fs']) : 'yes';
282 $settings['start_time'] = isset( $_POST['start_time']) ? sanitize_text_field( $_POST['start_time']) : 0;
283 $settings['embedpress_pro_twitch_theme'] = isset( $_POST['theme']) ? sanitize_text_field( $_POST['theme']) : 'dark';
284 $settings['embedpress_pro_twitch_mute'] = isset( $_POST['mute']) ? sanitize_text_field( $_POST['mute']) : 'yes';
285 $settings['license_key'] = 1; // backward compatibility
286 // Pro will handle g_loading_animation settings and other
287 $settings = apply_filters( 'ep_twitch_settings_before_save', $settings);
288 update_option( $option_name, $settings);
289 do_action( 'ep_twitch_settings_after_save', $settings);
290 }
291
292 public function save_spotify_settings() {
293 $option_name = EMBEDPRESS_PLG_NAME.':spotify';
294 $settings = get_option( $option_name, []);
295 $settings['theme'] = isset( $_POST['spotify_theme']) ? sanitize_text_field( $_POST['spotify_theme']) : '1';
296 $settings['license_key'] = 1; // backward compatibility
297
298 $settings = apply_filters( 'ep_spotify_settings_before_save', $settings);
299 update_option( $option_name, $settings);
300 do_action( 'ep_spotify_settings_after_save', $settings);
301 return $settings;
302 }
303
304 public function save_custom_logo_settings() {
305 do_action( 'before_embedpress_branding_save');
306 $settings = (array) get_option( EMBEDPRESS_PLG_NAME, []);
307 $settings['embedpress_document_powered_by'] = isset( $_POST['embedpress_document_powered_by']) ? sanitize_text_field( $_POST['embedpress_document_powered_by']) : 'no';
308 update_option( EMBEDPRESS_PLG_NAME, $settings);
309 do_action( 'after_embedpress_branding_save');
310
311 }
312
313 public function save_dailymotion_settings() {
314 $option_name = EMBEDPRESS_PLG_NAME.':dailymotion';
315 $settings = get_option( $option_name, []);
316 $settings['start_time'] = isset( $_POST['start_time']) ? sanitize_text_field( $_POST['start_time']) : 0;
317 $settings['visual'] = isset( $_POST['visual']) ? sanitize_text_field( $_POST['visual']) : '';
318 $settings['autoplay'] = isset( $_POST['autoplay']) ? sanitize_text_field( $_POST['autoplay']) : '';
319 $settings['play_on_mobile'] = isset( $_POST['play_on_mobile']) ? sanitize_text_field( $_POST['play_on_mobile']) : '';
320 $settings['color'] = isset( $_POST['color']) ? sanitize_text_field( $_POST['color']) : '#dd3333';
321 $settings['controls'] = isset( $_POST['controls']) ? sanitize_text_field( $_POST['controls']) : '';
322 $settings['video_info'] = isset( $_POST['video_info']) ? sanitize_text_field( $_POST['video_info']) : '';
323 $settings['mute'] = isset( $_POST['mute']) ? sanitize_text_field( $_POST['mute']) : '';
324 // Pro will handle g_loading_animation settings and other
325 $settings = apply_filters( 'ep_dailymotion_settings_before_save', $settings);
326 update_option( $option_name, $settings);
327 do_action( 'ep_dailymotion_settings_after_save', $settings);
328 }
329
330 public function save_soundcloud_settings() {
331 $option_name = EMBEDPRESS_PLG_NAME.':soundcloud';
332 $settings = get_option( $option_name, []);
333 $settings['visual'] = isset( $_POST['visual']) ? sanitize_text_field( $_POST['visual']) : '';
334 $settings['autoplay'] = isset( $_POST['autoplay']) ? sanitize_text_field( $_POST['autoplay']) : '';
335 $settings['play_on_mobile'] = isset( $_POST['play_on_mobile']) ? sanitize_text_field( $_POST['play_on_mobile']) : '';
336 $settings['share_button'] = isset( $_POST['share_button']) ? sanitize_text_field( $_POST['share_button']) : '';
337 $settings['comments'] = isset( $_POST['comments']) ? sanitize_text_field( $_POST['comments']) : '';
338 $settings['color'] = isset( $_POST['color']) ? sanitize_text_field( $_POST['color']) : '';
339 $settings['artwork'] = isset( $_POST['artwork']) ? sanitize_text_field( $_POST['artwork']) : '';
340 $settings['play_count'] = isset( $_POST['play_count']) ? sanitize_text_field( $_POST['play_count']) : '';
341 $settings['username'] = isset( $_POST['username']) ? sanitize_text_field( $_POST['username']) : '';
342
343 $settings['license_key'] = 1; // backward compatibility
344 // Pro will handle g_loading_animation settings and other
345 $settings = apply_filters( 'ep_soundcloud_settings_before_save', $settings);
346 update_option( $option_name, $settings);
347 do_action( 'ep_soundcloud_settings_after_save', $settings);
348 }
349
350 public function save_gcalendar_settings() {
351 $client_secret = !empty( $_POST['epgc_client_secret']) ? json_decode( wp_unslash( trim( $_POST['epgc_client_secret'])), true) : [];
352 $epgc_cache_time = !empty( $_POST['epgc_cache_time'] ) ? absint( $_POST['epgc_cache_time']) : 0;
353 $epgc_selected_calendar_ids = !empty( $_POST['epgc_selected_calendar_ids'] ) ? array_map( 'sanitize_text_field', $_POST['epgc_selected_calendar_ids']) : [];
354
355
356 $pretty_client_secret = '';
357 if ( !empty( $client_secret) ) {
358 $pretty_client_secret = $this->get_pretty_json_string( $client_secret);
359 }
360
361 update_option( 'epgc_client_secret', $pretty_client_secret);
362 update_option( 'epgc_cache_time', $epgc_cache_time);
363 update_option( 'epgc_selected_calendar_ids', $epgc_selected_calendar_ids);
364
365 }
366
367
368 function get_pretty_json_string($array) {
369 return str_replace(" ", " ", json_encode($array, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES));
370 }
371 }
372