PluginProbe
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI / 8.0.6
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI v8.0.6
8.0.6 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 All 48 releases
← All changes | integrations/easy-digital-downloads/includes/requirements.php +183 -0 7.9.3 → 8.0.6 View file →
@@ -1,0 +1,183 @@
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 );