È possibile mostrare un pulsante solo se l'utente ha effettuato l'accesso?
Ho una classe "rty-downloads" e vorrei che questa classe venisse mostrata solo agli utenti WordPress che hanno effettuato l'accesso. È possibile?
Grazie in anticipo

Puoi utilizzare questo codice in qualsiasi pagina/template di WordPress.
<?php if ( is_user_logged_in() ) : ?>
//Codice riservato agli utenti loggati
<?php endif; ?>
Consulta la documentazione per maggiori informazioni: https://developer.wordpress.org/reference/functions/is_user_logged_in/

L'ho provato ma non sembra funzionare, il modo più semplice potrebbe essere una funzione che controlla se l'utente è loggato per mostrare questa classe "rty-downloads"
Grazie in anticipo

Questo è quello che uso:
functions.php (nel tema child):
add_action('shutdown', function() {
$final = '';
$levels = ob_get_level();
for ($i = 0; $i < $levels; $i++)
{
$final .= ob_get_clean();
}
echo apply_filters('final_output', $final);
}, 0);
add_filter('final_output', function($output) {
$display1 = 'none';
$display2 = 'block';
if(is_user_logged_in()) {
$display1 = 'block';
$display2 = 'none';
}
$from = array('%display1%', '%display2%');
$to = array($display1, $display2);
$output = str_replace($from,$to,$output);
return $output;
});
CSS:
.for-logged-in-users {
display: %display1%;
}
.for-logged-out-users {
display: %display2%;
}
Successivamente puoi semplicemente aggiungere questi due nomi di classe agli elementi che vuoi mostrare/nascondere. In questo modo puoi mostrare/nascondere qualsiasi elemento basandoti su qualsiasi logica.

final_output non è un filtro core di WordPress, almeno che io sappia? Viene dal tuo plugin di cache o qualcosa di simile? Come filtra il CSS che di solito viene servito staticamente dal server web?

Inoltre non sono sicuro che ci sia un beneficio nel fare così rispetto alla soluzione CSS pura usando la classe logged-in del tag body che WordPress già genera.

Se sei loggato nel sito, WordPress aggiunge la classe 'logged-in' al tag body. Il selettore CSS body.logged-in .for-logged-in-users
significa elementi che hanno la classe for-logged-in-users che sono sotto un tag body con la classe logged-in, e data una scelta di elementi corrispondenti, CSS darà la priorità a quello più specifico. Quindi puoi fare .for-logged-in-users { display: none; }
per nascondere quegli elementi di default e anche body.logged-in .for-logged-in-users { display: block; }
così che se c'è la classe logged-in sul tag body sovrascriviamo il display: none con display: block.

Capisco, è effettivamente una soluzione migliore, grazie per la spiegazione. Però ho altre classi CSS e altri testi unici che devono essere modificati/sostituiti basandosi su condizioni più complesse, quindi per me ha più senso modificare anche queste classi con questa funzione PHP.
