Plugin Author
myCred
(@designbymerovingi)
Hi.
There is no built-in way to restrict points for specific forums.
You could use the mycred_add filter which fires before points are awarded / deducted from a user and enforce this though.
Here is one example:
Paste this code snippet into your themes functions.php file then go to your Forums and edit the forum that you want to restrict points in. Add a custom field called “NO_MYCRED_POINTS” and set the value to ‘yes’. Once you have saved you should gain no more points for any action taken in this forum.
Thread Starter
varma
(@evildon)
BUT in bbpress forum section there is no custom field option to set ? or i’m missing something.
Also is there any way to add the Daily Limits to the Topic section too..
Plugin Author
myCred
(@designbymerovingi)
Add this to your code:
add_filter( 'bbp_register_forum_post_type', 'mycred_add_custom_field_to_forums' );
function mycred_add_custom_field_to_forums( $attr ) {
$attr['supports'][] = 'custom-fields';
return $attr;
}
It will add support for custom-fields in forums. It goes in your themes functions.php file.
Thread Starter
varma
(@evildon)
Superb, That worked out pretty well.
Test on on bbpress forums and its 100% working.
Also is there any way to add the Daily Limits to the Topic section too?
Plugin Author
myCred
(@designbymerovingi)
Are you looking to set a maximum number of topics each day that gives points?
Thread Starter
varma
(@evildon)
Yes daily limit for a user in getting points by posting new topics. ( or the maximum number of topics each day that gives points for a single user)
Plugin Author
myCred
(@designbymerovingi)
Hi.
First of all, apologies for the delay in my reply.
You would need to hook into myCRED before points are awarded and enforce a daily limit. If a user exceeds or reaches this limit then you would just decline further point gains.
Example:
add_filter( 'mycred_add', 'mycred_enforce_daily_bbp_topic_limit', 99, 3 );
function mycred_enforce_daily_bbp_topic_limit( $reply, $request, $mycred ) {
// If already declined or this is not points for new topics, bail
if ( $reply === false || $request['ref'] != 'new_forum_topic' ) return $reply;
// Get the details we need
$user_id = absint( $request['user_id'] );
$topic_id = absint( $request['ref_id'] );
$now = date_i18n( 'U' );
$a_day_ago = date_i18n( 'U', strtotime( '-24 hours' ) );
// The daily limit
$daily_limit = 5;
// Run Query
global $wpdb;
// Count the number of log entries this
// user has for gaining points for new forum
// topics between two timestamps: now and
// 24 hours ago.
$count = $wpdb->get_var( $wpdb->prepare( "
SELECT COUNT( * )
FROM {$mycred->log_table}
WHERE ref = %s
AND user_id = %d
AND time BETWEEN %d AND %d;", '', $user_id, $a_day_ago, $now ) );
// Now we just compare the result against the limit
if ( $count >= $daily_limit )
return false;
return true;
}
If used, the above code goes into your themes functions.php file.
Thread Starter
varma
(@evildon)
Really thanks that will do… 100%
Will test it out and let you know soon…