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/wishlist-member/includes/requirements.php +117 -0 7.9.5 → 8.0.6 View file →
@@ -1,0 +1,117 @@
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 + $requirement = wp_parse_args( $requirement, array(
97 + 'wishlist_member_level_id' => '',
98 + ) );
99 +
100 + if( isset( $requirement['trigger_type'] ) ) {
101 +
102 + if( in_array( $requirement['trigger_type'], array(
103 + 'gamipress_wishlist_member_add_specific_level',
104 + 'gamipress_wishlist_member_remove_specific_level',
105 + 'gamipress_wishlist_member_approve_specific_level',
106 + 'gamipress_wishlist_member_unapprove_specific_level',
107 + 'gamipress_wishlist_member_cancel_specific_level',
108 + 'gamipress_wishlist_member_uncancel_specific_level',
109 + ) ) ) {
110 +
111 + // The level id
112 + update_post_meta( $requirement_id, '_gamipress_wishlist_member_level_id', $requirement['wishlist_member_level_id'] );
113 +
114 + }
115 + }
116 +}
117 +add_action( 'gamipress_ajax_update_requirement', 'gamipress_wishlist_member_ajax_update_requirement', 10, 2 );