Title: JSON Inválido
Last modified: 24 novembro, 2022

---

# JSON Inválido

 *  [Felipe Lenin](https://br.wordpress.org/support/users/felipe-lenin/)
 * (@felipe-lenin)
 * [3 anos, 7 meses atrás](https://br.wordpress.org/support/topic/json-invalido/)
 * Boa Tarde
 * É no caso eu ja verifiquei os plugins, e não são.
    É estou usando o hook save_post,
   ele faz o seguinte, ele reconhece alguns termos que estão entre span com classes
   especificas e usando o insert_term eu crio um termo ja inderindo ele dentro do
   post. Isso funciona corretamente, mas ai vem a questão: No caso eu preciso que
   toda vez que eu salvar um post, pode ser no save_post ou o after_insert_post 
   que ele ativa após a inserção no banco; eu preciso enviar uma requisição get 
   e post para um endpoint externo. Ai que vem a questão, eu ja fiz isso via CURL,
   mas não sei se é a melhor maneira de fazer isso e ele esta funcionando esta enviando
   o JSON, mas ainda sim ele me retorna o erro JSON INVÁLIDO. Poderiam me ajudar?
 *     ```
       add_action('save_post','save_post_callback');
       add_action('wp_after_insert_post', 'send_post');
   
       function save_post_callback($post_id){
           global $post; 
   
           if ($post->post_type != 'noticia'){
               return;
           }
           else{
   
             $str = !empty(html_entity_decode($post->post_content)) ? html_entity_decode($post->post_content) : 'null';
             $d = new DOMDocument();
             $d->loadHTML( $str );
             $x = new DOMXpath($d);
             $hash = $x->evaluate('//span[contains(@class, "hash")]');
             $tickers = $x->evaluate('//span[contains(@class, "dollar")]');
             $siglas = $x->evaluate('//span[contains(@class, "tag")]');
   
             if( count( $hash ) ){
               $array = array();
               $int = count( $hash );
               foreach ( $hash as $el ) {
                 $term_name = str_replace('#', '', $el->nodeValue );
   
                 for ($i=0; $i < $int; $i++) { 
                   array_push($array, $term_name);
                 }
   
                 if(!term_exists( $term_name, 'tags_notice')){
   
                   wp_insert_term($term_name, 'tags_notice');
                   wp_set_object_terms( $post->ID, $array, 'tags_notice', false );
   
                 }else{
                   wp_set_object_terms( $post->ID, $array, 'tags_notice', false );
                 }
   
   
               }
             }
   
             if( count( $tickers ) ){
               $array = array();
               $int = count( $tickers );
               foreach ( $tickers as $ticker ) {
                 $term_name = str_replace('$', '', $ticker->nodeValue );
   
                 for ($i=0; $i < $int; $i++) { 
                   array_push($array, $term_name);
                 }
   
                 if(!term_exists( $term_name, 'ativos_notice')){
   
                   wp_insert_term($term_name, 'ativos_notice');
                   wp_set_object_terms( $post->ID, $array, 'ativos_notice', false );
   
   
                 }else{
   
                   wp_set_object_terms( $post->ID, $array, 'ativos_notice', false );
   
                 }
   
               }
             }
   
             if(  count( $siglas ) ){
               $array = array();
               $int = count( $siglas );
               foreach ( $siglas as $sigla ) {
   
                 for ($i=0; $i < $int; $i++) { 
                   array_push($array, $sigla->nodeValue);
                 }
   
                 if(!term_exists( $sigla->nodeValue, 'siglas_notice')){
   
                   wp_insert_term($sigla->nodeValue, 'siglas_notice');
                   wp_set_object_terms( $post->ID, $array, 'siglas_notice', false );
   
                 }else{
   
                   wp_set_object_terms( $post->ID, $array, 'siglas_notice', false );
   
                 }
               }
             }
   
           }
       }
   
       $id_notice = $_GET['post']; //is working
   
       function send_post($id_notice){
             $curl = curl_init();
   
             curl_setopt_array($curl, array(
                   CURLOPT_URL => 'http://localhost/mensageria/wp-json/wp/v2/noticias/'.$id_notice.'/?acf_format=standard',
                   CURLOPT_RETURNTRANSFER => true,
                   CURLOPT_ENCODING => '',
                   CURLOPT_MAXREDIRS => 10,
                   CURLOPT_TIMEOUT => 0,
                   CURLOPT_FOLLOWLOCATION => true,
                   CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                   CURLOPT_CUSTOMREQUEST => 'GET',
             ));
   
             $response = curl_exec($curl);
   
             curl_close($curl);
   
             $urlendpoint = get_field('endpoint_url_notices', 'option'); //toeknkeycloack
   
             $data = $response;
             $url =  'http://localhost:8081/NewPost?'; //$urlendpoint;
   
             httpPost($url, $data);
       }
   
       function httpPost($url, $data)
       {
   
           $tokenendpoint = '****';
           $typetoken = 'Content-Type: application/json';
   
           $curl = curl_init();
   
           curl_setopt_array($curl, array(
               CURLOPT_URL => $url,
               CURLOPT_RETURNTRANSFER => true,
               CURLOPT_POSTFIELDS => $data,
               CURLOPT_HTTPHEADER => array($tokenendpoint, $typetoken),
               CURLOPT_ENCODING => '',
               CURLOPT_MAXREDIRS => 10,
               CURLOPT_TIMEOUT => 0,
               CURLOPT_FOLLOWLOCATION => true,
               CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
               CURLOPT_CUSTOMREQUEST => 'POST',
               CURLOPT_RETURNTRANSFER => true,
           ));
   
           $response = curl_exec($curl);
   
           // Further processing ...
           if ($response == "OK") { 
             echo '<div class="notice notice-success is-dismissible">
                     <p>Conteudo enviado!</p>
                   </div> ';
           } else { 
             echo '<div class="notice notice-error is-dismissible">
                     <p>Conteudo não Enviado</p>
                   </div>';
           }
   
           curl_close($curl);
   
           return $response;
       }
       ```
   
 * A página que eu preciso de ajuda: _[[fazer login](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fbr.wordpress.org%2Fsupport%2Ftopic%2Fjson-invalido%2F%3Foutput_format%3Dmd&locale=pt_BR)
   para ver o link]_

O tópico ‘JSON Inválido’ está fechado para novas respostas.

## Tags

 * [#restapi #term #save_post #curl #tax #taxonomie](https://br.wordpress.org/support/topic-tag/restapi-term-save_post-curl-tax-taxonomie/)

 * Em: [Desenvolvendo com WordPress](https://br.wordpress.org/support/forum/questoes-avancadas/)
 * 0 resposta
 * 1 participante
 * Última resposta de: [Felipe Lenin](https://br.wordpress.org/support/users/felipe-lenin/)
 * Última atividade: [3 anos, 7 meses atrás](https://br.wordpress.org/support/topic/json-invalido/)
 * Estado: não resolvido

## Tópicos

### Tópicos mais populares

### Tópicos sem respostas

### Tópicos não relacionados a suporte

### Tópicos resolvidos

### Tópicos não resolvidos

### Todos os tópicos
