Custom Login Page Customizer - Version 1.2.1

Version Description

  • 2018-01-05
Download this release

Release Info

Developer codeinwp
Plugin Icon 128x128 Custom Login Page Customizer
Version 1.2.1
Comparing to
See all releases

Code changes from version 1.2.0 to 1.2.1

CHANGELOG.md CHANGED
@@ -1,7 +1,9 @@
1
 
2
- ### v1.2.0 - 2017-12-30
3
  **Changes:**
4
-
 
 
5
  ### v1.2.0 - 2017-10-16
6
  **Changes:**
7
  * Adds tested up to wp 4.8.
1
 
2
+ ### v1.2.1 - 2018-01-05
3
  **Changes:**
4
+ * Improves compatiblity with latest WordPress version.
5
+ * Sync ThemeIsle SDK.
6
+
7
  ### v1.2.0 - 2017-10-16
8
  **Changes:**
9
  * Adds tested up to wp 4.8.
languages/login-customizer.pot CHANGED
@@ -1,14 +1,14 @@
1
- # Copyright (C) 2017 Hardeep Asrani
2
- # This file is distributed under the same license as the Custom Login Page Customizer package.
3
  msgid ""
4
  msgstr ""
5
  "Project-Id-Version: Custom Login Page Customizer 1.2.0\n"
6
  "Report-Msgid-Bugs-To: https://github.com/Codeinwp/login-customizer/issues\n"
7
- "POT-Creation-Date: 2017-10-16 09:40:07+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
- "PO-Revision-Date: 2017-MO-DA HO:MI+ZONE\n"
12
  "Last-Translator: Themeisle Translate Team <friends@themeisle.com>\n"
13
  "Language-Team: Themeisle Translate <friends@themeisle.com>\n"
14
  "X-Generator: grunt-wp-i18n 0.5.4\n"
@@ -24,216 +24,221 @@ msgstr ""
24
  "X-Poedit-Bookmarks: \n"
25
  "X-Textdomain-Support: yes\n"
26
 
27
- #: customizer.php:9 option-panel.php:3 option-panel.php:17
 
28
  msgid "Login Customizer"
29
  msgstr ""
30
 
31
- #: customizer.php:10
32
  msgid ""
33
  "This section allows you to customize the login page of your "
34
  "website.<br/>Login Customizer by <a target=\"_blank\" rel=\"nofollow\" "
35
  "href=\"https://themeisle.com\">ThemeIsle</a>"
36
  msgstr ""
37
 
38
- #: customizer.php:17
39
  msgid "Logo"
40
  msgstr ""
41
 
42
- #: customizer.php:25
43
  msgid "Background"
44
  msgstr ""
45
 
46
- #: customizer.php:33
47
  msgid "Form Background"
48
  msgstr ""
49
 
50
- #: customizer.php:41
51
  msgid "Form Styling"
52
  msgstr ""
53
 
54
- #: customizer.php:49
55
  msgid "Fields Styling"
56
  msgstr ""
57
 
58
- #: customizer.php:57
59
  msgid "Button Styling"
60
  msgstr ""
61
 
62
- #: customizer.php:65
63
  msgid "Other"
64
  msgstr ""
65
 
66
- #: customizer.php:73
67
  msgid "Security"
68
  msgstr ""
69
 
70
- #: customizer.php:88
71
  msgid "Login Logo"
72
  msgstr ""
73
 
74
- #: customizer.php:106
75
  msgid "Logo Width"
76
  msgstr ""
77
 
78
- #: customizer.php:123
79
  msgid "Logo Height"
80
  msgstr ""
81
 
82
- #: customizer.php:140
83
  msgid "Padding Bottom"
84
  msgstr ""
85
 
86
- #: customizer.php:157 customizer.php:210
 
87
  msgid "Background Image"
88
  msgstr ""
89
 
90
- #: customizer.php:176 customizer.php:229
 
91
  msgid "Background Color"
92
  msgstr ""
93
 
94
- #: customizer.php:193
95
  msgid "Background Size"
96
  msgstr ""
97
 
98
- #: customizer.php:247
99
  msgid "Width"
100
  msgstr ""
101
 
102
- #: customizer.php:264
103
  msgid "Height"
104
  msgstr ""
105
 
106
- #: customizer.php:281
107
  msgid "Padding"
108
  msgstr ""
109
 
110
- #: customizer.php:297
111
  msgid "Border (Example: 2px dotted black) "
112
  msgstr ""
113
 
114
- #: customizer.php:314
115
  msgid "Input Field Width"
116
  msgstr ""
117
 
118
- #: customizer.php:331
119
  msgid "Input Field Margin"
120
  msgstr ""
121
 
122
- #: customizer.php:349
123
  msgid "Input Field Background"
124
  msgstr ""
125
 
126
- #: customizer.php:368
127
  msgid "Input Field Color"
128
  msgstr ""
129
 
130
- #: customizer.php:387
131
  msgid "Label Color"
132
  msgstr ""
133
 
134
- #: customizer.php:406
135
  msgid "Button Background"
136
  msgstr ""
137
 
138
- #: customizer.php:425
139
  msgid "Button Border"
140
  msgstr ""
141
 
142
- #: customizer.php:444
143
  msgid "Button Background (Hover)"
144
  msgstr ""
145
 
146
- #: customizer.php:463
147
  msgid "Button Border (Hover)"
148
  msgstr ""
149
 
150
- #: customizer.php:482
151
  msgid "Button Box Shadow"
152
  msgstr ""
153
 
154
- #: customizer.php:501
155
  msgid "Button Color"
156
  msgstr ""
157
 
158
- #: customizer.php:520
159
  msgid "Text Color"
160
  msgstr ""
161
 
162
- #: customizer.php:539
163
  msgid "Text Color (Hover)"
164
  msgstr ""
165
 
166
- #: customizer.php:556
167
  msgid "Custom CSS"
168
  msgstr ""
169
 
170
- #: login-customizer.php:25
171
  msgid ""
172
  "<p class=\"logincust_pro_text\">You need to buy the <a "
173
  "href=\"http://themeisle.com/plugins/custom-login-customizer-security-addon/\""
174
  " target=\"_blank\">SECURITY ADDON</a> to have this options. </p>"
175
  msgstr ""
176
 
177
- #: option-panel.php:18
178
  msgid "Howdy!"
179
  msgstr ""
180
 
181
- #: option-panel.php:19
182
  msgid ""
183
  "Login Customizer plugin allows you to easily customize your login page "
184
  "straight from your WordPress Customizer! You can preview your changes "
185
  "before you save them! Awesome, right?"
186
  msgstr ""
187
 
188
- #: option-panel.php:20
189
  msgid "In Customizer, navigate to Login Customizer"
190
  msgstr ""
191
 
192
- #: option-panel.php:21
193
  msgid "Start Customizing!"
194
  msgstr ""
195
 
196
- #: option-panel.php:22
197
  msgid "Credits/Support (All the unwanted crap)"
198
  msgstr ""
199
 
200
- #: option-panel.php:23
201
  msgid ""
202
  "If you find any issues or if you want to contribute, then please free to "
203
  "drop me a mail at"
204
  msgstr ""
205
 
206
- #: option-panel.php:23
207
  msgid "this link"
208
  msgstr ""
209
 
210
- #: option-panel.php:24
211
  msgid "Thanks for using this plugin. Don not forget to leave a review."
212
  msgstr ""
213
 
214
- #: option-panel.php:25
215
  msgid "ThemeIsle :)"
216
  msgstr ""
217
 
218
- #: option-panel.php:27 option-panel.php:62
 
219
  msgid "Subscribe"
220
  msgstr ""
221
 
222
- #: option-panel.php:51 option-panel.php:89
 
223
  msgid ""
224
  "Our free, 4-lesson course on how to make your WordPress site run incredibly "
225
  "fast is barely waiting for its students. Ready to learn how to reduce your "
226
  "loading times by half? Come and join the 1st lesson here!"
227
  msgstr ""
228
 
229
- #: option-panel.php:53
230
  msgid ""
231
  "Thank you for subscribing! You have been added to the mailing list and will "
232
  "receive the next email information in the coming weeks. If you ever wish to "
233
  "unsubscribe, simply use the Unsubscribe link included in each newsletter."
234
  msgstr ""
235
 
236
- #: option-panel.php:91
237
  msgid ""
238
  "Thank you for subscribing! You have been added to the mailing list and will "
239
  "receive the next email information in the coming weeks. If you ever wish to "
1
+ # Copyright (C) 2018 Hardeep Asrani
2
+ # This file is distributed under the no.
3
  msgid ""
4
  msgstr ""
5
  "Project-Id-Version: Custom Login Page Customizer 1.2.0\n"
6
  "Report-Msgid-Bugs-To: https://github.com/Codeinwp/login-customizer/issues\n"
7
+ "POT-Creation-Date: 2018-01-05 15:00:54+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
+ "PO-Revision-Date: 2018-MO-DA HO:MI+ZONE\n"
12
  "Last-Translator: Themeisle Translate Team <friends@themeisle.com>\n"
13
  "Language-Team: Themeisle Translate <friends@themeisle.com>\n"
14
  "X-Generator: grunt-wp-i18n 0.5.4\n"
24
  "X-Poedit-Bookmarks: \n"
25
  "X-Textdomain-Support: yes\n"
26
 
27
+ #: customizer.php:9 dist/customizer.php:9 dist/option-panel.php:3
28
+ #: dist/option-panel.php:17 option-panel.php:3 option-panel.php:17
29
  msgid "Login Customizer"
30
  msgstr ""
31
 
32
+ #: customizer.php:10 dist/customizer.php:10
33
  msgid ""
34
  "This section allows you to customize the login page of your "
35
  "website.<br/>Login Customizer by <a target=\"_blank\" rel=\"nofollow\" "
36
  "href=\"https://themeisle.com\">ThemeIsle</a>"
37
  msgstr ""
38
 
39
+ #: customizer.php:17 dist/customizer.php:17
40
  msgid "Logo"
41
  msgstr ""
42
 
43
+ #: customizer.php:25 dist/customizer.php:25
44
  msgid "Background"
45
  msgstr ""
46
 
47
+ #: customizer.php:33 dist/customizer.php:33
48
  msgid "Form Background"
49
  msgstr ""
50
 
51
+ #: customizer.php:41 dist/customizer.php:41
52
  msgid "Form Styling"
53
  msgstr ""
54
 
55
+ #: customizer.php:49 dist/customizer.php:49
56
  msgid "Fields Styling"
57
  msgstr ""
58
 
59
+ #: customizer.php:57 dist/customizer.php:57
60
  msgid "Button Styling"
61
  msgstr ""
62
 
63
+ #: customizer.php:65 dist/customizer.php:65
64
  msgid "Other"
65
  msgstr ""
66
 
67
+ #: customizer.php:73 dist/customizer.php:73
68
  msgid "Security"
69
  msgstr ""
70
 
71
+ #: customizer.php:88 dist/customizer.php:88
72
  msgid "Login Logo"
73
  msgstr ""
74
 
75
+ #: customizer.php:106 dist/customizer.php:106
76
  msgid "Logo Width"
77
  msgstr ""
78
 
79
+ #: customizer.php:123 dist/customizer.php:123
80
  msgid "Logo Height"
81
  msgstr ""
82
 
83
+ #: customizer.php:140 dist/customizer.php:140
84
  msgid "Padding Bottom"
85
  msgstr ""
86
 
87
+ #: customizer.php:157 customizer.php:210 dist/customizer.php:157
88
+ #: dist/customizer.php:210
89
  msgid "Background Image"
90
  msgstr ""
91
 
92
+ #: customizer.php:176 customizer.php:229 dist/customizer.php:176
93
+ #: dist/customizer.php:229
94
  msgid "Background Color"
95
  msgstr ""
96
 
97
+ #: customizer.php:193 dist/customizer.php:193
98
  msgid "Background Size"
99
  msgstr ""
100
 
101
+ #: customizer.php:247 dist/customizer.php:247
102
  msgid "Width"
103
  msgstr ""
104
 
105
+ #: customizer.php:264 dist/customizer.php:264
106
  msgid "Height"
107
  msgstr ""
108
 
109
+ #: customizer.php:281 dist/customizer.php:281
110
  msgid "Padding"
111
  msgstr ""
112
 
113
+ #: customizer.php:297 dist/customizer.php:297
114
  msgid "Border (Example: 2px dotted black) "
115
  msgstr ""
116
 
117
+ #: customizer.php:314 dist/customizer.php:314
118
  msgid "Input Field Width"
119
  msgstr ""
120
 
121
+ #: customizer.php:331 dist/customizer.php:331
122
  msgid "Input Field Margin"
123
  msgstr ""
124
 
125
+ #: customizer.php:349 dist/customizer.php:349
126
  msgid "Input Field Background"
127
  msgstr ""
128
 
129
+ #: customizer.php:368 dist/customizer.php:368
130
  msgid "Input Field Color"
131
  msgstr ""
132
 
133
+ #: customizer.php:387 dist/customizer.php:387
134
  msgid "Label Color"
135
  msgstr ""
136
 
137
+ #: customizer.php:406 dist/customizer.php:406
138
  msgid "Button Background"
139
  msgstr ""
140
 
141
+ #: customizer.php:425 dist/customizer.php:425
142
  msgid "Button Border"
143
  msgstr ""
144
 
145
+ #: customizer.php:444 dist/customizer.php:444
146
  msgid "Button Background (Hover)"
147
  msgstr ""
148
 
149
+ #: customizer.php:463 dist/customizer.php:463
150
  msgid "Button Border (Hover)"
151
  msgstr ""
152
 
153
+ #: customizer.php:482 dist/customizer.php:482
154
  msgid "Button Box Shadow"
155
  msgstr ""
156
 
157
+ #: customizer.php:501 dist/customizer.php:501
158
  msgid "Button Color"
159
  msgstr ""
160
 
161
+ #: customizer.php:520 dist/customizer.php:520
162
  msgid "Text Color"
163
  msgstr ""
164
 
165
+ #: customizer.php:539 dist/customizer.php:539
166
  msgid "Text Color (Hover)"
167
  msgstr ""
168
 
169
+ #: customizer.php:556 dist/customizer.php:556
170
  msgid "Custom CSS"
171
  msgstr ""
172
 
173
+ #: dist/login-customizer.php:27 login-customizer.php:27
174
  msgid ""
175
  "<p class=\"logincust_pro_text\">You need to buy the <a "
176
  "href=\"http://themeisle.com/plugins/custom-login-customizer-security-addon/\""
177
  " target=\"_blank\">SECURITY ADDON</a> to have this options. </p>"
178
  msgstr ""
179
 
180
+ #: dist/option-panel.php:18 option-panel.php:18
181
  msgid "Howdy!"
182
  msgstr ""
183
 
184
+ #: dist/option-panel.php:19 option-panel.php:19
185
  msgid ""
186
  "Login Customizer plugin allows you to easily customize your login page "
187
  "straight from your WordPress Customizer! You can preview your changes "
188
  "before you save them! Awesome, right?"
189
  msgstr ""
190
 
191
+ #: dist/option-panel.php:20 option-panel.php:20
192
  msgid "In Customizer, navigate to Login Customizer"
193
  msgstr ""
194
 
195
+ #: dist/option-panel.php:21 option-panel.php:21
196
  msgid "Start Customizing!"
197
  msgstr ""
198
 
199
+ #: dist/option-panel.php:22 option-panel.php:22
200
  msgid "Credits/Support (All the unwanted crap)"
201
  msgstr ""
202
 
203
+ #: dist/option-panel.php:23 option-panel.php:23
204
  msgid ""
205
  "If you find any issues or if you want to contribute, then please free to "
206
  "drop me a mail at"
207
  msgstr ""
208
 
209
+ #: dist/option-panel.php:23 option-panel.php:23
210
  msgid "this link"
211
  msgstr ""
212
 
213
+ #: dist/option-panel.php:24 option-panel.php:24
214
  msgid "Thanks for using this plugin. Don not forget to leave a review."
215
  msgstr ""
216
 
217
+ #: dist/option-panel.php:25 option-panel.php:25
218
  msgid "ThemeIsle :)"
219
  msgstr ""
220
 
221
+ #: dist/option-panel.php:27 dist/option-panel.php:62 option-panel.php:27
222
+ #: option-panel.php:62
223
  msgid "Subscribe"
224
  msgstr ""
225
 
226
+ #: dist/option-panel.php:51 dist/option-panel.php:89 option-panel.php:51
227
+ #: option-panel.php:89
228
  msgid ""
229
  "Our free, 4-lesson course on how to make your WordPress site run incredibly "
230
  "fast is barely waiting for its students. Ready to learn how to reduce your "
231
  "loading times by half? Come and join the 1st lesson here!"
232
  msgstr ""
233
 
234
+ #: dist/option-panel.php:53 option-panel.php:53
235
  msgid ""
236
  "Thank you for subscribing! You have been added to the mailing list and will "
237
  "receive the next email information in the coming weeks. If you ever wish to "
238
  "unsubscribe, simply use the Unsubscribe link included in each newsletter."
239
  msgstr ""
240
 
241
+ #: dist/option-panel.php:91 option-panel.php:91
242
  msgid ""
243
  "Thank you for subscribing! You have been added to the mailing list and will "
244
  "receive the next email information in the coming weeks. If you ever wish to "
login-customizer.php CHANGED
@@ -13,12 +13,12 @@
13
  * Description: Custom Login Customizer plugin allows you to easily customize your login page straight from your WordPress Customizer! Awesome, right?
14
  * Author: Hardeep Asrani
15
  * Author URI: https://themeisle.com/
16
- * Version: 1.2.0
17
  * WordPress Available: yes
18
  * Requires License: no
19
  */
20
 
21
- define( 'LOGINCUST_VERSION', '1.2.0' );
22
  define( 'LOGINCUST_FREE_PATH', plugin_dir_path( __FILE__ ) );
23
  define( 'LOGINCUST_FREE_URL', plugin_dir_url( __FILE__ ) );
24
  if ( ! defined( 'login-customizer' ) ) {
13
  * Description: Custom Login Customizer plugin allows you to easily customize your login page straight from your WordPress Customizer! Awesome, right?
14
  * Author: Hardeep Asrani
15
  * Author URI: https://themeisle.com/
16
+ * Version: 1.2.1
17
  * WordPress Available: yes
18
  * Requires License: no
19
  */
20
 
21
+ define( 'LOGINCUST_VERSION', '1.2.1' );
22
  define( 'LOGINCUST_FREE_PATH', plugin_dir_path( __FILE__ ) );
23
  define( 'LOGINCUST_FREE_URL', plugin_dir_url( __FILE__ ) );
24
  if ( ! defined( 'login-customizer' ) ) {
mailin.php CHANGED
@@ -39,19 +39,19 @@ class Mailin {
39
  echo 'Curl error: ' . curl_error( $ch ) . '\n';
40
  }
41
  curl_close( $ch );
42
- return json_decode( $data,true );
43
  }
44
  public function get( $resource, $input ) {
45
- return $this->do_request( $resource,'GET',$input );
46
  }
47
  public function put( $resource, $input ) {
48
- return $this->do_request( $resource,'PUT',$input );
49
  }
50
  public function post( $resource, $input ) {
51
- return $this->do_request( $resource,'POST',$input );
52
  }
53
  public function delete( $resource, $input ) {
54
- return $this->do_request( $resource,'DELETE',$input );
55
  }
56
 
57
  /*
@@ -59,7 +59,7 @@ class Mailin {
59
  No input required
60
  */
61
  public function get_account() {
62
- return $this->get( 'account','' );
63
  }
64
 
65
  /*
@@ -67,7 +67,7 @@ class Mailin {
67
  No input required
68
  */
69
  public function get_smtp_details() {
70
- return $this->get( 'account/smtpdetail','' );
71
  }
72
 
73
  /*
@@ -84,7 +84,7 @@ class Mailin {
84
  @options data {Array} associate_ip: Associate dedicated IPs to reseller child. You can use commas to separate multiple IPs [Optional]
85
  */
86
  public function create_child_account( $data ) {
87
- return $this->post( 'account',json_encode( $data ) );
88
  }
89
 
90
  /*
@@ -99,7 +99,7 @@ class Mailin {
99
  @options data {Array} disassociate_ip: Disassociate dedicated IPs from reseller child. You can use commas to separate multiple IPs [Optional]
100
  */
101
  public function update_child_account( $data ) {
102
- return $this->put( 'account',json_encode( $data ) );
103
  }
104
 
105
  /*
@@ -108,7 +108,7 @@ class Mailin {
108
  @options data {String} auth_key: 16 character authorization key of Reseller child to be deleted [Mandatory]
109
  */
110
  public function delete_child_account( $data ) {
111
- return $this->delete( 'account/' . $data['auth_key'],'' );
112
  }
113
 
114
  /*
@@ -117,7 +117,7 @@ class Mailin {
117
  @options data {String} auth_key: 16 character authorization key of Reseller child. Example : To get the details of more than one child account, use, {"key1":"abC01De2fGHI3jkL","key2":"mnO45Pq6rSTU7vWX"} [Mandatory]
118
  */
119
  public function get_reseller_child( $data ) {
120
- return $this->post( 'account/getchildv2',json_encode( $data ) );
121
  }
122
 
123
  /*
@@ -132,7 +132,7 @@ class Mailin {
132
  - sms_credit {Integer} Number of sms credts
133
  */
134
  public function add_remove_child_credits( $data ) {
135
- return $this->post( 'account/addrmvcredit',json_encode( $data ) );
136
  }
137
 
138
  /*
@@ -141,7 +141,7 @@ class Mailin {
141
  @options data {Integer} id: Unique Id of the campaign [Mandatory]
142
  */
143
  public function get_campaign_v2( $data ) {
144
- return $this->get( 'campaign/' . $data['id'] . '/detailsv2','' );
145
  }
146
 
147
  /*
@@ -153,7 +153,7 @@ class Mailin {
153
  @options data {Integer} page_limit: This should be a valid number between 1-500 [Optional]
154
  */
155
  public function get_campaigns_v2( $data ) {
156
- return $this->get( 'campaign/detailsv2',json_encode( $data ) );
157
  }
158
 
159
  /*
@@ -179,7 +179,7 @@ class Mailin {
179
 
180
  */
181
  public function create_campaign( $data ) {
182
- return $this->post( 'campaign',json_encode( $data ) );
183
  }
184
 
185
  /*
@@ -207,7 +207,7 @@ class Mailin {
207
  public function update_campaign( $data ) {
208
  $id = $data['id'];
209
  unset( $data['id'] );
210
- return $this->put( 'campaign/' . $id,json_encode( $data ) );
211
  }
212
 
213
  /*
@@ -216,7 +216,7 @@ class Mailin {
216
  @options data {Integer} id: Id of campaign to be deleted [Mandatory]
217
  */
218
  public function delete_campaign( $data ) {
219
- return $this->delete( 'campaign/' . $data['id'],'' );
220
  }
221
 
222
  /*
@@ -234,7 +234,7 @@ class Mailin {
234
  public function campaign_report_email( $data ) {
235
  $id = $data['id'];
236
  unset( $data['id'] );
237
- return $this->post( 'campaign/' . $id . '/report',json_encode( $data ) );
238
  }
239
 
240
  /*
@@ -247,7 +247,7 @@ class Mailin {
247
  public function campaign_recipients_export( $data ) {
248
  $id = $data['id'];
249
  unset( $data['id'] );
250
- return $this->post( 'campaign/' . $id . '/recipients',json_encode( $data ) );
251
  }
252
 
253
  /*
@@ -257,7 +257,7 @@ class Mailin {
257
  */
258
 
259
  public function share_campaign( $data ) {
260
- return $this->post( 'campaign/sharelinkv2',json_encode( $data ) );
261
  }
262
 
263
  /*
@@ -269,7 +269,7 @@ class Mailin {
269
  public function send_bat_email( $data ) {
270
  $id = $data['id'];
271
  unset( $data['id'] );
272
- return $this->post( 'campaign/' . $id . '/test',json_encode( $data ) );
273
  }
274
 
275
  /*
@@ -281,7 +281,7 @@ class Mailin {
281
  public function update_campaign_status( $data ) {
282
  $id = $data['id'];
283
  unset( $data['id'] );
284
- return $this->put( 'campaign/' . $id . '/updatecampstatus',json_encode( $data ) );
285
  }
286
 
287
  /*
@@ -307,7 +307,7 @@ class Mailin {
307
  @options data {Integer} send_now: Flag to send campaign now. Possible values = 0 (default) & 1. send_now = 0 means campaign can’t be send now, & send_now = 1 means campaign ready to send now [Optional]
308
  */
309
  public function create_trigger_campaign( $data ) {
310
- return $this->post( 'campaign',json_encode( $data ) );
311
  }
312
 
313
  /*
@@ -336,7 +336,7 @@ class Mailin {
336
  public function update_trigger_campaign( $data ) {
337
  $id = $data['id'];
338
  unset( $data['id'] );
339
- return $this->put( 'campaign/' . $id,json_encode( $data ) );
340
  }
341
 
342
  /*
@@ -346,7 +346,7 @@ class Mailin {
346
  @options data {Integer} page_limit: This should be a valid number between 1-50 [Mandatory]
347
  */
348
  public function get_folders( $data ) {
349
- return $this->get( 'folder',json_encode( $data ) );
350
  }
351
 
352
  /*
@@ -355,7 +355,7 @@ class Mailin {
355
  @options data {Integer} id: Id of folder to get details [Mandatory]
356
  */
357
  public function get_folder( $data ) {
358
- return $this->get( 'folder/' . $data['id'],'' );
359
  }
360
 
361
  /*
@@ -364,7 +364,7 @@ class Mailin {
364
  @options data {String} name: Desired name of the folder to be created [Mandatory]
365
  */
366
  public function create_folder( $data ) {
367
- return $this->post( 'folder',json_encode( $data ) );
368
  }
369
 
370
  /*
@@ -373,7 +373,7 @@ class Mailin {
373
  @options data {Integer} id: Id of folder to be deleted [Mandatory]
374
  */
375
  public function delete_folder( $data ) {
376
- return $this->delete( 'folder/' . $data['id'],'' );
377
  }
378
 
379
  /*
@@ -385,7 +385,7 @@ class Mailin {
385
  public function update_folder( $data ) {
386
  $id = $data['id'];
387
  unset( $data['id'] );
388
- return $this->put( 'folder/' . $id,json_encode( $data ) );
389
  }
390
 
391
  /*
@@ -396,7 +396,7 @@ class Mailin {
396
  @options data {Integer} page_limit: This should be a valid number between 1-50 [Mandatory]
397
  */
398
  public function get_lists( $data ) {
399
- return $this->get( 'list',json_encode( $data ) );
400
  }
401
 
402
  /*
@@ -405,7 +405,7 @@ class Mailin {
405
  @options data {Integer} id: Id of list to get details [Mandatory]
406
  */
407
  public function get_list( $data ) {
408
- return $this->get( 'list/' . $data['id'],'' );
409
  }
410
 
411
  /*
@@ -415,7 +415,7 @@ class Mailin {
415
  @options data {Integer} list_parent: Folder ID [Mandatory]
416
  */
417
  public function create_list( $data ) {
418
- return $this->post( 'list',json_encode( $data ) );
419
  }
420
 
421
  /*
@@ -428,7 +428,7 @@ class Mailin {
428
  public function update_list( $data ) {
429
  $id = $data['id'];
430
  unset( $data['id'] );
431
- return $this->put( 'list/' . $id,json_encode( $data ) );
432
  }
433
 
434
  /*
@@ -437,7 +437,7 @@ class Mailin {
437
  @options data {Integer} id: Id of list to be deleted [Mandatory]
438
  */
439
  public function delete_list( $data ) {
440
- return $this->delete( 'list/' . $data['id'],'' );
441
  }
442
 
443
  /*
@@ -449,7 +449,7 @@ class Mailin {
449
  @options data {Integer} page_limit: This should be a valid number between 1-500 [Optional]
450
  */
451
  public function display_list_users( $data ) {
452
- return $this->post( 'list/display',json_encode( $data ) );
453
  }
454
 
455
  /*
@@ -462,7 +462,7 @@ class Mailin {
462
  public function add_users_list( $data ) {
463
  $id = $data['id'];
464
  unset( $data['id'] );
465
- return $this->post( 'list/' . $id . '/users',json_encode( $data ) );
466
  }
467
 
468
  /*
@@ -474,7 +474,7 @@ class Mailin {
474
  public function delete_users_list( $data ) {
475
  $id = $data['id'];
476
  unset( $data['id'] );
477
- return $this->delete( 'list/' . $id . '/delusers',json_encode( $data ) );
478
  }
479
 
480
  /*
@@ -482,7 +482,7 @@ class Mailin {
482
  No input required
483
  */
484
  public function get_attributes() {
485
- return $this->get( 'attribute','' );
486
  }
487
 
488
  /*
@@ -491,7 +491,7 @@ class Mailin {
491
  @options data {String} type: Type of attribute. Possible values – normal, transactional, category, calculated & global [Optional]
492
  */
493
  public function get_attribute( $data ) {
494
- return $this->get( 'attribute/' . $data['type'],'' );
495
  }
496
 
497
  /*
@@ -502,7 +502,7 @@ class Mailin {
502
  The name and data value of ‘category’, ‘calculated’ & ‘global’, should be sent as JSON string. Example: ‘[{ "name":"ATTRIBUTE_NAME1", "value":"Attribute_value1" }, { "name":"ATTRIBUTE_NAME2", "value":"Attribute_value2" }]’. You can use commas to separate multiple attributes [Mandatory]
503
  */
504
  public function create_attribute( $data ) {
505
- return $this->post( 'attribute/',json_encode( $data ) );
506
  }
507
 
508
  /*
@@ -513,7 +513,7 @@ class Mailin {
513
  public function delete_attribute( $type, $data ) {
514
  $type = $data['type'];
515
  unset( $data['type'] );
516
- return $this->post( 'attribute/' . $type,json_encode( $data ) );
517
  }
518
 
519
  /*
@@ -527,7 +527,7 @@ class Mailin {
527
  @options data {Array} blacklisted_sms: This is used to blacklist/ Unblacklist a user’s SMS number. Possible values – 0 & 1. blacklisted_sms = 1 means user’s SMS number has been blacklisted [Optional]
528
  */
529
  public function create_update_user( $data ) {
530
- return $this->post( 'user/createdituser',json_encode( $data ) );
531
  }
532
 
533
  /*
@@ -536,7 +536,7 @@ class Mailin {
536
  @options data {String} email: Email address of the already existing user in the SendinBlue contacts [Mandatory]
537
  */
538
  public function get_user( $data ) {
539
- return $this->get( 'user/' . $data['email'],'' );
540
  }
541
 
542
  /*
@@ -545,7 +545,7 @@ class Mailin {
545
  @options data {String} email: Email address of the already existing user in the SendinBlue contacts to be unlinked from all lists [Mandatory]
546
  */
547
  public function delete_user( $data ) {
548
- return $this->delete( 'user/' . $data['email'],'' );
549
  }
550
 
551
  /*
@@ -559,7 +559,7 @@ class Mailin {
559
  @options data {Integer} list_parent: This is the existing folder id & can be used with name parameter to make newly created list’s desired parent [Optional]
560
  */
561
  public function import_users( $data ) {
562
- return $this->post( 'user/import',json_encode( $data ) );
563
  }
564
 
565
  /*
@@ -570,7 +570,7 @@ class Mailin {
570
  @options data {String} notify_url: URL that will be called once the export process is finished [Optional]
571
  */
572
  public function export_users( $data ) {
573
- return $this->post( 'user/export',json_encode( $data ) );
574
  }
575
 
576
  /*
@@ -580,7 +580,7 @@ class Mailin {
580
  @options data {Integer} page_limit: This should be a valid number between 1-50 [Mandatory]
581
  */
582
  public function get_processes( $data ) {
583
- return $this->get( 'process',json_encode( $data ) );
584
  }
585
 
586
  /*
@@ -589,7 +589,7 @@ class Mailin {
589
  @options data {Integer} id: Id of process to get details [Mandatory]
590
  */
591
  public function get_process( $data ) {
592
- return $this->get( 'process/' . $data['id'],'' );
593
  }
594
 
595
  /*
@@ -598,7 +598,7 @@ class Mailin {
598
  @options data {String} is_plat: Flag to get webhooks. Possible values – 0 & 1. Example: to get Transactional webhooks, use $is_plat=0, to get Marketing webhooks, use $is_plat=1, & to get all webhooks, use $is_plat="" [Optional]
599
  */
600
  public function get_webhooks( $data ) {
601
- return $this->get( 'webhook',json_encode( $data ) );
602
  }
603
 
604
  /*
@@ -607,7 +607,7 @@ class Mailin {
607
  @options data {Integer} id: Id of webhook to get details [Mandatory]
608
  */
609
  public function get_webhook( $data ) {
610
- return $this->get( 'webhook/' . $data['id'],'' );
611
  }
612
 
613
  /*
@@ -619,7 +619,7 @@ class Mailin {
619
  @options data {Integer} is_plat: Flag to create webhook type. Possible values – 0 (default) & 1. Example: to create Transactional webhooks, use $is_plat=0, & to create Marketing webhooks, use $is_plat=1 [Optional]
620
  */
621
  public function create_webhook( $data ) {
622
- return $this->post( 'webhook',json_encode( $data ) );
623
  }
624
 
625
  /*
@@ -628,7 +628,7 @@ class Mailin {
628
  @options data {Integer} id: Id of webhook to be deleted [Mandatory]
629
  */
630
  public function delete_webhook( $data ) {
631
- return $this->delete( 'webhook/' . $data['id'],'' );
632
  }
633
 
634
  /*
@@ -642,7 +642,7 @@ class Mailin {
642
  public function update_webhook( $data ) {
643
  $id = $data['id'];
644
  unset( $data['id'] );
645
- return $this->put( 'webhook/' . $id,json_encode( $data ) );
646
  }
647
 
648
  /*
@@ -651,7 +651,7 @@ class Mailin {
651
  @options data {String} option: Options to get senders. Possible options – IP-wise, & Domain-wise ( only for dedicated IP clients ). Example: to get senders with specific IP, use $option=’1.2.3.4′, to get senders with specific domain use, $option=’domain.com’, & to get all senders, use $option="" [Optional]
652
  */
653
  public function get_senders( $data ) {
654
- return $this->get( 'advanced',json_encode( $data ) );
655
  }
656
 
657
  /*
@@ -662,7 +662,7 @@ class Mailin {
662
  @options data {Array} ip_domain: Pass pipe ( | ) separated Dedicated IP and its associated Domain. Example: "1.2.3.4|mydomain.com". You can use commas to separate multiple ip_domain’s [Mandatory: Only for Dedicated IP clients, for Shared IP clients, it should be kept blank]
663
  */
664
  public function create_sender( $data ) {
665
- return $this->post( 'advanced',json_encode( $data ) );
666
  }
667
 
668
  /*
@@ -675,7 +675,7 @@ class Mailin {
675
  public function update_sender( $data ) {
676
  $id = $data['id'];
677
  unset( $data['id'] );
678
- return $this->put( 'advanced/' . $id,json_encode( $data ) );
679
  }
680
 
681
  /*
@@ -684,7 +684,7 @@ class Mailin {
684
  @options data {Integer} id: Id of sender to be deleted [Mandatory]
685
  */
686
  public function delete_sender( $data ) {
687
- return $this->delete( 'advanced/' . $data['id'],'' );
688
  }
689
 
690
  /*
@@ -703,7 +703,7 @@ class Mailin {
703
  @options data {Array} inline_image: Pass your inline image/s filename & its base64 encoded chunk data as an associative array. Example: array("YourFileName.Extension"=>"Base64EncodedChunkData"). You can use commas to separate multiple inline images [Optional]
704
  */
705
  public function send_email( $data ) {
706
- return $this->post( 'email',json_encode( $data ) );
707
  }
708
 
709
  /*
@@ -716,7 +716,7 @@ class Mailin {
716
  @options data {String} tag: The tag you will specify to retrieve detailed stats. It must be an existing tag that has statistics [Optional]
717
  */
718
  public function get_statistics( $data ) {
719
- return $this->post( 'statistics',json_encode( $data ) );
720
  }
721
 
722
  /*
@@ -731,7 +731,7 @@ class Mailin {
731
  @options data {String} email: Email address to search report for [Optional]
732
  */
733
  public function get_report( $data ) {
734
- return $this->post( 'report',json_encode( $data ) );
735
  }
736
 
737
  /*
@@ -742,7 +742,7 @@ class Mailin {
742
  @options data {String} email: Email address to delete its bounces [Optional]
743
  */
744
  public function delete_bounces( $data ) {
745
- return $this->post( 'bounces',json_encode( $data ) );
746
  }
747
 
748
  /*
@@ -759,7 +759,7 @@ class Mailin {
759
  public function send_transactional_template( $data ) {
760
  $id = $data['id'];
761
  unset( $data['id'] );
762
- return $this->put( 'template/' . $id,json_encode( $data ) );
763
  }
764
 
765
  /*
@@ -778,7 +778,7 @@ class Mailin {
778
  @options data {Integer} attachment: Status of attachment. Possible values = 0 (default) & 1. attach = 0 means an attachment can’t be sent, & attach = 1 means an attachment can be sent, in the email [Optional]
779
  */
780
  public function create_template( $data ) {
781
- return $this->post( 'template',json_encode( $data ) );
782
  }
783
 
784
  /*
@@ -800,7 +800,7 @@ class Mailin {
800
  public function update_template( $data ) {
801
  $id = $data['id'];
802
  unset( $data['id'] );
803
- return $this->put( 'template/' . $id,json_encode( $data ) );
804
  }
805
 
806
  /*
@@ -814,7 +814,7 @@ class Mailin {
814
  @options data {String} type: Type of message. Possible values – marketing (default) & transactional. You can use marketing for sending marketing SMS, & for sending transactional SMS, use transactional type [Optional]
815
  */
816
  public function send_sms( $data ) {
817
- return $this->post( 'sms',json_encode( $data ) );
818
  }
819
 
820
  /*
@@ -830,7 +830,7 @@ class Mailin {
830
  @options data {Integer} send_now: Flag to send campaign now. Possible values = 0 (default) & 1. send_now = 0 means campaign can’t be send now, & send_now = 1 means campaign ready to send now [Optional]
831
  */
832
  public function create_sms_campaign( $data ) {
833
- return $this->post( 'sms',json_encode( $data ) );
834
  }
835
 
836
  /*
@@ -849,7 +849,7 @@ class Mailin {
849
  public function update_sms_campaign( $data ) {
850
  $id = $data['id'];
851
  unset( $data['id'] );
852
- return $this->put( 'sms/' . $id,json_encode( $data ) );
853
  }
854
 
855
  /*
@@ -861,7 +861,7 @@ class Mailin {
861
  public function send_bat_sms( $data ) {
862
  $id = $data['id'];
863
  unset( $data['id'] );
864
- return $this->get( 'sms/' . $id,json_encode( $data ) );
865
  }
866
 
867
  }
39
  echo 'Curl error: ' . curl_error( $ch ) . '\n';
40
  }
41
  curl_close( $ch );
42
+ return json_decode( $data, true );
43
  }
44
  public function get( $resource, $input ) {
45
+ return $this->do_request( $resource, 'GET', $input );
46
  }
47
  public function put( $resource, $input ) {
48
+ return $this->do_request( $resource, 'PUT', $input );
49
  }
50
  public function post( $resource, $input ) {
51
+ return $this->do_request( $resource, 'POST', $input );
52
  }
53
  public function delete( $resource, $input ) {
54
+ return $this->do_request( $resource, 'DELETE', $input );
55
  }
56
 
57
  /*
59
  No input required
60
  */
61
  public function get_account() {
62
+ return $this->get( 'account', '' );
63
  }
64
 
65
  /*
67
  No input required
68
  */
69
  public function get_smtp_details() {
70
+ return $this->get( 'account/smtpdetail', '' );
71
  }
72
 
73
  /*
84
  @options data {Array} associate_ip: Associate dedicated IPs to reseller child. You can use commas to separate multiple IPs [Optional]
85
  */
86
  public function create_child_account( $data ) {
87
+ return $this->post( 'account', json_encode( $data ) );
88
  }
89
 
90
  /*
99
  @options data {Array} disassociate_ip: Disassociate dedicated IPs from reseller child. You can use commas to separate multiple IPs [Optional]
100
  */
101
  public function update_child_account( $data ) {
102
+ return $this->put( 'account', json_encode( $data ) );
103
  }
104
 
105
  /*
108
  @options data {String} auth_key: 16 character authorization key of Reseller child to be deleted [Mandatory]
109
  */
110
  public function delete_child_account( $data ) {
111
+ return $this->delete( 'account/' . $data['auth_key'], '' );
112
  }
113
 
114
  /*
117
  @options data {String} auth_key: 16 character authorization key of Reseller child. Example : To get the details of more than one child account, use, {"key1":"abC01De2fGHI3jkL","key2":"mnO45Pq6rSTU7vWX"} [Mandatory]
118
  */
119
  public function get_reseller_child( $data ) {
120
+ return $this->post( 'account/getchildv2', json_encode( $data ) );
121
  }
122
 
123
  /*
132
  - sms_credit {Integer} Number of sms credts
133
  */
134
  public function add_remove_child_credits( $data ) {
135
+ return $this->post( 'account/addrmvcredit', json_encode( $data ) );
136
  }
137
 
138
  /*
141
  @options data {Integer} id: Unique Id of the campaign [Mandatory]
142
  */
143
  public function get_campaign_v2( $data ) {
144
+ return $this->get( 'campaign/' . $data['id'] . '/detailsv2', '' );
145
  }
146
 
147
  /*
153
  @options data {Integer} page_limit: This should be a valid number between 1-500 [Optional]
154
  */
155
  public function get_campaigns_v2( $data ) {
156
+ return $this->get( 'campaign/detailsv2', json_encode( $data ) );
157
  }
158
 
159
  /*
179
 
180
  */
181
  public function create_campaign( $data ) {
182
+ return $this->post( 'campaign', json_encode( $data ) );
183
  }
184
 
185
  /*
207
  public function update_campaign( $data ) {
208
  $id = $data['id'];
209
  unset( $data['id'] );
210
+ return $this->put( 'campaign/' . $id, json_encode( $data ) );
211
  }
212
 
213
  /*
216
  @options data {Integer} id: Id of campaign to be deleted [Mandatory]
217
  */
218
  public function delete_campaign( $data ) {
219
+ return $this->delete( 'campaign/' . $data['id'], '' );
220
  }
221
 
222
  /*
234
  public function campaign_report_email( $data ) {
235
  $id = $data['id'];
236
  unset( $data['id'] );
237
+ return $this->post( 'campaign/' . $id . '/report', json_encode( $data ) );
238
  }
239
 
240
  /*
247
  public function campaign_recipients_export( $data ) {
248
  $id = $data['id'];
249
  unset( $data['id'] );
250
+ return $this->post( 'campaign/' . $id . '/recipients', json_encode( $data ) );
251
  }
252
 
253
  /*
257
  */
258
 
259
  public function share_campaign( $data ) {
260
+ return $this->post( 'campaign/sharelinkv2', json_encode( $data ) );
261
  }
262
 
263
  /*
269
  public function send_bat_email( $data ) {
270
  $id = $data['id'];
271
  unset( $data['id'] );
272
+ return $this->post( 'campaign/' . $id . '/test', json_encode( $data ) );
273
  }
274
 
275
  /*
281
  public function update_campaign_status( $data ) {
282
  $id = $data['id'];
283
  unset( $data['id'] );
284
+ return $this->put( 'campaign/' . $id . '/updatecampstatus', json_encode( $data ) );
285
  }
286
 
287
  /*
307
  @options data {Integer} send_now: Flag to send campaign now. Possible values = 0 (default) & 1. send_now = 0 means campaign can’t be send now, & send_now = 1 means campaign ready to send now [Optional]
308
  */
309
  public function create_trigger_campaign( $data ) {
310
+ return $this->post( 'campaign', json_encode( $data ) );
311
  }
312
 
313
  /*
336
  public function update_trigger_campaign( $data ) {
337
  $id = $data['id'];
338
  unset( $data['id'] );
339
+ return $this->put( 'campaign/' . $id, json_encode( $data ) );
340
  }
341
 
342
  /*
346
  @options data {Integer} page_limit: This should be a valid number between 1-50 [Mandatory]
347
  */
348
  public function get_folders( $data ) {
349
+ return $this->get( 'folder', json_encode( $data ) );
350
  }
351
 
352
  /*
355
  @options data {Integer} id: Id of folder to get details [Mandatory]
356
  */
357
  public function get_folder( $data ) {
358
+ return $this->get( 'folder/' . $data['id'], '' );
359
  }
360
 
361
  /*
364
  @options data {String} name: Desired name of the folder to be created [Mandatory]
365
  */
366
  public function create_folder( $data ) {
367
+ return $this->post( 'folder', json_encode( $data ) );
368
  }
369
 
370
  /*
373
  @options data {Integer} id: Id of folder to be deleted [Mandatory]
374
  */
375
  public function delete_folder( $data ) {
376
+ return $this->delete( 'folder/' . $data['id'], '' );
377
  }
378
 
379
  /*
385
  public function update_folder( $data ) {
386
  $id = $data['id'];
387
  unset( $data['id'] );
388
+ return $this->put( 'folder/' . $id, json_encode( $data ) );
389
  }
390
 
391
  /*
396
  @options data {Integer} page_limit: This should be a valid number between 1-50 [Mandatory]
397
  */
398
  public function get_lists( $data ) {
399
+ return $this->get( 'list', json_encode( $data ) );
400
  }
401
 
402
  /*
405
  @options data {Integer} id: Id of list to get details [Mandatory]
406
  */
407
  public function get_list( $data ) {
408
+ return $this->get( 'list/' . $data['id'], '' );
409
  }
410
 
411
  /*
415
  @options data {Integer} list_parent: Folder ID [Mandatory]
416
  */
417
  public function create_list( $data ) {
418
+ return $this->post( 'list', json_encode( $data ) );
419
  }
420
 
421
  /*
428
  public function update_list( $data ) {
429
  $id = $data['id'];
430
  unset( $data['id'] );
431
+ return $this->put( 'list/' . $id, json_encode( $data ) );
432
  }
433
 
434
  /*
437
  @options data {Integer} id: Id of list to be deleted [Mandatory]
438
  */
439
  public function delete_list( $data ) {
440
+ return $this->delete( 'list/' . $data['id'], '' );
441
  }
442
 
443
  /*
449
  @options data {Integer} page_limit: This should be a valid number between 1-500 [Optional]
450
  */
451
  public function display_list_users( $data ) {
452
+ return $this->post( 'list/display', json_encode( $data ) );
453
  }
454
 
455
  /*
462
  public function add_users_list( $data ) {
463
  $id = $data['id'];
464
  unset( $data['id'] );
465
+ return $this->post( 'list/' . $id . '/users', json_encode( $data ) );
466
  }
467
 
468
  /*
474
  public function delete_users_list( $data ) {
475
  $id = $data['id'];
476
  unset( $data['id'] );
477
+ return $this->delete( 'list/' . $id . '/delusers', json_encode( $data ) );
478
  }
479
 
480
  /*
482
  No input required
483
  */
484
  public function get_attributes() {
485
+ return $this->get( 'attribute', '' );
486
  }
487
 
488
  /*
491
  @options data {String} type: Type of attribute. Possible values – normal, transactional, category, calculated & global [Optional]
492
  */
493
  public function get_attribute( $data ) {
494
+ return $this->get( 'attribute/' . $data['type'], '' );
495
  }
496
 
497
  /*
502
  The name and data value of ‘category’, ‘calculated’ & ‘global’, should be sent as JSON string. Example: ‘[{ "name":"ATTRIBUTE_NAME1", "value":"Attribute_value1" }, { "name":"ATTRIBUTE_NAME2", "value":"Attribute_value2" }]’. You can use commas to separate multiple attributes [Mandatory]
503
  */
504
  public function create_attribute( $data ) {
505
+ return $this->post( 'attribute/', json_encode( $data ) );
506
  }
507
 
508
  /*
513
  public function delete_attribute( $type, $data ) {
514
  $type = $data['type'];
515
  unset( $data['type'] );
516
+ return $this->post( 'attribute/' . $type, json_encode( $data ) );
517
  }
518
 
519
  /*
527
  @options data {Array} blacklisted_sms: This is used to blacklist/ Unblacklist a user’s SMS number. Possible values – 0 & 1. blacklisted_sms = 1 means user’s SMS number has been blacklisted [Optional]
528
  */
529
  public function create_update_user( $data ) {
530
+ return $this->post( 'user/createdituser', json_encode( $data ) );
531
  }
532
 
533
  /*
536
  @options data {String} email: Email address of the already existing user in the SendinBlue contacts [Mandatory]
537
  */
538
  public function get_user( $data ) {
539
+ return $this->get( 'user/' . $data['email'], '' );
540
  }
541
 
542
  /*
545
  @options data {String} email: Email address of the already existing user in the SendinBlue contacts to be unlinked from all lists [Mandatory]
546
  */
547
  public function delete_user( $data ) {
548
+ return $this->delete( 'user/' . $data['email'], '' );
549
  }
550
 
551
  /*
559
  @options data {Integer} list_parent: This is the existing folder id & can be used with name parameter to make newly created list’s desired parent [Optional]
560
  */
561
  public function import_users( $data ) {
562
+ return $this->post( 'user/import', json_encode( $data ) );
563
  }
564
 
565
  /*
570
  @options data {String} notify_url: URL that will be called once the export process is finished [Optional]
571
  */
572
  public function export_users( $data ) {
573
+ return $this->post( 'user/export', json_encode( $data ) );
574
  }
575
 
576
  /*
580
  @options data {Integer} page_limit: This should be a valid number between 1-50 [Mandatory]
581
  */
582
  public function get_processes( $data ) {
583
+ return $this->get( 'process', json_encode( $data ) );
584
  }
585
 
586
  /*
589
  @options data {Integer} id: Id of process to get details [Mandatory]
590
  */
591
  public function get_process( $data ) {
592
+ return $this->get( 'process/' . $data['id'], '' );
593
  }
594
 
595
  /*
598
  @options data {String} is_plat: Flag to get webhooks. Possible values – 0 & 1. Example: to get Transactional webhooks, use $is_plat=0, to get Marketing webhooks, use $is_plat=1, & to get all webhooks, use $is_plat="" [Optional]
599
  */
600
  public function get_webhooks( $data ) {
601
+ return $this->get( 'webhook', json_encode( $data ) );
602
  }
603
 
604
  /*
607
  @options data {Integer} id: Id of webhook to get details [Mandatory]
608
  */
609
  public function get_webhook( $data ) {
610
+ return $this->get( 'webhook/' . $data['id'], '' );
611
  }
612
 
613
  /*
619
  @options data {Integer} is_plat: Flag to create webhook type. Possible values – 0 (default) & 1. Example: to create Transactional webhooks, use $is_plat=0, & to create Marketing webhooks, use $is_plat=1 [Optional]
620
  */
621
  public function create_webhook( $data ) {
622
+ return $this->post( 'webhook', json_encode( $data ) );
623
  }
624
 
625
  /*
628
  @options data {Integer} id: Id of webhook to be deleted [Mandatory]
629
  */
630
  public function delete_webhook( $data ) {
631
+ return $this->delete( 'webhook/' . $data['id'], '' );
632
  }
633
 
634
  /*
642
  public function update_webhook( $data ) {
643
  $id = $data['id'];
644
  unset( $data['id'] );
645
+ return $this->put( 'webhook/' . $id, json_encode( $data ) );
646
  }
647
 
648
  /*
651
  @options data {String} option: Options to get senders. Possible options – IP-wise, & Domain-wise ( only for dedicated IP clients ). Example: to get senders with specific IP, use $option=’1.2.3.4′, to get senders with specific domain use, $option=’domain.com’, & to get all senders, use $option="" [Optional]
652
  */
653
  public function get_senders( $data ) {
654
+ return $this->get( 'advanced', json_encode( $data ) );
655
  }
656
 
657
  /*
662
  @options data {Array} ip_domain: Pass pipe ( | ) separated Dedicated IP and its associated Domain. Example: "1.2.3.4|mydomain.com". You can use commas to separate multiple ip_domain’s [Mandatory: Only for Dedicated IP clients, for Shared IP clients, it should be kept blank]
663
  */
664
  public function create_sender( $data ) {
665
+ return $this->post( 'advanced', json_encode( $data ) );
666
  }
667
 
668
  /*
675
  public function update_sender( $data ) {
676
  $id = $data['id'];
677
  unset( $data['id'] );
678
+ return $this->put( 'advanced/' . $id, json_encode( $data ) );
679
  }
680
 
681
  /*
684
  @options data {Integer} id: Id of sender to be deleted [Mandatory]
685
  */
686
  public function delete_sender( $data ) {
687
+ return $this->delete( 'advanced/' . $data['id'], '' );
688
  }
689
 
690
  /*
703
  @options data {Array} inline_image: Pass your inline image/s filename & its base64 encoded chunk data as an associative array. Example: array("YourFileName.Extension"=>"Base64EncodedChunkData"). You can use commas to separate multiple inline images [Optional]
704
  */
705
  public function send_email( $data ) {
706
+ return $this->post( 'email', json_encode( $data ) );
707
  }
708
 
709
  /*
716
  @options data {String} tag: The tag you will specify to retrieve detailed stats. It must be an existing tag that has statistics [Optional]
717
  */
718
  public function get_statistics( $data ) {
719
+ return $this->post( 'statistics', json_encode( $data ) );
720
  }
721
 
722
  /*
731
  @options data {String} email: Email address to search report for [Optional]
732
  */
733
  public function get_report( $data ) {
734
+ return $this->post( 'report', json_encode( $data ) );
735
  }
736
 
737
  /*
742
  @options data {String} email: Email address to delete its bounces [Optional]
743
  */
744
  public function delete_bounces( $data ) {
745
+ return $this->post( 'bounces', json_encode( $data ) );
746
  }
747
 
748
  /*
759
  public function send_transactional_template( $data ) {
760
  $id = $data['id'];
761
  unset( $data['id'] );
762
+ return $this->put( 'template/' . $id, json_encode( $data ) );
763
  }
764
 
765
  /*
778
  @options data {Integer} attachment: Status of attachment. Possible values = 0 (default) & 1. attach = 0 means an attachment can’t be sent, & attach = 1 means an attachment can be sent, in the email [Optional]
779
  */
780
  public function create_template( $data ) {
781
+ return $this->post( 'template', json_encode( $data ) );
782
  }
783
 
784
  /*
800
  public function update_template( $data ) {
801
  $id = $data['id'];
802
  unset( $data['id'] );
803
+ return $this->put( 'template/' . $id, json_encode( $data ) );
804
  }
805
 
806
  /*
814
  @options data {String} type: Type of message. Possible values – marketing (default) & transactional. You can use marketing for sending marketing SMS, & for sending transactional SMS, use transactional type [Optional]
815
  */
816
  public function send_sms( $data ) {
817
+ return $this->post( 'sms', json_encode( $data ) );
818
  }
819
 
820
  /*
830
  @options data {Integer} send_now: Flag to send campaign now. Possible values = 0 (default) & 1. send_now = 0 means campaign can’t be send now, & send_now = 1 means campaign ready to send now [Optional]
831
  */
832
  public function create_sms_campaign( $data ) {
833
+ return $this->post( 'sms', json_encode( $data ) );
834
  }
835
 
836
  /*
849
  public function update_sms_campaign( $data ) {
850
  $id = $data['id'];
851
  unset( $data['id'] );
852
+ return $this->put( 'sms/' . $id, json_encode( $data ) );
853
  }
854
 
855
  /*
861
  public function send_bat_sms( $data ) {
862
  $id = $data['id'];
863
  unset( $data['id'] );
864
+ return $this->get( 'sms/' . $id, json_encode( $data ) );
865
  }
866
 
867
  }
option-panel.php CHANGED
@@ -1,11 +1,11 @@
1
  <?php
2
  function logincust_register_options_page() {
3
- add_theme_page( __( 'Login Customizer','login-customizer' ), __( 'Login Customizer','login-customizer' ), 'manage_options', 'logincust_options', 'logincust_options_page' );
4
  }
5
  add_action( 'admin_menu', 'logincust_register_options_page' );
6
 
7
  function logincust_admin_style() {
8
- wp_enqueue_style( 'admin_style', LOGINCUST_FREE_URL . '/css/admin.css',array(), LOGINCUST_VERSION, false );
9
  }
10
  add_action( 'admin_enqueue_scripts', 'logincust_admin_style' );
11
 
@@ -30,7 +30,7 @@ function logincust_options_page() {
30
  require( LOGINCUST_FREE_PATH . 'mailin.php' );
31
  $was_submited = get_option( 'mail_was_submited', false );
32
  $user_info = get_userdata( 1 );
33
- $mailin = new Mailin( 'https://api.sendinblue.com/v2.0','cHW5sxZnzE7mhaYb' );
34
  $data = array(
35
  'email' => $_POST['logincust_mail'],
36
  'attributes' => array('NAME' => $user_info->first_name, 'SURNAME' => $user_info->last_name),
@@ -59,7 +59,7 @@ function logincust_options_page() {
59
 
60
 
61
  function logincust_dashboard_widget() {
62
- wp_add_dashboard_widget( 'logincust_subscribe_widget', __( 'Subscribe', 'login-customizer' ),'logincust_subscribe_widget' );
63
  }
64
  add_action( 'wp_dashboard_setup', 'logincust_dashboard_widget' );
65
 
@@ -68,7 +68,7 @@ function logincust_subscribe_widget() {
68
  require( LOGINCUST_FREE_PATH . 'mailin.php' );
69
  $was_submited = get_option( 'logincust_mail_was_submited', false );
70
  $user_info = get_userdata( 1 );
71
- $mailin = new Mailin( 'https://api.sendinblue.com/v2.0','cHW5sxZnzE7mhaYb' );
72
  $data = array(
73
  'email' => $_POST['logincust_mail'],
74
  'attributes' => array('NAME' => $user_info->first_name, 'SURNAME' => $user_info->last_name),
1
  <?php
2
  function logincust_register_options_page() {
3
+ add_theme_page( __( 'Login Customizer', 'login-customizer' ), __( 'Login Customizer', 'login-customizer' ), 'manage_options', 'logincust_options', 'logincust_options_page' );
4
  }
5
  add_action( 'admin_menu', 'logincust_register_options_page' );
6
 
7
  function logincust_admin_style() {
8
+ wp_enqueue_style( 'admin_style', LOGINCUST_FREE_URL . '/css/admin.css', array(), LOGINCUST_VERSION, false );
9
  }
10
  add_action( 'admin_enqueue_scripts', 'logincust_admin_style' );
11
 
30
  require( LOGINCUST_FREE_PATH . 'mailin.php' );
31
  $was_submited = get_option( 'mail_was_submited', false );
32
  $user_info = get_userdata( 1 );
33
+ $mailin = new Mailin( 'https://api.sendinblue.com/v2.0', 'cHW5sxZnzE7mhaYb' );
34
  $data = array(
35
  'email' => $_POST['logincust_mail'],
36
  'attributes' => array('NAME' => $user_info->first_name, 'SURNAME' => $user_info->last_name),
59
 
60
 
61
  function logincust_dashboard_widget() {
62
+ wp_add_dashboard_widget( 'logincust_subscribe_widget', __( 'Subscribe', 'login-customizer' ), 'logincust_subscribe_widget' );
63
  }
64
  add_action( 'wp_dashboard_setup', 'logincust_dashboard_widget' );
65
 
68
  require( LOGINCUST_FREE_PATH . 'mailin.php' );
69
  $was_submited = get_option( 'logincust_mail_was_submited', false );
70
  $user_info = get_userdata( 1 );
71
+ $mailin = new Mailin( 'https://api.sendinblue.com/v2.0', 'cHW5sxZnzE7mhaYb' );
72
  $data = array(
73
  'email' => $_POST['logincust_mail'],
74
  'attributes' => array('NAME' => $user_info->first_name, 'SURNAME' => $user_info->last_name),
readme.md CHANGED
@@ -40,6 +40,12 @@ Please visit <a target="_blank" rel="nofollow" href="http://themeisle.com">this
40
  2. Another Great Custom Login Page Example
41
 
42
  ## Changelog ##
 
 
 
 
 
 
43
  ### 1.2.0 - 2017-10-16 ###
44
 
45
  * Adds tested up to wp 4.8.
40
  2. Another Great Custom Login Page Example
41
 
42
  ## Changelog ##
43
+ ### 1.2.1 - 2018-01-05 ###
44
+
45
+ * Improves compatiblity with latest WordPress version.
46
+ * Sync ThemeIsle SDK.
47
+
48
+
49
  ### 1.2.0 - 2017-10-16 ###
50
 
51
  * Adds tested up to wp 4.8.
readme.txt CHANGED
@@ -40,6 +40,12 @@ Please visit <a target="_blank" rel="nofollow" href="http://themeisle.com">this
40
  2. Another Great Custom Login Page Example
41
 
42
  == Changelog ==
 
 
 
 
 
 
43
  = 1.2.0 - 2017-10-16 =
44
 
45
  * Adds tested up to wp 4.8.
40
  2. Another Great Custom Login Page Example
41
 
42
  == Changelog ==
43
+ = 1.2.1 - 2018-01-05 =
44
+
45
+ * Improves compatiblity with latest WordPress version.
46
+ * Sync ThemeIsle SDK.
47
+
48
+
49
  = 1.2.0 - 2017-10-16 =
50
 
51
  * Adds tested up to wp 4.8.
themeisle-hash.json CHANGED
@@ -1 +1 @@
1
- {"customizer.php":"5de7b49d0b22efeb70da838f348c9661","login-customizer.php":"e244357ee7e0e9ace3ae2ae2fd90cdcf","mailin.php":"ba2625d4f77a56a299030db8e9fc3aa5","option-panel.php":"18ca546160b0c9206ada3293b166d9dd"}
1
+ {"customizer.php":"5de7b49d0b22efeb70da838f348c9661","login-customizer.php":"899cb02ed51357d988778dda0799a10a","mailin.php":"dc3dba30341f92ce445c5cc376c32120","option-panel.php":"5cd0d73679fa104aa63cf0e8bf7e26e6"}
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer' . '/autoload_real.php';
6
 
7
- return ComposerAutoloaderInit128c9259c1ccb8f8fe6a1fbcc248b37f::getLoader();
4
 
5
  require_once __DIR__ . '/composer' . '/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInitc96dc00b3482ebe8fca835e32b58a30f::getLoader();
vendor/autoload_52.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
6
 
7
- return ComposerAutoloaderInitf75a70d09d4227c22cfbf6f13f19bedd::getLoader();
4
 
5
  require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
6
 
7
+ return ComposerAutoloaderInit7f363fc03e498c3d487caeb44664caa2::getLoader();
vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-feedback-deactivate.php CHANGED
@@ -22,21 +22,15 @@ if ( ! class_exists( 'ThemeIsle_SDK_Feedback_Deactivate' ) ) :
22
  * @var array $options_plugin The main options list for plugins.
23
  */
24
  private $options_plugin = array(
25
- 'I only needed the plugin for a short period' => array(
26
- 'id' => 1,
27
- ),
28
- 'The plugin broke my site' => array(
29
- 'id' => 2,
30
- ),
31
- 'I found a better plugin' => array(
32
  'id' => 3,
33
  'type' => 'text',
34
  'placeholder' => 'What\'s the plugin\'s name?',
35
  ),
36
- 'The plugin suddenly stopped working' => array(
37
  'id' => 4,
38
  ),
39
- 'I no longer need the plugin' => array(
40
  'id' => 5,
41
  'type' => 'textarea',
42
  'placeholder' => 'If you could improve one thing about our product, what would it be?',
@@ -80,12 +74,12 @@ if ( ! class_exists( 'ThemeIsle_SDK_Feedback_Deactivate' ) ) :
80
  /**
81
  * @var string $heading_plugin The heading of the modal
82
  */
83
- private $heading_plugin = 'If you have a moment, please let us know why you are deactivating:';
84
 
85
  /**
86
  * @var string $heading_theme The heading of the modal
87
  */
88
- private $heading_theme = 'Looking to change {theme}, what doesn\'t work for you?';
89
 
90
  /**
91
  * @var string $button_submit_before The text of the deactivate button before an option is chosen
@@ -100,7 +94,7 @@ if ( ! class_exists( 'ThemeIsle_SDK_Feedback_Deactivate' ) ) :
100
  /**
101
  * @var string $button_cancel The text of the cancel button
102
  */
103
- private $button_cancel = 'Cancel';
104
 
105
  /**
106
  * @var int how many seconds before the deactivation window is triggered for themes
@@ -170,46 +164,110 @@ if ( ! class_exists( 'ThemeIsle_SDK_Feedback_Deactivate' ) ) :
170
  }
171
 
172
  body.<?php echo $suffix; ?> .<?php echo $key; ?>-container #TB_title {
173
- font-size: 21px;
174
- padding: 20px 0;
175
- background-color: #f3f3f3;
 
 
 
 
 
 
 
176
  }
177
 
178
  body.<?php echo $suffix; ?> .<?php echo $key; ?>-container div.actions {
179
- padding: 20px 0;
180
- background-color: #f3f3f3;
181
- border-top: 1px solid #dddddd;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
182
  }
183
 
184
  body.<?php echo $suffix; ?> .<?php echo $key; ?>-container input.button.button-primary {
185
- margin-right: 20px;
 
 
 
 
 
 
 
 
 
186
  }
187
 
188
- body.<?php echo $suffix; ?> .<?php echo $key; ?>-container input.button {
189
- margin-right: 20px;
190
  }
191
 
192
- body.<?php echo $suffix; ?> .<?php echo $key; ?>-container #TB_ajaxWindowTitle {
193
- text-align: left;
194
- margin-left: 15px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
195
  }
196
 
197
  body.<?php echo $suffix; ?> .<?php echo $key; ?>-container div.revive_network-container {
198
  background-color: #ffffff;
199
  }
200
 
 
 
 
 
201
  body.<?php echo $suffix; ?> .<?php echo $key; ?>-container ul.ti-list li {
202
- font-size: 14px;
 
 
203
  }
204
 
205
  body.<?php echo $suffix; ?> .<?php echo $key; ?>-container ul.ti-list li label {
206
  margin-left: 10px;
207
- line-height: 32px;
208
- font-size: 16px;
 
 
 
 
209
  }
210
 
211
  body.<?php echo $suffix; ?> .<?php echo $key; ?>-container #TB_ajaxContent {
212
- padding: 10px 20px;
 
 
 
213
  }
214
 
215
  body.<?php echo $suffix; ?> .<?php echo $key; ?>-container li div textarea {
@@ -222,24 +280,31 @@ if ( ! class_exists( 'ThemeIsle_SDK_Feedback_Deactivate' ) ) :
222
  }
223
 
224
  .<?php echo $key; ?>-container #TB_title #TB_ajaxWindowTitle {
 
225
  display: block;
 
 
 
 
 
 
226
  }
227
 
228
- body.<?php echo $suffix; ?> .<?php echo $key; ?>-container .actions {
229
-
230
- width: 100%;
231
  display: block;
232
- position: absolute;
233
- left: 0px;
234
- bottom: 0px;
235
- text-align: right;
236
  }
237
 
238
- body.<?php echo $suffix; ?> .<?php echo $key; ?>-container #TB_title {
239
-
240
- height: 33px;
241
  width: 100%;
242
- text-align: center;
 
 
 
243
  }
244
 
245
  .theme-install-php .<?php echo $key; ?>-container #TB_closeWindowButton .tb-close-icon:before {
@@ -247,24 +312,40 @@ if ( ! class_exists( 'ThemeIsle_SDK_Feedback_Deactivate' ) ) :
247
  }
248
 
249
  .<?php echo $key; ?>-container #TB_closeWindowButton .tb-close-icon {
250
-
251
  color: #eee;
252
  }
253
 
254
  .<?php echo $key; ?>-container #TB_closeWindowButton {
255
  left: auto;
256
- right: -30px;
 
257
  color: #eee;
258
  }
259
 
260
- body.<?php echo $suffix; ?> .<?php echo $key; ?>-container {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
261
 
 
262
  margin: auto !important;
263
- height: 550px !important;
264
  top: 0 !important;
265
  left: 0 !important;
266
  bottom: 0 !important;
267
  right: 0 !important;
 
268
  }
269
  </style>
270
  <?php
@@ -303,25 +384,29 @@ if ( ! class_exists( 'ThemeIsle_SDK_Feedback_Deactivate' ) ) :
303
  $('a.ti-auto-anchor').trigger('click');
304
  }, <?php echo self::AUTO_TRIGGER_DEACTIVATE_WINDOW_SECONDS * 1000; ?> );
305
  }
306
- $( document ).on( 'thickbox:removed', function() {
307
  $.ajax({
308
  url: ajaxurl,
309
  method: 'post',
310
  data: {
311
- 'action' : '<?php echo $key . __CLASS__; ?>',
312
- 'nonce' : '<?php echo wp_create_nonce( (string) __CLASS__ ); ?>',
313
- 'type' : '<?php echo $type; ?>',
314
- 'key' : '<?php echo $key; ?>'
315
  },
316
  });
317
  });
318
  var href = $(target_element).attr('href');
319
- $('#<?php echo $key; ?>ti-deactivate-no').on('click', function (e) {
320
  e.preventDefault();
321
  e.stopPropagation();
322
 
323
  $('body').unbind('thickbox:removed');
324
  tb_remove();
 
 
 
 
325
  });
326
 
327
  $('#<?php echo $key; ?> ul.ti-list label, #<?php echo $key; ?> ul.ti-list input[name="ti-deactivate-option"]').on('click', function (e) {
@@ -349,12 +434,12 @@ if ( ! class_exists( 'ThemeIsle_SDK_Feedback_Deactivate' ) ) :
349
  url: ajaxurl,
350
  method: 'post',
351
  data: {
352
- 'action' : '<?php echo $key . __CLASS__; ?>',
353
- 'nonce' : '<?php echo wp_create_nonce( (string) __CLASS__ ); ?>',
354
- 'id' : $('#<?php echo $key; ?> input[name="ti-deactivate-option"]:checked').parent().attr('ti-option-id'),
355
- 'msg' : $('#<?php echo $key; ?> input[name="ti-deactivate-option"]:checked').parent().find('textarea').val(),
356
- 'type' : '<?php echo $type; ?>',
357
- 'key' : '<?php echo $key; ?>'
358
  },
359
  });
360
  var redirect = $(this).attr('data-ti-action');
@@ -366,7 +451,7 @@ if ( ! class_exists( 'ThemeIsle_SDK_Feedback_Deactivate' ) ) :
366
  }
367
  });
368
 
369
- $(target_element).attr('name', '<?php echo esc_html( $heading ); ?>').attr('href', '<?php echo $src; ?>').addClass('thickbox');
370
  var thicbox_timer;
371
  $(target_element).on('click', function () {
372
  tiBindThickbox();
@@ -409,10 +494,10 @@ if ( ! class_exists( 'ThemeIsle_SDK_Feedback_Deactivate' ) ) :
409
 
410
  $list = '';
411
  foreach ( $options as $title => $attributes ) {
412
- $id = $attributes['id'];
413
  $list .= '<li ti-option-id="' . $id . '"><input type="radio" name="ti-deactivate-option" id="' . $key . $id . '"><label for="' . $key . $id . '">' . str_replace( '{theme}', $this->product->get_name(), $title ) . '</label>';
414
  if ( array_key_exists( 'type', $attributes ) ) {
415
- $list .= '<div>';
416
  $placeholder = array_key_exists( 'placeholder', $attributes ) ? $attributes['placeholder'] : '';
417
  switch ( $attributes['type'] ) {
418
  case 'text':
@@ -431,8 +516,9 @@ if ( ! class_exists( 'ThemeIsle_SDK_Feedback_Deactivate' ) ) :
431
  . '<ul class="ti-list">' . $list . '</ul>'
432
  . '<div class="actions">'
433
  . get_submit_button(
434
- $button_submit_before, 'secondary', $this->product->get_key() . 'ti-deactivate-yes', false, array(
435
  'data-after-text' => $button_submit,
 
436
  )
437
  )
438
  . get_submit_button( $button_cancel, 'primary', $this->product->get_key() . 'ti-deactivate-no', false )
22
  * @var array $options_plugin The main options list for plugins.
23
  */
24
  private $options_plugin = array(
25
+ 'I found a better plugin' => array(
 
 
 
 
 
 
26
  'id' => 3,
27
  'type' => 'text',
28
  'placeholder' => 'What\'s the plugin\'s name?',
29
  ),
30
+ 'I could not get the plugin to work' => array(
31
  'id' => 4,
32
  ),
33
+ 'I no longer need the plugin' => array(
34
  'id' => 5,
35
  'type' => 'textarea',
36
  'placeholder' => 'If you could improve one thing about our product, what would it be?',
74
  /**
75
  * @var string $heading_plugin The heading of the modal
76
  */
77
+ private $heading_plugin = 'Quick Feedback <span>Because we care about our clients, please leave us a feedback.</span>';
78
 
79
  /**
80
  * @var string $heading_theme The heading of the modal
81
  */
82
+ private $heading_theme = 'Looking to change {theme} <span> What does not work for you?</span>';
83
 
84
  /**
85
  * @var string $button_submit_before The text of the deactivate button before an option is chosen
94
  /**
95
  * @var string $button_cancel The text of the cancel button
96
  */
97
+ private $button_cancel = 'Skip &amp; Deactivate';
98
 
99
  /**
100
  * @var int how many seconds before the deactivation window is triggered for themes
164
  }
165
 
166
  body.<?php echo $suffix; ?> .<?php echo $key; ?>-container #TB_title {
167
+ background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDNkVDM0M4RkYxMzMxMUU3OEMyMkQ0NTIxRTVEQ0ZBRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDNkVDM0M5MEYxMzMxMUU3OEMyMkQ0NTIxRTVEQ0ZBRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkM2RUMzQzhERjEzMzExRTc4QzIyRDQ1MjFFNURDRkFGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkM2RUMzQzhFRjEzMzExRTc4QzIyRDQ1MjFFNURDRkFGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+KBNOswAAFtFJREFUeNrkWwmUXVWV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') 40px 30px no-repeat;
168
+ border: none;
169
+ box-sizing: border-box;
170
+ color: #373e40;
171
+ font-size: 24px;
172
+ font-weight: 700;
173
+ height: 90px;
174
+ padding: 40px 40px 0 120px;
175
+ text-transform: uppercase;
176
+ width: 100%;
177
  }
178
 
179
  body.<?php echo $suffix; ?> .<?php echo $key; ?>-container div.actions {
180
+ box-sizing: border-box;
181
+ padding: 30px 40px;
182
+ background-color: #eaeaea;
183
+ }
184
+
185
+ body.<?php echo $suffix; ?> .<?php echo $key; ?>-container input.button {
186
+ background: #ec5d60;
187
+ border: none;
188
+ box-shadow: none;
189
+ color: #ffffff;
190
+ font-size: 15px;
191
+ font-weight: 700;
192
+ height: auto;
193
+ line-height: 20px;
194
+ padding: 10px 15px;
195
+ text-transform: uppercase;
196
+ -webkit-transition: 0.3s ease;
197
+ -moz-transition: 0.3s ease;
198
+ -ms-transition: 0.3s ease;
199
+ -o-transition: 0.3s ease;
200
+ transition: 0.3s ease;
201
  }
202
 
203
  body.<?php echo $suffix; ?> .<?php echo $key; ?>-container input.button.button-primary {
204
+ background: transparent;
205
+ box-shadow: none;
206
+ color: #8d9192;
207
+ font-weight: 400;
208
+ float: right;
209
+ line-height: 40px;
210
+ padding: 0;
211
+ text-decoration: underline;
212
+ text-shadow: none;
213
+ text-transform: none;
214
  }
215
 
216
+ body.<?php echo $suffix; ?> .<?php echo $key; ?>-container input.button:hover {
217
+ background: #e83f42;
218
  }
219
 
220
+ body.<?php echo $suffix; ?> .<?php echo $key; ?>-container input.button.button-primary:hover {
221
+ background: transparent;
222
+ }
223
+
224
+ body.<?php echo $suffix; ?> .<?php echo $key; ?>-container input.button:focus {
225
+ box-shadow: none;
226
+ outline: none;
227
+ }
228
+
229
+ body.<?php echo $suffix; ?> .<?php echo $key; ?>-container input.button:active {
230
+ box-shadow: none;
231
+ transform: translateY(0);
232
+ }
233
+
234
+ body.<?php echo $suffix; ?> .<?php echo $key; ?>-container input.button:disabled {
235
+ cursor: not-allowed;
236
+ }
237
+
238
+ body.<?php echo $suffix; ?> .<?php echo $key; ?>-container input.button.button-primary:hover {
239
+ text-decoration: none;
240
  }
241
 
242
  body.<?php echo $suffix; ?> .<?php echo $key; ?>-container div.revive_network-container {
243
  background-color: #ffffff;
244
  }
245
 
246
+ body.<?php echo $suffix; ?> .<?php echo $key; ?>-container ul.ti-list {
247
+ margin: 0;
248
+ }
249
+
250
  body.<?php echo $suffix; ?> .<?php echo $key; ?>-container ul.ti-list li {
251
+ color: #373e40;
252
+ font-size: 13px;
253
+ margin-bottom: 5px;
254
  }
255
 
256
  body.<?php echo $suffix; ?> .<?php echo $key; ?>-container ul.ti-list li label {
257
  margin-left: 10px;
258
+ line-height: 28px;
259
+ font-size: 15px;
260
+ }
261
+
262
+ body.<?php echo $suffix; ?> .<?php echo $key; ?>-container ul.ti-list input[type=radio] {
263
+ margin-top: 1px;
264
  }
265
 
266
  body.<?php echo $suffix; ?> .<?php echo $key; ?>-container #TB_ajaxContent {
267
+ box-sizing: border-box;
268
+ height: auto !important;
269
+ padding: 20px 40px;
270
+ width: 100% !important;
271
  }
272
 
273
  body.<?php echo $suffix; ?> .<?php echo $key; ?>-container li div textarea {
280
  }
281
 
282
  .<?php echo $key; ?>-container #TB_title #TB_ajaxWindowTitle {
283
+ box-sizing: border-box;
284
  display: block;
285
+ float: none;
286
+ font-weight: 700;
287
+ line-height: 1;
288
+ padding: 0;
289
+ text-align: left;
290
+ width: 100%;
291
  }
292
 
293
+ .<?php echo $key; ?>-container #TB_title #TB_ajaxWindowTitle span {
294
+ color: #8d9192;
 
295
  display: block;
296
+ font-size: 15px;
297
+ font-weight: 400;
298
+ margin-top: 5px;
299
+ text-transform: none;
300
  }
301
 
302
+ body.<?php echo $suffix; ?> .<?php echo $key; ?>-container .actions {
 
 
303
  width: 100%;
304
+ display: block;
305
+ position: absolute;
306
+ left: 0;
307
+ bottom: 0;
308
  }
309
 
310
  .theme-install-php .<?php echo $key; ?>-container #TB_closeWindowButton .tb-close-icon:before {
312
  }
313
 
314
  .<?php echo $key; ?>-container #TB_closeWindowButton .tb-close-icon {
 
315
  color: #eee;
316
  }
317
 
318
  .<?php echo $key; ?>-container #TB_closeWindowButton {
319
  left: auto;
320
+ right: -5px;
321
+ top: -35px;
322
  color: #eee;
323
  }
324
 
325
+ .<?php echo $key; ?>-container #TB_closeWindowButton .tb-close-icon {
326
+ text-align: right;
327
+ line-height: 25px;
328
+ width: 25px;
329
+ height: 25px;
330
+ }
331
+
332
+ .<?php echo $key; ?>-container #TB_closeWindowButton:focus .tb-close-icon {
333
+ box-shadow: none;
334
+ outline: none;
335
+ }
336
+
337
+ .<?php echo $key; ?>-container #TB_closeWindowButton .tb-close-icon:before {
338
+ font: normal 25px dashicons;
339
+ }
340
 
341
+ body.<?php echo $suffix; ?> .<?php echo $key; ?>-container {
342
  margin: auto !important;
343
+ height: 500px !important;
344
  top: 0 !important;
345
  left: 0 !important;
346
  bottom: 0 !important;
347
  right: 0 !important;
348
+ width: 600px !important;
349
  }
350
  </style>
351
  <?php
384
  $('a.ti-auto-anchor').trigger('click');
385
  }, <?php echo self::AUTO_TRIGGER_DEACTIVATE_WINDOW_SECONDS * 1000; ?> );
386
  }
387
+ $(document).on('thickbox:removed', function () {
388
  $.ajax({
389
  url: ajaxurl,
390
  method: 'post',
391
  data: {
392
+ 'action': '<?php echo $key . __CLASS__; ?>',
393
+ 'nonce': '<?php echo wp_create_nonce( (string) __CLASS__ ); ?>',
394
+ 'type': '<?php echo $type; ?>',
395
+ 'key': '<?php echo $key; ?>'
396
  },
397
  });
398
  });
399
  var href = $(target_element).attr('href');
400
+ $('#<?php echo $key; ?>ti-deactivate-no').attr('data-ti-action', href).on('click', function (e) {
401
  e.preventDefault();
402
  e.stopPropagation();
403
 
404
  $('body').unbind('thickbox:removed');
405
  tb_remove();
406
+ var redirect = $(this).attr('data-ti-action');
407
+ if (redirect != '') {
408
+ location.href = redirect;
409
+ }
410
  });
411
 
412
  $('#<?php echo $key; ?> ul.ti-list label, #<?php echo $key; ?> ul.ti-list input[name="ti-deactivate-option"]').on('click', function (e) {
434
  url: ajaxurl,
435
  method: 'post',
436
  data: {
437
+ 'action': '<?php echo $key . __CLASS__; ?>',
438
+ 'nonce': '<?php echo wp_create_nonce( (string) __CLASS__ ); ?>',
439
+ 'id': $('#<?php echo $key; ?> input[name="ti-deactivate-option"]:checked').parent().attr('ti-option-id'),
440
+ 'msg': $('#<?php echo $key; ?> input[name="ti-deactivate-option"]:checked').parent().find('textarea').val(),
441
+ 'type': '<?php echo $type; ?>',
442
+ 'key': '<?php echo $key; ?>'
443
  },
444
  });
445
  var redirect = $(this).attr('data-ti-action');
451
  }
452
  });
453
 
454
+ $(target_element).attr('name', '<?php echo wp_kses( $heading, array( 'span' => array() ) ); ?>').attr('href', '<?php echo $src; ?>').addClass('thickbox');
455
  var thicbox_timer;
456
  $(target_element).on('click', function () {
457
  tiBindThickbox();
494
 
495
  $list = '';
496
  foreach ( $options as $title => $attributes ) {
497
+ $id = $attributes['id'];
498
  $list .= '<li ti-option-id="' . $id . '"><input type="radio" name="ti-deactivate-option" id="' . $key . $id . '"><label for="' . $key . $id . '">' . str_replace( '{theme}', $this->product->get_name(), $title ) . '</label>';
499
  if ( array_key_exists( 'type', $attributes ) ) {
500
+ $list .= '<div>';
501
  $placeholder = array_key_exists( 'placeholder', $attributes ) ? $attributes['placeholder'] : '';
502
  switch ( $attributes['type'] ) {
503
  case 'text':
516
  . '<ul class="ti-list">' . $list . '</ul>'
517
  . '<div class="actions">'
518
  . get_submit_button(
519
+ $button_submit, 'secondary', $this->product->get_key() . 'ti-deactivate-yes', false, array(
520
  'data-after-text' => $button_submit,
521
+ 'disabled' => true,
522
  )
523
  )
524
  . get_submit_button( $button_cancel, 'primary', $this->product->get_key() . 'ti-deactivate-no', false )
vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-feedback-review.php CHANGED
@@ -146,7 +146,7 @@ if ( ! class_exists( 'ThemeIsle_SDK_Feedback_Review' ) ) :
146
  'action': '<?php echo $this->product->get_key() . __CLASS__; ?>'
147
  },
148
  success: function () {
149
- $('#<?php echo $key; ?>_review').hide();
150
  }
151
  });
152
  });
146
  'action': '<?php echo $this->product->get_key() . __CLASS__; ?>'
147
  },
148
  success: function () {
149
+ $('#<?php echo $key; ?>_review').html('<p><b>Thanks for your answer.</b></p>');
150
  }
151
  });
152
  });
vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-feedback-translate.php CHANGED
@@ -888,7 +888,7 @@ The process is easy, and you can join by following the link below!';
888
  'action': '<?php echo $this->product->get_key() . __CLASS__; ?>'
889
  },
890
  success: function () {
891
- $('#<?php echo $key; ?>_translate').hide();
892
  }
893
  });
894
  });
888
  'action': '<?php echo $this->product->get_key() . __CLASS__; ?>'
889
  },
890
  success: function () {
891
+ $('#<?php echo $key; ?>_translate').html('<p><b>Thanks for your answer.</b></p>');
892
  }
893
  });
894
  });
vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-licenser.php CHANGED
@@ -204,19 +204,6 @@ if ( ! class_exists( 'ThemeIsle_SDK_Licenser' ) ) :
204
  * @return bool Either hide them or not.
205
  */
206
  function check_hide( $hide ) {
207
- if ( isset( $_GET[ $this->product->get_key() . '_hide_' . $hide ] ) ) {
208
- if ( $_GET[ $this->product->get_key() . '_hide_' . $hide ] === 'yes' ) {
209
- update_option( $this->product->get_key() . '_hide_' . $hide, 'yes' );
210
-
211
- return false;
212
- }
213
- } else {
214
- $license = get_option( $this->product->get_key() . '_hide_' . $hide, '' );
215
- if ( $license === 'yes' ) {
216
- return false;
217
- }
218
- }
219
-
220
  return true;
221
  }
222
 
@@ -237,15 +224,14 @@ if ( ! class_exists( 'ThemeIsle_SDK_Licenser' ) ) :
237
  Staff for more details.'
238
  );
239
  $no_valid_string = apply_filters(
240
- $this->product->get_key() . '_lc_no_valid_string', 'In order to benefit from updates and support for %s , please add
241
  your license code from your <a href="%s" target="_blank">purchase history</a> and validate it <a
242
- href="%s">here</a> '
243
  );
244
  $expiration_string = apply_filters(
245
  $this->product->get_key() . '_lc_expiration_string', 'Your license is about to expire
246
  for %s. You can go to %s and renew it '
247
  );
248
- $hide_notice_string = apply_filters( $this->product->get_key() . '_lc_hide_notice_string', 'Hide Notice' );
249
  if ( $status != 'valid' ) {
250
  if ( $this->check_activation() ) {
251
  if ( $this->check_hide( 'activation' ) ) {
@@ -258,8 +244,7 @@ if ( ! class_exists( 'ThemeIsle_SDK_Licenser' ) ) :
258
  target="_blank">' . $this->product->get_store_name() . '</a>'
259
  );
260
  ?>
261
- </strong> | <a
262
- href="<?php echo add_query_arg( $this->product->get_key() . '_activation', 'yes' ); ?> "><?php echo $hide_notice_string; ?></a>
263
  </p>
264
  </div>
265
  <?php
@@ -270,9 +255,7 @@ if ( ! class_exists( 'ThemeIsle_SDK_Licenser' ) ) :
270
  <?php if ( $this->check_hide( 'valid' ) ) : ?>
271
  <div class="error">
272
  <p>
273
- <strong><?php echo sprintf( $no_valid_string, $this->product->get_name() . ' ' . $this->product->get_type(), $this->product->get_store_url(), admin_url( 'options-general.php' ) . '#' . $this->product->get_key() ); ?> </strong>|
274
- <a
275
- href="<?php echo add_query_arg( $this->product->get_key() . '_hide_valid', 'yes' ); ?> "><?php echo $hide_notice_string; ?></a>
276
  </p>
277
  </div>
278
  <?php endif; ?>
@@ -291,9 +274,7 @@ if ( ! class_exists( 'ThemeIsle_SDK_Licenser' ) ) :
291
  target="_blank">' . $this->product->get_store_name() . '</a>'
292
  );
293
  ?>
294
- </strong> |
295
- <a
296
- href="<?php echo add_query_arg( $this->product->get_key() . '_hide_expiration', 'yes' ); ?> "><?php echo $hide_notice_string; ?></a>
297
  </p>
298
  </div>
299
  <?php
204
  * @return bool Either hide them or not.
205
  */
206
  function check_hide( $hide ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
207
  return true;
208
  }
209
 
224
  Staff for more details.'
225
  );
226
  $no_valid_string = apply_filters(
227
+ $this->product->get_key() . '_lc_no_valid_string', 'In order to benefit from updates and support for %s, please add
228
  your license code from your <a href="%s" target="_blank">purchase history</a> and validate it <a
229
+ href="%s">here</a>. '
230
  );
231
  $expiration_string = apply_filters(
232
  $this->product->get_key() . '_lc_expiration_string', 'Your license is about to expire
233
  for %s. You can go to %s and renew it '
234
  );
 
235
  if ( $status != 'valid' ) {
236
  if ( $this->check_activation() ) {
237
  if ( $this->check_hide( 'activation' ) ) {
244
  target="_blank">' . $this->product->get_store_name() . '</a>'
245
  );
246
  ?>
247
+ </strong>
 
248
  </p>
249
  </div>
250
  <?php
255
  <?php if ( $this->check_hide( 'valid' ) ) : ?>
256
  <div class="error">
257
  <p>
258
+ <strong><?php echo sprintf( $no_valid_string, $this->product->get_name() . ' ' . $this->product->get_type(), $this->product->get_store_url(), admin_url( 'options-general.php' ) . '#' . $this->product->get_key() ); ?> </strong>
 
 
259
  </p>
260
  </div>
261
  <?php endif; ?>
274
  target="_blank">' . $this->product->get_store_name() . '</a>'
275
  );
276
  ?>
277
+ </strong>
 
 
278
  </p>
279
  </div>
280
  <?php
vendor/codeinwp/themeisle-sdk/load.php CHANGED
@@ -11,7 +11,7 @@
11
  */
12
 
13
  // Current SDK version and path.
14
- $themeisle_sdk_version = '2.0.0';
15
  $themeisle_sdk_path = dirname( __FILE__ );
16
 
17
  global $themeisle_sdk_max_version;
11
  */
12
 
13
  // Current SDK version and path.
14
+ $themeisle_sdk_version = '2.1.0';
15
  $themeisle_sdk_path = dirname( __FILE__ );
16
 
17
  global $themeisle_sdk_max_version;
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInit128c9259c1ccb8f8fe6a1fbcc248b37f
6
  {
7
  private static $loader;
8
 
@@ -19,9 +19,9 @@ class ComposerAutoloaderInit128c9259c1ccb8f8fe6a1fbcc248b37f
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInit128c9259c1ccb8f8fe6a1fbcc248b37f', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInit128c9259c1ccb8f8fe6a1fbcc248b37f', 'loadClassLoader'));
25
 
26
  $map = require __DIR__ . '/autoload_namespaces.php';
27
  foreach ($map as $namespace => $path) {
@@ -42,14 +42,14 @@ class ComposerAutoloaderInit128c9259c1ccb8f8fe6a1fbcc248b37f
42
 
43
  $includeFiles = require __DIR__ . '/autoload_files.php';
44
  foreach ($includeFiles as $fileIdentifier => $file) {
45
- composerRequire128c9259c1ccb8f8fe6a1fbcc248b37f($fileIdentifier, $file);
46
  }
47
 
48
  return $loader;
49
  }
50
  }
51
 
52
- function composerRequire128c9259c1ccb8f8fe6a1fbcc248b37f($fileIdentifier, $file)
53
  {
54
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
55
  require $file;
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInitc96dc00b3482ebe8fca835e32b58a30f
6
  {
7
  private static $loader;
8
 
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInitc96dc00b3482ebe8fca835e32b58a30f', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInitc96dc00b3482ebe8fca835e32b58a30f', 'loadClassLoader'));
25
 
26
  $map = require __DIR__ . '/autoload_namespaces.php';
27
  foreach ($map as $namespace => $path) {
42
 
43
  $includeFiles = require __DIR__ . '/autoload_files.php';
44
  foreach ($includeFiles as $fileIdentifier => $file) {
45
+ composerRequirec96dc00b3482ebe8fca835e32b58a30f($fileIdentifier, $file);
46
  }
47
 
48
  return $loader;
49
  }
50
  }
51
 
52
+ function composerRequirec96dc00b3482ebe8fca835e32b58a30f($fileIdentifier, $file)
53
  {
54
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
55
  require $file;
vendor/composer/autoload_real_52.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real_52.php generated by xrstf/composer-php52
4
 
5
- class ComposerAutoloaderInitf75a70d09d4227c22cfbf6f13f19bedd {
6
  private static $loader;
7
 
8
  public static function loadClassLoader($class) {
@@ -19,9 +19,9 @@ class ComposerAutoloaderInitf75a70d09d4227c22cfbf6f13f19bedd {
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInitf75a70d09d4227c22cfbf6f13f19bedd', 'loadClassLoader'), true /*, true */);
23
  self::$loader = $loader = new xrstf_Composer52_ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInitf75a70d09d4227c22cfbf6f13f19bedd', 'loadClassLoader'));
25
 
26
  $vendorDir = dirname(dirname(__FILE__));
27
  $baseDir = dirname($vendorDir);
2
 
3
  // autoload_real_52.php generated by xrstf/composer-php52
4
 
5
+ class ComposerAutoloaderInit7f363fc03e498c3d487caeb44664caa2 {
6
  private static $loader;
7
 
8
  public static function loadClassLoader($class) {
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInit7f363fc03e498c3d487caeb44664caa2', 'loadClassLoader'), true /*, true */);
23
  self::$loader = $loader = new xrstf_Composer52_ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInit7f363fc03e498c3d487caeb44664caa2', 'loadClassLoader'));
25
 
26
  $vendorDir = dirname(dirname(__FILE__));
27
  $baseDir = dirname($vendorDir);
vendor/composer/installed.json CHANGED
@@ -6,15 +6,15 @@
6
  "source": {
7
  "type": "git",
8
  "url": "https://github.com/Codeinwp/themeisle-sdk.git",
9
- "reference": "3a40b987f7852134bd29bb8a1ecfaca6b7c1f236"
10
  },
11
  "dist": {
12
  "type": "zip",
13
- "url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/3a40b987f7852134bd29bb8a1ecfaca6b7c1f236",
14
- "reference": "3a40b987f7852134bd29bb8a1ecfaca6b7c1f236",
15
  "shasum": ""
16
  },
17
- "time": "2017-12-28 13:15:26",
18
  "type": "library",
19
  "installation-source": "dist",
20
  "autoload": {
6
  "source": {
7
  "type": "git",
8
  "url": "https://github.com/Codeinwp/themeisle-sdk.git",
9
+ "reference": "ae69f3966081f0a7c7c468c00275c411cc0be063"
10
  },
11
  "dist": {
12
  "type": "zip",
13
+ "url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/ae69f3966081f0a7c7c468c00275c411cc0be063",
14
+ "reference": "ae69f3966081f0a7c7c468c00275c411cc0be063",
15
  "shasum": ""
16
  },
17
+ "time": "2018-01-04 13:30:43",
18
  "type": "library",
19
  "installation-source": "dist",
20
  "autoload": {