Boa noite
Alguem pode me ajudar, no caso eu tentei usar alguns hooks como pre_delete_term(). wp_delete_term(), mas não obtive nenhum sucesso. Então tive a ideia de criar um Term, 'Lixeira' e quando eu clicar para excluir ele enviar para essa lixeira como filho dela. Fiz isso usando o $wpdb->update() e funcionou, mas o maior problema é que eu to chamando essa função com um button onclick() assim:
add_filter( "cat_notice_row_actions", 'trash_row_actions', 10, 2 );
function trash_row_actions( $actions, $user_object ) {
// Remove the Edit action.
unset( $actions['delete'] );
$catTrash = 10;
$id = $user_object->term_id;
$taxName = $user_object->taxonomy;
$taxParent = $user_object->parent;
$count = $user_object->count;
if($user_object->slug <> 'lixeira' && $taxParent <> $catTrash){
$actions['updatecat'] = "<form action='#' method='get'>
<input type='hidden' name='taxonomy' value='$taxName'>
<input type='hidden' name='post_type' value='noticia'>
<input type='hidden' name='termID' value='$id'>
<input type='hidden' name='trashID' value='$catTrash'>
<input type='hidden' name='count' value='$count'>
<input style='border: none!important;
background: none!important;
color: red!important;
padding: 0!important;
cursor: pointer;' class='btadd' id='$id-idcat' type='submit' value='Excluir' onclick='add_trash_bin()'>
</form>";
}
return $actions;
}
Passando os dados via get, por que o wordpress já usa algumas coisas assim, e a função ela deveria funcionar quando clicar; mas ai que esta um dos problemas, ela só funciona se eu adicionar a função no hook admin_init só que fazendo isso ele fica me retornando a mensagem de erro. Então preciso de um help se alguém souber me ajudar a arrumar a hora correta de aparecer as msg, e a função funcionar sem o admin_init se for posssível usar sem o hook
add_action( 'admin_init', 'add_trash_bin' );
function add_trash_bin() {
global $wpdb;
global $pagenow;
$table_name = $wpdb->prefix . 'term_taxonomy';
$id = isset($_GET['termID']) ? $_GET['termID'] : NULL;
$taxName = isset($_GET['taxonomy']) ? $_GET['taxonomy'] : NULL;
$trashID = isset($_GET['trashID']) ? $_GET['trashID'] : NULL;
$count = isset($_GET['count']) ? $_GET['count'] : 0;
if($id <> NULL && $taxName <> NULL && $trashID <> NULL)
{
$wpdb->update(
$table_name,
array(
'parent' => $trashID,
'count' => 0
), array(
'term_id' => $id
)
);
//$query = $wpdb->update($table_name, array('parent' => $trashID), array('term_id' => $id));
clean_taxonomy_cache( $taxName );
if($pagenow === 'edit-tags.php'){
echo ' <div class="notice notice-success">
<p>Categoria alocada na Lixeira</p>
</div> ';
};
} else {
clean_taxonomy_cache( $taxName );
if($pagenow === 'edit-tags.php'){
echo '<div class="notice notice-error">
<p>Esta categoria tem notícias vinculadas, desvincú-las e tente novamente</p>
</div> ';
};
}
}