PluginProbe
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI / 8.0.5
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI v8.0.5
8.0.5 8.0.4 8.0.3 8.0.1 8.0.2 8.0.0 7.9.9.7 7.9.9.6 7.9.9.5 7.9.9.4 7.9.9.3 7.9.9.2 7.9.9.1 7.9.9 7.9.8 7.9.7 7.9.6 7.9.5 7.9.4 7.9.3 7.9.2 7.9.1 7.9.0 7.8.9 7.8.8 All 47 releases
← All changes | integrations/wp-postratings/includes/requirements.php +99 -0 7.9.1 → 8.0.5 View file →
@@ -1,0 +1,99 @@
1 +<?php
2 +/**
3 + * Requirements
4 + *
5 + * @package GamiPress\WP_PostRatings\Requirements
6 + * @since 1.0.0
7 + */
8 +// Exit if accessed directly
9 +if( !defined( 'ABSPATH' ) ) exit;
10 +
11 +/**
12 + * Add the rate field to the requirement object
13 + *
14 + * @since 1.0.0
15 + *
16 + * @param $requirement
17 + * @param $requirement_id
18 + *
19 + * @return array
20 + */
21 +function gamipress_wp_postratings_requirement_object( $requirement, $requirement_id ) {
22 +
23 + // Specific rate
24 + if( isset( $requirement['trigger_type'] )
25 + && ( $requirement['trigger_type'] === 'gamipress_wp_postratings_rate_specific'
26 + || $requirement['trigger_type'] === 'gamipress_wp_postratings_specific_rate_specific'
27 + || $requirement['trigger_type'] === 'gamipress_wp_postratings_user_rate_specific'
28 + || $requirement['trigger_type'] === 'gamipress_wp_postratings_user_specific_rate_specific' ) ) {
29 + // The rate field
30 + $requirement['wp_postratings_rate'] = get_post_meta( $requirement_id, '_gamipress_wp_postratings_rate', true );
31 + }
32 +
33 + // Minimum rate
34 + if( isset( $requirement['trigger_type'] )
35 + && ( $requirement['trigger_type'] === 'gamipress_wp_postratings_minimum_rate'
36 + || $requirement['trigger_type'] === 'gamipress_wp_postratings_specific_minimum_rate'
37 + || $requirement['trigger_type'] === 'gamipress_wp_postratings_user_minimum_rate'
38 + || $requirement['trigger_type'] === 'gamipress_wp_postratings_user_specific_minimum_rate' ) ) {
39 + // The rate field
40 + $requirement['wp_postratings_rate'] = get_post_meta( $requirement_id, '_gamipress_wp_postratings_rate', true );
41 + }
42 +
43 + return $requirement;
44 +}
45 +add_filter( 'gamipress_requirement_object', 'gamipress_wp_postratings_requirement_object', 10, 2 );
46 +
47 +/**
48 + * Rate field on requirements UI
49 + *
50 + * @since 1.0.0
51 + *
52 + * @param $requirement_id
53 + * @param $post_id
54 + */
55 +function gamipress_wp_postratings_requirement_ui_fields( $requirement_id, $post_id ) {
56 +
57 + $value = intval( get_post_meta( $requirement_id, '_gamipress_wp_postratings_rate', true ) ); ?>
58 +
59 + <input type="text" class="input-wp-postratings-rate" value="<?php echo $value; ?>"/>
60 +
61 + <?php
62 +}
63 +add_action( 'gamipress_requirement_ui_html_after_achievement_post', 'gamipress_wp_postratings_requirement_ui_fields', 10, 2 );
64 +
65 +/**
66 + * Custom handler to save the rate on requirements UI
67 + *
68 + * @since 1.0.0
69 + *
70 + * @param $requirement_id
71 + * @param $requirement
72 + */
73 +function gamipress_wp_postratings_ajax_update_requirement( $requirement_id, $requirement ) {
74 +
75 + $requirement = wp_parse_args( $requirement, array(
76 + 'wp_postratings_rate' => '',
77 + ) );
78 +
79 + // Specific rate
80 + if( isset( $requirement['trigger_type'] )
81 + && ( $requirement['trigger_type'] === 'gamipress_wp_postratings_rate_specific'
82 + || $requirement['trigger_type'] === 'gamipress_wp_postratings_specific_rate_specific'
83 + || $requirement['trigger_type'] === 'gamipress_wp_postratings_user_rate_specific'
84 + || $requirement['trigger_type'] === 'gamipress_wp_postratings_user_specific_rate_specific' ) ) {
85 + // Save the rate field
86 + update_post_meta( $requirement_id, '_gamipress_wp_postratings_rate', $requirement['wp_postratings_rate'] );
87 + }
88 +
89 + // Minimum rate
90 + if( isset( $requirement['trigger_type'] )
91 + && ( $requirement['trigger_type'] === 'gamipress_wp_postratings_minimum_rate'
92 + || $requirement['trigger_type'] === 'gamipress_wp_postratings_specific_minimum_rate'
93 + || $requirement['trigger_type'] === 'gamipress_wp_postratings_user_minimum_rate'
94 + || $requirement['trigger_type'] === 'gamipress_wp_postratings_user_specific_minimum_rate' ) ) {
95 + // Save the rate field
96 + update_post_meta( $requirement_id, '_gamipress_wp_postratings_rate', $requirement['wp_postratings_rate'] );
97 + }
98 +}
99 +add_action( 'gamipress_ajax_update_requirement', 'gamipress_wp_postratings_ajax_update_requirement', 10, 2 );