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

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

105 lines 4.4 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\Asgaros_Forum\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_asgaros_forum_requirement_object( $requirement, $requirement_id ) {
20
21 // Forums
22 if( isset( $requirement['trigger_type'] )
23 && ( $requirement['trigger_type'] === 'gamipress_asgaros_forum_specific_forum_new_post'
24 || $requirement['trigger_type'] === 'gamipress_asgaros_forum_specific_forum_new_topic'
25 || $requirement['trigger_type'] === 'gamipress_asgaros_forum_specific_forum_like_post'
26 || $requirement['trigger_type'] === 'gamipress_asgaros_forum_specific_forum_dislike_post' ) ) {
27 // Forum ID
28 $requirement['asgaros_forum'] = get_post_meta( $requirement_id, '_gamipress_asgaros_forum_forum', true );
29 }
30
31 // Topics
32 if( isset( $requirement['trigger_type'] )
33 && ( $requirement['trigger_type'] === 'gamipress_asgaros_forum_specific_topic_new_post'
34 || $requirement['trigger_type'] === 'gamipress_asgaros_forum_specific_topic_like_post'
35 || $requirement['trigger_type'] === 'gamipress_asgaros_forum_specific_topic_dislike_post' ) ) {
36
37 // Topic ID
38 $requirement['asgaros_topic'] = get_post_meta( $requirement_id, '_gamipress_asgaros_forum_topic', true );
39 }
40
41 return $requirement;
42 }
43 add_filter( 'gamipress_requirement_object', 'gamipress_asgaros_forum_requirement_object', 10, 2 );
44
45 /**
46 * Custom field on requirements UI
47 *
48 * @since 1.0.0
49 *
50 * @param $requirement_id
51 * @param $post_id
52 */
53 function gamipress_asgaros_forum_requirement_ui_fields( $requirement_id, $post_id ) {
54
55 $forum_id = get_post_meta( $requirement_id, '_gamipress_asgaros_forum_forum', true );
56 $topic_id = get_post_meta( $requirement_id, '_gamipress_asgaros_forum_topic', true );
57
58 ?>
59 <select class="asgaros-forum asgaros-forum-<?php echo $requirement_id; ?>">
60 <?php if( ! empty( $forum_id ) ) :
61 $achievement_post_title = gamipress_asgaros_forum_get_forum_title( $forum_id ); ?>
62 <option value="<?php esc_attr_e( $forum_id ); ?>" selected="selected"><?php echo $achievement_post_title; ?> (#<?php echo $forum_id; ?>)</option>
63 <?php endif; ?>
64 </select>
65
66 <select class="asgaros-topic asgaros-topic-<?php echo $requirement_id; ?>">
67 <?php if( ! empty( $topic_id ) ) :
68 $achievement_post_title = gamipress_asgaros_forum_get_topic_title( $topic_id ); ?>
69 <option value="<?php esc_attr_e( $topic_id ); ?>" selected="selected"><?php echo $achievement_post_title; ?> (#<?php echo $topic_id; ?>)</option>
70 <?php endif; ?>
71 </select>
72 <?php
73 }
74 add_action( 'gamipress_requirement_ui_html_after_achievement_post', 'gamipress_asgaros_forum_requirement_ui_fields', 10, 2 );
75
76 /**
77 * Custom handler to save the form on requirements UI
78 *
79 * @param $requirement_id
80 * @param $requirement
81 */
82 function gamipress_asgaros_forum_ajax_update_requirement( $requirement_id, $requirement ) {
83
84 // Forums
85 if( isset( $requirement['trigger_type'] )
86 && ( $requirement['trigger_type'] === 'gamipress_asgaros_forum_specific_forum_new_post'
87 || $requirement['trigger_type'] === 'gamipress_asgaros_forum_specific_forum_new_topic'
88 || $requirement['trigger_type'] === 'gamipress_asgaros_forum_specific_forum_like_post'
89 || $requirement['trigger_type'] === 'gamipress_asgaros_forum_specific_forum_dislike_post' ) ) {
90
91 // Forum ID
92 update_post_meta( $requirement_id, '_gamipress_asgaros_forum_forum', $requirement['asgaros_forum'] );
93 }
94
95 // Topics
96 if( isset( $requirement['trigger_type'] )
97 && ( $requirement['trigger_type'] === 'gamipress_asgaros_forum_specific_topic_new_post'
98 || $requirement['trigger_type'] === 'gamipress_asgaros_forum_specific_topic_like_post'
99 || $requirement['trigger_type'] === 'gamipress_asgaros_forum_specific_topic_dislike_post' ) ) {
100
101 // Topic ID
102 update_post_meta( $requirement_id, '_gamipress_asgaros_forum_topic', $requirement['asgaros_topic'] );
103 }
104 }
105 add_action( 'gamipress_ajax_update_requirement', 'gamipress_asgaros_forum_ajax_update_requirement', 10, 2 );