Better Notifications for WordPress - Version 1.6.3

Version Description

  • 13th March 2017 =
  • Added: Support for the new Send to Any Email add-on.
  • Added: Support for Advanced Custom Field (ACF) front-end forms. Finally!
  • Updated: French translation (props @matcho).
  • Improved: The 'Lost Password' notifications now begin with 'User Lost Password' to make them easier to understand.
  • Fixed: The 'Reply To' fields weren't saving correctly.
  • Fixed: Ensure post shortcodes are rendered before sending (props @cliffpaulick).
  • Fixed: A minor issue with the custom field selection box when using the Custom Fields add-on.
Download this release

Release Info

Developer voltronik
Plugin Icon 128x128 Better Notifications for WordPress
Version 1.6.3
Comparing to
See all releases

Code changes from version 1.6.2 to 1.6.3

README.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: voltronik
3
  Donate link: https://betternotificationsforwp.com/donate/
4
  Tags: notification, email, push, sms, alert, HTML, customize, bulk, trigger, CC, BCC
5
  Requires at least: 3.5
6
- Tested up to: 4.7.2
7
- Stable tag: 1.6.2
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -29,12 +29,12 @@ Power-up your notifications using add-ons:
29
 
30
  [Custom Fields](https://betternotificationsforwp.com/downloads/custom-fields/) - Provides a number of new shortcodes allowing you to include data from custom fields and custom user fields created using [ACF](https://wordpress.org/plugins/advanced-custom-fields/).
31
 
 
 
32
  [Per-post Override](https://betternotificationsforwp.com/downloads/per-post-override/) - Override some of the settings of notifications directly when editing a post, page, or custom post type.
33
 
34
  [Update Reminder](https://betternotificationsforwp.com/downloads/update-reminder/) - Send a reminder to your users and/or user roles when a post, page, or custom post type hasn't been updated in a certain number of days.
35
 
36
- Send to Any Email - Coming Soon!
37
-
38
  Multisite Notifications - Coming Soon!
39
 
40
  ...and more coming soon!
@@ -47,7 +47,7 @@ The notifications that are currently available to use are:
47
  * New Comment / Comment Awaiting Moderation
48
  * New Trackback
49
  * New Pingback
50
- * Lost Password - For Admin
51
  * New User Registration - For Admin
52
  * Password Changed - For Admin
53
  * User Role Changed - For Admin
@@ -55,7 +55,7 @@ The notifications that are currently available to use are:
55
 
56
  **Transactional**
57
 
58
- * Lost Password - For User
59
  * Password Changed - For User
60
  * User Email Changed - For Admin
61
  * New User Registration - For User
@@ -134,18 +134,14 @@ Shortcodes can be used in the 'Subject' and 'Message Body' of your notifications
134
 
135
  The possibilities are endless!
136
 
137
- = Does this plugin work with Akismet? =
138
 
139
- Yes! There is an option for suppressing comments marked as SPAM by Akismet in the plugin settings.
140
 
141
  = Does this plugin work with Multisite? =
142
 
143
  Yes and no - some notifications work, others don't, and some are missing entirely. I do plan on adding full Multisite support at a later date however, this will be in the form of an add-on.
144
 
145
- = Can I send notifications to email addresses that aren't WordPress users? =
146
-
147
- No. This is to prevent SPAM and/or abuse of the plugin and to abide by anti-SPAM laws in various countries.
148
-
149
  = What isn't this plugin? =
150
 
151
  It's not designed to send out newsletters. There is no send-this-out-on-this-date style functionality included. There are many other great plugins available that you could use for that instead. Additionally, users cannot currently unsubscribe automatically from notifications so you'll have to work out how you manage unsubscribers manually.
@@ -160,7 +156,7 @@ This will very much depend on what notifications you're using the plugin for. Ou
160
 
161
  = Notifications aren't coming through! =
162
 
163
- First of all, follow [this article](https://betternotificationsforwp.com/how-can-i-receive-the-best-support/) about how to find out what might be causing the problem. Additionally, this [very handy answer](http://stackoverflow.com/questions/371/how-do-you-make-sure-email-you-send-programmatically-is-not-automatically-marked) on Stack Overflow explains what you might need to do to make sure that emails don't make it through to your user's SPAM / Junk folders. It's worth going through this and completing as much as you can.
164
 
165
  Many hosts place a limit on the number of emails that can be sent out within an hour so this may also cause some delay in emails arriving. MailPoet has a fairly extensive list of hosts and their corresponding email rate limits that's worth checking out [here](https://support.mailpoet.com/knowledgebase/lists-of-hosts-and-their-sending-limits/). Alternatively, please check with your host directly to find out what your limit is.
166
 
@@ -204,6 +200,15 @@ An older version might work but this is untested. A lot of the newer features re
204
 
205
  == Changelog ==
206
 
 
 
 
 
 
 
 
 
 
207
  = 1.6.2 - 17th February 2017 =
208
  * Fixed: The 'Shortcode Help' button wasn't working correctly for some of the new notifications.
209
 
3
  Donate link: https://betternotificationsforwp.com/donate/
4
  Tags: notification, email, push, sms, alert, HTML, customize, bulk, trigger, CC, BCC
5
  Requires at least: 3.5
6
+ Tested up to: 4.7.3
7
+ Stable tag: 1.6.3
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
29
 
30
  [Custom Fields](https://betternotificationsforwp.com/downloads/custom-fields/) - Provides a number of new shortcodes allowing you to include data from custom fields and custom user fields created using [ACF](https://wordpress.org/plugins/advanced-custom-fields/).
31
 
32
+ [Send to Any Email](https://betternotificationsforwp.com/downloads/send-to-any-email/) - Send notifications to non-WordPress Users.
33
+
34
  [Per-post Override](https://betternotificationsforwp.com/downloads/per-post-override/) - Override some of the settings of notifications directly when editing a post, page, or custom post type.
35
 
36
  [Update Reminder](https://betternotificationsforwp.com/downloads/update-reminder/) - Send a reminder to your users and/or user roles when a post, page, or custom post type hasn't been updated in a certain number of days.
37
 
 
 
38
  Multisite Notifications - Coming Soon!
39
 
40
  ...and more coming soon!
47
  * New Comment / Comment Awaiting Moderation
48
  * New Trackback
49
  * New Pingback
50
+ * User Lost Password - For Admin
51
  * New User Registration - For Admin
52
  * Password Changed - For Admin
53
  * User Role Changed - For Admin
55
 
56
  **Transactional**
57
 
58
+ * User Lost Password - For User
59
  * Password Changed - For User
60
  * User Email Changed - For Admin
61
  * New User Registration - For User
134
 
135
  The possibilities are endless!
136
 
137
+ = Does this plugin work with anti-spam plugins, such as Akismet? =
138
 
139
+ Yes! There is an option for suppressing comments marked as SPAM in the plugin settings.
140
 
141
  = Does this plugin work with Multisite? =
142
 
143
  Yes and no - some notifications work, others don't, and some are missing entirely. I do plan on adding full Multisite support at a later date however, this will be in the form of an add-on.
144
 
 
 
 
 
145
  = What isn't this plugin? =
146
 
147
  It's not designed to send out newsletters. There is no send-this-out-on-this-date style functionality included. There are many other great plugins available that you could use for that instead. Additionally, users cannot currently unsubscribe automatically from notifications so you'll have to work out how you manage unsubscribers manually.
156
 
157
  = Notifications aren't coming through! =
158
 
159
+ First of all, follow [this article](https://betternotificationsforwp.com/how-can-i-receive-the-best-support/) about how to find out what might be causing the problem. Additionally, please take a look at [this help document](https://betternotificationsforwp.com/documentation/getting-started/how-to-improve-email-delivery/) to see how you might improve email delivery when using Better Notifications for WordPress.
160
 
161
  Many hosts place a limit on the number of emails that can be sent out within an hour so this may also cause some delay in emails arriving. MailPoet has a fairly extensive list of hosts and their corresponding email rate limits that's worth checking out [here](https://support.mailpoet.com/knowledgebase/lists-of-hosts-and-their-sending-limits/). Alternatively, please check with your host directly to find out what your limit is.
162
 
200
 
201
  == Changelog ==
202
 
203
+ = 1.6.3 - 13th March 2017 =
204
+ * Added: Support for the new [Send to Any Email add-on](https://betternotificationsforwp.com/downloads/send-to-any-email/).
205
+ * Added: Support for Advanced Custom Field (ACF) front-end forms. Finally!
206
+ * Updated: French translation (props @matcho).
207
+ * Improved: The 'Lost Password' notifications now begin with 'User Lost Password' to make them easier to understand.
208
+ * Fixed: The 'Reply To' fields weren't saving correctly.
209
+ * Fixed: Ensure post shortcodes are rendered before sending (props @cliffpaulick).
210
+ * Fixed: A minor issue with the custom field selection box when using the [Custom Fields add-on](https://betternotificationsforwp.com/downloads/custom-fields/).
211
+
212
  = 1.6.2 - 17th February 2017 =
213
  * Fixed: The 'Shortcode Help' button wasn't working correctly for some of the new notifications.
214
 
assets/js/bnfw.js CHANGED
@@ -24,7 +24,10 @@ jQuery(document).ready(function($) {
24
  function init() {
25
  var notification = $('#notification').val();
26
 
27
- $("#notification, .user-select2").select2();
 
 
 
28
  $(".user-ajax-select2").select2( {
29
  ajax: {
30
  url: ajaxurl,
@@ -42,7 +45,8 @@ jQuery(document).ready(function($) {
42
  };
43
  }
44
  },
45
- minimumInputLength: 1
 
46
  } );
47
 
48
  if ( ! $( '#notification' ).length ) {
24
  function init() {
25
  var notification = $('#notification').val();
26
 
27
+ $("#notification, .bnfw-select2").select2();
28
+ $(".user-select2").select2({
29
+ tags: BNFW.enableTags
30
+ } );
31
  $(".user-ajax-select2").select2( {
32
  ajax: {
33
  url: ajaxurl,
45
  };
46
  }
47
  },
48
+ minimumInputLength: 1,
49
+ tags: BNFW.enableTags
50
  } );
51
 
52
  if ( ! $( '#notification' ).length ) {
bnfw.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Better Notifications for WordPress
4
  * Plugin URI: https://wordpress.org/plugins/bnfw/
5
  * Description: Supercharge your WordPress notifications using a WYSIWYG editor and shortcodes. Default and new notifications available. Add more power with Add-ons.
6
- * Version: 1.6.2
7
  * Author: Voltronik
8
  * Author URI: https://betternotificationsforwp.com/
9
  * Author Email: hello@betternotificationsforwp.com
@@ -14,7 +14,7 @@
14
  */
15
 
16
  /**
17
- * Copyright © 2016 Made with Fuel Ltd. (hello@betternotificationsforwp.com)
18
  * This program is free software; you can redistribute it and/or modify
19
  * it under the terms of the GNU General Public License, version 2, as
20
  * published by the Free Software Foundation.
@@ -134,6 +134,7 @@ class BNFW {
134
  add_action( 'future_to_publish' , array( $this, 'publish_post' ) );
135
  add_action( 'pending_to_publish' , array( $this, 'publish_post' ) );
136
  add_action( 'private_to_publish' , array( $this, 'publish_post' ) );
 
137
 
138
  add_action( 'publish_to_publish' , array( $this, 'update_post' ) );
139
 
@@ -231,6 +232,15 @@ class BNFW {
231
  $this->publish_post( $post );
232
  }
233
 
 
 
 
 
 
 
 
 
 
234
  /**
235
  * Fires when a post is created for the first time.
236
  *
3
  * Plugin Name: Better Notifications for WordPress
4
  * Plugin URI: https://wordpress.org/plugins/bnfw/
5
  * Description: Supercharge your WordPress notifications using a WYSIWYG editor and shortcodes. Default and new notifications available. Add more power with Add-ons.
6
+ * Version: 1.6.3
7
  * Author: Voltronik
8
  * Author URI: https://betternotificationsforwp.com/
9
  * Author Email: hello@betternotificationsforwp.com
14
  */
15
 
16
  /**
17
+ * Copyright © 2017 Made with Fuel Ltd. (hello@betternotificationsforwp.com)
18
  * This program is free software; you can redistribute it and/or modify
19
  * it under the terms of the GNU General Public License, version 2, as
20
  * published by the Free Software Foundation.
134
  add_action( 'future_to_publish' , array( $this, 'publish_post' ) );
135
  add_action( 'pending_to_publish' , array( $this, 'publish_post' ) );
136
  add_action( 'private_to_publish' , array( $this, 'publish_post' ) );
137
+ add_action( 'acf/save_post' , array( $this, 'acf_save_post' ) );
138
 
139
  add_action( 'publish_to_publish' , array( $this, 'update_post' ) );
140
 
232
  $this->publish_post( $post );
233
  }
234
 
235
+ /**
236
+ * Trigger New Post published notification for ACF forms.
237
+ *
238
+ * @param int $post_id Post ID.
239
+ */
240
+ public function acf_save_post( $post_id ) {
241
+ $this->publish_post( get_post( $post_id ) );
242
+ }
243
+
244
  /**
245
  * Fires when a post is created for the first time.
246
  *
includes/admin/class-bnfw-notification.php CHANGED
@@ -161,7 +161,7 @@ class BNFW_Notification {
161
  <option
162
  value="new-pingback" <?php selected( 'new-pingback', $setting['notification'] ); ?>><?php esc_html_e( 'New Pingback', 'bnfw' ); ?></option>
163
  <option
164
- value="admin-password" <?php selected( 'admin-password', $setting['notification'] ); ?>><?php esc_html_e( 'Lost Password - For Admin', 'bnfw' ); ?></option>
165
  <option
166
  value="admin-user" <?php selected( 'admin-user', $setting['notification'] ); ?>><?php esc_html_e( 'New User Registration - For Admin', 'bnfw' ); ?></option>
167
  <option
@@ -173,7 +173,7 @@ class BNFW_Notification {
173
  </optgroup>
174
  <optgroup label="Transactional">
175
  <option
176
- value="user-password" <?php selected( 'user-password', $setting['notification'] ); ?>><?php esc_html_e( 'Lost Password - For User', 'bnfw' ); ?></option>
177
  <option
178
  value="password-changed" <?php selected( 'password-changed', $setting['notification'] ); ?>><?php esc_html_e( 'Password Changed - For User', 'bnfw' ); ?></option>
179
  <option
@@ -355,7 +355,7 @@ class BNFW_Notification {
355
 
356
  <td>
357
  <select multiple name="cc[]" class="<?php echo sanitize_html_class( bnfw_get_user_select_class() ); ?>"
358
- data-placeholder="Select User Roles / Users" style="width:75%">
359
  <?php bnfw_render_users_dropdown( $setting['cc'] ); ?>
360
  </select>
361
  </td>
@@ -368,7 +368,7 @@ class BNFW_Notification {
368
 
369
  <td>
370
  <select multiple name="bcc[]" class="<?php echo sanitize_html_class( bnfw_get_user_select_class() ); ?>"
371
- data-placeholder="Select User Roles / Users" style="width:75%">
372
  <?php bnfw_render_users_dropdown( $setting['bcc'] ); ?>
373
  </select>
374
  </td>
@@ -403,7 +403,7 @@ class BNFW_Notification {
403
  <td>
404
  <select multiple id="users-select" name="users[]"
405
  class="<?php echo sanitize_html_class( bnfw_get_user_select_class() ); ?>"
406
- data-placeholder="Select User Roles / Users" style="width:75%">
407
  <?php bnfw_render_users_dropdown( $setting['users'] ); ?>
408
  </select>
409
  </td>
@@ -503,8 +503,16 @@ class BNFW_Notification {
503
 
504
  $strings = array(
505
  'empty_user' => esc_html__( 'You must choose at least one User or User Role to send the notification to before you can save', 'bnfw' ),
 
506
  );
507
 
 
 
 
 
 
 
 
508
  wp_localize_script( 'bnfw', 'BNFW', $strings );
509
  }
510
 
@@ -558,6 +566,8 @@ class BNFW_Notification {
558
  $setting['show-fields'] = 'true';
559
  $setting['from-name'] = sanitize_text_field( $_POST['from-name'] );
560
  $setting['from-email'] = sanitize_email( $_POST['from-email'] );
 
 
561
  $setting['cc'] = isset( $_POST['cc'] ) ? array_map( 'sanitize_text_field', $_POST['cc'] ) : '';
562
  $setting['bcc'] = isset( $_POST['bcc'] ) ? array_map( 'sanitize_text_field', $_POST['bcc'] ) : '';
563
  } else {
@@ -896,14 +906,17 @@ class BNFW_Notification {
896
  private function get_names_from_users( $users ) {
897
  $user_ids = array();
898
  $user_roles = array();
 
899
  $names_from_user_ids = array();
900
 
901
  foreach ( $users as $user ) {
902
  if ( $this->starts_with( $user, 'role-' ) ) {
903
  $user_roles[] = ucfirst( str_replace( 'role-', '', $user ) );
904
- } else {
905
  $user_ids[] = absint( $user );
906
- }
 
 
907
  }
908
 
909
  if ( ! empty( $user_ids ) ) {
@@ -913,7 +926,7 @@ class BNFW_Notification {
913
  }
914
  }
915
 
916
- return array_merge( $user_roles, $names_from_user_ids );
917
  }
918
 
919
  /**
@@ -939,10 +952,10 @@ class BNFW_Notification {
939
  $name = esc_html__( 'Comment Reply', 'bnfw' );
940
  break;
941
  case 'user-password':
942
- $name = esc_html__( 'Lost Password - For User', 'bnfw' );
943
  break;
944
  case 'admin-password':
945
- $name = esc_html__( 'Lost Password - For Admin', 'bnfw' );
946
  break;
947
  case 'admin-password-changed':
948
  $name = esc_html__( 'Password Changed - For Admin', 'bnfw' );
161
  <option
162
  value="new-pingback" <?php selected( 'new-pingback', $setting['notification'] ); ?>><?php esc_html_e( 'New Pingback', 'bnfw' ); ?></option>
163
  <option
164
+ value="admin-password" <?php selected( 'admin-password', $setting['notification'] ); ?>><?php esc_html_e( 'User Lost Password - For Admin', 'bnfw' ); ?></option>
165
  <option
166
  value="admin-user" <?php selected( 'admin-user', $setting['notification'] ); ?>><?php esc_html_e( 'New User Registration - For Admin', 'bnfw' ); ?></option>
167
  <option
173
  </optgroup>
174
  <optgroup label="Transactional">
175
  <option
176
+ value="user-password" <?php selected( 'user-password', $setting['notification'] ); ?>><?php esc_html_e( 'User Lost Password - For User', 'bnfw' ); ?></option>
177
  <option
178
  value="password-changed" <?php selected( 'password-changed', $setting['notification'] ); ?>><?php esc_html_e( 'Password Changed - For User', 'bnfw' ); ?></option>
179
  <option
355
 
356
  <td>
357
  <select multiple name="cc[]" class="<?php echo sanitize_html_class( bnfw_get_user_select_class() ); ?>"
358
+ data-placeholder="<?php echo apply_filters( 'bnfw_email_dropdown_placeholder', 'Select User Roles / Users' ); ?>" style="width:75%">
359
  <?php bnfw_render_users_dropdown( $setting['cc'] ); ?>
360
  </select>
361
  </td>
368
 
369
  <td>
370
  <select multiple name="bcc[]" class="<?php echo sanitize_html_class( bnfw_get_user_select_class() ); ?>"
371
+ data-placeholder="<?php echo apply_filters( 'bnfw_email_dropdown_placeholder', 'Select User Roles / Users' ); ?>" style="width:75%">
372
  <?php bnfw_render_users_dropdown( $setting['bcc'] ); ?>
373
  </select>
374
  </td>
403
  <td>
404
  <select multiple id="users-select" name="users[]"
405
  class="<?php echo sanitize_html_class( bnfw_get_user_select_class() ); ?>"
406
+ data-placeholder="<?php echo apply_filters( 'bnfw_email_dropdown_placeholder', 'Select User Roles / Users' ); ?>" style="width:75%">
407
  <?php bnfw_render_users_dropdown( $setting['users'] ); ?>
408
  </select>
409
  </td>
503
 
504
  $strings = array(
505
  'empty_user' => esc_html__( 'You must choose at least one User or User Role to send the notification to before you can save', 'bnfw' ),
506
+ 'enableTags' => false,
507
  );
508
 
509
+ /**
510
+ * Filter the localized array that is sent to scripts.
511
+ *
512
+ * @since 1.7.0
513
+ */
514
+ $strings = apply_filters( 'bnfw_localize_script', $strings );
515
+
516
  wp_localize_script( 'bnfw', 'BNFW', $strings );
517
  }
518
 
566
  $setting['show-fields'] = 'true';
567
  $setting['from-name'] = sanitize_text_field( $_POST['from-name'] );
568
  $setting['from-email'] = sanitize_email( $_POST['from-email'] );
569
+ $setting['reply-name'] = sanitize_text_field( $_POST['reply-name'] );
570
+ $setting['reply-email'] = sanitize_email( $_POST['reply-email'] );
571
  $setting['cc'] = isset( $_POST['cc'] ) ? array_map( 'sanitize_text_field', $_POST['cc'] ) : '';
572
  $setting['bcc'] = isset( $_POST['bcc'] ) ? array_map( 'sanitize_text_field', $_POST['bcc'] ) : '';
573
  } else {
906
  private function get_names_from_users( $users ) {
907
  $user_ids = array();
908
  $user_roles = array();
909
+ $emails = array();
910
  $names_from_user_ids = array();
911
 
912
  foreach ( $users as $user ) {
913
  if ( $this->starts_with( $user, 'role-' ) ) {
914
  $user_roles[] = ucfirst( str_replace( 'role-', '', $user ) );
915
+ } else if ( absint( $user ) > 0 ) {
916
  $user_ids[] = absint( $user );
917
+ } else {
918
+ $emails[] = $user;
919
+ }
920
  }
921
 
922
  if ( ! empty( $user_ids ) ) {
926
  }
927
  }
928
 
929
+ return array_merge( $user_roles, $names_from_user_ids, $emails );
930
  }
931
 
932
  /**
952
  $name = esc_html__( 'Comment Reply', 'bnfw' );
953
  break;
954
  case 'user-password':
955
+ $name = esc_html__( 'User Lost Password - For User', 'bnfw' );
956
  break;
957
  case 'admin-password':
958
+ $name = esc_html__( 'User Lost Password - For Admin', 'bnfw' );
959
  break;
960
  case 'admin-password-changed':
961
  $name = esc_html__( 'Password Changed - For Admin', 'bnfw' );
includes/engine/class-bnfw-engine.php CHANGED
@@ -551,6 +551,8 @@ class BNFW_Engine {
551
  }
552
  $message = preg_replace( '/\[post_term taxonomy="([^"]*)"\]/i', $terms_list, $message );
553
 
 
 
554
  return apply_filters( 'bnfw_shortcodes_post', $message, $post_id );
555
  }
556
 
@@ -702,7 +704,7 @@ class BNFW_Engine {
702
  $to_emails = array();
703
 
704
  if ( ! empty( $setting['users'] ) ) {
705
- $to_emails = $this->get_emails_from_users( $setting['users'], $exclude );
706
  }
707
 
708
  /**
@@ -727,11 +729,11 @@ class BNFW_Engine {
727
  }
728
 
729
  if ( ! empty( $setting['cc'] ) ) {
730
- $emails['cc'] = $this->get_emails_from_users( $setting['cc'], $exclude );
731
  }
732
 
733
  if ( ! empty( $setting['bcc'] ) ) {
734
- $emails['bcc'] = $this->get_emails_from_users( $setting['bcc'], $exclude );
735
  }
736
  }
737
 
@@ -745,12 +747,14 @@ class BNFW_Engine {
745
  *
746
  * @param array $users Users Array
747
  * @param int $exclude User id to exclude
 
748
  *
749
  * @return array
750
  */
751
- public function get_emails_from_users( $users, $exclude = null ) {
752
  $user_ids = array();
753
  $user_roles = array();
 
754
 
755
  if ( empty( $users ) ) {
756
  return array();
@@ -759,19 +763,22 @@ class BNFW_Engine {
759
  foreach ( $users as $user ) {
760
  if ( $this->starts_with( $user, 'role-' ) ) {
761
  $user_roles[] = str_replace( 'role-', '', $user );
762
- } else {
763
  $user_ids[] = absint( $user );
 
 
764
  }
765
  }
766
 
767
  if ( null != $exclude ) {
768
  $user_ids = array_diff( $user_ids, array( $exclude ) );
769
  }
770
- $emails_from_user_ids = $this->get_emails_from_id( $user_ids );
771
 
 
772
  $emails_from_user_roles = $this->get_emails_from_role( $user_roles, $exclude );
 
773
 
774
- return array_merge( $emails_from_user_roles, $emails_from_user_ids );
775
  }
776
 
777
  /**
551
  }
552
  $message = preg_replace( '/\[post_term taxonomy="([^"]*)"\]/i', $terms_list, $message );
553
 
554
+ $message = do_shortcode( $message );
555
+
556
  return apply_filters( 'bnfw_shortcodes_post', $message, $post_id );
557
  }
558
 
704
  $to_emails = array();
705
 
706
  if ( ! empty( $setting['users'] ) ) {
707
+ $to_emails = $this->get_emails_from_users( $setting['users'], $exclude, $id );
708
  }
709
 
710
  /**
729
  }
730
 
731
  if ( ! empty( $setting['cc'] ) ) {
732
+ $emails['cc'] = $this->get_emails_from_users( $setting['cc'], $exclude, $id );
733
  }
734
 
735
  if ( ! empty( $setting['bcc'] ) ) {
736
+ $emails['bcc'] = $this->get_emails_from_users( $setting['bcc'], $exclude, $id );
737
  }
738
  }
739
 
747
  *
748
  * @param array $users Users Array
749
  * @param int $exclude User id to exclude
750
+ * @param int $post_id Post id.
751
  *
752
  * @return array
753
  */
754
+ public function get_emails_from_users( $users, $exclude = null, $post_id = 0 ) {
755
  $user_ids = array();
756
  $user_roles = array();
757
+ $non_wp_users = array();
758
 
759
  if ( empty( $users ) ) {
760
  return array();
763
  foreach ( $users as $user ) {
764
  if ( $this->starts_with( $user, 'role-' ) ) {
765
  $user_roles[] = str_replace( 'role-', '', $user );
766
+ } else if (absint( $user ) > 0 ) {
767
  $user_ids[] = absint( $user );
768
+ } else {
769
+ $non_wp_users[] = $user;
770
  }
771
  }
772
 
773
  if ( null != $exclude ) {
774
  $user_ids = array_diff( $user_ids, array( $exclude ) );
775
  }
 
776
 
777
+ $emails_from_user_ids = $this->get_emails_from_id( $user_ids );
778
  $emails_from_user_roles = $this->get_emails_from_role( $user_roles, $exclude );
779
+ $non_wp_emails = apply_filters( 'bnfw_non_wp_emails', array(), $non_wp_users, $post_id );
780
 
781
+ return array_merge( $emails_from_user_roles, $emails_from_user_ids, $non_wp_emails );
782
  }
783
 
784
  /**
includes/helpers/helpers.php CHANGED
@@ -32,30 +32,35 @@ function bnfw_get_user_select_class() {
32
  function bnfw_render_users_dropdown( $selected_users ) {
33
  global $wp_roles;
34
 
 
35
  $user_count = count_users();
36
- ?>
37
- <optgroup label="User Roles">
38
- <?php
39
- $roles = $wp_roles->get_names();
40
-
41
- foreach ( $roles as $role_slug => $role_name ) {
42
- $selected = selected( true, in_array( 'role-' . $role_slug, $selected_users ), false );
43
-
44
- // Compatibility code, which will be eventually removed.
45
- $selected_old = selected( true, in_array( 'role-' . $role_name, $selected_users ), false );
46
- if ( ! empty( $selected_old ) ) {
47
- $selected = $selected_old;
48
- }
 
 
 
 
49
 
50
- $count = 0;
51
- if ( isset( $user_count['avail_roles'][ $role_slug ] ) ) {
52
- $count = $user_count['avail_roles'][ $role_slug ];
 
 
53
  }
54
- echo '<option value="role-', esc_attr( $role_slug ), '" ', $selected, '>', esc_html( $role_name ), ' (', $count, ' Users)', '</option>';
55
- }
56
- ?>
57
- </optgroup>
58
- <optgroup label="Users">
59
  <?php
60
  // if there are more than 100 users then use AJAX to load them dynamically.
61
  // So just get only the selected users
@@ -68,21 +73,39 @@ function bnfw_render_users_dropdown( $selected_users ) {
68
  } else {
69
  $users = get_users( array(
70
  'order_by' => 'email',
71
- 'number' => 100,
72
- 'fields' => array( 'ID', 'user_login' ),
73
  ) );
74
  }
75
 
76
  foreach ( $users as $user ) {
77
  $selected = selected( true, in_array( $user->ID, $selected_users ), false );
 
 
 
 
 
78
  echo '<option value="', esc_attr( $user->ID ), '" ', $selected, '>', esc_html( $user->user_login ), '</option>';
79
  }
 
 
 
 
 
 
 
 
 
 
 
 
80
  }
81
 
82
  /**
83
  * Find whether the notification name is a comment notification.
84
  *
85
  * @param string $notification_name Notification Name.
 
86
  * @return bool True if it is a comment notification, False otherwise.
87
  */
88
  function bnfw_is_comment_notification( $notification_name ) {
32
  function bnfw_render_users_dropdown( $selected_users ) {
33
  global $wp_roles;
34
 
35
+ $non_wp_users = $selected_users;
36
  $user_count = count_users();
37
+ ?>
38
+ <optgroup label="User Roles">
39
+ <?php
40
+ $roles = $wp_roles->get_names();
41
+
42
+ foreach ( $roles as $role_slug => $role_name ) {
43
+ $selected = selected( true, in_array( 'role-' . $role_slug, $selected_users ), false );
44
+
45
+ if ( ! empty( $selected ) ) {
46
+ $non_wp_users = array_diff( $non_wp_users, array( 'role-' . $role_slug ) );
47
+ }
48
+
49
+ // Compatibility code, which will be eventually removed.
50
+ $selected_old = selected( true, in_array( 'role-' . $role_name, $selected_users ), false );
51
+ if ( ! empty( $selected_old ) ) {
52
+ $selected = $selected_old;
53
+ }
54
 
55
+ $count = 0;
56
+ if ( isset( $user_count['avail_roles'][ $role_slug ] ) ) {
57
+ $count = $user_count['avail_roles'][ $role_slug ];
58
+ }
59
+ echo '<option value="role-', esc_attr( $role_slug ), '" ', $selected, '>', esc_html( $role_name ), ' (', $count, ' Users)', '</option>';
60
  }
61
+ ?>
62
+ </optgroup>
63
+ <optgroup label="Users">
 
 
64
  <?php
65
  // if there are more than 100 users then use AJAX to load them dynamically.
66
  // So just get only the selected users
73
  } else {
74
  $users = get_users( array(
75
  'order_by' => 'email',
76
+ 'number' => 100,
77
+ 'fields' => array( 'ID', 'user_login' ),
78
  ) );
79
  }
80
 
81
  foreach ( $users as $user ) {
82
  $selected = selected( true, in_array( $user->ID, $selected_users ), false );
83
+
84
+ if ( ! empty( $selected ) ) {
85
+ $non_wp_users = array_diff( $non_wp_users, array( $user->ID ) );
86
+ }
87
+
88
  echo '<option value="', esc_attr( $user->ID ), '" ', $selected, '>', esc_html( $user->user_login ), '</option>';
89
  }
90
+
91
+ ?>
92
+ </optgroup>
93
+
94
+ <?php if ( ! empty( $non_wp_users ) ) { ?>
95
+ <optgroup label="Non WordPress Users">
96
+ <?php foreach ( $non_wp_users as $non_wp_user ) {
97
+ echo '<option value="', esc_attr( $non_wp_user ), '" selected >', esc_html( $non_wp_user ), '</option>';
98
+ }
99
+ ?>
100
+ </optgroup>
101
+ <?php }
102
  }
103
 
104
  /**
105
  * Find whether the notification name is a comment notification.
106
  *
107
  * @param string $notification_name Notification Name.
108
+ *
109
  * @return bool True if it is a comment notification, False otherwise.
110
  */
111
  function bnfw_is_comment_notification( $notification_name ) {
languages/bnfw-fr_FR.po CHANGED
@@ -17,7 +17,7 @@ msgstr ""
17
  #: includes/admin/class-bnfw-notification.php:171
18
  #: includes/admin/class-bnfw-notification.php:836
19
  msgid "User Role Changed"
20
- msgstr "Changer le rôle de l’utilisateur"
21
 
22
  #: includes/overrides.php:113
23
  msgid "[%s] Your username and password"
@@ -37,7 +37,7 @@ msgstr "http://wordpress.org/plugins/bnfw/"
37
 
38
  #. Description of the plugin/theme
39
  msgid "Send customisable emails to your users for different WordPress notifications."
40
- msgstr "Envoyez d’emails personnalisés à vos utilisateurs pour les différentes notifications."
41
 
42
  #. Author of the plugin/theme
43
  msgid "Voltronik"
@@ -61,7 +61,7 @@ msgstr "[%s] Enregistrement d'un nouvel utilisateur"
61
 
62
  #: includes/overrides.php:75
63
  msgid "To set your password, visit the following address:"
64
- msgstr "Pour configurer votre mot de passe, rendez-vous à l'adresse suivante :"
65
 
66
  #: includes/overrides.php:43 includes/overrides.php:74
67
  #: includes/overrides.php:93 includes/overrides.php:109
@@ -70,11 +70,11 @@ msgstr "Utilisateur : %s"
70
 
71
  #: includes/overrides.php:44 includes/overrides.php:94
72
  msgid "E-mail: %s"
73
- msgstr "Adresse E-mail: %s"
74
 
75
  #: includes/license/class-bnfw-license-setting.php:18
76
  msgid "Addon Licenses"
77
- msgstr "Ajouter licences"
78
 
79
  #: includes/license/class-bnfw-license-setting.php:76
80
  msgid "Deactivate License"
@@ -96,7 +96,7 @@ msgstr " pour "
96
  msgid " (Auto Imported)"
97
  msgstr ""
98
  " \n"
99
- "(Auto importé)"
100
 
101
  #: includes/libraries/EDD_SL_Plugin_Updater.php:181
102
  msgid "There is a new version of %1$s available. <a target=\"_blank\" class=\"thickbox\" href=\"%2$s\">View version %3$s details</a>."
@@ -104,23 +104,23 @@ msgstr "Une nouvelle version de %1$s est disponible. <a target=\"_blank\" class
104
 
105
  #: includes/libraries/EDD_SL_Plugin_Updater.php:188
106
  msgid "There is a new version of %1$s available. <a target=\"_blank\" class=\"thickbox\" href=\"%2$s\">View version %3$s details</a> or <a href=\"%4$s\">update now</a>."
107
- msgstr "Une nouvelle version de %1$s est disponible. <a target=\"_blank\" class=\"thickbox\" href=\"%2$s\">Voir les détails de la version %3$s</a> ou <a href=\"%4$s\">effectuer la mise-à-jour maintenant</a>."
108
 
109
  #: includes/libraries/EDD_SL_Plugin_Updater.php:326
110
  msgid "You do not have permission to install plugin updates"
111
- msgstr "Vous n’avez pas les droits pour installer des mises-à-jour d’extensions"
112
 
113
  #: includes/libraries/EDD_SL_Plugin_Updater.php:326
114
  msgid "Error"
115
- msgstr "<p><b>Erreur Google Map:</b> <i>latitude</i> et <i>longitude</i> attributs requis. Voir la documentation de l'aide.</p>"
116
 
117
  #: includes/helpers/ajax-helpers.php:28
118
  msgid "User Roles"
119
- msgstr "Rôtes utilisateurs"
120
 
121
  #: includes/admin/class-bnfw-notification.php:722
122
  msgid "Notification Type"
123
- msgstr "type de notification"
124
 
125
  #: includes/admin/class-bnfw-notification.php:723
126
  msgid "Enabled?"
@@ -132,27 +132,27 @@ msgstr "Rôles de l'utilisateur / Utilisateurs"
132
 
133
  #: includes/admin/class-bnfw-notification.php:827
134
  msgid "User Registration - For User"
135
- msgstr "Enregistrement de l'utilisateur - pour l’utilisateur"
136
 
137
  #: includes/admin/class-bnfw-notification.php:833
138
  msgid "User Registration - For Admin"
139
- msgstr "Enregistrement de l'utilisateur - pour l’admin"
140
 
141
  #: includes/admin/class-bnfw-notification.php:870
142
  msgid "Updated "
143
- msgstr "Mise a jour "
144
 
145
  #: includes/admin/class-bnfw-notification.php:873
146
  msgid " Pending Review"
147
- msgstr " en attendant l'examen"
148
 
149
  #: includes/admin/class-bnfw-notification.php:876
150
  msgid " Scheduled"
151
- msgstr " planifié"
152
 
153
  #: includes/admin/class-bnfw-notification.php:879
154
  msgid " Comment"
155
- msgstr " commentaire"
156
 
157
  #: includes/admin/class-bnfw-notification.php:883
158
  msgid "New Term in "
@@ -172,19 +172,19 @@ msgstr "Désactiver les notifications"
172
 
173
  #: includes/admin/class-bnfw-notification.php:628
174
  msgid "Send Me a Test Email"
175
- msgstr "Envoyez-moi un mail de test"
176
 
177
  #: includes/admin/class-bnfw-notification.php:638
178
  msgid "Delete Permanently"
179
- msgstr "Dupprimer définitivement"
180
 
181
  #: includes/admin/class-bnfw-notification.php:364
182
  msgid "Shortcode Help"
183
- msgstr "Aide Shortcode"
184
 
185
  #: includes/admin/class-bnfw-notification.php:374
186
  msgid "Stop additional paragraph and line break HTML from being inserted into my notifications"
187
- msgstr "Arrêtez les paragraphes supplémentaire et un saut de ligne HTML d'être inséré dans mes notifications"
188
 
189
  #: includes/admin/class-bnfw-notification.php:510
190
  msgid "Test Notification Sent."
@@ -192,7 +192,7 @@ msgstr "Test de notification envoyé."
192
 
193
  #: includes/admin/class-bnfw-notification.php:591
194
  msgid "Notification saved."
195
- msgstr "Notification sauvé."
196
 
197
  #: includes/admin/class-bnfw-notification.php:609
198
  #: includes/admin/class-bnfw-notification.php:648
@@ -218,23 +218,23 @@ msgstr "Ajouter"
218
 
219
  #: includes/admin/class-bnfw-notification.php:246
220
  msgid "This notification doesn't support additional email fields."
221
- msgstr "Cette notification ne supporte pas les champs demails supplémentaires."
222
 
223
  #: includes/admin/class-bnfw-notification.php:253
224
  msgid "Email Formatting"
225
- msgstr "Formatage de l’émail"
226
 
227
  #: includes/admin/class-bnfw-notification.php:270 includes/tmp.php:3
228
  msgid "Additional Email Fields"
229
- msgstr "Champ demail supplémentaire"
230
 
231
  #: includes/admin/class-bnfw-notification.php:274
232
  msgid "Set \"From\" Name & Email, CC, BCC"
233
- msgstr "Ensemble \" De \" Nom & Email, CC, BCC"
234
 
235
  #: includes/admin/class-bnfw-notification.php:280 includes/tmp.php:13
236
  msgid "From Name and Email"
237
- msgstr "Nom et email"
238
 
239
  #: includes/admin/class-bnfw-notification.php:290 includes/tmp.php:23
240
  msgid "CC"
@@ -242,7 +242,7 @@ msgstr "CC"
242
 
243
  #: includes/admin/class-bnfw-notification.php:302 includes/tmp.php:34
244
  msgid "BCC"
245
- msgstr "Cc"
246
 
247
  #: includes/admin/class-bnfw-notification.php:317
248
  msgid "Send this notification to the Author only"
@@ -250,11 +250,11 @@ msgstr "Envoyer cette notification à l'auteur seulement"
250
 
251
  #: includes/admin/class-bnfw-notification.php:324
252
  msgid "Send To"
253
- msgstr "Envoyé à"
254
 
255
  #: includes/admin/class-bnfw-notification.php:338
256
  msgid "Disable this Notification for the User that triggered it"
257
- msgstr "Désactivez cette notification pour l'utilisateur qui l'a déclenché"
258
 
259
  #: includes/admin/class-bnfw-notification.php:345
260
  #: includes/admin/class-bnfw-notification.php:724
@@ -263,7 +263,7 @@ msgstr "Objet"
263
 
264
  #: includes/admin/class-bnfw-notification.php:207
265
  msgid "Scheduled"
266
- msgstr "Programmé"
267
 
268
  #: includes/admin/class-bnfw-notification.php:208
269
  #: includes/admin/class-bnfw-notification.php:809
@@ -281,7 +281,7 @@ msgstr "Nouveau Tag"
281
 
282
  #: includes/admin/class-bnfw-notification.php:184
283
  msgid "New Page Published"
284
- msgstr "Nouvelle page publié"
285
 
286
  #: includes/admin/class-bnfw-notification.php:185
287
  msgid "Page Updated"
@@ -289,11 +289,11 @@ msgstr "Page mise à jour"
289
 
290
  #: includes/admin/class-bnfw-notification.php:186
291
  msgid "Page Pending Review"
292
- msgstr "Page en attente d'examen"
293
 
294
  #: includes/admin/class-bnfw-notification.php:187
295
  msgid "Page Scheduled"
296
- msgstr "Page planifié"
297
 
298
  #: includes/admin/class-bnfw-notification.php:188
299
  #, fuzzy
@@ -302,7 +302,7 @@ msgstr "Page - nouveau commentaire"
302
 
303
  #: includes/admin/class-bnfw-notification.php:203
304
  msgid "Custom Post Type"
305
- msgstr "Type post personnalisé"
306
 
307
  #: includes/admin/class-bnfw-notification.php:204
308
  #: includes/admin/class-bnfw-notification.php:867
@@ -311,11 +311,11 @@ msgstr "Nouveau"
311
 
312
  #: includes/admin/class-bnfw-notification.php:205
313
  msgid "Update "
314
- msgstr "Mettre &agrave; jour"
315
 
316
  #: includes/admin/class-bnfw-notification.php:206
317
  msgid "Pending Review"
318
- msgstr "En attente"
319
 
320
  #: includes/admin/class-bnfw-notification.php:50
321
  msgid "Add New Notification"
@@ -335,19 +335,19 @@ msgstr "Voir la notification"
335
 
336
  #: includes/admin/class-bnfw-notification.php:54
337
  msgid "Search Notifications"
338
- msgstr "Rechercher la notification"
339
 
340
  #: includes/admin/class-bnfw-notification.php:55
341
  msgid "No Notifications found"
342
- msgstr "Aucune Notification trouvé"
343
 
344
  #: includes/admin/class-bnfw-notification.php:56
345
  msgid "No Notifications found in trash"
346
- msgstr "Aucune notification trouvé dans la poubelle"
347
 
348
  #: includes/admin/class-bnfw-notification.php:57
349
  msgid "All Notifications"
350
- msgstr "Toute les notifications"
351
 
352
  #: includes/admin/class-bnfw-notification.php:128
353
  msgid "Save Notification"
@@ -364,12 +364,12 @@ msgstr "Nouveau commentaire / Modération en attente"
364
  #: includes/admin/class-bnfw-notification.php:162
365
  #: includes/admin/class-bnfw-notification.php:812
366
  msgid "New Trackback"
367
- msgstr "Retracer à nouveau"
368
 
369
  #: includes/admin/class-bnfw-notification.php:163
370
  #: includes/admin/class-bnfw-notification.php:815
371
  msgid "New Pingback"
372
- msgstr "Nouveau pingback"
373
 
374
  #: includes/admin/class-bnfw-notification.php:164
375
  #: includes/admin/class-bnfw-notification.php:824
@@ -392,32 +392,32 @@ msgstr "Enregistrement d'un nouvel utilisateur - pour l'utilisateur"
392
  #: includes/admin/class-bnfw-notification.php:170
393
  #: includes/admin/class-bnfw-notification.php:830
394
  msgid "New User - Welcome Email"
395
- msgstr "Nouvel utilisateur - Bienvenue"
396
 
397
  #: includes/admin/class-bnfw-notification.php:172
398
  #: includes/admin/class-bnfw-notification.php:818
399
  msgid "Comment Reply"
400
- msgstr "Commenter pour répondre"
401
 
402
  #: includes/admin/class-bnfw-notification.php:175
403
  #: includes/admin/class-bnfw-notification.php:839
404
  msgid "New Post Published"
405
- msgstr "Nouveau message publié"
406
 
407
  #: includes/admin/class-bnfw-notification.php:176
408
  #: includes/admin/class-bnfw-notification.php:842
409
  msgid "Post Updated"
410
- msgstr "Mise à jour du message"
411
 
412
  #: includes/admin/class-bnfw-notification.php:177
413
  #: includes/admin/class-bnfw-notification.php:845
414
  msgid "Post Pending Review"
415
- msgstr "Message en attente d'examen"
416
 
417
  #: includes/admin/class-bnfw-notification.php:178
418
  #: includes/admin/class-bnfw-notification.php:848
419
  msgid "Post Scheduled"
420
- msgstr "Message planifié"
421
 
422
  #: includes/admin/class-bnfw-notification.php:179
423
  #: includes/admin/class-bnfw-notification.php:851
@@ -444,19 +444,19 @@ msgstr "Réglages BNFW"
444
 
445
  #: includes/admin/bnfw-settings.php:123
446
  msgid "Suppress SPAM comment notification"
447
- msgstr "Réprimer le commentaire de notification dans SPAM"
448
 
449
  #: includes/admin/bnfw-settings.php:128
450
  msgid "Don't send notifications for comments marked as SPAM by Akismet"
451
- msgstr "Ne pas envoyer des notifications pour les commentaires marqués comme spam par Akismet"
452
 
453
  #: includes/admin/bnfw-settings.php:141
454
  msgid "Default Email Format"
455
- msgstr "Défaut du format de l’email"
456
 
457
  #: includes/admin/bnfw-settings.php:146
458
  msgid "This will apply to all emails sent out via WordPress, even those from other plugins. For more details, please see the <a href=\"https://wordpress.org/plugins/bnfw/faq/\" target=\"_blank\">FAQ</a>."
459
- msgstr "Cela vaut pour tout les emails envoyés via WordPress, même ceux d'autres plugins. Pour plus de détails, s'il vous plaît voir la <a href=\"https://wordpress.org/plugins/bnfw/faq/\" target=\"_blank\">FAQ</a>."
460
 
461
  #: includes/admin/bnfw-settings.php:189
462
  #: includes/admin/class-bnfw-notification.php:258
@@ -471,8 +471,8 @@ msgstr "Recevoir en Texte brut"
471
  #: includes/admin/bnfw-settings.php:14
472
  #: includes/admin/class-bnfw-notification.php:120
473
  msgid "Notification Settings"
474
- msgstr "Paramètres de notification"
475
 
476
  #: includes/admin/bnfw-settings.php:15
477
  msgid "Settings"
478
- msgstr "Réglage"
17
  #: includes/admin/class-bnfw-notification.php:171
18
  #: includes/admin/class-bnfw-notification.php:836
19
  msgid "User Role Changed"
20
+ msgstr "Le rôle d'un utilisateur a changé"
21
 
22
  #: includes/overrides.php:113
23
  msgid "[%s] Your username and password"
37
 
38
  #. Description of the plugin/theme
39
  msgid "Send customisable emails to your users for different WordPress notifications."
40
+ msgstr "Envoyez des emails personnalisés à vos utilisateurs pour différentes notifications."
41
 
42
  #. Author of the plugin/theme
43
  msgid "Voltronik"
61
 
62
  #: includes/overrides.php:75
63
  msgid "To set your password, visit the following address:"
64
+ msgstr "Pour choisir votre mot de passe, rendez-vous à l'adresse suivante :"
65
 
66
  #: includes/overrides.php:43 includes/overrides.php:74
67
  #: includes/overrides.php:93 includes/overrides.php:109
70
 
71
  #: includes/overrides.php:44 includes/overrides.php:94
72
  msgid "E-mail: %s"
73
+ msgstr "Adresse email: %s"
74
 
75
  #: includes/license/class-bnfw-license-setting.php:18
76
  msgid "Addon Licenses"
77
+ msgstr "Licences des extensions"
78
 
79
  #: includes/license/class-bnfw-license-setting.php:76
80
  msgid "Deactivate License"
96
  msgid " (Auto Imported)"
97
  msgstr ""
98
  " \n"
99
+ "(Importé automatiquement)"
100
 
101
  #: includes/libraries/EDD_SL_Plugin_Updater.php:181
102
  msgid "There is a new version of %1$s available. <a target=\"_blank\" class=\"thickbox\" href=\"%2$s\">View version %3$s details</a>."
104
 
105
  #: includes/libraries/EDD_SL_Plugin_Updater.php:188
106
  msgid "There is a new version of %1$s available. <a target=\"_blank\" class=\"thickbox\" href=\"%2$s\">View version %3$s details</a> or <a href=\"%4$s\">update now</a>."
107
+ msgstr "Une nouvelle version de %1$s est disponible. <a target=\"_blank\" class=\"thickbox\" href=\"%2$s\">Voir les détails de la version %3$s</a> ou <a href=\"%4$s\">effectuer la mise à jour maintenant</a>."
108
 
109
  #: includes/libraries/EDD_SL_Plugin_Updater.php:326
110
  msgid "You do not have permission to install plugin updates"
111
+ msgstr "Vous n’avez pas les droits pour installer des mises à jour d’extensions"
112
 
113
  #: includes/libraries/EDD_SL_Plugin_Updater.php:326
114
  msgid "Error"
115
+ msgstr "Erreur"
116
 
117
  #: includes/helpers/ajax-helpers.php:28
118
  msgid "User Roles"
119
+ msgstr "Rôles utilisateurs"
120
 
121
  #: includes/admin/class-bnfw-notification.php:722
122
  msgid "Notification Type"
123
+ msgstr "Type de notification"
124
 
125
  #: includes/admin/class-bnfw-notification.php:723
126
  msgid "Enabled?"
132
 
133
  #: includes/admin/class-bnfw-notification.php:827
134
  msgid "User Registration - For User"
135
+ msgstr "Enregistrement d'un nouvel utilisateur - pour l’utilisateur"
136
 
137
  #: includes/admin/class-bnfw-notification.php:833
138
  msgid "User Registration - For Admin"
139
+ msgstr "Enregistrement d'un nouvel utilisateur - pour l’admin"
140
 
141
  #: includes/admin/class-bnfw-notification.php:870
142
  msgid "Updated "
143
+ msgstr "Mis(e) a jour "
144
 
145
  #: includes/admin/class-bnfw-notification.php:873
146
  msgid " Pending Review"
147
+ msgstr " En attente de relecture"
148
 
149
  #: includes/admin/class-bnfw-notification.php:876
150
  msgid " Scheduled"
151
+ msgstr " Planifié"
152
 
153
  #: includes/admin/class-bnfw-notification.php:879
154
  msgid " Comment"
155
+ msgstr " Commentaire"
156
 
157
  #: includes/admin/class-bnfw-notification.php:883
158
  msgid "New Term in "
172
 
173
  #: includes/admin/class-bnfw-notification.php:628
174
  msgid "Send Me a Test Email"
175
+ msgstr "Envoyez-moi un email de test"
176
 
177
  #: includes/admin/class-bnfw-notification.php:638
178
  msgid "Delete Permanently"
179
+ msgstr "Supprimer définitivement"
180
 
181
  #: includes/admin/class-bnfw-notification.php:364
182
  msgid "Shortcode Help"
183
+ msgstr "Aide sur les Shortcodes"
184
 
185
  #: includes/admin/class-bnfw-notification.php:374
186
  msgid "Stop additional paragraph and line break HTML from being inserted into my notifications"
187
+ msgstr "Éviter que des paragraphes additionnels et des retours à la ligne HTML soient insérés dans mes notifications"
188
 
189
  #: includes/admin/class-bnfw-notification.php:510
190
  msgid "Test Notification Sent."
192
 
193
  #: includes/admin/class-bnfw-notification.php:591
194
  msgid "Notification saved."
195
+ msgstr "Notification enregistrée."
196
 
197
  #: includes/admin/class-bnfw-notification.php:609
198
  #: includes/admin/class-bnfw-notification.php:648
218
 
219
  #: includes/admin/class-bnfw-notification.php:246
220
  msgid "This notification doesn't support additional email fields."
221
+ msgstr "Cette notification ne supporte pas les champs d'emails supplémentaires."
222
 
223
  #: includes/admin/class-bnfw-notification.php:253
224
  msgid "Email Formatting"
225
+ msgstr "Formatage de l'email"
226
 
227
  #: includes/admin/class-bnfw-notification.php:270 includes/tmp.php:3
228
  msgid "Additional Email Fields"
229
+ msgstr "Champs d'email supplémentaires"
230
 
231
  #: includes/admin/class-bnfw-notification.php:274
232
  msgid "Set \"From\" Name & Email, CC, BCC"
233
+ msgstr "Choisir le nom & l'adresse email dans l'entête \" From \"; ajouter des entêtes CC, BCC"
234
 
235
  #: includes/admin/class-bnfw-notification.php:280 includes/tmp.php:13
236
  msgid "From Name and Email"
237
+ msgstr "Nom et adresse email"
238
 
239
  #: includes/admin/class-bnfw-notification.php:290 includes/tmp.php:23
240
  msgid "CC"
242
 
243
  #: includes/admin/class-bnfw-notification.php:302 includes/tmp.php:34
244
  msgid "BCC"
245
+ msgstr "CCI"
246
 
247
  #: includes/admin/class-bnfw-notification.php:317
248
  msgid "Send this notification to the Author only"
250
 
251
  #: includes/admin/class-bnfw-notification.php:324
252
  msgid "Send To"
253
+ msgstr "Envoyer à"
254
 
255
  #: includes/admin/class-bnfw-notification.php:338
256
  msgid "Disable this Notification for the User that triggered it"
257
+ msgstr "Désactiver cette notification pour l'utilisateur qui l'a déclenchée"
258
 
259
  #: includes/admin/class-bnfw-notification.php:345
260
  #: includes/admin/class-bnfw-notification.php:724
263
 
264
  #: includes/admin/class-bnfw-notification.php:207
265
  msgid "Scheduled"
266
+ msgstr "Planifié"
267
 
268
  #: includes/admin/class-bnfw-notification.php:208
269
  #: includes/admin/class-bnfw-notification.php:809
281
 
282
  #: includes/admin/class-bnfw-notification.php:184
283
  msgid "New Page Published"
284
+ msgstr "Nouvelle page publiée"
285
 
286
  #: includes/admin/class-bnfw-notification.php:185
287
  msgid "Page Updated"
289
 
290
  #: includes/admin/class-bnfw-notification.php:186
291
  msgid "Page Pending Review"
292
+ msgstr "Page en attente de relecture"
293
 
294
  #: includes/admin/class-bnfw-notification.php:187
295
  msgid "Page Scheduled"
296
+ msgstr "Page planifiée"
297
 
298
  #: includes/admin/class-bnfw-notification.php:188
299
  #, fuzzy
302
 
303
  #: includes/admin/class-bnfw-notification.php:203
304
  msgid "Custom Post Type"
305
+ msgstr "Type d'article personnalisé"
306
 
307
  #: includes/admin/class-bnfw-notification.php:204
308
  #: includes/admin/class-bnfw-notification.php:867
311
 
312
  #: includes/admin/class-bnfw-notification.php:205
313
  msgid "Update "
314
+ msgstr "Mettre à jour"
315
 
316
  #: includes/admin/class-bnfw-notification.php:206
317
  msgid "Pending Review"
318
+ msgstr "En attente de relecture"
319
 
320
  #: includes/admin/class-bnfw-notification.php:50
321
  msgid "Add New Notification"
335
 
336
  #: includes/admin/class-bnfw-notification.php:54
337
  msgid "Search Notifications"
338
+ msgstr "Rechercher parmi les notifications"
339
 
340
  #: includes/admin/class-bnfw-notification.php:55
341
  msgid "No Notifications found"
342
+ msgstr "Aucune notification trouvée"
343
 
344
  #: includes/admin/class-bnfw-notification.php:56
345
  msgid "No Notifications found in trash"
346
+ msgstr "Aucune notification trouvée dans la corbeille"
347
 
348
  #: includes/admin/class-bnfw-notification.php:57
349
  msgid "All Notifications"
350
+ msgstr "Toutes les notifications"
351
 
352
  #: includes/admin/class-bnfw-notification.php:128
353
  msgid "Save Notification"
364
  #: includes/admin/class-bnfw-notification.php:162
365
  #: includes/admin/class-bnfw-notification.php:812
366
  msgid "New Trackback"
367
+ msgstr "Nouveau rétrolien (trackback)"
368
 
369
  #: includes/admin/class-bnfw-notification.php:163
370
  #: includes/admin/class-bnfw-notification.php:815
371
  msgid "New Pingback"
372
+ msgstr "Nouveau rétrolien (pingback)"
373
 
374
  #: includes/admin/class-bnfw-notification.php:164
375
  #: includes/admin/class-bnfw-notification.php:824
392
  #: includes/admin/class-bnfw-notification.php:170
393
  #: includes/admin/class-bnfw-notification.php:830
394
  msgid "New User - Welcome Email"
395
+ msgstr "Nouvel utilisateur - message de bienvenue"
396
 
397
  #: includes/admin/class-bnfw-notification.php:172
398
  #: includes/admin/class-bnfw-notification.php:818
399
  msgid "Comment Reply"
400
+ msgstr "Réponse à un commentaire"
401
 
402
  #: includes/admin/class-bnfw-notification.php:175
403
  #: includes/admin/class-bnfw-notification.php:839
404
  msgid "New Post Published"
405
+ msgstr "Nouvel article publié"
406
 
407
  #: includes/admin/class-bnfw-notification.php:176
408
  #: includes/admin/class-bnfw-notification.php:842
409
  msgid "Post Updated"
410
+ msgstr "Mise à jour d'un article"
411
 
412
  #: includes/admin/class-bnfw-notification.php:177
413
  #: includes/admin/class-bnfw-notification.php:845
414
  msgid "Post Pending Review"
415
+ msgstr "Article en attente de relecture"
416
 
417
  #: includes/admin/class-bnfw-notification.php:178
418
  #: includes/admin/class-bnfw-notification.php:848
419
  msgid "Post Scheduled"
420
+ msgstr "Article planifié"
421
 
422
  #: includes/admin/class-bnfw-notification.php:179
423
  #: includes/admin/class-bnfw-notification.php:851
444
 
445
  #: includes/admin/bnfw-settings.php:123
446
  msgid "Suppress SPAM comment notification"
447
+ msgstr "Supprimer les notifications de commentaires SPAM"
448
 
449
  #: includes/admin/bnfw-settings.php:128
450
  msgid "Don't send notifications for comments marked as SPAM by Akismet"
451
+ msgstr "Ne pas envoyer de notifications pour les commentaires marqués comme SPAM par Akismet"
452
 
453
  #: includes/admin/bnfw-settings.php:141
454
  msgid "Default Email Format"
455
+ msgstr "Format par défaut des emails"
456
 
457
  #: includes/admin/bnfw-settings.php:146
458
  msgid "This will apply to all emails sent out via WordPress, even those from other plugins. For more details, please see the <a href=\"https://wordpress.org/plugins/bnfw/faq/\" target=\"_blank\">FAQ</a>."
459
+ msgstr "Cela s'appliquera à tous les emails envoyés via WordPress, même ceux d'autres plugins. Pour plus de détails, veuillez consulter la <a href=\"https://wordpress.org/plugins/bnfw/faq/\" target=\"_blank\">FAQ</a>."
460
 
461
  #: includes/admin/bnfw-settings.php:189
462
  #: includes/admin/class-bnfw-notification.php:258
471
  #: includes/admin/bnfw-settings.php:14
472
  #: includes/admin/class-bnfw-notification.php:120
473
  msgid "Notification Settings"
474
+ msgstr "Paramètres des notifications"
475
 
476
  #: includes/admin/bnfw-settings.php:15
477
  msgid "Settings"
478
+ msgstr "Réglages"