Publicações pós-agendamento para exibir novos membros

Então eu encontrei essa idéia. Ele funciona como autoresponder, que enviam conteúdo já preparado e agendado a cada 7 (digamos) dias para todos os assinantes. E para um novo assinante, ele parte do conteúdo 1, depois, envia o conteúdo 2, etc.

Eu preciso disso em wordpress, exceto que haveria inscrições e, após o registro, o novo membro poderia ver apenas as primeiras postagens. Após 7 dias, haveria mais posts para ele e assim por diante. Outro novo membro não podia ver essas novas postagens, até esperar pelos 7 dias.

Você consegue a ideia? Talvez você possa me ajudar a encontrar um plugin para isso se ele existir. Se não houver voluntários para criar um plugin assim? De qualquer forma, eu realmente apreciaria sua ajuda!

Solutions Collecting From Web of "Publicações pós-agendamento para exibir novos membros"

você pode contar o número de postagens que o usuário pode ver assim: (int) ( ( time() - strtotime( get_userdata(get_current_user_id( ))->user_registered ) ) / ( 7 * 24 * 60 * 60 ) ) + 1;

Então, você adiciona filtro para pre_get_posts para mostrar ao usuário todas as postagens que completem as semanas que ele gastou em seu site.

E para evitar o conteúdo de links inseridos personalizados, você adiciona filtro ao conteúdo, onde você consegue se a postagem atual estiver em postagens disponíveis para usuários atuais.

E é claro que você mostra tudo para os administradores

 add_filter( 'pre_get_posts', 'prefix_pre_get_posts' ); function prefix_pre_get_posts( $query ) { if( ! is_admin() && 'post' == $query->post_type ) { // is_main_query() ? $post_pre_page = null; if( is_user_logged_in() && ! current_user_can( 'administrator' ) ) { $post_pre_page = (int) ( ( time() - strtotime( get_userdata(get_current_user_id( ))->user_registered ) ) / ( 7 * 24 * 60 * 60 ) ) + 1; } elseif( ! is_user_logged_in() ) { $post_pre_page = 0; } if( ! is_null( $post_pre_page ) ) { $query->set( 'posts_per_page', $post_pre_page ); // Show pastest posts first $query->set( 'order', 'DESC' ); $query->set( 'orderby', 'date' ); } } } add_filter( 'the_content', 'prefix_filter_the_content' ); function prefix_filter_the_content( $content ) { if( current_user_can( 'administrator' ) ) return $content; $current_id = get_the_id(); $allowed_posts = get_posts( array( 'posts_per_page' => -1 ) ); $flag = false; if( ! empty( $allowed_posts ) ) foreach( $allowed_posts as $p ) if( $current_id == $p->ID ){ $flag = true; break; } if( ! $flag ) { return __( 'Your are not able to see these post', 'your-textdomain' ); } return $content; } 

Basta adicionar esses códigos às suas functions.php .

PS: mudar 7 dias para 3 (por ex) alterá-lo aqui ‘( 7 * 24 * 60 * 60)’ to ‘( 3 * 24 * 60 * 60)’

Use um meta meta de postagem para armazenar um valor numérico que represente o número de dias em que alguém deve ter sido um membro antes de poder ver esta publicação específica.

Use pre_get_posts para verificar a idade do membro e ajustar a $query acordo para include uma meta_query que apenas mostra posts com um valor menor ou igual à idade do membro.

Posso criar um pseudo-código, se necessário.