Cum să restricționați accesul la conținut pentru utilizatorii neînregistrați, cms și motoare pentru site-uri

În ultimii ani, multe site-uri care publică știri și originale articole utilizate modelul freemium de acces, potrivit căruia vizitatorii neînregistrați ale site-ului limitat la un anumit număr de publicații, pe care le pot citi pentru o anumită perioadă de timp, utilizatorii înregistrați au acces nelimitat la toate publicațiile:

Cum să restricționați accesul la conținut pentru utilizatorii neînregistrați, cms și motoare pentru site-uri

Codul pluginului

Pluginul trebuie să aibă, de asemenea, o pagină de setări care conține câmpul de formular. În acest câmp, vom introduce identificatorii articolelor sau paginilor la care doriți să restricționați accesul.

Codul de mai jos va adăuga la meniul "Setări" un submeniu numit "Restricționați conținutul pentru utilizatorii înregistrați":

Al cincilea argument, rcru_content_user_settings. Funcția trecută la add_options_page () este o funcție care afișează conținutul paginii cu setările pluginului. Codul ei:

Formularul nu are încă un câmp de introducere și nu poate salva date în baza de date, deoarece trebuie încă să implementăm funcția Setări a API-ului WordPress.

Funcția plugin_option () definește secțiunea și câmpul pentru setări:

Similar cu exemplul anterior, al treilea argument a fost transmis funcției
add_settings_field (). - post_page_field - funcția care emite câmpul formularului:

În fine, funcția plugin_option () este obligată să admin_init. că forma noastră a început să funcționeze:

Am dat seama de pagina de configurare a plugin-ului, dar datele stocate în această etapă nu sunt folosite în nici un fel.

Acum trebuie să scriem funcția restrict_content_register_user (). care va extrage din baza de date identificatorii articolelor sau paginilor care au fost salvate în etapa anterioară.

Aceste date vor fi folosite pentru a vă asigura că utilizatorul este înregistrat, altfel va fi afișat un avertisment cu o sugestie de înregistrare.

În cele din urmă, această funcție va fi legată de filtrul de conținut. pentru a reacționa la schimbarea paginii (articol):

Am terminat implementarea principalei funcționalități a plug-in-ului nostru: prin pagina de setări. Acum adăugați metaboxul și codul scurt.

Adăugarea unui metabox

Adăugarea unui panou metabox în paginile de editare a conținutului vă va permite să restricționați accesul direct la conținut atunci când îl creați sau editați, fără a fi nevoie să accesați pagina de setări. Pentru aceasta, funcția rcru_mb_create (). care va crea metaboxul nostru, trebuie să vă legați de evenimentul add_meta_boxes:

Funcția rcru_mn_function () conține o casetă de selectare și o descriere a metaboxului:

Funcția rcru_mb_save_data () salvează valorile specificate în metabox la baza de date în funcție de setările de securitate:

Restricția restrict_content_metabox () va verifica articolul sau pagina pentru restricțiile existente, va verifica înregistrarea utilizatorului și, dacă este necesar, va avertiza utilizatorii neînregistrați:

Adăugați cod scurt

Folosind un scurtcod, puteți restricționa accesul la o parte a articolului.

Funcția rcru_user_shortcodes () conține apelul pentru add_shortcode (). care leagă funcția Callback-a la eticheta de coduri scurte [rcru-private]. Funcția de apel invers este trecută în al doilea parametru add_shortcode (). ca în exemplele anterioare:

Apoi, această funcție este înregistrată în evenimentul init, astfel încât WordPress să-l lase în caz:

Plugin work

Aceasta arată pagina de setări a pluginului cu un câmp în care puteți introduce identificatori de articole sau pagini separate prin virgule:

Metabox pe pagina de editare a conținutului

Tot codul folosit în articol poate fi găsit aici. Mult noroc!

Traducerea articolului "Cum să restricționăm conținutul utilizatorilor înregistrați [WP Plugin Tutorial]" a fost pregătit de o echipă prietenoasă a proiectului Saitostroenie de la A la Z.