Resolvendo conflito entre disqus e avaliações do Woocommerce

Existe um conflito já antigo entre os plugins do WordPress Disqus e avaliações do Woocommerce. Neste tutorial vou mostrar uma maneira simples para resolver o problema para que ambos possam conviver em harmonia em seu site ou blog.

O problema é que o Disqus é um plugin de comentários e, como tal, remove o formulário e renderização de comentários padrão do WordPress. O Woocommerce, por sua vez, confia no sistema de comentários do WordPress para criar um sistema de avaliações para seus produtos, assim os usuários podem descrever o que acharam sobre o produto que compraram em seu site. Quando ambos os plugins estão ativados em um WordPress qualquer, o Disqus funciona perfeitamente para exibir o formulário e renderização dos comentários, porém, ele faz com que as avaliações do Woocommerce simplesmente desapareçam, ou seja, quando um usuário clicar na aba avaliações para visualizar avaliações ou criar sua própria avaliação, ele não verá nada além de um trecho em branco no seu site.

O processo que vou descrever envolve simplesmente adicionar algumas linhas de código no arquivo functions.php de qualquer tema que você estiver utilizando. Isso deverá resolver o problema do conflito entre os plugins mencionados.

 Disqus e avaliações do Woocommerce em harmonia

Para resolver este problema, simplesmente adicione o seguinte trecho de código ao final do arquivo functions.php do seu tema atual:

add_action('the_post', 'teo_remove_disqus_woocommerce');
remove_action('pre_comment_on_post', 'dsq_pre_comment_on_post');

function teo_remove_disqus_woocommerce() {
    global $post, $wp_query;
    
    if (get_post_type() == 'product') { 
        remove_filter('comments_template', 'dsq_comments_template');
    }
}

Salve o arquivo e verifique.

As avaliações do Woocommerce deverão ter voltado a funcionar com o formulário e sistema de comentários padrão do WordPress. Se você conferir também os comentários em posts, o Disqus também deverá estar funcionando perfeitamente.

A solução acima simplesmente remove o Disqus do tipo de post “product” que é o que o Woocommerce utiliza para mostrar seus novos produtos, resolvendo assim o conflito.

Espero ter ajudado e até o próximo!