Ganchos del plugin Duplicator Pro
El plugin Duplicator Pro permite a los desarrolladores acceder a eventos específicos durante sus ciclos de ejecución. Aquí tienes una guía sencilla de los ganchos disponibles, que se admiten en Duplicator Pro versión 4.5.2 y posteriores.
Ganchos
Estos son los ganchos que puedes usar con Duplicator Pro:
| Gancho | Descripción |
|---|---|
| duplicator_pro_build_before_start | Se activa justo antes de que comience el proceso de compilación, tanto para compilaciones manuales como programadas. |
| duplicator_pro_build_completed | Se activa al final del proceso de compilación, tanto para compilaciones manuales como programadas. |
| duplicator_pro_build_fail | Se activa cada vez que una compilación falla, tanto para compilaciones manuales como programadas. |
| duplicator_pro_first_login_after_install | Se activa después de que una instalación se ha ejecutado correctamente y el usuario accede al administrador de WordPress por primera vez. |
Configuración
Los ganchos se pueden configurar en diferentes lugares. La forma más rápida de empezar es añadiéndolos al archivo functions.php de tu tema. También puedes añadir ganchos desde plugins personalizados o comerciales. Los ganchos de Duplicator Pro utilizan la llamada add_action de WordPress, por lo que puedes usarlos en cualquier lugar de la pila PHP de WordPress.
Inicio rápido
Para configurar los ganchos y validar que funcionan con tu sitio de WordPress, sigue estos pasos:
- Abre el archivo functions.php de tu tema activo.
- Añade el siguiente código al final del archivo:
// 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. Crea una copia de seguridad para activar los ganchos de compilación.
4. Abre tu archivo de registro de errores PHP o de depuración para ver los resultados de las funciones.
Ejemplos
A continuación se muestran algunos códigos de ejemplo para varios ganchos. Puedes personalizar estos ejemplos para adaptarlos a tus necesidades.
Ejemplo 1: Limpiar datos transitorios antes de crear una copia de seguridad.
Este ejemplo muestra cómo limpiar datos transitorios antes de crear una copia de seguridad.
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');
Ejemplo 2: Registrar el estado de la compilación en una API externa (p. ej., Slack)
Este ejemplo muestra cómo registrar el estado de la compilación en una API externa como 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');
Estas muestras demuestran la flexibilidad y el poder de los ganchos de Duplicator Pro. Puede personalizarlos para satisfacer sus necesidades específicas e integrarlos con otros sistemas o servicios.