Version Description
(29 November 2018) =
Security:
- Patched an open redirect vulnerability using a url parameter in our submission download page. Thank you to Muhammad Talha Khan for practicing responsible disclosure.
=
Download this release
Release Info
Developer | krmoorhouse |
Plugin | Ninja Forms – The Easy and Powerful Forms Builder |
Version | 3.3.19.1 |
Comparing to | |
See all releases |
Code changes from version 3.3.19 to 3.3.19.1
- .github/CONTRIBUTING.md +0 -34
- .github/ISSUE_TEMPLATE.md +0 -6
- .github/PULL_REQUEST_TEMPLATE.md +0 -8
- DATA_STRUCTURE.md +0 -644
- assets/img/add-ons/mail-chimp.png +0 -0
- assets/js/min/front-end-deps.js +0 -0
- deprecated/includes/admin/edit-field/post-meta-values.php +95 -95
- deprecated/includes/admin/pages/ninja-forms/tabs/field-settings/sidebars/post-fields.php +47 -47
- deprecated/js/dev/jquery.rating.js +376 -376
- deprecated/ninja-forms.php +1 -1
- includes/Abstracts/List.php +0 -0
- includes/Libraries/EOS/Parser.php +0 -0
- includes/Libraries/EOS/Stack.php +0 -0
- includes/Libraries/Session/class-recursive-arrayaccess.php +0 -0
- includes/Libraries/Session/class-wp-session.php +0 -0
- includes/Libraries/Session/wp-session.php +0 -0
- lib/StepProcessing/step-processing.php +3 -1
- ninja-forms.php +2 -2
- readme.txt +9 -8
.github/CONTRIBUTING.md
DELETED
@@ -1,34 +0,0 @@
|
|
1 |
-
#Contribute To Ninja Forms
|
2 |
-
(adapted from Easy Digital Downloads)
|
3 |
-
|
4 |
-
## Getting Started
|
5 |
-
|
6 |
-
* Submit a ticket for your issue, assuming one does not already exist.
|
7 |
-
* Raise it on our [Issue Tracker](https://github.com/wpninjas/ninja-forms/issues)
|
8 |
-
* Clearly describe the issue, including steps to reproduce the bug (if applicable).
|
9 |
-
* If it's a bug, make sure you fill in the earliest version that you know has the issue as well as the version of WordPress you're using.
|
10 |
-
|
11 |
-
## Making Changes
|
12 |
-
|
13 |
-
* Fork the Ninja Forms repository on GitHub
|
14 |
-
* From the `master` branch on your forked repository, create a new branch and make your changes
|
15 |
-
* Your new branch should use the naming convention `issue/{issue#}` e.g. `issue/190`
|
16 |
-
* Ensure you stick to the [WordPress Coding Standards](http://codex.wordpress.org/WordPress_Coding_Standards)
|
17 |
-
* When committing, use a [well-formed](http://robots.thoughtbot.com/5-useful-tips-for-a-better-commit-message) [commit](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html) [message](http://who-t.blogspot.com/2009/12/on-commit-messages.html)
|
18 |
-
* Push the changes to your fork and submit a pull request to the `master` branch of the Ninja Forms repository
|
19 |
-
|
20 |
-
## Code Documentation
|
21 |
-
|
22 |
-
* We're working on making sure that every function is documented well and follows the WordPress inline documentation standards based on phpDoc
|
23 |
-
* The WordPress Inline Documentation Standards (with examples) can be found [here](http://make.wordpress.org/core/handbook/inline-documentation-standards/php-documentation-standards/)
|
24 |
-
* Please make sure that every function is documented so that our API Documentation will be complete
|
25 |
-
* If you're adding/editing a function in a class, make sure to add `@access {private|public|protected}`
|
26 |
-
* Finally, please use tabs and not spaces. The tab indent size should be 4 for all Ninja Forms code.
|
27 |
-
|
28 |
-
At this point you're waiting on us to merge your pull request. We'll review all pull requests, and make suggestions and changes if necessary.
|
29 |
-
|
30 |
-
# Additional Resources
|
31 |
-
* [Ninja Forms Developer API](http://ninjaforms.com/documentation/developer-api/)
|
32 |
-
* [GitHub Help — Forking](https://help.github.com/articles/fork-a-repo)
|
33 |
-
* [GitHub Help — Syncing a Fork](https://help.github.com/articles/syncing-a-fork)
|
34 |
-
* [GitHub Help — Pull Requests](https://help.github.com/articles/using-pull-requests#before-you-begin)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.github/ISSUE_TEMPLATE.md
DELETED
@@ -1,6 +0,0 @@
|
|
1 |
-
- **What actions are you taking?**
|
2 |
-
- What had happened was...
|
3 |
-
- **What are you expecting to occur?**
|
4 |
-
- What I was expecting to happen was...
|
5 |
-
- **What is occurring instead?**
|
6 |
-
- What *actually* happened was...
|
|
|
|
|
|
|
|
|
|
|
|
.github/PULL_REQUEST_TEMPLATE.md
DELETED
@@ -1,8 +0,0 @@
|
|
1 |
-
Fixes #
|
2 |
-
|
3 |
-
Changes proposed in this pull request:
|
4 |
-
-
|
5 |
-
-
|
6 |
-
-
|
7 |
-
|
8 |
-
@wpninjas/developers
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DATA_STRUCTURE.md
DELETED
@@ -1,644 +0,0 @@
|
|
1 |
-
## Description
|
2 |
-
|
3 |
-
This document describes the architecture of the Ninja Forms database layer.
|
4 |
-
|
5 |
-
## Current Structure (1.1)
|
6 |
-
|
7 |
-
This section contains the current structure of the Ninja Forms data layer and is updated each time that structure changes. For legacy data, please see the individual version notes.
|
8 |
-
|
9 |
-
### Forms
|
10 |
-
|
11 |
-
_**nf3_forms**_ (Table of individual Forms)
|
12 |
-
* id (The unique ID of the Form)
|
13 |
-
* int(11)
|
14 |
-
* NOT NULL
|
15 |
-
* AUTO_INCREMENT
|
16 |
-
* Primary Key
|
17 |
-
* title (The displayable title of the Form)
|
18 |
-
* longtext
|
19 |
-
* COLLATE DATABASE_DEFAULT
|
20 |
-
* key (The administrative key of the Form)
|
21 |
-
* longtext
|
22 |
-
* COLLATE DATABASE_DEFAULT
|
23 |
-
* created_at (The date/time the Form was created)
|
24 |
-
* timestamp
|
25 |
-
* NOT NULL
|
26 |
-
* DEFAULT CURRENT_TIMESTAMP
|
27 |
-
* ON UPDATE CURRENT_TIMESTAMP
|
28 |
-
* updated_at (The date/time the Form was last updated)
|
29 |
-
* datetime
|
30 |
-
* views (The number of times the Form has been viewed)
|
31 |
-
* int(11)
|
32 |
-
* subs (The Form's number of lifetime Submissions)
|
33 |
-
* int(11)
|
34 |
-
* form_title (The displayable title of the Form)
|
35 |
-
* longtext
|
36 |
-
* COLLATE utf8mb4_general_ci (fallback to utf8_general_ci)
|
37 |
-
* default_label_pos (The default label position of fields on the Form)
|
38 |
-
* varchar(15)
|
39 |
-
* show_title (Whether or not to show the Form title)
|
40 |
-
* bit(1)
|
41 |
-
* clear_complete (Whether or not to clear the Form after submission)
|
42 |
-
* bit(1)
|
43 |
-
* hide_complete (Whether or not to hide the Form after submission)
|
44 |
-
* bit(1)
|
45 |
-
* logged_in (Whether or not the user must be logged in to view the Form)
|
46 |
-
* bit(1)
|
47 |
-
* seq_num (The number of the next submission to the Form)
|
48 |
-
* int(11)
|
49 |
-
|
50 |
-
|
51 |
-
_**nf3_form_meta**_ (Table of Settings assoicated with each Form)
|
52 |
-
* id (The unique ID of the Setting)
|
53 |
-
* int(11)
|
54 |
-
* NOT NULL
|
55 |
-
* AUTO_INCREMENT
|
56 |
-
* Primary Key
|
57 |
-
* parent_id (The Form ID this Setting is associated with)
|
58 |
-
* int(11)
|
59 |
-
* NOT NULL
|
60 |
-
* Foreign Key ON *nf3_forms* id
|
61 |
-
* key (The administrative key of the Setting)
|
62 |
-
* longtext
|
63 |
-
* COLLATE DATABASE_DEFAULT
|
64 |
-
* NOT NULL
|
65 |
-
* value (The value of the Setting)
|
66 |
-
* longtext
|
67 |
-
* COLLATE DATABASE_DEFAULT
|
68 |
-
* meta_key (The administrative key of the Setting)
|
69 |
-
* longtext
|
70 |
-
* COLLATE utf8mb4_general_ci (fallback to utf8_general_ci)
|
71 |
-
* meta_value (The value of the Setting)
|
72 |
-
* longtext
|
73 |
-
* COLLATE utf8mb4_general_ci (fallback to utf8_general_ci)
|
74 |
-
|
75 |
-
### Fields
|
76 |
-
|
77 |
-
_**nf3_fields**_ (Table of individual Fields)
|
78 |
-
* id (The unique ID of the Field)
|
79 |
-
* int(11)
|
80 |
-
* NOT NULL
|
81 |
-
* AUTO_INCREMENT
|
82 |
-
* Primary Key
|
83 |
-
* label (The displayable label of the Field)
|
84 |
-
* longtext
|
85 |
-
* COLLATE DATABASE_DEFAULT
|
86 |
-
* key (The administrative key of the Field)
|
87 |
-
* longtext
|
88 |
-
* COLLATE DATABASE_DEFAULT
|
89 |
-
* type (The type of Field this record represents)
|
90 |
-
* longtext
|
91 |
-
* COLLATE DATABASE_DEFAULT
|
92 |
-
* parent_id (The Form ID this Field is associated with)
|
93 |
-
* int(11)
|
94 |
-
* NOT NULL
|
95 |
-
* Foreign Key ON *nf3_forms* id
|
96 |
-
* created_at (The date/time the Field was created)
|
97 |
-
* timestamp
|
98 |
-
* NOT NULL
|
99 |
-
* DEFAULT CURRENT_TIMESTAMP
|
100 |
-
* ON UPDATE CURRENT_TIMESTAMP
|
101 |
-
* updated_at (The date/time the Field was last updated)
|
102 |
-
* datetime
|
103 |
-
|
104 |
-
|
105 |
-
_**nf3_field_meta**_ (Table of Settings associated with each Field)
|
106 |
-
* id (The unique ID of the Setting)
|
107 |
-
* int(11)
|
108 |
-
* NOT NULL
|
109 |
-
* AUTO_INCREMENT
|
110 |
-
* Primary Key
|
111 |
-
* parent_id (The Field ID this Setting is associated with)
|
112 |
-
* int(11)
|
113 |
-
* NOT NULL
|
114 |
-
* Foreign Key ON *nf3_fields* id
|
115 |
-
* key (The administrative key of the Setting)
|
116 |
-
* longtext
|
117 |
-
* COLLATE DATABASE_DEFAULT
|
118 |
-
* NOT NULL
|
119 |
-
* value (The value of the Setting)
|
120 |
-
* longtext
|
121 |
-
* COLLATE DATABASE_DEFAULT
|
122 |
-
|
123 |
-
### Actions
|
124 |
-
|
125 |
-
_**nf3_actions**_ (Table of individual Actions)
|
126 |
-
* id (The unique ID of the Action)
|
127 |
-
* int(11)
|
128 |
-
* NOT NULL
|
129 |
-
* AUTO_INCREMENT
|
130 |
-
* Primrary Key
|
131 |
-
* title (The displayable title of the Action)
|
132 |
-
* longtext
|
133 |
-
* COLLATE DATABASE_DEFAULT
|
134 |
-
* key (The administrative key of the Action)
|
135 |
-
* longtext
|
136 |
-
* COLLATE DATABASE_DEFAULT
|
137 |
-
* type (The type of Action this record represents)
|
138 |
-
* longtext
|
139 |
-
* COLLATE DATABASE_DEFAULT
|
140 |
-
* active (Whether or not the Action is active)
|
141 |
-
* tinyint(1)
|
142 |
-
* DEFAULT 1
|
143 |
-
* parent_id (The Form ID this Action is associated with)
|
144 |
-
* int(11)
|
145 |
-
* NOT NULL
|
146 |
-
* Foreign Key ON *nf3_forms* id
|
147 |
-
* created_at (The date/time the Action was created)
|
148 |
-
* timestamp
|
149 |
-
* NOT NULL
|
150 |
-
* DEFAULT CURRENT_TIMESTAMP
|
151 |
-
* ON UPDATE CURRENT_TIMESTAMP
|
152 |
-
* updated_at (The date/time the Action was last updated)
|
153 |
-
* datetime
|
154 |
-
|
155 |
-
|
156 |
-
_**nf3_action_meta**_ (Table of Settings associated with each Action)
|
157 |
-
* id (The unique ID of the Setting)
|
158 |
-
* int(11)
|
159 |
-
* NOT NULL
|
160 |
-
* AUTO_INCREMENT
|
161 |
-
* Primary KEY
|
162 |
-
* parent_id (The Action ID this Setting is associated with)
|
163 |
-
* int(11)
|
164 |
-
* NOT_NULL
|
165 |
-
* Foreign Key ON *nf3_actions* id
|
166 |
-
* key (The administrative key of the Setting)
|
167 |
-
* longtext
|
168 |
-
* COLLATE DATABASE_DEFAULT
|
169 |
-
* NOT NULL
|
170 |
-
* value (The value of the Setting)
|
171 |
-
* longtext
|
172 |
-
* COLLATE DATABASE_DEFAULT
|
173 |
-
|
174 |
-
### Objects
|
175 |
-
|
176 |
-
_**nf3_objects**_ (Table of non-structured Objects)
|
177 |
-
* id (The unique ID of the Object)
|
178 |
-
* int(11)
|
179 |
-
* NOT NULL
|
180 |
-
* AUTO_INCREMENT
|
181 |
-
* Primrary Key
|
182 |
-
* type (The type of Object this record represents)
|
183 |
-
* longtext
|
184 |
-
* COLLATE DATABASE_DEFAULT
|
185 |
-
* title (The displayable title of the Object)
|
186 |
-
* longtext
|
187 |
-
* COLLATE DATABASE_DEFAULT
|
188 |
-
* created_at (The date/time the Object was created)
|
189 |
-
* timestamp
|
190 |
-
* NOT NULL
|
191 |
-
* DEFAULT CURRENT_TIMESTAMP
|
192 |
-
* ON UPDATE CURRENT_TIMESTAMP
|
193 |
-
* updated_at (The date/time the Object was last updated)
|
194 |
-
* datetime
|
195 |
-
|
196 |
-
|
197 |
-
_**nf3_object_meta**_ (Table of Settings associated with each Object)
|
198 |
-
* id (The unique ID of the Setting)
|
199 |
-
* int(11)
|
200 |
-
* NOT NULL
|
201 |
-
* AUTO_INCREMENT
|
202 |
-
* Primary KEY
|
203 |
-
* parent_id (The Object ID this Setting is associated with)
|
204 |
-
* int(11)
|
205 |
-
* NOT_NULL
|
206 |
-
* Foreign Key ON *nf3_objects* id
|
207 |
-
* key (The administrative key of the Setting)
|
208 |
-
* longtext
|
209 |
-
* COLLATE DATABASE_DEFAULT
|
210 |
-
* NOT NULL
|
211 |
-
* value (The value of the Setting)
|
212 |
-
* longtext
|
213 |
-
* COLLATE DATABASE_DEFAULT
|
214 |
-
|
215 |
-
|
216 |
-
_**nf3_relationships**_ (Table of Relationships between Objects)
|
217 |
-
* id (The unique ID of the Relationship)
|
218 |
-
* int(11)
|
219 |
-
* NOT NULL
|
220 |
-
* AUTO_INCREMENT
|
221 |
-
* Primary KEY
|
222 |
-
* child_id (The child Object ID this record is associated with)
|
223 |
-
* int(11)
|
224 |
-
* NOT_NULL
|
225 |
-
* Foreign Key ON *nf3_objects* id
|
226 |
-
* child_type (The type of Object represented by child_id)
|
227 |
-
* longtext
|
228 |
-
* COLLATE DATABASE_DEFAULT
|
229 |
-
* NOT NULL
|
230 |
-
* parent_id (The parent Object ID this record is associated with)
|
231 |
-
* int(11)
|
232 |
-
* NOT_NULL
|
233 |
-
* Foreign Key ON *nf3_objects* id
|
234 |
-
* parent_type (The type of Object represented by parent_id)
|
235 |
-
* longtext
|
236 |
-
* COLLATE DATABASE_DEFAULT
|
237 |
-
* NOT NULL
|
238 |
-
* created_at (The date/time the Relationship was created)
|
239 |
-
* timestamp
|
240 |
-
* NOT NULL
|
241 |
-
* DEFAULT CURRENT_TIMESTAMP
|
242 |
-
* ON UPDATE CURRENT_TIMESTAMP
|
243 |
-
* updated_at (The date/time the Relationship was last updated)
|
244 |
-
* datetime
|
245 |
-
|
246 |
-
|
247 |
-
_**options**_ (The default WordPress options table)
|
248 |
-
* option_name = 'nf_form_%' WHERE % = *nf3_forms* id
|
249 |
-
* option_value = Serialized JSON Object (The Ninja Forms Cache)
|
250 |
-
|
251 |
-
### Submissions
|
252 |
-
|
253 |
-
_**posts**_ (The default WordPress posts table)
|
254 |
-
* id (The unique ID of the Post)
|
255 |
-
* bigint(20)
|
256 |
-
* NOT NULL
|
257 |
-
* AUTO_INCREMENT
|
258 |
-
* Primary Key
|
259 |
-
* post_type = 'nf_sub'
|
260 |
-
|
261 |
-
|
262 |
-
_**postmeta**_ (The default WordPress postmeta table)
|
263 |
-
* meta_id (The unique ID of the Metadata)
|
264 |
-
* bigint(20)
|
265 |
-
* NOT NULL
|
266 |
-
* AUTO_INCREMENT
|
267 |
-
* Primary Key
|
268 |
-
* post_id (The Post ID this Metadata is associated with)
|
269 |
-
* bigint(20)
|
270 |
-
* NOT NULL
|
271 |
-
* DEFAULT 0
|
272 |
-
* Foreign Key ON *posts* id
|
273 |
-
* meta_key (The identifiable key by which this record is referenced)
|
274 |
-
* varchar(255)
|
275 |
-
* COLLATE DATABASE_DEFAULT
|
276 |
-
* meta_value (The value of this record)
|
277 |
-
* longtext
|
278 |
-
* COLLATE DATABASE_DEFAULT
|
279 |
-
|
280 |
-
### Upgrades
|
281 |
-
|
282 |
-
_**nf3_upgrades**_ (Table of Forms as they exist in the current structure and the stage of upgrade currently applied to each Form)
|
283 |
-
* id (The unique ID of the Form)
|
284 |
-
* int(11)
|
285 |
-
* NOT NULL
|
286 |
-
* Primary Key
|
287 |
-
* cache (The Ninja Forms cache as it was retrieved from the *options* table)
|
288 |
-
* longtext
|
289 |
-
* COLLATE utf8mb4_general_ci (fallback to utf8_general_ci)
|
290 |
-
* stage (The current upgrade stage of the Form)
|
291 |
-
* int(11)
|
292 |
-
* NOT NULL
|
293 |
-
* DEFAULT 0
|
294 |
-
|
295 |
-
### Chunks
|
296 |
-
|
297 |
-
_**nf3_chunks**_ (Table of Chunks created on publish to be reconstructed into a Ninja Forms cache)
|
298 |
-
* id (The unique ID of the Chunk)
|
299 |
-
* int(11)
|
300 |
-
* NOT NULL
|
301 |
-
* AUTO_INCREMENT
|
302 |
-
* Primary Key
|
303 |
-
* name (The name of the Chunk)
|
304 |
-
* varchar(200)
|
305 |
-
* COLLATE utf8mb4_general_ci (fallback to utf8_general_ci)
|
306 |
-
* value (The value of the Chunk)
|
307 |
-
* longtext
|
308 |
-
* COLLATE utf8mb4_general_ci (fallback to utf8_general_ci)
|
309 |
-
|
310 |
-
### Chunks
|
311 |
-
|
312 |
-
_**nf3_chunks**_ (Table of Chunks created on publish to be reconstructed into a Ninja Forms cache)
|
313 |
-
* id (The unique ID of the Chunk)
|
314 |
-
* int(11)
|
315 |
-
* NOT NULL
|
316 |
-
* AUTO_INCREMENT
|
317 |
-
* Primary Key
|
318 |
-
* name (The name of the Chunk)
|
319 |
-
* varchar(200)
|
320 |
-
* COLLATE utf8mb4_general_ci (fallback to utf8_general_ci)
|
321 |
-
* value (The value of the Chunk)
|
322 |
-
* longtext
|
323 |
-
* COLLATE utf8mb4_general_ci (fallback to utf8_general_ci)
|
324 |
-
|
325 |
-
## Version 1.0
|
326 |
-
|
327 |
-
Defined initial structure for Ninja Forms data layer.
|
328 |
-
|
329 |
-
### Forms
|
330 |
-
|
331 |
-
_**nf3_forms**_ (Table of individual Forms)
|
332 |
-
* id (The unique ID of the Form)
|
333 |
-
* int(11)
|
334 |
-
* NOT NULL
|
335 |
-
* AUTO_INCREMENT
|
336 |
-
* Primary Key
|
337 |
-
* title (The displayable title of the Form)
|
338 |
-
* longtext
|
339 |
-
* COLLATE DATABASE_DEFAULT
|
340 |
-
* key (The administrative key of the Form)
|
341 |
-
* longtext
|
342 |
-
* COLLATE DATABASE_DEFAULT
|
343 |
-
* created_at (The date/time the Form was created)
|
344 |
-
* timestamp
|
345 |
-
* NOT NULL
|
346 |
-
* DEFAULT CURRENT_TIMESTAMP
|
347 |
-
* ON UPDATE CURRENT_TIMESTAMP
|
348 |
-
* updated_at (The date/time the Form was last updated)
|
349 |
-
* datetime
|
350 |
-
* views (The number of times the Form has been viewed)
|
351 |
-
* int(11)
|
352 |
-
* subs (The Form's number of lifetime Submissions)
|
353 |
-
* int(11)
|
354 |
-
|
355 |
-
|
356 |
-
_**nf3_form_meta**_ (Table of Settings assoicated with each Form)
|
357 |
-
* id (The unique ID of the Setting)
|
358 |
-
* int(11)
|
359 |
-
* NOT NULL
|
360 |
-
* AUTO_INCREMENT
|
361 |
-
* Primary Key
|
362 |
-
* parent_id (The Form ID this Setting is associated with)
|
363 |
-
* int(11)
|
364 |
-
* NOT NULL
|
365 |
-
* Foreign Key ON *nf3_forms* id
|
366 |
-
* key (The administrative key of the Setting)
|
367 |
-
* longtext
|
368 |
-
* COLLATE DATABASE_DEFAULT
|
369 |
-
* NOT NULL
|
370 |
-
* value (The value of the Setting)
|
371 |
-
* longtext
|
372 |
-
* COLLATE DATABASE_DEFAULT
|
373 |
-
|
374 |
-
### Fields
|
375 |
-
|
376 |
-
_**nf3_fields**_ (Table of individual Fields)
|
377 |
-
* id (The unique ID of the Field)
|
378 |
-
* int(11)
|
379 |
-
* NOT NULL
|
380 |
-
* AUTO_INCREMENT
|
381 |
-
* Primary Key
|
382 |
-
* label (The displayable label of the Field)
|
383 |
-
* longtext
|
384 |
-
* COLLATE DATABASE_DEFAULT
|
385 |
-
* key (The administrative key of the Field)
|
386 |
-
* longtext
|
387 |
-
* COLLATE DATABASE_DEFAULT
|
388 |
-
* type (The type of Field this record represents)
|
389 |
-
* longtext
|
390 |
-
* COLLATE DATABASE_DEFAULT
|
391 |
-
* parent_id (The Form ID this Field is associated with)
|
392 |
-
* int(11)
|
393 |
-
* NOT NULL
|
394 |
-
* Foreign Key ON *nf3_forms* id
|
395 |
-
* created_at (The date/time the Field was created)
|
396 |
-
* timestamp
|
397 |
-
* NOT NULL
|
398 |
-
* DEFAULT CURRENT_TIMESTAMP
|
399 |
-
* ON UPDATE CURRENT_TIMESTAMP
|
400 |
-
* updated_at (The date/time the Field was last updated)
|
401 |
-
* datetime
|
402 |
-
|
403 |
-
|
404 |
-
_**nf3_field_meta**_ (Table of Settings associated with each Field)
|
405 |
-
* id (The unique ID of the Setting)
|
406 |
-
* int(11)
|
407 |
-
* NOT NULL
|
408 |
-
* AUTO_INCREMENT
|
409 |
-
* Primary Key
|
410 |
-
* parent_id (The Field ID this Setting is associated with)
|
411 |
-
* int(11)
|
412 |
-
* NOT NULL
|
413 |
-
* Foreign Key ON *nf3_fields* id
|
414 |
-
* key (The administrative key of the Setting)
|
415 |
-
* longtext
|
416 |
-
* COLLATE DATABASE_DEFAULT
|
417 |
-
* NOT NULL
|
418 |
-
* value (The value of the Setting)
|
419 |
-
* longtext
|
420 |
-
* COLLATE DATABASE_DEFAULT
|
421 |
-
|
422 |
-
### Actions
|
423 |
-
|
424 |
-
_**nf3_actions**_ (Table of individual Actions)
|
425 |
-
* id (The unique ID of the Action)
|
426 |
-
* int(11)
|
427 |
-
* NOT NULL
|
428 |
-
* AUTO_INCREMENT
|
429 |
-
* Primrary Key
|
430 |
-
* title (The displayable title of the Action)
|
431 |
-
* longtext
|
432 |
-
* COLLATE DATABASE_DEFAULT
|
433 |
-
* key (The administrative key of the Action)
|
434 |
-
* longtext
|
435 |
-
* COLLATE DATABASE_DEFAULT
|
436 |
-
* type (The type of Action this record represents)
|
437 |
-
* longtext
|
438 |
-
* COLLATE DATABASE_DEFAULT
|
439 |
-
* active (Whether or not the Action is active)
|
440 |
-
* tinyint(1)
|
441 |
-
* DEFAULT 1
|
442 |
-
* parent_id (The Form ID this Action is associated with)
|
443 |
-
* int(11)
|
444 |
-
* NOT NULL
|
445 |
-
* Foreign Key ON *nf3_forms* id
|
446 |
-
* created_at (The date/time the Action was created)
|
447 |
-
* timestamp
|
448 |
-
* NOT NULL
|
449 |
-
* DEFAULT CURRENT_TIMESTAMP
|
450 |
-
* ON UPDATE CURRENT_TIMESTAMP
|
451 |
-
* updated_at (The date/time the Action was last updated)
|
452 |
-
* datetime
|
453 |
-
|
454 |
-
|
455 |
-
_**nf3_action_meta**_ (Table of Settings associated with each Action)
|
456 |
-
* id (The unique ID of the Setting)
|
457 |
-
* int(11)
|
458 |
-
* NOT NULL
|
459 |
-
* AUTO_INCREMENT
|
460 |
-
* Primary KEY
|
461 |
-
* parent_id (The Action ID this Setting is associated with)
|
462 |
-
* int(11)
|
463 |
-
* NOT_NULL
|
464 |
-
* Foreign Key ON *nf3_actions* id
|
465 |
-
* key (The administrative key of the Setting)
|
466 |
-
* longtext
|
467 |
-
* COLLATE DATABASE_DEFAULT
|
468 |
-
* NOT NULL
|
469 |
-
* value (The value of the Setting)
|
470 |
-
* longtext
|
471 |
-
* COLLATE DATABASE_DEFAULT
|
472 |
-
|
473 |
-
### Objects
|
474 |
-
|
475 |
-
_**nf3_objects**_ (Table of non-structured Objects)
|
476 |
-
* id (The unique ID of the Object)
|
477 |
-
* int(11)
|
478 |
-
* NOT NULL
|
479 |
-
* AUTO_INCREMENT
|
480 |
-
* Primrary Key
|
481 |
-
* type (The type of Object this record represents)
|
482 |
-
* longtext
|
483 |
-
* COLLATE DATABASE_DEFAULT
|
484 |
-
* title (The displayable title of the Object)
|
485 |
-
* longtext
|
486 |
-
* COLLATE DATABASE_DEFAULT
|
487 |
-
* created_at (The date/time the Object was created)
|
488 |
-
* timestamp
|
489 |
-
* NOT NULL
|
490 |
-
* DEFAULT CURRENT_TIMESTAMP
|
491 |
-
* ON UPDATE CURRENT_TIMESTAMP
|
492 |
-
* updated_at (The date/time the Object was last updated)
|
493 |
-
* datetime
|
494 |
-
|
495 |
-
|
496 |
-
_**nf3_object_meta**_ (Table of Settings associated with each Object)
|
497 |
-
* id (The unique ID of the Setting)
|
498 |
-
* int(11)
|
499 |
-
* NOT NULL
|
500 |
-
* AUTO_INCREMENT
|
501 |
-
* Primary KEY
|
502 |
-
* parent_id (The Object ID this Setting is associated with)
|
503 |
-
* int(11)
|
504 |
-
* NOT_NULL
|
505 |
-
* Foreign Key ON *nf3_objects* id
|
506 |
-
* key (The administrative key of the Setting)
|
507 |
-
* longtext
|
508 |
-
* COLLATE DATABASE_DEFAULT
|
509 |
-
* NOT NULL
|
510 |
-
* value (The value of the Setting)
|
511 |
-
* longtext
|
512 |
-
* COLLATE DATABASE_DEFAULT
|
513 |
-
|
514 |
-
|
515 |
-
_**nf3_relationships**_ (Table of Relationships between Objects)
|
516 |
-
* id (The unique ID of the Relationship)
|
517 |
-
* int(11)
|
518 |
-
* NOT NULL
|
519 |
-
* AUTO_INCREMENT
|
520 |
-
* Primary KEY
|
521 |
-
* child_id (The child Object ID this record is associated with)
|
522 |
-
* int(11)
|
523 |
-
* NOT_NULL
|
524 |
-
* Foreign Key ON *nf3_objects* id
|
525 |
-
* child_type (The type of Object represented by child_id)
|
526 |
-
* longtext
|
527 |
-
* COLLATE DATABASE_DEFAULT
|
528 |
-
* NOT NULL
|
529 |
-
* parent_id (The parent Object ID this record is associated with)
|
530 |
-
* int(11)
|
531 |
-
* NOT_NULL
|
532 |
-
* Foreign Key ON *nf3_objects* id
|
533 |
-
* parent_type (The type of Object represented by parent_id)
|
534 |
-
* longtext
|
535 |
-
* COLLATE DATABASE_DEFAULT
|
536 |
-
* NOT NULL
|
537 |
-
* created_at (The date/time the Relationship was created)
|
538 |
-
* timestamp
|
539 |
-
* NOT NULL
|
540 |
-
* DEFAULT CURRENT_TIMESTAMP
|
541 |
-
* ON UPDATE CURRENT_TIMESTAMP
|
542 |
-
* updated_at (The date/time the Relationship was last updated)
|
543 |
-
* datetime
|
544 |
-
|
545 |
-
|
546 |
-
_**options**_ (The default WordPress options table)
|
547 |
-
* option_name = 'nf_form_%' WHERE % = *nf3_forms* id
|
548 |
-
* option_value = Serialized JSON Object (The Ninja Forms Cache)
|
549 |
-
|
550 |
-
### Submissions
|
551 |
-
|
552 |
-
_**posts**_ (The default WordPress posts table)
|
553 |
-
* id (The unique ID of the Post)
|
554 |
-
* bigint(20)
|
555 |
-
* NOT NULL
|
556 |
-
* AUTO_INCREMENT
|
557 |
-
* Primary Key
|
558 |
-
* post_type = 'nf_sub'
|
559 |
-
|
560 |
-
|
561 |
-
_**postmeta**_ (The default WordPress postmeta table)
|
562 |
-
* meta_id (The unique ID of the Metadata)
|
563 |
-
* bigint(20)
|
564 |
-
* NOT NULL
|
565 |
-
* AUTO_INCREMENT
|
566 |
-
* Primary Key
|
567 |
-
* post_id (The Post ID this Metadata is associated with)
|
568 |
-
* bigint(20)
|
569 |
-
* NOT NULL
|
570 |
-
* DEFAULT 0
|
571 |
-
* Foreign Key ON *posts* id
|
572 |
-
* meta_key (The identifiable key by which this record is referenced)
|
573 |
-
* varchar(255)
|
574 |
-
* COLLATE DATABASE_DEFAULT
|
575 |
-
* meta_value (The value of this record)
|
576 |
-
* longtext
|
577 |
-
* COLLATE DATABASE_DEFAULT
|
578 |
-
|
579 |
-
## Version 1.1
|
580 |
-
|
581 |
-
Defined tracker table for data structure updates.
|
582 |
-
|
583 |
-
### Upgrades
|
584 |
-
|
585 |
-
_**nf3_upgrades**_ (Table of Forms as they exist in the current structure and the stage of upgrade currently applied to each Form)
|
586 |
-
* id (The unique ID of the Form)
|
587 |
-
* int(11)
|
588 |
-
* NOT NULL
|
589 |
-
* Primary Key
|
590 |
-
* cache (The Ninja Forms cache as it was retrieved from the *options* table)
|
591 |
-
* longtext
|
592 |
-
* COLLATE utf8mb4_general_ci (fallback to utf8_general_ci)
|
593 |
-
* stage (The current upgrade stage of the Form)
|
594 |
-
* int(11)
|
595 |
-
* NOT NULL
|
596 |
-
* DEFAULT 0
|
597 |
-
|
598 |
-
Defined chunks table for ensuring collate of chunked publish.
|
599 |
-
|
600 |
-
### Chunks
|
601 |
-
|
602 |
-
_**nf3_chunks**_ (Table of Chunks created on publish to be reconstructed into a Ninja Forms cache)
|
603 |
-
* id (The unique ID of the Chunk)
|
604 |
-
* int(11)
|
605 |
-
* NOT NULL
|
606 |
-
* AUTO_INCREMENT
|
607 |
-
* Primary Key
|
608 |
-
* name (The name of the Chunk)
|
609 |
-
* varchar(200)
|
610 |
-
* COLLATE utf8mb4_general_ci (fallback to utf8_general_ci)
|
611 |
-
* value (The value of the Chunk)
|
612 |
-
* longtext
|
613 |
-
* COLLATE utf8mb4_general_ci (fallback to utf8_general_ci)
|
614 |
-
|
615 |
-
Updated forms tables
|
616 |
-
|
617 |
-
### Forms
|
618 |
-
|
619 |
-
_**nf3_forms**_ (Table of individual Forms)
|
620 |
-
ADDED:
|
621 |
-
* form_title (The displayable title of the Form)
|
622 |
-
* longtext
|
623 |
-
* COLLATE utf8mb4_general_ci (fallback to utf8_general_ci)
|
624 |
-
* default_label_pos (The default label position of fields on the Form)
|
625 |
-
* varchar(15)
|
626 |
-
* show_title (Whether or not to show the Form title)
|
627 |
-
* bit(1)
|
628 |
-
* clear_complete (Whether or not to clear the Form after submission)
|
629 |
-
* bit(1)
|
630 |
-
* hide_complete (Whether or not to hide the Form after submission)
|
631 |
-
* bit(1)
|
632 |
-
* logged_in (Whether or not the user must be logged in to view the Form)
|
633 |
-
* bit(1)
|
634 |
-
* seq_num (The number of the next submission to the Form)
|
635 |
-
* int(11)
|
636 |
-
|
637 |
-
_**nf3_form_meta**_ (Table of Settings assoicated with each Form)
|
638 |
-
ADDED:
|
639 |
-
* meta_key (The administrative key of the Setting)
|
640 |
-
* longtext
|
641 |
-
* COLLATE utf8mb4_general_ci (fallback to utf8_general_ci)
|
642 |
-
* meta_value (The value of the Setting)
|
643 |
-
* longtext
|
644 |
-
* COLLATE utf8mb4_general_ci (fallback to utf8_general_ci)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/img/add-ons/mail-chimp.png
CHANGED
File without changes
|
assets/js/min/front-end-deps.js
CHANGED
File without changes
|
deprecated/includes/admin/edit-field/post-meta-values.php
CHANGED
@@ -1,96 +1,96 @@
|
|
1 |
-
<?php if ( ! defined( 'ABSPATH' ) ) exit;
|
2 |
-
/*
|
3 |
-
function ninja_forms_post_meta_value_box( $field_id ){
|
4 |
-
global $wpdb, $ninja_forms_fields;
|
5 |
-
|
6 |
-
$add_field = apply_filters( 'ninja_forms_use_post_fields', false );
|
7 |
-
if ( !$add_field )
|
8 |
-
return false;
|
9 |
-
|
10 |
-
|
11 |
-
$field_row = ninja_forms_get_field_by_id($field_id);
|
12 |
-
$field_type = $field_row['type'];
|
13 |
-
$field_data = $field_row['data'];
|
14 |
-
$reg_field = $ninja_forms_fields[$field_type];
|
15 |
-
$field_process = $reg_field['process_field'];
|
16 |
-
|
17 |
-
$form_row = ninja_forms_get_form_by_field_id( $field_id );
|
18 |
-
if ( isset ( $form_row['data']['create_post'] ) AND $form_row['data']['create_post'] == 1 ) {
|
19 |
-
if( isset( $field_data['post_meta_value'] ) ){
|
20 |
-
$post_meta_value = $field_data['post_meta_value'];
|
21 |
-
}else{
|
22 |
-
$post_meta_value = '';
|
23 |
-
}
|
24 |
-
|
25 |
-
if( $field_process ){
|
26 |
-
$meta_keys = $wpdb->get_results( "SELECT meta_key FROM $wpdb->postmeta", ARRAY_A );
|
27 |
-
$meta_array = array();
|
28 |
-
foreach( $meta_keys as $key ){
|
29 |
-
$first_char = substr( $key['meta_key'], 0, 1 );
|
30 |
-
if( $first_char != '_' ){
|
31 |
-
array_push( $meta_array, $key['meta_key'] );
|
32 |
-
}
|
33 |
-
}
|
34 |
-
$meta_array = array_unique( $meta_array );
|
35 |
-
|
36 |
-
?>
|
37 |
-
<div class=" description description-wide" id="ninja_forms_post_meta_values">
|
38 |
-
<label class="label">
|
39 |
-
<?php _e( 'Attach this value to custom post meta', 'ninja-forms' );?>:
|
40 |
-
</label><br />
|
41 |
-
<?php
|
42 |
-
if( is_array( $meta_array ) AND !empty( $meta_array ) ){
|
43 |
-
$custom = true;
|
44 |
-
if( $post_meta_value != '' ){
|
45 |
-
foreach( $meta_array as $meta ){
|
46 |
-
if( $post_meta_value == $meta ){
|
47 |
-
$custom = false;
|
48 |
-
}
|
49 |
-
}
|
50 |
-
}
|
51 |
-
if( $post_meta_value == '' ){
|
52 |
-
$custom = false;
|
53 |
-
}
|
54 |
-
}
|
55 |
-
?>
|
56 |
-
<select name="" id="ninja_forms_field_<?php echo $field_id;?>_post_meta_value" class="ninja-forms-post-meta-value">
|
57 |
-
<option value="">- None</option>
|
58 |
-
<option value="custom" <?php selected($custom, true);?>>- Custom -></option>
|
59 |
-
<?php
|
60 |
-
if( is_array( $meta_array ) AND !empty( $meta_array ) ){
|
61 |
-
$custom = true;
|
62 |
-
if( $post_meta_value != '' ){
|
63 |
-
foreach( $meta_array as $meta ){
|
64 |
-
if( $post_meta_value == $meta ){
|
65 |
-
$custom = false;
|
66 |
-
}
|
67 |
-
}
|
68 |
-
}
|
69 |
-
if( $post_meta_value == '' ){
|
70 |
-
$custom = false;
|
71 |
-
}
|
72 |
-
|
73 |
-
foreach( $meta_array as $meta ){
|
74 |
-
?>
|
75 |
-
<option value="<?php echo $meta;?>" <?php selected( $post_meta_value, $meta );?>><?php echo $meta;?></option>
|
76 |
-
<?php
|
77 |
-
}
|
78 |
-
}
|
79 |
-
?>
|
80 |
-
</select>
|
81 |
-
<?php
|
82 |
-
if( $custom ){
|
83 |
-
$display_input = '';
|
84 |
-
}else{
|
85 |
-
$display_input = 'display:none;';
|
86 |
-
}
|
87 |
-
?>
|
88 |
-
<input type="text" name="ninja_forms_field_<?php echo $field_id;?>[post_meta_value]" id="ninja_forms_field_<?php echo $field_id;?>_custom_post_meta_value" value="<?php echo $post_meta_value;?>" style="<?php echo $display_input;?> width:350px">
|
89 |
-
</div>
|
90 |
-
<?php
|
91 |
-
}
|
92 |
-
}
|
93 |
-
}
|
94 |
-
|
95 |
-
add_action( 'ninja_forms_edit_field_after_registered', 'ninja_forms_post_meta_value_box' );
|
96 |
*/
|
1 |
+
<?php if ( ! defined( 'ABSPATH' ) ) exit;
|
2 |
+
/*
|
3 |
+
function ninja_forms_post_meta_value_box( $field_id ){
|
4 |
+
global $wpdb, $ninja_forms_fields;
|
5 |
+
|
6 |
+
$add_field = apply_filters( 'ninja_forms_use_post_fields', false );
|
7 |
+
if ( !$add_field )
|
8 |
+
return false;
|
9 |
+
|
10 |
+
|
11 |
+
$field_row = ninja_forms_get_field_by_id($field_id);
|
12 |
+
$field_type = $field_row['type'];
|
13 |
+
$field_data = $field_row['data'];
|
14 |
+
$reg_field = $ninja_forms_fields[$field_type];
|
15 |
+
$field_process = $reg_field['process_field'];
|
16 |
+
|
17 |
+
$form_row = ninja_forms_get_form_by_field_id( $field_id );
|
18 |
+
if ( isset ( $form_row['data']['create_post'] ) AND $form_row['data']['create_post'] == 1 ) {
|
19 |
+
if( isset( $field_data['post_meta_value'] ) ){
|
20 |
+
$post_meta_value = $field_data['post_meta_value'];
|
21 |
+
}else{
|
22 |
+
$post_meta_value = '';
|
23 |
+
}
|
24 |
+
|
25 |
+
if( $field_process ){
|
26 |
+
$meta_keys = $wpdb->get_results( "SELECT meta_key FROM $wpdb->postmeta", ARRAY_A );
|
27 |
+
$meta_array = array();
|
28 |
+
foreach( $meta_keys as $key ){
|
29 |
+
$first_char = substr( $key['meta_key'], 0, 1 );
|
30 |
+
if( $first_char != '_' ){
|
31 |
+
array_push( $meta_array, $key['meta_key'] );
|
32 |
+
}
|
33 |
+
}
|
34 |
+
$meta_array = array_unique( $meta_array );
|
35 |
+
|
36 |
+
?>
|
37 |
+
<div class=" description description-wide" id="ninja_forms_post_meta_values">
|
38 |
+
<label class="label">
|
39 |
+
<?php _e( 'Attach this value to custom post meta', 'ninja-forms' );?>:
|
40 |
+
</label><br />
|
41 |
+
<?php
|
42 |
+
if( is_array( $meta_array ) AND !empty( $meta_array ) ){
|
43 |
+
$custom = true;
|
44 |
+
if( $post_meta_value != '' ){
|
45 |
+
foreach( $meta_array as $meta ){
|
46 |
+
if( $post_meta_value == $meta ){
|
47 |
+
$custom = false;
|
48 |
+
}
|
49 |
+
}
|
50 |
+
}
|
51 |
+
if( $post_meta_value == '' ){
|
52 |
+
$custom = false;
|
53 |
+
}
|
54 |
+
}
|
55 |
+
?>
|
56 |
+
<select name="" id="ninja_forms_field_<?php echo $field_id;?>_post_meta_value" class="ninja-forms-post-meta-value">
|
57 |
+
<option value="">- None</option>
|
58 |
+
<option value="custom" <?php selected($custom, true);?>>- Custom -></option>
|
59 |
+
<?php
|
60 |
+
if( is_array( $meta_array ) AND !empty( $meta_array ) ){
|
61 |
+
$custom = true;
|
62 |
+
if( $post_meta_value != '' ){
|
63 |
+
foreach( $meta_array as $meta ){
|
64 |
+
if( $post_meta_value == $meta ){
|
65 |
+
$custom = false;
|
66 |
+
}
|
67 |
+
}
|
68 |
+
}
|
69 |
+
if( $post_meta_value == '' ){
|
70 |
+
$custom = false;
|
71 |
+
}
|
72 |
+
|
73 |
+
foreach( $meta_array as $meta ){
|
74 |
+
?>
|
75 |
+
<option value="<?php echo $meta;?>" <?php selected( $post_meta_value, $meta );?>><?php echo $meta;?></option>
|
76 |
+
<?php
|
77 |
+
}
|
78 |
+
}
|
79 |
+
?>
|
80 |
+
</select>
|
81 |
+
<?php
|
82 |
+
if( $custom ){
|
83 |
+
$display_input = '';
|
84 |
+
}else{
|
85 |
+
$display_input = 'display:none;';
|
86 |
+
}
|
87 |
+
?>
|
88 |
+
<input type="text" name="ninja_forms_field_<?php echo $field_id;?>[post_meta_value]" id="ninja_forms_field_<?php echo $field_id;?>_custom_post_meta_value" value="<?php echo $post_meta_value;?>" style="<?php echo $display_input;?> width:350px">
|
89 |
+
</div>
|
90 |
+
<?php
|
91 |
+
}
|
92 |
+
}
|
93 |
+
}
|
94 |
+
|
95 |
+
add_action( 'ninja_forms_edit_field_after_registered', 'ninja_forms_post_meta_value_box' );
|
96 |
*/
|
deprecated/includes/admin/pages/ninja-forms/tabs/field-settings/sidebars/post-fields.php
CHANGED
@@ -1,48 +1,48 @@
|
|
1 |
-
<?php if ( ! defined( 'ABSPATH' ) ) exit;
|
2 |
-
|
3 |
-
// For backwards compatibilty, make sure that this function doesn't already exist.
|
4 |
-
if ( !function_exists ( 'ninja_forms_register_field_post_tags' ) ) {
|
5 |
-
function ninja_forms_register_sidebar_post_fields(){
|
6 |
-
$add_field = apply_filters( 'ninja_forms_use_post_fields', false );
|
7 |
-
if ( !$add_field )
|
8 |
-
return false;
|
9 |
-
|
10 |
-
if(isset($_REQUEST['form_id'])){
|
11 |
-
$form_id = absint( $_REQUEST['form_id'] );
|
12 |
-
}else{
|
13 |
-
$form_id = '';
|
14 |
-
}
|
15 |
-
if( function_exists( 'ninja_forms_get_current_tab' ) ){
|
16 |
-
$current_tab = ninja_forms_get_current_tab();
|
17 |
-
}
|
18 |
-
if($form_id != '' AND $current_tab == 'fields'){
|
19 |
-
$form_row = ninja_forms_get_form_by_id($form_id);
|
20 |
-
if(is_array($form_row) AND !empty($form_row)){
|
21 |
-
$form_data = $form_row['data'];
|
22 |
-
if( isset( $form_data['create_post'] ) ){
|
23 |
-
$create_post = $form_data['create_post'];
|
24 |
-
}else{
|
25 |
-
$create_post = '';
|
26 |
-
}
|
27 |
-
|
28 |
-
}else{
|
29 |
-
$create_post = '';
|
30 |
-
}
|
31 |
-
}else{
|
32 |
-
$create_post = '';
|
33 |
-
}
|
34 |
-
$args = array(
|
35 |
-
'name' => 'Post Creation Fields',
|
36 |
-
'page' => 'ninja-forms',
|
37 |
-
'tab' => 'builder',
|
38 |
-
'display_function' => 'ninja_forms_sidebar_display_fields'
|
39 |
-
);
|
40 |
-
if($create_post == 1){
|
41 |
-
if( function_exists( 'ninja_forms_register_sidebar' ) ){
|
42 |
-
ninja_forms_register_sidebar('post_fields', $args);
|
43 |
-
}
|
44 |
-
}
|
45 |
-
}
|
46 |
-
|
47 |
-
add_action( 'admin_init', 'ninja_forms_register_sidebar_post_fields' );
|
48 |
}
|
1 |
+
<?php if ( ! defined( 'ABSPATH' ) ) exit;
|
2 |
+
|
3 |
+
// For backwards compatibilty, make sure that this function doesn't already exist.
|
4 |
+
if ( !function_exists ( 'ninja_forms_register_field_post_tags' ) ) {
|
5 |
+
function ninja_forms_register_sidebar_post_fields(){
|
6 |
+
$add_field = apply_filters( 'ninja_forms_use_post_fields', false );
|
7 |
+
if ( !$add_field )
|
8 |
+
return false;
|
9 |
+
|
10 |
+
if(isset($_REQUEST['form_id'])){
|
11 |
+
$form_id = absint( $_REQUEST['form_id'] );
|
12 |
+
}else{
|
13 |
+
$form_id = '';
|
14 |
+
}
|
15 |
+
if( function_exists( 'ninja_forms_get_current_tab' ) ){
|
16 |
+
$current_tab = ninja_forms_get_current_tab();
|
17 |
+
}
|
18 |
+
if($form_id != '' AND $current_tab == 'fields'){
|
19 |
+
$form_row = ninja_forms_get_form_by_id($form_id);
|
20 |
+
if(is_array($form_row) AND !empty($form_row)){
|
21 |
+
$form_data = $form_row['data'];
|
22 |
+
if( isset( $form_data['create_post'] ) ){
|
23 |
+
$create_post = $form_data['create_post'];
|
24 |
+
}else{
|
25 |
+
$create_post = '';
|
26 |
+
}
|
27 |
+
|
28 |
+
}else{
|
29 |
+
$create_post = '';
|
30 |
+
}
|
31 |
+
}else{
|
32 |
+
$create_post = '';
|
33 |
+
}
|
34 |
+
$args = array(
|
35 |
+
'name' => 'Post Creation Fields',
|
36 |
+
'page' => 'ninja-forms',
|
37 |
+
'tab' => 'builder',
|
38 |
+
'display_function' => 'ninja_forms_sidebar_display_fields'
|
39 |
+
);
|
40 |
+
if($create_post == 1){
|
41 |
+
if( function_exists( 'ninja_forms_register_sidebar' ) ){
|
42 |
+
ninja_forms_register_sidebar('post_fields', $args);
|
43 |
+
}
|
44 |
+
}
|
45 |
+
}
|
46 |
+
|
47 |
+
add_action( 'admin_init', 'ninja_forms_register_sidebar_post_fields' );
|
48 |
}
|
deprecated/js/dev/jquery.rating.js
CHANGED
@@ -1,376 +1,376 @@
|
|
1 |
-
/*
|
2 |
-
### jQuery Star Rating Plugin v4.11 - 2013-03-14 ###
|
3 |
-
* Home: http://www.fyneworks.com/jquery/star-rating/
|
4 |
-
* Code: http://code.google.com/p/jquery-star-rating-plugin/
|
5 |
-
*
|
6 |
-
* Licensed under http://en.wikipedia.org/wiki/MIT_License
|
7 |
-
###
|
8 |
-
*/
|
9 |
-
|
10 |
-
/*# AVOID COLLISIONS #*/
|
11 |
-
;if(window.jQuery) (function($){
|
12 |
-
/*# AVOID COLLISIONS #*/
|
13 |
-
|
14 |
-
// IE6 Background Image Fix
|
15 |
-
if ((!$.support.opacity && !$.support.style)) try { document.execCommand("BackgroundImageCache", false, true)} catch(e) { };
|
16 |
-
// Thanks to http://www.visualjquery.com/rating/rating_redux.html
|
17 |
-
|
18 |
-
// plugin initialization
|
19 |
-
$.fn.rating = function(options){
|
20 |
-
if(this.length==0) return this; // quick fail
|
21 |
-
|
22 |
-
// Handle API methods
|
23 |
-
if(typeof arguments[0]=='string'){
|
24 |
-
// Perform API methods on individual elements
|
25 |
-
if(this.length>1){
|
26 |
-
var args = arguments;
|
27 |
-
return this.each(function(){
|
28 |
-
$.fn.rating.apply($(this), args);
|
29 |
-
});
|
30 |
-
};
|
31 |
-
// Invoke API method handler
|
32 |
-
$.fn.rating[arguments[0]].apply(this, $.makeArray(arguments).slice(1) || []);
|
33 |
-
// Quick exit...
|
34 |
-
return this;
|
35 |
-
};
|
36 |
-
|
37 |
-
// Initialize options for this call
|
38 |
-
var options = $.extend(
|
39 |
-
{}/* new object */,
|
40 |
-
$.fn.rating.options/* default options */,
|
41 |
-
options || {} /* just-in-time options */
|
42 |
-
);
|
43 |
-
|
44 |
-
// Allow multiple controls with the same name by making each call unique
|
45 |
-
$.fn.rating.calls++;
|
46 |
-
|
47 |
-
// loop through each matched element
|
48 |
-
this
|
49 |
-
.not('.ninja-forms-star-rating-applied')
|
50 |
-
.addClass('ninja-forms-star-rating-applied')
|
51 |
-
.each(function(){
|
52 |
-
|
53 |
-
// Load control parameters / find context / etc
|
54 |
-
var control, input = $(this);
|
55 |
-
var eid = (this.name || 'unnamed-rating').replace(/\[|\]/g, '_').replace(/^\_+|\_+$/g,'');
|
56 |
-
var context = $(this.form || document.body);
|
57 |
-
|
58 |
-
// FIX: http://code.google.com/p/jquery-star-rating-plugin/issues/detail?id=23
|
59 |
-
var raters = context.data('rating');
|
60 |
-
if(!raters || raters.call!=$.fn.rating.calls) raters = { count:0, call:$.fn.rating.calls };
|
61 |
-
var rater = raters[eid] || context.data('rating'+eid);
|
62 |
-
|
63 |
-
// if rater is available, verify that the control still exists
|
64 |
-
if(rater) control = rater.data('rating');
|
65 |
-
|
66 |
-
if(rater && control)//{// save a byte!
|
67 |
-
// add star to control if rater is available and the same control still exists
|
68 |
-
control.count++;
|
69 |
-
|
70 |
-
//}// save a byte!
|
71 |
-
else{
|
72 |
-
// create new control if first star or control element was removed/replaced
|
73 |
-
|
74 |
-
// Initialize options for this rater
|
75 |
-
control = $.extend(
|
76 |
-
{}/* new object */,
|
77 |
-
options || {} /* current call options */,
|
78 |
-
($.metadata? input.metadata(): ($.meta?input.data():null)) || {}, /* metadata options */
|
79 |
-
{ count:0, stars: [], inputs: [] }
|
80 |
-
);
|
81 |
-
|
82 |
-
// increment number of rating controls
|
83 |
-
control.serial = raters.count++;
|
84 |
-
|
85 |
-
// create rating element
|
86 |
-
rater = $('<span class="ninja-forms-star-rating-control"/>');
|
87 |
-
input.before(rater);
|
88 |
-
|
89 |
-
// Mark element for initialization (once all stars are ready)
|
90 |
-
rater.addClass('rating-to-be-drawn');
|
91 |
-
|
92 |
-
// Accept readOnly setting from 'disabled' property
|
93 |
-
if(input.attr('disabled') || input.hasClass('disabled')) control.readOnly = true;
|
94 |
-
|
95 |
-
// Accept required setting from class property (class='required')
|
96 |
-
if(input.hasClass('required')) control.required = true;
|
97 |
-
|
98 |
-
// Create 'cancel' button
|
99 |
-
rater.append(
|
100 |
-
control.cancel = $('<div class="rating-cancel"><a title="' + control.cancel + '">' + control.cancelValue + '</a></div>')
|
101 |
-
.on('mouseover',function(){
|
102 |
-
$(this).rating('drain');
|
103 |
-
$(this).addClass('ninja-forms-star-rating-hover');
|
104 |
-
//$(this).rating('focus');
|
105 |
-
})
|
106 |
-
.on('mouseout',function(){
|
107 |
-
$(this).rating('draw');
|
108 |
-
$(this).removeClass('ninja-forms-star-rating-hover');
|
109 |
-
//$(this).rating('blur');
|
110 |
-
})
|
111 |
-
.on('click',function(){
|
112 |
-
$(this).rating('select');
|
113 |
-
})
|
114 |
-
.data('rating', control)
|
115 |
-
);
|
116 |
-
|
117 |
-
}; // first element of group
|
118 |
-
|
119 |
-
// insert rating star (thanks Jan Fanslau rev125 for blind support https://code.google.com/p/jquery-star-rating-plugin/issues/detail?id=125)
|
120 |
-
var star = $('<div role="text" aria-label="'+ this.title +'" class="ninja-forms-star-rating rater-'+ control.serial +'"><a title="' + (this.title || this.value) + '">' + this.value + '</a></div>');
|
121 |
-
rater.append(star);
|
122 |
-
|
123 |
-
// inherit attributes from input element
|
124 |
-
if(this.id) star.attr('id', this.id);
|
125 |
-
if(this.className) star.addClass(this.className);
|
126 |
-
|
127 |
-
// Half-stars?
|
128 |
-
if(control.half) control.split = 2;
|
129 |
-
|
130 |
-
// Prepare division control
|
131 |
-
if(typeof control.split=='number' && control.split>0){
|
132 |
-
var stw = ($.fn.width ? star.width() : 0) || control.starWidth;
|
133 |
-
var spi = (control.count % control.split), spw = Math.floor(stw/control.split);
|
134 |
-
star
|
135 |
-
// restrict star's width and hide overflow (already in CSS)
|
136 |
-
.width(spw)
|
137 |
-
// move the star left by using a negative margin
|
138 |
-
// this is work-around to IE's stupid box model (position:relative doesn't work)
|
139 |
-
.find('a').css({ 'margin-left':'-'+ (spi*spw) +'px' })
|
140 |
-
};
|
141 |
-
|
142 |
-
// readOnly?
|
143 |
-
if(control.readOnly)//{ //save a byte!
|
144 |
-
// Mark star as readOnly so user can customize display
|
145 |
-
star.addClass('ninja-forms-star-rating-readonly');
|
146 |
-
//} //save a byte!
|
147 |
-
else//{ //save a byte!
|
148 |
-
// Enable hover css effects
|
149 |
-
star.addClass('ninja-forms-star-rating-live')
|
150 |
-
// Attach mouse events
|
151 |
-
.on('mouseover',function(){
|
152 |
-
$(this).rating('fill');
|
153 |
-
$(this).rating('focus');
|
154 |
-
})
|
155 |
-
.on('mouseout',function(){
|
156 |
-
$(this).rating('draw');
|
157 |
-
$(this).rating('blur');
|
158 |
-
})
|
159 |
-
.on('click',function(){
|
160 |
-
$(this).rating('select');
|
161 |
-
})
|
162 |
-
;
|
163 |
-
//}; //save a byte!
|
164 |
-
|
165 |
-
// set current selection
|
166 |
-
if(this.checked) control.current = star;
|
167 |
-
|
168 |
-
// set current select for links
|
169 |
-
if(this.nodeName=="A"){
|
170 |
-
if($(this).hasClass('selected'))
|
171 |
-
control.current = star;
|
172 |
-
};
|
173 |
-
|
174 |
-
// hide input element
|
175 |
-
input.hide();
|
176 |
-
|
177 |
-
// backward compatibility, form element to plugin
|
178 |
-
input.on('change.rating',function(event){
|
179 |
-
if(event.selfTriggered) return false;
|
180 |
-
$(this).rating('select');
|
181 |
-
});
|
182 |
-
|
183 |
-
// attach reference to star to input element and vice-versa
|
184 |
-
star.data('rating.input', input.data('rating.star', star));
|
185 |
-
|
186 |
-
// store control information in form (or body when form not available)
|
187 |
-
control.stars[control.stars.length] = star[0];
|
188 |
-
control.inputs[control.inputs.length] = input[0];
|
189 |
-
control.rater = raters[eid] = rater;
|
190 |
-
control.context = context;
|
191 |
-
|
192 |
-
input.data('rating', control);
|
193 |
-
rater.data('rating', control);
|
194 |
-
star.data('rating', control);
|
195 |
-
context.data('rating', raters);
|
196 |
-
context.data('rating'+eid, rater); // required for ajax forms
|
197 |
-
}); // each element
|
198 |
-
|
199 |
-
// Initialize ratings (first draw)
|
200 |
-
$('.rating-to-be-drawn').rating('draw').removeClass('rating-to-be-drawn');
|
201 |
-
|
202 |
-
return this; // don't break the chain...
|
203 |
-
};
|
204 |
-
|
205 |
-
/*--------------------------------------------------------*/
|
206 |
-
|
207 |
-
/*
|
208 |
-
### Core functionality and API ###
|
209 |
-
*/
|
210 |
-
$.extend($.fn.rating, {
|
211 |
-
// Used to append a unique serial number to internal control ID
|
212 |
-
// each time the plugin is invoked so same name controls can co-exist
|
213 |
-
calls: 0,
|
214 |
-
|
215 |
-
focus: function(){
|
216 |
-
var control = this.data('rating'); if(!control) return this;
|
217 |
-
if(!control.focus) return this; // quick fail if not required
|
218 |
-
// find data for event
|
219 |
-
var input = $(this).data('rating.input') || $( this.tagName=='INPUT' ? this : null );
|
220 |
-
// focus handler, as requested by focusdigital.co.uk
|
221 |
-
if(control.focus) control.focus.apply(input[0], [input.val(), $('a', input.data('rating.star'))[0]]);
|
222 |
-
}, // $.fn.rating.focus
|
223 |
-
|
224 |
-
blur: function(){
|
225 |
-
var control = this.data('rating'); if(!control) return this;
|
226 |
-
if(!control.blur) return this; // quick fail if not required
|
227 |
-
// find data for event
|
228 |
-
var input = $(this).data('rating.input') || $( this.tagName=='INPUT' ? this : null );
|
229 |
-
// blur handler, as requested by focusdigital.co.uk
|
230 |
-
if(control.blur) control.blur.apply(input[0], [input.val(), $('a', input.data('rating.star'))[0]]);
|
231 |
-
}, // $.fn.rating.blur
|
232 |
-
|
233 |
-
fill: function(){ // fill to the current mouse position.
|
234 |
-
var control = this.data('rating'); if(!control) return this;
|
235 |
-
// do not execute when control is in read-only mode
|
236 |
-
if(control.readOnly) return;
|
237 |
-
// Reset all stars and highlight them up to this element
|
238 |
-
this.rating('drain');
|
239 |
-
this.prevAll().addBack().filter('.rater-'+ control.serial).addClass('ninja-forms-star-rating-hover');
|
240 |
-
},// $.fn.rating.fill
|
241 |
-
|
242 |
-
drain: function() { // drain all the stars.
|
243 |
-
var control = this.data('rating'); if(!control) return this;
|
244 |
-
// do not execute when control is in read-only mode
|
245 |
-
if(control.readOnly) return;
|
246 |
-
// Reset all stars
|
247 |
-
control.rater.children().filter('.rater-'+ control.serial).removeClass('ninja-forms-star-rating-on').removeClass('ninja-forms-star-rating-hover');
|
248 |
-
},// $.fn.rating.drain
|
249 |
-
|
250 |
-
draw: function(){ // set value and stars to reflect current selection
|
251 |
-
var control = this.data('rating'); if(!control) return this;
|
252 |
-
// Clear all stars
|
253 |
-
this.rating('drain');
|
254 |
-
// Set control value
|
255 |
-
var current = $( control.current );//? control.current.data('rating.input') : null );
|
256 |
-
var starson = current.length ? current.prevAll().addBack().filter('.rater-'+ control.serial) : null;
|
257 |
-
if(starson) starson.addClass('ninja-forms-star-rating-on');
|
258 |
-
// Show/hide 'cancel' button
|
259 |
-
control.cancel[control.readOnly || control.required?'hide':'show']();
|
260 |
-
// Add/remove read-only classes to remove hand pointer
|
261 |
-
this.siblings()[control.readOnly?'addClass':'removeClass']('ninja-forms-star-rating-readonly');
|
262 |
-
},// $.fn.rating.draw
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
select: function(value,wantCallBack){ // select a value
|
269 |
-
var control = this.data('rating'); if(!control) return this;
|
270 |
-
// do not execute when control is in read-only mode
|
271 |
-
if(control.readOnly) return;
|
272 |
-
// clear selection
|
273 |
-
control.current = null;
|
274 |
-
// programmatically (based on user input)
|
275 |
-
if(typeof value!='undefined' || this.length>1){
|
276 |
-
// select by index (0 based)
|
277 |
-
if(typeof value=='number')
|
278 |
-
return $(control.stars[value]).rating('select',undefined,wantCallBack);
|
279 |
-
// select by literal value (must be passed as a string
|
280 |
-
if(typeof value=='string'){
|
281 |
-
//return
|
282 |
-
$.each(control.stars, function(){
|
283 |
-
//console.log($(this).data('rating.input'), $(this).data('rating.input').val(), value, $(this).data('rating.input').val()==value?'BINGO!':'');
|
284 |
-
if($(this).data('rating.input').val()==value) $(this).rating('select',undefined,wantCallBack);
|
285 |
-
});
|
286 |
-
// don't break the chain
|
287 |
-
return this;
|
288 |
-
};
|
289 |
-
}
|
290 |
-
else{
|
291 |
-
control.current = this[0].tagName=='INPUT' ?
|
292 |
-
this.data('rating.star') :
|
293 |
-
(this.is('.rater-'+ control.serial) ? this : null);
|
294 |
-
};
|
295 |
-
// Update rating control state
|
296 |
-
this.data('rating', control);
|
297 |
-
// Update display
|
298 |
-
this.rating('draw');
|
299 |
-
// find current input and its sibblings
|
300 |
-
var current = $( control.current ? control.current.data('rating.input') : null );
|
301 |
-
var lastipt = $( control.inputs ).filter(':checked');
|
302 |
-
var deadipt = $( control.inputs ).not(current);
|
303 |
-
// check and uncheck elements as required
|
304 |
-
deadipt.prop('checked',false);//.removeAttr('checked');
|
305 |
-
current.prop('checked',true);//.attr('checked','checked');
|
306 |
-
// trigger change on current or last selected input
|
307 |
-
$(current.length? current : lastipt ).trigger({ type:'change', selfTriggered:true });
|
308 |
-
// click callback, as requested here: http://plugins.jquery.com/node/1655
|
309 |
-
if((wantCallBack || wantCallBack == undefined) && control.callback) control.callback.apply(current[0], [current.val(), $('a', control.current)[0]]);// callback event
|
310 |
-
// don't break the chain
|
311 |
-
return this;
|
312 |
-
},// $.fn.rating.select
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
readOnly: function(toggle, disable){ // make the control read-only (still submits value)
|
319 |
-
var control = this.data('rating'); if(!control) return this;
|
320 |
-
// setread-only status
|
321 |
-
control.readOnly = toggle || toggle==undefined ? true : false;
|
322 |
-
// enable/disable control value submission
|
323 |
-
if(disable) $(control.inputs).attr("disabled", "disabled");
|
324 |
-
else $(control.inputs).removeAttr("disabled");
|
325 |
-
// Update rating control state
|
326 |
-
this.data('rating', control);
|
327 |
-
// Update display
|
328 |
-
this.rating('draw');
|
329 |
-
},// $.fn.rating.readOnly
|
330 |
-
|
331 |
-
disable: function(){ // make read-only and never submit value
|
332 |
-
this.rating('readOnly', true, true);
|
333 |
-
},// $.fn.rating.disable
|
334 |
-
|
335 |
-
enable: function(){ // make read/write and submit value
|
336 |
-
this.rating('readOnly', false, false);
|
337 |
-
}// $.fn.rating.select
|
338 |
-
|
339 |
-
});
|
340 |
-
|
341 |
-
/*--------------------------------------------------------*/
|
342 |
-
|
343 |
-
/*
|
344 |
-
### Default Settings ###
|
345 |
-
eg.: You can override default control like this:
|
346 |
-
$.fn.rating.options.cancel = 'Clear';
|
347 |
-
*/
|
348 |
-
$.fn.rating.options = { //$.extend($.fn.rating, { options: {
|
349 |
-
cancel: 'Cancel Rating', // advisory title for the 'cancel' link
|
350 |
-
cancelValue: '', // value to submit when user click the 'cancel' link
|
351 |
-
split: 0, // split the star into how many parts?
|
352 |
-
|
353 |
-
// Width of star image in case the plugin can't work it out. This can happen if
|
354 |
-
// the jQuery.dimensions plugin is not available OR the image is hidden at installation
|
355 |
-
starWidth: 16//,
|
356 |
-
|
357 |
-
//NB.: These don't need to be pre-defined (can be undefined/null) so let's save some code!
|
358 |
-
//half: false, // just a shortcut to control.split = 2
|
359 |
-
//required: false, // disables the 'cancel' button so user can only select one of the specified values
|
360 |
-
//readOnly: false, // disable rating plugin interaction/ values cannot be.one('change', //focus: function(){}, // executed when stars are focused
|
361 |
-
//blur: function(){}, // executed when stars are focused
|
362 |
-
//callback: function(){}, // executed when a star is clicked
|
363 |
-
}; //} });
|
364 |
-
|
365 |
-
/*--------------------------------------------------------*/
|
366 |
-
|
367 |
-
|
368 |
-
// auto-initialize plugin
|
369 |
-
$(function(){
|
370 |
-
$('input[type=radio].ninja-forms-star').rating();
|
371 |
-
});
|
372 |
-
|
373 |
-
|
374 |
-
/*# AVOID COLLISIONS #*/
|
375 |
-
})(jQuery);
|
376 |
-
/*# AVOID COLLISIONS #*/
|
1 |
+
/*
|
2 |
+
### jQuery Star Rating Plugin v4.11 - 2013-03-14 ###
|
3 |
+
* Home: http://www.fyneworks.com/jquery/star-rating/
|
4 |
+
* Code: http://code.google.com/p/jquery-star-rating-plugin/
|
5 |
+
*
|
6 |
+
* Licensed under http://en.wikipedia.org/wiki/MIT_License
|
7 |
+
###
|
8 |
+
*/
|
9 |
+
|
10 |
+
/*# AVOID COLLISIONS #*/
|
11 |
+
;if(window.jQuery) (function($){
|
12 |
+
/*# AVOID COLLISIONS #*/
|
13 |
+
|
14 |
+
// IE6 Background Image Fix
|
15 |
+
if ((!$.support.opacity && !$.support.style)) try { document.execCommand("BackgroundImageCache", false, true)} catch(e) { };
|
16 |
+
// Thanks to http://www.visualjquery.com/rating/rating_redux.html
|
17 |
+
|
18 |
+
// plugin initialization
|
19 |
+
$.fn.rating = function(options){
|
20 |
+
if(this.length==0) return this; // quick fail
|
21 |
+
|
22 |
+
// Handle API methods
|
23 |
+
if(typeof arguments[0]=='string'){
|
24 |
+
// Perform API methods on individual elements
|
25 |
+
if(this.length>1){
|
26 |
+
var args = arguments;
|
27 |
+
return this.each(function(){
|
28 |
+
$.fn.rating.apply($(this), args);
|
29 |
+
});
|
30 |
+
};
|
31 |
+
// Invoke API method handler
|
32 |
+
$.fn.rating[arguments[0]].apply(this, $.makeArray(arguments).slice(1) || []);
|
33 |
+
// Quick exit...
|
34 |
+
return this;
|
35 |
+
};
|
36 |
+
|
37 |
+
// Initialize options for this call
|
38 |
+
var options = $.extend(
|
39 |
+
{}/* new object */,
|
40 |
+
$.fn.rating.options/* default options */,
|
41 |
+
options || {} /* just-in-time options */
|
42 |
+
);
|
43 |
+
|
44 |
+
// Allow multiple controls with the same name by making each call unique
|
45 |
+
$.fn.rating.calls++;
|
46 |
+
|
47 |
+
// loop through each matched element
|
48 |
+
this
|
49 |
+
.not('.ninja-forms-star-rating-applied')
|
50 |
+
.addClass('ninja-forms-star-rating-applied')
|
51 |
+
.each(function(){
|
52 |
+
|
53 |
+
// Load control parameters / find context / etc
|
54 |
+
var control, input = $(this);
|
55 |
+
var eid = (this.name || 'unnamed-rating').replace(/\[|\]/g, '_').replace(/^\_+|\_+$/g,'');
|
56 |
+
var context = $(this.form || document.body);
|
57 |
+
|
58 |
+
// FIX: http://code.google.com/p/jquery-star-rating-plugin/issues/detail?id=23
|
59 |
+
var raters = context.data('rating');
|
60 |
+
if(!raters || raters.call!=$.fn.rating.calls) raters = { count:0, call:$.fn.rating.calls };
|
61 |
+
var rater = raters[eid] || context.data('rating'+eid);
|
62 |
+
|
63 |
+
// if rater is available, verify that the control still exists
|
64 |
+
if(rater) control = rater.data('rating');
|
65 |
+
|
66 |
+
if(rater && control)//{// save a byte!
|
67 |
+
// add star to control if rater is available and the same control still exists
|
68 |
+
control.count++;
|
69 |
+
|
70 |
+
//}// save a byte!
|
71 |
+
else{
|
72 |
+
// create new control if first star or control element was removed/replaced
|
73 |
+
|
74 |
+
// Initialize options for this rater
|
75 |
+
control = $.extend(
|
76 |
+
{}/* new object */,
|
77 |
+
options || {} /* current call options */,
|
78 |
+
($.metadata? input.metadata(): ($.meta?input.data():null)) || {}, /* metadata options */
|
79 |
+
{ count:0, stars: [], inputs: [] }
|
80 |
+
);
|
81 |
+
|
82 |
+
// increment number of rating controls
|
83 |
+
control.serial = raters.count++;
|
84 |
+
|
85 |
+
// create rating element
|
86 |
+
rater = $('<span class="ninja-forms-star-rating-control"/>');
|
87 |
+
input.before(rater);
|
88 |
+
|
89 |
+
// Mark element for initialization (once all stars are ready)
|
90 |
+
rater.addClass('rating-to-be-drawn');
|
91 |
+
|
92 |
+
// Accept readOnly setting from 'disabled' property
|
93 |
+
if(input.attr('disabled') || input.hasClass('disabled')) control.readOnly = true;
|
94 |
+
|
95 |
+
// Accept required setting from class property (class='required')
|
96 |
+
if(input.hasClass('required')) control.required = true;
|
97 |
+
|
98 |
+
// Create 'cancel' button
|
99 |
+
rater.append(
|
100 |
+
control.cancel = $('<div class="rating-cancel"><a title="' + control.cancel + '">' + control.cancelValue + '</a></div>')
|
101 |
+
.on('mouseover',function(){
|
102 |
+
$(this).rating('drain');
|
103 |
+
$(this).addClass('ninja-forms-star-rating-hover');
|
104 |
+
//$(this).rating('focus');
|
105 |
+
})
|
106 |
+
.on('mouseout',function(){
|
107 |
+
$(this).rating('draw');
|
108 |
+
$(this).removeClass('ninja-forms-star-rating-hover');
|
109 |
+
//$(this).rating('blur');
|
110 |
+
})
|
111 |
+
.on('click',function(){
|
112 |
+
$(this).rating('select');
|
113 |
+
})
|
114 |
+
.data('rating', control)
|
115 |
+
);
|
116 |
+
|
117 |
+
}; // first element of group
|
118 |
+
|
119 |
+
// insert rating star (thanks Jan Fanslau rev125 for blind support https://code.google.com/p/jquery-star-rating-plugin/issues/detail?id=125)
|
120 |
+
var star = $('<div role="text" aria-label="'+ this.title +'" class="ninja-forms-star-rating rater-'+ control.serial +'"><a title="' + (this.title || this.value) + '">' + this.value + '</a></div>');
|
121 |
+
rater.append(star);
|
122 |
+
|
123 |
+
// inherit attributes from input element
|
124 |
+
if(this.id) star.attr('id', this.id);
|
125 |
+
if(this.className) star.addClass(this.className);
|
126 |
+
|
127 |
+
// Half-stars?
|
128 |
+
if(control.half) control.split = 2;
|
129 |
+
|
130 |
+
// Prepare division control
|
131 |
+
if(typeof control.split=='number' && control.split>0){
|
132 |
+
var stw = ($.fn.width ? star.width() : 0) || control.starWidth;
|
133 |
+
var spi = (control.count % control.split), spw = Math.floor(stw/control.split);
|
134 |
+
star
|
135 |
+
// restrict star's width and hide overflow (already in CSS)
|
136 |
+
.width(spw)
|
137 |
+
// move the star left by using a negative margin
|
138 |
+
// this is work-around to IE's stupid box model (position:relative doesn't work)
|
139 |
+
.find('a').css({ 'margin-left':'-'+ (spi*spw) +'px' })
|
140 |
+
};
|
141 |
+
|
142 |
+
// readOnly?
|
143 |
+
if(control.readOnly)//{ //save a byte!
|
144 |
+
// Mark star as readOnly so user can customize display
|
145 |
+
star.addClass('ninja-forms-star-rating-readonly');
|
146 |
+
//} //save a byte!
|
147 |
+
else//{ //save a byte!
|
148 |
+
// Enable hover css effects
|
149 |
+
star.addClass('ninja-forms-star-rating-live')
|
150 |
+
// Attach mouse events
|
151 |
+
.on('mouseover',function(){
|
152 |
+
$(this).rating('fill');
|
153 |
+
$(this).rating('focus');
|
154 |
+
})
|
155 |
+
.on('mouseout',function(){
|
156 |
+
$(this).rating('draw');
|
157 |
+
$(this).rating('blur');
|
158 |
+
})
|
159 |
+
.on('click',function(){
|
160 |
+
$(this).rating('select');
|
161 |
+
})
|
162 |
+
;
|
163 |
+
//}; //save a byte!
|
164 |
+
|
165 |
+
// set current selection
|
166 |
+
if(this.checked) control.current = star;
|
167 |
+
|
168 |
+
// set current select for links
|
169 |
+
if(this.nodeName=="A"){
|
170 |
+
if($(this).hasClass('selected'))
|
171 |
+
control.current = star;
|
172 |
+
};
|
173 |
+
|
174 |
+
// hide input element
|
175 |
+
input.hide();
|
176 |
+
|
177 |
+
// backward compatibility, form element to plugin
|
178 |
+
input.on('change.rating',function(event){
|
179 |
+
if(event.selfTriggered) return false;
|
180 |
+
$(this).rating('select');
|
181 |
+
});
|
182 |
+
|
183 |
+
// attach reference to star to input element and vice-versa
|
184 |
+
star.data('rating.input', input.data('rating.star', star));
|
185 |
+
|
186 |
+
// store control information in form (or body when form not available)
|
187 |
+
control.stars[control.stars.length] = star[0];
|
188 |
+
control.inputs[control.inputs.length] = input[0];
|
189 |
+
control.rater = raters[eid] = rater;
|
190 |
+
control.context = context;
|
191 |
+
|
192 |
+
input.data('rating', control);
|
193 |
+
rater.data('rating', control);
|
194 |
+
star.data('rating', control);
|
195 |
+
context.data('rating', raters);
|
196 |
+
context.data('rating'+eid, rater); // required for ajax forms
|
197 |
+
}); // each element
|
198 |
+
|
199 |
+
// Initialize ratings (first draw)
|
200 |
+
$('.rating-to-be-drawn').rating('draw').removeClass('rating-to-be-drawn');
|
201 |
+
|
202 |
+
return this; // don't break the chain...
|
203 |
+
};
|
204 |
+
|
205 |
+
/*--------------------------------------------------------*/
|
206 |
+
|
207 |
+
/*
|
208 |
+
### Core functionality and API ###
|
209 |
+
*/
|
210 |
+
$.extend($.fn.rating, {
|
211 |
+
// Used to append a unique serial number to internal control ID
|
212 |
+
// each time the plugin is invoked so same name controls can co-exist
|
213 |
+
calls: 0,
|
214 |
+
|
215 |
+
focus: function(){
|
216 |
+
var control = this.data('rating'); if(!control) return this;
|
217 |
+
if(!control.focus) return this; // quick fail if not required
|
218 |
+
// find data for event
|
219 |
+
var input = $(this).data('rating.input') || $( this.tagName=='INPUT' ? this : null );
|
220 |
+
// focus handler, as requested by focusdigital.co.uk
|
221 |
+
if(control.focus) control.focus.apply(input[0], [input.val(), $('a', input.data('rating.star'))[0]]);
|
222 |
+
}, // $.fn.rating.focus
|
223 |
+
|
224 |
+
blur: function(){
|
225 |
+
var control = this.data('rating'); if(!control) return this;
|
226 |
+
if(!control.blur) return this; // quick fail if not required
|
227 |
+
// find data for event
|
228 |
+
var input = $(this).data('rating.input') || $( this.tagName=='INPUT' ? this : null );
|
229 |
+
// blur handler, as requested by focusdigital.co.uk
|
230 |
+
if(control.blur) control.blur.apply(input[0], [input.val(), $('a', input.data('rating.star'))[0]]);
|
231 |
+
}, // $.fn.rating.blur
|
232 |
+
|
233 |
+
fill: function(){ // fill to the current mouse position.
|
234 |
+
var control = this.data('rating'); if(!control) return this;
|
235 |
+
// do not execute when control is in read-only mode
|
236 |
+
if(control.readOnly) return;
|
237 |
+
// Reset all stars and highlight them up to this element
|
238 |
+
this.rating('drain');
|
239 |
+
this.prevAll().addBack().filter('.rater-'+ control.serial).addClass('ninja-forms-star-rating-hover');
|
240 |
+
},// $.fn.rating.fill
|
241 |
+
|
242 |
+
drain: function() { // drain all the stars.
|
243 |
+
var control = this.data('rating'); if(!control) return this;
|
244 |
+
// do not execute when control is in read-only mode
|
245 |
+
if(control.readOnly) return;
|
246 |
+
// Reset all stars
|
247 |
+
control.rater.children().filter('.rater-'+ control.serial).removeClass('ninja-forms-star-rating-on').removeClass('ninja-forms-star-rating-hover');
|
248 |
+
},// $.fn.rating.drain
|
249 |
+
|
250 |
+
draw: function(){ // set value and stars to reflect current selection
|
251 |
+
var control = this.data('rating'); if(!control) return this;
|
252 |
+
// Clear all stars
|
253 |
+
this.rating('drain');
|
254 |
+
// Set control value
|
255 |
+
var current = $( control.current );//? control.current.data('rating.input') : null );
|
256 |
+
var starson = current.length ? current.prevAll().addBack().filter('.rater-'+ control.serial) : null;
|
257 |
+
if(starson) starson.addClass('ninja-forms-star-rating-on');
|
258 |
+
// Show/hide 'cancel' button
|
259 |
+
control.cancel[control.readOnly || control.required?'hide':'show']();
|
260 |
+
// Add/remove read-only classes to remove hand pointer
|
261 |
+
this.siblings()[control.readOnly?'addClass':'removeClass']('ninja-forms-star-rating-readonly');
|
262 |
+
},// $.fn.rating.draw
|
263 |
+
|
264 |
+
|
265 |
+
|
266 |
+
|
267 |
+
|
268 |
+
select: function(value,wantCallBack){ // select a value
|
269 |
+
var control = this.data('rating'); if(!control) return this;
|
270 |
+
// do not execute when control is in read-only mode
|
271 |
+
if(control.readOnly) return;
|
272 |
+
// clear selection
|
273 |
+
control.current = null;
|
274 |
+
// programmatically (based on user input)
|
275 |
+
if(typeof value!='undefined' || this.length>1){
|
276 |
+
// select by index (0 based)
|
277 |
+
if(typeof value=='number')
|
278 |
+
return $(control.stars[value]).rating('select',undefined,wantCallBack);
|
279 |
+
// select by literal value (must be passed as a string
|
280 |
+
if(typeof value=='string'){
|
281 |
+
//return
|
282 |
+
$.each(control.stars, function(){
|
283 |
+
//console.log($(this).data('rating.input'), $(this).data('rating.input').val(), value, $(this).data('rating.input').val()==value?'BINGO!':'');
|
284 |
+
if($(this).data('rating.input').val()==value) $(this).rating('select',undefined,wantCallBack);
|
285 |
+
});
|
286 |
+
// don't break the chain
|
287 |
+
return this;
|
288 |
+
};
|
289 |
+
}
|
290 |
+
else{
|
291 |
+
control.current = this[0].tagName=='INPUT' ?
|
292 |
+
this.data('rating.star') :
|
293 |
+
(this.is('.rater-'+ control.serial) ? this : null);
|
294 |
+
};
|
295 |
+
// Update rating control state
|
296 |
+
this.data('rating', control);
|
297 |
+
// Update display
|
298 |
+
this.rating('draw');
|
299 |
+
// find current input and its sibblings
|
300 |
+
var current = $( control.current ? control.current.data('rating.input') : null );
|
301 |
+
var lastipt = $( control.inputs ).filter(':checked');
|
302 |
+
var deadipt = $( control.inputs ).not(current);
|
303 |
+
// check and uncheck elements as required
|
304 |
+
deadipt.prop('checked',false);//.removeAttr('checked');
|
305 |
+
current.prop('checked',true);//.attr('checked','checked');
|
306 |
+
// trigger change on current or last selected input
|
307 |
+
$(current.length? current : lastipt ).trigger({ type:'change', selfTriggered:true });
|
308 |
+
// click callback, as requested here: http://plugins.jquery.com/node/1655
|
309 |
+
if((wantCallBack || wantCallBack == undefined) && control.callback) control.callback.apply(current[0], [current.val(), $('a', control.current)[0]]);// callback event
|
310 |
+
// don't break the chain
|
311 |
+
return this;
|
312 |
+
},// $.fn.rating.select
|
313 |
+
|
314 |
+
|
315 |
+
|
316 |
+
|
317 |
+
|
318 |
+
readOnly: function(toggle, disable){ // make the control read-only (still submits value)
|
319 |
+
var control = this.data('rating'); if(!control) return this;
|
320 |
+
// setread-only status
|
321 |
+
control.readOnly = toggle || toggle==undefined ? true : false;
|
322 |
+
// enable/disable control value submission
|
323 |
+
if(disable) $(control.inputs).attr("disabled", "disabled");
|
324 |
+
else $(control.inputs).removeAttr("disabled");
|
325 |
+
// Update rating control state
|
326 |
+
this.data('rating', control);
|
327 |
+
// Update display
|
328 |
+
this.rating('draw');
|
329 |
+
},// $.fn.rating.readOnly
|
330 |
+
|
331 |
+
disable: function(){ // make read-only and never submit value
|
332 |
+
this.rating('readOnly', true, true);
|
333 |
+
},// $.fn.rating.disable
|
334 |
+
|
335 |
+
enable: function(){ // make read/write and submit value
|
336 |
+
this.rating('readOnly', false, false);
|
337 |
+
}// $.fn.rating.select
|
338 |
+
|
339 |
+
});
|
340 |
+
|
341 |
+
/*--------------------------------------------------------*/
|
342 |
+
|
343 |
+
/*
|
344 |
+
### Default Settings ###
|
345 |
+
eg.: You can override default control like this:
|
346 |
+
$.fn.rating.options.cancel = 'Clear';
|
347 |
+
*/
|
348 |
+
$.fn.rating.options = { //$.extend($.fn.rating, { options: {
|
349 |
+
cancel: 'Cancel Rating', // advisory title for the 'cancel' link
|
350 |
+
cancelValue: '', // value to submit when user click the 'cancel' link
|
351 |
+
split: 0, // split the star into how many parts?
|
352 |
+
|
353 |
+
// Width of star image in case the plugin can't work it out. This can happen if
|
354 |
+
// the jQuery.dimensions plugin is not available OR the image is hidden at installation
|
355 |
+
starWidth: 16//,
|
356 |
+
|
357 |
+
//NB.: These don't need to be pre-defined (can be undefined/null) so let's save some code!
|
358 |
+
//half: false, // just a shortcut to control.split = 2
|
359 |
+
//required: false, // disables the 'cancel' button so user can only select one of the specified values
|
360 |
+
//readOnly: false, // disable rating plugin interaction/ values cannot be.one('change', //focus: function(){}, // executed when stars are focused
|
361 |
+
//blur: function(){}, // executed when stars are focused
|
362 |
+
//callback: function(){}, // executed when a star is clicked
|
363 |
+
}; //} });
|
364 |
+
|
365 |
+
/*--------------------------------------------------------*/
|
366 |
+
|
367 |
+
|
368 |
+
// auto-initialize plugin
|
369 |
+
$(function(){
|
370 |
+
$('input[type=radio].ninja-forms-star').rating();
|
371 |
+
});
|
372 |
+
|
373 |
+
|
374 |
+
/*# AVOID COLLISIONS #*/
|
375 |
+
})(jQuery);
|
376 |
+
/*# AVOID COLLISIONS #*/
|
deprecated/ninja-forms.php
CHANGED
@@ -265,7 +265,7 @@ class Ninja_Forms {
|
|
265 |
|
266 |
// Plugin version
|
267 |
if ( ! defined( 'NF_PLUGIN_VERSION' ) )
|
268 |
-
define( 'NF_PLUGIN_VERSION', '3.3.19' );
|
269 |
|
270 |
// Plugin Folder Path
|
271 |
if ( ! defined( 'NF_PLUGIN_DIR' ) )
|
265 |
|
266 |
// Plugin version
|
267 |
if ( ! defined( 'NF_PLUGIN_VERSION' ) )
|
268 |
+
define( 'NF_PLUGIN_VERSION', '3.3.19.1' );
|
269 |
|
270 |
// Plugin Folder Path
|
271 |
if ( ! defined( 'NF_PLUGIN_DIR' ) )
|
includes/Abstracts/List.php
CHANGED
File without changes
|
includes/Libraries/EOS/Parser.php
CHANGED
File without changes
|
includes/Libraries/EOS/Stack.php
CHANGED
File without changes
|
includes/Libraries/Session/class-recursive-arrayaccess.php
CHANGED
File without changes
|
includes/Libraries/Session/class-wp-session.php
CHANGED
File without changes
|
includes/Libraries/Session/wp-session.php
CHANGED
File without changes
|
lib/StepProcessing/step-processing.php
CHANGED
@@ -79,7 +79,9 @@ class NF_Step_Processing
|
|
79 |
if ( isset ( $_REQUEST['args'] ) ) {
|
80 |
$this->args = $_REQUEST['args'];
|
81 |
if ( isset ( $this->args['redirect'] ) ) {
|
82 |
-
|
|
|
|
|
83 |
}
|
84 |
} else {
|
85 |
$this->args = array();
|
79 |
if ( isset ( $_REQUEST['args'] ) ) {
|
80 |
$this->args = $_REQUEST['args'];
|
81 |
if ( isset ( $this->args['redirect'] ) ) {
|
82 |
+
if( wp_validate_redirect( $this->args['redirect'] ) ){
|
83 |
+
$this->redirect = wp_sanitize_redirect( $this->args['redirect'] );
|
84 |
+
}
|
85 |
}
|
86 |
} else {
|
87 |
$this->args = array();
|
ninja-forms.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Ninja Forms
|
4 |
Plugin URI: http://ninjaforms.com/
|
5 |
Description: Ninja Forms is a webform builder with unparalleled ease of use and features.
|
6 |
-
Version: 3.3.19
|
7 |
Author: The WP Ninjas
|
8 |
Author URI: http://ninjaforms.com
|
9 |
Text Domain: ninja-forms
|
@@ -57,7 +57,7 @@ if( get_option( 'ninja_forms_load_deprecated', FALSE ) && ! ( isset( $_POST[ 'nf
|
|
57 |
/**
|
58 |
* @since 3.0
|
59 |
*/
|
60 |
-
const VERSION = '3.3.19';
|
61 |
|
62 |
const WP_MIN_VERSION = '4.7';
|
63 |
|
3 |
Plugin Name: Ninja Forms
|
4 |
Plugin URI: http://ninjaforms.com/
|
5 |
Description: Ninja Forms is a webform builder with unparalleled ease of use and features.
|
6 |
+
Version: 3.3.19.1
|
7 |
Author: The WP Ninjas
|
8 |
Author URI: http://ninjaforms.com
|
9 |
Text Domain: ninja-forms
|
57 |
/**
|
58 |
* @since 3.0
|
59 |
*/
|
60 |
+
const VERSION = '3.3.19.1';
|
61 |
|
62 |
const WP_MIN_VERSION = '4.7';
|
63 |
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: wpninjasllc, kstover, jameslaws, kbjohnson90, klhall1987, krmoorho
|
|
3 |
Tags: form, forms, contact form, custom form, form builder, form creator, form manager, form creation, contact forms, custom forms, forms builder, forms creator, forms manager, forms creation, form administration,
|
4 |
Requires at least: 4.7
|
5 |
Tested up to: 4.9
|
6 |
-
Stable tag: 3.3.19
|
7 |
License: GPLv2 or later
|
8 |
|
9 |
Drag and drop fields in an intuitive UI to create contact forms, email subscription forms, order forms, payment forms, send emails and more!
|
@@ -111,18 +111,19 @@ For help and video tutorials, please visit our website: [Ninja Forms Documentati
|
|
111 |
|
112 |
== Upgrade Notice ==
|
113 |
|
114 |
-
= 3.3.19 (
|
115 |
|
116 |
-
*
|
117 |
|
118 |
-
*
|
119 |
-
* Corrected an error that was sometimes causing number fields to clear themselves when Multi-part Forms is active.
|
120 |
|
121 |
-
|
122 |
|
123 |
-
|
124 |
|
125 |
-
|
|
|
|
|
126 |
|
127 |
= 3.3.19 (20 November 2018) =
|
128 |
|
3 |
Tags: form, forms, contact form, custom form, form builder, form creator, form manager, form creation, contact forms, custom forms, forms builder, forms creator, forms manager, forms creation, form administration,
|
4 |
Requires at least: 4.7
|
5 |
Tested up to: 4.9
|
6 |
+
Stable tag: 3.3.19.1
|
7 |
License: GPLv2 or later
|
8 |
|
9 |
Drag and drop fields in an intuitive UI to create contact forms, email subscription forms, order forms, payment forms, send emails and more!
|
111 |
|
112 |
== Upgrade Notice ==
|
113 |
|
114 |
+
= 3.3.19.1 (29 November 2018) =
|
115 |
|
116 |
+
*Security:*
|
117 |
|
118 |
+
* Patched an open redirect vulnerability using a url parameter in our submission download page. Thank you to Muhammad Talha Khan for practicing responsible disclosure.
|
|
|
119 |
|
120 |
+
== Changelog ==
|
121 |
|
122 |
+
= 3.3.19.1 (29 November 2018) =
|
123 |
|
124 |
+
*Security:*
|
125 |
+
|
126 |
+
* Patched an open redirect vulnerability using a url parameter in our submission download page. Thank you to Muhammad Talha Khan for practicing responsible disclosure.
|
127 |
|
128 |
= 3.3.19 (20 November 2018) =
|
129 |
|