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 / easy-digital-downloads / includes / requirements.php

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

183 lines 6.9 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\Easy_Digital_Downloads\Requirements
6 * @since 1.1.2
7 */
8
9 // Exit if accessed directly
10 if( !defined( 'ABSPATH' ) ) exit;
11
12 /**
13 * Add custom fields to the requirement object
14 *
15 * @param $requirement
16 * @param $requirement_id
17 *
18 * @return array
19 */
20 function gamipress_edd_requirement_object( $requirement, $requirement_id ) {
21
22 if( isset( $requirement['trigger_type'] )
23 && ( $requirement['trigger_type'] === 'gamipress_edd_download_variation_purchase'
24 || $requirement['trigger_type'] === 'gamipress_edd_download_variation_refund' ) ) {
25 // Download variation
26 $requirement['edd_variation_id'] = gamipress_get_post_meta( $requirement_id, '_gamipress_edd_variation_id', true );
27 }
28
29 if( isset( $requirement['trigger_type'] )
30 && ( $requirement['trigger_type'] === 'gamipress_edd_download_category_purchase'
31 || $requirement['trigger_type'] === 'gamipress_edd_download_category_refund' ) ) {
32 // Category
33 $requirement['edd_category_id'] = gamipress_get_post_meta( $requirement_id, '_gamipress_edd_category_id', true );
34 }
35
36 if( isset( $requirement['trigger_type'] )
37 && ( $requirement['trigger_type'] === 'gamipress_edd_download_tag_purchase'
38 || $requirement['trigger_type'] === 'gamipress_edd_download_tag_refund' ) ) {
39 // Category
40 $requirement['edd_tag_id'] = gamipress_get_post_meta( $requirement_id, '_gamipress_edd_tag_id', true );
41 }
42
43 if( isset( $requirement['trigger_type'] )
44 && ( $requirement['trigger_type'] === 'gamipress_edd_lifetime_value' ) ) {
45
46 // Lifetime value
47 $requirement['edd_lifetime_condition'] = get_post_meta( $requirement_id, '_gamipress_edd_lifetime_condition', true );
48 $requirement['edd_lifetime'] = get_post_meta( $requirement_id, '_gamipress_edd_lifetime', true );
49
50 }
51
52 return $requirement;
53 }
54 add_filter( 'gamipress_requirement_object', 'gamipress_edd_requirement_object', 10, 2 );
55
56 /**
57 * Custom fields on requirements UI
58 *
59 * @param $requirement_id
60 * @param $post_id
61 */
62 function gamipress_edd_requirement_ui_fields( $requirement_id, $post_id ) {
63
64 // Download variation select
65 $post_id = absint( gamipress_get_post_meta( $requirement_id, '_gamipress_achievement_post' ) );
66 $site_id = absint( gamipress_get_post_meta( $requirement_id, '_gamipress_achievement_post_site_id' ) );
67 $variation_id = absint( gamipress_get_post_meta( $requirement_id, '_gamipress_edd_variation_id', true ) );
68
69 ?>
70
71 <span class="edd-variation">
72 <?php if( $post_id !== 0 && $variation_id !== 0 ) {
73 echo gamipress_edd_get_download_variations_dropdown( $post_id, $variation_id, $site_id );
74 } ?>
75 </span>
76
77 <?php
78
79 // Category select
80 $category_id = absint( gamipress_get_post_meta( $requirement_id, '_gamipress_edd_category_id', true ) );
81 $categories = get_terms( array(
82 'taxonomy' => 'download_category',
83 'hide_empty' => false,
84 ) );
85
86 ?>
87
88 <span class="edd-category">
89 <select>
90 <?php foreach( $categories as $category ) : ?>
91 <option value="<?php echo $category->term_id; ?>" <?php selected( $category_id, $category->term_id ); ?>><?php echo $category->name; ?></option>
92 <?php endforeach; ?>
93 </select>
94 </span>
95
96 <?php
97
98 // Tags select
99 $tag_id = absint( gamipress_get_post_meta( $requirement_id, '_gamipress_edd_tag_id', true ) );
100 $tags = get_terms( array(
101 'taxonomy' => 'download_tag',
102 'hide_empty' => false,
103 ) );
104
105 ?>
106
107 <span class="edd-tag">
108 <select>
109 <?php foreach( $tags as $tag ) : ?>
110 <option value="<?php echo $tag->term_id; ?>" <?php selected( $tag_id, $tag->term_id ); ?>><?php echo $tag->name; ?></option>
111 <?php endforeach; ?>
112 </select>
113 </span>
114
115 <?php
116
117 // Lifetime value
118 $lifetime_conditions = gamipress_edd_get_lifetime_conditions();
119 $lifetime_condition = get_post_meta( $requirement_id, '_gamipress_edd_lifetime_condition', true );
120 $lifetime = absint( get_post_meta( $requirement_id, '_gamipress_edd_lifetime', true ) );
121
122 ?>
123 <span class="edd-lifetime">
124 <select>
125 <?php foreach( $lifetime_conditions as $id => $name ) : ?>
126 <option value="<?php echo esc_attr( $id ); ?>" <?php selected( $lifetime_condition, $id ); ?>><?php echo esc_html( $name ); ?></option>
127 <?php endforeach; ?>
128 </select>
129 <input type="text" value="<?php echo esc_attr( $lifetime ); ?>" size="3" maxlength="3" placeholder="100" />
130 </span>
131
132 <?php
133 }
134 add_action( 'gamipress_requirement_ui_html_after_achievement_post', 'gamipress_edd_requirement_ui_fields', 10, 2 );
135
136 /**
137 * Custom handler to save custom fields on requirements UI
138 *
139 * @param $requirement_id
140 * @param $requirement
141 */
142 function gamipress_edd_ajax_update_requirement( $requirement_id, $requirement ) {
143
144 $requirement = wp_parse_args( $requirement, array(
145 'edd_variation_id' => '',
146 'edd_category_id' => '',
147 'edd_tag_id' => '',
148 'edd_lifetime_condition' => '',
149 'edd_lifetime' => '',
150 ) );
151
152 if( isset( $requirement['trigger_type'] )
153 && ( $requirement['trigger_type'] === 'gamipress_edd_download_variation_purchase'
154 || $requirement['trigger_type'] === 'gamipress_edd_download_variation_refund' ) ) {
155 // Save the variation field
156 gamipress_update_post_meta( $requirement_id, '_gamipress_edd_variation_id', $requirement['edd_variation_id'] );
157 }
158
159 if( isset( $requirement['trigger_type'] )
160 && ( $requirement['trigger_type'] === 'gamipress_edd_download_category_purchase'
161 || $requirement['trigger_type'] === 'gamipress_edd_download_category_refund' ) ) {
162 // Save the category field
163 gamipress_update_post_meta( $requirement_id, '_gamipress_edd_category_id', $requirement['edd_category_id'] );
164 }
165
166 if( isset( $requirement['trigger_type'] )
167 && ( $requirement['trigger_type'] === 'gamipress_edd_download_tag_purchase'
168 || $requirement['trigger_type'] === 'gamipress_edd_download_tag_refund' ) ) {
169 // Save the tag field
170 gamipress_update_post_meta( $requirement_id, '_gamipress_edd_tag_id', $requirement['edd_tag_id'] );
171 }
172
173 if( isset( $requirement['trigger_type'] )
174 && ( $requirement['trigger_type'] === 'gamipress_edd_lifetime_value' ) ) {
175
176 // Lifetime
177 update_post_meta( $requirement_id, '_gamipress_edd_lifetime_condition', $requirement['edd_lifetime_condition'] );
178 update_post_meta( $requirement_id, '_gamipress_edd_lifetime', $requirement['edd_lifetime'] );
179
180 }
181
182 }
183 add_action( 'gamipress_ajax_update_requirement', 'gamipress_edd_ajax_update_requirement', 10, 2 );