Hooks do Plugin Duplicator Pro
O plugin Duplicator Pro permite que os desenvolvedores acessem eventos específicos durante seus ciclos de execução. Aqui está um guia simples para os hooks disponíveis, que são suportados no Duplicator Pro versão 4.5.2 e superior.
Hooks
Aqui estão os hooks que você pode usar com o Duplicator Pro:
| Hook | Descrição |
|---|---|
| duplicator_pro_build_before_start | Disparado logo antes do processo de criação começar, tanto para criações manuais quanto agendadas. |
| duplicator_pro_build_completed | Disparado no final do processo de criação, tanto para criações manuais quanto agendadas. |
| duplicator_pro_build_fail | Disparado sempre que uma criação falha, tanto para criações manuais quanto agendadas. |
| duplicator_pro_first_login_after_install | Disparado após uma instalação ter sido executada com sucesso e o usuário acessar o admin do WordPress pela primeira vez. |
Configuração
Os hooks podem ser configurados em diferentes locais. A maneira mais rápida de começar é adicionando-os ao arquivo functions.php do seu tema. Você também pode adicionar hooks de plugins personalizados ou comerciais. Os hooks do Duplicator Pro usam a chamada add_action do WordPress, então você pode usá-los em qualquer lugar na pilha PHP do WordPress.
Início Rápido
Para configurar hooks e validar que eles estão funcionando com seu site WordPress, siga estas etapas:
- Abra o arquivo functions.php do seu tema ativo.
- Adicione o seguinte código no final do arquivo:
// Antes do build iniciar callback da função
function __duplicator_pro_build_before_start_test_function() {
$var = "------------------------------------------------";
$var .= "Testando: hook duplicator_pro_build_before_start";
$var .= "------------------------------------------------";
error_log(print_r($var, true));
}
// Build completa callback da função
function __duplicator_pro_build_completed_test_function() {
$var = "------------------------------------------------";
$var .= "Testando: hook duplicator_pro_build_before_start";
$var .= "------------------------------------------------";
error_log(print_r($var, true));
}
// Adicionar Ações
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. Crie um backup para disparar os hooks de criação.
4. Abra seu arquivo de log de erros ou depuração PHP para ver os resultados das funções.
Exemplos
Abaixo estão alguns códigos de exemplo para vários hooks. Você pode personalizar esses exemplos para atender às suas necessidades.
Exemplo 1: Limpar Dados Transitórios Antes de Criar um Backup.
Este exemplo mostra como limpar dados transitórios antes de criar um 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');
Exemplo 2: Registrar Status da Criação em uma API Externa (ex: Slack)
Este exemplo mostra como registrar o status da criação em uma API externa como o Slack.
function sendSlackMessage($msg) {
// Ver API Webhook do 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("DUPLICATOR BUILD START [" . date("Y-m-d H:i:s") . "] Nome do pacote: " . $package->Name);
}
function sendSlackFailMessage(DUP_PRO_Package $package) {
sendSlackMessage("DUPLICATOR BUILD FAIL Nome do pacote: " . $package->Name);
}
function sendSlackCompleteMessage(DUP_PRO_Package $package) {
sendSlackMessage("DUPLICATOR BUILD COMPLETE [" . date("Y-m-d H:i:s") . "] Nome do pacote: " . $package->Name);
}
add_action('duplicator_pro_build_before_start', 'sendSlackStartMessage');
add_action('duplicator_pro_build_fail', 'sendSlackFailMessage');
add_action('duplicator_pro_build_completed', 'sendSlackCompleteMessage');
Esses exemplos demonstram a flexibilidade e o poder dos hooks do Duplicator Pro. Você pode personalizá-los para atender às suas necessidades específicas e integrá-los com outros sistemas ou serviços.