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/asgaros-forum/includes/requirements.php +110 -0 7.9.6 → 8.0.6 View file →
@@ -1,0 +1,110 @@
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 + $requirement = wp_parse_args( $requirement, array(
85 + 'asgaros_forum' => '',
86 + 'asgaros_topic' => '',
87 + ) );
88 +
89 + // Forums
90 + if( isset( $requirement['trigger_type'] )
91 + && ( $requirement['trigger_type'] === 'gamipress_asgaros_forum_specific_forum_new_post'
92 + || $requirement['trigger_type'] === 'gamipress_asgaros_forum_specific_forum_new_topic'
93 + || $requirement['trigger_type'] === 'gamipress_asgaros_forum_specific_forum_like_post'
94 + || $requirement['trigger_type'] === 'gamipress_asgaros_forum_specific_forum_dislike_post' ) ) {
95 +
96 + // Forum ID
97 + update_post_meta( $requirement_id, '_gamipress_asgaros_forum_forum', $requirement['asgaros_forum'] );
98 + }
99 +
100 + // Topics
101 + if( isset( $requirement['trigger_type'] )
102 + && ( $requirement['trigger_type'] === 'gamipress_asgaros_forum_specific_topic_new_post'
103 + || $requirement['trigger_type'] === 'gamipress_asgaros_forum_specific_topic_like_post'
104 + || $requirement['trigger_type'] === 'gamipress_asgaros_forum_specific_topic_dislike_post' ) ) {
105 +
106 + // Topic ID
107 + update_post_meta( $requirement_id, '_gamipress_asgaros_forum_topic', $requirement['asgaros_topic'] );
108 + }
109 +}
110 +add_action( 'gamipress_ajax_update_requirement', 'gamipress_asgaros_forum_ajax_update_requirement', 10, 2 );