PluginProbe
Image Optimizer – Compress Images and Convert to WebP or AVIF / 1.6.5
Image Optimizer – Compress Images and Convert to WebP or AVIF v1.6.5
1.7.7 1.7.6 1.7.5 1.7.4 trunk 1.0.0 1.0.1 1.0.2 1.1.0 1.2.0 1.2.1 1.3.0 1.4.0 1.4.1 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 All 33 releases
image-optimization / modules / core / components / not-connected-modal.php

not-connected-modal.php in Image Optimizer – Compress Images and Convert to WebP or AVIF 1.6.5, at modules/core/components/not-connected-modal.php

92 lines 3.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace ImageOptimization\Modules\Core\Components;
4
5 use ImageOptimization\Classes\Utils;
6 use ImageOptimization\Modules\Settings\Module;
7 use ImageOptimization\Plugin;
8
9 if ( ! defined( 'ABSPATH' ) ) {
10 exit; // Exit if accessed directly.
11 }
12
13 class Not_Connected_Modal {
14 const NOT_CONNECTED_MODAL_SLUG = 'image-optimizer-not-connected-modal';
15
16 public function render_not_connected_modal() {
17 add_thickbox(); ?>
18
19 <div
20 id="<?php echo esc_html( self::NOT_CONNECTED_MODAL_SLUG ); ?>"
21 style="display:none;"
22 >
23 <div class="image-optimizer__modal image-optimizer__modal--not-connected" data-modal-slug="<?php echo esc_attr( self::NOT_CONNECTED_MODAL_SLUG ); ?>">
24 <img src="<?php echo esc_url( plugins_url( 'assets/static/connect.jpg', dirname( __FILE__, 3 ) ) ); ?>" alt="<?php esc_html_e( 'Connect now', 'image-optimization' ); ?>">
25 <h2><?php esc_html_e( 'Let\'s start optimizing your images!', 'image-optimization' ); ?></h2>
26 <p><?php esc_html_e( 'Connect the Image Optimizer plugin to speed up your site. We\'ll handle the rest.', 'image-optimization' ); ?></p>
27 <ul>
28 <li><?php esc_html_e( 'Boost site speed and compress images', 'image-optimization' ); ?></li>
29 <li><?php esc_html_e( 'Bulk optimization for faster processing', 'image-optimization' ); ?></li>
30 <li><?php esc_html_e( 'Convert to AVIF and WebP formats', 'image-optimization' ); ?></li>
31 <li><?php esc_html_e( 'Works across unlimited websites', 'image-optimization' ); ?></li>
32 </ul>
33 <a href="<?php echo admin_url( 'admin.php?page=' . Module::SETTING_BASE_SLUG . '&action=connect' ); ?>">
34 <?php esc_html_e( 'Connect to start', 'image-optimization' ); ?>
35 </a>
36 </div>
37 </div>
38 <script>
39 jQuery( document ).ready( function( $ ) {
40 setTimeout(() => {
41 const TB_WIDTH = 630;
42 const TB_HEIGHT = 620;
43 const msInOneDay = 24 * 60 * 60 * 1000;
44 const time_dismissed = localStorage.getItem('<?php echo self::NOT_CONNECTED_MODAL_SLUG; ?>');
45 const show_notice = !time_dismissed || Date.now() - time_dismissed >= msInOneDay;
46 const $modal = $( '[data-modal-slug="<?php echo esc_js( self::NOT_CONNECTED_MODAL_SLUG ); ?>"]' );
47
48 if (show_notice) {
49 tb_show( '', `/?TB_inline&inlineId=<?php echo esc_js( self::NOT_CONNECTED_MODAL_SLUG ); ?>&height=${TB_HEIGHT - 40}&width=${TB_WIDTH - 30}&modal=true` );
50 $modal.parents('#TB_window')
51 .width(TB_WIDTH)
52 .height(TB_HEIGHT)
53 .css('margin-left', - TB_WIDTH / 2)
54 .css('margin-top', - TB_HEIGHT / 2)
55 .css('top', '50%');
56 const $closeButton = $modal.find( 'a' );
57 $closeButton.on( 'click', function (e) {
58 e.preventDefault();
59 localStorage.setItem('<?php echo esc_js( self::NOT_CONNECTED_MODAL_SLUG ); ?>', Date.now().toString());
60 tb_remove();
61 window.open( $( this ).attr( 'href' ), '_blank' ).focus();
62 } );
63 } else {
64 $modal.remove();
65 }
66 }, 0);
67 } );
68 </script>
69 <?php
70 }
71
72
73
74 public function __construct() {
75 add_action('current_screen', function () {
76 // @var ImageOptimizer/Modules/ConnectManager/Module
77 $module = Plugin::instance()->modules_manager->get_modules( 'connect-manager' );
78
79 if ( $module->connect_instance->is_connected() || ! Utils::user_is_admin() ) {
80 return;
81 }
82
83 if (
84 Utils::is_plugin_settings_page() ||
85 Utils::is_bulk_optimization_page()
86 ) {
87 add_action( 'admin_notices', [ $this, 'render_not_connected_modal' ] );
88 }
89 });
90 }
91 }
92