PluginProbe
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI / 8.0.3
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI v8.0.3
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 7.8.6 All 45 releases
← All changes | integrations/caldera-forms/includes/requirements.php +102 -0 7.9.28.0.3 View file →
@@ -1,0 +1,102 @@
1 +<?php
2 +/**
3 + * Requirements
4 + *
5 + * @package GamiPress\Caldera_Forms\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_cf_requirement_object( $requirement, $requirement_id ) {
20 +
21 + if( isset( $requirement['trigger_type'] )
22 + && ( $requirement['trigger_type'] === 'gamipress_cf_specific_new_form_submission'
23 + || $requirement['trigger_type'] === 'gamipress_cf_specific_field_value_submission' ) ) {
24 + // Field form
25 + $requirement['caldera_form'] = get_post_meta( $requirement_id, '_gamipress_caldera_form', true );
26 + }
27 +
28 + if( isset( $requirement['trigger_type'] )
29 + && ( $requirement['trigger_type'] === 'gamipress_cf_field_value_submission'
30 + || $requirement['trigger_type'] === 'gamipress_cf_specific_field_value_submission' ) ) {
31 +
32 + // Field name and value
33 + $requirement['cf_field_name'] = get_post_meta( $requirement_id, '_gamipress_cf_field_name', true );
34 + $requirement['cf_field_value'] = get_post_meta( $requirement_id, '_gamipress_cf_field_value', true );
35 + }
36 +
37 + return $requirement;
38 +}
39 +add_filter( 'gamipress_requirement_object', 'gamipress_cf_requirement_object', 10, 2 );
40 +
41 +/**
42 + * Form field on requirements UI
43 + *
44 + * @param $requirement_id
45 + * @param $post_id
46 + */
47 +function gamipress_cf_requirement_ui_fields( $requirement_id, $post_id ) {
48 +
49 + $forms = Caldera_Forms::get_forms();
50 + $selected = get_post_meta( $requirement_id, '_gamipress_caldera_form', true ); ?>
51 +
52 + <select class="select-caldera-form">
53 + <?php foreach( $forms as $form ) : ?>
54 + <option value="<?php echo $form['ID']; ?>" <?php selected( $selected, $form['ID'] ); ?>><?php echo $form['name']; ?></option>
55 + <?php endforeach; ?>
56 + </select>
57 +
58 + <?php
59 +
60 + $field_name = get_post_meta( $requirement_id, '_gamipress_cf_field_name', true );
61 + $field_value = get_post_meta( $requirement_id, '_gamipress_cf_field_value', true );
62 + ?>
63 +
64 + <span class="cf-field-name"><input type="text" value="<?php echo $field_name; ?>" placeholder="<?php echo __( 'Field name', 'gamipress' ); ?>" /></span>
65 + <span class="cf-field-value"><input type="text" value="<?php echo $field_value; ?>" placeholder="<?php echo __( 'Field value', 'gamipress' ); ?>" /></span>
66 +
67 + <?php
68 +}
69 +add_action( 'gamipress_requirement_ui_html_after_achievement_post', 'gamipress_cf_requirement_ui_fields', 10, 2 );
70 +
71 +/**
72 + * Custom handler to save the form on requirements UI
73 + *
74 + * @param $requirement_id
75 + * @param $requirement
76 + */
77 +function gamipress_cf_ajax_update_requirement( $requirement_id, $requirement ) {
78 +
79 + $requirement = wp_parse_args( $requirement, array(
80 + 'caldera_form' => '',
81 + 'cf_field_name' => '',
82 + 'cf_field_value' => '',
83 + ) );
84 +
85 + if( isset( $requirement['trigger_type'] )
86 + && ( $requirement['trigger_type'] === 'gamipress_cf_specific_new_form_submission'
87 + || $requirement['trigger_type'] === 'gamipress_cf_specific_field_value_submission' ) ) {
88 +
89 + // Field form
90 + update_post_meta( $requirement_id, '_gamipress_caldera_form', $requirement['caldera_form'] );
91 + }
92 +
93 + if( isset( $requirement['trigger_type'] )
94 + && ( $requirement['trigger_type'] === 'gamipress_cf_field_value_submission'
95 + || $requirement['trigger_type'] === 'gamipress_cf_specific_field_value_submission' ) ) {
96 +
97 + // Field name and value
98 + update_post_meta( $requirement_id, '_gamipress_cf_field_name', $requirement['cf_field_name'] );
99 + update_post_meta( $requirement_id, '_gamipress_cf_field_value', $requirement['cf_field_value'] );
100 + }
101 +}
102 +add_action( 'gamipress_ajax_update_requirement', 'gamipress_cf_ajax_update_requirement', 10, 2 );