myCRED - Version 2.1.0.3

Version Description

FIX - Email notification issues. FIX - Broken image if badge default image wasn't set. FIX - mycred_my_badges width and height attributes wasn't working.

Download this release

Release Info

Developer wpexpertsio
Plugin Icon 128x128 myCRED
Version 2.1.0.3
Comparing to
See all releases

Code changes from version 2.1.0.2 to 2.1.0.3

addons/badges/includes/mycred-badge-object.php CHANGED
@@ -718,6 +718,9 @@ if ( ! class_exists( 'myCRED_Badge' ) ) :
718
  $image_width = ( $this->image_width !== false ) ? ' width="' . esc_attr( $this->image_width ) . '"' : '';
719
  $image_height = ( $this->image_height !== false ) ? ' height="' . esc_attr( $this->image_height ) . '"' : '';
720
 
 
 
 
721
  $html = '<img src="' . esc_url( $image_url ) . '" class="' . MYCRED_SLUG . '-badge-image badge-level' . esc_attr( $level ) . '" title="' . esc_attr( $this->title ) . '" alt="' . esc_attr( $this->title ) . '"' . $image_width . $image_height . ' />';
722
 
723
  return apply_filters( 'mycred_badge_image', $html, $image, $this );
718
  $image_width = ( $this->image_width !== false ) ? ' width="' . esc_attr( $this->image_width ) . '"' : '';
719
  $image_height = ( $this->image_height !== false ) ? ' height="' . esc_attr( $this->image_height ) . '"' : '';
720
 
721
+ if ( !$image_url )
722
+ return false;
723
+
724
  $html = '<img src="' . esc_url( $image_url ) . '" class="' . MYCRED_SLUG . '-badge-image badge-level' . esc_attr( $level ) . '" title="' . esc_attr( $this->title ) . '" alt="' . esc_attr( $this->title ) . '"' . $image_width . $image_height . ' />';
725
 
726
  return apply_filters( 'mycred_badge_image', $html, $image, $this );
addons/badges/includes/mycred-badge-shortcodes.php CHANGED
@@ -8,79 +8,79 @@ if ( ! defined( 'myCRED_VERSION' ) ) exit;
8
  * @version 1.2.1
9
  */
10
  if ( ! function_exists( 'mycred_render_my_badges' ) ) :
11
- function mycred_render_my_badges( $atts, $content = '' ) {
12
 
13
- extract( shortcode_atts( array(
14
- 'show' => 'earned',
15
- 'width' => MYCRED_BADGE_WIDTH,
16
- 'height' => MYCRED_BADGE_HEIGHT,
17
- 'user_id' => 'current'
18
- ), $atts, MYCRED_SLUG . '_my_badges' ) );
19
 
20
- if ( ! is_user_logged_in() && $user_id == 'current' )
21
- return $content;
22
 
23
- $user_id = mycred_get_user_id( $user_id );
24
 
25
- ob_start();
26
 
27
- echo '<div class="row" id="mycred-users-badges"><div class="col-xs-12">';
28
 
29
- // Show only badges that we have earned
30
- if ( $show == 'earned' ) {
31
 
32
- mycred_display_users_badges( $user_id, $width, $height );
33
 
34
- }
35
 
36
- // Show all badges highlighting the ones we earned
37
- elseif ( $show == 'all' ) {
38
 
39
- $users_badges = mycred_get_users_badges( $user_id );
40
- $all_badges = mycred_get_badge_ids();
41
 
42
- foreach ( $all_badges as $badge_id ) {
43
 
44
- echo '<div class="the-badge">';
45
 
46
- // User has not earned badge
47
- if ( ! array_key_exists( $badge_id, $users_badges ) ) {
48
 
49
- $badge = mycred_get_badge( $badge_id );
50
- $badge->image_width = $width;
51
- $badge->image_height = $height;
52
 
53
- if ( $badge->main_image !== false )
54
- echo $badge->get_image( 'main' );
55
 
56
- }
57
 
58
- // User has earned badge
59
- else {
60
 
61
- $level = $users_badges[ $badge_id ];
62
- $badge = mycred_get_badge( $badge_id, $level );
63
- $badge->image_width = $width;
64
- $badge->image_height = $height;
65
 
66
- if ( $badge->level_image !== false )
67
- echo $badge->get_image( $level );
68
 
69
- }
70
 
71
- echo '</div>';
72
 
73
- }
74
 
75
- }
76
- echo '</div></div>';
77
 
78
- $output = ob_get_contents();
79
- ob_end_clean();
80
 
81
- return apply_filters( 'mycred_my_badges', $output, $user_id );
82
 
83
- }
84
  endif;
85
 
86
  /**
@@ -90,51 +90,51 @@ endif;
90
  * @version 1.1.1
91
  */
92
  if ( ! function_exists( 'mycred_render_badges' ) ) :
93
- function mycred_render_badges( $atts, $template = '' ) {
94
- extract( shortcode_atts( array(
95
- 'width' => MYCRED_BADGE_WIDTH,
96
- 'height' => MYCRED_BADGE_HEIGHT
97
- ), $atts, MYCRED_SLUG . '_badges' ) );
98
 
99
- $all_badges = mycred_get_badge_ids();
100
 
101
- if ( $template == '' )
102
- $template = '<div class="the-badge row"><div class="col-xs-12"><h3 class="badge-title">%badge_title%</h3><div class="badge-requirements">%requirements%</div><div class="users-with-badge">%count%</div><div class="badge-images">%default_image% %main_image%</div></div></div>';
103
 
104
- $output = '<div id="mycred-all-badges">';
105
 
106
- if ( ! empty( $all_badges ) ) {
107
 
108
- foreach ( $all_badges as $badge_id ) {
109
 
110
- $badge = mycred_get_badge( $badge_id, 0 );
111
- $badge->image_width = $width;
112
- $badge->image_height = $height;
113
 
114
- $row = $template;
115
- $row = str_replace( '%badge_title%', $badge->title, $row );
116
- $row = str_replace( '%requirements%', mycred_display_badge_requirements( $badge_id ), $row );
117
- $row = str_replace( '%count%', $badge->earnedby, $row );
118
- $row = str_replace( '%default_image%', $badge->main_image, $row );
119
-
120
- if( mycred_user_has_badge( get_current_user_id(), $badge_id) ) {
121
- $row = str_replace( '%main_image%', $badge->level_image, $row );
122
- }
123
- else {
124
- $row = str_replace( '%main_image%', '', $row );
125
- }
126
 
127
- $output .= apply_filters( 'mycred_badges_badge', $row, $badge );
128
 
129
- }
130
 
131
- }
132
 
133
- $output .= '</div>';
134
 
135
- return apply_filters( 'mycred_badges', $output );
136
 
137
- }
138
  endif;
139
 
140
  /**
@@ -163,8 +163,7 @@ if( !function_exists( 'mycred_render_badges_list' ) ) :
163
  'hide_empty' => false
164
  );
165
 
166
- $categories = get_categories($args);
167
-
168
  $category_count = count( $categories );
169
 
170
  //Get Badges
@@ -174,94 +173,103 @@ if( !function_exists( 'mycred_render_badges_list' ) ) :
174
 
175
  $query = new WP_Query( $args );
176
 
177
- ob_start();
 
178
 
179
- //Main Div Start
180
- echo '<div class="mycred-badges-list">';
181
 
182
- //If achievement tab = true, and categorise > 0, Show navigation
183
- if( $achievement_tabs == 1 ) {
184
- if ( $category_count < 1 ) echo 'First Create Achievements Containing Badges';
185
- ?>
186
- <div class="mycred-badges-list-nav">
187
- <div class="mycred-tabset">
188
- <?php
189
- //Navbar
190
- $counter = 1;
191
 
192
- foreach ( $categories as $category ) {
193
- $category_id = $category->cat_ID;
194
 
195
- $category_name = $category->cat_name;
 
 
 
196
 
197
- $badge_args = mycred_get_badges_by_term_id( $category_id );
 
 
 
 
198
 
199
- $badges_count = count( $badge_args );
200
- if ($badges_count > 0) {
201
- ?>
202
- <input type="radio" name="mycred-tabset" id="mycred-tab<?php echo $category_id;?>" aria-controls="mycred-tab-area-<?php echo $category_id ?>" <?php if ($counter == 1) echo 'checked'; ?>>
203
- <label for="mycred-tab<?php echo $category_id;?>">
204
- <?php echo $category_name ?>
205
- <span class="mycred-badge-count"><?php echo $badges_count?></span>
206
- </label>
207
- <?php
208
- }
209
- $counter++;
210
- }
211
 
212
- echo '<div class="mycred-tab-panels">';
213
 
214
- //Body
215
- foreach ( $categories as $category ) {
216
 
217
- $category_id = $category->cat_ID;
218
 
219
- $category_name = $category->cat_name;
220
 
221
- //Gathering Badges
222
- $badge_args = mycred_get_badges_by_term_id( $category_id );
223
- ?>
224
- <section id="mycred-tab-area-<?php echo $category_id ?>" class="mycred-tab-panel">
225
- <?php
226
 
227
- foreach ( $badge_args as $badge ) {
 
 
 
 
228
 
229
- $badge_id = $badge->ID;
 
 
 
 
230
 
231
- $badge_object = mycred_get_badge( $badge_id );
232
 
233
- $image_url = $badge_object->main_image_url;
234
 
235
- $has_earned = $badge_object->user_has_badge( $user_id ) ? 'earned' : 'not-earned';
 
 
236
 
237
- ?>
238
 
239
- <div class="mycred-badges-list-item <?php echo $has_earned; ?>" data-url="<?php echo mycred_get_permalink( $badge_id );?>">
240
- <?php if ( $image_url ): ?>
241
- <img src="<?php echo esc_url( $image_url ) ?>" alt="Badge Image">
242
- <?php endif; ?>
243
- <div class="mycred-left">
244
- <h3>
245
- <?php echo $badge->post_title; ?>
246
- </h3>
247
- <?php echo $badge->post_excerpt; ?>
248
- </div>
249
- <div class="clear"></div>
250
- </div>
251
- <?php
252
- }
 
253
  ?>
254
- </section>
255
- <?php
256
- }
257
- wp_reset_query();
258
- ?>
259
- </div>
260
- </div>
261
 
 
 
 
 
262
  <?php
 
 
 
 
 
 
 
 
 
263
  }
264
  else {
 
265
  //Show Badges
266
  while ( $query->have_posts() ) : $query->the_post();
267
 
@@ -275,7 +283,7 @@ if( !function_exists( 'mycred_render_badges_list' ) ) :
275
 
276
  $category = mycred_get_badge_type( $badge_id );
277
 
278
- $categories = explode(',', $category);
279
 
280
  ?>
281
  <div class="mycred-badges-list-item <?php echo $has_earned; ?>" data-url="<?php echo mycred_get_permalink( $badge_id );?>">
@@ -289,10 +297,12 @@ if( !function_exists( 'mycred_render_badges_list' ) ) :
289
  <?php
290
  if( $category_count > 0 ) {
291
 
292
- foreach ($categories as $category) {
293
 
294
  if( $category != '' ) {
 
295
  echo '<sup class="mycred-sup-category">'.$category.'</sup>';
 
296
  }
297
 
298
  }
@@ -305,11 +315,8 @@ if( !function_exists( 'mycred_render_badges_list' ) ) :
305
  </div>
306
  <?php
307
  endwhile;
308
-
309
- echo '<div>';
310
  }
311
  ?>
312
-
313
  <script type="text/javascript">
314
 
315
  jQuery(document).ready(function(){
@@ -320,6 +327,16 @@ if( !function_exists( 'mycred_render_badges_list' ) ) :
320
 
321
  });
322
 
 
 
 
 
 
 
 
 
 
 
323
  });
324
 
325
  </script>
8
  * @version 1.2.1
9
  */
10
  if ( ! function_exists( 'mycred_render_my_badges' ) ) :
11
+ function mycred_render_my_badges( $atts, $content = '' ) {
12
 
13
+ extract( shortcode_atts( array(
14
+ 'show' => 'earned',
15
+ 'width' => MYCRED_BADGE_WIDTH,
16
+ 'height' => MYCRED_BADGE_HEIGHT,
17
+ 'user_id' => 'current'
18
+ ), $atts, MYCRED_SLUG . '_my_badges' ) );
19
 
20
+ if ( ! is_user_logged_in() && $user_id == 'current' )
21
+ return $content;
22
 
23
+ $user_id = mycred_get_user_id( $user_id );
24
 
25
+ ob_start();
26
 
27
+ echo '<div class="row" id="mycred-users-badges"><div class="col-xs-12">';
28
 
29
+ // Show only badges that we have earned
30
+ if ( $show == 'earned' ) {
31
 
32
+ mycred_display_users_badges( $user_id, $width, $height );
33
 
34
+ }
35
 
36
+ // Show all badges highlighting the ones we earned
37
+ elseif ( $show == 'all' ) {
38
 
39
+ $users_badges = mycred_get_users_badges( $user_id );
40
+ $all_badges = mycred_get_badge_ids();
41
 
42
+ foreach ( $all_badges as $badge_id ) {
43
 
44
+ echo '<div class="the-badge">';
45
 
46
+ // User has not earned badge
47
+ if ( ! array_key_exists( $badge_id, $users_badges ) ) {
48
 
49
+ $badge = mycred_get_badge( $badge_id );
50
+ $badge->image_width = $width;
51
+ $badge->image_height = $height;
52
 
53
+ if ( $badge->main_image !== false )
54
+ echo $badge->get_image( 'main' );
55
 
56
+ }
57
 
58
+ // User has earned badge
59
+ else {
60
 
61
+ $level = $users_badges[ $badge_id ];
62
+ $badge = mycred_get_badge( $badge_id, $level );
63
+ $badge->image_width = $width;
64
+ $badge->image_height = $height;
65
 
66
+ if ( $badge->level_image !== false )
67
+ echo $badge->get_image( $level );
68
 
69
+ }
70
 
71
+ echo '</div>';
72
 
73
+ }
74
 
75
+ }
76
+ echo '</div></div>';
77
 
78
+ $output = ob_get_contents();
79
+ ob_end_clean();
80
 
81
+ return apply_filters( 'mycred_my_badges', $output, $user_id );
82
 
83
+ }
84
  endif;
85
 
86
  /**
90
  * @version 1.1.1
91
  */
92
  if ( ! function_exists( 'mycred_render_badges' ) ) :
93
+ function mycred_render_badges( $atts, $template = '' ) {
94
+ extract( shortcode_atts( array(
95
+ 'width' => MYCRED_BADGE_WIDTH,
96
+ 'height' => MYCRED_BADGE_HEIGHT
97
+ ), $atts, MYCRED_SLUG . '_badges' ) );
98
 
99
+ $all_badges = mycred_get_badge_ids();
100
 
101
+ if ( $template == '' )
102
+ $template = '<div class="the-badge row"><div class="col-xs-12"><h3 class="badge-title">%badge_title%</h3><div class="badge-requirements">%requirements%</div><div class="users-with-badge">%count%</div><div class="badge-images">%default_image% %main_image%</div></div></div>';
103
 
104
+ $output = '<div id="mycred-all-badges">';
105
 
106
+ if ( ! empty( $all_badges ) ) {
107
 
108
+ foreach ( $all_badges as $badge_id ) {
109
 
110
+ $badge = mycred_get_badge( $badge_id, 0 );
111
+ $badge->image_width = $width;
112
+ $badge->image_height = $height;
113
 
114
+ $row = $template;
115
+ $row = str_replace( '%badge_title%', $badge->title, $row );
116
+ $row = str_replace( '%requirements%', mycred_display_badge_requirements( $badge_id ), $row );
117
+ $row = str_replace( '%count%', $badge->earnedby, $row );
118
+ $row = str_replace( '%default_image%', $badge->main_image, $row );
119
+
120
+ if( mycred_user_has_badge( get_current_user_id(), $badge_id) ) {
121
+ $row = str_replace( '%main_image%', $badge->level_image, $row );
122
+ }
123
+ else {
124
+ $row = str_replace( '%main_image%', '', $row );
125
+ }
126
 
127
+ $output .= apply_filters( 'mycred_badges_badge', $row, $badge );
128
 
129
+ }
130
 
131
+ }
132
 
133
+ $output .= '</div>';
134
 
135
+ return apply_filters( 'mycred_badges', $output );
136
 
137
+ }
138
  endif;
139
 
140
  /**
163
  'hide_empty' => false
164
  );
165
 
166
+ $categories = get_categories( $args );
 
167
  $category_count = count( $categories );
168
 
169
  //Get Badges
173
 
174
  $query = new WP_Query( $args );
175
 
176
+ $badges_list_tabs = array();
177
+ $badges_list_panels = array();
178
 
179
+ if ( $achievement_tabs == 1 ) {
 
180
 
181
+ $counter = 1;
 
 
 
 
 
 
 
 
182
 
183
+ foreach ( $categories as $category ) {
 
184
 
185
+ $category_id = $category->cat_ID;
186
+ $category_name = $category->cat_name;
187
+ $category_badges = mycred_get_badges_by_term_id( $category_id );
188
+ $badges_count = count( $category_badges );
189
 
190
+ if ( $badges_count > 0 ) {
191
+
192
+ $badges_list_tabs[ $category_id ] = '<li data-id="' . $category_id . '" '. ( $counter == 1 ? 'class="active"' : '' ) .'>';
193
+ $badges_list_tabs[ $category_id ] .= $category_name . '<span class="mycred-badge-count">' . $badges_count . '</span>';
194
+ $badges_list_tabs[ $category_id ] .= '</li>';
195
 
196
+ $badges_list_panels[ $category_id ] = '<div data-id="'.$category_id.'" class="mycred-badges-list-panel '. ( $counter == 1 ? 'active' : '' ) .'">';
197
+
198
+ foreach ( $category_badges as $badge ) {
 
 
 
 
 
 
 
 
 
199
 
200
+ $badge_id = $badge->ID;
201
 
202
+ $badge_object = mycred_get_badge( $badge_id );
 
203
 
204
+ $image_url = $badge_object->main_image_url;
205
 
206
+ $has_earned = $badge_object->user_has_badge( $user_id ) ? 'earned' : 'not-earned';
207
 
208
+ $badges_list_panels[ $category_id ] .= '<div class="mycred-badges-list-item '. $has_earned .'" data-url="' . mycred_get_permalink( $badge_id ) . '">';
 
 
 
 
209
 
210
+ if ( $image_url ) {
211
+
212
+ $badges_list_panels[ $category_id ] .= '<img src="' . esc_url( $image_url ) . '" alt="Badge Image">';
213
+
214
+ }
215
 
216
+ $badges_list_panels[ $category_id ] .= '<div class="mycred-left"><h3>' . $badge->post_title . '</h3>' . $badge->post_excerpt . '</div>';
217
+ $badges_list_panels[ $category_id ] .= '<div class="clear"></div>';
218
+ $badges_list_panels[ $category_id ] .= '</div>';
219
+
220
+ }
221
 
222
+ $badges_list_panels[ $category_id ] .= '</div>';
223
 
224
+ $counter++;
225
 
226
+ }
227
+
228
+ }
229
 
230
+ wp_reset_query();
231
 
232
+ }
233
+
234
+ if ( $achievement_tabs == 1 ) {
235
+
236
+ if ( $category_count > 0 ) {?>
237
+
238
+ <div class="mycred-badges-list">
239
+ <div class="mycred-badges-list-nav">
240
+ <ul class="mycred-badges-list-tabs">
241
+ <?php
242
+ foreach ( $badges_list_tabs as $id => $element ) {
243
+
244
+ echo $element;
245
+
246
+ }
247
  ?>
248
+ </ul>
249
+ </div>
250
+ <div class="mycred-badges-list-panels">
251
+ <?php
252
+ foreach ( $badges_list_panels as $id => $element ) {
253
+
254
+ echo $element;
255
 
256
+ }
257
+ ?>
258
+ </div>
259
+ </div>
260
  <?php
261
+ }
262
+ else {
263
+
264
+ echo 'First Create Achievements Containing Badges';
265
+
266
+ }
267
+ ?>
268
+
269
+ <?php
270
  }
271
  else {
272
+
273
  //Show Badges
274
  while ( $query->have_posts() ) : $query->the_post();
275
 
283
 
284
  $category = mycred_get_badge_type( $badge_id );
285
 
286
+ $categories = explode( ',', $category );
287
 
288
  ?>
289
  <div class="mycred-badges-list-item <?php echo $has_earned; ?>" data-url="<?php echo mycred_get_permalink( $badge_id );?>">
297
  <?php
298
  if( $category_count > 0 ) {
299
 
300
+ foreach ( $categories as $category ) {
301
 
302
  if( $category != '' ) {
303
+
304
  echo '<sup class="mycred-sup-category">'.$category.'</sup>';
305
+
306
  }
307
 
308
  }
315
  </div>
316
  <?php
317
  endwhile;
 
 
318
  }
319
  ?>
 
320
  <script type="text/javascript">
321
 
322
  jQuery(document).ready(function(){
327
 
328
  });
329
 
330
+ jQuery('.mycred-badges-list-tabs li').click(function(){
331
+
332
+ jQuery('.mycred-badges-list-tabs li').removeClass('active');
333
+ jQuery( this ).addClass('active');
334
+
335
+ jQuery('.mycred-badges-list-panel').removeClass('active');
336
+ jQuery('.mycred-badges-list-panel[data-id="'+ jQuery(this).data('id') +'"]').addClass('active');
337
+
338
+ });
339
+
340
  });
341
 
342
  </script>
addons/badges/myCRED-addon-badges.php CHANGED
@@ -280,11 +280,11 @@ if ( ! class_exists( 'myCRED_Badge_Module' ) ) :
280
  public function register_badge_category() {
281
 
282
  $labels = [
283
- 'name' => __( 'Achievement Type', 'mycred' ),
284
- 'menu_name' => __( 'Achievement Type', 'mycred' ),
285
- 'all_items' => __( 'All Achievements', 'mycred' ),
286
  'add_new_item' => __( 'Add New Achievement', 'mycred' ),
287
- 'parent_item' => __( 'Parent Achievement', 'mycred' ),
288
  ];
289
 
290
  $object_type = [
@@ -476,8 +476,8 @@ if ( ! class_exists( 'myCRED_Badge_Module' ) ) :
476
 
477
  add_submenu_page(
478
  MYCRED_SLUG,
479
- __( 'Achievements', 'mycred' ),
480
- __( 'Achievements', 'mycred' ),
481
  $this->core->get_point_editor_capability(),
482
  'edit-tags.php?post_type=' . MYCRED_BADGE_KEY . '&taxonomy=' . MYCRED_BADGE_CATEGORY
483
  );
@@ -1962,12 +1962,22 @@ th#badge-users { width: 10%; }
1962
 
1963
  $mycred = mycred();
1964
 
1965
- $show_level_description = $mycred->core["badges"]["show_level_description"] == '1' ? true : false;
1966
- $show_congo_text = $mycred->core["badges"]["show_congo_text"] == '1' ? true : false;
1967
- $show_levels = $mycred->core["badges"]["show_levels"] == '1' ? true : false;
1968
- $show_level_points = $mycred->core["badges"]["show_level_points"] == '1' ? true : false;
1969
- $show_steps_to_achieve = $mycred->core["badges"]["show_steps_to_achieve"] == '1' ? true : false;
1970
- $show_earners = $mycred->core["badges"]["show_earners"] == '1' ? true : false;
 
 
 
 
 
 
 
 
 
 
1971
 
1972
  //Badge ID
1973
  $badge_id = $post->ID;
@@ -1993,7 +2003,7 @@ th#badge-users { width: 10%; }
1993
  $content .= '<div class="mycred-badge-congratulation-msg">' . $badge_object->congratulation_msg . '</div>';
1994
  }
1995
  }
1996
-
1997
  $content .= '<img src="' . $badge_image_url . '" class="mycred-badge-image" alt="">';
1998
 
1999
  //Level Description
@@ -2016,7 +2026,11 @@ th#badge-users { width: 10%; }
2016
  $levels = mycred_show_badge_requirements( $badge_id );
2017
 
2018
  foreach ( $levels as $id => $level ) {
2019
- $level_image_url = $level["image"];
 
 
 
 
2020
 
2021
  $heading = $level["heading"];
2022
 
280
  public function register_badge_category() {
281
 
282
  $labels = [
283
+ 'name' => __( 'Achievement Types', 'mycred' ),
284
+ 'menu_name' => __( 'Achievement Types', 'mycred' ),
285
+ 'all_items' => __( 'Achievement Types', 'mycred' ),
286
  'add_new_item' => __( 'Add New Achievement', 'mycred' ),
287
+ 'parent_item' => __( 'Parent Achievement Type', 'mycred' ),
288
  ];
289
 
290
  $object_type = [
476
 
477
  add_submenu_page(
478
  MYCRED_SLUG,
479
+ __( 'Achievement Types', 'mycred' ),
480
+ __( 'Achievement Types', 'mycred' ),
481
  $this->core->get_point_editor_capability(),
482
  'edit-tags.php?post_type=' . MYCRED_BADGE_KEY . '&taxonomy=' . MYCRED_BADGE_CATEGORY
483
  );
1962
 
1963
  $mycred = mycred();
1964
 
1965
+ $show_level_description = false;
1966
+ $show_congo_text = false;
1967
+ $show_levels = false;
1968
+ $show_level_points = false;
1969
+ $show_steps_to_achieve = false;
1970
+ $show_earners = false;
1971
+
1972
+ if ( is_array( $mycred->core ) && array_key_exists('badges', $mycred->core ) )
1973
+ {
1974
+ $show_level_description = $mycred->core["badges"]["show_level_description"] == '1' ? true : false;
1975
+ $show_congo_text = $mycred->core["badges"]["show_congo_text"] == '1' ? true : false;
1976
+ $show_levels = $mycred->core["badges"]["show_levels"] == '1' ? true : false;
1977
+ $show_level_points = $mycred->core["badges"]["show_level_points"] == '1' ? true : false;
1978
+ $show_steps_to_achieve = $mycred->core["badges"]["show_steps_to_achieve"] == '1' ? true : false;
1979
+ $show_earners = $mycred->core["badges"]["show_earners"] == '1' ? true : false;
1980
+ }
1981
 
1982
  //Badge ID
1983
  $badge_id = $post->ID;
2003
  $content .= '<div class="mycred-badge-congratulation-msg">' . $badge_object->congratulation_msg . '</div>';
2004
  }
2005
  }
2006
+
2007
  $content .= '<img src="' . $badge_image_url . '" class="mycred-badge-image" alt="">';
2008
 
2009
  //Level Description
2026
  $levels = mycred_show_badge_requirements( $badge_id );
2027
 
2028
  foreach ( $levels as $id => $level ) {
2029
+
2030
+ $level_image_url = '';
2031
+
2032
+ if( !empty( $level_image_url ) )
2033
+ $level_image_url = $level["image"];
2034
 
2035
  $heading = $level["heading"];
2036
 
addons/email-notices/includes/mycred-email-object.php CHANGED
@@ -361,12 +361,15 @@ if ( ! class_exists( 'myCRED_Email' ) ) :
361
 
362
  if ( ! empty( $content ) ) {
363
 
364
- if ( is_array( $event ) && array_key_exists( 'ref_id', $event ) )
365
  {
366
- $rank = mycred_get_rank( $event['ref_id'] );
367
- $rank_title = $rank->title;
368
- $content = str_replace( '%rank_title%', $rank_title, $content );
369
- }
 
 
 
370
 
371
  $mycred = mycred( $point_type );
372
 
361
 
362
  if ( ! empty( $content ) ) {
363
 
364
+ if ( class_exists( 'myCRED_Ranks_Module' ) )
365
  {
366
+ if ( is_array( $event ) && array_key_exists( 'ref_id', $event ) )
367
+ {
368
+ $rank = mycred_get_rank( $event['ref_id'] );
369
+ $rank_title = $rank->title;
370
+ $content = str_replace( '%rank_title%', $rank_title, $content );
371
+ }
372
+ }
373
 
374
  $mycred = mycred( $point_type );
375
 
assets/css/mycred-front.css CHANGED
@@ -1 +1 @@
1
- .widget .myCRED-rank{float:right}.widget .myCRED-rank span{padding-right:4px;color:gray}.widget .myCRED-balance{display:block;margin-bottom:24px;text-align:center;font-size:larger}.widget .myCRED-leaderboard .cred{float:right}.widget .myCRED-leaderboard .first-item{font-size:110%}.widget .myCRED-history{padding:0;margin:0;list-style-type:none}.widget .myCRED-history .creds{float:right;padding:0;clear:left}.mycred-nav-rank img{display:inherit}input.mycred-submit-transfer.btn.btn-primary.btn-block.btn-lg{margin:20px 0}input.mycred-autofill.form-control.ui-autocomplete-input{margin-left:20px}input.form-control{margin-left:28px;margin-top:10px}.site .button:focus,.wp-block-button .wp-block-button__link:focus,.wp-block-search__button:focus,input[type=reset]:focus,input[type=submit]:focus{background:0 0;outline-offset:-6px;outline:2px solid currentColor}.site textarea:focus,input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus{color:var(--form--color-text);outline-offset:2px;outline:0}.site .button:focus,.wp-block-button .wp-block-button__link:focus,.wp-block-search__button:focus,input[type=reset]:focus,input[type=submit]:focus{background:0 0;outline-offset:-6px;outline:0}span.form-control-static{text-transform:capitalize;font-weight:400;margin-left:20px}p.form-control-static{margin:0 16px}form#mycred-transfer-form-transfer{background:#f9f9f9;padding:25px;margin:150px 0;box-shadow:0 0 20px 0 rgb(0 0 0 / 20%),0 5px 5px 0 rgb(0 0 0 / 24%);border-radius:10px}form#mycred-transfer-form-donation{background:#f9f9f9;padding:25px;margin:150px 0;box-shadow:0 0 20px 0 rgb(0 0 0 / 20%),0 5px 5px 0 rgb(0 0 0 / 24%);border-radius:10px}input#mycred-transfer-form-message-field{margin-left:24px}span#mycred-transfer-form-amount-field{margin-left: 28px;}.mycred-badges-list-item img{width: 25%;display: inline-block;float:left;} /*myCRED Badges*/ .mycred-badges-list-item h3{color: red;}.mycred-badges-list-item .mycred-left{float: left; width : 72%;margin-left: 15px;}.mycred-badges-list-item .clear{clear : both}.mycred-badges-list-item .mycred-mr-l{margin-left: 25px;}.mycred-badges-list-item { border-top: 0px solid #9c9c9c;min-height: 180px;padding: 15px 0;cursor: pointer;} .mycred-badges-list-item ~ .mycred-badges-list-item { border-top-width: 1px; } .mycred-badges-list h3:first-child {margin-bottom: 15px;margin-top:0px;}.mycred-badges-list-item.not-earned {filter: grayscale(1);}.mycred-tabset .mycred-badge-count {color: #ffffff;font-size: 18px;background: #0173aa;border-radius: 50%;padding: 0px 7px;}.mycred-badges-list-item .mycred-sup-category {background: #0173aa;color: #fff;margin: 0 3px;padding: 2px 6px;font-size: 14px;border-radius: 4px;} /*myCRED Badges Tabs*/ .mycred-tabset>input[type=radio]{position:absolute;left:-200vw}.mycred-tabset .mycred-tab-panel{display:none}.mycred-tabset>input:first-child:checked~.mycred-tab-panels>.mycred-tab-panel:first-child,.mycred-tabset>input:nth-child(11):checked~.mycred-tab-panels>.mycred-tab-panel:nth-child(6),.mycred-tabset>input:nth-child(3):checked~.mycred-tab-panels>.mycred-tab-panel:nth-child(2),.mycred-tabset>input:nth-child(5):checked~.mycred-tab-panels>.mycred-tab-panel:nth-child(3),.mycred-tabset>input:nth-child(7):checked~.mycred-tab-panels>.mycred-tab-panel:nth-child(4),.mycred-tabset>input:nth-child(9):checked~.mycred-tab-panels>.mycred-tab-panel:nth-child(5){display:block}.mycred-tabset>label{position:relative;display:inline-block;padding:15px 15px 25px;border:1px solid transparent;border-bottom:0;cursor:pointer;font-weight:600}.mycred-tabset>label::after{content:"";position:absolute;left:15px;bottom:10px;width:22px;height:4px;background:#8d8d8d}.mycred-tabset>input:focus+label,.mycred-tabset>label:hover{color:#0173aa}.mycred-tabset>input:checked+label::after,.mycred-tabset>input:focus+label::after,.mycred-tabset>label:hover::after{background:#0173aa}.mycred-tabset>input:checked+label{border-color:#ccc;border-bottom:1px solid #fff;margin-bottom:-1px}.mycred-tab-panel{padding:30px 0;border-top:1px solid #ccc}.mycred-tabset{max-width:65em}.mycred-badge-page .mycred-level-image {width: 150px;}.mycred-badge-page .mycred-badge-page-level {float: left;width: 30%;text-align: center;}.mycred-badge-page .mycred-level-requirement {font-size: 19px; text-align: left;}.mycred-badge-image {width: 150px;}.mycred-badge-page-level .mycred-level-image {width: 70px;}.mycred-float-left{ float: left; }.mycred-float-right{ float: right; }.mycred-badge-earner-grid img{width: 150px; height: 150px; padding: 10px;}.mycred-badge-earner-grid h4{margin: 0;}.mycred-badge-earner-grid{text-align: center;}.mycred-badges-list-item p{margin-top:0px }.mycred-left{float:left}.mycred-right{ float: right }.mycred-clear{ clear : both; }.mycred-remove-margin{ margin : 0px; }.mycred-remove-padding{ padding: 0px; }.mycred-evidence-page .intro{ margin-left: 45px; }.mycred-evidence-page p{ font-size: 19px;margin: 0; }.mycred-evidence-page a{ text-decoration: none; color: red; }.mycred-evidence-page .dashicons-yes-alt{ line-height: inherit; color : green; }.mycred-badge-page-level ul { margin-left: 0px;padding-left: 20px; }.mycred-badge-page-level .mycred-level-reward { text-align: left; }.mycred-level-reward{margin-bottom: 15px;}.mycred-badge-page-level{margin-right: 15px;}.mycred-badges-list-item:hover{background: #efefef;}.mycred-badge-congratulation-msg {background: #f0f0f0;padding: 25px 10px;margin: 20px 0px;border-radius: 5px;}li.mycred-strike-off {text-decoration: line-through;}
1
+ .widget .myCRED-rank{float:right}.widget .myCRED-rank span{padding-right:4px;color:gray}.widget .myCRED-balance{display:block;margin-bottom:24px;text-align:center;font-size:larger}.widget .myCRED-leaderboard .cred{float:right}.widget .myCRED-leaderboard .first-item{font-size:110%}.widget .myCRED-history{padding:0;margin:0;list-style-type:none}.widget .myCRED-history .creds{float:right;padding:0;clear:left}.mycred-nav-rank img{display:inherit}input.mycred-submit-transfer.btn.btn-primary.btn-block.btn-lg{margin:20px 0}input.mycred-autofill.form-control.ui-autocomplete-input{margin-left:20px}input.form-control{margin-left:28px;margin-top:10px}.site .button:focus,.wp-block-button .wp-block-button__link:focus,.wp-block-search__button:focus,input[type=reset]:focus,input[type=submit]:focus{background:0;outline-offset:-6px;outline:2px solid currentColor}.site textarea:focus,input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus{color:var(--form--color-text);outline-offset:2px;outline:0}.site .button:focus,.wp-block-button .wp-block-button__link:focus,.wp-block-search__button:focus,input[type=reset]:focus,input[type=submit]:focus{background:0;outline-offset:-6px;outline:0}span.form-control-static{text-transform:capitalize;font-weight:400;margin-left:20px}p.form-control-static{margin:0 16px}form#mycred-transfer-form-transfer{background:#f9f9f9;padding:25px;margin:150px 0;box-shadow:0 0 20px 0 rgb(0 0 0 / 20%),0 5px 5px 0 rgb(0 0 0 / 24%);border-radius:10px}form#mycred-transfer-form-donation{background:#f9f9f9;padding:25px;margin:150px 0;box-shadow:0 0 20px 0 rgb(0 0 0 / 20%),0 5px 5px 0 rgb(0 0 0 / 24%);border-radius:10px}input#mycred-transfer-form-message-field{margin-left:24px}span#mycred-transfer-form-amount-field{margin-left:28px}.mycred-badges-list-item img{width:25%;display:inline-block;float:left}.mycred-badges-list-item h3{color:red}.mycred-badges-list-item .mycred-left{float:left;width:72%;margin-left:15px}.mycred-badges-list-item .clear{clear:both}.mycred-badges-list-item .mycred-mr-l{margin-left:25px}.mycred-badges-list-item{border-top:0 solid #9c9c9c;min-height:180px;padding:15px 0;cursor:pointer}.mycred-badges-list-item~.mycred-badges-list-item{border-top-width:1px}.mycred-badges-list h3:first-child{margin-bottom:15px;margin-top:0}.mycred-badges-list-item.not-earned{filter:grayscale(1)}.mycred-tabset .mycred-badge-count{color:#fff;font-size:18px;background:#0173aa;border-radius:50%;padding:0 7px}.mycred-badges-list-item .mycred-sup-category{background:#0173aa;color:#fff;margin:0 3px;padding:2px 6px;font-size:14px;border-radius:4px}ul.mycred-badges-list-tabs{list-style-type:none;display:flex;margin:0;padding:0}ul.mycred-badges-list-tabs li{padding:10px;cursor:pointer;border:1px solid transparent;margin-right:5px;margin-bottom:-1px}ul.mycred-badges-list-tabs li.active{border:1px solid #47525d;border-bottom:1px solid #ccc}.mycred-badges-list-panels{border-top:1px solid #47525d}.mycred-badges-list-panel.active{display:initial}.mycred-badges-list-panel{display:none}.mycred-badge-count{color:#fff;font-size:18px;background:#0173aa;border-radius:50%;padding:0 7px;margin-left:5px}.mycred-badge-page .mycred-level-image{width:150px}.mycred-badge-page .mycred-badge-page-level{float:left;width:30%;text-align:center}.mycred-badge-page .mycred-level-requirement{font-size:19px;text-align:left}.mycred-badge-image{width:150px}.mycred-badge-page-level .mycred-level-image{width:70px}.mycred-float-left{float:left}.mycred-float-right{float:right}.mycred-badge-earner-grid img{width:150px;height:150px;padding:10px}.mycred-badge-earner-grid h4{margin:0}.mycred-badge-earner-grid{text-align:center}.mycred-badges-list-item p{margin-top:0}.mycred-left{float:left}.mycred-right{float:right}.mycred-clear{clear:both}.mycred-remove-margin{margin:0}.mycred-remove-padding{padding:0}.mycred-evidence-page .intro{margin-left:45px}.mycred-evidence-page p{font-size:19px;margin:0}.mycred-evidence-page a{text-decoration:none;color:red}.mycred-evidence-page .dashicons-yes-alt{line-height:inherit;color:green}.mycred-badge-page-level ul{margin-left:0;padding-left:20px}.mycred-badge-page-level .mycred-level-reward{text-align:left}.mycred-level-reward{margin-bottom:15px}.mycred-badge-page-level{margin-right:15px}.mycred-badges-list-item:hover{background:#efefef}.mycred-badge-congratulation-msg{background:#f0f0f0;padding:25px 10px;margin:20px 0;border-radius:5px}li.mycred-strike-off{text-decoration:line-through}
includes/mycred-about.php CHANGED
@@ -356,7 +356,7 @@ if ( !is_mycred_ready() ) {
356
 
357
  <div class="button-wrap mycred-clear">
358
  <div class="left">
359
- <a href="<?php echo admin_url( 'plugins.php?page=' . MYCRED_SLUG . '-setup&mycred_tour_guide=1' ) ?>" id="first_setup" class="mycred-btn mycred-btn-block mycred-btn-lg mycred-btn-orange mycred-footer-btn">
360
  Setup myCred
361
  </a>
362
 
@@ -403,7 +403,7 @@ function mycred_about_page() {
403
  <?php
404
  if ( !is_mycred_ready() ) {
405
  ?>
406
- <a href="<?php echo admin_url( 'plugins.php?page=' . MYCRED_SLUG . '-setup&mycred_tour_guide=1' ) ?>" id="first_setup" class="mycred-btn mycred-btn-block mycred-btn-lg mycred-btn-orange">
407
  Setup myCred
408
  </a>
409
  <?php
356
 
357
  <div class="button-wrap mycred-clear">
358
  <div class="left">
359
+ <a href="<?php echo admin_url( 'plugins.php?page=' . MYCRED_SLUG . '-setup&mycred_tour_guide=1' ) ?>" id="first_setup" onclick="startTour()" class="mycred-btn mycred-btn-block mycred-btn-lg mycred-btn-orange mycred-footer-btn">
360
  Setup myCred
361
  </a>
362
 
403
  <?php
404
  if ( !is_mycred_ready() ) {
405
  ?>
406
+ <a href="<?php echo admin_url( 'plugins.php?page=' . MYCRED_SLUG . '-setup&mycred_tour_guide=1' ) ?>" id="first_setup" onclick="startTour()" class="mycred-btn mycred-btn-block mycred-btn-lg mycred-btn-orange">
407
  Setup myCred
408
  </a>
409
  <?php
includes/mycred-install.php CHANGED
@@ -89,8 +89,6 @@ if ( ! class_exists( 'myCRED_Install' ) ) :
89
  public static function activate() {
90
 
91
  $mycred = mycred();
92
-
93
- set_transient( '_mycred_activation_redirect', true, 60 );
94
 
95
  // Add general settings
96
  add_option( 'mycred_version', myCRED_VERSION );
@@ -116,8 +114,6 @@ if ( ! class_exists( 'myCRED_Install' ) ) :
116
  if ( isset( $_GET['activate-multi'] ) )
117
  return;
118
 
119
- set_transient( '_mycred_activation_redirect', true, 60 );
120
-
121
  flush_rewrite_rules();
122
  }
123
 
89
  public static function activate() {
90
 
91
  $mycred = mycred();
 
 
92
 
93
  // Add general settings
94
  add_option( 'mycred_version', myCRED_VERSION );
114
  if ( isset( $_GET['activate-multi'] ) )
115
  return;
116
 
 
 
117
  flush_rewrite_rules();
118
  }
119
 
includes/mycred-setup.php CHANGED
@@ -232,7 +232,7 @@ jQuery(function($) {
232
 
233
  if ( $( '#toggle-advanced-options' ).hasClass( 'open' ) )
234
  $( '#toggle-advanced-options' ).click();
235
-
236
 
237
  },
238
  success : function( response ) {
232
 
233
  if ( $( '#toggle-advanced-options' ).hasClass( 'open' ) )
234
  $( '#toggle-advanced-options' ).click();
235
+
236
 
237
  },
238
  success : function( response ) {
mycred.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: myCred
4
  * Plugin URI: https://mycred.me
5
  * Description: An adaptive points management system for WordPress powered websites.
6
- * Version: 2.1.0.2
7
  * Tags: point, credit, loyalty program, engagement, reward, woocommerce rewards
8
  * Author: myCred
9
  * Author URI: https://mycred.me
@@ -20,7 +20,7 @@ if ( ! class_exists( 'myCRED_Core' ) ) :
20
  final class myCRED_Core {
21
 
22
  // Plugin Version
23
- public $version = '2.1.0.2';
24
 
25
  // Instnace
26
  protected static $_instance = NULL;
@@ -817,16 +817,6 @@ if ( ! class_exists( 'myCRED_Core' ) ) :
817
 
818
  // Let others play
819
  do_action( 'mycred_admin_init' );
820
-
821
- // When the plugin is activated after an update, redirect to the about page
822
- // Checks for the _mycred_activation_redirect transient
823
- if ( get_transient( '_mycred_activation_redirect' ) === apply_filters( 'mycred_active_redirect', false ) )
824
- return;
825
-
826
- delete_transient( '_mycred_activation_redirect' );
827
-
828
- wp_safe_redirect( add_query_arg( array( 'page' => MYCRED_SLUG . '-about' ), admin_url( 'index.php' ) ) );
829
- die;
830
  }
831
 
832
  /**
3
  * Plugin Name: myCred
4
  * Plugin URI: https://mycred.me
5
  * Description: An adaptive points management system for WordPress powered websites.
6
+ * Version: 2.1.0.3
7
  * Tags: point, credit, loyalty program, engagement, reward, woocommerce rewards
8
  * Author: myCred
9
  * Author URI: https://mycred.me
20
  final class myCRED_Core {
21
 
22
  // Plugin Version
23
+ public $version = '2.1.0.3';
24
 
25
  // Instnace
26
  protected static $_instance = NULL;
817
 
818
  // Let others play
819
  do_action( 'mycred_admin_init' );
 
 
 
 
 
 
 
 
 
 
820
  }
821
 
822
  /**
readme.txt CHANGED
@@ -2,8 +2,8 @@
2
  Contributors: mycred,wpexpertsio
3
  Tags: badges, gamification, loyalty, points, rewards
4
  Requires at least: 4.8
5
- Tested up to: 5.7.1
6
- Stable tag: 2.1.0.2
7
  Requires PHP: 7.0
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
@@ -14,6 +14,8 @@ An adaptive and powerful points management system for WordPress powered websites
14
 
15
  myCred is an intelligent and adaptive **points management system** that allows you to build and manage a broad range of digital rewards including points, ranks and, badges on your WordPress/WooCommerce powered website.
16
 
 
 
17
  Build **brand loyalty** by rewarding your customers through store reward systems, community leaderboards, monetizing your website content, etc. - The possibilities are endless.
18
 
19
  **Increase customer engagement tenfold - Rewarding your users for community engagement will help your business grow.**
@@ -26,7 +28,7 @@ myCred allows **THREE different ways** through which you can award your users:
26
 
27
  * **Ranks -** Set ranks within your leaderboards and reward your users with significant perks after they reach a certain milestone.
28
 
29
- * **Badges -** Boost your users participation by rewarding them for their exceptional performance.
30
 
31
  = BECOME A VIP MEMBER OF THE MYCRED MEMBERSHIP CLUB =
32
 
@@ -122,20 +124,20 @@ Not only will you be able to manually adjust the point balance system at any tim
122
 
123
  = AWARD OR DEDUCT POINTS AUTOMATICALLY =
124
 
125
- **myCred** supports an extensive set of WordPress interactions through which you can automatically give/take points from a user. These actions can be as simple as logging in, publishing content, or leaving a comment. These automatic adjustments are managed by a feature called [Hooks](https://mycred.me/about/features/#automatic-points) that can be set up in your admin area.
126
 
127
 
128
  = DEDICATED LOG =
129
 
130
- Each time **myCred** adds or deducts points from a user, the adjustment is [logged](https://mycred.me/about/features/#account-history) in a dedicated log, allowing your users to browse their history. This log keeps a record of your user's accountability, badges, and ranks, among other useful statistics.
131
 
132
  This log data can be converted into charts to help you visualize the usage and circulation of points on your website.
133
 
134
  You can achieve the following features by using a dedicated log for your points system:
135
 
136
  * Set a limit to the maximum number of times each hook can give out points to your user.
137
- * Badges will use the log's data to determine which user has earned a badge.
138
- * Add-ons such as "Sell Content" use the log to keep track of users who have purchased posts from your website.
139
  * Add-ons use the log to make sure that a user does not gain repetitive points for the same interaction within a given time frame.
140
 
141
  = BUILT-IN ADD-ONS =
@@ -148,7 +150,7 @@ myCred is much more than just a point management system - The plugin comes with
148
  **- Email notifications:** Setup email notifications for status updates.
149
  **- Gateway:** Let users pay with points in your store.
150
  **- Notifications:** Enable popup notifications that display status updates.
151
- **- Ranks:** Create ranks based on the user's point balance.
152
  **- Sell Content:** Sell your content in exchange for points.
153
  **- Statistics:** Get a statistical overview of points in circulation, etc.
154
  **- Transfers:** Allow your users to transfer points to other users.
@@ -159,7 +161,7 @@ Power your WordPress website with 50+ add-ons ranging from categories like **Gam
159
 
160
  myCred supports some of the most popular WordPress plugins like **BuddyPress, WooCommerce, Jetpack, Contact Form 7, Disqus, Gravity Forms,** among countless others.
161
 
162
- **Simple & organized** To keep your admin area organized, myCred will only show features and setting for those third-party plugins that are installed and enabled.
163
 
164
 
165
  = INTEGRATED WITH THE MOST POPULAR LEARNING MANAGEMENT SYSTEMS =
@@ -231,7 +233,7 @@ You can find extensive [documentation](http://codex.mycred.me/) on myCred relate
231
 
232
  = Customizations =
233
 
234
- myCred has the ability to "do-it-all" because we have put in a lot of effort to make sure that the supported plugins are as developer-friendly as possible. If you need to build a custom feature, simply submit a [request for a quote](https://mycred.me/customize/request-quote/) via the myCred website.
235
 
236
 
237
  = Support =
@@ -274,8 +276,8 @@ You can find a list of [frequently asked questions](https://mycred.me/about/faq/
274
 
275
  == Upgrade Notice ==
276
 
277
- = 2.0.1 =
278
- Bug fixes release.
279
 
280
  = 2.0 =
281
  The banking module have been replaced by Central deposite module, and interest related functionality has been removed. If you are using simple interest or compound interest related functionality, you will fine the respective functionalities missing after the update.
@@ -361,11 +363,16 @@ Bug fixes release.
361
 
362
  == Changelog ==
363
 
364
- = 2.1.0.2 =
 
 
 
 
 
365
  Improvement - Code optimization
366
 
367
- = 2.1.0.1 =
368
- Fix - Remove warnings
369
 
370
  = 2.1 =
371
  NEW - Open badge functionality in myCred Badge addon.
@@ -376,20 +383,20 @@ NEW - Added support into Badges for Anniversary hook.
376
  NEW - Added support into Badges for wooCommerce purchase reward.
377
  NEW - Added %rank_title% template tag support in Email Notifications.
378
  NEW - Added attributes in mycred_transfer shortcode.
379
- TWEAK - Removed deprecated functions.
380
- TWEAK - Code Improvement.
381
- TWEAK - Improve styling of mycred_transfer shortcode.
382
  FIX - mycred_history shortcode pagination not working properly when cache enabled.
383
  FIX - Ranks weren't working properly on the current balance.
384
  FIX - mycred_sell_this shortcode not working in the bbPress topic
385
  FIX - The central deposit missing log entry in some cases.
 
 
 
386
 
387
  = 2.0.2 =
388
  New - Added compatibility for multiple currencies in CashCred Paypal addon
389
  Fix - Php erros in myCred woocommerce gateway
390
  Fix - Points on daily visit hooks not working in some conditions
391
  Fix - myCred CashCred multisite issues
392
- Improvement - license system
393
 
394
  = 2.0.1 =
395
  FIX - myCred membership license not activating for members
@@ -550,7 +557,7 @@ TWEAK - myCred Central Deposit
550
  - **FIX** - setCookie function error when adding new hook.
551
 
552
  = 1.8.4 =
553
- - **NEW** - Introduce a new filter "mycred_option_id" for manipulating hooks.
554
  - **NEW** - Add new action "mycred_pref_hooks" on mycred hooks page
555
  - **TWEAK** - Limits are showing for Approved comments hook in [mycred_hook_table] shortcode.
556
  - **FIX** - Sell content undefined offset in Backend Pages & Posts.
2
  Contributors: mycred,wpexpertsio
3
  Tags: badges, gamification, loyalty, points, rewards
4
  Requires at least: 4.8
5
+ Tested up to: 5.7
6
+ Stable tag: 2.1.0.3
7
  Requires PHP: 7.0
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
14
 
15
  myCred is an intelligent and adaptive **points management system** that allows you to build and manage a broad range of digital rewards including points, ranks and, badges on your WordPress/WooCommerce powered website.
16
 
17
+ [youtube https://www.youtube.com/watch?v=-M19tzYo1jo]
18
+
19
  Build **brand loyalty** by rewarding your customers through store reward systems, community leaderboards, monetizing your website content, etc. - The possibilities are endless.
20
 
21
  **Increase customer engagement tenfold - Rewarding your users for community engagement will help your business grow.**
28
 
29
  * **Ranks -** Set ranks within your leaderboards and reward your users with significant perks after they reach a certain milestone.
30
 
31
+ * **Badges -** Boost your users participation by rewarding them for their exceptional performance.
32
 
33
  = BECOME A VIP MEMBER OF THE MYCRED MEMBERSHIP CLUB =
34
 
124
 
125
  = AWARD OR DEDUCT POINTS AUTOMATICALLY =
126
 
127
+ **myCred** supports an extensive set of WordPress interactions through which you can automatically give/take points from a user. These actions can be as simple as logging in, publishing content, or leaving a comment. These automatic adjustments are managed by a feature called [Hooks](https://mycred.me/about/features/#automatic-points)” that can be set up in your admin area.
128
 
129
 
130
  = DEDICATED LOG =
131
 
132
+ Each time **myCred** adds or deducts points from a user, the adjustment is [logged](https://mycred.me/about/features/#account-history) in a dedicated log, allowing your users to browse their history. This log keeps a record of your users accountability, badges, and ranks, among other useful statistics.
133
 
134
  This log data can be converted into charts to help you visualize the usage and circulation of points on your website.
135
 
136
  You can achieve the following features by using a dedicated log for your points system:
137
 
138
  * Set a limit to the maximum number of times each hook can give out points to your user.
139
+ * Badges will use the logs data to determine which user has earned a badge.
140
+ * Add-ons such as “Sell Content” use the log to keep track of users who have purchased posts from your website.
141
  * Add-ons use the log to make sure that a user does not gain repetitive points for the same interaction within a given time frame.
142
 
143
  = BUILT-IN ADD-ONS =
150
  **- Email notifications:** Setup email notifications for status updates.
151
  **- Gateway:** Let users pay with points in your store.
152
  **- Notifications:** Enable popup notifications that display status updates.
153
+ **- Ranks:** Create ranks based on the users point balance.
154
  **- Sell Content:** Sell your content in exchange for points.
155
  **- Statistics:** Get a statistical overview of points in circulation, etc.
156
  **- Transfers:** Allow your users to transfer points to other users.
161
 
162
  myCred supports some of the most popular WordPress plugins like **BuddyPress, WooCommerce, Jetpack, Contact Form 7, Disqus, Gravity Forms,** among countless others.
163
 
164
+ **Simple & organized –** To keep your admin area organized, myCred will only show features and setting for those third-party plugins that are installed and enabled.
165
 
166
 
167
  = INTEGRATED WITH THE MOST POPULAR LEARNING MANAGEMENT SYSTEMS =
233
 
234
  = Customizations =
235
 
236
+ myCred has the ability to “do-it-all” because we have put in a lot of effort to make sure that the supported plugins are as developer-friendly as possible. If you need to build a custom feature, simply submit a [request for a quote](https://mycred.me/customize/request-quote/) via the myCred website.
237
 
238
 
239
  = Support =
276
 
277
  == Upgrade Notice ==
278
 
279
+ = 2.1 =
280
+ New features and Bug fixes.
281
 
282
  = 2.0 =
283
  The banking module have been replaced by Central deposite module, and interest related functionality has been removed. If you are using simple interest or compound interest related functionality, you will fine the respective functionalities missing after the update.
363
 
364
  == Changelog ==
365
 
366
+ = 2.1.0.3 =
367
+ FIX - Email notification issues.
368
+ FIX - Broken image if badge default image wasn't set.
369
+ FIX - mycred_my_badges width and height attributes wasn't working.
370
+
371
+ = 2.1.0.2 =
372
  Improvement - Code optimization
373
 
374
+ = 2.1.0.1 =
375
+ FIX - Remove warnings
376
 
377
  = 2.1 =
378
  NEW - Open badge functionality in myCred Badge addon.
383
  NEW - Added support into Badges for wooCommerce purchase reward.
384
  NEW - Added %rank_title% template tag support in Email Notifications.
385
  NEW - Added attributes in mycred_transfer shortcode.
 
 
 
386
  FIX - mycred_history shortcode pagination not working properly when cache enabled.
387
  FIX - Ranks weren't working properly on the current balance.
388
  FIX - mycred_sell_this shortcode not working in the bbPress topic
389
  FIX - The central deposit missing log entry in some cases.
390
+ TWEAK - Removed deprecated functions.
391
+ TWEAK - Code Improvement.
392
+ TWEAK - Improve styling of mycred_transfer shortcode.
393
 
394
  = 2.0.2 =
395
  New - Added compatibility for multiple currencies in CashCred Paypal addon
396
  Fix - Php erros in myCred woocommerce gateway
397
  Fix - Points on daily visit hooks not working in some conditions
398
  Fix - myCred CashCred multisite issues
399
+ TWEAK - license system
400
 
401
  = 2.0.1 =
402
  FIX - myCred membership license not activating for members
557
  - **FIX** - setCookie function error when adding new hook.
558
 
559
  = 1.8.4 =
560
+ - **NEW** - Introduce a new filter “mycred_option_id” for manipulating hooks.
561
  - **NEW** - Add new action "mycred_pref_hooks" on mycred hooks page
562
  - **TWEAK** - Limits are showing for Approved comments hook in [mycred_hook_table] shortcode.
563
  - **FIX** - Sell content undefined offset in Backend Pages & Posts.