license-page.php
135 lines
| 1 | <?php |
| 2 | if ( ! defined( 'ABSPATH' ) ) { |
| 3 | exit; |
| 4 | } |
| 5 | |
| 6 | $license_key = get_option( 'elecs-license-key', '' ); |
| 7 | $is_licensed = ! empty( $license_key ); |
| 8 | $is_pro_active = defined( 'ELECSP_VER' ); |
| 9 | $has_error = isset( $_GET['msg'] ) && $_GET['msg'] === 'invalid'; |
| 10 | |
| 11 | // Mask the license key for display: show first 4 + last 4 chars. |
| 12 | $masked_key = ''; |
| 13 | if ( $is_licensed ) { |
| 14 | $len = strlen( $license_key ); |
| 15 | $masked_key = $len > 8 |
| 16 | ? substr( $license_key, 0, 4 ) . str_repeat( '•', max( 4, $len - 8 ) ) . substr( $license_key, -4 ) |
| 17 | : str_repeat( '•', $len ); |
| 18 | } |
| 19 | ?> |
| 20 | <div class="wrap ecs-admin-wrap"> |
| 21 | |
| 22 | <div class="ecs-admin-header"> |
| 23 | <h1><?php esc_html_e( 'ECS — Ele Custom Skin for Elementor', 'ele-custom-skin' ); ?></h1> |
| 24 | <span class="ecs-version">v<?php echo esc_html( ECS_VERSION ); ?></span> |
| 25 | </div> |
| 26 | |
| 27 | <?php if ( $has_error ) : ?> |
| 28 | <div class="notice notice-error is-dismissible"> |
| 29 | <p><?php esc_html_e( 'License key invalid. Please check the key and try again.', 'ele-custom-skin' ); ?></p> |
| 30 | </div> |
| 31 | <?php endif; ?> |
| 32 | |
| 33 | <div class="ecs-license-wrap"> |
| 34 | |
| 35 | <!-- ── Sidebar nav ────────────────────────────────────── --> |
| 36 | <div class="ecs-license-nav"> |
| 37 | <a href="<?php echo esc_url( admin_url( 'admin.php?page=ecs-modules' ) ); ?>" class="ecs-license-nav__item"> |
| 38 | <?php esc_html_e( 'Modules', 'ele-custom-skin' ); ?> |
| 39 | </a> |
| 40 | <a href="<?php echo esc_url( admin_url( 'admin.php?page=ecs-license' ) ); ?>" class="ecs-license-nav__item is-active"> |
| 41 | <?php esc_html_e( 'License', 'ele-custom-skin' ); ?> |
| 42 | </a> |
| 43 | </div> |
| 44 | |
| 45 | <!-- ── License card ──────────────────────────────────── --> |
| 46 | <div class="ecs-license-card"> |
| 47 | |
| 48 | <?php if ( ! $is_pro_active ) : ?> |
| 49 | |
| 50 | <div class="ecs-license-card__icon">🔒</div> |
| 51 | <h2 class="ecs-license-card__title"><?php esc_html_e( 'ECS Pro is not active', 'ele-custom-skin' ); ?></h2> |
| 52 | <p class="ecs-license-card__desc"> |
| 53 | <?php esc_html_e( 'Install and activate ECS Pro to unlock the license management.', 'ele-custom-skin' ); ?> |
| 54 | </p> |
| 55 | <a href="https://dudaster.com/ecs-pro/" target="_blank" class="button button-primary"> |
| 56 | <?php esc_html_e( 'Get ECS Pro →', 'ele-custom-skin' ); ?> |
| 57 | </a> |
| 58 | |
| 59 | <?php elseif ( $is_licensed ) : ?> |
| 60 | |
| 61 | <div class="ecs-license-status ecs-license-status--active"> |
| 62 | <span class="ecs-license-status__dot"></span> |
| 63 | <?php esc_html_e( 'License Active', 'ele-custom-skin' ); ?> |
| 64 | </div> |
| 65 | |
| 66 | <h2 class="ecs-license-card__title"><?php esc_html_e( 'ECS Pro Licensed', 'ele-custom-skin' ); ?></h2> |
| 67 | |
| 68 | <div class="ecs-license-key-display"> |
| 69 | <span class="ecs-license-key-display__label"><?php esc_html_e( 'License Key', 'ele-custom-skin' ); ?></span> |
| 70 | <code class="ecs-license-key-display__value"><?php echo esc_html( $masked_key ); ?></code> |
| 71 | </div> |
| 72 | |
| 73 | <p class="ecs-license-card__desc"> |
| 74 | <?php esc_html_e( 'Your license is active. You will receive automatic updates and access to all Pro modules.', 'ele-custom-skin' ); ?> |
| 75 | </p> |
| 76 | |
| 77 | <form method="post" action="<?php echo esc_url( admin_url( 'admin-post.php' ) ); ?>"> |
| 78 | <input type="hidden" name="elecs-license" value=""> |
| 79 | <?php wp_nonce_field( 'elecs-settings-save', 'elecs-custom-message' ); ?> |
| 80 | <button type="submit" class="ecs-license-deactivate-btn"> |
| 81 | <?php esc_html_e( 'Deactivate License', 'ele-custom-skin' ); ?> |
| 82 | </button> |
| 83 | </form> |
| 84 | |
| 85 | <?php else : ?> |
| 86 | |
| 87 | <div class="ecs-license-status ecs-license-status--inactive"> |
| 88 | <span class="ecs-license-status__dot"></span> |
| 89 | <?php esc_html_e( 'No License', 'ele-custom-skin' ); ?> |
| 90 | </div> |
| 91 | |
| 92 | <h2 class="ecs-license-card__title"><?php esc_html_e( 'Activate Your License', 'ele-custom-skin' ); ?></h2> |
| 93 | |
| 94 | <p class="ecs-license-card__desc"> |
| 95 | <?php esc_html_e( 'Enter your ECS Pro license key to enable automatic updates and access to all Pro modules.', 'ele-custom-skin' ); ?> |
| 96 | </p> |
| 97 | |
| 98 | <form method="post" action="<?php echo esc_url( admin_url( 'admin-post.php' ) ); ?>" class="ecs-license-form"> |
| 99 | <div class="ecs-license-form__row"> |
| 100 | <input |
| 101 | type="text" |
| 102 | name="elecs-license" |
| 103 | id="elecs-license" |
| 104 | class="ecs-license-form__input" |
| 105 | placeholder="<?php esc_attr_e( 'XXXX-XXXX-XXXX-XXXX', 'ele-custom-skin' ); ?>" |
| 106 | value="" |
| 107 | autocomplete="off" |
| 108 | > |
| 109 | <?php wp_nonce_field( 'elecs-settings-save', 'elecs-custom-message' ); ?> |
| 110 | <button type="submit" class="button button-primary ecs-license-form__btn"> |
| 111 | <?php esc_html_e( 'Activate License', 'ele-custom-skin' ); ?> |
| 112 | </button> |
| 113 | </div> |
| 114 | <p class="ecs-license-form__hint"> |
| 115 | <?php |
| 116 | printf( |
| 117 | wp_kses( |
| 118 | /* translators: %s: link to purchase page */ |
| 119 | __( 'Don\'t have a license yet? <a href="%s" target="_blank">Get ECS Pro →</a>', 'ele-custom-skin' ), |
| 120 | [ 'a' => [ 'href' => [], 'target' => [] ] ] |
| 121 | ), |
| 122 | 'https://dudaster.com/ecs-pro/' |
| 123 | ); |
| 124 | ?> |
| 125 | </p> |
| 126 | </form> |
| 127 | |
| 128 | <?php endif; ?> |
| 129 | |
| 130 | </div><!-- .ecs-license-card --> |
| 131 | |
| 132 | </div><!-- .ecs-license-wrap --> |
| 133 | |
| 134 | </div> |
| 135 |