Hook del Plugin Duplicator Pro
Il plugin Duplicator Pro consente agli sviluppatori di accedere a eventi specifici durante i suoi cicli di esecuzione. Ecco una guida semplice agli hook disponibili, supportati in Duplicator Pro versione 4.5.2 e successive.
Hook
Ecco gli hook che puoi utilizzare con Duplicator Pro:
| Gancio | Descrizione |
|---|---|
| duplicator_pro_build_before_start | Attivato subito prima dell'inizio del processo di compilazione sia per le compilazioni manuali che pianificate. |
| duplicator_pro_build_completed | Attivato alla fine del processo di compilazione sia per le compilazioni manuali che pianificate. |
| duplicator_pro_build_fail | Attivato ogni volta che una compilazione fallisce sia per le compilazioni manuali che pianificate. |
| duplicator_pro_first_login_after_install | Attivato dopo che un'installazione è stata eseguita con successo e l'utente accede all'area di amministrazione di WordPress per la prima volta. |
Configurazione
Gli hook possono essere impostati in diversi punti. Il modo più rapido per iniziare è aggiungerli al file functions.php del tuo tema. Puoi anche aggiungere hook da plugin personalizzati o commerciali. Gli hook di Duplicator Pro utilizzano la chiamata add_action di WordPress, quindi puoi usarli ovunque nello stack PHP di WordPress.
Guida rapida
Per impostare gli hook e convalidare che funzionino con il tuo sito WordPress, segui questi passaggi:
- Apri il file functions.php del tuo tema attivo.
- Aggiungi il seguente codice in fondo al file:
// Prima dell'inizio della build, funzione di callback
function __duplicator_pro_build_before_start_test_function() {
$var = "------------------------------------------------";
$var .= "Testing: duplicator_pro_build_before_start hook";
$var .= "------------------------------------------------";
error_log(print_r($var, true));
}
// La build completa, funzione di callback
function __duplicator_pro_build_completed_test_function() {
$var = "------------------------------------------------";
$var .= "Testing: duplicator_pro_build_before_start hook";
$var .= "------------------------------------------------";
error_log(print_r($var, true));
}
// Aggiungi azioni
add_action('duplicator_pro_build_before_start', '__duplicator_pro_build_before_start_test_function');
add_action('duplicator_pro_build_completed', '__duplicator_pro_build_completed_test_function');
3. Crea un backup per attivare gli hook di compilazione.
4. Apri il file di log degli errori o di debug PHP per vedere i risultati delle funzioni.
Esempi
Di seguito sono riportati alcuni codici di esempio per vari hook. Puoi personalizzare questi esempi per adattarli alle tue esigenze.
Esempio 1: Pulisci i dati transitori prima di creare un backup.
Questo esempio mostra come pulire i dati transitori prima di creare un backup.
function deleteAllTransientsOnPackageCreation() {
global $wpdb;
$sql = 'DELETE FROM ' . $wpdb->options . ' WHERE option_name LIKE "_transient_%"';
$wpdb->query($sql);
}
add_action('duplicator_pro_build_before_start', 'deleteAllTransientsOnPackageCreation');
Esempio 2: Registra lo stato di compilazione su un'API esterna (es. Slack)
Questo esempio mostra come registrare lo stato di compilazione su un'API esterna come Slack.
function sendSlackMessage($msg) {
// Vedi API Webhook di Slack (https://api.slack.com/messaging/webhooks)
$slackWebhook = 'https://hooks.slack.com/services/[XXX]/[YYY]/[ZZZ]';
$postfields = array('payload' => json_encode(array('text' => $msg)));
$ch = curl_init($slackWebhook);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
curl_exec($ch);
curl_close($ch);
}
function sendSlackStartMessage(DUP_PRO_Package $package) {
sendSlackMessage("DUPLICATOR BUILD START [" . date("Y-m-d H:i:s") . "] Nome pacchetto: " . $package->Name);
}
function sendSlackFailMessage(DUP_PRO_Package $package) {
sendSlackMessage("DUPLICATOR BUILD FALLITO Nome pacchetto: " . $package->Name);
}
function sendSlackCompleteMessage(DUP_PRO_Package $package) {
sendSlackMessage("DUPLICATOR BUILD COMPLETATO [" . date("Y-m-d H:i:s") . "] Nome pacchetto: " . $package->Name);
}
add_action('duplicator_pro_build_before_start', 'sendSlackStartMessage');
add_action('duplicator_pro_build_fail', 'sendSlackFailMessage');
add_action('duplicator_pro_build_completed', 'sendSlackCompleteMessage');
Questi esempi dimostrano la flessibilità e la potenza degli hook di Duplicator Pro. Puoi personalizzarli per soddisfare le tue esigenze specifiche e integrarli con altri sistemi o servizi.