Social Media Widget by Acurax - Version 3.2.2

Version Description

  • Fix - Perfomance Improvements
  • Code Improvements
Download this release

Release Info

Developer Acurax
Plugin Icon 128x128 Social Media Widget by Acurax
Version 3.2.2
Comparing to
See all releases

Code changes from version 3.2.1 to 3.2.2

acurax-social-icon.php CHANGED
@@ -4,7 +4,7 @@ Plugin Name: Social Media Widget by Acurax
4
  Plugin URI: http://www.acurax.com/products/floating-social-media-icon-plugin-wordpress/
5
  Description: A Simple Wordpress Plugin Which Allow You To Add Widget Which Links Social Media Icons to Your Social Media Profiles Twitter,Facebook,Pinterest,Youtube,Rss Feed,Linkedin,google plus. You can define icon style size for each widget.
6
  Author: Acurax
7
- Version: 3.2.1
8
  Author URI: http://www.acurax.com/
9
  License: GPLv2 or later
10
  */
@@ -24,7 +24,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
24
  */
25
  define('ACX_SOCIALMEDIA_WIDGET_TOTAL_THEMES', 30);
26
  define('ACX_SMW_TOTAL_STATIC_SERVICES', 8);
27
- define('ACX_SMW_VERSION', "3.2.1");
28
  define("ACX_SMW_BASE_LOCATION",plugin_dir_url( __FILE__ ));
29
  define("ACX_SMW_WP_SLUG","acurax-social-media-widget");
30
  include_once(plugin_dir_path( __FILE__ ).'function.php');
4
  Plugin URI: http://www.acurax.com/products/floating-social-media-icon-plugin-wordpress/
5
  Description: A Simple Wordpress Plugin Which Allow You To Add Widget Which Links Social Media Icons to Your Social Media Profiles Twitter,Facebook,Pinterest,Youtube,Rss Feed,Linkedin,google plus. You can define icon style size for each widget.
6
  Author: Acurax
7
+ Version: 3.2.2
8
  Author URI: http://www.acurax.com/
9
  License: GPLv2 or later
10
  */
24
  */
25
  define('ACX_SOCIALMEDIA_WIDGET_TOTAL_THEMES', 30);
26
  define('ACX_SMW_TOTAL_STATIC_SERVICES', 8);
27
+ define('ACX_SMW_VERSION', "3.2.2");
28
  define("ACX_SMW_BASE_LOCATION",plugin_dir_url( __FILE__ ));
29
  define("ACX_SMW_WP_SLUG","acurax-social-media-widget");
30
  include_once(plugin_dir_path( __FILE__ ).'function.php');
function.php CHANGED
@@ -1073,5 +1073,186 @@ if (current_user_can('manage_options')) {
1073
  /* Ending The Logic Count and Re Configuring Order Array */
1074
  }
1075
  add_action('acx_asmw_orderarray_refresh','acx_asmw_orderarray_refresh_array');
1076
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1077
  ?>
1073
  /* Ending The Logic Count and Re Configuring Order Array */
1074
  }
1075
  add_action('acx_asmw_orderarray_refresh','acx_asmw_orderarray_refresh_array');
1076
+ // refresh
1077
+ function acx_smw_install_licence_refresh_callback()
1078
+ {
1079
+ if (!isset($_POST['acx_smw_install_licence_refresh_w_c_n'])) die("<br><br>".__('Unknown Error Occurred, Try Again... ','acurax-social-media-widget')."<a href=''>".__('Click Here','acurax-social-media-widget')."</a>");
1080
+ if (!wp_verify_nonce($_POST['acx_smw_install_licence_refresh_w_c_n'],'acx_smw_install_licence_refresh_w_c_n')) die("<br><br>".__('Unknown Error Occurred, Try Again... ','acurax-social-media-widget')."<a href=''>".__('Click Here','acurax-social-media-widget')."</a>");
1081
+ $key = $licence = $id = "";
1082
+ $response_stat = "failed";
1083
+ if(ISSET($_POST['key']))
1084
+ {
1085
+ $key = $_POST['key'];
1086
+ }
1087
+ if(ISSET($_POST['licence']))
1088
+ {
1089
+ $licence = $_POST['licence'];
1090
+ }
1091
+ $result = check_acx_pfsmi_license($licence,'',true,$id);
1092
+ if(ISSET($result["localkey"]))
1093
+ {
1094
+ $local_key = $result["localkey"];
1095
+ }
1096
+ else{
1097
+ $local_key = "";
1098
+ }
1099
+ $acx_smwp_licence_array = get_option('acx_fsmip_licence_array');
1100
+ if(is_serialized($acx_smwp_licence_array))
1101
+ {
1102
+ $acx_smwp_licence_array = unserialize($acx_smwp_licence_array);
1103
+ }
1104
+ if($acx_smwp_licence_array == "" || !is_array($acx_smwp_licence_array))
1105
+ {
1106
+ $acx_smwp_licence_array = array();
1107
+ }
1108
+ $acx_smw_purchased_li_array = get_option('acx_fsmi_purchased_li_array');
1109
+ if(is_serialized($acx_smw_purchased_li_array))
1110
+ {
1111
+ $acx_smw_purchased_li_array = unserialize($acx_smw_purchased_li_array);
1112
+ }
1113
+ if($acx_smw_purchased_li_array == "" || !is_array($acx_smw_purchased_li_array))
1114
+ {
1115
+ $acx_smw_purchased_li_array = array();
1116
+ }
1117
+ if(ISSET($result["status"]))
1118
+ {
1119
+ if($result["status"] == 'Active')
1120
+ {
1121
+ if(ISSET($acx_smwp_licence_array[$key]))
1122
+ {
1123
+ if(array_key_exists('local_key',$acx_smwp_licence_array[$key]))
1124
+ {
1125
+ $acx_smwp_licence_array[$key]['local_key'] = $local_key;
1126
+
1127
+ if(!is_serialized($acx_smwp_licence_array))
1128
+ {
1129
+ $acx_smwp_licence_array = serialize($acx_smwp_licence_array);
1130
+ }
1131
+ update_option('acx_fsmip_licence_array',$acx_smwp_licence_array);
1132
+
1133
+ }
1134
+ }
1135
+
1136
+ }
1137
+ $acx_smw_purchased_li_array[$licence]['status'] = $result['status'];
1138
+ if(!is_serialized($acx_smw_purchased_li_array))
1139
+ {
1140
+ $acx_smw_purchased_li_array = serialize($acx_smw_purchased_li_array);
1141
+ }
1142
+ update_option('acx_fsmi_purchased_li_array',$acx_smw_purchased_li_array);
1143
+ $response_stat = "success";
1144
+ }
1145
+ echo $response_stat;
1146
+ die();
1147
+ }
1148
+ add_action("wp_ajax_acx_smw_install_licence_refresh","acx_smw_install_licence_refresh_callback");
1149
+ function acx_smw_license_refresh_with_forcing($acx_license,$addon_key)
1150
+ {
1151
+ $acx_smw_ip = isset($_SERVER['SERVER_ADDR']) ? $_SERVER['SERVER_ADDR'] : $_SERVER['LOCAL_ADDR'];
1152
+ $acx_smw_domain = $_SERVER['SERVER_NAME'];
1153
+ $acx_smw_directory = dirname(__FILE__);
1154
+ $acx_smw_args = array(
1155
+ 'action' => 'acx-li-check-latest-version',
1156
+ 'method' => 'addon_activation',
1157
+ 'directory' => $acx_smw_directory,
1158
+ 'unique_id' => $addon_key,
1159
+ 'domain' => $acx_smw_domain,
1160
+ 'ip' => $acx_smw_ip,
1161
+ 'licence' => $acx_license
1162
+ );
1163
+ $acx_smw_unique_id = "";
1164
+ $response_stat = "failed";
1165
+ $acx_smwp_licence_array = get_option('acx_fsmip_licence_array');
1166
+ if(is_serialized($acx_smwp_licence_array))
1167
+ {
1168
+ $acx_smwp_licence_array = unserialize($acx_smwp_licence_array);
1169
+ }
1170
+ if($acx_smwp_licence_array == "" || !is_array($acx_smwp_licence_array))
1171
+ {
1172
+ $acx_smwp_licence_array = array();
1173
+ }
1174
+ $acx_fsmip_retry_array = get_option('acx_fsmip_retry_array');
1175
+ if(is_serialized($acx_fsmip_retry_array))
1176
+ {
1177
+ $acx_fsmip_retry_array = unserialize($acx_fsmip_retry_array);
1178
+ }
1179
+ if($acx_fsmip_retry_array == "")
1180
+ {
1181
+ $acx_fsmip_retry_array = array();
1182
+ }
1183
+ if(!is_array($acx_fsmip_retry_array))
1184
+ {
1185
+ $acx_fsmip_retry_array = array();
1186
+ }
1187
+ if(ISSET($acx_fsmip_retry_array[$acx_license]['activation_licence_check']))
1188
+ {
1189
+ if($acx_fsmip_retry_array[$acx_license]['activation_licence_check'] >= 3)
1190
+ {
1191
+ $retry = false;
1192
+ }
1193
+ }
1194
+ if($retry == true)
1195
+ {
1196
+ $response = acx_smw_licence_activation_api_request( $acx_fsmi_args );
1197
+ $response = json_decode($response, true);
1198
+ }
1199
+
1200
+ if(!ISSET($response['response_status']) && !ISSET($response['status']))
1201
+ {
1202
+ if(ISSET($acx_fsmip_retry_array[$acx_license]['activation_licence_check']))
1203
+ {
1204
+ $acx_fsmip_retry_array[$acx_license]['activation_licence_check'] = $acx_fsmip_retry_array[$acx_license]['activation_licence_check'] + 1;
1205
+ }
1206
+ else{
1207
+ $acx_fsmip_retry_array[$acx_license]['activation_licence_check'] = 1;
1208
+ }
1209
+ }
1210
+ else
1211
+ {
1212
+ if($response['response_status'] == "success" && $response['status'] == "Active")
1213
+ {
1214
+ $acx_smw_purchased_li_array = get_option('acx_fsmi_purchased_li_array');
1215
+ if(is_serialized($acx_smw_purchased_li_array))
1216
+ {
1217
+ $acx_smw_purchased_li_array = unserialize($acx_smw_purchased_li_array);
1218
+ }
1219
+ if($acx_smw_purchased_li_array == "" || !is_array($acx_smw_purchased_li_array))
1220
+ {
1221
+ $acx_smw_purchased_li_array = array();
1222
+ }
1223
+ $acx_smw_unique_id = trim($response['unique_id']);
1224
+ $acx_smw_purchased_li_array[$acx_license] = array(
1225
+ 'slug' => $response['slug'],
1226
+ 'status' => $response['status'],
1227
+ 'download_dynamic_url' => $response['download_dynamic_url']
1228
+ );
1229
+ // update licence array
1230
+
1231
+ $acx_smwp_licence_array[$acx_smw_unique_id]['addon_name'] = $response['name'];
1232
+ $acx_smwp_licence_array[$acx_smw_unique_id]['licence_code'] = $acx_license;
1233
+ if($response['localkey'] != "")
1234
+ {
1235
+ $acx_smwp_licence_array[$acx_smw_unique_id]['local_key'] = $response['localkey'];
1236
+ }
1237
+ if(!is_serialized($acx_smwp_licence_array))
1238
+ {
1239
+ $acx_smwp_licence_array = serialize($acx_smwp_licence_array);
1240
+ }
1241
+ update_option('acx_fsmip_licence_array',$acx_smwp_licence_array);
1242
+ if(!is_serialized($acx_smw_purchased_li_array))
1243
+ {
1244
+ $acx_smw_purchased_li_array = serialize($acx_smw_purchased_li_array);
1245
+ }
1246
+ update_option('acx_fsmi_purchased_li_array',$acx_smw_purchased_li_array);
1247
+ $acx_fsmip_retry_array[$acx_license]['activation_licence_check'] = 0;
1248
+ if(!is_serialized($acx_fsmip_retry_array))
1249
+ {
1250
+ $acx_fsmip_retry_array = serialize($acx_fsmip_retry_array);
1251
+ }
1252
+ update_option('acx_fsmip_retry_array',$acx_fsmip_retry_array);
1253
+ $response_stat = $response['response_status'];
1254
+ }
1255
+ }
1256
+ return $response_stat;
1257
+ }
1258
  ?>
includes/acx-smw-licence-activation.php CHANGED
@@ -3803,6 +3803,11 @@ if ( ! class_exists( 'ACX_SMW_LICENCE_TGMPA_Utils' ) ) {
3803
  } // End of class_exists wrapper
3804
 
3805
  function acx_smw_purachase_licence_form()
 
 
 
 
 
3806
  {
3807
  $acx_smwp_licence_array = get_option('acx_fsmip_licence_array');
3808
  if(is_serialized($acx_smwp_licence_array))
@@ -3813,6 +3818,15 @@ function acx_smw_purachase_licence_form()
3813
  {
3814
  $acx_smwp_licence_array = array();
3815
  }
 
 
 
 
 
 
 
 
 
3816
  ?>
3817
  <div class="acx_smw_purchased_li_cvr">
3818
  <div id="acx_smw_license_table_list" style="width:98%;float:left;">
@@ -3834,20 +3848,40 @@ function acx_smw_purachase_licence_form()
3834
  <tr><td colspan="5"><?php _e('No Licence found','acurax-social-media-widget');?></td></tr>
3835
  <?php
3836
  }
3837
- $acx_smw_plugin_stat = "";
 
 
 
3838
  $acx_refresh_stat = 'acx_hide_refresh';
3839
  foreach($acx_smwp_licence_array as $key => $value)
3840
  {
3841
- $acx_plugin_array = acx_smw_get_purchased_plugin_details($value['licence_code']);
3842
- $acx_active_plugin_stat = acx_smw_get_active_plugin_status($acx_plugin_array['slug']);
3843
- if($acx_active_plugin_stat == true)
3844
  {
3845
- $acx_smw_plugin_stat = __('Active','acurax-social-media-widget');
3846
  }
3847
- else
 
 
 
 
3848
  {
3849
- $acx_smw_plugin_stat = __('Not Active <a href="'.wp_nonce_url(admin_url("admin.php?page=Acurax-Social-Widget-Settings-Install-Addons")).'">[Install Now]</a>','acurax-social-media-widget');
 
 
 
 
 
 
 
 
 
 
 
 
3850
  }
 
 
 
3851
  if(function_exists('check_acx_pfsmi_license') && !function_exists('acx_check_fsmip_offline_license'))
3852
  {
3853
  $acx_refresh_stat = 'acx_show_refresh';
@@ -3856,8 +3890,8 @@ function acx_smw_purachase_licence_form()
3856
  ?>
3857
  <tr><td><?php echo $value['addon_name']; ?></td>
3858
  <td><?php echo $value['licence_code']; ?></td>
3859
- <td><?php echo $value['version']; ?></td>
3860
- <td><?php echo $acx_plugin_array['status']; ?></td>
3861
  <td><?php echo $acx_smw_plugin_stat; ?></td>
3862
  <td data-licence="<?php echo $value['licence_code']; ?>" data-key="<?php echo $key;?>"><span class="ax_smw_action_icon acx_smw_lic_refresh <?php echo $acx_refresh_stat; ?>" title="<?php _e("Refresh","acurax-social-media-widget");?>"></span><span class="ax_smw_action_icon acx_smw_lic_del" title="<?php _e("Delete","acurax-social-media-widget");?>"></span></td>
3863
  </tr>
@@ -3869,7 +3903,7 @@ function acx_smw_purachase_licence_form()
3869
  </div><!-- acx_smw_purchased_li_cvr -->
3870
  <?php
3871
  }
3872
- add_action("acx_smw_addon_hook_option_field_content","acx_smw_purachase_licence_form",20);
3873
  } // End of !empty($acx_smw_purchased_li_array)
3874
  if(!function_exists('acx_smw_get_purchased_plugin_details'))
3875
  {
@@ -3877,9 +3911,8 @@ if(!function_exists('acx_smw_get_purchased_plugin_details'))
3877
  {
3878
  $licence = trim($licence);
3879
  $response_array = array(
3880
- "download_url" => "",
3881
- "slug" => plugin_basename( __FILE__ ),
3882
- "ignore_stat" => "no",
3883
  "status" => ""
3884
  );
3885
  if($licence != "")
@@ -3900,7 +3933,6 @@ if(!function_exists('acx_smw_get_purchased_plugin_details'))
3900
  $response_array = array(
3901
  "download_dynamic_url" => $value['download_dynamic_url'],
3902
  "slug" => $value['slug'],
3903
- "ignore_stat" => $value['ignore_stat'],
3904
  "status" => $value['status']
3905
  );
3906
  }
@@ -3931,32 +3963,28 @@ function acx_smw_licnece_install_required_plugins() {
3931
  {
3932
  $acx_smwp_licence_array = array();
3933
  }
3934
- $acx_smw_purchased_li_array = get_option('acx_fsmi_purchased_li_array');
3935
- if(is_serialized($acx_smw_purchased_li_array))
3936
- {
3937
- $acx_smw_purchased_li_array = unserialize($acx_smw_purchased_li_array);
3938
- }
3939
- if($acx_smw_purchased_li_array == "" || !is_array($acx_smw_purchased_li_array))
3940
- {
3941
- $acx_smw_purchased_li_array = array();
3942
- }
3943
-
3944
  $display_notice = false;
3945
-
 
3946
  foreach($acx_smwp_licence_array as $key => $value)
3947
  {
3948
  $acx_plugin_array = acx_smw_get_purchased_plugin_details($value['licence_code']);
3949
- $acx_active_plugin_stat = acx_smw_get_active_plugin_status($acx_plugin_array['slug']);
 
 
 
 
 
3950
  $plugins = array(
3951
  array(
3952
  'name' => $value['addon_name'], // The plugin name.
3953
- 'slug' => $acx_plugin_array['slug'], // The plugin slug (typically the folder name).
3954
- 'source' => $acx_plugin_array['download_dynamic_url'], // The plugin source.
3955
  'required' => true, // If false, the plugin is only 'recommended' instead of required.
3956
  ),
3957
  );
3958
  $config = array(
3959
- 'id' => $acx_plugin_array['slug'],
3960
  'default_path' => '',
3961
  'menu' => 'Acurax-Social-Widget-Settings-Install-Addons',
3962
  'parent_slug' => 'Acurax-Social-Widget-Settings',
@@ -3980,15 +4008,10 @@ function acx_smw_licnece_install_required_plugins() {
3980
  ),
3981
  ),
3982
  );
3983
- $acx_active_plugin_stat = acx_smw_get_active_plugin_status($acx_plugin_array['slug']);
3984
-
3985
  if($acx_active_plugin_stat == false)
3986
  {
3987
- if($acx_plugin_array['ignore_stat'] == 'no' )
3988
- {
3989
- acx_smw_licence_tgmpa( $plugins, $config );
3990
- $display_notice = true;
3991
- }
3992
  }
3993
  }
3994
  $smw_plugins = array(
@@ -4092,18 +4115,49 @@ add_action( 'acx_smw_licence_tgmpa_register', 'acx_smw_licnece_install_required_
4092
  function acx_smw_get_active_plugin_status($acx_slug)
4093
  {
4094
  $acx_return = false;
4095
- $acx_smw_active_plugin_arr = get_option('active_plugins');
4096
- foreach($acx_smw_active_plugin_arr as $key => $value)
4097
  {
4098
- if(strpos($value,$acx_slug) !== false)
 
4099
  {
4100
- $acx_return = true;
 
 
 
4101
  }
4102
  }
4103
  return $acx_return;
4104
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4105
 
4106
  function acx_smw_licence_btn_fn()
 
 
 
 
 
4107
  {
4108
  ?>
4109
  <div class="acx_smw_add_p_licen_cvr" style="width:100%;float:left;margin-top:50px;">
@@ -4172,15 +4226,7 @@ function acx_smw_licence_btn_fn()
4172
 
4173
 
4174
  });
4175
- </script>
4176
- <?php
4177
-
4178
- }
4179
- add_action("acx_smw_addon_hook_option_field_content","acx_smw_licence_btn_fn",30);
4180
- function acx_smw_li_add_script()
4181
- {?>
4182
- <script>
4183
- jQuery(".acx_smw_lic_del").click(function()
4184
  {
4185
  var acx_confirm = confirm("<?php _e('Are you sure to delete this license?','acurax-social-media-widget')?>");
4186
  if(acx_confirm == true)
@@ -4196,7 +4242,7 @@ function acx_smw_li_add_script()
4196
  jQuery("#acx_smwp_loading_1").remove();
4197
  if(theResponse == "success")
4198
  {
4199
- alert('<?php _e('Successfully deleted the licence !!','acurax-social-media-widget');?>');
4200
  var link = window.location.href;
4201
  if(link !== '')
4202
  {
@@ -4223,7 +4269,7 @@ function acx_smw_li_add_script()
4223
  jQuery("#acx_smwp_loading_1").remove();
4224
  if(theResponse == "success")
4225
  {
4226
- alert('<?php _e('Successfully reissued the licence !!','acurax-social-media-widget');?>');
4227
  var link = window.location.href;
4228
  if(link !== '')
4229
  {
@@ -4233,10 +4279,10 @@ function acx_smw_li_add_script()
4233
  });
4234
  }
4235
  });
4236
- </script>
4237
- <?php
4238
  }
4239
- add_action("acx_smw_addon_hook_option_footer","acx_smw_li_add_script");
4240
  // delete installed licence
4241
  function acx_smw_install_licence_del_callback()
4242
  {
@@ -4318,99 +4364,47 @@ function acx_smw_delete_purchased_li($licence_code)
4318
 
4319
  }
4320
  }
4321
- // refresh
4322
- function acx_smw_install_licence_refresh_callback()
 
4323
  {
4324
- if (!isset($_POST['acx_smw_install_licence_refresh_w_c_n'])) die("<br><br>".__('Unknown Error Occurred, Try Again... ','acurax-social-media-widget')."<a href=''>".__('Click Here','acurax-social-media-widget')."</a>");
4325
- if (!wp_verify_nonce($_POST['acx_smw_install_licence_refresh_w_c_n'],'acx_smw_install_licence_refresh_w_c_n')) die("<br><br>".__('Unknown Error Occurred, Try Again... ','acurax-social-media-widget')."<a href=''>".__('Click Here','acurax-social-media-widget')."</a>");
4326
- $key = $licence = $id = "";
4327
- $response_stat = "failed";
4328
- if(ISSET($_POST['key']))
4329
- {
4330
- $key = $_POST['key'];
4331
- }
4332
- if(ISSET($_POST['licence']))
4333
- {
4334
- $licence = $_POST['licence'];
4335
- }
4336
- $result = check_acx_pfsmi_license($licence,'',true,$id);
4337
- if(ISSET($result["localkey"]))
4338
  {
4339
- $local_key = $result["localkey"];
4340
- }
4341
- else{
4342
- $local_key = "";
4343
  }
4344
  $acx_smwp_licence_array = get_option('acx_fsmip_licence_array');
4345
  if(is_serialized($acx_smwp_licence_array))
4346
  {
4347
  $acx_smwp_licence_array = unserialize($acx_smwp_licence_array);
4348
  }
4349
- if($acx_smwp_licence_array == "" || !is_array($acx_smwp_licence_array))
 
4350
  {
4351
- $acx_smwp_licence_array = array();
4352
  }
4353
- $acx_smw_purchased_li_array = get_option('acx_fsmi_purchased_li_array');
4354
- if(is_serialized($acx_smw_purchased_li_array))
4355
  {
4356
- $acx_smw_purchased_li_array = unserialize($acx_smw_purchased_li_array);
4357
  }
4358
- if($acx_smw_purchased_li_array == "" || !is_array($acx_smw_purchased_li_array))
4359
  {
4360
- $acx_smw_purchased_li_array = array();
4361
  }
4362
- if(ISSET($result["status"]))
4363
  {
4364
- if($result["status"] == 'Active')
4365
  {
4366
- if(ISSET($acx_smwp_licence_array[$key]))
4367
- {
4368
- if(array_key_exists('local_key',$acx_smwp_licence_array[$key]))
4369
- {
4370
- $acx_smwp_licence_array[$key]['local_key'] = $local_key;
4371
-
4372
- if(!is_serialized($acx_smwp_licence_array))
4373
- {
4374
- $acx_smwp_licence_array = serialize($acx_smwp_licence_array);
4375
- }
4376
- update_option('acx_fsmip_licence_array',$acx_smwp_licence_array);
4377
-
4378
- }
4379
- }
4380
-
4381
- }
4382
- $acx_smw_purchased_li_array[$licence]['status'] = $result['status'];
4383
- if(!is_serialized($acx_smw_purchased_li_array))
4384
- {
4385
- $acx_smw_purchased_li_array = serialize($acx_smw_purchased_li_array);
4386
  }
4387
- update_option('acx_fsmi_purchased_li_array',$acx_smw_purchased_li_array);
4388
- $response_stat = "success";
4389
- }
4390
- echo $response_stat;
4391
- die();
4392
- }
4393
- add_action("wp_ajax_acx_smw_install_licence_refresh","acx_smw_install_licence_refresh_callback");
4394
-
4395
-
4396
- // add purchased licence callback
4397
- function acx_smw_purchased_licence_add_callback()
4398
- {
4399
- if (!isset($_POST['acx_smw_purchased_licence_w_c_n'])) die("<br><br>".__('Unknown Error Occurred, Try Again... ','acurax-social-media-widget')."<a href=''>".__('Click Here','acurax-social-media-widget')."</a>");
4400
- if (!wp_verify_nonce($_POST['acx_smw_purchased_licence_w_c_n'],'acx_smw_purchased_licence_w_c_n')) die("<br><br>".__('Unknown Error Occurred, Try Again... ','acurax-social-media-widget')."<a href=''>".__('Click Here','acurax-social-media-widget')."</a>");
4401
- $acx_smw_purchased_licence = "";
4402
- if(ISSET($_POST['acx_smw_purchased_licence']))
4403
- {
4404
- $acx_smw_purchased_licence = trim($_POST['acx_smw_purchased_licence']);
4405
- }
4406
- $acx_smwp_licence_array = get_option('acx_fsmip_licence_array');
4407
- if(is_serialized($acx_smwp_licence_array))
4408
- {
4409
- $acx_smwp_licence_array = unserialize($acx_smwp_licence_array);
4410
  }
 
4411
  if($acx_smw_purchased_licence != "")
4412
  {
4413
- if (strpos($acx_smw_purchased_licence, 'ACX-FSMI') !== false || strpos($acx_smw_purchased_licence, 'FSMI-PA') !== false)
4414
  {
4415
  $licence_code_arr = explode('-',$acx_smw_purchased_licence);
4416
  if(is_array($licence_code_arr))
@@ -4428,62 +4422,86 @@ function acx_smw_purchased_licence_add_callback()
4428
  }
4429
 
4430
 
4431
- $acx_smw_ip = isset($_SERVER['SERVER_ADDR']) ? $_SERVER['SERVER_ADDR'] : $_SERVER['LOCAL_ADDR'];
4432
- $acx_smw_domain = $_SERVER['SERVER_NAME'];
4433
- $acx_smw_directory = dirname(__FILE__);
4434
- $acx_smw_args = array(
4435
- 'action' => 'acx-li-check-latest-version',
4436
- 'method' => 'addon_activation',
4437
- 'directory' => $acx_smw_directory,
4438
- 'unique_id' => $acx_smwp_index,
4439
- 'domain' => $acx_smw_domain,
4440
- 'ip' => $acx_smw_ip,
4441
- 'licence' => $acx_smw_purchased_licence
4442
- );
4443
- $acx_smw_unique_id = "";
4444
- // Send request checking for an update
4445
- $response = acx_smw_licence_activation_api_request( $acx_smw_args );
4446
- $response = json_decode($response, true);
4447
- if($response['response_status'] == "success" && $response['status'] == "Active")
4448
- {
4449
- $acx_smw_purchased_li_array = get_option('acx_fsmi_purchased_li_array');
4450
- if(is_serialized($acx_smw_purchased_li_array))
4451
- {
4452
- $acx_smw_purchased_li_array = unserialize($acx_smw_purchased_li_array);
4453
- }
4454
- if($acx_smw_purchased_li_array == "" || !is_array($acx_smw_purchased_li_array))
4455
  {
4456
- $acx_smw_purchased_li_array = array();
 
4457
  }
4458
- $acx_smw_unique_id = trim($response['unique_id']);
4459
- $acx_smw_purchased_li_array[$acx_smw_purchased_licence] = array(
4460
- 'slug' => $response['slug'],
4461
- 'status' => $response['status'],
4462
- 'ignore_stat' => $response['ignore_stat'],
4463
- 'download_dynamic_url' => $response['download_dynamic_url']
4464
- );
4465
- // update licence array
4466
-
4467
- $acx_smwp_licence_array[$acx_smw_unique_id]['addon_name'] = $response['name'];
4468
- $acx_smwp_licence_array[$acx_smw_unique_id]['version'] = $response['new_version'];
4469
- $acx_smwp_licence_array[$acx_smw_unique_id]['licence_code'] = $acx_smw_purchased_licence;
4470
- $acx_smwp_licence_array[$acx_smw_unique_id]['local_key'] = $response['localkey'];
4471
- if(!is_serialized($acx_smwp_licence_array))
4472
  {
4473
- $acx_smwp_licence_array = serialize($acx_smwp_licence_array);
 
 
 
 
 
 
4474
  }
4475
- update_option('acx_fsmip_licence_array',$acx_smwp_licence_array);
4476
- if(!is_serialized($acx_smw_purchased_li_array))
4477
  {
4478
- $acx_smw_purchased_li_array = serialize($acx_smw_purchased_li_array);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4479
  }
4480
- update_option('acx_fsmi_purchased_li_array',$acx_smw_purchased_li_array);
4481
- echo "success";
4482
- }
4483
- else
4484
- {
4485
- echo __("Your Licence is ","acurax-social-media-widget").$response['status'].__(" Please contact your admin","acurax-social-media-widget");
4486
- }
4487
  }
4488
  else
4489
  {
3803
  } // End of class_exists wrapper
3804
 
3805
  function acx_smw_purachase_licence_form()
3806
+ {
3807
+ do_action("acx_smw_show_purchased_li_table");
3808
+ }
3809
+ add_action("acx_smw_addon_hook_option_field_content","acx_smw_purachase_licence_form",20);
3810
+ function acx_smw_show_license_html()
3811
  {
3812
  $acx_smwp_licence_array = get_option('acx_fsmip_licence_array');
3813
  if(is_serialized($acx_smwp_licence_array))
3818
  {
3819
  $acx_smwp_licence_array = array();
3820
  }
3821
+ $acx_smw_purchased_li_array = get_option('acx_fsmi_purchased_li_array');
3822
+ if(is_serialized($acx_smw_purchased_li_array))
3823
+ {
3824
+ $acx_smw_purchased_li_array = unserialize($acx_smw_purchased_li_array);
3825
+ }
3826
+ if($acx_smw_purchased_li_array == "" || !is_array($acx_smw_purchased_li_array))
3827
+ {
3828
+ $acx_smw_purchased_li_array = array();
3829
+ }
3830
  ?>
3831
  <div class="acx_smw_purchased_li_cvr">
3832
  <div id="acx_smw_license_table_list" style="width:98%;float:left;">
3848
  <tr><td colspan="5"><?php _e('No Licence found','acurax-social-media-widget');?></td></tr>
3849
  <?php
3850
  }
3851
+ $acx_smw_plugin_stat = $acx_li_slug = "";
3852
+ $acx_license_status = $response_stat = "";
3853
+
3854
+ $version_to_print = "-";
3855
  $acx_refresh_stat = 'acx_hide_refresh';
3856
  foreach($acx_smwp_licence_array as $key => $value)
3857
  {
3858
+ if(!array_key_exists($value['licence_code'],$acx_smw_purchased_li_array))
 
 
3859
  {
3860
+ $response_stat = acx_smw_license_refresh_with_forcing($value['licence_code'],$key);
3861
  }
3862
+ }
3863
+ foreach($acx_smwp_licence_array as $key => $value)
3864
+ {
3865
+ $acx_plugin_array = acx_smw_get_purchased_plugin_details($value['licence_code']);
3866
+ if(ISSET($acx_plugin_array['slug']) && ISSET($acx_plugin_array['download_dynamic_url']))
3867
  {
3868
+
3869
+ $acx_license_status = $acx_plugin_array['status'];
3870
+ $acx_li_slug = $acx_plugin_array['slug'];
3871
+ $version_to_print = acx_smw_get_plugin_version_number($acx_li_slug);
3872
+ $acx_active_plugin_stat = acx_smw_get_active_plugin_status($acx_li_slug);
3873
+ if($acx_active_plugin_stat == true)
3874
+ {
3875
+ $acx_smw_plugin_stat = __('Active','acurax-social-media-widget');
3876
+ }
3877
+ else
3878
+ {
3879
+ $acx_smw_plugin_stat = __('Not Active <a href="'.wp_nonce_url(admin_url("admin.php?page=Acurax-Social-Widget-Settings-Install-Addons")).'">[Install Now]</a>','acurax-social-media-widget');
3880
+ }
3881
  }
3882
+
3883
+
3884
+
3885
  if(function_exists('check_acx_pfsmi_license') && !function_exists('acx_check_fsmip_offline_license'))
3886
  {
3887
  $acx_refresh_stat = 'acx_show_refresh';
3890
  ?>
3891
  <tr><td><?php echo $value['addon_name']; ?></td>
3892
  <td><?php echo $value['licence_code']; ?></td>
3893
+ <td><?php echo $version_to_print; ?></td>
3894
+ <td><?php echo $acx_license_status; ?></td>
3895
  <td><?php echo $acx_smw_plugin_stat; ?></td>
3896
  <td data-licence="<?php echo $value['licence_code']; ?>" data-key="<?php echo $key;?>"><span class="ax_smw_action_icon acx_smw_lic_refresh <?php echo $acx_refresh_stat; ?>" title="<?php _e("Refresh","acurax-social-media-widget");?>"></span><span class="ax_smw_action_icon acx_smw_lic_del" title="<?php _e("Delete","acurax-social-media-widget");?>"></span></td>
3897
  </tr>
3903
  </div><!-- acx_smw_purchased_li_cvr -->
3904
  <?php
3905
  }
3906
+ add_action("acx_smw_show_purchased_li_table","acx_smw_show_license_html");
3907
  } // End of !empty($acx_smw_purchased_li_array)
3908
  if(!function_exists('acx_smw_get_purchased_plugin_details'))
3909
  {
3911
  {
3912
  $licence = trim($licence);
3913
  $response_array = array(
3914
+ "download_dynamic_url" => "",
3915
+ "slug" => "",
 
3916
  "status" => ""
3917
  );
3918
  if($licence != "")
3933
  $response_array = array(
3934
  "download_dynamic_url" => $value['download_dynamic_url'],
3935
  "slug" => $value['slug'],
 
3936
  "status" => $value['status']
3937
  );
3938
  }
3963
  {
3964
  $acx_smwp_licence_array = array();
3965
  }
 
 
 
 
 
 
 
 
 
 
3966
  $display_notice = false;
3967
+ $acx_li_slug = $acx_li_download_url = '';
3968
+ $acx_active_plugin_stat = '';
3969
  foreach($acx_smwp_licence_array as $key => $value)
3970
  {
3971
  $acx_plugin_array = acx_smw_get_purchased_plugin_details($value['licence_code']);
3972
+ if(ISSET($acx_plugin_array['slug']) && ISSET($acx_plugin_array['download_dynamic_url']))
3973
+ {
3974
+ $acx_li_download_url = $acx_plugin_array['download_dynamic_url'];
3975
+ $acx_li_slug = $acx_plugin_array['slug'];
3976
+ $acx_active_plugin_stat = acx_smw_get_active_plugin_status($acx_li_slug);
3977
+ }
3978
  $plugins = array(
3979
  array(
3980
  'name' => $value['addon_name'], // The plugin name.
3981
+ 'slug' => $acx_li_slug, // The plugin slug (typically the folder name).
3982
+ 'source' => $acx_li_download_url, // The plugin source.
3983
  'required' => true, // If false, the plugin is only 'recommended' instead of required.
3984
  ),
3985
  );
3986
  $config = array(
3987
+ 'id' => $acx_li_slug,
3988
  'default_path' => '',
3989
  'menu' => 'Acurax-Social-Widget-Settings-Install-Addons',
3990
  'parent_slug' => 'Acurax-Social-Widget-Settings',
4008
  ),
4009
  ),
4010
  );
 
 
4011
  if($acx_active_plugin_stat == false)
4012
  {
4013
+ acx_smw_licence_tgmpa( $plugins, $config );
4014
+ $display_notice = true;
 
 
 
4015
  }
4016
  }
4017
  $smw_plugins = array(
4115
  function acx_smw_get_active_plugin_status($acx_slug)
4116
  {
4117
  $acx_return = false;
4118
+ if($acx_slug != "")
 
4119
  {
4120
+ $acx_smw_active_plugin_arr = get_option('active_plugins');
4121
+ foreach($acx_smw_active_plugin_arr as $key => $value)
4122
  {
4123
+ if(strpos($value,$acx_slug) !== false)
4124
+ {
4125
+ $acx_return = true;
4126
+ }
4127
  }
4128
  }
4129
  return $acx_return;
4130
  }
4131
+ function acx_smw_get_plugin_version_number($acx_slug)
4132
+ {
4133
+ $acx_version_return = '-';
4134
+ $acx_plugin_data_array = array();
4135
+ if($acx_slug != "")
4136
+ {
4137
+ if ( ! function_exists( 'get_plugins' ) )
4138
+ require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
4139
+ $plugin_folder = get_plugins( );
4140
+ $plugin_file ='';
4141
+ $acx_smw_active_plugin_arr = get_option('active_plugins');
4142
+ foreach($acx_smw_active_plugin_arr as $key => $value)
4143
+ {
4144
+ if(strpos($value,$acx_slug) !== false)
4145
+ {
4146
+ $plugin_file = $value ;
4147
+ $acx_version_return = $plugin_folder[$plugin_file]['Version'];
4148
+ }
4149
+ }
4150
+
4151
+ }
4152
+ return $acx_version_return;
4153
+ }
4154
 
4155
  function acx_smw_licence_btn_fn()
4156
+ {
4157
+ do_action("acx_smw_show_add_li_btn_hook");
4158
+ }
4159
+ add_action("acx_smw_addon_hook_option_field_content","acx_smw_licence_btn_fn",30);
4160
+ function acx_smw_show_li_button_html()
4161
  {
4162
  ?>
4163
  <div class="acx_smw_add_p_licen_cvr" style="width:100%;float:left;margin-top:50px;">
4226
 
4227
 
4228
  });
4229
+ jQuery(".acx_smw_lic_del").click(function()
 
 
 
 
 
 
 
 
4230
  {
4231
  var acx_confirm = confirm("<?php _e('Are you sure to delete this license?','acurax-social-media-widget')?>");
4232
  if(acx_confirm == true)
4242
  jQuery("#acx_smwp_loading_1").remove();
4243
  if(theResponse == "success")
4244
  {
4245
+ alert('<?php _e('Successfully deleted the license !!','acurax-social-media-widget');?>');
4246
  var link = window.location.href;
4247
  if(link !== '')
4248
  {
4269
  jQuery("#acx_smwp_loading_1").remove();
4270
  if(theResponse == "success")
4271
  {
4272
+ alert('<?php _e('Successfully refreshed the license !!','acurax-social-media-widget');?>');
4273
  var link = window.location.href;
4274
  if(link !== '')
4275
  {
4279
  });
4280
  }
4281
  });
4282
+ </script>
4283
+ <?php
4284
  }
4285
+ add_action('acx_smw_show_add_li_btn_hook','acx_smw_show_li_button_html');
4286
  // delete installed licence
4287
  function acx_smw_install_licence_del_callback()
4288
  {
4364
 
4365
  }
4366
  }
4367
+
4368
+ // add purchased licence callback
4369
+ function acx_smw_purchased_licence_add_callback()
4370
  {
4371
+ if (!isset($_POST['acx_smw_purchased_licence_w_c_n'])) die("<br><br>".__('Unknown Error Occurred, Try Again... ','acurax-social-media-widget')."<a href=''>".__('Click Here','acurax-social-media-widget')."</a>");
4372
+ if (!wp_verify_nonce($_POST['acx_smw_purchased_licence_w_c_n'],'acx_smw_purchased_licence_w_c_n')) die("<br><br>".__('Unknown Error Occurred, Try Again... ','acurax-social-media-widget')."<a href=''>".__('Click Here','acurax-social-media-widget')."</a>");
4373
+ $acx_smw_purchased_licence = "";
4374
+ $retry = true;
4375
+ if(ISSET($_POST['acx_smw_purchased_licence']))
 
 
 
 
 
 
 
 
 
4376
  {
4377
+ $acx_smw_purchased_licence = trim($_POST['acx_smw_purchased_licence']);
 
 
 
4378
  }
4379
  $acx_smwp_licence_array = get_option('acx_fsmip_licence_array');
4380
  if(is_serialized($acx_smwp_licence_array))
4381
  {
4382
  $acx_smwp_licence_array = unserialize($acx_smwp_licence_array);
4383
  }
4384
+ $acx_smwp_retry_array = get_option('acx_fsmip_retry_array');
4385
+ if(is_serialized($acx_smwp_retry_array))
4386
  {
4387
+ $acx_smwp_retry_array = unserialize($acx_smwp_retry_array);
4388
  }
4389
+ if($acx_smwp_retry_array == "")
 
4390
  {
4391
+ $acx_smwp_retry_array = array();
4392
  }
4393
+ if(!is_array($acx_smwp_retry_array))
4394
  {
4395
+ $acx_smwp_retry_array = array();
4396
  }
4397
+ if(ISSET($acx_smwp_retry_array[$acx_smw_purchased_licence]['activation_licence_check']))
4398
  {
4399
+ if($acx_smwp_retry_array[$acx_smw_purchased_licence]['activation_licence_check'] >= 3)
4400
  {
4401
+ $retry = false;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4402
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4403
  }
4404
+
4405
  if($acx_smw_purchased_licence != "")
4406
  {
4407
+ if (strpos($acx_smw_purchased_licence, 'FSMI') !== false)
4408
  {
4409
  $licence_code_arr = explode('-',$acx_smw_purchased_licence);
4410
  if(is_array($licence_code_arr))
4422
  }
4423
 
4424
 
4425
+ $acx_smw_ip = isset($_SERVER['SERVER_ADDR']) ? $_SERVER['SERVER_ADDR'] : $_SERVER['LOCAL_ADDR'];
4426
+ $acx_smw_domain = $_SERVER['SERVER_NAME'];
4427
+ $acx_smw_directory = dirname(__FILE__);
4428
+ $acx_smw_args = array(
4429
+ 'action' => 'acx-li-check-latest-version',
4430
+ 'method' => 'addon_activation',
4431
+ 'directory' => $acx_smw_directory,
4432
+ 'unique_id' => $acx_smwp_index,
4433
+ 'domain' => $acx_smw_domain,
4434
+ 'ip' => $acx_smw_ip,
4435
+ 'licence' => $acx_smw_purchased_licence
4436
+ );
4437
+ $acx_smw_unique_id = "";
4438
+ // Send request checking for an update
4439
+ if($retry == true)
 
 
 
 
 
 
 
 
 
4440
  {
4441
+ $response = acx_smw_licence_activation_api_request( $acx_smw_args );
4442
+ $response = json_decode($response, true);
4443
  }
4444
+ if(!ISSET($response['response_status']) && !ISSET($response['status']))
 
 
 
 
 
 
 
 
 
 
 
 
 
4445
  {
4446
+ if(ISSET($acx_smwp_retry_array[$acx_smw_purchased_licence]['activation_licence_check']))
4447
+ {
4448
+ $acx_smwp_retry_array[$acx_smw_purchased_licence]['activation_licence_check'] = $acx_smwp_retry_array[$acx_smw_purchased_licence]['activation_licence_check'] + 1;
4449
+ }
4450
+ else{
4451
+ $acx_smwp_retry_array[$acx_smw_purchased_licence]['activation_licence_check'] = 1;
4452
+ }
4453
  }
4454
+ else
 
4455
  {
4456
+ if($response['response_status'] == "success" && $response['status'] == "Active")
4457
+ {
4458
+ $acx_smw_purchased_li_array = get_option('acx_fsmi_purchased_li_array');
4459
+ if(is_serialized($acx_smw_purchased_li_array))
4460
+ {
4461
+ $acx_smw_purchased_li_array = unserialize($acx_smw_purchased_li_array);
4462
+ }
4463
+ if($acx_smw_purchased_li_array == "" || !is_array($acx_smw_purchased_li_array))
4464
+ {
4465
+ $acx_smw_purchased_li_array = array();
4466
+ }
4467
+ $acx_smw_unique_id = trim($response['unique_id']);
4468
+ $acx_smw_purchased_li_array[$acx_smw_purchased_licence] = array(
4469
+ 'slug' => $response['slug'],
4470
+ 'status' => $response['status'],
4471
+ 'download_dynamic_url' => $response['download_dynamic_url']
4472
+ );
4473
+ // update licence array
4474
+
4475
+ $acx_smwp_licence_array[$acx_smw_unique_id]['addon_name'] = $response['name'];
4476
+ $acx_smwp_licence_array[$acx_smw_unique_id]['version'] = $response['new_version'];
4477
+ $acx_smwp_licence_array[$acx_smw_unique_id]['licence_code'] = $acx_smw_purchased_licence;
4478
+ if($response['localkey'] != "")
4479
+ {
4480
+ $acx_smwp_licence_array[$acx_smw_unique_id]['local_key'] = $response['localkey'];
4481
+ }
4482
+ if(!is_serialized($acx_smwp_licence_array))
4483
+ {
4484
+ $acx_smwp_licence_array = serialize($acx_smwp_licence_array);
4485
+ }
4486
+ update_option('acx_fsmip_licence_array',$acx_smwp_licence_array);
4487
+ if(!is_serialized($acx_smw_purchased_li_array))
4488
+ {
4489
+ $acx_smw_purchased_li_array = serialize($acx_smw_purchased_li_array);
4490
+ }
4491
+ update_option('acx_fsmi_purchased_li_array',$acx_smw_purchased_li_array);
4492
+ $acx_smwp_retry_array[$acx_smw_purchased_licence]['activation_licence_check'] = 0;
4493
+ if(!is_serialized($acx_smwp_retry_array))
4494
+ {
4495
+ $acx_smwp_retry_array = serialize($acx_smwp_retry_array);
4496
+ }
4497
+ update_option('acx_fsmip_retry_array',$acx_smwp_retry_array);
4498
+ echo "success";
4499
+ }
4500
+ else
4501
+ {
4502
+ echo __("Sorry, Your license code is invalid, Please contact support","acurax-social-media-widget");
4503
+ }
4504
  }
 
 
 
 
 
 
 
4505
  }
4506
  else
4507
  {
readme.txt CHANGED
@@ -110,6 +110,10 @@ Have more questions ? [Drop a mail](http://www.acurax.com/contact.php/ "Drop an
110
 
111
  == Upgrade Notice ==
112
 
 
 
 
 
113
  = 3.2.1 =
114
  * Fix - Perfomance Improvements
115
  * Code Improvements
@@ -215,6 +219,10 @@ Have more questions ? [Drop a mail](http://www.acurax.com/contact.php/ "Drop an
215
 
216
  == Changelog ==
217
 
 
 
 
 
218
  = 3.2.1 =
219
  * Fix - Perfomance Improvements
220
  * Code Improvements
110
 
111
  == Upgrade Notice ==
112
 
113
+ = 3.2.2 =
114
+ * Fix - Perfomance Improvements
115
+ * Code Improvements
116
+
117
  = 3.2.1 =
118
  * Fix - Perfomance Improvements
119
  * Code Improvements
219
 
220
  == Changelog ==
221
 
222
+ = 3.2.2 =
223
+ * Fix - Perfomance Improvements
224
+ * Code Improvements
225
+
226
  = 3.2.1 =
227
  * Fix - Perfomance Improvements
228
  * Code Improvements