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 / wishlist-member / includes / requirements.php

requirements.php in GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI 7.9.8, at integrations/wishlist-member/includes/requirements.php

113 lines 3.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\WishList_Member\Requirements
6 * @since 1.0.0
7 */
8 // Exit if accessed directly
9 if( !defined( 'ABSPATH' ) ) exit;
10
11 /**
12 * Add the link fields to the requirement object
13 *
14 * @param $requirement
15 * @param $requirement_id
16 *
17 * @return array
18 */
19 function gamipress_wishlist_member_requirement_object( $requirement, $requirement_id ) {
20
21 if( isset( $requirement['trigger_type'] ) ) {
22
23 if( in_array( $requirement['trigger_type'], array(
24 'gamipress_wishlist_member_add_specific_level',
25 'gamipress_wishlist_member_remove_specific_level',
26 'gamipress_wishlist_member_approve_specific_level',
27 'gamipress_wishlist_member_unapprove_specific_level',
28 'gamipress_wishlist_member_cancel_specific_level',
29 'gamipress_wishlist_member_uncancel_specific_level',
30 ) ) ) {
31
32 // The level id
33 $requirement['wishlist_member_level_id'] = gamipress_get_post_meta( $requirement_id, '_gamipress_wishlist_member_level_id', true );
34
35 }
36 }
37
38 return $requirement;
39 }
40 add_filter( 'gamipress_requirement_object', 'gamipress_wishlist_member_requirement_object', 10, 2 );
41
42 /**
43 * WishList_Member fields on requirements UI
44 *
45 * @param $requirement_id
46 * @param $post_id
47 */
48 function gamipress_wishlist_member_requirement_ui_fields( $requirement_id, $post_id ) {
49
50 global $WishListMemberInstance;
51
52 $levels = $WishListMemberInstance->GetOption( 'wpm_levels' );
53 $level_id = gamipress_get_post_meta( $requirement_id, '_gamipress_wishlist_member_level_id', true );
54
55 $options = array(
56 '' => __( 'Choose a membership level', 'gamipress' ),
57 );
58
59 if( function_exists( 'wlmapi_get_levels' ) ) {
60
61 // Get all registered levels
62 $levels = wlmapi_get_levels();
63
64 // Check that levels are correctly setup
65 if ( is_array( $levels )
66 && isset( $levels['levels'] )
67 && isset( $levels['levels']['level'] )
68 && ! empty( $levels['levels']['level'] ) ) {
69
70 // Loop levels to add them as options
71 foreach ( $levels['levels']['level'] as $level ) {
72 $options[$level['id']] = $level['name'];
73 }
74
75 }
76
77 } ?>
78
79 <select class="select-wishlist-member-level-id">
80 <?php foreach( $options as $value => $label ) { ?>
81 <option value="<?php echo $value; ?>" <?php selected( $level_id, $value ); ?>><?php echo $label; ?></option>
82 <?php } ?>
83 </select>
84 <?php
85 }
86 add_action( 'gamipress_requirement_ui_html_after_achievement_post', 'gamipress_wishlist_member_requirement_ui_fields', 10, 2 );
87
88 /**
89 * Custom handler to save the link fields on requirements UI
90 *
91 * @param $requirement_id
92 * @param $requirement
93 */
94 function gamipress_wishlist_member_ajax_update_requirement( $requirement_id, $requirement ) {
95
96 if( isset( $requirement['trigger_type'] ) ) {
97
98 if( in_array( $requirement['trigger_type'], array(
99 'gamipress_wishlist_member_add_specific_level',
100 'gamipress_wishlist_member_remove_specific_level',
101 'gamipress_wishlist_member_approve_specific_level',
102 'gamipress_wishlist_member_unapprove_specific_level',
103 'gamipress_wishlist_member_cancel_specific_level',
104 'gamipress_wishlist_member_uncancel_specific_level',
105 ) ) ) {
106
107 // The level id
108 update_post_meta( $requirement_id, '_gamipress_wishlist_member_level_id', $requirement['wishlist_member_level_id'] );
109
110 }
111 }
112 }
113 add_action( 'gamipress_ajax_update_requirement', 'gamipress_wishlist_member_ajax_update_requirement', 10, 2 );