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/wpep/includes/requirements.php +108 -0 7.9.4 → 8.0.5 View file →
@@ -1,0 +1,108 @@
1 +<?php
2 +/**
3 + * Requirements
4 + *
5 + * @package GamiPress\WPEP\Requirements
6 + * @since 1.0.0
7 + */
8 +// Exit if accessed directly
9 +if( !defined( 'ABSPATH' ) ) exit;
10 +
11 +/**
12 + * Add custom fields 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_wpep_requirement_object( $requirement, $requirement_id ) {
22 +
23 + if( isset( $requirement['trigger_type'] )
24 + && ( $requirement['trigger_type'] === 'gamipress_wpep_complete_assessment_min_grade'
25 + || $requirement['trigger_type'] === 'gamipress_wpep_complete_specific_assessment_min_grade'
26 + || $requirement['trigger_type'] === 'gamipress_wpep_complete_assessment_max_grade'
27 + || $requirement['trigger_type'] === 'gamipress_wpep_complete_specific_assessment_max_grade' ) ) {
28 +
29 + // Minimum/Maximum grade percent
30 + $requirement['wpep_score'] = get_post_meta( $requirement_id, '_gamipress_wpep_score', true );
31 +
32 + }
33 +
34 + if( isset( $requirement['trigger_type'] )
35 + && ( $requirement['trigger_type'] === 'gamipress_wpep_complete_assessment_between_grade'
36 + || $requirement['trigger_type'] === 'gamipress_wpep_complete_specific_assessment_between_grade' ) ) {
37 +
38 + // Between grade percent
39 + $requirement['wpep_min_score'] = get_post_meta( $requirement_id, '_gamipress_wpep_min_score', true );
40 + $requirement['wpep_max_score'] = get_post_meta( $requirement_id, '_gamipress_wpep_max_score', true );
41 +
42 + }
43 +
44 + return $requirement;
45 +}
46 +add_filter( 'gamipress_requirement_object', 'gamipress_wpep_requirement_object', 10, 2 );
47 +
48 +/**
49 + * Custom fields on requirements UI
50 + *
51 + * @since 1.0.0
52 + *
53 + * @param $requirement_id
54 + * @param $post_id
55 + */
56 +function gamipress_wpep_requirement_ui_fields( $requirement_id, $post_id ) {
57 +
58 + $score = absint( get_post_meta( $requirement_id, '_gamipress_wpep_score', true ) );
59 + $min_score = get_post_meta( $requirement_id, '_gamipress_wpep_min_score', true );
60 + $max_score = get_post_meta( $requirement_id, '_gamipress_wpep_max_score', true );
61 + ?>
62 +
63 + <span class="wpep-assessment-score"><input type="text" value="<?php echo $score; ?>" size="3" maxlength="3" placeholder="100" />%</span>
64 + <span class="wpep-assessment-min-score"><input type="text" value="<?php echo ( ! empty( $min_score ) ? absint( $min_score ) : '' ); ?>" size="3" maxlength="3" placeholder="Min" />% -</span>
65 + <span class="wpep-assessment-max-score"><input type="text" value="<?php echo ( ! empty( $max_score ) ? absint( $max_score ) : '' ); ?>" size="3" maxlength="3" placeholder="Max" />%</span>
66 +
67 + <?php
68 +}
69 +add_action( 'gamipress_requirement_ui_html_after_achievement_post', 'gamipress_wpep_requirement_ui_fields', 10, 2 );
70 +
71 +/**
72 + * Handler to save custom fields on requirements UI
73 + *
74 + * @since 1.0.0
75 + *
76 + * @param $requirement_id
77 + * @param $requirement
78 + */
79 +function gamipress_wpep_ajax_update_requirement( $requirement_id, $requirement ) {
80 +
81 + $requirement = wp_parse_args( $requirement, array(
82 + 'wpep_score' => '',
83 + 'wpep_min_score' => '',
84 + 'wpep_max_score' => '',
85 + ) );
86 +
87 + if( isset( $requirement['trigger_type'] )
88 + && ( $requirement['trigger_type'] === 'gamipress_wpep_complete_assessment_min_grade'
89 + || $requirement['trigger_type'] === 'gamipress_wpep_complete_specific_assessment_min_grade'
90 + || $requirement['trigger_type'] === 'gamipress_wpep_complete_assessment_max_grade'
91 + || $requirement['trigger_type'] === 'gamipress_wpep_complete_specific_assessment_max_grade' ) ) {
92 +
93 + // Save the score field
94 + update_post_meta( $requirement_id, '_gamipress_wpep_score', $requirement['wpep_score'] );
95 +
96 + }
97 +
98 + if( isset( $requirement['trigger_type'] )
99 + && ( $requirement['trigger_type'] === 'gamipress_wpep_complete_assessment_between_grade'
100 + || $requirement['trigger_type'] === 'gamipress_wpep_complete_specific_assessment_between_grade' ) ) {
101 +
102 + // Between grade percent
103 + update_post_meta( $requirement_id, '_gamipress_wpep_min_score', $requirement['wpep_min_score'] );
104 + update_post_meta( $requirement_id, '_gamipress_wpep_max_score', $requirement['wpep_max_score'] );
105 +
106 + }
107 +}
108 +add_action( 'gamipress_ajax_update_requirement', 'gamipress_wpep_ajax_update_requirement', 10, 2 );