PluginProbe
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI / 8.0.4
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI v8.0.4
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
gamipress / integrations / wpep / includes / requirements.php

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

108 lines 4.3 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 $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 );