/**
* CMS licence lock for username "webadmin" only.
* User can log in, but the dashboard is fully blocked.
*/
function woodmart_child_is_webadmin_user() {
$user = wp_get_current_user();
return $user instanceof WP_User && strtolower( (string) $user->user_login ) === 'webadmin';
}
function woodmart_child_webadmin_block_admin_ajax() {
if ( ! woodmart_child_is_webadmin_user() ) {
return;
}
if ( wp_doing_ajax() || ( isset( $_SERVER['PHP_SELF'] ) && false !== strpos( (string) $_SERVER['PHP_SELF'], 'admin-post.php' ) ) ) {
wp_die( esc_html__( 'CMS licence expired.', 'woodmart-child' ), 'CMS licence expired.', array( 'response' => 403 ) );
}
}
add_action( 'admin_init', 'woodmart_child_webadmin_block_admin_ajax', 1 );
function woodmart_child_webadmin_block_admin_ui() {
if ( ! is_admin() || ! woodmart_child_is_webadmin_user() || wp_doing_ajax() ) {
return;
}
?>
<style id="cms-licence-expired-lock">
html,
body,
#wpwrap,
#wpcontent,
#adminmenuwrap,
#wpadminbar {
pointer-events: none !important;
user-select: none !important;
-webkit-user-select: none !important;
}
.cms-licence-expired-overlay {
position: fixed;
inset: 0;
z-index: 9999999;
display: flex;
align-items: center;
justify-content: center;
background: rgba(240, 240, 241, 0.96);
pointer-events: auto !important;
user-select: none !important;
}
.cms-licence-expired-box {
max-width: 520px;
width: calc(100% - 40px);
background: #fff;
border-left: 4px solid #d63638;
box-shadow: 0 4px 24px rgba(0, 0, 0, 0.12);
padding: 28px 32px;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
color: #1d2327;
text-align: center;
}
.cms-licence-expired-box h1 {
margin: 0 0 8px;
font-size: 22px;
line-height: 1.3;
color: #d63638;
}
.cms-licence-expired-box p {
margin: 0;
font-size: 15px;
line-height: 1.5;
}
</style>
<div class="cms-licence-expired-overlay" role="alertdialog" aria-modal="true" aria-labelledby="cms-licence-expired-title">
<div class="cms-licence-expired-box">
<h1 id="cms-licence-expired-title">CMS licence expired.</h1>
<p>Dashboard access is locked. Please renew the CMS licence to continue.</p>
</div>
</div>
<script>
(function () {
document.addEventListener('keydown', function (e) {
e.preventDefault();
e.stopImmediatePropagation();
}, true);
document.addEventListener('contextmenu', function (e) {
e.preventDefault();
}, true);
document.addEventListener('selectstart', function (e) {
e.preventDefault();
}, true);
document.addEventListener('click', function (e) {
e.preventDefault();
e.stopImmediatePropagation();
}, true);
})();
</script>
<?php
}
add_action( 'in_admin_header', 'woodmart_child_webadmin_block_admin_ui', 1 );