Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wpmudev-sls/eddfa45c65d1756306de9021c77a24c2 to your computer and use it in GitHub Desktop.
Save wpmudev-sls/eddfa45c65d1756306de9021c77a24c2 to your computer and use it in GitHub Desktop.
[Defender Pro] Enable login url while using Mask login
<?php
/**
* Plugin Name: [Defender Pro] Enable login url while using Mask login
* Description: [Defender Pro] Enable login url while using Mask login - 1147788731209818
* Author: Thobk @ WPMUDEV
* Author URI: https://premium.wpmudev.org
* License: GPLv2 or later
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
add_action( 'plugins_loaded', 'wpmudev_defender_enable_access_login_while_using_mask_login_func' );
function wpmudev_defender_enable_access_login_while_using_mask_login_func(){
/**
* NOTE
* If you want to copy to your child theme's functions.php file, please copy from here:
*/
if( class_exists('WP_Defender') ){
add_action( 'init', 'wpmudev_defender_filter_login_request', 9998 );
function wpmudev_defender_filter_login_request(){
$requestPath = WP_Defender\Module\Advanced_Tools\Component\Mask_Api::getRequestPath();
if( '/login' === $requestPath ){
$new_ticket = false;
$ticket = Hammer\Helper\HTTP_Helper::retrieveGet( 'ticket', false );
if( false === $ticket ){
$otp = get_site_option('wpmudev_defender_ticket_key');
if( $otp ){
$_GET['ticket'] = $otp;
$_GET['wpmudev_def_ticket'] = 1;
}
}
if ( ! WP_Defender\Module\Advanced_Tools\Component\Mask_Api::redeemTicket( $ticket ) ) {
$new_ticket = true;
}
if( $new_ticket ){
$otp = wp_generate_password( 12, false );
$_GET['ticket'] = $otp;
$_GET['wpmudev_def_ticket'] = 1;
update_site_option( 'wpmudev_defender_ticket_key', $otp );
$settings = WP_Defender\Module\Advanced_Tools\Model\Mask_Settings::instance();
$settings->otps[ $otp ] = [
'otp' => $otp,
'bind_to' => null,
'expiry' => strtotime( '+30 day' ),
'used' => 0
];
$settings->save();
// free memory
unset( $settings );
}
}
}
add_action( 'init', 'wpmudev_defender_maybe_clean_request', 10000 );
function wpmudev_defender_maybe_clean_request(){
if( isset( $_GET['wpmudev_def_ticket'] ) ){
unset( $_GET['wpmudev_def_ticket'], $_GET['ticket'] );
}
}
}
// end here
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment