Support » Plugin: All In One WP Security & Firewall » Conflict with Theme My Login

  • Hi,
    I installed this plugin and I love it 🙂 (thank you for your works)

    but I have a problem with ‘custom profile page’ redirection that handles by TML.

    when I activate this plugin, redirection to ‘custom profile page’ in front end doesnt work.

    can I fix it?

Viewing 15 replies - 16 through 30 (of 31 total)
  • @mbrsolution, Thank You 🙂

    Hi @mbrsolution,
    I finally find the solution 🙂

    everything works well when I enabled “Rename Login Page” feature.

    I check the code in the [ wp-security-wp-loaded-tasks.php ] file, there is a condition on line 14: “if the feature doesn’t enable call [ aiowps_login_init ] function” and there, a condition checking if the user is logged-in then go to the admin page.

    Plugin Contributor mbrsolution

    (@mbrsolution)

    @arshen, well done for finding a solution. However I don’t understand what your solution is. You mentioned the following comment.

    I check the code in the [ wp-security-wp-loaded-tasks.php ] file, there is a condition on line 14: “if the feature doesn’t enable call [ aiowps_login_init ] function” and there, a condition checking if the user is logged-in then go to the admin page.

    Did you rem out that line or did you add something else? The reason why I am asking is so others who run into this issue can following your solution.

    Thank you

    • This reply was modified 1 year, 7 months ago by  mbrsolution.

    Just enable “Rename Login Page”.

    I don’t change any thing. I just point to code for your information.

    Thanks

    Plugin Contributor mbrsolution

    (@mbrsolution)

    Thank you

    This is definitely a continued conflict issue with Theme My Login. @arshen identified a solution, but the problem for me is that by enabling “Rename Login Page” on the Brute Force settings page, it doesn’t used the themed Log In page I’ve set up. It only uses a default WordPress log-in.

    I don’t want to leave AIOWPS but may have to.

    This is caused due to some code in all-in-one-wp-security/classes/wp-security-wp-loaded-tasks.php, lines 55-62:

    
    static function aiowps_login_init(){
        //if user is logged in and tries to access login page - redirect them to wp-admin
        //this will prevent issues such as the following:
        //https://wordpress.org/support/topic/already-logged-in-no-captcha
        if(is_user_logged_in()){
            wp_redirect(admin_url());
        }
    }
    

    TML calls login_init on it’s pages, including the profile page. You can fix this with the following code:

    
    function maybe_disable_aiowps_login_redirect( $aiowps_wp_loaded_tasks ) {
        // TML 6.4.x
        if ( is_user_logged_in() && Theme_My_Login::is_tml_page( 'profile' ) ) {
            remove_action( 'login_init', array( $aiowps_wp_loaded_tasks, 'aiowps_login_init' ) );
        }
    
        // TML 7+
        if ( is_user_logged_in() && tml_is_action( 'profile' ) ) {
            remove_action( 'login_init', array( $aiowps_wp_loaded_tasks, 'aiowps_login_init' ) );
        }
    }
    add_action( 'aiowps_wp_loaded_tasks_end', 'maybe_disable_aiowps_login_redirect' );
    

    Actually, the above code will not work because the wp_loaded action is to early for TML to know if one of it’s pages is being accessed. So, now we have to get creative:

    
    function save_aiowps_wp_loaded_tasks_instance( $aiowps_wp_loaded_tasks ) {
    	// Save the instance for use in a later hook
    	tml_set_data( 'aiowps_wp_loaded_tasks', $aiowps_wp_loaded_tasks );
    }
    add_action( 'aiowps_wp_loaded_tasks_end', 'save_aiowps_wp_loaded_tasks_instance' );
    
    function maybe_disable_aiowps_login_redirect() {
    	// Get the saved instance from the previous hook
    	if ( $aiowps_wp_loaded_tasks = tml_get_data( 'aiowps_wp_loaded_tasks' ) ) {
    		// TML 6.4.x
    		if ( is_user_logged_in() && Theme_My_Login::is_tml_page( 'profile' ) ) {
    			remove_action( 'login_init', array( $aiowps_wp_loaded_tasks, 'aiowps_login_init' ) );
    		}
    
    		// TML 7+
    		if ( is_user_logged_in() && tml_is_action( 'profile' ) ) {
    			remove_action( 'login_init', array( $aiowps_wp_loaded_tasks, 'aiowps_login_init' ) );
    		}
    	}
    }
    add_action( 'wp', 'maybe_disable_aiowps_login_redirect' );
    
    
    Plugin Contributor mbrsolution

    (@mbrsolution)

    Thank you @jfarthing84, for sharing your solution. This will help those who are using your plugin and our plugin together.

    Kind regards

    I’m using TML 6.4.16 and just enabling the rename login page works – silly me did not read the full thread and traced the full code after disabling the aiowps login_init action, and arrived at the same solution, but I have no resulting issues with the login page as mentioned by toddcav – it still uses the themed login page.

    Ok, it’s going to the login page but when logging in it tries to redirect to wp-admin – so I take that back. (I don’t see an option to delete my comment).

    Ok, I give up – I added the code above, which did not work because there is no function tml_set_data, and fixing it did not work either, so I am back to where I was – removed all that and trying to figure out what’s wrong, but I think it may not be this problem anymore, but another thing causing the redirect.

    update: disabling legacy 5G Firewall Protection fixed the login redirect issue

    Plugin Contributor mbrsolution

    (@mbrsolution)

    Hi @ranioli,

    update: disabling legacy 5G Firewall Protection fixed the login redirect issue

    You should be using the following feature instead Enable 6G Firewall Protection:. Legacy 5G Firewall Protection is outdated.

    Regards

    • This reply was modified 8 months, 1 week ago by  mbrsolution.

    I had enabled both actually. Even though the description is the same for both, I thought there may be something in 5G that’s not there in 6G and thus both options are given. Perhaps that could be made into radio buttons so people can select just one.

    Also, I should clarify my issue in case it helps others, I wish I could edit my earlier comments which I wrote in a hurry:

    The redirect was not actually the problem as it turns out, TML was trying to redirect after the login as it should, but I kept getting a 403 Forbidden error. The link did work ,however, when I removed the redirect query parameter. Eventually googling led me to believe that the problem was in .htaccess which got me looking into the firewall rules. After disabling legacy 5G, this issue has been resolved and it now redirects correctly.

Viewing 15 replies - 16 through 30 (of 31 total)
  • The topic ‘Conflict with Theme My Login’ is closed to new replies.