Tovább a tartalomhoz

Testreszabás

Jogi szövegek módosítása szűrővel, „Hozzájárulás kezelése” gomb saját linkkel, hozzáférés adása más szerepköröknek.

Jogi dokumentumok szövegének módosítása

Szekció neve “Jogi dokumentumok szövegének módosítása”

A dokumentumokat a varázsló generálja, és shortcode-dal kerülnek az oldalra. Ez teszi lehetővé a jogszabályi frissítéseket és a fordításokat. Ha a szöveget közvetlenül átírod az oldalon, ezek a frissítések megszűnnek, ezért a módosításokat szűrővel (hook) végezd, a téma functions.php fájljában. Még jobb egy must-use (MU) bővítmény, vagy gyermektéma használata.

Néhány szabály:

  • A szűrőnek tudnia kell, melyik szöveget cserélje, ezért a régi és az új szövegnek tartalmaznia kell egy közös azonosítót (például a „Red apples are” kezdet a „Red apples are sold out” és a „Red apples are on sale” cseréhez).
  • Minél egyedibb a keresett szöveg, annál jobb.
  • A functions.php módosítása előtt készíts róla másolatot.
  • A <?php nyitó sort a functions.php-ba illesztéskor hagyd el, MU-bővítményben meg kell tartani.
function cmplz_edit_document_html( $html, $type, $post_id ) {
$old_string = "Ez a régi szöveg";
$new_string = "Ez az új szöveg.";
$html = str_replace( $old_string, $new_string, $html );
return $html;
}
add_filter( 'cmplz_document_html', 'cmplz_edit_document_html', 10, 3 );
function cmplz_edit_document_html( $html ) {
$old_strings = array( "Cookies", "website" );
$new_strings = array( "Cookies-csere", "website-csere" );
$html = str_replace( $old_strings, $new_strings, $html );
return $html;
}
add_filter( 'cmplz_document_html', 'cmplz_edit_document_html', 10, 3 );

Nyelvenként eltérő cseréhez ugyanezt a szűrőt használhatod: a függvény a harmadik paraméterben kapott nyelvi kód (például en_US) vagy a webhely nyelve alapján választ egy tömbpárt. Nyelvenként a régi és az új tömbnek ugyanannyi elemből kell állnia.

A cmplz-cookies shortcode a sütilistát a jogi dokumentumoktól külön állítja elő, ezért a cmplz_document_html szűrő rá nem vonatkozik. A lista szövegének cseréhez a WordPress saját do_shortcode_tag szűrőjét használd:

add_filter( 'do_shortcode_tag', function ( $output, $tag ) {
if ( 'cmplz-cookies' === $tag ) {
$output = str_replace( 'Ez a régi szöveg', 'Ez az új szöveg', $output );
}
return $output;
}, 10, 2 );
  • Ez a szűrő csak a cmplz-cookies shortcode kimenetét érinti, a jogi dokumentumokat nem.
  • Itt is érvényes, hogy a keresett szövegnek elég egyedinek kell lennie, hogy máshol ne cserélődjön ki.

A Complianz shortcode-jai közül egyik sem jeleníti meg a sávot a hozzájárulás visszavonása nélkül. Ezt egy kis szkripttel oldhatod meg.

  1. Add hozzá a következő kódot a functions.php-hoz vagy egy MU-bővítményhez (a <?php nyitó sort csak MU-bővítményben tartsd meg, a functions.php-ból hagyd el):
function cmplz_show_banner_on_click() {
?>
<style>
.cmplz-show-banner { cursor: pointer; }
</style>
<script>
document.addEventListener('click', function (e) {
if (e.target.closest('.cmplz-show-banner')) {
document.querySelectorAll('.cmplz-manage-consent').forEach(function (obj) {
obj.click();
});
}
});
</script>
<?php
}
add_action( 'wp_footer', 'cmplz_show_banner_on_click' );
  1. Tegyél az oldalra egy linket vagy gombot a cmplz-show-banner osztállyal:
<p>Sütibeállítások módosítása: <a class="cmplz-show-banner">kattints ide</a>.</p>

A cmplz-show-banner osztályt gombra is teheted, és saját CSS-sel stílust adhatsz neki (például lekerekítést, árnyékot, hátteret a .cmplz-show-banner szelektorral). A hivatkozás a sávot a hozzájárulási döntés módosítása nélkül nyitja meg.

A kód Header Footer Code Manager jellegű bővítményben is működik, de ott csak a <script> és a <style> címkék közötti részt használd, a címkékkel együtt.

A Complianz felületét a manage_privacy képesség vezérli. Aki nem rendelkezik vele, nem kezelheti a bővítményt. A képesség az adatbázisban tárolódik, ezért a kód eltávolítása után is megmarad.

Egyetlen felhasználónak (ajánlott):

add_action( 'init', function () {
$user_id = 123; // a felhasználó azonosítója
$user = get_user_by( 'id', $user_id );
if ( ! $user ) { return; }
if ( ! $user->has_cap( 'manage_privacy' ) ) {
$user->add_cap( 'manage_privacy' );
}
} );

Egy teljes szerepkörnek (például a szerkesztőknek):

add_action( 'init', function () {
$role = get_role( 'editor' );
if ( ! $role ) { return; }
if ( ! $role->has_cap( 'manage_privacy' ) ) {
$role->add_cap( 'manage_privacy' );
}
} );

Visszavonáshoz ugyanezt a kódot remove_cap( 'manage_privacy' ) hívással futtasd le (felhasználóra vagy szerepkörre), majd jelentkezz ki és be újra, vagy ürítsd az objektum-gyorsítótárat.

Készült: Frissítve:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások