PluginProbe
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI / 8.0.2
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI v8.0.2
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 7.8.6 7.8.5 All 44 releases
gamipress / integrations / bbforms / includes / requirements.php

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

129 lines 5.0 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\BBForms\Requirements
6 * @since 1.0.0
7 */
8 // Exit if accessed directly
9 if( !defined( 'ABSPATH' ) ) exit;
10
11 /**
12 * Add the form field to the requirement object
13 *
14 * @param $requirement
15 * @param $requirement_id
16 *
17 * @return array
18 */
19 function gamipress_bbforms_requirement_object( $requirement, $requirement_id ) {
20
21 if( isset( $requirement['trigger_type'] )
22 && ( $requirement['trigger_type'] === 'gamipress_bbforms_form_specific_category_submission') ) {
23 // Field form
24 $requirement['bbforms_category'] = get_post_meta( $requirement_id, '_gamipress_bbforms_category', true );
25 }
26
27 if( isset( $requirement['trigger_type'] )
28 && ( $requirement['trigger_type'] === 'gamipress_bbforms_form_specific_tag_submission') ) {
29 // Field form
30 $requirement['bbforms_tag'] = get_post_meta( $requirement_id, '_gamipress_bbforms_tag', true );
31 }
32
33 if( isset( $requirement['trigger_type'] )
34 && ( $requirement['trigger_type'] === 'gamipress_bbforms_field_value_submission'
35 || $requirement['trigger_type'] === 'gamipress_bbforms_specific_field_value_submission' ) ) {
36
37 // Field name and value
38 $requirement['bbforms_field_name'] = get_post_meta( $requirement_id, '_gamipress_bbforms_field_name', true );
39 $requirement['bbforms_field_value'] = get_post_meta( $requirement_id, '_gamipress_bbforms_field_value', true );
40 }
41
42 return $requirement;
43 }
44 add_filter( 'gamipress_requirement_object', 'gamipress_bbforms_requirement_object', 10, 2 );
45
46 /**
47 * Form field on requirements UI
48 *
49 * @param $requirement_id
50 * @param $post_id
51 */
52 function gamipress_bbforms_requirement_ui_fields( $requirement_id, $post_id ) {
53
54 // Get the categories
55 $categories = gamipress_bbforms_get_form_categories();
56 $selected_category = get_post_meta( $requirement_id, '_gamipress_bbforms_category', true );
57
58 // Get the tags
59 $tags = gamipress_bbforms_get_form_tags();
60 $selected_tag = get_post_meta( $requirement_id, '_gamipress_bbforms_tag', true );
61
62 // Fields
63 $field_name = get_post_meta( $requirement_id, '_gamipress_bbforms_field_name', true );
64 $field_value = get_post_meta( $requirement_id, '_gamipress_bbforms_field_value', true );
65 ?>
66
67 <span class="bbforms-category">
68 <select>
69 <?php foreach( $categories as $category ) : ?>
70 <option value="<?php echo $category->id; ?>" <?php selected( $selected_category, $category->id ); ?>><?php echo $category->name; ?></option>
71 <?php endforeach; ?>
72 </select>
73 </span>
74
75 <span class="bbforms-tag">
76 <select>
77 <?php foreach( $tags as $tag ) : ?>
78 <option value="<?php echo $tag->id; ?>" <?php selected( $selected_tag, $tag->id ); ?>><?php echo $tag->name; ?></option>
79 <?php endforeach; ?>
80 </select>
81 </span>
82
83 <span class="bbforms-field-name"><input type="text" value="<?php echo $field_name; ?>" placeholder="<?php echo __( 'Field name', 'gamipress' ); ?>" /></span>
84 <span class="bbforms-field-value"><input type="text" value="<?php echo $field_value; ?>" placeholder="<?php echo __( 'Field value', 'gamipress' ); ?>" /></span>
85
86 <?php
87 }
88 add_action( 'gamipress_requirement_ui_html_after_achievement_post', 'gamipress_bbforms_requirement_ui_fields', 10, 2 );
89
90 /**
91 * Custom handler to save the form on requirements UI
92 *
93 * @param $requirement_id
94 * @param $requirement
95 */
96 function gamipress_bbforms_ajax_update_requirement( $requirement_id, $requirement ) {
97
98 $requirement = wp_parse_args( $requirement, array(
99 'bbforms_category' => '',
100 'bbforms_tag' => '',
101 'bbforms_field_name' => '',
102 'bbforms_field_value' => '',
103 ) );
104
105 if( isset( $requirement['trigger_type'] )
106 && ( $requirement['trigger_type'] === 'gamipress_bbforms_form_specific_category_submission' ) ) {
107
108 // Category
109 update_post_meta( $requirement_id, '_gamipress_bbforms_category', $requirement['bbforms_category'] );
110 }
111
112 if( isset( $requirement['trigger_type'] )
113 && ( $requirement['trigger_type'] === 'gamipress_bbforms_form_specific_tag_submission' ) ) {
114
115 // Tag
116 update_post_meta( $requirement_id, '_gamipress_bbforms_tag', $requirement['bbforms_tag'] );
117 }
118
119 if( isset( $requirement['trigger_type'] )
120 && ( $requirement['trigger_type'] === 'gamipress_bbforms_field_value_submission'
121 || $requirement['trigger_type'] === 'gamipress_bbforms_specific_field_value_submission' ) ) {
122
123 // Field name and value
124 update_post_meta( $requirement_id, '_gamipress_bbforms_field_name', $requirement['bbforms_field_name'] );
125 update_post_meta( $requirement_id, '_gamipress_bbforms_field_value', $requirement['bbforms_field_value'] );
126 }
127
128 }
129 add_action( 'gamipress_ajax_update_requirement', 'gamipress_bbforms_ajax_update_requirement', 10, 2 );