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

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

115 lines 5.1 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\wpForo\Requirements
6 * @since 1.0.0
7 */
8 // Exit if accessed directly
9 if( !defined( 'ABSPATH' ) ) exit;
10
11 /**
12 * Add the form field to the requirement object
13 *
14 * @param $requirement
15 * @param $requirement_id
16 *
17 * @return array
18 */
19 function gamipress_wpforo_requirement_object( $requirement, $requirement_id ) {
20
21 // Forums
22 if( isset( $requirement['trigger_type'] )
23 && ( $requirement['trigger_type'] === 'gamipress_wpforo_specific_forum_new_post'
24 || $requirement['trigger_type'] === 'gamipress_wpforo_specific_forum_new_topic'
25 || $requirement['trigger_type'] === 'gamipress_wpforo_specific_forum_like_post'
26 || $requirement['trigger_type'] === 'gamipress_wpforo_specific_forum_dislike_post'
27 || $requirement['trigger_type'] === 'gamipress_wpforo_specific_forum_vote_up_post'
28 || $requirement['trigger_type'] === 'gamipress_wpforo_specific_forum_vote_down_post'
29 || $requirement['trigger_type'] === 'gamipress_wpforo_specific_forum_answer_question' ) ) {
30 // Forum ID
31 $requirement['wpf_forum'] = get_post_meta( $requirement_id, '_gamipress_wpforo_forum', true );
32 }
33
34 // Topics
35 if( isset( $requirement['trigger_type'] )
36 && ( $requirement['trigger_type'] === 'gamipress_wpforo_specific_topic_new_post'
37 || $requirement['trigger_type'] === 'gamipress_wpforo_specific_topic_like_post'
38 || $requirement['trigger_type'] === 'gamipress_wpforo_specific_topic_dislike_post'
39 || $requirement['trigger_type'] === 'gamipress_wpforo_specific_topic_vote_up_post'
40 || $requirement['trigger_type'] === 'gamipress_wpforo_specific_topic_vote_down_post' ) ) {
41
42 // Topic ID
43 $requirement['wpf_topic'] = get_post_meta( $requirement_id, '_gamipress_wpforo_topic', true );
44 }
45
46 return $requirement;
47 }
48 add_filter( 'gamipress_requirement_object', 'gamipress_wpforo_requirement_object', 10, 2 );
49
50 /**
51 * Custom field on requirements UI
52 *
53 * @since 1.0.0
54 *
55 * @param $requirement_id
56 * @param $post_id
57 */
58 function gamipress_wpforo_requirement_ui_fields( $requirement_id, $post_id ) {
59
60 $forum_id = get_post_meta( $requirement_id, '_gamipress_wpforo_forum', true );
61 $topic_id = get_post_meta( $requirement_id, '_gamipress_wpforo_topic', true );
62
63 ?>
64 <select class="wpf-forum wpf-forum-<?php echo $requirement_id; ?>">
65 <?php if( ! empty( $forum_id ) ) :
66 $achievement_post_title = gamipress_wpforo_get_forum_title( $forum_id ); ?>
67 <option value="<?php esc_attr_e( $forum_id ); ?>" selected="selected"><?php echo $achievement_post_title; ?> (#<?php echo $forum_id; ?>)</option>
68 <?php endif; ?>
69 </select>
70
71 <select class="wpf-topic wpf-topic-<?php echo $requirement_id; ?>">
72 <?php if( ! empty( $topic_id ) ) :
73 $achievement_post_title = gamipress_wpforo_get_topic_title( $topic_id ); ?>
74 <option value="<?php esc_attr_e( $topic_id ); ?>" selected="selected"><?php echo $achievement_post_title; ?> (#<?php echo $topic_id; ?>)</option>
75 <?php endif; ?>
76 </select>
77 <?php
78 }
79 add_action( 'gamipress_requirement_ui_html_after_achievement_post', 'gamipress_wpforo_requirement_ui_fields', 10, 2 );
80
81 /**
82 * Custom handler to save the form on requirements UI
83 *
84 * @param $requirement_id
85 * @param $requirement
86 */
87 function gamipress_wpforo_ajax_update_requirement( $requirement_id, $requirement ) {
88
89 // Forums
90 if( isset( $requirement['trigger_type'] )
91 && ( $requirement['trigger_type'] === 'gamipress_wpforo_specific_forum_new_post'
92 || $requirement['trigger_type'] === 'gamipress_wpforo_specific_forum_new_topic'
93 || $requirement['trigger_type'] === 'gamipress_wpforo_specific_forum_like_post'
94 || $requirement['trigger_type'] === 'gamipress_wpforo_specific_forum_dislike_post'
95 || $requirement['trigger_type'] === 'gamipress_wpforo_specific_forum_vote_up_post'
96 || $requirement['trigger_type'] === 'gamipress_wpforo_specific_forum_vote_down_post'
97 || $requirement['trigger_type'] === 'gamipress_wpforo_specific_forum_answer_question' ) ) {
98
99 // Forum ID
100 update_post_meta( $requirement_id, '_gamipress_wpforo_forum', $requirement['wpf_forum'] );
101 }
102
103 // Topics
104 if( isset( $requirement['trigger_type'] )
105 && ( $requirement['trigger_type'] === 'gamipress_wpforo_specific_topic_new_post'
106 || $requirement['trigger_type'] === 'gamipress_wpforo_specific_topic_like_post'
107 || $requirement['trigger_type'] === 'gamipress_wpforo_specific_topic_dislike_post'
108 || $requirement['trigger_type'] === 'gamipress_wpforo_specific_topic_vote_up_post'
109 || $requirement['trigger_type'] === 'gamipress_wpforo_specific_topic_vote_down_post' ) ) {
110
111 // Topic ID
112 update_post_meta( $requirement_id, '_gamipress_wpforo_topic', $requirement['wpf_topic'] );
113 }
114 }
115 add_action( 'gamipress_ajax_update_requirement', 'gamipress_wpforo_ajax_update_requirement', 10, 2 );