Como fazer o tratamento de erros do $wpdb
-
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> '; }; } }
A página que eu preciso de ajuda: [fazer login para ver o link]
- O tópico ‘Como fazer o tratamento de erros do $wpdb’ está fechado para novas respostas.