Come creare, gestire, usare e distruggere variabili e costanti in un plugin in WordPress.

Blog Tutorial

Questa guida analizza come creare, gestire, usare e distruggere variabili e costanti utilizzabili in un plugin di Wordpress usando PHP.

Oggi vediamo come creare, gestire, usare e distrubbere variabili e costanti tutto quello che ci server per gestire un plugin in WordPress.

Questa guida non si preoccupa di come creare o gestire un plugin in WordPress, ma per fare chiarezza e per far si che  la parte successiva sia capita bene dobbiamo definire le basi di un generico plugin in WordPress. Come esempio prendiamo un plugin generico chiamato wp-plugin-esempio, questo plugin ha una sua directory nella cartella /wp-content/plugins  che deve avere lo stesso nome del plugin, all’interno di questa cartella per convenzione ci deve essere un file chiamato wp-plugin-esempio.php che definisce gli attributi del plugin e lo descrive.

Definire e Usare Costanti

E’ giusto definire delle costanti che verrano usate per accedere alle directory, questo viene fatto per evitare di usare percorsi statici che creano problemi quando il plugin viene spostato da un sito all’altro.  WordPress mette a disposizione delle funzioni per fare cio’, ecco un breve elenco di queste funzioni con relativa descrizione:

  • plugin_basename( string $file ) restituisce il nome base di un plugin, questo puo’ essere usato per rendere il codice piu’ standard invece di usare una stringa. Nel nostro caso questa funzione ritorna “wp-plugin-esempio/wp-plugin-esempio.php
  • plugin_dir_path( string $file ) restituisce il percorso del filesystem della variabile $file. Nel nostro caso (ma questo dipende dalla configurazione del server) questa funzione restituisce “/home/user/var/www/wordpress/wp-content/plugins/wp-plugin-esempio“, puo’ essere usata per importare files quali CSS e Javascript
  • plugin_dir_url ( string $file ) simile alla precedente, ma restituisce l’URL delle cortelle del plugin.

Ecco come le funzioni precedenti possono essere usate per generare delle costanti da usare nel nostro plugin per renderlo piu’ standard:

define('PLUGIN_WPE_BASENAME', plugin_basename(__FILE__) );
// PLUGIN_WPE_BASENAME avra' come valore 'wp-plugin-esempio/wp-plugin-esempio.php'
define('PLUGIN_WPE_PATH', plugin_dir_path( __DIR__ ) );
// PLUGIN_WPE_PATH avra' come valore /home/user/www/wp-content/wp-plugin-esempio
define('PLUGIN_WPE_URL', plugin_dir_url( __DIR__ ) );
// PLUGIN_WPE_URL avra' come valore http://www.sito.com/wp-content/wp-plugin-esempio

Ora vediamo come usare le costanti appena create sopra:

add_filter('plugin_action_links_' . PLUGIN_WPE_BASENAME, 'wp_plugin_esempio_settings_link');
// questo hook crea un action link che avra' il nome di plugin_action_links_wp_plugin_esempio basato sulla funzione wp_plugin_esempio_settings_link 
include_once( PLUGIN_WPE_PATH . 'views/admin-form.php' );
// questa funzione include il file admin-form.php che si trova nella directory /wp-content/wp-plugin-esempio/view/admin-form.php
wp_enqueue_script('wp-plugin-esempio-admin', PLUGIN_WPE_URL . 'js/admin.min.js' );
// questa funzione include il file Javascript chiamato admin.min.js che si trova nell'URL http://www.sito.com/wp-content/wp-plugin-esempio/js/

Definire, usare e distruggere variabili.

Ora vediamo come creare delle variabili e usarle nel nostro plugin. In questo caso creare variabili e’ molto semplice grazie alla flessibilita’ di PHP che non necessita di nessuna dichiarazione di tipo. L’unica funzione WordPress da usare e’ update_option( string $option, mixed $value, string|bool $autoload = null ), vedi questa pagina della documentazione di WordPress per avere piu’ informazioni. Queste funzione viene comunemente usata per creare e assegnare valori alle variabili del vostro plugin e le variabili verranno automaticamente salvate nel database senza bisogno di query il database.

E’ bene tenere a mente che ogni variabile di ogni plugin dovrebbe avere un nome unico in modo da evitare di chiamare variabili di plugin diversi con lo stesso nome, quindi non usate nomi troppo comuni o banali come A, B, C o indice o numero, o nomi simili, usate sempre il nome del votro plugin come inizio della variabile, ecco qualche esempio:

// copia il valore di $phone in wp-plugin-esempio-phone-number
update_option( 'wp-plugin-esempio-phone-number', $phone );
// copia il valore di $prefixin wp-plugin-esempio-phone-prefix ecc...
update_option( 'wp-plugin-esempio-phone-prefix', $prefix );
update_option( 'wp-plugin-esempio-full-phone-number', $fullPhoneNumber );
update_option( 'wp-plugin-esempio-title', $title );
update_option( 'wp-plugin-esempio-text', 'TESTO!!!' );
update_option( 'wp-plugin-esempio-button', $button );

Nell’esempio sopra vengono create ed eventualmente inizializzate le variabili del plugin.

Per usare e visualizzare le variabili create usiamo la funzione get_option( string $option, mixed $default = false ), ecco il link alla documentazione di questa funzione nel sito di WordPress. Ecco alcuni esempi:

// visualizzare il valore di wp-plugin-esempio-phone-prefix all'inteno di input text
<input type="text" value="<?php echo get_option('wp-plugin-esempio-phone-prefix'); ?>" class="regular-text" />
// visualizza il valore di wp-plugin-esempio-form-message a scermo
echo get_option('wp-plugin-esempio-form-message');

E’ buona pratica di ogni programmatore pulire la memoria e distruggere tutte le variabili utilizzate quando il plugin viene cancellato o disattivato. Per fare questo dobbiamo semplicemente creare un file chiamato uninstall.php nella directory del plugin /wp-plugin-esempio, WordPress carichera’ automaticamente il file uninstall.php quando il plugin viene disinstallato e cancellato dal server. In questo file distruggeremo le variabili che abbiamo creato in precedenza con la funzione delete_option( string $option ), ecco come:

// controlla se questo file viene eseguito da WordPress
if (!defined('WP_UNINSTALL_PLUGIN')) {
    die;
}

// distruggi le variabili wp-plugin-esempio-phone-number, wp-plugin-esempio-phone-prefix ecc...
delete_option( 'wp-plugin-esempio-phone-number' );
delete_option( 'wp-plugin-esempio-phone-prefix' );
delete_option( 'wp-plugin-esempio-full-phone-number' );
delete_option( 'wp-plugin-esempio-title' );
delete_option( 'wp-plugin-esempio-text' );
delete_option( 'wp-plugin-esempio-button' );
delete_option( 'wp-plugin-esempio-form-message' );

La parte in cima al file sopra “defined(‘WP_UNINSTALL_PLUGIN’)” controlla se il file uninstall.php e’ eseguito da WordPress per evitare che il file sia chiamato da browser e accidentalmente distrugga le variabili del plugin.

You May Like

Today we try to analyze the error that appears on the browser inspector and that is a bit tricky to fix and we try to understand what is causing the error, the error is called “Failed to load resource: net::ERR_BLOCKED_BY_CLIENT“. This error is always followed by an URL, this URL is the link that has […]

May 28, 2021
Read More...
how to freeze the first row and the first column of an HTML table

I was working on an HTML table that displays a list of users and user permission, the first row displays the permission names and the first column displays the name of the users involved. I have noticed that when I strolled toward the right I couldn’t see the user names and scrolling toward the bottom […]

May 28, 2021
Read More...

The Fullscreen Any Element Plugin uses the Javascript Fullscreen API in order to make any chosen HTML element on your website in fullscreen. The Fullscreen API adds methods to present a specific Element (and its descendants) in full-screen mode, and to exit full-screen mode once it is no longer needed. This makes it possible to […]

May 24, 2021
Read More...

Click to Leave a Comment