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/bbforms/includes/requirements.php +129 -0 7.9.2 → 8.0.5 View file →
@@ -1,0 +1,129 @@
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 );