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

I built a WordPress plugin that gives the possibility to make the background image clickable, I have worked on this plugin with the idea in mind that a plugin has to be the more possible standard in order to work with any existing WordPress theme, but I realized that making such plugin is virtually impossible as long as any […]

November 12, 2020
Read More...

Siccome ho notato che c’e’ molta confusione sulla gestione e la creazione di Shortcode in Stackoverflow e in generale su internet ho deciso di fare questa guida per spiegare in modo semplice come creare e gestiore un Shortcode in Wordpree e a che cosa serve. Prima di tutto … Cos’e’ uno Shortcode in WordPress e a […]

October 10, 2020
Read More...

Oggi vediamo di analizzare un errore che appare ultimamente spesso nell’ispector e che e’ molto difficile da individuare e risolvere. L’errore appare come “Failed to load resource: net::ERR_BLOCKED_BY_CLIENT” o anche come “Impossibile caricare la rete: net :: ERR_BLOCKED_BY_CLIENT” se il vostro browser e’ in italiano. Questo errore e’ sempre seguito da un url, l’url in […]

May 23, 2020
Read More...

Click to Leave a Comment