Email Encoder Bundle – Protect Email Address - Version 2.0.3

Version Description

  • Feature: Integration for Divi Theme included
  • Tweak: Optimize Jetpack integration to also filter against image attribute description tags
  • Tweak: Soft-filter html placeholder tags
  • Tweak: Allow template tags to work as well with the plugin settings set to "Do nothing"
  • Fix: Only one match of the soft attributes was soft encoded properly
  • Fix: The escape js function stripped away all zeros from emails
Download this release

Release Info

Developer ironikus
Plugin Icon 128x128 Email Encoder Bundle – Protect Email Address
Version 2.0.3
Comparing to
See all releases

Code changes from version 2.0.2 to 2.0.3

core/includes/classes/class-email-encoder-bundle-run.php CHANGED
@@ -201,16 +201,12 @@ class Email_Encoder_Run{
201
  $without_javascript = (string) EEB()->settings->get_setting( 'protect_using', true );
202
  $footer_scripts = (bool) EEB()->settings->get_setting( 'footer_scripts', true );
203
 
204
- if( $protection_activated === 2 || $protection_activated === 1 ){
205
-
206
- if( $without_javascript !== 'without_javascript' ){
207
- wp_enqueue_script( 'eeb-js-frontend', EEB_PLUGIN_URL . 'core/includes/assets/js/custom.js', array( 'jquery' ), $js_version, $footer_scripts );
208
- }
209
-
210
- wp_register_style( 'eeb-css-frontend', EEB_PLUGIN_URL . 'core/includes/assets/css/style.css', false, $css_version );
211
- wp_enqueue_style ( 'eeb-css-frontend' );
212
-
213
  }
 
 
 
214
 
215
  if( (string) EEB()->settings->get_setting( 'show_encoded_check', true ) === '1' ){
216
  wp_enqueue_style('dashicons');
201
  $without_javascript = (string) EEB()->settings->get_setting( 'protect_using', true );
202
  $footer_scripts = (bool) EEB()->settings->get_setting( 'footer_scripts', true );
203
 
204
+ if( $without_javascript !== 'without_javascript' ){
205
+ wp_enqueue_script( 'eeb-js-frontend', EEB_PLUGIN_URL . 'core/includes/assets/js/custom.js', array( 'jquery' ), $js_version, $footer_scripts );
 
 
 
 
 
 
 
206
  }
207
+
208
+ wp_register_style( 'eeb-css-frontend', EEB_PLUGIN_URL . 'core/includes/assets/css/style.css', false, $css_version );
209
+ wp_enqueue_style ( 'eeb-css-frontend' );
210
 
211
  if( (string) EEB()->settings->get_setting( 'show_encoded_check', true ) === '1' ){
212
  wp_enqueue_style('dashicons');
core/includes/classes/class-email-encoder-bundle-settings.php CHANGED
@@ -67,6 +67,8 @@ class Email_Encoder_Settings{
67
  $this->email_regex = '([_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)*(\\.[A-Za-z]{2,}))';
68
  $this->soft_attribute_regex = array(
69
  'woocommerce_variation_attribute_tag' => '/data-product_variations="([^"]*)"/i',
 
 
70
  );
71
 
72
  //Load data
67
  $this->email_regex = '([_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)*(\\.[A-Za-z]{2,}))';
68
  $this->soft_attribute_regex = array(
69
  'woocommerce_variation_attribute_tag' => '/data-product_variations="([^"]*)"/i',
70
+ 'jetpack_carousel_image_attribute_tag' => '/data-image-meta="([^"]*)"/i',
71
+ 'html_placeholder_tag' => '/placeholder="([^"]*)"/i',
72
  );
73
 
74
  //Load data
core/includes/classes/class-email-encoder-bundle-validate.php CHANGED
@@ -298,7 +298,7 @@ class Email_Encoder_Validate{
298
  foreach( $soft_attributes as $ident => $regex ){
299
 
300
  $array = array();
301
- preg_match( $regex, $content, $array ) ;
302
 
303
  foreach( $array as $single ){
304
  $content = str_replace( $single, $this->filter_plain_emails( $single, null, $protection_method, false ), $content );
@@ -411,7 +411,7 @@ class Email_Encoder_Validate{
411
 
412
  foreach( $split as $c ) {
413
  // preg split will return empty first and last characters, check for them and ignore
414
- if( ! empty( $c ) ) {
415
  $out .= '%' . dechex( ord( $c ) );
416
  }
417
  }
298
  foreach( $soft_attributes as $ident => $regex ){
299
 
300
  $array = array();
301
+ preg_match_all( $regex, $content, $array ) ;
302
 
303
  foreach( $array as $single ){
304
  $content = str_replace( $single, $this->filter_plain_emails( $single, null, $protection_method, false ), $content );
411
 
412
  foreach( $split as $c ) {
413
  // preg split will return empty first and last characters, check for them and ignore
414
+ if( ! empty( $c ) || $c === '0' ) {
415
  $out .= '%' . dechex( ord( $c ) );
416
  }
417
  }
core/includes/integrations/classes/divi_theme.php ADDED
@@ -0,0 +1,99 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // Exit if accessed directly.
4
+ if ( !defined( 'ABSPATH' ) ) exit;
5
+
6
+ if( ! class_exists( 'Email_Encoder_Integration_Divi' ) ){
7
+
8
+ /**
9
+ * Class Email_Encoder_Integration_Divi
10
+ *
11
+ * This class integrates support for the divi themes https://www.elegantthemes.com/gallery/divi/
12
+ *
13
+ * @since 2.0.0
14
+ * @package EEB
15
+ * @author Ironikus <info@ironikus.com>
16
+ */
17
+
18
+ class Email_Encoder_Integration_Divi{
19
+
20
+ /**
21
+ * The main page name for our admin page
22
+ *
23
+ * @var string
24
+ * @since 2.0.0
25
+ */
26
+ private $page_name;
27
+
28
+ /**
29
+ * The main page title for our admin page
30
+ *
31
+ * @var string
32
+ * @since 2.0.0
33
+ */
34
+ private $page_title;
35
+
36
+ /**
37
+ * Our Email_Encoder_Run constructor.
38
+ */
39
+ function __construct(){
40
+ $this->page_name = EEB()->settings->get_page_name();
41
+ $this->page_title = EEB()->settings->get_page_title();
42
+ $this->add_hooks();
43
+ }
44
+
45
+ /**
46
+ * Define all of our necessary hooks
47
+ */
48
+ private function add_hooks(){
49
+ add_filter( 'eeb/settings/fields', array( $this, 'deactivate_logic' ), 10 );
50
+ add_action( 'init', array( $this, 'reload_settings_before_divi_builder' ), 5 );
51
+ }
52
+
53
+ /**
54
+ * ######################
55
+ * ###
56
+ * #### HELPERS
57
+ * ###
58
+ * ######################
59
+ */
60
+
61
+ public function is_divi_active(){
62
+ return defined( 'ET_BUILDER_VERSION' );
63
+ }
64
+
65
+ /**
66
+ * ######################
67
+ * ###
68
+ * #### SCRIPTS & STYLES
69
+ * ###
70
+ * ######################
71
+ */
72
+
73
+ public function reload_settings_before_divi_builder(){
74
+ EEB()->settings->reload_settings();
75
+ }
76
+
77
+ public function deactivate_logic( $fields ){
78
+
79
+ if( $this->is_divi_active() ){
80
+ if( isset( $_GET['et_fb'] ) && $_GET['et_fb'] == '1' ){
81
+ if( is_array( $fields ) ){
82
+ if( isset( $fields[ 'protect' ] ) ){
83
+ if( isset( $fields[ 'protect' ]['value'] ) ){
84
+ $fields[ 'protect' ]['value'] = 3;
85
+ }
86
+ }
87
+ }
88
+ }
89
+ }
90
+
91
+ return $fields;
92
+
93
+ }
94
+
95
+
96
+ }
97
+
98
+ new Email_Encoder_Integration_Divi();
99
+ }
core/includes/integrations/loader.php CHANGED
@@ -23,8 +23,9 @@ class EEB_Integrations_Loader{
23
 
24
  $plugins = array(
25
  'maintenance' => 'maintenance.php',
 
26
  );
27
-
28
  if( $disable_marketing ){
29
  $marketing = array();
30
  }
23
 
24
  $plugins = array(
25
  'maintenance' => 'maintenance.php',
26
+ 'divi_theme' => 'divi_theme.php',
27
  );
28
+
29
  if( $disable_marketing ){
30
  $marketing = array();
31
  }
email-encoder-bundle.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /**
3
  * Plugin Name: Email Encoder - Protect Email Addresses
4
- * Version: 2.0.2
5
  * Plugin URI: https://wordpress.org/plugins/email-encoder-bundle/
6
  * Description: Protect email addresses on your site and hide them from spambots. Easy to use & flexible.
7
  * Author: Ironikus
@@ -22,7 +22,7 @@ if ( !defined( 'ABSPATH' ) ) exit;
22
  define( 'EEB_NAME', 'Email Encoder' );
23
 
24
  // Plugin version.
25
- define( 'EEB_VERSION', '2.0.2' );
26
 
27
  // Determines if the plugin is loaded
28
  define( 'EEB_SETUP', true );
1
  <?php
2
  /**
3
  * Plugin Name: Email Encoder - Protect Email Addresses
4
+ * Version: 2.0.3
5
  * Plugin URI: https://wordpress.org/plugins/email-encoder-bundle/
6
  * Description: Protect email addresses on your site and hide them from spambots. Easy to use & flexible.
7
  * Author: Ironikus
22
  define( 'EEB_NAME', 'Email Encoder' );
23
 
24
  // Plugin version.
25
+ define( 'EEB_VERSION', '2.0.3' );
26
 
27
  // Determines if the plugin is loaded
28
  define( 'EEB_SETUP', true );
readme.txt CHANGED
@@ -1,10 +1,10 @@
1
  === Email Encoder - Protect Email Addresses ===
2
  Contributors: ironikus
3
- Tags: email address, protect, antispam, mailto, spambot, secure, e-mail, email, mail, obfuscate, encode, encoder, encrypt, hide, bot, crawl, spider, robots, spam, protection, harvest, harvesting, security
4
  Requires at least: 4.7
5
  Requires PHP: 5.1
6
  Tested up to: 5.2.3
7
- Stable tag: 2.0.2
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -31,6 +31,12 @@ Also protext phone numbers or any other text using our integrated `[eeb_protect_
31
  * Also supports special chars, like é, â, ö, Chinese characters etcetera
32
  * Use the Encoder Form to manually create encoded scripts
33
 
 
 
 
 
 
 
34
  = Free Website Check =
35
  We offer you a free tool to test if your website contains unprotected emails. You can use our website checker by [clicking here](https://ironikus.com/email-checker/)
36
 
@@ -115,6 +121,14 @@ Yes, since version 1.3.0 also special characters are supported.
115
 
116
  == Changelog ==
117
 
 
 
 
 
 
 
 
 
118
  = 2.0.2 =
119
  * Feature: New settings item to include custom scripts within the footer and not in the header
120
  * Feature: Support for the "Maintenance" plugin from WP Maintenance
1
  === Email Encoder - Protect Email Addresses ===
2
  Contributors: ironikus
3
+ Tags: anti spam, protect, encode, encrypt, hide, antispam, mailto, spambot, secure, e-mail, email, mail
4
  Requires at least: 4.7
5
  Requires PHP: 5.1
6
  Tested up to: 5.2.3
7
+ Stable tag: 2.0.3
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
31
  * Also supports special chars, like é, â, ö, Chinese characters etcetera
32
  * Use the Encoder Form to manually create encoded scripts
33
 
34
+ = Compatibilities =
35
+ * The plugin works with mostly any theme and plugin. Some special ones needed special treatment. Doen below you can learn more about that.
36
+ * Compatible with the Maintenance plugin from WP Maintenance
37
+ * Divi Theme is fully integrated as well
38
+ * Jetpack Image carousel is compatible as well
39
+
40
  = Free Website Check =
41
  We offer you a free tool to test if your website contains unprotected emails. You can use our website checker by [clicking here](https://ironikus.com/email-checker/)
42
 
121
 
122
  == Changelog ==
123
 
124
+ = 2.0.3 =
125
+ * Feature: Integration for Divi Theme included
126
+ * Tweak: Optimize Jetpack integration to also filter against image attribute description tags
127
+ * Tweak: Soft-filter html placeholder tags
128
+ * Tweak: Allow template tags to work as well with the plugin settings set to "Do nothing"
129
+ * Fix: Only one match of the soft attributes was soft encoded properly
130
+ * Fix: The escape js function stripped away all zeros from emails
131
+
132
  = 2.0.2 =
133
  * Feature: New settings item to include custom scripts within the footer and not in the header
134
  * Feature: Support for the "Maintenance" plugin from WP Maintenance