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:
// Antes de que comience la compilación, función de devolución de llamada
function __duplicator_pro_build_before_start_test_function() {
$var = "------------------------------------------------";
$var .= "Probando: hook duplicator_pro_build_before_start";
$var .= "------------------------------------------------";
error_log(print_r($var, true));
}
// Cuando la compilación se completa, función de devolución de llamada
function __duplicator_pro_build_completed_test_function() {
$var = "------------------------------------------------";
$var .= "Probando: hook duplicator_pro_build_before_start";
$var .= "------------------------------------------------";
error_log(print_r($var, true));
}
// Añadir acciones
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) {
// Ver API de Webhook de 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("COMPILACIÓN DE DUPLICATOR INICIADA [" . date("Y-m-d H:i:s") . "] Nombre del paquete: " . $package->Name);
}
function sendSlackFailMessage(DUP_PRO_Package $package) {
sendSlackMessage("FALLO DE COMPILACIÓN DE DUPLICATOR Nombre del paquete: " . $package->Name);
}
function sendSlackCompleteMessage(DUP_PRO_Package $package) {
sendSlackMessage("COMPILACIÓN DE DUPLICATOR COMPLETADA [" . date("Y-m-d H:i:s") . "] Nombre del paquete: " . $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.