• Anonymous User 9312037

    (@anonymized-9312037)


    Hi,

    After updating I got the following error:

    Notice: force_ssl_login is deprecated since version 4.4! Use force_ssl_admin() instead. in /var/www/vhosts/itsoncraft.com/httpdocs/wp-includes/functions.php on line 3568

    And the site is a total mess.

    Disabling the plugins Paid Memberships Pro, Theme My Login and Hide Admin Bar From Non-admins, and the error doesn’t show anymore.

    But these plugins are crucial to my site! How do I solve it?

    I am running Enfold Theme if that’s important.

    Any help is welcomed.

    Thank you,
    Emil

Viewing 4 replies - 1 through 4 (of 4 total)
  • I’d determine which plugin is causing the issue (try them one at a time) and then contact the plugin author and request a fix.

    Or you could restore a backup of your site to before you made the update.

    If you have an editor that will do searches across multiple folders (textwrangler on the mac does this) you could search for ‘force_ssl_login’ to figure out which plugin has the issue and you could try changing the code yourself.

    One question: if thissite is critical, why didn’t you test the new version of wordpress on a test site before upgrading?

    Moderator Samuel Wood (Otto)

    (@otto42)

    WordPress.org Admin

    Go through your plugin and/or theme files and find which one is calling force_ssl_login. Change that to force_ssl_admin instead. Works exactly the same as the old way, without the error message.

    Also, disable the display_errors setting on your site. You will need to ask your hosting service for the proper way to do this.

    Thread Starter Anonymous User 9312037

    (@anonymized-9312037)

    I think the plugin Paid Memberships Pro is to blame mostly.

    There are several occurrences of “force_ssl_login” in the https.php, checkout.php and login.php in that plugin. But can I safely change all the occurrences to “force_ssl_admin”, without any issues? Really?

    Like

    //if forcing ssl on login, be secure on the login page
    	if(!$besecure && force_ssl_login() && pmpro_is_login_page())
    		$besecure = true;
    
    //this function sets the besecure global which may be used in early code
    /*
    function pmpro_besecure_set()
    {
    	global $besecure;
    	if(force_ssl_admin() || force_ssl_login() || is_ssl())
    		$besecure = true;
    
    	$besecure = apply_filters("pmpro_besecure", $besecure);
    }
    
    	//let's strip the https if force_ssl_login is set, but force_ssl_admin is not
    	if(force_ssl_login() && !force_ssl_admin())
    		$redirect_to = str_replace("https:", "http:", $redirect_to);
    
    	//setting some cookies
    				wp_set_current_user($user_id, $username);
    				wp_set_auth_cookie($user_id, true, apply_filters('pmpro_checkout_signon_secure', (force_ssl_login() || force_ssl_admin())));
    			}

    I’m not skilled in php. But if it’s just search and replace with no worries, then that’d be cool!

    ps
    @juggledad: I still got the site in a testing ground, haven’t launched yet. But I am about to and this problem has caused a lot of hassle. But if you have any suggestion on how to set up a proper staging area, don’t hold back 🙂

    Moderator Samuel Wood (Otto)

    (@otto42)

    WordPress.org Admin

    For that one, you may want to contact the plugin author to get an update.

    As of 4.4, the force_ssl_login function actually calls force_ssl_admin instead. So they’re identical. So some of the above code makes no sense now and can be removed.

    But basically, yes, a straight up search/replace will work, however it might not exactly be efficient or what have you.

Viewing 4 replies - 1 through 4 (of 4 total)

The topic ‘4.4 update and force_ssl_login’ is closed to new replies.