PluginProbe ʕ •ᴥ•ʔ
EmbedPress – PDF Embedder, 3D PDF FlipBook, Google Reviews, YouTube Videos, Upload & Embed PDF documents / 4.5.4
EmbedPress – PDF Embedder, 3D PDF FlipBook, Google Reviews, YouTube Videos, Upload & Embed PDF documents v4.5.4
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 / templates / google-calendar.php
embedpress / EmbedPress / Ends / Back / Settings / templates Last commit date
partials 1 month ago ads.php 1 month ago bnr-img.png 11 months ago calendly.php 1 month ago custom-logo.php 1 month ago dailymotion.php 2 years ago elements.php 8 months ago general.php 7 months ago go-premium.php 8 months ago google-calendar.php 1 month ago hub.php 1 month ago instagram.php 1 month ago license.php 5 years ago main-template.php 1 month ago opensea.php 2 years ago player-engagement.php 2 months ago premium.php 2 years ago settings.php 1 month ago shortcode.php 1 month ago soundcloud.php 2 years ago sources.php 10 months ago spotify.php 2 years ago twitch.php 2 years ago vimeo.php 2 years ago wistia.php 1 month ago youtube.php 1 year ago
google-calendar.php
152 lines
1 <?php
2 /*
3 * Google Calendar Settings page
4 * All undefined vars comes from 'render_settings_page' method
5 * */
6
7 $epgc_client_secret = get_option('epgc_client_secret', '');
8 $epgc_cache_time = get_option('epgc_cache_time', 0);
9 $calendarList = Embedpress_Google_Helper::getDecoded( 'epgc_calendarlist' ); //settings_selected_calendar_ids_json_cb
10
11 // Auto-prefill: existing sites that uploaded the JSON have the same option;
12 // decode it so the new two-field form shows their saved client_id and signals
13 // that a secret is already on file (we never echo the secret back into the DOM).
14 $epgc_existing = Embedpress_Google_Helper::getDecoded( 'epgc_client_secret', [] );
15 $epgc_existing_client_id = isset( $epgc_existing['web']['client_id'] ) ? $epgc_existing['web']['client_id'] : '';
16 $epgc_has_existing_secret = ! empty( $epgc_existing['web']['client_secret'] );
17 $epgc_redirect_uri = admin_url( 'admin.php?page=embedpress&page_type=google-calendar' );
18
19 ?>
20
21 <div class="embedpress__settings embedpress-gcalendar-settings background__white radius-25 p40">
22 <div class="embedpress-gcalendar-settings__header" style="display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px;">
23 <h3 style="margin:0;"><?php esc_html_e( "Google Calendar Settings", "embedpress" ); ?></h3>
24 <a href="https://embedpress.com/docs/embed-google-calendar-in-wordpress/" target="_blank" rel="noopener noreferrer" class="embedpress-gcalendar-doc-link" style="display:inline-flex;align-items:center;gap:4px;font-size:13px;color:#1a73e8;text-decoration:none;line-height:1;">
25 <?php esc_html_e( 'Documentation', 'embedpress' ); ?>
26 <span aria-hidden="true">&rarr;</span>
27 </a>
28 </div>
29 <div class="embedpress__settings__form embedpress-gcalendar-settings__form">
30 <form action="" method="post" class="embedpress-settings-form">
31 <?php
32 do_action( 'embedpress_before_gcalendar_settings_fields');
33 echo $nonce_field ; ?>
34
35 <div class="form__group">
36 <label for="epgc_client_id" class="form__label"><?php esc_html_e( 'Client ID', 'embedpress' ); echo !$pro_active ? ' <span class="isPro">PRO</span>' : ''; ?></label>
37 <div class="form__control__wrap <?php echo $pro_active ? '' : 'isPro'; ?>">
38 <input type="text" name="epgc_client_id" id="epgc_client_id" class="form__control" value="<?php echo esc_attr( $epgc_existing_client_id ); ?>" placeholder="xxxxxxxx-xxxxxxxxxxxx.apps.googleusercontent.com" autocomplete="off" />
39 <p><?php esc_html_e( 'From your Google Cloud Console OAuth 2.0 Client ID.', 'embedpress' ); ?></p>
40 </div>
41 <?php if ( !$pro_active ) { include EMBEDPRESS_SETTINGS_PATH . 'templates/partials/alert-pro.php'; } ?>
42 </div>
43
44 <div class="form__group">
45 <label for="epgc_client_secret_value" class="form__label"><?php esc_html_e( 'Client Secret', 'embedpress' ); echo !$pro_active ? ' <span class="isPro">PRO</span>' : ''; ?></label>
46 <div class="form__control__wrap <?php echo $pro_active ? '' : 'isPro'; ?>">
47 <input type="password" name="epgc_client_secret_value" id="epgc_client_secret_value" class="form__control" value="" placeholder="<?php echo $epgc_has_existing_secret ? esc_attr__( 'Stored — leave blank to keep current secret', 'embedpress' ) : 'GOCSPX-...'; ?>" autocomplete="new-password" />
48 <p><?php esc_html_e( 'From the same OAuth 2.0 Client. Stored in the WordPress options table.', 'embedpress' ); ?></p>
49 </div>
50 <?php if ( !$pro_active ) { include EMBEDPRESS_SETTINGS_PATH . 'templates/partials/alert-pro.php'; } ?>
51 </div>
52
53 <div class="form__group">
54 <label class="form__label"><?php esc_html_e( 'Authorized Redirect URI', 'embedpress' ); ?></label>
55 <div class="form__control__wrap">
56 <input type="text" readonly value="<?php echo esc_attr( $epgc_redirect_uri ); ?>" class="form__control epgc-redirect-uri-input" id="epgc-redirect-uri" style="cursor:pointer;" />
57 <p class="ep-note"><?php esc_html_e( 'Click the field to copy. Paste this exact URI into your Google Cloud Console OAuth client under "Authorized redirect URIs".', 'embedpress' ); ?></p>
58 </div>
59 </div>
60 <script>
61 (function ($) {
62 if (typeof $ === 'undefined') { $ = window.jQuery; }
63 var input = document.getElementById('epgc-redirect-uri');
64 if (!input) return;
65 var copiedLabel = <?php echo wp_json_encode( __( 'Redirect URI copied to clipboard', 'embedpress' ) ); ?>;
66 var failedLabel = <?php echo wp_json_encode( __( 'Copy failed — press Ctrl/Cmd+C', 'embedpress' ) ); ?>;
67 function flashToast(selector, message) {
68 if (!$ || !$(selector).length) return;
69 var $node = $(selector);
70 var $p = $node.find('p');
71 var original = $p.text();
72 $p.text(message);
73 $node.addClass('show');
74 clearTimeout($node.data('epgcTimer'));
75 $node.data('epgcTimer', setTimeout(function () {
76 $node.removeClass('show');
77 setTimeout(function () { $p.text(original); }, 300);
78 }, 2000));
79 }
80 function copyValue() {
81 input.select();
82 var value = input.value;
83 var done = function (ok) {
84 flashToast(ok ? '.toast__message--success' : '.toast__message--attention', ok ? copiedLabel : failedLabel);
85 };
86 if (navigator.clipboard && window.isSecureContext) {
87 navigator.clipboard.writeText(value).then(function () { done(true); }, function () {
88 try { done(document.execCommand('copy')); } catch (e) { done(false); }
89 });
90 } else {
91 try { done(document.execCommand('copy')); } catch (e) { done(false); }
92 }
93 }
94 input.addEventListener('click', copyValue);
95 input.addEventListener('focus', function () { input.select(); });
96 })(window.jQuery);
97 </script>
98
99 <div class="form__group">
100 <label for="epgc_cache_time" class="form__label" ><?php esc_html_e( "Caching time (in Minutes)", "embedpress" ); echo $pro_active ? '': ' <span class="isPro">PRO</span>'; ?> </label>
101 <div class="form__control__wrap <?php echo $pro_active ? '': 'isPro'; ?>">
102 <input name="epgc_cache_time" type="number" id="epgc_cache_time" class="form__control" data-default="<?php echo esc_attr( $epgc_cache_time); ?>" value="<?php echo esc_attr( $epgc_cache_time); ?>" >
103 <p><?php esc_html_e( 'How long do you want to cache the data? Set it 0 to disable caching', 'embedpress'); ?></p>
104
105 </div>
106 <?php if ( !$pro_active ) { include EMBEDPRESS_SETTINGS_PATH . 'templates/partials/alert-pro.php'; } ?>
107
108 </div>
109 <h2><?php esc_html_e('Calendars', 'embedpress'); ?></h2>
110 <div class="form__group">
111 <label for="epgc_cache_time" class="form__label" ><?php esc_html_e( "Select calendars to show", "embedpress" ); echo $pro_active ? '': ' <span class="isPro">PRO</span>'; ?> </label>
112 <div class="form__control__wrap <?php echo $pro_active ? '': 'isPro'; ?>">
113 <?php if ( !empty( $calendarList) ) {
114 Embedpress_Google_Helper::print_calendar_list($calendarList); ?>
115 <p><?php esc_html_e( 'Select which calendars you want to show', 'embedpress'); ?></p>
116 <?php }else{ ?>
117 <p><?php esc_html_e( 'No calendar was found', 'embedpress'); ?></p>
118 <?php } ?>
119 </div>
120 <?php if ( !$pro_active ) { include EMBEDPRESS_SETTINGS_PATH . 'templates/partials/alert-pro.php'; } ?>
121
122 </div>
123
124
125 <?php do_action( 'embedpress_after_gcalendar_settings_fields'); ?>
126
127 <button class="button button__themeColor radius-10 embedpress-submit-btn" name="submit" value="gcalendar"><?php esc_html_e( 'Save Changes', 'embedpress'); ?></button>
128 </form>
129 <br><br>
130 <?php if ( !empty( $epgc_client_secret) ) { ?>
131 <h2><?php esc_html_e( 'Authorization', 'embedpress'); ?></h2>
132 <p><?php esc_html_e( 'You need to authorize before fetching new calendars', 'embedpress'); ?></p>
133
134 <br>
135 <form style="display:inline" method="post" action="<?php echo admin_url('admin-post.php'); ?>">
136 <?php wp_nonce_field( 'epgc_authorize', 'epgc_authorize_data' ); ?>
137 <input type="hidden" name="action" value="epgc_authorize">
138 <?php submit_button(__('Authorize', 'embedpress'), 'primary', 'epgc_authorize', false); ?>
139 </form>
140
141 <form style="display:inline" method="post" action="<?php echo admin_url('admin-post.php'); ?>">
142 <?php wp_nonce_field( 'epgc_remove_private', 'epgc_remove_private_data' ); ?>
143 <input type="hidden" name="action" value="epgc_remove_private">
144 <?php submit_button(__('Stop', 'embedpress'), '', 'epgc_remove_private', false); ?>
145 </form>
146 <?php } ?>
147
148
149
150 </div>
151 </div>
152