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">→</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 |