Le plugin Duplicator Pro permet aux développeurs d'accéder à des événements spécifiques lors de ses cycles d'exécution. Voici un guide simple des crochets disponibles, qui sont supportés dans Duplicator Pro version 4.5.2 et plus.
Crochets
Voici les crochets que vous pouvez utiliser avec Duplicator Pro :
Crochet | Description |
---|---|
duplicator_pro_build_before_start | Déclenché juste avant le début du processus de construction pour les constructions manuelles et programmées. |
duplicator_pro_build_completed | Déclenché à la toute fin du processus de construction pour les constructions manuelles et programmées. |
duplicator_pro_build_fail | Déclenché chaque fois qu'une construction échoue, tant pour les constructions manuelles que programmées. |
duplicator_pro_first_login_after_install | Déclenché après une installation réussie et lorsque l'utilisateur accède pour la première fois à l'administration de WordPress. |
Mise en place
Les crochets peuvent être installés à différents endroits. Le moyen le plus rapide de commencer est de les ajouter au fichier functions.php de votre thème. Vous pouvez également ajouter des hooks à partir de plugins personnalisés ou commerciaux. Les hooks de Duplicator Pro utilisent l'appel add_action de WordPress, vous pouvez donc les utiliser n'importe où dans la pile PHP de WordPress.
Démarrage rapide
Pour configurer les crochets et vérifier qu'ils fonctionnent avec votre site WordPress, suivez les étapes suivantes :
- Ouvrez le fichier functions.php de votre thème actif.
- Ajoutez le code suivant au bas du fichier :
// 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. Créer une sauvegarde pour déclencher les crochets de construction.
4. Ouvrez votre fichier d'erreur ou de débogage PHP pour voir les résultats des fonctions.
Échantillons
Vous trouverez ci-dessous des exemples de codes pour différents crochets. Vous pouvez adapter ces exemples à vos besoins.
Exemple 1 : Nettoyer les données transitoires avant de créer une sauvegarde.
Cet exemple montre comment nettoyer les données transitoires avant de créer une sauvegarde.
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');
Exemple 2 : Enregistrer l'état de la construction dans une API externe (par exemple, Slack)
Cet exemple montre comment enregistrer l'état de la construction dans une API externe comme 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');
Ces exemples démontrent la flexibilité et la puissance des crochets de Duplicator Pro. Vous pouvez les adapter à vos besoins spécifiques et les intégrer à d'autres systèmes ou services.