Il plugin Duplicator Pro consente agli sviluppatori di accedere a eventi specifici durante i suoi cicli di esecuzione. Ecco una semplice guida ai ganci disponibili, supportati da Duplicator Pro versione 4.5.2 e successive.
Ganci
Ecco i ganci che si possono utilizzare con Duplicator Pro:
Gancio | Descrizione |
---|---|
duplicator_pro_build_before_start | Viene attivato prima dell'avvio del processo di creazione, sia per le creazioni manuali che per quelle pianificate. |
duplicatore_pro_costruzione_completata | Attivato alla fine del processo di creazione sia per le build manuali che per quelle programmate. |
duplicatore_pro_build_fail | Si attiva ogni volta che una compilazione fallisce, sia per le compilazioni manuali che per quelle programmate. |
duplicator_pro_first_login_after_install | Si attiva dopo che l'installazione è stata eseguita con successo e l'utente accede per la prima volta all'amministrazione di WordPress. |
Impostazione
Gli hook possono essere impostati in diversi punti. Il modo più rapido per iniziare è aggiungerli al file functions.php del tema. È anche possibile aggiungere ganci da plugin personalizzati o commerciali. Gli hook di Duplicator Pro utilizzano la chiamata add_action di WordPress, quindi possono essere utilizzati in qualsiasi punto dello stack PHP di WordPress.
Avvio rapido
Per impostare i ganci e verificare che funzionino con il vostro sito WordPress, seguite questi passaggi:
- Aprire il file functions.php del tema attivo.
- Aggiungete il seguente codice in fondo al file:
// Before build starts function 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));
}
// Build completes function callback
function __duplicator_pro_build_completed_test_function() {
$var = "------------------------------------------------";
$var .= "Testing: duplicator_pro_build_before_start hook";
$var .= "------------------------------------------------";
error_log(print_r($var, true));
}
// Add Actions
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. Creare un backup per attivare i ganci di compilazione.
4. Aprite il file di log degli errori o di debug di PHP per vedere i risultati delle funzioni.
Campioni
Di seguito sono riportati alcuni codici di esempio per vari ganci. È possibile personalizzare questi esempi per adattarli alle proprie esigenze.
Esempio 1: pulire 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: Registrare lo stato di costruzione a un'API esterna (ad esempio, Slack)
Questo esempio mostra come registrare lo stato della costruzione in un'API esterna, come Slack.
function sendSlackMessage($msg) {
// See Slack Webhook API (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") . "] Package name: " . $package->Name);
}
function sendSlackFailMessage(DUP_PRO_Package $package) {
sendSlackMessage("DUPLICATOR BUILD FAIL Package name: " . $package->Name);
}
function sendSlackCompleteMessage(DUP_PRO_Package $package) {
sendSlackMessage("DUPLICATOR BUILD COMPLETE [" . date("Y-m-d H:i:s") . "] Package name: " . $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 dei ganci di Duplicator Pro. È possibile personalizzarli in base alle proprie esigenze specifiche e integrarli con altri sistemi o servizi.