PluginProbe
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI / 7.9.8
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI v7.9.8
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 7.8.7 All 46 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 7.9.8, at integrations/easy-digital-downloads/includes/requirements.php

175 lines 6.7 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 if( isset( $requirement['trigger_type'] )
145 && ( $requirement['trigger_type'] === 'gamipress_edd_download_variation_purchase'
146 || $requirement['trigger_type'] === 'gamipress_edd_download_variation_refund' ) ) {
147 // Save the variation field
148 gamipress_update_post_meta( $requirement_id, '_gamipress_edd_variation_id', $requirement['edd_variation_id'] );
149 }
150
151 if( isset( $requirement['trigger_type'] )
152 && ( $requirement['trigger_type'] === 'gamipress_edd_download_category_purchase'
153 || $requirement['trigger_type'] === 'gamipress_edd_download_category_refund' ) ) {
154 // Save the category field
155 gamipress_update_post_meta( $requirement_id, '_gamipress_edd_category_id', $requirement['edd_category_id'] );
156 }
157
158 if( isset( $requirement['trigger_type'] )
159 && ( $requirement['trigger_type'] === 'gamipress_edd_download_tag_purchase'
160 || $requirement['trigger_type'] === 'gamipress_edd_download_tag_refund' ) ) {
161 // Save the tag field
162 gamipress_update_post_meta( $requirement_id, '_gamipress_edd_tag_id', $requirement['edd_tag_id'] );
163 }
164
165 if( isset( $requirement['trigger_type'] )
166 && ( $requirement['trigger_type'] === 'gamipress_edd_lifetime_value' ) ) {
167
168 // Lifetime
169 update_post_meta( $requirement_id, '_gamipress_edd_lifetime_condition', $requirement['edd_lifetime_condition'] );
170 update_post_meta( $requirement_id, '_gamipress_edd_lifetime', $requirement['edd_lifetime'] );
171
172 }
173
174 }
175 add_action( 'gamipress_ajax_update_requirement', 'gamipress_edd_ajax_update_requirement', 10, 2 );