El plugin Duplicator Pro permite a los desarrolladores acceder a eventos específicos durante sus ciclos de ejecución. He aquí una guía sencilla de los ganchos disponibles, que son compatibles con Duplicator Pro versión 4.5.2 y superiores.
Ganchos
Estos son los ganchos que puede utilizar 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 las compilaciones manuales como para las programadas. |
duplicator_pro_build_completed | Se activa al final del proceso de construcción, tanto para construcciones manuales como programadas. |
duplicator_pro_build_fail | Se activa cuando falla una compilación, tanto manual como programada. |
duplicator_pro_first_login_after_install | Se activa después de que una instalación se haya ejecutado correctamente y el usuario acceda al administrador de WordPress por primera vez. |
Configurar
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 hooks desde plugins personalizados o comerciales. Los hooks de Duplicator Pro usan la llamada add_action de WordPress, por lo que puede usarlos en cualquier parte de la pila PHP de WordPress.
Inicio rápido
Para configurar los hooks y validar que funcionan con tu sitio WordPress, sigue estos pasos:
- Abra el archivo functions.php de su 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. Cree una copia de seguridad para activar los ganchos de compilación.
4. Abra su archivo de registro de errores o depuración de PHP para ver los resultados de las funciones.
Muestras
A continuación se muestran algunos códigos de ejemplo para varios ganchos. Puede personalizar estos ejemplos para adaptarlos a sus necesidades.
Ejemplo 1: Limpie los datos transitorios antes de crear una copia de seguridad.
Este ejemplo muestra cómo limpiar los 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 (por ejemplo, Slack)
Este ejemplo muestra cómo registrar el estado de construcció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 potencia de los ganchos de Duplicator Pro. Puede personalizarlos para adaptarlos a sus necesidades específicas e integrarlos con otros sistemas o servicios.