PluginProbe
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI / 7.9.8
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI v7.9.8
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 7.8.7 All 46 releases
gamipress / integrations / wpep / includes / requirements.php

requirements.php in GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI 7.9.8, at integrations/wpep/includes/requirements.php

102 lines 4.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
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 if( isset( $requirement['trigger_type'] )
82 && ( $requirement['trigger_type'] === 'gamipress_wpep_complete_assessment_min_grade'
83 || $requirement['trigger_type'] === 'gamipress_wpep_complete_specific_assessment_min_grade'
84 || $requirement['trigger_type'] === 'gamipress_wpep_complete_assessment_max_grade'
85 || $requirement['trigger_type'] === 'gamipress_wpep_complete_specific_assessment_max_grade' ) ) {
86
87 // Save the score field
88 update_post_meta( $requirement_id, '_gamipress_wpep_score', $requirement['wpep_score'] );
89
90 }
91
92 if( isset( $requirement['trigger_type'] )
93 && ( $requirement['trigger_type'] === 'gamipress_wpep_complete_assessment_between_grade'
94 || $requirement['trigger_type'] === 'gamipress_wpep_complete_specific_assessment_between_grade' ) ) {
95
96 // Between grade percent
97 update_post_meta( $requirement_id, '_gamipress_wpep_min_score', $requirement['wpep_min_score'] );
98 update_post_meta( $requirement_id, '_gamipress_wpep_max_score', $requirement['wpep_max_score'] );
99
100 }
101 }
102 add_action( 'gamipress_ajax_update_requirement', 'gamipress_wpep_ajax_update_requirement', 10, 2 );