sinanisler logo

Login Only, Force Login, Maintenance Mod

This PHP code for WordPress adds a “Login Only” option to the website’s settings, allowing the admin to restrict site access to only logged-in users.

This snippet adds Force User Login setting checkbox to Customizer.

When you enable it any visitor has to login to site to view the content. I use this mostly when I am in development or updating something or temporarily making the site login only.

Very useful.




// Login Only Setting Customizer
function custom_customize_register( $wp_customize ) {
    // Add a section to hold our setting
    $wp_customize->add_section( 'custom_settings_section', array(
        'title'    => 'Login Only Setting',
        'priority' => 30,
    ));

    // Add the setting with the default value as false (checkbox not checked)
    $wp_customize->add_setting( 'login_only_setting', array(
        'default'   => 'no', // Default value set to 'no' to make checkbox not checked
        'transport' => 'refresh',
    ));

    // Add the checkbox control
    $wp_customize->add_control( 'login_only_control', array(
        'label'    => 'Login Only',
        'section'  => 'custom_settings_section',
        'settings' => 'login_only_setting',
        'type'     => 'checkbox',
    ));
}
add_action( 'customize_register', 'custom_customize_register' );

// Redirect users to the login page if they are not logged in
function restrict_site_access() {
    if (get_theme_mod('login_only_setting') && !is_user_logged_in()) {
        auth_redirect();
    }
}
add_action( 'template_redirect', 'restrict_site_access' );



Leave the first comment