Este posibil să afișezi un buton doar pentru utilizatorii autentificați?
Am o clasă "rty-downloads" pe care vreau să o afișez doar pentru utilizatorii autentificați în WordPress. Este posibil acest lucru?
Mulțumesc anticipat

Puteți folosi acest cod în orice pagină/șablon WordPress.
<?php if ( is_user_logged_in() ) : ?>
//Cod pentru utilizatorii autentificați
<?php endif; ?>
Consultați documentația pentru mai multe informații: https://developer.wordpress.org/reference/functions/is_user_logged_in/

Am încercat dar nu pare să funcționeze, cea mai ușoară metodă ar fi o funcție care verifică dacă utilizatorul este autentificat pentru a afișa această clasă "rty-downloads"
Mulțumesc anticipat

Asta folosesc eu:
functions.php (în tema copil):
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%;
}
Apoi poți pur și simplu să adaugi aceste două nume de clase pentru elementele pe care vrei să le afișezi/ascunzi. În acest fel poți afișa/ascunde orice elemente bazat pe orice logică.

final_output nu cred că este un filtru WordPress de bază? Probabil este din plugin-ul tău de cache sau ceva similar? Cum filtrează el CSS-ul care de obicei este servit static de serverul web?

De asemenea, nu sunt sigur că există un beneficiu în a face asta în locul soluției pure CSS folosind clasa logged-in de pe tag-ul body pe care WordPress o generează deja.

Dacă ești autentificat pe site, WordPress adaugă o clasă 'logged-in' pe tag-ul body. Selectorul CSS body.logged-in .for-logged-in-users
înseamnă elementele care au clasa for-logged-in-users și se află sub un tag body cu clasa logged-in, iar dacă există mai multe elemente potrivite, CSS va acorda prioritate celui mai specific. Așadar, poți folosi .for-logged-in-users { display: none; }
pentru a ascunde acele elemente în mod implicit și body.logged-in .for-logged-in-users { display: block; }
astfel încât, dacă există clasa logged-in pe tag-ul body, să suprascriem display: none cu display: block.

Am înțeles, asta e într-adevăr o soluție mai bună, mulțumesc pentru explicație. Totuși, am alte clase CSS și alte texte unice care trebuie modificate/înlocuite în funcție de condiții mai complexe, așa că pentru mine are mai mult sens să modific și aceste clase cu această funcție PHP.
