View difference between Paste ID: 4c9XAy9G and rR1mY2yN
SHOW: | | - or go back to the newest paste.
1
// Register Hook
2
add_filter( 'mycred_setup_hooks', 'register_rate_hook' );
3
function register_rate_hook( $installed )
4
{
5-
	$installed['complete_profile'] = array(
5+
	$installed['rate_post'] = array(
6
		'title'       => __( '%plural% for Rating a forum post'),
7
		'description' => __( 'This hook award points to users who rate posts', 'CommentPress Modern Theme' ),
8
		'callback'    => array( 'my_rate_class' )
9
	);
10
	return $installed;
11
}
12
13
// myCRED Custom Hook Class
14
class my_rate_class extends myCRED_Hook {
15
16
	/**
17
	 * Construct
18
	 */
19
	function __construct( $hook_prefs ) {
20
		parent::__construct( array(
21
			'id'       => 'rate_post',
22
			'defaults' => array(
23
				'creds'   => 1,
24
				'log'     => '%plural% for rating a post'
25
			)
26
		), $hook_prefs );
27
	}
28
29
	/**
30
	 * Hook into WordPress
31
	 */
32
	public function run() {	
33
		add_action( 'bbpress_post_rating_UpdateRating',  array( $this, 'rate_post' ) );
34
		add_action( 'bp_include', array( $this, 'rate_post' ) );
35
	}
36
37
	/**
38
	 * Check if the user qualifies for points
39
	 */
40
	public function rate_post( $user_id ) {
41
		// Check if user is excluded (required)
42
		if ( $this->core->exclude_user( $user_id ) ) return;
43
44
		// Execute
45
		$this->core->add_creds(
46
			'rating_post',
47
			$user_id,
48
			$this->prefs['creds'],
49
			$this->prefs['log']
50
		);
51
	}
52
53
	/**
54
	 * Add Settings
55
	 */
56
	 public function preferences() {
57
		// Our settings are available under $this->prefs
58
		$prefs = $this->prefs; ?>
59
60
<!-- First we set the amount -->
61
<label class="subheader"><?php echo $this->core->plural(); ?></label>
62
<ol>
63
	<li>
64
		<div class="h2"><input type="text" name="<?php echo $this->field_name( 'creds' ); ?>" id="<?php echo $this->field_id( 'creds' ); ?>" value="<?php echo $this->core->format_number( $prefs['creds'] ); ?>" size="8" /></div>
65
	</li>
66
</ol>
67
<!-- Then the log template -->
68
<label class="subheader"><?php _e( 'Log template', 'mycred' ); ?></label>
69
<ol>
70
	<li>
71
		<div class="h2"><input type="text" name="<?php echo $this->field_name( 'log' ); ?>" id="<?php echo $this->field_id( 'log' ); ?>" value="<?php echo $prefs['log']; ?>" class="long" /></div>
72
	</li>
73
</ol>
74
<?php
75
	}
76
77
	/**
78
	 * Sanitize Preferences
79
	 */
80
	public function sanitise_preferences( $data ) {
81
		$new_data = $data;
82
83
		// Apply defaults if any field is left empty
84
		$new_data['creds'] = ( !empty( $data['creds'] ) ) ? $data['creds'] : $this->defaults['creds'];
85
		$new_data['log'] = ( !empty( $data['log'] ) ) ? sanitize_text_field( $data['log'] ) : $this->defaults['log'];
86
87
		return $new_data;
88
	}
89
}