setembro 5, 2020

Como limitar o número de Postagens por Usuário - #2

E aí Pessoal tudo bem com vocês?

Hoje vamos incrementar uma postagem aqui do blog, que mostrei como limitar o número de postagem por usuário.

Acesse aqui para ver a primeira parte dessa postagem.

Vamos personalizar uma mensagem de erro quando o usuário atingir esta quantidade limite, pois no tutorial acima é mostrado a mensagem de erro padrão do wordpress, através da função wp_die().

Ao invés de mostrar o erro dentro da função wp_die(), vamos redirecionar para a página inicial do painel com o nosso parâmetro (limite - linha 20) .

///// LIMITA O NÚMERO DE POSTAGENS POR USUÁRIO
add_action( 'current_screen', 'limita_post' );
function limita_post() {
  global $user, $wpdb;    
  $currentScreen = get_current_screen();
  $user = wp_get_current_user();

  // NUMERO LIMITE DE POSTAGENS
  $limite_de_posts = 20;
  //VERIFICA A VISUALIZAÇÃO DO USUÁRIO
  //RESTRINGE APENAS A INSERÇÃO DE POSTAGENS
  //ATUALIZAÇÃO OU EXCLUSÃO CONTINUAM NORMAL
  if( $currentScreen->post_type == "post" && $currentScreen->action == 'add') {  
     
    $wherePost = get_posts_by_author_sql('post', true, $user->ID );
    // VERIFICA A QUANTIDADE DE POSTAGENS DO USUARIO ATUAL
    $total_post_user = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->posts $wherePost" );
    // VERIFICA SE A QUANTIDADE LIMITE FOI ATINGIDA
     if ( $total_post_user >= $limite_de_posts ) { 
        wp_redirect(admin_url('?limite'));
        die();
    }      
  }  
}

Exibindo uma mensagem personalizada.

///// MOSTRA MENSAGEM DE LIMITE ATINGIDO
add_action('admin_init', 'check_limite');
function check_limite(){ 
  //VERIFICA SE O PARAMETRO limite EXISTE 
  if(isset($_GET['limite'])){  
    function limite_qtd_post() {          
          echo '<div class="error notice" style="padding:5px 20px !important;">
                 <p style="font-size:18px; font-weight:bold">Você atingiu o número limite de <i>Posts</i>.</p>
                </div>';
    }           
    add_action( 'admin_notices', 'limite_qtd_post' );    
  } 
}

Pronto, agora quando o usuário chegar na quantidade limite, ele será redirecionado para a pagina inicial do painel e será informado que atingiu a quantidade limite de posts.

Bem, pessoal. Espero que tenham gostado e que este código possa ajudá-los. Dúvidas ou sugestões deixem nos comentários. Até a próxima.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram