askbug raport for admins

Solved3.87K viewsGeneraladmin Anspress feature mysql raport
0

Hello,

 

Does anyone made or know how to extract the followings from askbug, in order to build a raport:

  1. all the anspress participants email addresses
  2. total of new users registered during a week
  3. the total number of questions posted in a day
  4. average number of questions during a week
  5. top 3 viewed questions

I’ve tried something directly from mysql database, like:

  1. select user_nicename, user_email, user_registered from wp_users;

  2. select user_nicename, user_registered from wp_users WHERE user_registered  > (DATE(NOW()) РINTERVAL 7 DAY);

but for the rest of them I’m a little bit confused because (eg. number 3) I got all the posts, not only the questions and so on.

 

Thanks,

Question is closed for new answers.
selected answer

Applying directly to the mysql is not a good idea. It is better to use the standard functions

1

1) all the anspress participants email addresses

By participants I understand those who asked questions and those who gave answers (without commentators)

 

$emails= array();
$q = new WP_Query( array(
‘post_type’ => array(‘question’,’answer’),
‘posts_per_page’ => -1
) );
while ( $q->have_posts() ) {
$q->the_post();
array_push($emails, get_the_author_meta(‘user_email’));
}
$emails = array_unique($emails);
print_r($emails);

maybe the code is not the most optimized, but it completely solves your problem.

 

UPD optimized the code, now instead of 2 cycles 1

selected as best answer
0

Hi Siamion,

Thanks a lot for your comments, I’ll try today and I’ll let you.

0

4) average number of questions during a week

$q = new WP_Query( array(
‘post_type’ => ‘question’,
‘posts_per_page’ => -1,
‘date_query’ => array(
‘after’ => ‘1 weeks ago’,
),
) );
while ( $q->have_posts() ) {
$q->the_post();
the_title();
}

maybe the code is not the most optimized, but it completely solves your problem.

0

2) total of new users registered during a week

$blogusers = get_users(array(‘date_query’ => array( ‘after’ => ‘1 week ago’ )));
echo count($blogusers);

maybe the code is not the most optimized, but it completely solves your problem.