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.

Click to Leave a Comment

You May Like

How to animate HTML elements and slide them in on mouse scroll using CSS and Javascript Today I want to animate a bunch of HTML elements and create an animation that moves them inside the same parent DIV once the elements are in the viewport, so only when the elements are visible to the users. […]

August 29, 2023
Read More...

This tutorial will show you how to change your website cursor to any CSS shape and change the shape on hover on certain HTML elements. I have seen a lot of tutorials online about changing the HTML cursor to an SVG icon or to a PGN icon. In my case, I would like to change […]

October 15, 2022
Read More...
woocommerce-min-max-checkout-plugin

Woocommerce Min Max Checkout is a plugin that extends your Woocommerce e-commerce in order to give you the possibility to set the minimum or maximum checkout amount or in order to set a minimum or maximum order quantity on the cart or checkout pages. With Woocommerce Min Max Checkout you can also set e customizable […]

February 12, 2022
Read More...