PluginProbe
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI / 8.0.3
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI v8.0.3
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 7.8.6 All 45 releases
← All changes | integrations/vimeo/includes/rules-engine.php +55 -0 7.9.28.0.3 View file →
@@ -1,0 +1,55 @@
1 +<?php
2 +/**
3 + * Rules Engine
4 + *
5 + * @package GamiPress\Vimeo\Rules_Engine
6 + * @since 1.0.0
7 + */
8 +// Exit if accessed directly
9 +if( !defined( 'ABSPATH' ) ) exit;
10 +
11 +/**
12 + * Checks if an user is allowed to work on a given requirement
13 + *
14 + * @since 1.0.0
15 + *
16 + * @param bool $return The default return value
17 + * @param int $user_id The given user's ID
18 + * @param int $requirement_id The given requirement's post ID
19 + * @param string $trigger The trigger triggered
20 + * @param int $site_id The site id
21 + * @param array $args Arguments of this trigger
22 + *
23 + * @return bool True if user has access to the requirement, false otherwise
24 + */
25 +function gamipress_vimeo_user_has_access_to_achievement( $return = false, $user_id = 0, $requirement_id = 0, $trigger = '', $site_id = 0, $args = array() ) {
26 +
27 + // If we're not working with a requirement, bail here
28 + if ( ! in_array( get_post_type( $requirement_id ), gamipress_get_requirement_types_slugs() ) )
29 + return $return;
30 +
31 + // Check if user has access to the achievement ($return will be false if user has exceed the limit or achievement is not published yet)
32 + if( ! $return )
33 + return $return;
34 +
35 + // If is watch specific video trigger, rules engine needs to check the id given
36 + if( $trigger === 'gamipress_vimeo_watch_specific_video' ) {
37 +
38 + $video_id = $args[0];
39 +
40 + $required_video_id = get_post_meta( $requirement_id, '_gamipress_vimeo_video_id', true );
41 + $required_video_id = gamipress_vimeo_get_video_id_from_url( $required_video_id );
42 +
43 + // Check if required video id is not empty to prevent award specific video when no ID is given
44 + $return = ! empty( $required_video_id );
45 +
46 + if( $return ) {
47 + // True if video id is the required one
48 + $return = (bool) ( $video_id === $required_video_id );
49 + }
50 + }
51 +
52 + // Send back our eligibility
53 + return $return;
54 +}
55 +add_filter( 'user_has_access_to_achievement', 'gamipress_vimeo_user_has_access_to_achievement', 10, 6 );