PluginProbe
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI / 8.0.5
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI v8.0.5
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 7.8.8 All 47 releases
← All changes | includes/widgets/achievements-widget.php +84 -0 7.8.8 → 8.0.5 View file →
@@ -1,0 +1,84 @@
1 +<?php
2 +/**
3 + * Achievements Widget
4 + *
5 + * @package GamiPress\Widgets\Widget\Achievements
6 + * @author GamiPress <[email protected]>, Ruben Garcia <[email protected]>
7 + * @since 1.0.0
8 + */
9 +// Exit if accessed directly
10 +if( !defined( 'ABSPATH' ) ) exit;
11 +
12 +class GamiPress_Achievements_Widget extends GamiPress_Widget {
13 +
14 + /**
15 + * Shortcode for this widget.
16 + *
17 + * @var string
18 + */
19 + protected $shortcode = 'gamipress_achievements';
20 +
21 + public function __construct() {
22 +
23 + parent::__construct(
24 + $this->shortcode . '_widget',
25 + __( 'GamiPress: Achievements', 'gamipress' ),
26 + __( 'Display a list of achievements.', 'gamipress' )
27 + );
28 +
29 + }
30 +
31 + public function get_tabs() {
32 +
33 + $tabs = GamiPress()->shortcodes[$this->shortcode]->tabs;
34 +
35 + // Add the widget title field to the general tab
36 + $tabs['general']['fields'][] = 'title';
37 +
38 + // Add the renamed achievement title field to the achievement tab
39 + $tabs['achievement']['fields'][] = 'show_title';
40 +
41 + // Get the numeric index of the achievement field 'title'
42 + $index = array_search( 'title', $tabs['achievement']['fields'] );
43 +
44 + // Remove the title from this tab
45 + unset( $tabs['achievement']['fields'][$index] );
46 +
47 + return $tabs;
48 +
49 + }
50 +
51 + public function get_fields() {
52 +
53 + // Need to change field title to show_title to avoid problems with widget title field
54 + $fields = GamiPress()->shortcodes[$this->shortcode]->fields;
55 +
56 + // Get the fields keys
57 + $keys = array_keys( $fields );
58 +
59 + // Get the numeric index of the field 'title'
60 + $index = array_search( 'title', $keys );
61 +
62 + // Replace the 'title' key by 'show_title'
63 + $keys[$index] = 'show_title';
64 +
65 + // Combine new array with new keys with an array of values
66 + $fields = array_combine( $keys, array_values( $fields ) );
67 +
68 + return $fields;
69 +
70 + }
71 +
72 + public function get_widget( $args, $instance ) {
73 +
74 + // Get back replaced fields
75 + $instance['title'] = $instance['show_title'];
76 +
77 + // Build shortcode attributes from widget instance
78 + $atts = gamipress_build_shortcode_atts( $this->shortcode, $instance );
79 +
80 + echo gamipress_do_shortcode( $this->shortcode, $atts );
81 +
82 + }
83 +
84 +}