0

When I try to add the following code to functions.php I keep getting errors (site goes down, seeming to indicate a php error). I've stared at this code forever and can't seem to figure out why it should give an error when it's added to functions.php.

Any suggestions for what I should change? Thanks!

function hide_prompt() {
   if(is_user_logged_in()) {
    echo '
    <style> .app { display: none!important; } </style>   
    ';  
   }
}
add_action('wp_footer', 'hide_prompt');
6
  • from config file set WP_DEBUG true, refresh and check if you see any php error Sep 13, 2019 at 6:00
  • I have checked this above code into website and it's working perfect. so I think there is no issue with code. may be possible other coding issue for getting errors. Sep 13, 2019 at 6:21
  • You might have a plugin or your theme defining a function called hide_prompt - try changing the name of the function to something unique, eg vanessa_hide_prompt.
    – Peter HvD
    Sep 13, 2019 at 9:54
  • 1
    The original code in your question (the one in the text box for editing the question) contains invisible characters which result in "unexpected echo" error - and if you copy the rendered code on this page (not in the text box), then your code should work fine. So be extra careful when copying/pasting code.
    – Sally CJ
    Sep 14, 2019 at 1:19
  • Thanks for the tips. Peter, I tried a number of different names and it still errors. Sally, how did you tell there were invisible characters? (I assume you mean beyond spaces and tabs?) Sep 14, 2019 at 1:53

1 Answer 1

1

You are using the wrong hook, and you are doing it the wrong way. Sorry to be clear.

Adding stylesheet to the footer is no good style at all and rather a beginner mistake. Have a look at loading scripts correctly.

You need to add that stylerule the to html-head of your login page/hook.

Since you want to edit the login form, the correct hook, which you need to use is login_head

See Codex: Login Hooks

Also see: Login Head

something like this (functions.php):

function se_css_output_hide_promt() { ?>
    <style type="text/css" id="se-answer-customized-css">
        <?php
        //switch to php to check the login status, add css when true
        if(is_user_logged_in()): ?>

        .app { display: none!important; }

        <?php endif; ?>
    </style>
<?php }
add_action('login_head', 'se_css_output_hide_promt');

I bet !important is no longer needed in case you are doing it this way. This css will be added right before the ending html-head, very close to your html. Meaning that your !important is propably no longer necessary.

2
  • Thanks, Is endif; required in php?, also, I haven't seen the : used before, is there a difference between the syntax I had and using the : Thanks again. Sep 14, 2019 at 1:53
  • The double quotes mean that the If Statement stays Open, Thema endif ist required Sep 15, 2019 at 16:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.