WooCommerce Checkout Manager - Version 4.3.1

Version Description

  • Notice: Plugin ownership change
  • Fix: Admin redirect after options reset
Download this release

Release Info

Developer quadlayers
Plugin Icon 128x128 WooCommerce Checkout Manager
Version 4.3.1
Comparing to
See all releases

Code changes from version 4.3 to 4.3.1

Files changed (86) hide show
  1. LICENSE.txt +0 -339
  2. assets/img/logo.jpg +0 -0
  3. includes/admin.php +1844 -1934
  4. includes/export.php +937 -960
  5. includes/pickers/di18n/jquery-ui-i18n.js +0 -1646
  6. includes/pickers/di18n/jquery.ui.datepicker-af.js +0 -23
  7. includes/pickers/di18n/jquery.ui.datepicker-ar-DZ.js +0 -23
  8. includes/pickers/di18n/jquery.ui.datepicker-ar.js +0 -23
  9. includes/pickers/di18n/jquery.ui.datepicker-az.js +0 -23
  10. includes/pickers/di18n/jquery.ui.datepicker-bg.js +0 -24
  11. includes/pickers/di18n/jquery.ui.datepicker-bs.js +0 -23
  12. includes/pickers/di18n/jquery.ui.datepicker-ca.js +0 -23
  13. includes/pickers/di18n/jquery.ui.datepicker-cs.js +0 -23
  14. includes/pickers/di18n/jquery.ui.datepicker-cy-GB.js +0 -23
  15. includes/pickers/di18n/jquery.ui.datepicker-da.js +0 -23
  16. includes/pickers/di18n/jquery.ui.datepicker-de.js +0 -23
  17. includes/pickers/di18n/jquery.ui.datepicker-el.js +0 -23
  18. includes/pickers/di18n/jquery.ui.datepicker-en-AU.js +0 -23
  19. includes/pickers/di18n/jquery.ui.datepicker-en-GB.js +0 -23
  20. includes/pickers/di18n/jquery.ui.datepicker-en-NZ.js +0 -23
  21. includes/pickers/di18n/jquery.ui.datepicker-eo.js +0 -23
  22. includes/pickers/di18n/jquery.ui.datepicker-es.js +0 -23
  23. includes/pickers/di18n/jquery.ui.datepicker-et.js +0 -23
  24. includes/pickers/di18n/jquery.ui.datepicker-eu.js +0 -23
  25. includes/pickers/di18n/jquery.ui.datepicker-fa.js +0 -59
  26. includes/pickers/di18n/jquery.ui.datepicker-fi.js +0 -23
  27. includes/pickers/di18n/jquery.ui.datepicker-fo.js +0 -23
  28. includes/pickers/di18n/jquery.ui.datepicker-fr-CH.js +0 -23
  29. includes/pickers/di18n/jquery.ui.datepicker-fr.js +0 -25
  30. includes/pickers/di18n/jquery.ui.datepicker-gl.js +0 -23
  31. includes/pickers/di18n/jquery.ui.datepicker-he.js +0 -23
  32. includes/pickers/di18n/jquery.ui.datepicker-hi.js +0 -23
  33. includes/pickers/di18n/jquery.ui.datepicker-hr.js +0 -23
  34. includes/pickers/di18n/jquery.ui.datepicker-hu.js +0 -23
  35. includes/pickers/di18n/jquery.ui.datepicker-hy.js +0 -23
  36. includes/pickers/di18n/jquery.ui.datepicker-id.js +0 -23
  37. includes/pickers/di18n/jquery.ui.datepicker-is.js +0 -23
  38. includes/pickers/di18n/jquery.ui.datepicker-it.js +0 -23
  39. includes/pickers/di18n/jquery.ui.datepicker-ja.js +0 -23
  40. includes/pickers/di18n/jquery.ui.datepicker-ka.js +0 -21
  41. includes/pickers/di18n/jquery.ui.datepicker-kk.js +0 -23
  42. includes/pickers/di18n/jquery.ui.datepicker-km.js +0 -23
  43. includes/pickers/di18n/jquery.ui.datepicker-ko.js +0 -23
  44. includes/pickers/di18n/jquery.ui.datepicker-lb.js +0 -23
  45. includes/pickers/di18n/jquery.ui.datepicker-lt.js +0 -23
  46. includes/pickers/di18n/jquery.ui.datepicker-lv.js +0 -23
  47. includes/pickers/di18n/jquery.ui.datepicker-mk.js +0 -23
  48. includes/pickers/di18n/jquery.ui.datepicker-ml.js +0 -23
  49. includes/pickers/di18n/jquery.ui.datepicker-ms.js +0 -23
  50. includes/pickers/di18n/jquery.ui.datepicker-nl-BE.js +0 -23
  51. includes/pickers/di18n/jquery.ui.datepicker-nl.js +0 -23
  52. includes/pickers/di18n/jquery.ui.datepicker-no.js +0 -23
  53. includes/pickers/di18n/jquery.ui.datepicker-pl.js +0 -23
  54. includes/pickers/di18n/jquery.ui.datepicker-pt-BR.js +0 -23
  55. includes/pickers/di18n/jquery.ui.datepicker-pt.js +0 -22
  56. includes/pickers/di18n/jquery.ui.datepicker-rm.js +0 -21
  57. includes/pickers/di18n/jquery.ui.datepicker-ro.js +0 -26
  58. includes/pickers/di18n/jquery.ui.datepicker-ru.js +0 -23
  59. includes/pickers/di18n/jquery.ui.datepicker-sk.js +0 -23
  60. includes/pickers/di18n/jquery.ui.datepicker-sl.js +0 -24
  61. includes/pickers/di18n/jquery.ui.datepicker-sq.js +0 -23
  62. includes/pickers/di18n/jquery.ui.datepicker-sr-SR.js +0 -23
  63. includes/pickers/di18n/jquery.ui.datepicker-sr.js +0 -23
  64. includes/pickers/di18n/jquery.ui.datepicker-sv.js +0 -23
  65. includes/pickers/di18n/jquery.ui.datepicker-ta.js +0 -23
  66. includes/pickers/di18n/jquery.ui.datepicker-th.js +0 -23
  67. includes/pickers/di18n/jquery.ui.datepicker-tj.js +0 -23
  68. includes/pickers/di18n/jquery.ui.datepicker-tr.js +0 -23
  69. includes/pickers/di18n/jquery.ui.datepicker-uk.js +0 -24
  70. includes/pickers/di18n/jquery.ui.datepicker-vi.js +0 -23
  71. includes/pickers/di18n/jquery.ui.datepicker-zh-CN.js +0 -23
  72. includes/pickers/di18n/jquery.ui.datepicker-zh-HK.js +0 -23
  73. includes/pickers/di18n/jquery.ui.datepicker-zh-TW.js +0 -23
  74. includes/pickers/i18n/{jquery.ui.timepicker-pt-BR.js → jquery.ui.timepicker-pt.js} +0 -0
  75. includes/pickers/jquery.ui.css +0 -1225
  76. includes/templates/admin/woocheckout-additional.php +3 -3
  77. includes/templates/admin/woocheckout-billing.php +3 -3
  78. includes/templates/admin/woocheckout-general-switches.php +2 -5
  79. includes/templates/admin/woocheckout-general.php +7 -7
  80. includes/templates/admin/woocheckout-shipping.php +3 -3
  81. includes/templates/functions/add_wooccmupload.php +1 -1
  82. includes/templates/functions/billing_wooccmupload.php +1 -1
  83. includes/templates/functions/shipping_wooccmupload.php +1 -1
  84. includes/templates/functions/{woocm_editing_wrapper.php → wooccm_editing_wrapper.php} +0 -0
  85. readme.txt +11 -7
  86. woocommerce-checkout-manager.php +326 -238
LICENSE.txt DELETED
@@ -1,339 +0,0 @@
1
- GNU GENERAL PUBLIC LICENSE
2
- Version 2, June 1991
3
-
4
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
5
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
6
- Everyone is permitted to copy and distribute verbatim copies
7
- of this license document, but changing it is not allowed.
8
-
9
- Preamble
10
-
11
- The licenses for most software are designed to take away your
12
- freedom to share and change it. By contrast, the GNU General Public
13
- License is intended to guarantee your freedom to share and change free
14
- software--to make sure the software is free for all its users. This
15
- General Public License applies to most of the Free Software
16
- Foundation's software and to any other program whose authors commit to
17
- using it. (Some other Free Software Foundation software is covered by
18
- the GNU Lesser General Public License instead.) You can apply it to
19
- your programs, too.
20
-
21
- When we speak of free software, we are referring to freedom, not
22
- price. Our General Public Licenses are designed to make sure that you
23
- have the freedom to distribute copies of free software (and charge for
24
- this service if you wish), that you receive source code or can get it
25
- if you want it, that you can change the software or use pieces of it
26
- in new free programs; and that you know you can do these things.
27
-
28
- To protect your rights, we need to make restrictions that forbid
29
- anyone to deny you these rights or to ask you to surrender the rights.
30
- These restrictions translate to certain responsibilities for you if you
31
- distribute copies of the software, or if you modify it.
32
-
33
- For example, if you distribute copies of such a program, whether
34
- gratis or for a fee, you must give the recipients all the rights that
35
- you have. You must make sure that they, too, receive or can get the
36
- source code. And you must show them these terms so they know their
37
- rights.
38
-
39
- We protect your rights with two steps: (1) copyright the software, and
40
- (2) offer you this license which gives you legal permission to copy,
41
- distribute and/or modify the software.
42
-
43
- Also, for each author's protection and ours, we want to make certain
44
- that everyone understands that there is no warranty for this free
45
- software. If the software is modified by someone else and passed on, we
46
- want its recipients to know that what they have is not the original, so
47
- that any problems introduced by others will not reflect on the original
48
- authors' reputations.
49
-
50
- Finally, any free program is threatened constantly by software
51
- patents. We wish to avoid the danger that redistributors of a free
52
- program will individually obtain patent licenses, in effect making the
53
- program proprietary. To prevent this, we have made it clear that any
54
- patent must be licensed for everyone's free use or not licensed at all.
55
-
56
- The precise terms and conditions for copying, distribution and
57
- modification follow.
58
-
59
- GNU GENERAL PUBLIC LICENSE
60
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61
-
62
- 0. This License applies to any program or other work which contains
63
- a notice placed by the copyright holder saying it may be distributed
64
- under the terms of this General Public License. The "Program", below,
65
- refers to any such program or work, and a "work based on the Program"
66
- means either the Program or any derivative work under copyright law:
67
- that is to say, a work containing the Program or a portion of it,
68
- either verbatim or with modifications and/or translated into another
69
- language. (Hereinafter, translation is included without limitation in
70
- the term "modification".) Each licensee is addressed as "you".
71
-
72
- Activities other than copying, distribution and modification are not
73
- covered by this License; they are outside its scope. The act of
74
- running the Program is not restricted, and the output from the Program
75
- is covered only if its contents constitute a work based on the
76
- Program (independent of having been made by running the Program).
77
- Whether that is true depends on what the Program does.
78
-
79
- 1. You may copy and distribute verbatim copies of the Program's
80
- source code as you receive it, in any medium, provided that you
81
- conspicuously and appropriately publish on each copy an appropriate
82
- copyright notice and disclaimer of warranty; keep intact all the
83
- notices that refer to this License and to the absence of any warranty;
84
- and give any other recipients of the Program a copy of this License
85
- along with the Program.
86
-
87
- You may charge a fee for the physical act of transferring a copy, and
88
- you may at your option offer warranty protection in exchange for a fee.
89
-
90
- 2. You may modify your copy or copies of the Program or any portion
91
- of it, thus forming a work based on the Program, and copy and
92
- distribute such modifications or work under the terms of Section 1
93
- above, provided that you also meet all of these conditions:
94
-
95
- a) You must cause the modified files to carry prominent notices
96
- stating that you changed the files and the date of any change.
97
-
98
- b) You must cause any work that you distribute or publish, that in
99
- whole or in part contains or is derived from the Program or any
100
- part thereof, to be licensed as a whole at no charge to all third
101
- parties under the terms of this License.
102
-
103
- c) If the modified program normally reads commands interactively
104
- when run, you must cause it, when started running for such
105
- interactive use in the most ordinary way, to print or display an
106
- announcement including an appropriate copyright notice and a
107
- notice that there is no warranty (or else, saying that you provide
108
- a warranty) and that users may redistribute the program under
109
- these conditions, and telling the user how to view a copy of this
110
- License. (Exception: if the Program itself is interactive but
111
- does not normally print such an announcement, your work based on
112
- the Program is not required to print an announcement.)
113
-
114
- These requirements apply to the modified work as a whole. If
115
- identifiable sections of that work are not derived from the Program,
116
- and can be reasonably considered independent and separate works in
117
- themselves, then this License, and its terms, do not apply to those
118
- sections when you distribute them as separate works. But when you
119
- distribute the same sections as part of a whole which is a work based
120
- on the Program, the distribution of the whole must be on the terms of
121
- this License, whose permissions for other licensees extend to the
122
- entire whole, and thus to each and every part regardless of who wrote it.
123
-
124
- Thus, it is not the intent of this section to claim rights or contest
125
- your rights to work written entirely by you; rather, the intent is to
126
- exercise the right to control the distribution of derivative or
127
- collective works based on the Program.
128
-
129
- In addition, mere aggregation of another work not based on the Program
130
- with the Program (or with a work based on the Program) on a volume of
131
- a storage or distribution medium does not bring the other work under
132
- the scope of this License.
133
-
134
- 3. You may copy and distribute the Program (or a work based on it,
135
- under Section 2) in object code or executable form under the terms of
136
- Sections 1 and 2 above provided that you also do one of the following:
137
-
138
- a) Accompany it with the complete corresponding machine-readable
139
- source code, which must be distributed under the terms of Sections
140
- 1 and 2 above on a medium customarily used for software interchange; or,
141
-
142
- b) Accompany it with a written offer, valid for at least three
143
- years, to give any third party, for a charge no more than your
144
- cost of physically performing source distribution, a complete
145
- machine-readable copy of the corresponding source code, to be
146
- distributed under the terms of Sections 1 and 2 above on a medium
147
- customarily used for software interchange; or,
148
-
149
- c) Accompany it with the information you received as to the offer
150
- to distribute corresponding source code. (This alternative is
151
- allowed only for noncommercial distribution and only if you
152
- received the program in object code or executable form with such
153
- an offer, in accord with Subsection b above.)
154
-
155
- The source code for a work means the preferred form of the work for
156
- making modifications to it. For an executable work, complete source
157
- code means all the source code for all modules it contains, plus any
158
- associated interface definition files, plus the scripts used to
159
- control compilation and installation of the executable. However, as a
160
- special exception, the source code distributed need not include
161
- anything that is normally distributed (in either source or binary
162
- form) with the major components (compiler, kernel, and so on) of the
163
- operating system on which the executable runs, unless that component
164
- itself accompanies the executable.
165
-
166
- If distribution of executable or object code is made by offering
167
- access to copy from a designated place, then offering equivalent
168
- access to copy the source code from the same place counts as
169
- distribution of the source code, even though third parties are not
170
- compelled to copy the source along with the object code.
171
-
172
- 4. You may not copy, modify, sublicense, or distribute the Program
173
- except as expressly provided under this License. Any attempt
174
- otherwise to copy, modify, sublicense or distribute the Program is
175
- void, and will automatically terminate your rights under this License.
176
- However, parties who have received copies, or rights, from you under
177
- this License will not have their licenses terminated so long as such
178
- parties remain in full compliance.
179
-
180
- 5. You are not required to accept this License, since you have not
181
- signed it. However, nothing else grants you permission to modify or
182
- distribute the Program or its derivative works. These actions are
183
- prohibited by law if you do not accept this License. Therefore, by
184
- modifying or distributing the Program (or any work based on the
185
- Program), you indicate your acceptance of this License to do so, and
186
- all its terms and conditions for copying, distributing or modifying
187
- the Program or works based on it.
188
-
189
- 6. Each time you redistribute the Program (or any work based on the
190
- Program), the recipient automatically receives a license from the
191
- original licensor to copy, distribute or modify the Program subject to
192
- these terms and conditions. You may not impose any further
193
- restrictions on the recipients' exercise of the rights granted herein.
194
- You are not responsible for enforcing compliance by third parties to
195
- this License.
196
-
197
- 7. If, as a consequence of a court judgment or allegation of patent
198
- infringement or for any other reason (not limited to patent issues),
199
- conditions are imposed on you (whether by court order, agreement or
200
- otherwise) that contradict the conditions of this License, they do not
201
- excuse you from the conditions of this License. If you cannot
202
- distribute so as to satisfy simultaneously your obligations under this
203
- License and any other pertinent obligations, then as a consequence you
204
- may not distribute the Program at all. For example, if a patent
205
- license would not permit royalty-free redistribution of the Program by
206
- all those who receive copies directly or indirectly through you, then
207
- the only way you could satisfy both it and this License would be to
208
- refrain entirely from distribution of the Program.
209
-
210
- If any portion of this section is held invalid or unenforceable under
211
- any particular circumstance, the balance of the section is intended to
212
- apply and the section as a whole is intended to apply in other
213
- circumstances.
214
-
215
- It is not the purpose of this section to induce you to infringe any
216
- patents or other property right claims or to contest validity of any
217
- such claims; this section has the sole purpose of protecting the
218
- integrity of the free software distribution system, which is
219
- implemented by public license practices. Many people have made
220
- generous contributions to the wide range of software distributed
221
- through that system in reliance on consistent application of that
222
- system; it is up to the author/donor to decide if he or she is willing
223
- to distribute software through any other system and a licensee cannot
224
- impose that choice.
225
-
226
- This section is intended to make thoroughly clear what is believed to
227
- be a consequence of the rest of this License.
228
-
229
- 8. If the distribution and/or use of the Program is restricted in
230
- certain countries either by patents or by copyrighted interfaces, the
231
- original copyright holder who places the Program under this License
232
- may add an explicit geographical distribution limitation excluding
233
- those countries, so that distribution is permitted only in or among
234
- countries not thus excluded. In such case, this License incorporates
235
- the limitation as if written in the body of this License.
236
-
237
- 9. The Free Software Foundation may publish revised and/or new versions
238
- of the General Public License from time to time. Such new versions will
239
- be similar in spirit to the present version, but may differ in detail to
240
- address new problems or concerns.
241
-
242
- Each version is given a distinguishing version number. If the Program
243
- specifies a version number of this License which applies to it and "any
244
- later version", you have the option of following the terms and conditions
245
- either of that version or of any later version published by the Free
246
- Software Foundation. If the Program does not specify a version number of
247
- this License, you may choose any version ever published by the Free Software
248
- Foundation.
249
-
250
- 10. If you wish to incorporate parts of the Program into other free
251
- programs whose distribution conditions are different, write to the author
252
- to ask for permission. For software which is copyrighted by the Free
253
- Software Foundation, write to the Free Software Foundation; we sometimes
254
- make exceptions for this. Our decision will be guided by the two goals
255
- of preserving the free status of all derivatives of our free software and
256
- of promoting the sharing and reuse of software generally.
257
-
258
- NO WARRANTY
259
-
260
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261
- FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
262
- OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263
- PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264
- OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265
- MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
266
- TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
267
- PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268
- REPAIR OR CORRECTION.
269
-
270
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271
- WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272
- REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273
- INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274
- OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275
- TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276
- YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277
- PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278
- POSSIBILITY OF SUCH DAMAGES.
279
-
280
- END OF TERMS AND CONDITIONS
281
-
282
- How to Apply These Terms to Your New Programs
283
-
284
- If you develop a new program, and you want it to be of the greatest
285
- possible use to the public, the best way to achieve this is to make it
286
- free software which everyone can redistribute and change under these terms.
287
-
288
- To do so, attach the following notices to the program. It is safest
289
- to attach them to the start of each source file to most effectively
290
- convey the exclusion of warranty; and each file should have at least
291
- the "copyright" line and a pointer to where the full notice is found.
292
-
293
- <one line to give the program's name and a brief idea of what it does.>
294
- Copyright (C) <year> <name of author>
295
-
296
- This program is free software; you can redistribute it and/or modify
297
- it under the terms of the GNU General Public License as published by
298
- the Free Software Foundation; either version 2 of the License, or
299
- (at your option) any later version.
300
-
301
- This program is distributed in the hope that it will be useful,
302
- but WITHOUT ANY WARRANTY; without even the implied warranty of
303
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
304
- GNU General Public License for more details.
305
-
306
- You should have received a copy of the GNU General Public License along
307
- with this program; if not, write to the Free Software Foundation, Inc.,
308
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
309
-
310
- Also add information on how to contact you by electronic and paper mail.
311
-
312
- If the program is interactive, make it output a short notice like this
313
- when it starts in an interactive mode:
314
-
315
- Gnomovision version 69, Copyright (C) year name of author
316
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
317
- This is free software, and you are welcome to redistribute it
318
- under certain conditions; type `show c' for details.
319
-
320
- The hypothetical commands `show w' and `show c' should show the appropriate
321
- parts of the General Public License. Of course, the commands you use may
322
- be called something other than `show w' and `show c'; they could even be
323
- mouse-clicks or menu items--whatever suits your program.
324
-
325
- You should also get your employer (if you work as a programmer) or your
326
- school, if any, to sign a "copyright disclaimer" for the program, if
327
- necessary. Here is a sample; alter the names:
328
-
329
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
330
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
331
-
332
- <signature of Ty Coon>, 1 April 1989
333
- Ty Coon, President of Vice
334
-
335
- This General Public License does not permit incorporating your program into
336
- proprietary programs. If your program is a subroutine library, you may
337
- consider it more useful to permit linking proprietary applications with the
338
- library. If this is what you want to do, use the GNU Lesser General
339
- Public License instead of this License.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/img/logo.jpg ADDED
Binary file
includes/admin.php CHANGED
@@ -1,1955 +1,1862 @@
1
  <?php
2
- if( is_admin() ) {
3
-
4
- // backend scripts
5
- add_action( 'admin_enqueue_scripts', 'wooccm_admin_enqueue_scripts' );
6
- // List of action links on the Plugins screen
7
- add_filter( sprintf( 'plugin_action_links_%s', WOOCCM_RELPATH ), 'wooccm_admin_plugin_actions' );
8
- // WordPress Settings screen for WooCheckout
9
- add_action( 'admin_init', 'wooccm_register_settings' );
10
- // WP Admin Actions
11
- add_action( 'admin_init', 'wooccm_admin_actions' );
12
- add_action( 'admin_init', 'wooccm_admin_woocheckout_actions' );
13
- // Updater notice
14
- add_action( 'admin_notices', 'wooccm_admin_notices' );
15
- // Add fields to the Edit Order screen
16
- add_action( 'woocommerce_admin_order_data_after_order_details', 'wooccm_admin_edit_order_additional_details' );
17
- add_action( 'woocommerce_admin_order_data_after_billing_address', 'wooccm_admin_edit_order_billing_details' );
18
- add_action( 'woocommerce_admin_order_data_after_shipping_address', 'wooccm_admin_edit_order_shipping_details' );
19
-
20
  }
21
 
22
  // Display admin notice on screen load
23
- function wooccm_admin_notice( $message = '', $priority = 'updated', $screen = '' ) {
24
-
25
- if( $priority == false || $priority == '' )
26
- $priority = 'updated';
27
- if( $message <> '' ) {
28
- ob_start();
29
- wooccm_admin_notice_html( $message, $priority, $screen );
30
- $output = ob_get_contents();
31
- ob_end_clean();
32
- // Check if an existing notice is already in queue
33
- $existing_notice = get_transient( WOOCCM_PREFIX . '_notice' );
34
- if( $existing_notice !== false ) {
35
- $existing_notice = base64_decode( $existing_notice );
36
- $output = $existing_notice . $output;
37
- }
38
- set_transient( WOOCCM_PREFIX . '_notice', base64_encode( $output ), MINUTE_IN_SECONDS );
39
- add_action( 'admin_notices', WOOCCM_PREFIX . '_admin_notice_print' );
40
- }
41
-
42
  }
43
 
44
  // HTML template for admin notice
45
- function wooccm_admin_notice_html( $message = '', $priority = 'updated', $screen = '' ) {
46
-
47
- // Display admin notice on specific screen
48
- if( !empty( $screen ) ) {
49
-
50
- global $pagenow;
51
-
52
- if( is_array( $screen ) ) {
53
- if( in_array( $pagenow, $screen ) == false )
54
- return;
55
- } else {
56
- if( $pagenow <> $screen )
57
- return;
58
- }
59
-
60
- } ?>
61
- <div id="message" class="<?php echo $priority; ?>">
62
- <p><?php echo $message; ?></p>
63
- </div>
64
- <?php
65
-
66
  }
67
 
68
  // Grabs the WordPress transient that holds the admin notice and prints it
69
  function wooccm_admin_notice_print() {
70
 
71
- $output = get_transient( WOOCCM_PREFIX . '_notice' );
72
- if( $output !== false ) {
73
- delete_transient( WOOCCM_PREFIX . '_notice' );
74
- $output = base64_decode( $output );
75
- echo $output;
76
- }
77
-
78
  }
79
 
80
  // WordPress Administration menu
81
  function wooccm_admin_menu() {
82
 
83
- add_menu_page( 'WooCheckout', 'WooCheckout', 'manage_options', 'woocommerce-checkout-manager' , 'wooccm_options_page', 'dashicons-businessman', 57);
84
- // @mod - Remove until exports are fixed...
85
- // add_submenu_page( 'woocommerce-checkout-manager', 'Export', 'Export', 'manage_options', 'wooccm-advance-export', 'wooccm_advance_export' );
86
-
87
  }
88
- add_action( 'admin_menu', 'wooccm_admin_menu' );
89
-
90
- function wooccm_admin_enqueue_scripts( $hook_suffix ) {
91
-
92
- if( $hook_suffix == 'toplevel_page_woocommerce-checkout-manager' ) {
93
- wp_enqueue_style( 'farbtastic' );
94
- // @mod - We need to check that farbtastic exists
95
- wp_enqueue_script( 'farbtastic', site_url( '/wp-admin/js/farbtastic.js' ) );
96
- wp_enqueue_style( 'wooccm-backend-css', plugins_url( 'includes/pickers/css/backend_css.css', WOOCCM_RELPATH ) );
97
- wp_enqueue_script( 'script_wccs', plugins_url( 'includes/templates/js/script_wccs.js', WOOCCM_RELPATH ), array( 'jquery' ), '1.2' );
98
- wp_enqueue_script( 'billing_script_wccs', plugins_url( 'includes/templates/js/billing_script_wccs.js', WOOCCM_RELPATH ), array( 'jquery' ), '1.2' );
99
- wp_enqueue_script( 'shipping_script_wccs', plugins_url( 'includes/templates/js/shipping_script_wccs.js', WOOCCM_RELPATH ), array( 'jquery' ), '1.2' );
100
- if( wp_script_is( 'jquery-ui-sortable', 'queue' ) == false )
101
- wp_enqueue_script('jquery-ui-sortable');
102
- }
103
- if( $hook_suffix === 'woocheckout_page_wooccm-advance-export' ) {
104
- wp_enqueue_style( 'export', plugins_url( 'includes/templates/admin/woocheckout-export.css', WOOCCM_RELPATH ) );
105
- }
106
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
107
  }
108
 
109
  // List of action links on the Plugins screen
110
- function wooccm_admin_plugin_actions( $links ) {
111
 
112
- $page_url = add_query_arg( 'page', 'woocommerce-checkout-manager', 'admin.php' );
113
- $support_url = 'https://wordpress.org/support/plugin/woocommerce-checkout-manager/';
114
 
115
- $plugin_links = array(
116
- '<a href="' . $page_url . '">' . __( 'Settings', 'woocommerce-checkout-manager' ) . '</a>',
117
- '<a href="' . $support_url . '">' . __( 'Support', 'woocommerce-checkout-manager' ) . '</a>',
118
- );
119
- return array_merge( $plugin_links, $links );
120
 
121
- }
122
 
123
  function wooccm_deactivate_plugin_conditional() {
124
 
125
- $name = 'woocommerce-checkout-manager/woocommerce-checkout-manager.php';
126
- if( !is_plugin_active( 'woocommerce/woocommerce.php' ) ) {
127
- add_action('admin_notices', 'wooccm_admin_notice_woo');
128
- deactivate_plugins( $name );
129
- }
130
-
131
  }
132
- add_action( 'admin_init', 'wooccm_deactivate_plugin_conditional' );
133
 
134
- function wooccm_admin_notice_woo() {
135
 
136
- $message = __( 'WooCommerce is not active. WooCommerce Checkout Manager requires WooCommerce to be active.', 'woocommerce-checkout-manager' );
137
- echo '<div class="error"><p><strong>' . $message . '</strong></p></div>';
138
 
 
 
139
  }
140
 
141
  // Global actions
142
  function wooccm_admin_actions() {
143
 
144
- // Check the User has the manage_options capability
145
- if( current_user_can( 'manage_options' ) == false )
146
- return;
147
-
148
- // Process any actions
149
- $action = ( function_exists( 'woo_get_action' ) ? woo_get_action() : false );
150
- switch( $action ) {
151
-
152
- case 'wooccm_dismiss_beta_notice':
153
- // We need to verify the nonce.
154
- if( !empty( $_GET ) && check_admin_referer( 'wooccm_dismiss_beta_notice' ) ) {
155
- add_option( WOOCCM_PREFIX . '_beta_notice', 1 );
156
- $url = add_query_arg( array( 'action' => null, '_wpnonce' => null ) );
157
- wp_redirect( $url );
158
- exit();
159
- }
160
- break;
161
-
162
- case 'wooccm_dismiss_update_notice':
163
- // We need to verify the nonce.
164
- if( !empty( $_GET ) && check_admin_referer( 'wooccm_dismiss_update_notice' ) ) {
165
- update_option( WOOCCM_PREFIX . '_update_notice', 1 );
166
- $url = add_query_arg( array( 'action' => null, '_wpnonce' => null ) );
167
- wp_redirect( $url );
168
- exit();
169
- }
170
- break;
171
-
172
- }
173
-
174
  }
175
 
176
  // Actions limited to the WooCheckout screen
177
  function wooccm_admin_woocheckout_actions() {
178
 
179
- // Check the User has the manage_options capability
180
- if( current_user_can( 'manage_options' ) == false )
181
- return;
182
-
183
- // Check that we are on the WooCheckout screen
184
- $page = ( isset($_GET['page'] ) ? sanitize_text_field( $_GET['page'] ) : false );
185
- if( $page != 'woocommerce-checkout-manager' )
186
- return;
187
-
188
- // Process any actions
189
- $action = ( function_exists( 'woo_get_action' ) ? woo_get_action() : false );
190
- switch( $action ) {
191
-
192
- // Reset the Run the updater notice
193
- case 'wooccm_reset_update_notice':
194
- // We need to verify the nonce.
195
- if( !empty( $_GET ) && check_admin_referer( 'wooccm_reset_update_notice' ) ) {
196
- delete_option( WOOCCM_PREFIX . '_update_notice' );
197
- $url = add_query_arg( array( 'action' => null, '_wpnonce' => null ) );
198
- wp_redirect( $url );
199
- exit();
200
- }
201
- break;
202
-
203
- case 'wooccm_nuke_options':
204
- // We need to verify the nonce.
205
- if( !empty( $_GET ) && check_admin_referer( 'wooccm_nuke_options' ) ) {
206
- // Delete the default options
207
- $options = array( 'settings', 'settings2', 'settings3' );
208
- foreach( $options as $option )
209
- delete_option( 'wccs_' . $option );
210
- // Delete any notices
211
- $notices = array( 'update_notice', 'beta_notice' );
212
- foreach( $notices as $notice )
213
- delete_option( WOOCCM_PREFIX . '_' . $notice );
214
- $url = add_query_arg( array( 'action' => null, '_wpnonce' => null ) );
215
- wp_redirect( $url );
216
- exit();
217
- }
218
- break;
219
-
220
- case 'wooccm_nuke_order_meta':
221
- // We need to verify the nonce.
222
- if( !empty( $_GET ) && check_admin_referer( 'wooccm_nuke_order_meta' ) ) {
223
- $post_type = 'shop_order';
224
- $args = array(
225
- 'post_type' => $post_type,
226
- 'post_status' => ( function_exists( 'wc_get_order_statuses()' ) ? wc_get_order_statuses() : false ),
227
- 'fields' => 'ids',
228
- 'numberposts' => -1
229
- );
230
- $orders = get_posts( $args );
231
- if( !empty( $orders ) ) {
232
- // Prepare the Post meta name lists for only custom fields
233
- $meta_keys = array();
234
-
235
- // Additional section
236
- $options = get_option( 'wccs_settings' );
237
- $buttons = ( isset( $options['buttons'] ) ? $options['buttons'] : false );
238
- if( !empty( $buttons ) ) {
239
- foreach( $buttons as $btn ) {
240
- if( strstr( $btn['cow'], 'myfield' ) )
241
- $meta_keys[] = $btn['cow'];
242
- }
243
- }
244
- // Billing section
245
- $options = get_option( 'wccs_settings3' );
246
- $buttons = ( isset( $options['billing_buttons'] ) ? $options['billing_buttons'] : false );
247
- if( !empty( $buttons ) ) {
248
- foreach( $buttons as $btn ) {
249
- if( strstr( $btn['cow'], 'myfield' ) )
250
- $meta_keys[] = sprintf( '_billing_%s', $btn['cow'] );
251
- }
252
- }
253
- // Shipping section
254
- $options = get_option( 'wccs_settings2' );
255
- $buttons = ( isset( $options['shipping_buttons'] ) ? $options['shipping_buttons'] : false );
256
- if( !empty( $buttons ) ) {
257
- foreach( $buttons as $btn ) {
258
- if( strstr( $btn['cow'], 'myfield' ) )
259
- $meta_keys[] = sprintf( '_shipping_%s', $btn['cow'] );
260
- }
261
- }
262
-
263
- // Do the deed
264
- if( !empty( $meta_keys ) ) {
265
- foreach( $orders as $order_id ) {
266
- if( !empty( $order_id ) ) {
267
- foreach( $meta_keys as $meta_key )
268
- delete_post_meta( $order_id, $meta_key );
269
- }
270
- }
271
- }
272
- }
273
- $url = add_query_arg( array( 'action' => null, '_wpnonce' => null ) );
274
- wp_redirect( $url );
275
- exit();
276
- }
277
- break;
278
-
279
- case 'wooccm_nuke_user_meta':
280
- // We need to verify the nonce.
281
- if( !empty( $_GET ) && check_admin_referer( 'wooccm_nuke_user_meta' ) ) {
282
- $args = array(
283
- 'fields' => array( 'ID' )
284
- );
285
- $users = get_users( $args );
286
- if( !empty( $users ) ) {
287
- // Prepare the Post meta name lists for only custom fields
288
- $meta_keys = array();
289
-
290
- // Additional section
291
- $options = get_option( 'wccs_settings' );
292
- $buttons = ( isset( $options['buttons'] ) ? $options['buttons'] : false );
293
- if( !empty( $buttons ) ) {
294
- foreach( $buttons as $btn ) {
295
- if( strstr( $btn['cow'], 'myfield' ) )
296
- $meta_keys[] = $btn['cow'];
297
- }
298
- }
299
- // Billing section
300
- $options = get_option( 'wccs_settings3' );
301
- $buttons = ( isset( $options['billing_buttons'] ) ? $options['billing_buttons'] : false );
302
- if( !empty( $buttons ) ) {
303
- foreach( $buttons as $btn ) {
304
- if( strstr( $btn['cow'], 'myfield' ) )
305
- $meta_keys[] = sprintf( 'billing_%s', $btn['cow'] );
306
- }
307
- }
308
- // Shipping section
309
- $options = get_option( 'wccs_settings2' );
310
- $buttons = ( isset( $options['shipping_buttons'] ) ? $options['shipping_buttons'] : false );
311
- if( !empty( $buttons ) ) {
312
- foreach( $buttons as $btn ) {
313
- if( strstr( $btn['cow'], 'myfield' ) )
314
- $meta_keys[] = sprintf( 'shipping_%s', $btn['cow'] );
315
- }
316
- }
317
-
318
- // Do the deed
319
- if( !empty( $meta_keys ) ) {
320
- foreach( $users as $user_id ) {
321
- foreach( $meta_keys as $meta_key )
322
- delete_user_meta( $user_id->ID, $meta_key );
323
- }
324
- }
325
- }
326
- $url = add_query_arg( array( 'action' => null, '_wpnonce' => null ) );
327
- wp_redirect( $url );
328
- exit();
329
- }
330
- break;
331
-
332
- case 'wooccm_dismiss_beta_notice':
333
- // We need to verify the nonce.
334
- if( !empty( $_GET ) && check_admin_referer( 'wooccm_dismiss_beta_notice' ) ) {
335
- add_option( WOOCCM_PREFIX . '_beta_notice', 1 );
336
- $url = add_query_arg( array( 'action' => null, '_wpnonce' => null ) );
337
- wp_redirect( $url );
338
- exit();
339
- }
340
- break;
341
-
342
- case 'wooccm_dismiss_update_notice':
343
- // We need to verify the nonce.
344
- if( !empty( $_GET ) && check_admin_referer( 'wooccm_dismiss_update_notice' ) ) {
345
- add_option( WOOCCM_PREFIX . '_update_notice', 1 );
346
- $url = add_query_arg( array( 'action' => null, '_wpnonce' => null ) );
347
- wp_redirect( $url );
348
- exit();
349
- }
350
- break;
351
-
352
- }
353
-
354
  }
355
 
356
- if( !function_exists( 'woo_get_action' ) ) {
357
- function woo_get_action( $prefer_get = false ) {
 
358
 
359
- if( isset( $_GET['action'] ) && $prefer_get )
360
- return sanitize_text_field( $_GET['action'] );
361
 
362
- if( isset( $_POST['action'] ) )
363
- return sanitize_text_field( $_POST['action'] );
364
 
365
- if( isset( $_GET['action'] ) )
366
- return sanitize_text_field( $_GET['action'] );
367
 
368
- return;
 
369
 
370
- }
371
  }
372
 
373
  // WordPress Settings screen for WooCheckout
374
  function wooccm_register_settings() {
375
 
376
- register_setting( 'wccs_options', 'wccs_settings', 'wooccm_options_validate' );
377
- register_setting( 'wccs_options2', 'wccs_settings2', 'wooccm_options_validate_shipping' );
378
- register_setting( 'wccs_options3', 'wccs_settings3', 'wooccm_options_validate_billing' );
379
-
380
  }
381
 
382
  function wooccm_options_page() {
383
 
384
- if ( !current_user_can('manage_options') )
385
- wp_die( __( 'You do not have sufficient permissions to access this page.', 'woocommerce-checkout-manager' ) );
386
-
387
- $htmlshippingabbr = array( 'country', 'first_name', 'last_name', 'company', 'address_1', 'address_2', 'city', 'state', 'postcode' );
388
- $htmlbillingabbr = array( 'country', 'first_name', 'last_name', 'company', 'address_1', 'address_2', 'city', 'state', 'postcode', 'email', 'phone' );
389
- $upload_dir = wp_upload_dir();
390
- $hidden_field_name = 'mccs_submit_hidden';
391
- $hidden_wccs_reset = "my_new_field_reset";
392
-
393
- // Additional details
394
- $options = get_option( 'wccs_settings' );
395
- // Shipping details
396
- $options2 = get_option( 'wccs_settings2' );
397
- // Billing details
398
- $options3 = get_option( 'wccs_settings3' );
399
-
400
- // Check if the reset button has been clicked
401
- if(
402
- isset( $_POST[ $hidden_wccs_reset ] ) &&
403
- sanitize_text_field( $_POST[ $hidden_wccs_reset ] ) == 'Y'
404
- ) {
405
- delete_option('wccs_settings');
406
- delete_option('wccs_settings2');
407
- delete_option('wccs_settings3');
408
- $defaults = array(
409
- 'checkness' => array(
410
- 'position' => 'after_billing_form',
411
- 'wooccm_notification_email' => get_option( 'admin_email' ),
412
- 'payment_method_t' => true,
413
- 'shipping_method_t' => true,
414
- 'payment_method_d' => __( 'Payment Method','woocommerce-checkout-manager' ),
415
- 'shipping_method_d' => __( 'Shipping Method','woocommerce-checkout-manager' ),
416
- 'time_stamp_title' => __( 'Order Time','woocommerce-checkout-manager' ),
417
- ),
418
- );
419
-
420
- $shipping = array(
421
- 'country' => __( 'Country', 'woocommerce-checkout-manager' ),
422
- 'first_name' => __( 'First Name', 'woocommerce-checkout-manager' ),
423
- 'last_name' => __( 'Last Name', 'woocommerce-checkout-manager' ),
424
- 'company' => __( 'Company Name', 'woocommerce-checkout-manager' ),
425
- 'address_1' => __( 'Address', 'woocommerce-checkout-manager' ),
426
- 'address_2' => '',
427
- 'city' => __( 'Town/ City', 'woocommerce-checkout-manager' ),
428
- 'state' => __( 'State', 'woocommerce-checkout-manager' ),
429
- 'postcode' => __( 'Zip', 'woocommerce-checkout-manager' )
430
- );
431
- $ship = 0;
432
- foreach( $shipping as $name => $value ) {
433
-
434
- $defaults2['shipping_buttons'][$ship]['label'] = ( !empty( $value ) ? __( $value, 'woocommerce-checkout-manager' ) : false );
435
- $defaults2['shipping_buttons'][$ship]['cow'] = $name;
436
- $defaults2['shipping_buttons'][$ship]['checkbox'] = 'true';
437
- $defaults2['shipping_buttons'][$ship]['order'] = $ship + 1;
438
- $defaults2['shipping_buttons'][$ship]['type'] = 'wooccmtext';
439
-
440
- switch( $name ) {
441
-
442
- case 'country':
443
- $defaults2['shipping_buttons'][$ship]['position'] = 'form-row-wide';
444
- break;
445
-
446
- case 'first_name':
447
- $defaults2['shipping_buttons'][$ship]['position'] = 'form-row-first';
448
- break;
449
-
450
- case 'last_name':
451
- $defaults2['shipping_buttons'][$ship]['position'] = 'form-row-last';
452
- $defaults2['shipping_buttons'][$ship]['clear_row'] = true;
453
- break;
454
-
455
- case 'company':
456
- $defaults2['shipping_buttons'][$ship]['position'] = 'form-row-wide';
457
- break;
458
-
459
- case 'address_1':
460
- $defaults2['shipping_buttons'][$ship]['position'] = 'form-row-wide';
461
- $defaults2['shipping_buttons'][$ship]['placeholder'] = __('Street address', 'woocommerce-checkout-manager');
462
- break;
463
-
464
- case 'address_2':
465
- $defaults2['shipping_buttons'][$ship]['position'] = 'form-row-wide';
466
- $defaults2['shipping_buttons'][$ship]['placeholder'] = __('Apartment, suite, unit etc. (optional)', 'woocommerce-checkout-manager');
467
- break;
468
-
469
- case 'city':
470
- $defaults2['shipping_buttons'][$ship]['position'] = 'form-row-wide';
471
- $defaults2['shipping_buttons'][$ship]['placeholder'] = __('Town / City', 'woocommerce-checkout-manager');
472
- break;
473
-
474
- case 'state':
475
- $defaults2['shipping_buttons'][$ship]['position'] = 'form-row-first';
476
- break;
477
-
478
- }
479
-
480
- $ship++;
481
-
482
- }
483
-
484
- $billing = array(
485
- 'country' => __( 'Country', 'woocommerce-checkout-manager' ),
486
- 'first_name' => __( 'First Name', 'woocommerce-checkout-manager' ),
487
- 'last_name' => __( 'Last Name', 'woocommerce-checkout-manager' ),
488
- 'company' => __( 'Company Name', 'woocommerce-checkout-manager' ),
489
- 'address_1' => __( 'Address', 'woocommerce-checkout-manager' ),
490
- 'address_2' => '',
491
- 'city' => __( 'Town/ City', 'woocommerce-checkout-manager' ),
492
- 'state' => __( 'State', 'woocommerce-checkout-manager' ),
493
- 'postcode' => __( 'Zip', 'woocommerce-checkout-manager' ),
494
- 'email' => __( 'Email Address', 'woocommerce-checkout-manager' ),
495
- 'phone' => __( 'Phone', 'woocommerce-checkout-manager' )
496
- );
497
-
498
- $bill = 0;
499
-
500
- foreach( $billing as $name => $value ) {
501
-
502
- $defaults3['billing_buttons'][$bill]['label'] = ( !empty( $value ) ? __( $value, 'woocommerce-checkout-manager' ) : false );
503
- $defaults3['billing_buttons'][$bill]['cow'] = $name;
504
- $defaults3['billing_buttons'][$bill]['checkbox'] = 'true';
505
- $defaults3['billing_buttons'][$bill]['order'] = $bill + 1;
506
- $defaults3['billing_buttons'][$bill]['type'] = 'wooccmtext';
507
-
508
- switch( $name ) {
509
-
510
- case 'country':
511
- $defaults3['billing_buttons'][$bill]['position'] = 'form-row-wide';
512
- break;
513
-
514
- case 'first_name':
515
- $defaults3['billing_buttons'][$bill]['position'] = 'form-row-first';
516
- break;
517
-
518
- case 'last_name':
519
- $defaults3['billing_buttons'][$bill]['position'] = 'form-row-last';
520
- $defaults3['billing_buttons'][$bill]['clear_row'] = true;
521
- break;
522
-
523
- case 'company':
524
- $defaults3['billing_buttons'][$bill]['position'] = 'form-row-wide';
525
- break;
526
-
527
- case 'address_1':
528
- $defaults3['billing_buttons'][$bill]['position'] = 'form-row-wide';
529
- $defaults3['billing_buttons'][$bill]['placeholder'] = __('Street address', 'woocommerce-checkout-manager');
530
- break;
531
-
532
- case 'address_2':
533
- $defaults3['billing_buttons'][$bill]['position'] = 'form-row-wide';
534
- $defaults3['billing_buttons'][$bill]['placeholder'] = __('Apartment, suite, unit etc. (optional)', 'woocommerce-checkout-manager');
535
- break;
536
-
537
- case 'city':
538
- $defaults3['billing_buttons'][$bill]['position'] = 'form-row-wide';
539
- $defaults3['billing_buttons'][$bill]['placeholder'] = __('Town / City', 'woocommerce-checkout-manager');
540
- break;
541
-
542
- case 'state':
543
- $defaults3['billing_buttons'][$bill]['position'] = 'form-row-first';
544
- break;
545
-
546
- case 'postcode':
547
- $defaults3['billing_buttons'][$bill]['position'] = 'form-row-last';
548
- $defaults3['billing_buttons'][$bill]['placeholder'] = __('Postcode / Zip', 'woocommerce-checkout-manager');
549
- $defaults3['billing_buttons'][$bill]['clear_row'] = true;
550
- break;
551
-
552
- case 'email':
553
- $defaults3['billing_buttons'][$bill]['position'] = 'form-row-first';
554
- break;
555
-
556
- case 'phone':
557
- $defaults3['billing_buttons'][$bill]['position'] = 'form-row-last';
558
- $defaults3['billing_buttons'][$bill]['clear_row'] = true;
559
- break;
560
-
561
- }
562
-
563
- $bill++;
564
-
565
- }
566
- add_option( 'wccs_settings' , $defaults );
567
- add_option( 'wccs_settings2' , $defaults2 );
568
- add_option( 'wccs_settings3' , $defaults3 );
569
-
570
- // @mod - Change this to add_query_arg()
571
- echo '
572
- <script type="text/javascript">window.location.href="'.$_SERVER['PHP_SELF'].'?page=woocommerce-checkout-manager";</script>';
573
- echo '
574
- <noscript><meta http-equiv="refresh" content="0;url='.$_SERVER['PHP_SELF'].'?page=woocommerce-checkout-manager" /></noscript>';
575
- exit;
576
-
577
- }
578
- echo '
579
- <script type="text/javascript" src="'.plugins_url( '/woocommerce/assets/js/jquery-blockui/jquery.blockUI.js' ).'"></script>';
580
- echo '
581
  <div class="refreshwooccm">
582
  ';
583
 
584
- // display error
585
- settings_errors();
586
-
587
- // Now display the settings editing screen
588
-
589
- // header
590
- ?>
591
- <h2><?php _e( 'WooCommerce Checkout Manager', 'woocommerce-checkout-manager' ); ?></h2>
592
- <div id="content">
593
-
594
- <h2 class="nav-tab-wrapper add_tip_wrap">
595
- <a class="nav-tab general-tab nav-tab-active"><?php _e( 'General', 'woocommerce-checkout-manager' ); ?></a>
596
- <a class="nav-tab billing-tab"><?php _e( 'Billing', 'woocommerce-checkout-manager' ); ?></a>
597
- <a class="nav-tab shipping-tab"><?php _e( 'Shipping', 'woocommerce-checkout-manager' ); ?></a>
598
- <a class="nav-tab additional-tab"><?php _e( 'Additional', 'woocommerce-checkout-manager' ); ?></a>
599
- <a class="nav-tab star" href="https://wordpress.org/support/view/plugin-reviews/woocommerce-checkout-manager?filter=5" target="_blank">
600
- <div id="star-five" title="<?php _e('Like the plugin? Rate it! On WordPress.org', 'woocommerce-checkout-manager' ); ?>">
601
- <div class="star-rating">
602
- <div class="star star-full"></div>
603
- <div class="star star-full"></div>
604
- <div class="star star-full"></div>
605
- <div class="star star-full"></div>
606
- <div class="star star-full"></div>
607
- </div>
608
- <!-- .star-rating -->
609
- </div>
610
- <!-- #star-five -->
611
- </a>
612
- </h2>
613
- <!-- .nav-tab-wrapper -->
614
-
615
- <?php do_action('wooccm_run_color_innerpicker'); ?>
616
-
617
- <form name="reset_form" class="reset_form" method="post" action="">
618
- <input type="hidden" name="<?php echo esc_attr( $hidden_wccs_reset ); ?>" value="Y">
619
- <input type="submit" name="submit" id="wccs_reset_submit" class="button button-hero" value="Reset">
620
- </form>
621
- <script type="text/javascript">
622
- jQuery( '#wccs_reset_submit' ).click( 'click', function() {
623
- return window.confirm( '<?php echo esc_js( __( 'Are you sure you wish to reset the settings on this tab for WooCommerce Checkout Manager?', 'woocommerce-checkout-manager' ) ); ?>' );
624
- });
625
- </script>
626
 
627
- <?php require( WOOCCM_PATH.'includes/classes/import.php'); ?>
 
 
 
 
628
 
629
- <div class="wrap">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
630
 
631
- <!-- Shipping section -->
632
- <form name="wooccmform2" method="post" action="options.php" id="frm2">
633
 
634
- <?php settings_fields( 'wccs_options2' ); ?>
 
 
 
635
 
636
- <input type="submit" id="wccs_submit_button" style="display:none;" name="Submit" class="save-shipping wccs_submit_button button button-primary button-hero" value="<?php _e( 'Save Changes', 'woocommerce-checkout-manager' ); ?>" />
 
 
 
 
637
 
638
- <?php require( WOOCCM_PATH.'includes/templates/admin/woocheckout-shipping.php' ); ?>
639
 
640
- </form>
641
- <!-- #frm2 -->
642
 
643
- <!-- Billing section -->
644
- <form name="wooccmform3" method="post" action="options.php" id="frm3">
645
 
646
- <?php settings_fields( 'wccs_options3' ); ?>
647
 
648
- <input type="submit" id="wccs_submit_button" name="Submit" style="display:none;" class="save-billing wccs_submit_button button button-primary button-hero" value="<?php _e( 'Save Changes', 'woocommerce-checkout-manager' ); ?>" />
649
 
650
- <?php require( WOOCCM_PATH.'includes/templates/admin/woocheckout-billing.php' ); ?>
651
 
652
- </form>
653
- <!-- #frm3 -->
654
 
655
- <!-- Additional section -->
656
- <form name="wooccmform" method="post" action="options.php" id="frm1">
657
 
658
- <?php settings_fields( 'wccs_options' ); ?>
659
 
660
- <input type="submit" id="wccs_submit_button" name="Submit" class="save-additional wccs_submit_button button button-primary button-hero" value="<?php _e( 'Save Changes', 'woocommerce-checkout-manager' ); ?>" />
661
 
662
- <!-- Additional section -->
663
- <?php require( WOOCCM_PATH.'includes/templates/admin/woocheckout-additional.php' ); ?>
664
 
665
- <!-- General section -->
666
- <?php require( WOOCCM_PATH.'includes/templates/admin/woocheckout-general.php' ); ?>
667
 
668
- </form>
669
- <!-- #frm1 -->
670
 
671
- </div>
672
- <!-- .wrap -->
673
 
674
- </div>
675
- <!-- #content -->
676
 
677
- </div>
678
- <!-- #refreshwooccm -->
679
 
680
- <?php
 
681
 
682
- }
683
-
684
- function wooccm_options_validate( $input ) {
685
-
686
- $detect_error = 0;
687
- // translate additional fields
688
- if( !empty( $input['buttons'] ) ) {
689
- foreach( $input['buttons'] as $i => $btn ) {
690
-
691
- if( function_exists( 'icl_register_string' ) ) {
692
- if( !empty($btn['label']) ) {
693
- icl_register_string( 'WooCommerce Checkout Manager', $btn['label'], $btn['label'] );
694
- }
695
- if( !empty($btn['placeholder']) ) {
696
- icl_register_string( 'WooCommerce Checkout Manager', $btn['placeholder'], $btn['placeholder'] );
697
- }
698
-
699
- if( !empty($btn['option_array']) ) {
700
- $mysecureop = explode( '||', $btn['option_array']);
701
- foreach( $mysecureop as $one ) {
702
- icl_register_string( 'WooCommerce Checkout Manager', $one, $one );
703
- }
704
- }
705
- }
706
 
707
- if( !empty($btn['role_options']) && !empty($btn['role_options2']) ) {
708
- $input['buttons'][$i]['role_options2'] = '';
709
- add_settings_error(
710
- 'wooccm_settings_errors',
711
- esc_attr( 'settings_updated' ),
712
- __( 'Sorry! An error occurred. WooCommerce Checkout Manager requires you to not have values in both role options. OK.', 'woocommerce-checkout-manager' ),
713
- 'error'
714
- );
715
- }
716
-
717
- if( !empty($btn['single_p']) && !empty($btn['single_px']) ) {
718
- $input['buttons'][$i]['single_px'] = '';
719
- add_settings_error(
720
- 'wooccm_settings_errors',
721
- esc_attr( 'settings_updated' ),
722
- __( 'Sorry! An error occurred. WooCommerce Checkout Manager requires you to not have values in both hidden product options. OK.', 'woocommerce-checkout-manager' ),
723
- 'error'
724
- );
725
- }
726
-
727
- if( !empty($btn['single_p_cat']) && !empty($btn['single_px_cat']) ) {
728
- $input['buttons'][$i]['single_px_cat'] = '';
729
- add_settings_error(
730
- 'wooccm_settings_errors',
731
- esc_attr( 'settings_updated' ),
732
- __( 'Sorry! An error occurred. WooCommerce Checkout Manager requires you to not have values in both hidden category options. OK.', 'woocommerce-checkout-manager' ),
733
- 'error'
734
- );
735
- }
736
-
737
- if( empty( $btn['cow'] ) && empty( $btn['label'] ) && empty( $btn['placeholder'] ) ) {
738
- unset( $input['buttons'][$i] );
739
-
740
- if( $i != 999 ) {
741
- $detect_error++;
742
- $fieldnum = $i + 1;
743
- add_settings_error(
744
- 'wooccm_settings_errors',
745
- esc_attr( 'settings_updated' ),
746
- __( 'Sorry! An error occurred. WooCommerce Checkout Manager removed Additional field #'.$fieldnum.' because no Label or Placeholder name was provided.', 'woocommerce-checkout-manager' ),
747
- 'error'
748
- );
749
- }
750
- }
751
-
752
- if ( empty( $btn['cow'] ) && (!empty( $btn['label'] ) || !empty( $btn['placeholder'] )) ) {
753
- $newNum = $i + 1;
754
- if( wooccm_mul_array( 'myfield'.$newNum , $input['buttons'] ) ) {
755
- $input['buttons'][$i]['cow'] = 'myfield'.$newNum.'c';
756
- } else {
757
- $input['buttons'][$i]['cow'] = 'myfield'.$newNum;
758
- }
759
- }
760
 
761
- if( !empty( $btn['cow'] ) && empty( $btn['label'] ) && empty( $btn['placeholder'] ) ) {
762
- unset( $input['buttons'][$i] );
763
-
764
- if( $i != 999 ) {
765
- $detect_error++;
766
- $fieldnum = $i + 1;
767
- add_settings_error(
768
- 'wooccm_settings_errors',
769
- esc_attr( 'settings_updated' ),
770
- __( 'Sorry! An error occurred. WooCommerce Checkout Manager removed Additional field #'.$fieldnum.' because no Label or Placeholder name was provided.', 'woocommerce-checkout-manager' ),
771
- 'error'
772
- );
773
- }
774
- }
775
 
776
- }
777
- }
778
- if( $detect_error == 0 ) {
779
- add_settings_error(
780
- 'wooccm_settings_errors',
781
- esc_attr( 'settings_updated' ),
782
- __( 'Your changes have been saved.', 'woocommerce-checkout-manager' ),
783
- 'updated'
784
- );
785
- }
786
- return $input;
787
 
 
788
  }
789
 
790
- function wooccm_options_validate_shipping( $input ) {
791
-
792
- $detect_error = 0;
793
- // translate shipping fields
794
- if( !empty( $input['shipping_buttons'] ) ) {
795
- foreach( $input['shipping_buttons'] as $i => $btn ) {
796
-
797
- if( function_exists( 'icl_register_string' ) ) {
798
- if( !empty($btn['label']) ) {
799
- icl_register_string( 'WooCommerce Checkout Manager', $btn['label'], $btn['label'] );
800
- }
801
- if( !empty($btn['placeholder']) ) {
802
- icl_register_string( 'WooCommerce Checkout Manager', $btn['placeholder'], $btn['placeholder'] );
803
- }
804
-
805
- if( !empty($btn['option_array']) ) {
806
- $mysecureop = explode( '||', $btn['option_array']);
807
- foreach( $mysecureop as $one ) {
808
- icl_register_string( 'WooCommerce Checkout Manager', $one, $one );
809
- }
810
- }
811
- }
812
-
813
- if( !empty($btn['role_options']) && !empty($btn['role_options2']) ) {
814
- $input['buttons'][$i]['role_options2'] = '';
815
- add_settings_error(
816
- 'wooccm_settings_errors',
817
- esc_attr( 'settings_updated' ),
818
- __( 'Sorry! An error occurred. WooCommerce Checkout Manager requires you to not have values in both role options.', 'woocommerce-checkout-manager' ),
819
- 'error'
820
- );
821
- }
822
-
823
- if( !empty($btn['single_p']) && !empty($btn['single_px']) ) {
824
- $input['buttons'][$i]['single_px'] = '';
825
- add_settings_error(
826
- 'wooccm_settings_errors',
827
- esc_attr( 'settings_updated' ),
828
- __( 'Sorry! An error occurred. WooCommerce Checkout Manager requires you to not have values in both hidden product options.', 'woocommerce-checkout-manager' ),
829
- 'error'
830
- );
831
- }
832
-
833
- if( !empty($btn['single_p_cat']) && !empty($btn['single_px_cat']) ) {
834
- $input['buttons'][$i]['single_px_cat'] = '';
835
- add_settings_error(
836
- 'wooccm_settings_errors',
837
- esc_attr( 'settings_updated' ),
838
- __( 'Sorry! An error occurred. WooCommerce Checkout Manager requires you to not have values in both hidden category options.', 'woocommerce-checkout-manager' ),
839
- 'error'
840
- );
841
- }
842
-
843
- if( empty( $btn['cow'] ) && empty( $btn['label'] ) && empty( $btn['placeholder'] ) ) {
844
- unset( $input['shipping_buttons'][$i] );
845
-
846
- if( $i != 999 ) {
847
- $detect_error++;
848
- $fieldnum = $i + 1;
849
- add_settings_error(
850
- 'wooccm_settings_errors',
851
- esc_attr( 'settings_updated' ),
852
- __( 'Sorry! An error occurred. WooCommerce Checkout Manager removed Shipping field #'.$fieldnum.' because no Label or Placeholder name was provided.', 'woocommerce-checkout-manager' ),
853
- 'error'
854
- );
855
- }
856
- }
857
-
858
- if( empty( $btn['cow'] ) && (!empty( $btn['label'] ) || !empty( $btn['placeholder'] )) ) {
859
- $newNum = $i + 1;
860
- if( wooccm_mul_array( 'myfield'.$newNum , $input['shipping_buttons'] ) ) {
861
- $input['shipping_buttons'][$i]['cow'] = 'myfield'.$newNum.'c';
862
- } else {
863
- $input['shipping_buttons'][$i]['cow'] = 'myfield'.$newNum;
864
- }
865
- }
866
-
867
- if( !empty( $btn['cow'] ) && empty( $btn['label'] ) && empty( $btn['placeholder'] ) ) {
868
- unset( $input['shipping_buttons'][$i] );
869
-
870
- if( $i != 999 ) {
871
- $detect_error++;
872
- $fieldnum = $i + 1;
873
- add_settings_error(
874
- 'wooccm_settings_errors',
875
- esc_attr( 'settings_updated' ),
876
- __( 'Sorry! An error occurred. WooCommerce Checkout Manager removed Shipping field #'.$fieldnum.' because no Label or Placeholder name was provided.', 'woocommerce-checkout-manager' ),
877
- 'error'
878
- );
879
- }
880
- }
881
-
882
- }
883
- }
884
-
885
- if( $detect_error == 0 ) {
886
- add_settings_error(
887
- 'wooccm_settings_errors',
888
- esc_attr( 'settings_updated' ),
889
- __( 'Your changes have been saved.', 'woocommerce-checkout-manager' ),
890
- 'updated'
891
- );
892
- }
893
-
894
- return $input;
895
-
896
  }
897
 
898
- function wooccm_options_validate_billing( $input ) {
899
-
900
- $detect_error = 0;
901
-
902
- // translate billing fields
903
- if( !empty( $input['billing_buttons'] ) ) {
904
- foreach( $input['billing_buttons'] as $i => $btn ) {
905
-
906
- if( function_exists( 'icl_register_string' ) ) {
907
- if( !empty($btn['label']) ) {
908
- icl_register_string( 'WooCommerce Checkout Manager', $btn['label'], $btn['label'] );
909
- }
910
- if( !empty($btn['placeholder']) ) {
911
- icl_register_string( 'WooCommerce Checkout Manager', $btn['placeholder'], $btn['placeholder'] );
912
- }
913
-
914
- if( !empty($btn['option_array']) ) {
915
- $mysecureop = explode( '||', $btn['option_array']);
916
- foreach( $mysecureop as $one ) {
917
- icl_register_string( 'WooCommerce Checkout Manager', $one, $one );
918
- }
919
- }
920
- }
921
-
922
- if( !empty($btn['role_options']) && !empty($btn['role_options2']) ) {
923
- $input['buttons'][$i]['role_options2'] = '';
924
- add_settings_error(
925
- 'wooccm_settings_errors',
926
- esc_attr( 'settings_updated' ),
927
- __( 'Sorry! An error occurred. WooCommerce Checkout Manager requires you to not have values in both role options.', 'woocommerce-checkout-manager' ),
928
- 'error'
929
- );
930
- }
931
-
932
- if( !empty($btn['single_p']) && !empty($btn['single_px']) ) {
933
- $input['buttons'][$i]['single_px'] = '';
934
- add_settings_error(
935
- 'wooccm_settings_errors',
936
- esc_attr( 'settings_updated' ),
937
- __( 'Sorry! An error occurred. WooCommerce Checkout Manager requires you to not have values in both hidden product options.', 'woocommerce-checkout-manager' ),
938
- 'error'
939
- );
940
- }
941
-
942
- if( !empty($btn['single_p_cat']) && !empty($btn['single_px_cat']) ) {
943
- $input['buttons'][$i]['single_px_cat'] = '';
944
- add_settings_error(
945
- 'wooccm_settings_errors',
946
- esc_attr( 'settings_updated' ),
947
- __( 'Sorry! An error occurred. WooCommerce Checkout Manager requires you to not have values in both hidden category options.', 'woocommerce-checkout-manager' ),
948
- 'error'
949
- );
950
- }
951
-
952
- if( empty( $btn['cow'] ) && empty( $btn['label'] ) && empty( $btn['placeholder'] ) ) {
953
- unset( $input['billing_buttons'][$i] );
954
-
955
- if( $i != 999 ) {
956
- $detect_error++;
957
- $fieldnum = $i + 1;
958
- add_settings_error(
959
- 'wooccm_settings_errors',
960
- esc_attr( 'settings_updated' ),
961
- __( 'Sorry! An error occurred. WooCommerce Checkout Manager removed Billing field #'.$fieldnum.' because no Label or Placeholder name was provided.', 'woocommerce-checkout-manager' ),
962
- 'error'
963
- );
964
- }
965
- }
966
-
967
- if( empty( $btn['cow'] ) && (!empty( $btn['label'] ) || !empty( $btn['placeholder'] )) ) {
968
- $newNum = $i + 1;
969
- if( wooccm_mul_array( 'myfield'.$newNum, $input['billing_buttons'] ) ) {
970
- $input['billing_buttons'][$i]['cow'] = 'myfield'.$newNum.'c';
971
- } else {
972
- $input['billing_buttons'][$i]['cow'] = 'myfield'.$newNum;
973
- }
974
- }
975
-
976
- if( !empty( $btn['cow'] ) && empty( $btn['label'] ) && empty( $btn['placeholder'] ) ) {
977
- $detect_error++;
978
- unset( $input['billing_buttons'][$i] );
979
-
980
- if( $i != 999 ) {
981
- $detect_error++;
982
- $fieldnum = $i + 1;
983
- add_settings_error(
984
- 'wooccm_settings_errors',
985
- esc_attr( 'settings_updated' ),
986
- __( 'Sorry! An error occurred. WooCommerce Checkout Manager removed Billing field #'.$fieldnum.' because no Label or Placeholder name was provided.', 'woocommerce-checkout-manager' ),
987
- 'error'
988
- );
989
- }
990
- }
991
-
992
- }
993
- }
994
-
995
- if( $detect_error == 0 ) {
996
- add_settings_error(
997
- 'wooccm_settings_errors',
998
- esc_attr( 'settings_updated' ),
999
- __( 'Your changes have been saved.', 'woocommerce-checkout-manager' ),
1000
- 'updated'
1001
- );
1002
- }
1003
-
1004
- return $input;
1005
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1006
  }
1007
 
1008
  function wooccm_admin_notices() {
1009
 
1010
- // Check the User has the manage_options capability
1011
- if( current_user_can( 'manage_options' ) == false )
1012
- return;
1013
-
1014
- // @mod - Removed as it tends to blow people Options up...
1015
- // Data update from legacy (<3.0)
1016
- // wooccm_admin_updater_notice();
1017
 
1018
- // Check whether we are on the WooCommerce Checkout Manager screen
1019
- $screen = get_current_screen();
 
 
 
1020
 
1021
- if( get_option( 'wooccm_beta_notice' ) == false ) {
1022
- $beta_url = 'https://www.visser.com.au/plugins/woocommerce-checkout-manager/#beta';
1023
- $support_url = 'https://wordpress.org/support/plugin/woocommerce-checkout-manager#postform';
1024
- $dismiss_url = add_query_arg( array( 'action' => 'wooccm_dismiss_beta_notice', '_wpnonce' => wp_create_nonce( 'wooccm_dismiss_beta_notice' ) ) );
1025
 
1026
- $message = '<span style="float:right;"><a href="' . $dismiss_url . '" class="woocommerce-message-close notice-dismiss">' . __( 'Dismiss', 'woocommerce-checkout-manager' ) . '</a></span>';
1027
- $message .= __( '<strong>WooCommerce Checkout Manager Notice:</strong> We urgently need developers, integrators and interested store owners to test early Plugin releases and provide feedback to help stabilise the 4.0+ series. Can you help?', 'woocommerce-checkout-manager' );
1028
- $message .= '
1029
  <p class="submit">
1030
- <a href="' . $beta_url . '" target="_blank" class="button-primary button-hero">' . __( 'Join the Developers list', 'woocommerce-checkout-manager' ) . '</a>
1031
- <a href="' . $support_url . '" target="_blank" class="button-secondary button-hero">' . __( 'Send feedback', 'woocommerce-checkout-manager' ) . '</a>
1032
  </p>';
1033
- echo wooccm_admin_notice_html( $message );
1034
- }
1035
-
1036
  }
1037
 
1038
  function wooccm_admin_updater_notice() {
1039
 
1040
- if( in_array( get_option( WOOCCM_PREFIX . '_update_notice' ), array( 1, 'yep' ) ) == true )
1041
- return;
1042
-
1043
- $dismiss_url = add_query_arg( array( 'action' => 'wooccm_dismiss_update_notice', '_wpnonce' => wp_create_nonce( 'wooccm_dismiss_update_notice' ) ) );
1044
-
1045
- ?>
1046
- <form method="post" name="clickhere" action="">
1047
- <div id="message" class="updated settings-error click-here-wooccm">
1048
- <p>
1049
- <span style="float:right;"><a href="<?php echo $dismiss_url; ?>" class="woocommerce-message-close notice-dismiss"><?php _e( 'Dismiss', 'woocommerce-checkout-manager' ); ?></a></span>
1050
- <?php _e( '<strong>WooCommerce Checkout Manager Data Update Required</strong> &#8211; We just need to update the settings for WooCommerce Checkout Manager to the latest version.', 'woocommerce-checkout-manager' ); ?>
1051
- </p>
1052
- <?php
1053
- // Check whether we are on the WooCommerce Checkout Manager screen
1054
- $screen = get_current_screen();
1055
- if( strstr( $screen->base, 'woocommerce-checkout-manager' ) ) {
1056
- ?>
1057
- <p class="submit">
1058
- <input type="submit" class="wooccm-update-now button-primary button-hero" value="<?php _e( 'Run the updater', 'woocommerce-checkout-manager' ); ?>" />
1059
- </p>
1060
- <?php
1061
- } else {
1062
- ?>
1063
- <p class="submit">
1064
- <a href="<?php echo add_query_arg( 'page', 'woocommerce-checkout-manager' ); ?>" class="button-primary button-hero "><?php _e( 'Open WooCheckout', 'woocommerce-checkout-manager' ); ?></a>
1065
- </p>
1066
- <?php
1067
- }
1068
- ?>
1069
- </div>
1070
- <!-- #message -->
1071
- <input type="hidden" name="click-here-wooccm" value="y" />
1072
- </form>
1073
- <?php
1074
- if( strstr( $screen->base, 'woocommerce-checkout-manager' ) ) {
1075
- ?>
1076
- <script type="text/javascript">
1077
- jQuery( '.wooccm-update-now' ).click( 'click', function() {
1078
- return window.confirm( '<?php echo esc_js( __( 'It is strongly recommended that you backup your database before proceeding. Are you sure you wish to run the updater now?', 'woocommerce-checkout-manager' ) ); ?>' );
1079
- });
1080
- </script>
1081
- <?php
1082
-
1083
- if(
1084
- isset( $_POST['click-here-wooccm'] ) &&
1085
- sanitize_text_field( $_POST['click-here-wooccm'] ) == 'y'
1086
- ) {
1087
- // @mod - We need to check this file exists
1088
- ?>
1089
-
1090
- <!-- First Use -->
1091
- <script type="text/javascript">
1092
- jQuery(document).ready(function($) {
1093
-
1094
- $( '#wpbody-content' ).block({message:null,overlayCSS:{background:"#fff url(<?php echo plugins_url( 'woocommerce/assets/images/ajax-loader.gif' ); ?> ) no-repeat center",opacity:.6}});
1095
-
1096
- var form = $('#frm1');
1097
- data = $('#frm1');
1098
- forma = $('#frm2');
1099
- dataa = $('#frm2');
1100
- formb = $('#frm3');
1101
- datab = $('#frm3');
1102
-
1103
- $.ajax( {
1104
- type: "POST",
1105
- url: form.attr( 'action' ),
1106
- data: data.serialize(),
1107
- success: function( response ) {
1108
-
1109
- $.ajax( {
1110
- type: "POST",
1111
- url: forma.attr( 'action' ),
1112
- data: dataa.serialize(),
1113
- success: function( response ) {}
1114
- });
1115
-
1116
- $.ajax( {
1117
- type: "POST",
1118
- url: formb.attr( 'action' ),
1119
- data: datab.serialize(),
1120
- success: function( response ) {}
1121
- });
1122
- $('.settings-error.click-here-wooccm').hide();
1123
- $('#wpbody-content').unblock();
1124
-
1125
- }
1126
- });
1127
-
1128
- });
1129
- </script>
1130
-
1131
- <?php
1132
- update_option( WOOCCM_PREFIX . '_update_notice', 1 );
1133
- }
1134
-
1135
- }
1136
-
1137
  }
1138
 
1139
  // Additional details
1140
- function wooccm_admin_edit_order_additional_details( $order ) {
1141
 
1142
- global $post;
1143
 
1144
- if( version_compare( wooccm_get_woo_version(), '2.7', '>=' ) ) {
1145
- $order_id = ( method_exists( $order, 'get_id' ) ? $order->get_id() : $order->id );
1146
- } else {
1147
- $order_id = ( isset( $order->id ) ? $order->id : 0 );
1148
- }
1149
 
1150
- $options = get_option( 'wccs_settings' );
1151
- $buttons = ( isset( $options['buttons'] ) ? $options['buttons'] : false );
1152
- if( !empty( $buttons ) ) {
1153
- echo '
1154
  <p>&nbsp;</p>
1155
- <h4>' . __( 'Additional Details', 'woocommerce-checkout-manager' ) . '</h4>';
1156
- foreach( $buttons as $btn ) {
1157
-
1158
- if(
1159
- ( get_post_meta( $order_id , $btn['cow'], true ) !== '' ) &&
1160
- !empty( $btn['label'] ) &&
1161
- $btn['type'] !== 'heading' &&
1162
- $btn['type'] !== 'multiselect' &&
1163
- $btn['type'] !== 'wooccmupload' &&
1164
- $btn['type'] !== 'multicheckbox'
1165
- ) {
1166
- echo '
1167
  <p id="additional_' . $btn['cow'] . '" class="form-field form-field-wide form-field-type-' . $btn['type'] . '">
1168
- <strong title="' . sprintf( __( 'ID: %s | Field Type: %s', 'woocommerce-checkout-manager' ), $btn['cow'], __( 'Generic', 'woocommerce-checkout-manager' ) ) . '">
1169
- '.wooccm_wpml_string( trim( $btn['label'] ) ).':</strong><br />' . nl2br( get_post_meta( $order_id , $btn['cow'], true ) ) . '
1170
  </p>
1171
  <!-- .form-field-type-... -->';
1172
- } elseif(
1173
- !empty( $btn['label'] ) &&
1174
- $btn['type'] !== 'wooccmupload' &&
1175
- $btn['type'] !== 'multiselect' &&
1176
- $btn['type'] !== 'multicheckbox' &&
1177
- $btn['type'] == 'heading'
1178
- ) {
1179
- echo '
1180
- <h4>' .wooccm_wpml_string( trim( $btn['label'] ) ). '</h4>';
1181
- } elseif(
1182
- ( get_post_meta( $order_id , $btn['cow'], true ) !== '' ) &&
1183
- !empty( $btn['label'] ) &&
1184
- $btn['type'] !== 'heading' &&
1185
- $btn['type'] !== 'wooccmupload' &&
1186
- (
1187
- $btn['type'] == 'multiselect' || $btn['type'] == 'multicheckbox'
1188
- )
1189
- ) {
1190
- $value = get_post_meta( $order_id, $btn['cow'], true );
1191
- $strings = maybe_unserialize( $value );
1192
- echo '
1193
  <p class="form-field form-field-wide form-field-type-' . $btn['type'] . '">
1194
- <strong title="' . sprintf( __( 'ID: %s | Field Type: %s', 'woocommerce-checkout-manager' ), $btn['cow'], __( 'Multi-Select or Multi-Checkbox', 'woocommerce-checkout-manager' ) ) . '">'.wooccm_wpml_string( trim( $btn['label'] ) ).':</strong> ';
1195
- if( !empty( $strings ) ) {
1196
- if( is_array( $strings ) ) {
1197
- $iww = 0;
1198
- $len = count($strings);
1199
- foreach( $strings as $key ) {
1200
- if( $iww == $len - 1 ) {
1201
- echo '' . wooccm_wpml_string( $key );
1202
- } else {
1203
- echo '' . wooccm_wpml_string( $key ) . ', ';
1204
- }
1205
- $iww++;
1206
- }
1207
- }
1208
- } else {
1209
- echo '-';
1210
- }
1211
- echo '
1212
  </p>
1213
  <!-- .form-field-type-multiselect .form-field-type-multicheckbox -->';
1214
- } elseif(
1215
- ( get_post_meta( $order_id , $btn['cow'], true ) !== '' ) &&
1216
- $btn['type'] == 'wooccmupload'
1217
- ) {
1218
- $attachments = get_post_meta( $order_id, $btn['cow'], true );
1219
- if( !empty( $attachments ) ) {
1220
- // Check for delimiter
1221
- if( strstr( $attachments, '||' ) !== false )
1222
- $attachments = explode( '||', $attachments );
1223
- else if( strstr( $attachments, ',' ) !== false )
1224
- $attachments = explode( ',', $attachments );
1225
- else if( is_numeric( $attachments ) )
1226
- $attachments = array( $attachments );
1227
- }
1228
- echo '
1229
  <p class="form-field form-field-wide form-field-type-wooccmupload">
1230
- <strong>'.wooccm_wpml_string( trim( $btn['label'] ) ).':</strong>';
1231
- if( empty( $attachments ) ) {
1232
- echo '<br />';
1233
- echo '-';
1234
- }
1235
- echo '
1236
  </p>' . "\n";
1237
- if( !empty( $attachments ) ) {
1238
- echo '<ul>' . "\n";
1239
- foreach( $attachments as $attachment ) {
1240
- $attachment_url = wp_get_attachment_url( $attachment );
1241
- if( !empty( $attachment_url ) )
1242
- echo '<li><a href="' . $attachment_url . '" target="_blank">' . basename( $attachment_url ) . '</a></li>' . "\n";
1243
- }
1244
- echo '</ul>';
1245
- }
1246
- echo '
1247
  <!-- .form-field-type-wooccmupload -->';
1248
- }
1249
-
1250
- }
1251
- }
1252
-
1253
  }
1254
 
1255
  // Billing details
1256
- function wooccm_admin_edit_order_billing_details( $order ) {
1257
-
1258
- global $post;
1259
-
1260
- $order_id = ( isset( $post->ID ) ? $post->ID : false );
1261
-
1262
- $options = get_option( 'wccs_settings3' );
1263
- $buttons = ( isset( $options['billing_buttons'] ) ? $options['billing_buttons'] : false );
1264
- if( !empty( $buttons ) ) {
1265
- $fields = array(
1266
- 'country',
1267
- 'first_name',
1268
- 'last_name',
1269
- 'company',
1270
- 'address_1',
1271
- 'address_2',
1272
- 'city',
1273
- 'state',
1274
- 'postcode',
1275
- 'email',
1276
- 'phone'
1277
- );
1278
- foreach( $buttons as $btn ) {
1279
-
1280
- if( !in_array( $btn['cow'], $fields ) ) {
1281
- if(
1282
- ( get_post_meta( $order_id , sprintf( '_billing_%s', $btn['cow'] ), true ) !== '' ) &&
1283
- !empty( $btn['label'] ) &&
1284
- $btn['type'] !== 'heading' &&
1285
- $btn['type'] !== 'multiselect' &&
1286
- $btn['type'] !== 'wooccmupload' &&
1287
- $btn['type'] !== 'multicheckbox'
1288
- ) {
1289
- echo '
1290
  <p id="billing_' . $btn['cow'] . '" class="form-field form-field-wide form-field-type-' . $btn['type'] . '">
1291
- <strong title="' . sprintf( __( 'ID: %s | Field Type: %s', 'woocommerce-checkout-manager' ), sprintf( '_billing_%s', $btn['cow'] ), __( 'Generic', 'woocommerce-checkout-manager' ) ) . '">
1292
- '.wooccm_wpml_string( trim( $btn['label'] ) ).':</strong><br />'.nl2br( get_post_meta( $order_id , sprintf( '_billing_%s', $btn['cow'] ), true ) ).'
1293
  </p>
1294
  <!-- .form-field-type-... -->';
1295
- } elseif(
1296
- !empty( $btn['label'] ) &&
1297
- $btn['type'] !== 'wooccmupload' &&
1298
- $btn['type'] !== 'multiselect' &&
1299
- $btn['type'] !== 'multicheckbox' &&
1300
- $btn['type'] == 'heading'
1301
- ) {
1302
- echo '
1303
- <h4>' .wooccm_wpml_string( trim( $btn['label'] ) ). '</h4>';
1304
- } elseif(
1305
- ( get_post_meta( $order_id , sprintf( '_billing_%s', $btn['cow'] ), true ) !== '' ) &&
1306
- !empty( $btn['label'] ) &&
1307
- $btn['type'] !== 'heading' &&
1308
- $btn['type'] !== 'wooccmupload' &&
1309
- (
1310
- $btn['type'] == 'multiselect' || $btn['type'] == 'multicheckbox'
1311
- )
1312
- ) {
1313
- $value = get_post_meta( $order_id , sprintf( '_billing_%s', $btn['cow'] ), true );
1314
- $strings = maybe_unserialize( $value );
1315
-
1316
- echo '
1317
  <p class="form-field form-field-wide form-field-type-' . $btn['type'] . '">
1318
- <strong title="' . sprintf( __( 'ID: %s | Field Type: %s', 'woocommerce-checkout-manager' ), sprintf( '_billing_%s', $btn['cow'] ), __( 'Multi-Select or Multi-Checkbox', 'woocommerce-checkout-manager' ) ) . '">'.wooccm_wpml_string( trim( $btn['label'] ) ).':</strong> ';
1319
- if( !empty( $strings ) ) {
1320
- if( is_array( $strings ) ) {
1321
- $iww = 0;
1322
- $len = count( $strings );
1323
- foreach( $strings as $key ) {
1324
- if( $iww == $len - 1 ) {
1325
- echo wooccm_wpml_string( $key );
1326
- } else {
1327
- echo wooccm_wpml_string( $key ) . ', ';
1328
- }
1329
- $iww++;
1330
- }
1331
- } else {
1332
- echo $strings;
1333
- }
1334
- } else {
1335
- echo '-';
1336
- }
1337
- echo '
1338
  </p>
1339
  <!-- .form-field-type-multiselect .form-field-type-multicheckbox -->';
1340
- } elseif(
1341
- ( get_post_meta( $order_id , sprintf( '_billing_%s', $btn['cow'] ), true ) !== '' ) &&
1342
- $btn['type'] == 'wooccmupload'
1343
- ) {
1344
- $attachments = get_post_meta( $order_id, sprintf( '_billing_%s', $btn['cow'] ), true );
1345
- if( !empty( $attachments ) ) {
1346
- // Check for delimiter
1347
- if( strstr( $attachments, '||' ) !== false )
1348
- $attachments = explode( '||', $attachments );
1349
- else if( strstr( $attachments, ',' ) !== false )
1350
- $attachments = explode( ',', $attachments );
1351
- else if( is_numeric( $attachments ) )
1352
- $attachments = array( $attachments );
1353
- }
1354
- $btn['label'] = ( !empty( $btn['force_title2'] ) ? $btn['force_title2'] : $btn['label'] );
1355
- echo '
1356
  <p class="form-field form-field-wide form-field-type-wooccmupload">
1357
- <strong>'.wooccm_wpml_string( trim( $btn['label'] ) ).':</strong>';
1358
- if( empty( $attachments ) ) {
1359
- echo '<br />';
1360
- echo '-';
1361
- }
1362
- echo '
1363
  </p>' . "\n";
1364
- if( !empty( $attachments ) ) {
1365
- echo '<ul>' . "\n";
1366
- foreach( $attachments as $attachment ) {
1367
- $attachment_url = wp_get_attachment_url( $attachment );
1368
- if( !empty( $attachment_url ) )
1369
- echo '<li><a href="' . $attachment_url . '" target="_blank">' . basename( $attachment_url ) . '</a></li>' . "\n";
1370
- }
1371
- echo '</ul>';
1372
- }
1373
- echo '
1374
  <!-- .form-field-type-wooccmupload -->';
1375
- }
1376
- }
1377
-
1378
- }
1379
- }
1380
-
1381
  }
1382
 
1383
  // Shipping details
1384
- function wooccm_admin_edit_order_shipping_details( $order ) {
1385
-
1386
- global $post;
1387
-
1388
- $order_id = ( isset( $post->ID ) ? $post->ID : false );
1389
-
1390
- $options = get_option( 'wccs_settings2' );
1391
- $buttons = ( isset( $options['shipping_buttons'] ) ? $options['shipping_buttons'] : false );
1392
- if( !empty( $buttons ) ) {
1393
- $fields = array(
1394
- 'country',
1395
- 'first_name',
1396
- 'last_name',
1397
- 'company',
1398
- 'address_1',
1399
- 'address_2',
1400
- 'city',
1401
- 'state',
1402
- 'postcode'
1403
- );
1404
- foreach( $buttons as $btn ) {
1405
-
1406
- if( !in_array( $btn['cow'], $fields ) ) {
1407
- if(
1408
- ( get_post_meta( $order_id , sprintf( '_shipping_%s', $btn['cow'] ), true ) !== '' ) &&
1409
- !empty( $btn['label'] ) &&
1410
- $btn['type'] !== 'wooccmupload' &&
1411
- $btn['type'] !== 'heading' &&
1412
- $btn['type'] !== 'multiselect' &&
1413
- $btn['type'] !== 'multicheckbox'
1414
- ) {
1415
- echo '
1416
  <p id="shipping_' . $btn['cow'] . '" class="form-field form-field-wide form-field-type-' . $btn['type'] . '">
1417
- <strong title="' . sprintf( __( 'ID: %s | Field Type: %s', 'woocommerce-checkout-manager' ), sprintf( '_shipping_%s', $btn['cow'] ), __( 'Generic', 'woocommerce-checkout-manager' ) ) . '">
1418
- '.wooccm_wpml_string( trim( $btn['label'] ) ).':</strong><br />'.nl2br( get_post_meta( $order_id , sprintf( '_shipping_%s', $btn['cow'] ), true ) ).'
1419
  </p>
1420
  <!-- .form-field-type-... -->';
1421
- } elseif(
1422
- !empty( $btn['label'] ) &&
1423
- $btn['type'] !== 'multiselect' &&
1424
- $btn['type'] !== 'multicheckbox' &&
1425
- $btn['type'] == 'heading'
1426
- ) {
1427
- echo '
1428
- <h4>' .wooccm_wpml_string( trim( $btn['label'] ) ). '</h4>';
1429
- } elseif(
1430
- ( get_post_meta( $order_id, sprintf( '_shipping_%s', $btn['cow'] ), true ) !== '' ) &&
1431
- !empty( $btn['label'] ) &&
1432
- $btn['type'] !== 'heading' &&
1433
- $btn['type'] !== 'wooccmupload' &&
1434
- (
1435
- $btn['type'] == 'multiselect' || $btn['type'] == 'multicheckbox'
1436
- )
1437
- ) {
1438
- $value = get_post_meta( $order_id, sprintf( '_shipping_%s', $btn['cow'] ), true );
1439
- $strings = maybe_unserialize( $value );
1440
- echo '
1441
  <p class="form-field form-field-wide form-field-type-' . $btn['type'] . '">
1442
- <strong title="' . sprintf( __( 'ID: %s | Field Type: %s', 'woocommerce-checkout-manager' ), sprintf( '_shipping_%s', $btn['cow'] ), __( 'Multi-Select or Multi-Checkbox', 'woocommerce-checkout-manager' ) ) . '">'.wooccm_wpml_string( trim( $btn['label'] ) ).':</strong> ';
1443
- if( !empty( $strings ) ) {
1444
- if( is_array( $strings ) ) {
1445
- $iww = 0;
1446
- $len = count( $strings );
1447
- foreach( $strings as $key ) {
1448
- if( $iww == $len - 1 ) {
1449
- echo wooccm_wpml_string($key);
1450
- } else {
1451
- echo wooccm_wpml_string($key).', ';
1452
- }
1453
- $iww++;
1454
- }
1455
- } else {
1456
- echo $strings;
1457
- }
1458
- } else {
1459
- echo '-';
1460
- }
1461
- echo '
1462
  </p>
1463
  <!-- .form-field-type-multiselect .form-field-type-multicheckbox -->';
1464
- } elseif(
1465
- ( get_post_meta( $order_id , sprintf( '_shipping_%s', $btn['cow'] ), true ) !== '' ) &&
1466
- $btn['type'] == 'wooccmupload'
1467
- ) {
1468
- $attachments = get_post_meta( $order_id, sprintf( '_shipping_%s', $btn['cow'] ), true );
1469
- if( !empty( $attachments ) ) {
1470
- // Check for delimiter
1471
- if( strstr( $attachments, '||' ) !== false )
1472
- $attachments = explode( '||', $attachments );
1473
- else if( strstr( $attachments, ',' ) !== false )
1474
- $attachments = explode( ',', $attachments );
1475
- else if( is_numeric( $attachments ) )
1476
- $attachments = array( $attachments );
1477
- }
1478
- $btn['label'] = ( !empty( $btn['force_title2'] ) ? $btn['force_title2'] : $btn['label'] );
1479
- echo '
1480
  <p class="form-field form-field-wide form-field-type-wooccmupload">
1481
- <strong>'.wooccm_wpml_string( trim( $btn['label'] ) ).':</strong>';
1482
- echo '
1483
  </p>' . "\n";
1484
- if( !empty( $attachments ) && is_array( $attachments ) ) {
1485
- echo '<ul>' . "\n";
1486
- foreach( $attachments as $attachment ) {
1487
- $attachment_url = wp_get_attachment_url( $attachment );
1488
- if( !empty( $attachment_url ) )
1489
- echo '<li><a href="' . $attachment_url . '" target="_blank">' . basename( $attachment_url ) . '</a></li>' . "\n";
1490
- }
1491
- echo '</ul>';
1492
- } else {
1493
- echo '<br />';
1494
- echo '-';
1495
- }
1496
- echo '
1497
  <!-- .form-field-type-wooccmupload -->';
1498
- }
1499
- }
1500
-
1501
- }
1502
- }
1503
-
1504
  }
1505
 
1506
  function wooccm_validate_upload_process_customer() {
1507
 
1508
- $options = get_option( 'wccs_settings' );
1509
-
1510
- if( !empty($options['checkness']['enable_file_upload'])) {
1511
- return true;
1512
- } else {
1513
- return false;
1514
- }
1515
 
 
 
 
 
 
1516
  }
1517
 
1518
  // Check if the customer can upload images
1519
  // @mod - This disables the Order Uploaded Files meta box even for Administrators...?
1520
- if( wooccm_validate_upload_process_customer() ) {
1521
- add_action( 'woocommerce_view_order', 'wooccm_file_uploader_front_end' );
1522
- add_action( 'add_meta_boxes', 'wooccm_admin_edit_order_metaboxes' );
1523
  }
1524
 
1525
  function wooccm_admin_edit_order_metaboxes() {
1526
 
1527
- global $post;
1528
-
1529
- $post_type = 'shop_order';
1530
- add_meta_box( 'woocommerce-order-files', __( 'Order Uploaded Files', 'woocommerce-checkout-manager' ), 'wooccm_admin_edit_order_uploaded_files_meta_box', $post_type, 'normal', 'default' );
1531
 
 
 
1532
  }
1533
 
1534
- function wooccm_admin_edit_order_uploaded_files_meta_box( $post ) {
1535
-
1536
- global $wpdb, $thepostid, $theorder, $woocommerce, $post;
1537
-
1538
- $order_id = ( isset( $post->ID ) ? $post->ID : false );
1539
-
1540
- $options = get_option( 'wccs_settings' );
1541
-
1542
- $upload_dir = wp_upload_dir();
1543
-
1544
- $array = array();
1545
- $default_wccm_values = '';
1546
- $product_image_gallery = '';
1547
-
1548
- $post_type = 'attachment';
1549
- $args = array(
1550
- 'post_type' => $post_type,
1551
- 'numberposts' => -1,
1552
- 'post_status' => null,
1553
- 'post_parent' => $order_id
1554
- );
1555
- $posts = get_posts( $args );
1556
- // wooccm_error_log( 'posts: ' . print_r( $posts, true ) );
1557
- // @mod - Legacy versions were not correctly saving Post Parent so let's do a search if no results were returned
1558
- if( empty( $posts ) ) {
1559
-
1560
- $meta_keys = array();
1561
-
1562
- // Additional section
1563
- $options = get_option( 'wccs_settings' );
1564
- $buttons = ( isset( $options['buttons'] ) ? $options['buttons'] : false );
1565
- if( !empty( $buttons ) ) {
1566
- foreach( $buttons as $btn ) {
1567
- if( $btn['type'] == 'wooccmupload' )
1568
- $meta_keys[] = $btn['cow'];
1569
- }
1570
- }
1571
- // Billing section
1572
- $options = get_option( 'wccs_settings3' );
1573
- $buttons = ( isset( $options['billing_buttons'] ) ? $options['billing_buttons'] : false );
1574
- if( !empty( $buttons ) ) {
1575
- foreach( $buttons as $btn ) {
1576
- if( $btn['type'] == 'wooccmupload' )
1577
- $meta_keys[] = sprintf( '_billing_%s', $btn['cow'] );
1578
- }
1579
- }
1580
- // Shipping section
1581
- $options = get_option( 'wccs_settings2' );
1582
- $buttons = ( isset( $options['shipping_buttons'] ) ? $options['shipping_buttons'] : false );
1583
- if( !empty( $buttons ) ) {
1584
- foreach( $buttons as $btn ) {
1585
- if( $btn['type'] == 'wooccmupload' )
1586
- $meta_keys[] = sprintf( '_shipping_%s', $btn['cow'] );
1587
- }
1588
- }
1589
-
1590
- if( !empty( $meta_keys ) ) {
1591
- $values = array();
1592
- // Check the Order for these meta keys
1593
- foreach( $meta_keys as $meta_key ) {
1594
- $value = get_post_meta( $order_id, $meta_key, true );
1595
- if( !empty( $value ) ) {
1596
- if( is_array( $value ) )
1597
- $array[] = implode( ',', $value );
1598
- else
1599
- $array[] = $value;
1600
- }
1601
- }
1602
- }
1603
-
1604
- }
1605
- // Check if there are any attachments
1606
- if( !empty( $posts ) || !empty( $array ) ) {
1607
- if( !empty( $posts ) ) {
1608
- foreach( $posts as $attachment ) {
1609
- $array[] = $attachment->ID;
1610
- }
1611
- }
1612
- $default_wccm_values = implode( ',', $array );
1613
- $product_image_gallery = implode( ',', $array );
1614
- // wooccm_error_log( 'default_wccm_values: ' . print_r( $default_wccm_values, true ) );
1615
- // wooccm_error_log( 'product_image_gallery: ' . print_r( $product_image_gallery, true ) );
1616
- }
1617
-
1618
- $attachments = array_filter( explode( ',', $product_image_gallery ) );
1619
- // wooccm_error_log( 'attachments: ' . print_r( $attachments, true ) );
1620
- ?>
1621
-
1622
- <script type="text/javascript">
1623
- jQuery(document).ready(function($) {
1624
-
1625
- $('#wccm_save_order_submit').click(function() {
1626
- $(".wccm_results").html( "<?php _e( 'Saving, please wait...', 'woocommerce-checkout-manager' ); ?>" );
1627
- var data = {
1628
- action: 'update_attachment_wccm',
1629
- post_id : '<?php echo $post->ID; ?>',
1630
- product_image_gallery : $('#product_image_gallery').val(),
1631
- wccm_default_keys_load : $('#wccm_default_keys_load').val()
1632
- };
1633
-
1634
- // since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
1635
- $.post(ajaxurl, data, function(response) {
1636
- $(".wccm_results").html(response);
1637
- });
1638
- });
1639
-
1640
- });
1641
- </script>
1642
-
1643
- <?php wp_enqueue_style( 'wccm_upload_file_style', plugins_url( 'includes/templates/admin/edit-order-uploads-file_editing_table.css', WOOCCM_RELPATH ) ); ?>
1644
-
1645
- <div class="woocommerce_order_items_wrapper">
1646
- <table class="woocommerce_order_items back_end">
1647
-
1648
- <thead>
1649
- <tr>
1650
- <th nowrap>
1651
- <attr title="<?php _e( 'Attachment ID', 'woocommerce-checkout-manager' ); ?>"><?php _e('ID','woocommerce-checkout-manager'); ?></attr>
1652
- </th>
1653
- <th><?php _e( 'Image', 'woocommerce-checkout-manager' ); ?></th>
1654
- <th><?php _e( 'Filename', 'woocommerce-checkout-manager' ); ?></th>
1655
- <th><?php _e( 'Dimensions', 'woocommerce-checkout-manager' ); ?></th>
1656
- <th><?php _e( 'Extension',' woocommerce-checkout-manager' ); ?></th>
1657
- <th class="column-actions"><?php _e( 'Actions', 'woocommerce-checkout-manager' ); ?></th>
1658
- </tr>
1659
- </thead>
1660
-
1661
- <tbody class="product_images">
1662
- <?php
1663
- if( !empty( $attachments ) ) {
1664
- foreach ( $attachments as $attachment_id ) {
1665
-
1666
- $image_attributes = wp_get_attachment_url( $attachment_id );
1667
- $image_attributes2 = wp_get_attachment_image_src( $attachment_id );
1668
- $filename = basename( $image_attributes );
1669
- $wp_filetype = wp_check_filetype( $filename );
1670
-
1671
- $value_declear = array_diff( explode( ',',$default_wccm_values ), explode( ',', $attachment_id ) );
1672
-
1673
- echo '
1674
- <tr class="image wccm_filesli wccmv_' . esc_attr( $attachment_id ) . '">
1675
  <script type="text/javascript">
1676
  jQuery(document).ready(function(){
1677
- jQuery(".wccmx_' . esc_attr( $attachment_id ) . '").click(function(){
1678
 
1679
- jQuery(".wccmv_' . esc_attr( $attachment_id ) . '").hide();
1680
- jQuery("#product_image_gallery").val(jQuery("#product_image_gallery").val().replace("'.esc_attr( $attachment_id ).'", ""));
1681
 
1682
  });
1683
  });
1684
  </script>
1685
  <td>' . $attachment_id . '</td>
1686
- <td>' . wp_get_attachment_link( $attachment_id, '' , false, false, wp_get_attachment_image( $attachment_id, array( 75, 75 ), false ) ) . '</td>
1687
- <td>' . wp_get_attachment_link( $attachment_id, '' , false, false, preg_replace( '/\.[^.]+$/', '', $filename ) ) . '</td>
1688
  <td>';
1689
- if( $image_attributes2[1] == '' ) {
1690
- echo '-';
1691
- } else {
1692
- echo $image_attributes2[1] . ' x ' . $image_attributes2[2];
1693
- }
1694
- echo '</td>
1695
- <td>' . strtoupper( $wp_filetype['ext'] ) . '</td>
1696
  <td class="column-actions" nowrap>
1697
- <a href="' . $image_attributes2[0] . '" target="_blank" class="button">' . __( 'Download', 'woocommerce-checkout-manager' ) . '</a>
1698
- <a class="delete tips wccm_delete wccmx_' . esc_attr( $attachment_id ) . ' button" data-tip="' . __( 'Delete file', 'woocommerce-checkout-manager' ) . '">' . __( 'Delete file', 'woocommerce-checkout-manager' ) . '</a>
1699
  </td>
1700
  </tr>
1701
  ';
1702
-
1703
- }
1704
- } else {
1705
- echo '
1706
  <tr>
1707
- <td colspan="6" style="text-align:left;">' . __( 'No files have been uploaded to this Order.', 'woocommerce-checkout-manager' ) . '</td>
1708
  </tr>';
1709
- }
1710
- ?>
1711
- </tbody>
1712
- </table>
1713
- <input type="hidden" class="wccm_add_to_list" id="product_image_gallery" name="product_image_gallery" value="<?php echo esc_attr( $product_image_gallery ); ?>" />
1714
- <input type="hidden" id="wccm_default_keys_load" name="wccm_default_keys_load" value="<?php echo esc_attr( $default_wccm_values ); ?>" />
1715
- <!-- .woocommerce_order_items -->
1716
-
1717
- <p class="add_product_images hide-if-no-js">
1718
- <form method="POST" action="">
1719
- <span class="btn button-primary wccm_add_order_link fileinput-button">
1720
- <span><?php _e( 'Add Order Files', 'woocommerce-checkout-manager' ); ?></span>
1721
- <input type="file" name="files_wccm" id="files_wccm" multiple />
1722
- <button type="button" id="files_button_wccm"><?php _e( 'Upload Files!', 'woocommerce-checkout-manager' ); ?></button>
1723
- </span>
1724
- </form>
1725
- </p>
1726
-
1727
- <!-- Edit Order: File upload -->
1728
- <script type="text/javascript">
1729
- jQuery(document).ready(function($){(
1730
-
1731
- function post_image_content() {
1732
-
1733
- var input = document.getElementById("files_wccm"), formdata = false;
1734
-
1735
- if(window.FormData) {
1736
- formdata = new FormData();
1737
- document.getElementById("files_button_wccm").style.display = "none";
1738
- }
1739
-
1740
- input.addEventListener("change", function (evt) {
1741
-
1742
- $(".wccm_results").html("Uploading, please wait....");
1743
-
1744
- var i = 0, len = this.files.length, img, reader, file;
1745
-
1746
- for ( ; i < len; i++ ) {
1747
- file = this.files[i];
1748
- if (formdata) {
1749
- formdata.append("files_wccm[]",file);
1750
- }
1751
- }
1752
-
1753
- if(formdata) {
1754
- $.ajax({
1755
- url: "<?php echo admin_url('/admin-ajax.php?action=wccs_upload_file_func&order_id='.$order_id.'&name=files_wccm'); ?>",
1756
- type: "POST",
1757
- data: formdata,
1758
- processData: false,
1759
- contentType: false,
1760
- success: function (res) {
1761
- $('#files_wccm').show();
1762
- $(".wccm_results").html("Files uploaded successfully.");
1763
- /* $(".wccm_results").html(res); */
1764
-
1765
- $.ajax({
1766
- url: '<?php echo admin_url('/post.php?post='.$post->ID.'&action=edit'); ?>',
1767
- data: {},
1768
- success: function (data) {
1769
- $("div#product_images_container").html($(data).find("div#product_images_container"));
1770
- $(".wccm_results").html("Files uploaded successfully.");
1771
- /* $(".wccm_results").html(data); */
1772
- },
1773
- dataType: 'html'
1774
- });
1775
- }
1776
- });
1777
- }
1778
- }, false);
1779
- }
1780
-
1781
- ());
1782
-
1783
- });
1784
- </script>
1785
-
1786
- <input type="button" id="wccm_save_order_submit" class="button button-primary" value="<?php _e( 'Save Changes', 'woocommerce-checkout-manager' ); ?>">
1787
- <div class="wccm_results"></div>
1788
- <div class="clear"></div>
1789
-
1790
- </div>
1791
- <!-- .woocommerce_order_items_wrapper -->
1792
- <?php
1793
-
1794
  }
1795
 
1796
  // front end for user
1797
- function wooccm_file_uploader_front_end( $order_id ) {
1798
-
1799
- global $wpdb, $thepostid, $theorder, $woocommerce, $post;
1800
-
1801
- $order = new WC_Order( $order_id );
1802
-
1803
- $options = get_option( 'wccs_settings' );
1804
- $length = ( empty( $options['checkness']['file_upload_number'] ) ) ? 'this.files.length' : $options['checkness']['file_upload_number'];
1805
-
1806
- $file_types = ( !empty( $options['checkness']['file_types'] ) ? explode( ",", $options['checkness']['file_types'] ) : array() );
1807
- $number_of_types = count( $file_types );
1808
-
1809
- $prefix = 'wc-';
1810
-
1811
- if( empty( $options['checkness']['upload_os'] ) || ( $order->post_status == $prefix.$options['checkness']['upload_os'] ) ) {
1812
-
1813
- $post_type = 'attachment';
1814
- $upload_dir = wp_upload_dir();
1815
- $args = array(
1816
- 'post_type' => $post_type,
1817
- 'numberposts' => -1,
1818
- 'post_status' => null,
1819
- 'post_parent' => $order_id
1820
- );
1821
- $default_wccm_values = false;
1822
- $product_image_gallery = false;
1823
- $posts = get_posts( $args );
1824
- // wooccm_error_log( 'posts: ' . print_r( $posts, true ) );
1825
- if( !empty( $posts ) ) {
1826
- foreach( $posts as $attachment )
1827
- $array[] = $attachment->ID;
1828
- $default_wccm_values = implode( ',', $array );
1829
- $product_image_gallery = implode( ',', $array );
1830
- }
1831
- // wooccm_error_log( 'default_wccm_values: ' . print_r( $default_wccm_values, true ) );
1832
- // wooccm_error_log( 'product_image_gallery: ' . print_r( $product_image_gallery, true ) );
1833
- if( !empty( $product_image_gallery ) )
1834
- $attachments = array_filter( explode( ',', $product_image_gallery ) );
1835
- // wooccm_error_log( 'attachments: ' . print_r( $attachments, true ) );
1836
-
1837
- ?>
1838
-
1839
- <script type="text/javascript">
1840
- jQuery(document).ready(function($) {
1841
-
1842
- $('#wccm_save_order_submit').click(function() {
1843
- $(".wccm_results").html("Deleting files, please wait....");
1844
- var ajaxurl = '<?php echo admin_url('/admin-ajax.php'); ?>';
1845
- data = {
1846
- action: 'update_attachment_wccm',
1847
- product_image_gallery : $('#product_image_gallery').val(),
1848
- wccm_default_keys_load : $('#wccm_default_keys_load').val()
1849
- };
1850
-
1851
- // since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
1852
- $.post(ajaxurl, data, function(response) {
1853
- $(".wccm_results").html(response);
1854
- });
1855
- });
1856
-
1857
- });
1858
- </script>
1859
-
1860
- <?php wp_enqueue_style( 'wccm_upload_file_style', plugins_url( 'includes/templates/admin/edit-order-uploads-file_editing_table.css', WOOCCM_RELPATH ) ); ?>
1861
-
1862
- <h2><?php echo ( empty( $options['checkness']['upload_title'] ) ? 'Order Uploaded Files' : esc_attr( $options['checkness']['upload_title'] ) ); ?></h2>
1863
- <div class="woocommerce_order_items_wrapper front_end">
1864
- <table class="woocommerce_order_items front_end">
1865
-
1866
- <thead>
1867
- <tr>
1868
- <th style="width:15%;text-align: center;"><?php _e( 'Attachment ID', 'woocommerce-checkout-manager' ); ?></th>
1869
- <th style="width:12%"><?php _e( 'Image', 'woocommerce-checkout-manager' ); ?></th>
1870
- <th style="width:30%;text-align: center;"><?php _e( 'Name', 'woocommerce-checkout-manager' ); ?></th>
1871
- <th style="width:12%"><?php _e( 'Dimensions', 'woocommerce-checkout-manager' ); ?></th>
1872
- <th style="width:8%"><?php _e( 'Extension' ,'woocommerce-checkout-manager' ); ?></th>
1873
- <th style="width:10%" class="column-actions"><?php _e( 'Actions', 'woocommerce-checkout-manager' ); ?></th>
1874
- </tr>
1875
- </thead>
1876
-
1877
- <tbody class="product_images front_end">
1878
- <?php
1879
- if( !empty( $attachments ) ) {
1880
- foreach( $attachments as $attachment_id ) {
1881
-
1882
- $image_attributes = wp_get_attachment_url( $attachment_id );
1883
- $image_attributes2 = wp_get_attachment_image_src( $attachment_id );
1884
- $filename = basename( $image_attributes );
1885
- $wp_filetype = wp_check_filetype( $filename );
1886
-
1887
- $value_declear = array_diff( explode( ',', $default_wccm_values ), explode( ',', $attachment_id ) );
1888
-
1889
- echo '
1890
- <tr class="image wccm_filesli wccmv_' . esc_attr( $attachment_id ) . '">
1891
 
1892
  <td style="display:none;">
1893
  <script type="text/javascript">
1894
 
1895
  jQuery(document).ready(function(){
1896
 
1897
- jQuery(".wccmx_' . esc_attr( $attachment_id ) . '").click(function(){
1898
- jQuery(".wccmv_' . esc_attr( $attachment_id ) . '").hide();
1899
- jQuery("#product_image_gallery").val(jQuery("#product_image_gallery").val().replace("'.esc_attr( $attachment_id ).'", ""));
1900
 
1901
  });
1902
  });
1903
 
1904
  </script>
1905
  </td>
1906
- <td>'.$attachment_id.'</td>
1907
- <td>'.wp_get_attachment_link( $attachment_id, '' , false, false, wp_get_attachment_image( $attachment_id, array(75,75), true ) ).'</td>
1908
- <td>'.wp_get_attachment_link( $attachment_id, '' , false, false, preg_replace( '/\.[^.]+$/', '', $filename ) ).'</td>
1909
  <td>';
1910
- if( $image_attributes2[1] == '' ) {
1911
- echo '-';
1912
- } else {
1913
- echo $image_attributes2[1].' x '.$image_attributes2[2];
1914
- }
1915
- echo '
1916
  </td>
1917
- <td>' . strtoupper( $wp_filetype['ext'] ) . '</td>
1918
  <td class="column-actions" nowrap>
1919
- <a class="delete tips wccm_delete wccmx_' . esc_attr( $attachment_id ) . ' button" data-tip="' . __( 'Delete file', 'woocommerce-checkout-manager' ) . '">' . __( 'Delete file', 'woocommerce-checkout-manager' ) . '</a>
1920
  </td>
1921
  </tr>';
1922
- }
1923
- } else {
1924
- echo '
1925
  <tr>
1926
- <td colspan="7">' . __( 'No uploaded files have been assigned to this Order.', 'woocommerce-checkout-manager' ) . '</td>
1927
  </tr>
1928
  ';
1929
- }
1930
- ?>
1931
- </tbody>
1932
- </table>
1933
- <input type="hidden" class="wccm_add_to_list" id="product_image_gallery" name="product_image_gallery" value="<?php echo ( !empty( $product_image_gallery ) ? esc_attr( $product_image_gallery ) : '' ); ?>" />
1934
- <input type="hidden" id="wccm_default_keys_load" name="wccm_default_keys_load" value="<?php echo ( !empty( $default_wccm_values ) ? esc_attr( $default_wccm_values ) : '' ); ?>" />
1935
- <!-- .woocommerce_order_items -->
1936
- </div>
1937
- <!-- .woocommerce_order_items_wrapper -->
1938
-
1939
- <button type="button" id="wccm_save_order_submit" class="file_upload_delete wooccm-btn wooccm-btn-danger delete"><?php _e( 'Confirm Delete', 'woocommerce-checkout-manager' ); ?></button>
1940
-
1941
- <span id="wccm_uploader_select">
1942
- <input type="file" style="display:none;" name="files_wccm" id="files_wccm" multiple />
1943
- <button type="button" class="file_upload_account wooccm-btn wooccm-btn-primary start" id="files_button_wccm"><?php _e( 'Upload Files', 'woocommerce-checkout-manager' ); ?></button>
1944
- </span>
1945
- <!-- #wccm_uploader_select -->
1946
-
1947
- <div class="wccm_results front_end"></div>
1948
-
1949
- <div class="clear"></div>
1950
- <?php
1951
- // script for uploading the files
1952
- echo '
1953
  <!-- Edit Order: File upload -->
1954
  <script type="text/javascript">
1955
  jQuery(document).ready(function($){
@@ -1968,17 +1875,29 @@ jQuery(document).ready(function($){
1968
  }
1969
 
1970
  input.addEventListener("change", function (evt) {
1971
- $("#wccm_uploader_select").block({message: null, overlayCSS: {background: "#fff url(" + woocommerce_get_script_data.plugin_url + "/assets/images/ajax-loader.gif) no-repeat center", opacity: 0.6}});
1972
-
1973
- $("#wccm_uploader_select").block({message: null, overlayCSS: {background: "#fff url(" + woocommerce_get_script_data.ajax_loader_url + ") no-repeat center", opacity: 0.6}});
1974
-
1975
- var length = '.$length.';
1976
- var file_array = ' . wooccm_js_array( $file_types ) . ';
1977
- var wooempt = "' . implode( ',', $file_types ) . '";
 
 
 
 
 
 
 
 
 
 
 
 
1978
 
1979
  for ( i = 0; i < length; i++ ) {
1980
  file = this.files[i];
1981
- for(x=0; x < '.$number_of_types.'; x++){
1982
  if( !wooempt || file.type.match(file_array[x]) ) {
1983
  if (formdata) {
1984
  formdata.append("files_wccm[]",file);
@@ -1989,7 +1908,7 @@ jQuery(document).ready(function($){
1989
 
1990
  if (formdata) {
1991
  $.ajax({
1992
- url: "'.admin_url('/admin-ajax.php?action=wccs_upload_file_func&order_id='.$order_id.'&name=files_wccm').'",
1993
  type: "POST",
1994
  data: formdata,
1995
  processData: false,
@@ -1998,7 +1917,7 @@ jQuery(document).ready(function($){
1998
  $("#files_wccm").show();
1999
 
2000
  $.ajax({
2001
- url: "'.$order->get_view_order_url().'",
2002
  data: {},
2003
  success: function (data) {
2004
  $("div.woocommerce_order_items_wrapper.front_end").html($(data).find("div.woocommerce_order_items_wrapper.front_end"));
@@ -2017,194 +1936,185 @@ jQuery(document).ready(function($){
2017
  </script>';
2018
  // end script
2019
  // ------------
2020
-
2021
- }
2022
-
2023
  }
2024
 
2025
- function wccs_upload_file_func_callback( $order_id ) {
2026
-
2027
- $name = ( isset( $_REQUEST['name'] ) ? $_REQUEST['name'] : false );
2028
- $order_id = ( isset( $_REQUEST['order_id'] ) ? absint( $_REQUEST['order_id'] ) : false );
2029
-
2030
- if( empty( $name ) ) {
2031
- echo ' '.__('Upload failed. Files were not uploaded.','woocommerce-checkout-manager').'';
2032
- die();
2033
- }
2034
-
2035
- if( empty( $order_id ) ) {
2036
- echo ' '.__('Invalid Order. Files were not uploaded.','woocommerce-checkout-manager').'';
2037
- die();
2038
- }
2039
-
2040
- global $wpdb, $woocommerce, $post; // this is how you get access to the database
2041
-
2042
- // load files
2043
- require_once( ABSPATH . 'wp-admin/includes/file.php' );
2044
- require_once( ABSPATH . 'wp-admin/includes/media.php' );
2045
-
2046
- $upload_dir = wp_upload_dir();
2047
-
2048
- $options = get_option( 'wccs_settings' );
2049
-
2050
- $has_uploads = false;
2051
-
2052
- $order = new WC_Order( $order_id );
2053
-
2054
- $files = $_FILES[''. $name .''];
2055
- // $upload_overrides = array( 'test_form' => false );
2056
-
2057
- if( !empty( $files['name'] ) ) {
2058
- foreach( $files['name'] as $key => $value ) {
2059
- if( $files['name'][$key] ) {
2060
-
2061
- $file = array(
2062
- 'name' => $files['name'][$key],
2063
- 'type' => $files['type'][$key],
2064
- 'tmp_name' => $files['tmp_name'][$key],
2065
- 'error' => $files['error'][$key],
2066
- 'size' => $files['size'][$key]
2067
- );
2068
-
2069
- if( !empty($options['checkness']['cat_file_upload']) ) {
2070
- add_filter( 'upload_dir', function( $param ) use ( $order_id ) {
2071
- $param['path'] = sprintf( '%s/wooccm_uploads/%d', $param['basedir'], $order_id );
2072
- $param['url'] = sprintf( '%s/wooccm_uploads/%d', $param['baseurl'], $order_id );
2073
- return $param;
2074
- }, 10, 1 );
2075
- }
2076
-
2077
- // $movefile = wp_handle_upload($file, $upload_overrides);
2078
- $movefile = wp_handle_upload( $file );
2079
-
2080
- // Check if the save process failed
2081
- if( isset( $movefile['error'] ) ) {
2082
- echo 'Could not save uploaded file. Files were not uploaded.';
2083
- die();
2084
- }
2085
-
2086
- $attachment = array(
2087
- 'guid' => $movefile['url'],
2088
- 'post_mime_type' => $movefile['type'],
2089
- 'post_title' => preg_replace( '/\.[^.]+$/', '', basename( $movefile['file'] ) ),
2090
- 'post_content' => '',
2091
- 'post_status' => 'inherit',
2092
- 'post_parent' => $order_id
2093
- );
2094
-
2095
- $attach_id = wp_insert_attachment( $attachment, $movefile['url'], $order_id );
2096
-
2097
- // you must first include the image.php file
2098
- // for the function wp_generate_attachment_metadata() to work
2099
-
2100
- require_once( ABSPATH . 'wp-admin/includes/image.php' );
2101
- $attach_data = wp_generate_attachment_metadata( $attach_id, $movefile['url'] );
2102
- wp_update_attachment_metadata( $attach_id, $attach_data );
2103
-
2104
- $has_uploads = true;
2105
-
2106
- }
2107
- }
2108
- if( $has_uploads ) {
2109
-
2110
- // send email
2111
- $email_recipients = $options['checkness']['wooccm_notification_email'];
2112
- if( empty( $email_recipients ) )
2113
- $email_recipients = get_option( 'admin_email' );
2114
- $email_heading = __( 'Files Uploaded by Customer', 'woocommerce-checkout-manager' );
2115
- $subject = sprintf( __( 'WooCommerce Checkout Manager - %s [%s]', 'woocommerce-checkout-manager' ), $email_heading, $order->billing_first_name . ' ' . $order->billing_last_name );
2116
-
2117
- $mailer = WC()->mailer();
2118
-
2119
- // Buffer
2120
- ob_start();
2121
- ?>
2122
- <p>This is an automatic message from WooCommerce Checkout Manager, reporting that files have been uploaded by <?php echo $order->billing_first_name; ?> <?php echo $order->billing_last_name; ?>.</p>
2123
- <h3>Customer Details</h3>
2124
- <ul>
2125
- <li>Name: <?php echo $order->billing_first_name; ?> <?php $order->billing_last_name; ?></li>
2126
- <li>E-mail: <?php echo $order->billing_email; ?></li>
2127
- <li>Order Number: <?php echo $order_id; ?></li>
2128
- </ul>
2129
- <p>You can view the files and order details via back-end by following this <a href="<?php echo admin_url( '/post.php?post='.$order_id.'&action=edit' ); ?>" target="_blank">link</a>.</p>
2130
- <?php
2131
- // Get contents
2132
- $message = ob_get_clean();
2133
-
2134
- $message = $mailer->wrap_message( $email_heading, $message );
2135
-
2136
- // add_filter( 'wp_mail_content_type', 'wooccm_set_html_content_type' );
2137
- // wc_mail( $email_recipients, $subject, $message );
2138
- $mailer->send( $email_recipients, strip_tags( $subject ), $message );
2139
- // remove_filter( 'wp_mail_content_type', 'wooccm_set_html_content_type' );
2140
-
2141
- }
2142
- echo ' '.__('Files were uploaded successfully.','woocommerce-checkout-manager').'';
2143
- } else {
2144
- echo ' '.__('No uploads were recognised. Files were not uploaded.','woocommerce-checkout-manager').'';
2145
- }
2146
- die();
2147
-
2148
  }
 
2149
  add_action("wp_ajax_wccs_upload_file_func", "wccs_upload_file_func_callback");
2150
 
2151
  function wooccm_set_html_content_type() {
2152
 
2153
- return 'text/html';
2154
-
2155
  }
2156
 
2157
- function wooccm_js_str( $s ) {
2158
-
2159
- return '"' . addcslashes($s, "\0..\37\"\\") . '"';
2160
 
 
2161
  }
2162
 
2163
- function wooccm_js_array( $array ) {
2164
-
2165
- $temp = array_map( 'wooccm_js_str', $array );
2166
- return '[' . implode(',', $temp) . ']';
2167
 
 
 
2168
  }
2169
 
2170
  function update_attachment_wccm_callback() {
2171
 
2172
- global $post, $wpdb, $woocommerce;
2173
-
2174
- // Check the User has the manage_woocommerce capability
2175
- if( current_user_can( 'manage_woocommerce' ) == false )
2176
- die();
2177
-
2178
- $array1 = explode( ',', sanitize_text_field( isset( $_POST['wccm_default_keys_load'] ) ? $_POST['wccm_default_keys_load'] : '' ) );
2179
- $array2 = explode( ',', sanitize_text_field( isset( $_POST['product_image_gallery'] ) ? $_POST['product_image_gallery'] : '' ) );
2180
- $attachment_ids = array_diff( $array1, $array2 );
2181
-
2182
- if( isset( $_POST['wccm_default_keys_load'] ) ) {
2183
- if( !empty( $attachment_ids ) ) {
2184
- foreach( $attachment_ids as $key => $attachtoremove ) {
2185
-
2186
- // Check the Attachment exists...
2187
- if( get_post_status( $attachtoremove ) == false )
2188
- continue;
2189
-
2190
- // Check the Attachment is associated with an Order
2191
- $post_parent = get_post_field( 'post_parent', $attachtoremove );
2192
- if( empty( $post_parent ) ) {
2193
- continue;
2194
- } else {
2195
- if( get_post_type( $post_parent ) <> 'shop_order' )
2196
- continue;
2197
- }
2198
-
2199
- // Delete the Attachment
2200
- wp_delete_attachment( $attachtoremove );
2201
-
2202
- }
2203
- }
2204
- echo __('Deleted successfully.','woocommerce-checkout-manager');
2205
- }
2206
- die();
2207
-
2208
  }
2209
- add_action( 'wp_ajax_update_attachment_wccm', 'update_attachment_wccm_callback' );
 
2210
  ?>
1
  <?php
2
+ if (is_admin()) {
3
+
4
+ // backend scripts
5
+ add_action('admin_enqueue_scripts', 'wooccm_admin_enqueue_scripts');
6
+ // List of action links on the Plugins screen
7
+ //add_filter( sprintf( 'plugin_action_links_%s', WOOCCM_RELPATH ), 'wooccm_admin_plugin_actions' );
8
+ // WordPress Settings screen for WooCheckout
9
+ add_action('admin_init', 'wooccm_register_settings');
10
+ // WP Admin Actions
11
+ add_action('admin_init', 'wooccm_admin_actions');
12
+ add_action('admin_init', 'wooccm_admin_woocheckout_actions');
13
+ // Updater notice
14
+ add_action('admin_notices', 'wooccm_admin_notices');
15
+ // Add fields to the Edit Order screen
16
+ add_action('woocommerce_admin_order_data_after_order_details', 'wooccm_admin_edit_order_additional_details');
17
+ add_action('woocommerce_admin_order_data_after_billing_address', 'wooccm_admin_edit_order_billing_details');
18
+ add_action('woocommerce_admin_order_data_after_shipping_address', 'wooccm_admin_edit_order_shipping_details');
 
19
  }
20
 
21
  // Display admin notice on screen load
22
+ function wooccm_admin_notice($message = '', $priority = 'updated', $screen = '') {
23
+
24
+ if ($priority == false || $priority == '')
25
+ $priority = 'updated';
26
+ if ($message <> '') {
27
+ ob_start();
28
+ wooccm_admin_notice_html($message, $priority, $screen);
29
+ $output = ob_get_contents();
30
+ ob_end_clean();
31
+ // Check if an existing notice is already in queue
32
+ $existing_notice = get_transient(WOOCCM_PREFIX . '_notice');
33
+ if ($existing_notice !== false) {
34
+ $existing_notice = base64_decode($existing_notice);
35
+ $output = $existing_notice . $output;
36
+ }
37
+ set_transient(WOOCCM_PREFIX . '_notice', base64_encode($output), MINUTE_IN_SECONDS);
38
+ add_action('admin_notices', WOOCCM_PREFIX . '_admin_notice_print');
39
+ }
 
40
  }
41
 
42
  // HTML template for admin notice
43
+ function wooccm_admin_notice_html($message = '', $priority = 'updated', $screen = '') {
44
+
45
+ // Display admin notice on specific screen
46
+ if (!empty($screen)) {
47
+
48
+ global $pagenow;
49
+
50
+ if (is_array($screen)) {
51
+ if (in_array($pagenow, $screen) == false)
52
+ return;
53
+ } else {
54
+ if ($pagenow <> $screen)
55
+ return;
56
+ }
57
+ }
58
+ ?>
59
+ <div id="message" class="<?php echo $priority; ?>">
60
+ <p><?php echo $message; ?></p>
61
+ </div>
62
+ <?php
 
63
  }
64
 
65
  // Grabs the WordPress transient that holds the admin notice and prints it
66
  function wooccm_admin_notice_print() {
67
 
68
+ $output = get_transient(WOOCCM_PREFIX . '_notice');
69
+ if ($output !== false) {
70
+ delete_transient(WOOCCM_PREFIX . '_notice');
71
+ $output = base64_decode($output);
72
+ echo $output;
73
+ }
 
74
  }
75
 
76
  // WordPress Administration menu
77
  function wooccm_admin_menu() {
78
 
79
+ add_menu_page('WooCheckout', 'WooCheckout', 'manage_options', 'woocommerce-checkout-manager', 'wooccm_options_page', 'dashicons-businessman', 57);
80
+ // @mod - Remove until exports are fixed...
81
+ // add_submenu_page( 'woocommerce-checkout-manager', 'Export', 'Export', 'manage_options', 'wooccm-advance-export', 'wooccm_advance_export' );
 
82
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
83
 
84
+ add_action('admin_menu', 'wooccm_admin_menu');
85
+
86
+ function wooccm_admin_enqueue_scripts($hook_suffix) {
87
+
88
+ if ($hook_suffix == 'toplevel_page_woocommerce-checkout-manager') {
89
+ wp_enqueue_style('farbtastic');
90
+ // @mod - We need to check that farbtastic exists
91
+ wp_enqueue_script('farbtastic', site_url('/wp-admin/js/farbtastic.js'));
92
+ wp_enqueue_style('wooccm-backend-css', plugins_url('includes/pickers/css/backend_css.css', WOOCCM_PLUGIN_FILE));
93
+ wp_enqueue_script('script_wccs', plugins_url('includes/templates/js/script_wccs.js', WOOCCM_PLUGIN_FILE), array('jquery'), '1.2');
94
+ wp_enqueue_script('billing_script_wccs', plugins_url('includes/templates/js/billing_script_wccs.js', WOOCCM_PLUGIN_FILE), array('jquery'), '1.2');
95
+ wp_enqueue_script('shipping_script_wccs', plugins_url('includes/templates/js/shipping_script_wccs.js', WOOCCM_PLUGIN_FILE), array('jquery'), '1.2');
96
+ if (wp_script_is('jquery-ui-sortable', 'queue') == false)
97
+ wp_enqueue_script('jquery-ui-sortable');
98
+ }
99
+ if ($hook_suffix === 'woocheckout_page_wooccm-advance-export') {
100
+ wp_enqueue_style('export', plugins_url('includes/templates/admin/woocheckout-export.css', WOOCCM_PLUGIN_FILE));
101
+ }
102
  }
103
 
104
  // List of action links on the Plugins screen
105
+ /* function wooccm_admin_plugin_actions( $links ) {
106
 
107
+ $page_url = add_query_arg( 'page', 'woocommerce-checkout-manager', 'admin.php' );
108
+ $support_url = 'https://wordpress.org/support/plugin/woocommerce-checkout-manager/';
109
 
110
+ $plugin_links = array(
111
+ '<a href="' . $page_url . '">' . __( 'Settings', 'woocommerce-checkout-manager' ) . '</a>',
112
+ '<a href="' . $support_url . '">' . __( 'Support', 'woocommerce-checkout-manager' ) . '</a>',
113
+ );
114
+ return array_merge( $plugin_links, $links );
115
 
116
+ } */
117
 
118
  function wooccm_deactivate_plugin_conditional() {
119
 
120
+ $name = 'woocommerce-checkout-manager/woocommerce-checkout-manager.php';
121
+ if (!is_plugin_active('woocommerce/woocommerce.php')) {
122
+ add_action('admin_notices', 'wooccm_admin_notice_woo');
123
+ deactivate_plugins($name);
124
+ }
 
125
  }
 
126
 
127
+ add_action('admin_init', 'wooccm_deactivate_plugin_conditional');
128
 
129
+ function wooccm_admin_notice_woo() {
 
130
 
131
+ $message = __('WooCommerce is not active. WooCommerce Checkout Manager requires WooCommerce to be active.', 'woocommerce-checkout-manager');
132
+ echo '<div class="error"><p><strong>' . $message . '</strong></p></div>';
133
  }
134
 
135
  // Global actions
136
  function wooccm_admin_actions() {
137
 
138
+ // Check the User has the manage_options capability
139
+ if (current_user_can('manage_options') == false)
140
+ return;
141
+
142
+ // Process any actions
143
+ $action = ( function_exists('woo_get_action') ? woo_get_action() : false );
144
+ switch ($action) {
145
+
146
+ case 'wooccm_dismiss_beta_notice':
147
+ // We need to verify the nonce.
148
+ if (!empty($_GET) && check_admin_referer('wooccm_dismiss_beta_notice')) {
149
+ add_option(WOOCCM_PREFIX . '_beta_notice', 1);
150
+ $url = add_query_arg(array('action' => null, '_wpnonce' => null));
151
+ wp_redirect($url);
152
+ exit();
153
+ }
154
+ break;
155
+
156
+ case 'wooccm_dismiss_update_notice':
157
+ // We need to verify the nonce.
158
+ if (!empty($_GET) && check_admin_referer('wooccm_dismiss_update_notice')) {
159
+ update_option(WOOCCM_PREFIX . '_update_notice', 1);
160
+ $url = add_query_arg(array('action' => null, '_wpnonce' => null));
161
+ wp_redirect($url);
162
+ exit();
163
+ }
164
+ break;
165
+ }
 
 
166
  }
167
 
168
  // Actions limited to the WooCheckout screen
169
  function wooccm_admin_woocheckout_actions() {
170
 
171
+ // Check the User has the manage_options capability
172
+ if (current_user_can('manage_options') == false)
173
+ return;
174
+
175
+ // Check that we are on the WooCheckout screen
176
+ $page = ( isset($_GET['page']) ? sanitize_text_field($_GET['page']) : false );
177
+ if ($page != 'woocommerce-checkout-manager')
178
+ return;
179
+
180
+ // Process any actions
181
+ $action = ( function_exists('woo_get_action') ? woo_get_action() : false );
182
+ switch ($action) {
183
+
184
+ // Reset the Run the updater notice
185
+ case 'wooccm_reset_update_notice':
186
+ // We need to verify the nonce.
187
+ if (!empty($_GET) && check_admin_referer('wooccm_reset_update_notice')) {
188
+ delete_option(WOOCCM_PREFIX . '_update_notice');
189
+ $url = add_query_arg(array('action' => null, '_wpnonce' => null));
190
+ wp_redirect($url);
191
+ exit();
192
+ }
193
+ break;
194
+
195
+ case 'wooccm_nuke_options':
196
+ // We need to verify the nonce.
197
+ if (!empty($_GET) && check_admin_referer('wooccm_nuke_options')) {
198
+ // Delete the default options
199
+ $options = array('settings', 'settings2', 'settings3');
200
+ foreach ($options as $option)
201
+ delete_option('wccs_' . $option);
202
+ // Delete any notices
203
+ $notices = array('update_notice', 'beta_notice');
204
+ foreach ($notices as $notice)
205
+ delete_option(WOOCCM_PREFIX . '_' . $notice);
206
+ $url = add_query_arg(array('action' => null, '_wpnonce' => null));
207
+ wp_redirect($url);
208
+ exit();
209
+ }
210
+ break;
211
+
212
+ case 'wooccm_nuke_order_meta':
213
+ // We need to verify the nonce.
214
+ if (!empty($_GET) && check_admin_referer('wooccm_nuke_order_meta')) {
215
+ $post_type = 'shop_order';
216
+ $args = array(
217
+ 'post_type' => $post_type,
218
+ 'post_status' => ( function_exists('wc_get_order_statuses()') ? wc_get_order_statuses() : false ),
219
+ 'fields' => 'ids',
220
+ 'numberposts' => -1
221
+ );
222
+ $orders = get_posts($args);
223
+ if (!empty($orders)) {
224
+ // Prepare the Post meta name lists for only custom fields
225
+ $meta_keys = array();
226
+
227
+ // Additional section
228
+ $options = get_option('wccs_settings');
229
+ $buttons = ( isset($options['buttons']) ? $options['buttons'] : false );
230
+ if (!empty($buttons)) {
231
+ foreach ($buttons as $btn) {
232
+ if (strstr($btn['cow'], 'myfield'))
233
+ $meta_keys[] = $btn['cow'];
234
+ }
235
+ }
236
+ // Billing section
237
+ $options = get_option('wccs_settings3');
238
+ $buttons = ( isset($options['billing_buttons']) ? $options['billing_buttons'] : false );
239
+ if (!empty($buttons)) {
240
+ foreach ($buttons as $btn) {
241
+ if (strstr($btn['cow'], 'myfield'))
242
+ $meta_keys[] = sprintf('_billing_%s', $btn['cow']);
243
+ }
244
+ }
245
+ // Shipping section
246
+ $options = get_option('wccs_settings2');
247
+ $buttons = ( isset($options['shipping_buttons']) ? $options['shipping_buttons'] : false );
248
+ if (!empty($buttons)) {
249
+ foreach ($buttons as $btn) {
250
+ if (strstr($btn['cow'], 'myfield'))
251
+ $meta_keys[] = sprintf('_shipping_%s', $btn['cow']);
252
+ }
253
+ }
254
+
255
+ // Do the deed
256
+ if (!empty($meta_keys)) {
257
+ foreach ($orders as $order_id) {
258
+ if (!empty($order_id)) {
259
+ foreach ($meta_keys as $meta_key)
260
+ delete_post_meta($order_id, $meta_key);
261
+ }
262
+ }
263
+ }
264
+ }
265
+ $url = add_query_arg(array('action' => null, '_wpnonce' => null));
266
+ wp_redirect($url);
267
+ exit();
268
+ }
269
+ break;
270
+
271
+ case 'wooccm_nuke_user_meta':
272
+ // We need to verify the nonce.
273
+ if (!empty($_GET) && check_admin_referer('wooccm_nuke_user_meta')) {
274
+ $args = array(
275
+ 'fields' => array('ID')
276
+ );
277
+ $users = get_users($args);
278
+ if (!empty($users)) {
279
+ // Prepare the Post meta name lists for only custom fields
280
+ $meta_keys = array();
281
+
282
+ // Additional section
283
+ $options = get_option('wccs_settings');
284
+ $buttons = ( isset($options['buttons']) ? $options['buttons'] : false );
285
+ if (!empty($buttons)) {
286
+ foreach ($buttons as $btn) {
287
+ if (strstr($btn['cow'], 'myfield'))
288
+ $meta_keys[] = $btn['cow'];
289
+ }
290
+ }
291
+ // Billing section
292
+ $options = get_option('wccs_settings3');
293
+ $buttons = ( isset($options['billing_buttons']) ? $options['billing_buttons'] : false );
294
+ if (!empty($buttons)) {
295
+ foreach ($buttons as $btn) {
296
+ if (strstr($btn['cow'], 'myfield'))
297
+ $meta_keys[] = sprintf('billing_%s', $btn['cow']);
298
+ }
299
+ }
300
+ // Shipping section
301
+ $options = get_option('wccs_settings2');
302
+ $buttons = ( isset($options['shipping_buttons']) ? $options['shipping_buttons'] : false );
303
+ if (!empty($buttons)) {
304
+ foreach ($buttons as $btn) {
305
+ if (strstr($btn['cow'], 'myfield'))
306
+ $meta_keys[] = sprintf('shipping_%s', $btn['cow']);
307
+ }
308
+ }
309
+
310
+ // Do the deed
311
+ if (!empty($meta_keys)) {
312
+ foreach ($users as $user_id) {
313
+ foreach ($meta_keys as $meta_key)
314
+ delete_user_meta($user_id->ID, $meta_key);
315
+ }
316
+ }
317
+ }
318
+ $url = add_query_arg(array('action' => null, '_wpnonce' => null));
319
+ wp_redirect($url);
320
+ exit();
321
+ }
322
+ break;
323
+
324
+ case 'wooccm_dismiss_beta_notice':
325
+ // We need to verify the nonce.
326
+ if (!empty($_GET) && check_admin_referer('wooccm_dismiss_beta_notice')) {
327
+ add_option(WOOCCM_PREFIX . '_beta_notice', 1);
328
+ $url = add_query_arg(array('action' => null, '_wpnonce' => null));
329
+ wp_redirect($url);
330
+ exit();
331
+ }
332
+ break;
333
+
334
+ case 'wooccm_dismiss_update_notice':
335
+ // We need to verify the nonce.
336
+ if (!empty($_GET) && check_admin_referer('wooccm_dismiss_update_notice')) {
337
+ add_option(WOOCCM_PREFIX . '_update_notice', 1);
338
+ $url = add_query_arg(array('action' => null, '_wpnonce' => null));
339
+ wp_redirect($url);
340
+ exit();
341
+ }
342
+ break;
343
+ }
 
 
344
  }
345
 
346
+ if (!function_exists('woo_get_action')) {
347
+
348
+ function woo_get_action($prefer_get = false) {
349
 
350
+ if (isset($_GET['action']) && $prefer_get)
351
+ return sanitize_text_field($_GET['action']);
352
 
353
+ if (isset($_POST['action']))
354
+ return sanitize_text_field($_POST['action']);
355
 
356
+ if (isset($_GET['action']))
357
+ return sanitize_text_field($_GET['action']);
358
 
359
+ return;
360
+ }
361
 
 
362
  }
363
 
364
  // WordPress Settings screen for WooCheckout
365
  function wooccm_register_settings() {
366
 
367
+ register_setting('wccs_options', 'wccs_settings', 'wooccm_options_validate');
368
+ register_setting('wccs_options2', 'wccs_settings2', 'wooccm_options_validate_shipping');
369
+ register_setting('wccs_options3', 'wccs_settings3', 'wooccm_options_validate_billing');
 
370
  }
371
 
372
  function wooccm_options_page() {
373
 
374
+ if (!current_user_can('manage_options'))
375
+ wp_die(__('You do not have sufficient permissions to access this page.', 'woocommerce-checkout-manager'));
376
+
377
+ $htmlshippingabbr = array('country', 'first_name', 'last_name', 'company', 'address_1', 'address_2', 'city', 'state', 'postcode');
378
+ $htmlbillingabbr = array('country', 'first_name', 'last_name', 'company', 'address_1', 'address_2', 'city', 'state', 'postcode', 'email', 'phone');
379
+ $upload_dir = wp_upload_dir();
380
+ $hidden_field_name = 'mccs_submit_hidden';
381
+ $hidden_wccs_reset = "my_new_field_reset";
382
+
383
+ // Additional details
384
+ $options = get_option('wccs_settings');
385
+ // Shipping details
386
+ $options2 = get_option('wccs_settings2');
387
+ // Billing details
388
+ $options3 = get_option('wccs_settings3');
389
+
390
+ // Check if the reset button has been clicked
391
+ if (
392
+ isset($_POST[$hidden_wccs_reset]) &&
393
+ sanitize_text_field($_POST[$hidden_wccs_reset]) == 'Y'
394
+ ) {
395
+ delete_option('wccs_settings');
396
+ delete_option('wccs_settings2');
397
+ delete_option('wccs_settings3');
398
+ $defaults = array(
399
+ 'checkness' => array(
400
+ 'position' => 'after_billing_form',
401
+ 'wooccm_notification_email' => get_option('admin_email'),
402
+ 'payment_method_t' => true,
403
+ 'shipping_method_t' => true,
404
+ 'payment_method_d' => __('Payment Method', 'woocommerce-checkout-manager'),
405
+ 'shipping_method_d' => __('Shipping Method', 'woocommerce-checkout-manager'),
406
+ 'time_stamp_title' => __('Order Time', 'woocommerce-checkout-manager'),
407
+ ),
408
+ );
409
+
410
+ $shipping = array(
411
+ 'country' => __('Country', 'woocommerce-checkout-manager'),
412
+ 'first_name' => __('First Name', 'woocommerce-checkout-manager'),
413
+ 'last_name' => __('Last Name', 'woocommerce-checkout-manager'),
414
+ 'company' => __('Company Name', 'woocommerce-checkout-manager'),
415
+ 'address_1' => __('Address', 'woocommerce-checkout-manager'),
416
+ 'address_2' => '',
417
+ 'city' => __('Town/ City', 'woocommerce-checkout-manager'),
418
+ 'state' => __('State', 'woocommerce-checkout-manager'),
419
+ 'postcode' => __('Zip', 'woocommerce-checkout-manager')
420
+ );
421
+ $ship = 0;
422
+ foreach ($shipping as $name => $value) {
423
+
424
+ $defaults2['shipping_buttons'][$ship]['label'] = (!empty($value) ? __($value, 'woocommerce-checkout-manager') : false );
425
+ $defaults2['shipping_buttons'][$ship]['cow'] = $name;
426
+ $defaults2['shipping_buttons'][$ship]['checkbox'] = 'true';
427
+ $defaults2['shipping_buttons'][$ship]['order'] = $ship + 1;
428
+ $defaults2['shipping_buttons'][$ship]['type'] = 'wooccmtext';
429
+
430
+ switch ($name) {
431
+
432
+ case 'country':
433
+ $defaults2['shipping_buttons'][$ship]['position'] = 'form-row-wide';
434
+ break;
435
+
436
+ case 'first_name':
437
+ $defaults2['shipping_buttons'][$ship]['position'] = 'form-row-first';
438
+ break;
439
+
440
+ case 'last_name':
441
+ $defaults2['shipping_buttons'][$ship]['position'] = 'form-row-last';
442
+ $defaults2['shipping_buttons'][$ship]['clear_row'] = true;
443
+ break;
444
+
445
+ case 'company':
446
+ $defaults2['shipping_buttons'][$ship]['position'] = 'form-row-wide';
447
+ break;
448
+
449
+ case 'address_1':
450
+ $defaults2['shipping_buttons'][$ship]['position'] = 'form-row-wide';
451
+ $defaults2['shipping_buttons'][$ship]['placeholder'] = __('Street address', 'woocommerce-checkout-manager');
452
+ break;
453
+
454
+ case 'address_2':
455
+ $defaults2['shipping_buttons'][$ship]['position'] = 'form-row-wide';
456
+ $defaults2['shipping_buttons'][$ship]['placeholder'] = __('Apartment, suite, unit etc. (optional)', 'woocommerce-checkout-manager');
457
+ break;
458
+
459
+ case 'city':
460
+ $defaults2['shipping_buttons'][$ship]['position'] = 'form-row-wide';
461
+ $defaults2['shipping_buttons'][$ship]['placeholder'] = __('Town / City', 'woocommerce-checkout-manager');
462
+ break;
463
+
464
+ case 'state':
465
+ $defaults2['shipping_buttons'][$ship]['position'] = 'form-row-first';
466
+ break;
467
+ }
468
+
469
+ $ship++;
470
+ }
471
+
472
+ $billing = array(
473
+ 'country' => __('Country', 'woocommerce-checkout-manager'),
474
+ 'first_name' => __('First Name', 'woocommerce-checkout-manager'),
475
+ 'last_name' => __('Last Name', 'woocommerce-checkout-manager'),
476
+ 'company' => __('Company Name', 'woocommerce-checkout-manager'),
477
+ 'address_1' => __('Address', 'woocommerce-checkout-manager'),
478
+ 'address_2' => '',
479
+ 'city' => __('Town/ City', 'woocommerce-checkout-manager'),
480
+ 'state' => __('State', 'woocommerce-checkout-manager'),
481
+ 'postcode' => __('Zip', 'woocommerce-checkout-manager'),
482
+ 'email' => __('Email Address', 'woocommerce-checkout-manager'),
483
+ 'phone' => __('Phone', 'woocommerce-checkout-manager')
484
+ );
485
+
486
+ $bill = 0;
487
+
488
+ foreach ($billing as $name => $value) {
489
+
490
+ $defaults3['billing_buttons'][$bill]['label'] = (!empty($value) ? __($value, 'woocommerce-checkout-manager') : false );
491
+ $defaults3['billing_buttons'][$bill]['cow'] = $name;
492
+ $defaults3['billing_buttons'][$bill]['checkbox'] = 'true';
493
+ $defaults3['billing_buttons'][$bill]['order'] = $bill + 1;
494
+ $defaults3['billing_buttons'][$bill]['type'] = 'wooccmtext';
495
+
496
+ switch ($name) {
497
+
498
+ case 'country':
499
+ $defaults3['billing_buttons'][$bill]['position'] = 'form-row-wide';
500
+ break;
501
+
502
+ case 'first_name':
503
+ $defaults3['billing_buttons'][$bill]['position'] = 'form-row-first';
504
+ break;
505
+
506
+ case 'last_name':
507
+ $defaults3['billing_buttons'][$bill]['position'] = 'form-row-last';
508
+ $defaults3['billing_buttons'][$bill]['clear_row'] = true;
509
+ break;
510
+
511
+ case 'company':
512
+ $defaults3['billing_buttons'][$bill]['position'] = 'form-row-wide';
513
+ break;
514
+
515
+ case 'address_1':
516
+ $defaults3['billing_buttons'][$bill]['position'] = 'form-row-wide';
517
+ $defaults3['billing_buttons'][$bill]['placeholder'] = __('Street address', 'woocommerce-checkout-manager');
518
+ break;
519
+
520
+ case 'address_2':
521
+ $defaults3['billing_buttons'][$bill]['position'] = 'form-row-wide';
522
+ $defaults3['billing_buttons'][$bill]['placeholder'] = __('Apartment, suite, unit etc. (optional)', 'woocommerce-checkout-manager');
523
+ break;
524
+
525
+ case 'city':
526
+ $defaults3['billing_buttons'][$bill]['position'] = 'form-row-wide';
527
+ $defaults3['billing_buttons'][$bill]['placeholder'] = __('Town / City', 'woocommerce-checkout-manager');
528
+ break;
529
+
530
+ case 'state':
531
+ $defaults3['billing_buttons'][$bill]['position'] = 'form-row-first';
532
+ break;
533
+
534
+ case 'postcode':
535
+ $defaults3['billing_buttons'][$bill]['position'] = 'form-row-last';
536
+ $defaults3['billing_buttons'][$bill]['placeholder'] = __('Postcode / Zip', 'woocommerce-checkout-manager');
537
+ $defaults3['billing_buttons'][$bill]['clear_row'] = true;
538
+ break;
539
+
540
+ case 'email':
541
+ $defaults3['billing_buttons'][$bill]['position'] = 'form-row-first';
542
+ break;
543
+
544
+ case 'phone':
545
+ $defaults3['billing_buttons'][$bill]['position'] = 'form-row-last';
546
+ $defaults3['billing_buttons'][$bill]['clear_row'] = true;
547
+ break;
548
+ }
549
+
550
+ $bill++;
551
+ }
552
+ add_option('wccs_settings', $defaults);
553
+ add_option('wccs_settings2', $defaults2);
554
+ add_option('wccs_settings3', $defaults3);
555
+
556
+ // @mod - Change this to add_query_arg()
557
+ echo '
558
+ <script type="text/javascript">window.location.href="' . admin_url('admin.php?page=woocommerce-checkout-manager') . '";</script>';
559
+ echo '
560
+ <noscript><meta http-equiv="refresh" content="0;url=' . admin_url('admin.php?page=woocommerce-checkout-manager') . '" /></noscript>';
561
+ exit;
562
+ }
563
+ echo '
564
+ <script type="text/javascript" src="' . plugins_url('/woocommerce/assets/js/jquery-blockui/jquery.blockUI.js') . '"></script>';
565
+ echo '
 
 
 
 
 
566
  <div class="refreshwooccm">
567
  ';
568
 
569
+ // display error
570
+ settings_errors();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
571
 
572
+ // Now display the settings editing screen
573
+ // header
574
+ ?>
575
+ <h2><?php _e('WooCommerce Checkout Manager', 'woocommerce-checkout-manager'); ?></h2>
576
+ <div id="content">
577
 
578
+ <h2 class="nav-tab-wrapper add_tip_wrap">
579
+ <a class="nav-tab general-tab nav-tab-active"><?php _e('General', 'woocommerce-checkout-manager'); ?></a>
580
+ <a class="nav-tab billing-tab"><?php _e('Billing', 'woocommerce-checkout-manager'); ?></a>
581
+ <a class="nav-tab shipping-tab"><?php _e('Shipping', 'woocommerce-checkout-manager'); ?></a>
582
+ <a class="nav-tab additional-tab"><?php _e('Additional', 'woocommerce-checkout-manager'); ?></a>
583
+ <a class="nav-tab" href="<?php echo esc_url(WOOCCM_SUPPORT_URL); ?>" target="_blank">
584
+ <?php esc_html_e('Report a bug', 'woocommerce-checkout-manager'); ?>
585
+ </a>
586
+ <!--<a class="nav-tab star" href="https://wordpress.org/support/view/plugin-reviews/woocommerce-checkout-manager?filter=5" target="_blank">
587
+ <div id="star-five" title="<?php _e('Like the plugin? Rate it! On WordPress.org', 'woocommerce-checkout-manager'); ?>">
588
+ <div class="star-rating">
589
+ <div class="star star-full"></div>
590
+ <div class="star star-full"></div>
591
+ <div class="star star-full"></div>
592
+ <div class="star star-full"></div>
593
+ <div class="star star-full"></div>
594
+ </div>
595
+ </div>
596
+ </a>-->
597
+ </h2>
598
+ <!-- .nav-tab-wrapper -->
599
 
600
+ <?php do_action('wooccm_run_color_innerpicker'); ?>
 
601
 
602
+ <form name="reset_form" class="reset_form" method="post">
603
+ <input type="hidden" name="<?php echo esc_attr($hidden_wccs_reset); ?>" value="Y">
604
+ <input type="submit" name="submit" id="wccs_reset_submit" class="button button-hero" value="Reset">
605
+ </form>
606
 
607
+ <script type="text/javascript">
608
+ jQuery('#wccs_reset_submit').click('click', function () {
609
+ return window.confirm('<?php echo esc_js(__('Are you sure you wish to reset the settings on this tab for WooCommerce Checkout Manager?', 'woocommerce-checkout-manager')); ?>');
610
+ });
611
+ </script>
612
 
613
+ <?php require( WOOCCM_PLUGIN_DIR . 'includes/classes/import.php'); ?>
614
 
615
+ <div class="wrap">
 
616
 
617
+ <!-- Shipping section -->
618
+ <form name="wooccmform2" method="post" action="options.php" id="frm2">
619
 
620
+ <?php settings_fields('wccs_options2'); ?>
621
 
622
+ <input type="submit" id="wccs_submit_button" style="display:none;" name="Submit" class="save-shipping wccs_submit_button button button-primary button-hero" value="<?php _e('Save Changes', 'woocommerce-checkout-manager'); ?>" />
623
 
624
+ <?php require( WOOCCM_PLUGIN_DIR . 'includes/templates/admin/woocheckout-shipping.php' ); ?>
625
 
626
+ </form>
627
+ <!-- #frm2 -->
628
 
629
+ <!-- Billing section -->
630
+ <form name="wooccmform3" method="post" action="options.php" id="frm3">
631
 
632
+ <?php settings_fields('wccs_options3'); ?>
633
 
634
+ <input type="submit" id="wccs_submit_button" name="Submit" style="display:none;" class="save-billing wccs_submit_button button button-primary button-hero" value="<?php _e('Save Changes', 'woocommerce-checkout-manager'); ?>" />
635
 
636
+ <?php require( WOOCCM_PLUGIN_DIR . 'includes/templates/admin/woocheckout-billing.php' ); ?>
 
637
 
638
+ </form>
639
+ <!-- #frm3 -->
640
 
641
+ <!-- Additional section -->
642
+ <form name="wooccmform" method="post" action="options.php" id="frm1">
643
 
644
+ <?php settings_fields('wccs_options'); ?>
 
645
 
646
+ <input type="submit" id="wccs_submit_button" name="Submit" class="save-additional wccs_submit_button button button-primary button-hero" value="<?php _e('Save Changes', 'woocommerce-checkout-manager'); ?>" />
 
647
 
648
+ <!-- Additional section -->
649
+ <?php require( WOOCCM_PLUGIN_DIR . 'includes/templates/admin/woocheckout-additional.php' ); ?>
650
 
651
+ <!-- General section -->
652
+ <?php require( WOOCCM_PLUGIN_DIR . 'includes/templates/admin/woocheckout-general.php' ); ?>
653
 
654
+ </form>
655
+ <!-- #frm1 -->
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
656
 
657
+ </div>
658
+ <!-- .wrap -->
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
659
 
660
+ </div>
661
+ <!-- #content -->
 
 
 
 
 
 
 
 
 
 
 
 
662
 
663
+ </div>
664
+ <!-- #refreshwooccm -->
 
 
 
 
 
 
 
 
 
665
 
666
+ <?php
667
  }
668
 
669
+ function wooccm_options_validate($input) {
670
+
671
+ $detect_error = 0;
672
+ // translate additional fields
673
+ if (!empty($input['buttons'])) {
674
+ foreach ($input['buttons'] as $i => $btn) {
675
+
676
+ if (function_exists('icl_register_string')) {
677
+ if (!empty($btn['label'])) {
678
+ icl_register_string('WooCommerce Checkout Manager', $btn['label'], $btn['label']);
679
+ }
680
+ if (!empty($btn['placeholder'])) {
681
+ icl_register_string('WooCommerce Checkout Manager', $btn['placeholder'], $btn['placeholder']);
682
+ }
683
+
684
+ if (!empty($btn['option_array'])) {
685
+ $mysecureop = explode('||', $btn['option_array']);
686
+ foreach ($mysecureop as $one) {
687
+ icl_register_string('WooCommerce Checkout Manager', $one, $one);
688
+ }
689
+ }
690
+ }
691
+
692
+ if (!empty($btn['role_options']) && !empty($btn['role_options2'])) {
693
+ $input['buttons'][$i]['role_options2'] = '';
694
+ add_settings_error(
695
+ 'wooccm_settings_errors', esc_attr('settings_updated'), __('Sorry! An error occurred. WooCommerce Checkout Manager requires you to not have values in both role options. OK.', 'woocommerce-checkout-manager'), 'error'
696
+ );
697
+ }
698
+
699
+ if (!empty($btn['single_p']) && !empty($btn['single_px'])) {
700
+ $input['buttons'][$i]['single_px'] = '';
701
+ add_settings_error(
702
+ 'wooccm_settings_errors', esc_attr('settings_updated'), __('Sorry! An error occurred. WooCommerce Checkout Manager requires you to not have values in both hidden product options. OK.', 'woocommerce-checkout-manager'), 'error'
703
+ );
704
+ }
705
+
706
+ if (!empty($btn['single_p_cat']) && !empty($btn['single_px_cat'])) {
707
+ $input['buttons'][$i]['single_px_cat'] = '';
708
+ add_settings_error(
709
+ 'wooccm_settings_errors', esc_attr('settings_updated'), __('Sorry! An error occurred. WooCommerce Checkout Manager requires you to not have values in both hidden category options. OK.', 'woocommerce-checkout-manager'), 'error'
710
+ );
711
+ }
712
+
713
+ if (empty($btn['cow']) && empty($btn['label']) && empty($btn['placeholder'])) {
714
+ unset($input['buttons'][$i]);
715
+
716
+ if ($i != 999) {
717
+ $detect_error++;
718
+ $fieldnum = $i + 1;
719
+ add_settings_error(
720
+ 'wooccm_settings_errors', esc_attr('settings_updated'), __('Sorry! An error occurred. WooCommerce Checkout Manager removed Additional field #' . $fieldnum . ' because no Label or Placeholder name was provided.', 'woocommerce-checkout-manager'), 'error'
721
+ );
722
+ }
723
+ }
724
+
725
+ if (empty($btn['cow']) && (!empty($btn['label']) || !empty($btn['placeholder']))) {
726
+ $newNum = $i + 1;
727
+ if (wooccm_mul_array('myfield' . $newNum, $input['buttons'])) {
728
+ $input['buttons'][$i]['cow'] = 'myfield' . $newNum . 'c';
729
+ } else {
730
+ $input['buttons'][$i]['cow'] = 'myfield' . $newNum;
731
+ }
732
+ }
733
+
734
+ if (!empty($btn['cow']) && empty($btn['label']) && empty($btn['placeholder'])) {
735
+ unset($input['buttons'][$i]);
736
+
737
+ if ($i != 999) {
738
+ $detect_error++;
739
+ $fieldnum = $i + 1;
740
+ add_settings_error(
741
+ 'wooccm_settings_errors', esc_attr('settings_updated'), __('Sorry! An error occurred. WooCommerce Checkout Manager removed Additional field #' . $fieldnum . ' because no Label or Placeholder name was provided.', 'woocommerce-checkout-manager'), 'error'
742
+ );
743
+ }
744
+ }
745
+ }
746
+ }
747
+ if ($detect_error == 0) {
748
+ add_settings_error(
749
+ 'wooccm_settings_errors', esc_attr('settings_updated'), __('Your changes have been saved.', 'woocommerce-checkout-manager'), 'updated'
750
+ );
751
+ }
752
+ return $input;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
753
  }
754
 
755
+ function wooccm_options_validate_shipping($input) {
756
+
757
+ $detect_error = 0;
758
+ // translate shipping fields
759
+ if (!empty($input['shipping_buttons'])) {
760
+ foreach ($input['shipping_buttons'] as $i => $btn) {
761
+
762
+ if (function_exists('icl_register_string')) {
763
+ if (!empty($btn['label'])) {
764
+ icl_register_string('WooCommerce Checkout Manager', $btn['label'], $btn['label']);
765
+ }
766
+ if (!empty($btn['placeholder'])) {
767
+ icl_register_string('WooCommerce Checkout Manager', $btn['placeholder'], $btn['placeholder']);
768
+ }
769
+
770
+ if (!empty($btn['option_array'])) {
771
+ $mysecureop = explode('||', $btn['option_array']);
772
+ foreach ($mysecureop as $one) {
773
+ icl_register_string('WooCommerce Checkout Manager', $one, $one);
774
+ }
775
+ }
776
+ }
777
+
778
+ if (!empty($btn['role_options']) && !empty($btn['role_options2'])) {
779
+ $input['buttons'][$i]['role_options2'] = '';
780
+ add_settings_error(
781
+ 'wooccm_settings_errors', esc_attr('settings_updated'), __('Sorry! An error occurred. WooCommerce Checkout Manager requires you to not have values in both role options.', 'woocommerce-checkout-manager'), 'error'
782
+ );
783
+ }
784
+
785
+ if (!empty($btn['single_p']) && !empty($btn['single_px'])) {
786
+ $input['buttons'][$i]['single_px'] = '';
787
+ add_settings_error(
788
+ 'wooccm_settings_errors', esc_attr('settings_updated'), __('Sorry! An error occurred. WooCommerce Checkout Manager requires you to not have values in both hidden product options.', 'woocommerce-checkout-manager'), 'error'
789
+ );
790
+ }
791
+
792
+ if (!empty($btn['single_p_cat']) && !empty($btn['single_px_cat'])) {
793
+ $input['buttons'][$i]['single_px_cat'] = '';
794
+ add_settings_error(
795
+ 'wooccm_settings_errors', esc_attr('settings_updated'), __('Sorry! An error occurred. WooCommerce Checkout Manager requires you to not have values in both hidden category options.', 'woocommerce-checkout-manager'), 'error'
796
+ );
797
+ }
798
+
799
+ if (empty($btn['cow']) && empty($btn['label']) && empty($btn['placeholder'])) {
800
+ unset($input['shipping_buttons'][$i]);
801
+
802
+ if ($i != 999) {
803
+ $detect_error++;
804
+ $fieldnum = $i + 1;
805
+ add_settings_error(
806
+ 'wooccm_settings_errors', esc_attr('settings_updated'), __('Sorry! An error occurred. WooCommerce Checkout Manager removed Shipping field #' . $fieldnum . ' because no Label or Placeholder name was provided.', 'woocommerce-checkout-manager'), 'error'
807
+ );
808
+ }
809
+ }
810
+
811
+ if (empty($btn['cow']) && (!empty($btn['label']) || !empty($btn['placeholder']))) {
812
+ $newNum = $i + 1;
813
+ if (wooccm_mul_array('myfield' . $newNum, $input['shipping_buttons'])) {
814
+ $input['shipping_buttons'][$i]['cow'] = 'myfield' . $newNum . 'c';
815
+ } else {
816
+ $input['shipping_buttons'][$i]['cow'] = 'myfield' . $newNum;
817
+ }
818
+ }
819
+
820
+ if (!empty($btn['cow']) && empty($btn['label']) && empty($btn['placeholder'])) {
821
+ unset($input['shipping_buttons'][$i]);
822
+
823
+ if ($i != 999) {
824
+ $detect_error++;
825
+ $fieldnum = $i + 1;
826
+ add_settings_error(
827
+ 'wooccm_settings_errors', esc_attr('settings_updated'), __('Sorry! An error occurred. WooCommerce Checkout Manager removed Shipping field #' . $fieldnum . ' because no Label or Placeholder name was provided.', 'woocommerce-checkout-manager'), 'error'
828
+ );
829
+ }
830
+ }
831
+ }
832
+ }
833
+
834
+ if ($detect_error == 0) {
835
+ add_settings_error(
836
+ 'wooccm_settings_errors', esc_attr('settings_updated'), __('Your changes have been saved.', 'woocommerce-checkout-manager'), 'updated'
837
+ );
838
+ }
839
+
840
+ return $input;
841
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
842
 
843
+ function wooccm_options_validate_billing($input) {
844
+
845
+ $detect_error = 0;
846
+
847
+ // translate billing fields
848
+ if (!empty($input['billing_buttons'])) {
849
+ foreach ($input['billing_buttons'] as $i => $btn) {
850
+
851
+ if (function_exists('icl_register_string')) {
852
+ if (!empty($btn['label'])) {
853
+ icl_register_string('WooCommerce Checkout Manager', $btn['label'], $btn['label']);
854
+ }
855
+ if (!empty($btn['placeholder'])) {
856
+ icl_register_string('WooCommerce Checkout Manager', $btn['placeholder'], $btn['placeholder']);
857
+ }
858
+
859
+ if (!empty($btn['option_array'])) {
860
+ $mysecureop = explode('||', $btn['option_array']);
861
+ foreach ($mysecureop as $one) {
862
+ icl_register_string('WooCommerce Checkout Manager', $one, $one);
863
+ }
864
+ }
865
+ }
866
+
867
+ if (!empty($btn['role_options']) && !empty($btn['role_options2'])) {
868
+ $input['buttons'][$i]['role_options2'] = '';
869
+ add_settings_error(
870
+ 'wooccm_settings_errors', esc_attr('settings_updated'), __('Sorry! An error occurred. WooCommerce Checkout Manager requires you to not have values in both role options.', 'woocommerce-checkout-manager'), 'error'
871
+ );
872
+ }
873
+
874
+ if (!empty($btn['single_p']) && !empty($btn['single_px'])) {
875
+ $input['buttons'][$i]['single_px'] = '';
876
+ add_settings_error(
877
+ 'wooccm_settings_errors', esc_attr('settings_updated'), __('Sorry! An error occurred. WooCommerce Checkout Manager requires you to not have values in both hidden product options.', 'woocommerce-checkout-manager'), 'error'
878
+ );
879
+ }
880
+
881
+ if (!empty($btn['single_p_cat']) && !empty($btn['single_px_cat'])) {
882
+ $input['buttons'][$i]['single_px_cat'] = '';
883
+ add_settings_error(
884
+ 'wooccm_settings_errors', esc_attr('settings_updated'), __('Sorry! An error occurred. WooCommerce Checkout Manager requires you to not have values in both hidden category options.', 'woocommerce-checkout-manager'), 'error'
885
+ );
886
+ }
887
+
888
+ if (empty($btn['cow']) && empty($btn['label']) && empty($btn['placeholder'])) {
889
+ unset($input['billing_buttons'][$i]);
890
+
891
+ if ($i != 999) {
892
+ $detect_error++;
893
+ $fieldnum = $i + 1;
894
+ add_settings_error(
895
+ 'wooccm_settings_errors', esc_attr('settings_updated'), __('Sorry! An error occurred. WooCommerce Checkout Manager removed Billing field #' . $fieldnum . ' because no Label or Placeholder name was provided.', 'woocommerce-checkout-manager'), 'error'
896
+ );
897
+ }
898
+ }
899
+
900
+ if (empty($btn['cow']) && (!empty($btn['label']) || !empty($btn['placeholder']))) {
901
+ $newNum = $i + 1;
902
+ if (wooccm_mul_array('myfield' . $newNum, $input['billing_buttons'])) {
903
+ $input['billing_buttons'][$i]['cow'] = 'myfield' . $newNum . 'c';
904
+ } else {
905
+ $input['billing_buttons'][$i]['cow'] = 'myfield' . $newNum;
906
+ }
907
+ }
908
+
909
+ if (!empty($btn['cow']) && empty($btn['label']) && empty($btn['placeholder'])) {
910
+ $detect_error++;
911
+ unset($input['billing_buttons'][$i]);
912
+
913
+ if ($i != 999) {
914
+ $detect_error++;
915
+ $fieldnum = $i + 1;
916
+ add_settings_error(
917
+ 'wooccm_settings_errors', esc_attr('settings_updated'), __('Sorry! An error occurred. WooCommerce Checkout Manager removed Billing field #' . $fieldnum . ' because no Label or Placeholder name was provided.', 'woocommerce-checkout-manager'), 'error'
918
+ );
919
+ }
920
+ }
921
+ }
922
+ }
923
+
924
+ if ($detect_error == 0) {
925
+ add_settings_error(
926
+ 'wooccm_settings_errors', esc_attr('settings_updated'), __('Your changes have been saved.', 'woocommerce-checkout-manager'), 'updated'
927
+ );
928
+ }
929
+
930
+ return $input;
931
  }
932
 
933
  function wooccm_admin_notices() {
934
 
935
+ // Check the User has the manage_options capability
936
+ if (current_user_can('manage_options') == false)
937
+ return;
 
 
 
 
938
 
939
+ // @mod - Removed as it tends to blow people Options up...
940
+ // Data update from legacy (<3.0)
941
+ // wooccm_admin_updater_notice();
942
+ // Check whether we are on the WooCommerce Checkout Manager screen
943
+ $screen = get_current_screen();
944
 
945
+ if (get_option('wooccm_beta_notice') == false) {
946
+ $beta_url = 'https://www.visser.com.au/plugins/woocommerce-checkout-manager/#beta';
947
+ $support_url = 'https://wordpress.org/support/plugin/woocommerce-checkout-manager#postform';
948
+ $dismiss_url = add_query_arg(array('action' => 'wooccm_dismiss_beta_notice', '_wpnonce' => wp_create_nonce('wooccm_dismiss_beta_notice')));
949
 
950
+ $message = '<span style="float:right;"><a href="' . $dismiss_url . '" class="woocommerce-message-close notice-dismiss">' . __('Dismiss', 'woocommerce-checkout-manager') . '</a></span>';
951
+ $message .= __('<strong>WooCommerce Checkout Manager Notice:</strong> We urgently need developers, integrators and interested store owners to test early Plugin releases and provide feedback to help stabilise the 4.0+ series. Can you help?', 'woocommerce-checkout-manager');
952
+ $message .= '
953
  <p class="submit">
954
+ <a href="' . $beta_url . '" target="_blank" class="button-primary button-hero">' . __('Join the Developers list', 'woocommerce-checkout-manager') . '</a>
955
+ <a href="' . $support_url . '" target="_blank" class="button-secondary button-hero">' . __('Send feedback', 'woocommerce-checkout-manager') . '</a>
956
  </p>';
957
+ echo wooccm_admin_notice_html($message);
958
+ }
 
959
  }
960
 
961
  function wooccm_admin_updater_notice() {
962
 
963
+ if (in_array(get_option(WOOCCM_PREFIX . '_update_notice'), array(1, 'yep')) == true)
964
+ return;
965
+
966
+ $dismiss_url = add_query_arg(array('action' => 'wooccm_dismiss_update_notice', '_wpnonce' => wp_create_nonce('wooccm_dismiss_update_notice')));
967
+ ?>
968
+ <form method="post" name="clickhere" action="">
969
+ <div id="message" class="updated settings-error click-here-wooccm">
970
+ <p>
971
+ <span style="float:right;"><a href="<?php echo $dismiss_url; ?>" class="woocommerce-message-close notice-dismiss"><?php _e('Dismiss', 'woocommerce-checkout-manager'); ?></a></span>
972
+ <?php _e('<strong>WooCommerce Checkout Manager Data Update Required</strong> &#8211; We just need to update the settings for WooCommerce Checkout Manager to the latest version.', 'woocommerce-checkout-manager'); ?>
973
+ </p>
974
+ <?php
975
+ // Check whether we are on the WooCommerce Checkout Manager screen
976
+ $screen = get_current_screen();
977
+ if (strstr($screen->base, 'woocommerce-checkout-manager')) {
978
+ ?>
979
+ <p class="submit">
980
+ <input type="submit" class="wooccm-update-now button-primary button-hero" value="<?php _e('Run the updater', 'woocommerce-checkout-manager'); ?>" />
981
+ </p>
982
+ <?php
983
+ } else {
984
+ ?>
985
+ <p class="submit">
986
+ <a href="<?php echo add_query_arg('page', 'woocommerce-checkout-manager'); ?>" class="button-primary button-hero "><?php _e('Open WooCheckout', 'woocommerce-checkout-manager'); ?></a>
987
+ </p>
988
+ <?php
989
+ }
990
+ ?>
991
+ </div>
992
+ <!-- #message -->
993
+ <input type="hidden" name="click-here-wooccm" value="y" />
994
+ </form>
995
+ <?php
996
+ if (strstr($screen->base, 'woocommerce-checkout-manager')) {
997
+ ?>
998
+ <script type="text/javascript">
999
+ jQuery('.wooccm-update-now').click('click', function () {
1000
+ return window.confirm('<?php echo esc_js(__('It is strongly recommended that you backup your database before proceeding. Are you sure you wish to run the updater now?', 'woocommerce-checkout-manager')); ?>');
1001
+ });
1002
+ </script>
1003
+ <?php
1004
+ if (
1005
+ isset($_POST['click-here-wooccm']) &&
1006
+ sanitize_text_field($_POST['click-here-wooccm']) == 'y'
1007
+ ) {
1008
+ // @mod - We need to check this file exists
1009
+ ?>
1010
+
1011
+ <!-- First Use -->
1012
+ <script type="text/javascript">
1013
+ jQuery(document).ready(function ($) {
1014
+
1015
+ $('#wpbody-content').block({message: null, overlayCSS: {background: "#fff url(<?php echo plugins_url('woocommerce/assets/images/ajax-loader.gif'); ?> ) no-repeat center", opacity: .6}});
1016
+
1017
+ var form = $('#frm1');
1018
+ data = $('#frm1');
1019
+ forma = $('#frm2');
1020
+ dataa = $('#frm2');
1021
+ formb = $('#frm3');
1022
+ datab = $('#frm3');
1023
+
1024
+ $.ajax({
1025
+ type: "POST",
1026
+ url: form.attr('action'),
1027
+ data: data.serialize(),
1028
+ success: function (response) {
1029
+
1030
+ $.ajax({
1031
+ type: "POST",
1032
+ url: forma.attr('action'),
1033
+ data: dataa.serialize(),
1034
+ success: function (response) {}
1035
+ });
1036
+
1037
+ $.ajax({
1038
+ type: "POST",
1039
+ url: formb.attr('action'),
1040
+ data: datab.serialize(),
1041
+ success: function (response) {}
1042
+ });
1043
+ $('.settings-error.click-here-wooccm').hide();
1044
+ $('#wpbody-content').unblock();
1045
+
1046
+ }
1047
+ });
1048
+
1049
+ });
1050
+ </script>
1051
+
1052
+ <?php
1053
+ update_option(WOOCCM_PREFIX . '_update_notice', 1);
1054
+ }
1055
+ }
 
 
 
 
1056
  }
1057
 
1058
  // Additional details
1059
+ function wooccm_admin_edit_order_additional_details($order) {
1060
 
1061
+ global $post;
1062
 
1063
+ if (version_compare(wooccm_get_woo_version(), '2.7', '>=')) {
1064
+ $order_id = ( method_exists($order, 'get_id') ? $order->get_id() : $order->id );
1065
+ } else {
1066
+ $order_id = ( isset($order->id) ? $order->id : 0 );
1067
+ }
1068
 
1069
+ $options = get_option('wccs_settings');
1070
+ $buttons = ( isset($options['buttons']) ? $options['buttons'] : false );
1071
+ if (!empty($buttons)) {
1072
+ echo '
1073
  <p>&nbsp;</p>
1074
+ <h4>' . __('Additional Details', 'woocommerce-checkout-manager') . '</h4>';
1075
+ foreach ($buttons as $btn) {
1076
+
1077
+ if (
1078
+ ( get_post_meta($order_id, $btn['cow'], true) !== '' ) &&
1079
+ !empty($btn['label']) &&
1080
+ $btn['type'] !== 'heading' &&
1081
+ $btn['type'] !== 'multiselect' &&
1082
+ $btn['type'] !== 'wooccmupload' &&
1083
+ $btn['type'] !== 'multicheckbox'
1084
+ ) {
1085
+ echo '
1086
  <p id="additional_' . $btn['cow'] . '" class="form-field form-field-wide form-field-type-' . $btn['type'] . '">
1087
+ <strong title="' . sprintf(__('ID: %s | Field Type: %s', 'woocommerce-checkout-manager'), $btn['cow'], __('Generic', 'woocommerce-checkout-manager')) . '">
1088
+ ' . wooccm_wpml_string(trim($btn['label'])) . ':</strong><br />' . nl2br(get_post_meta($order_id, $btn['cow'], true)) . '
1089
  </p>
1090
  <!-- .form-field-type-... -->';
1091
+ } elseif (
1092
+ !empty($btn['label']) &&
1093
+ $btn['type'] !== 'wooccmupload' &&
1094
+ $btn['type'] !== 'multiselect' &&
1095
+ $btn['type'] !== 'multicheckbox' &&
1096
+ $btn['type'] == 'heading'
1097
+ ) {
1098
+ echo '
1099
+ <h4>' . wooccm_wpml_string(trim($btn['label'])) . '</h4>';
1100
+ } elseif (
1101
+ ( get_post_meta($order_id, $btn['cow'], true) !== '' ) &&
1102
+ !empty($btn['label']) &&
1103
+ $btn['type'] !== 'heading' &&
1104
+ $btn['type'] !== 'wooccmupload' &&
1105
+ (
1106
+ $btn['type'] == 'multiselect' || $btn['type'] == 'multicheckbox'
1107
+ )
1108
+ ) {
1109
+ $value = get_post_meta($order_id, $btn['cow'], true);
1110
+ $strings = maybe_unserialize($value);
1111
+ echo '
1112
  <p class="form-field form-field-wide form-field-type-' . $btn['type'] . '">
1113
+ <strong title="' . sprintf(__('ID: %s | Field Type: %s', 'woocommerce-checkout-manager'), $btn['cow'], __('Multi-Select or Multi-Checkbox', 'woocommerce-checkout-manager')) . '">' . wooccm_wpml_string(trim($btn['label'])) . ':</strong> ';
1114
+ if (!empty($strings)) {
1115
+ if (is_array($strings)) {
1116
+ $iww = 0;
1117
+ $len = count($strings);
1118
+ foreach ($strings as $key) {
1119
+ if ($iww == $len - 1) {
1120
+ echo '' . wooccm_wpml_string($key);
1121
+ } else {
1122
+ echo '' . wooccm_wpml_string($key) . ', ';
1123
+ }
1124
+ $iww++;
1125
+ }
1126
+ }
1127
+ } else {
1128
+ echo '-';
1129
+ }
1130
+ echo '
1131
  </p>
1132
  <!-- .form-field-type-multiselect .form-field-type-multicheckbox -->';
1133
+ } elseif (
1134
+ ( get_post_meta($order_id, $btn['cow'], true) !== '' ) &&
1135
+ $btn['type'] == 'wooccmupload'
1136
+ ) {
1137
+ $attachments = get_post_meta($order_id, $btn['cow'], true);
1138
+ if (!empty($attachments)) {
1139
+ // Check for delimiter
1140
+ if (strstr($attachments, '||') !== false)
1141
+ $attachments = explode('||', $attachments);
1142
+ else if (strstr($attachments, ',') !== false)
1143
+ $attachments = explode(',', $attachments);
1144
+ else if (is_numeric($attachments))
1145
+ $attachments = array($attachments);
1146
+ }
1147
+ echo '
1148
  <p class="form-field form-field-wide form-field-type-wooccmupload">
1149
+ <strong>' . wooccm_wpml_string(trim($btn['label'])) . ':</strong>';
1150
+ if (empty($attachments)) {
1151
+ echo '<br />';
1152
+ echo '-';
1153
+ }
1154
+ echo '
1155
  </p>' . "\n";
1156
+ if (!empty($attachments)) {
1157
+ echo '<ul>' . "\n";
1158
+ foreach ($attachments as $attachment) {
1159
+ $attachment_url = wp_get_attachment_url($attachment);
1160
+ if (!empty($attachment_url))
1161
+ echo '<li><a href="' . $attachment_url . '" target="_blank">' . basename($attachment_url) . '</a></li>' . "\n";
1162
+ }
1163
+ echo '</ul>';
1164
+ }
1165
+ echo '
1166
  <!-- .form-field-type-wooccmupload -->';
1167
+ }
1168
+ }
1169
+ }
 
 
1170
  }
1171
 
1172
  // Billing details
1173
+ function wooccm_admin_edit_order_billing_details($order) {
1174
+
1175
+ global $post;
1176
+
1177
+ $order_id = ( isset($post->ID) ? $post->ID : false );
1178
+
1179
+ $options = get_option('wccs_settings3');
1180
+ $buttons = ( isset($options['billing_buttons']) ? $options['billing_buttons'] : false );
1181
+ if (!empty($buttons)) {
1182
+ $fields = array(
1183
+ 'country',
1184
+ 'first_name',
1185
+ 'last_name',
1186
+ 'company',
1187
+ 'address_1',
1188
+ 'address_2',
1189
+ 'city',
1190
+ 'state',
1191
+ 'postcode',
1192
+ 'email',
1193
+ 'phone'
1194
+ );
1195
+ foreach ($buttons as $btn) {
1196
+
1197
+ if (!in_array($btn['cow'], $fields)) {
1198
+ if (
1199
+ ( get_post_meta($order_id, sprintf('_billing_%s', $btn['cow']), true) !== '' ) &&
1200
+ !empty($btn['label']) &&
1201
+ $btn['type'] !== 'heading' &&
1202
+ $btn['type'] !== 'multiselect' &&
1203
+ $btn['type'] !== 'wooccmupload' &&
1204
+ $btn['type'] !== 'multicheckbox'
1205
+ ) {
1206
+ echo '
1207
  <p id="billing_' . $btn['cow'] . '" class="form-field form-field-wide form-field-type-' . $btn['type'] . '">
1208
+ <strong title="' . sprintf(__('ID: %s | Field Type: %s', 'woocommerce-checkout-manager'), sprintf('_billing_%s', $btn['cow']), __('Generic', 'woocommerce-checkout-manager')) . '">
1209
+ ' . wooccm_wpml_string(trim($btn['label'])) . ':</strong><br />' . nl2br(get_post_meta($order_id, sprintf('_billing_%s', $btn['cow']), true)) . '
1210
  </p>
1211
  <!-- .form-field-type-... -->';
1212
+ } elseif (
1213
+ !empty($btn['label']) &&
1214
+ $btn['type'] !== 'wooccmupload' &&
1215
+ $btn['type'] !== 'multiselect' &&
1216
+ $btn['type'] !== 'multicheckbox' &&
1217
+ $btn['type'] == 'heading'
1218
+ ) {
1219
+ echo '
1220
+ <h4>' . wooccm_wpml_string(trim($btn['label'])) . '</h4>';
1221
+ } elseif (
1222
+ ( get_post_meta($order_id, sprintf('_billing_%s', $btn['cow']), true) !== '' ) &&
1223
+ !empty($btn['label']) &&
1224
+ $btn['type'] !== 'heading' &&
1225
+ $btn['type'] !== 'wooccmupload' &&
1226
+ (
1227
+ $btn['type'] == 'multiselect' || $btn['type'] == 'multicheckbox'
1228
+ )
1229
+ ) {
1230
+ $value = get_post_meta($order_id, sprintf('_billing_%s', $btn['cow']), true);
1231
+ $strings = maybe_unserialize($value);
1232
+
1233
+ echo '
1234
  <p class="form-field form-field-wide form-field-type-' . $btn['type'] . '">
1235
+ <strong title="' . sprintf(__('ID: %s | Field Type: %s', 'woocommerce-checkout-manager'), sprintf('_billing_%s', $btn['cow']), __('Multi-Select or Multi-Checkbox', 'woocommerce-checkout-manager')) . '">' . wooccm_wpml_string(trim($btn['label'])) . ':</strong> ';
1236
+ if (!empty($strings)) {
1237
+ if (is_array($strings)) {
1238
+ $iww = 0;
1239
+ $len = count($strings);
1240
+ foreach ($strings as $key) {
1241
+ if ($iww == $len - 1) {
1242
+ echo wooccm_wpml_string($key);
1243
+ } else {
1244
+ echo wooccm_wpml_string($key) . ', ';
1245
+ }
1246
+ $iww++;
1247
+ }
1248
+ } else {
1249
+ echo $strings;
1250
+ }
1251
+ } else {
1252
+ echo '-';
1253
+ }
1254
+ echo '
1255
  </p>
1256
  <!-- .form-field-type-multiselect .form-field-type-multicheckbox -->';
1257
+ } elseif (
1258
+ ( get_post_meta($order_id, sprintf('_billing_%s', $btn['cow']), true) !== '' ) &&
1259
+ $btn['type'] == 'wooccmupload'
1260
+ ) {
1261
+ $attachments = get_post_meta($order_id, sprintf('_billing_%s', $btn['cow']), true);
1262
+ if (!empty($attachments)) {
1263
+ // Check for delimiter
1264
+ if (strstr($attachments, '||') !== false)
1265
+ $attachments = explode('||', $attachments);
1266
+ else if (strstr($attachments, ',') !== false)
1267
+ $attachments = explode(',', $attachments);
1268
+ else if (is_numeric($attachments))
1269
+ $attachments = array($attachments);
1270
+ }
1271
+ $btn['label'] = (!empty($btn['force_title2']) ? $btn['force_title2'] : $btn['label'] );
1272
+ echo '
1273
  <p class="form-field form-field-wide form-field-type-wooccmupload">
1274
+ <strong>' . wooccm_wpml_string(trim($btn['label'])) . ':</strong>';
1275
+ if (empty($attachments)) {
1276
+ echo '<br />';
1277
+ echo '-';
1278
+ }
1279
+ echo '
1280
  </p>' . "\n";
1281
+ if (!empty($attachments)) {
1282
+ echo '<ul>' . "\n";
1283
+ foreach ($attachments as $attachment) {
1284
+ $attachment_url = wp_get_attachment_url($attachment);
1285
+ if (!empty($attachment_url))
1286
+ echo '<li><a href="' . $attachment_url . '" target="_blank">' . basename($attachment_url) . '</a></li>' . "\n";
1287
+ }
1288
+ echo '</ul>';
1289
+ }
1290
+ echo '
1291
  <!-- .form-field-type-wooccmupload -->';
1292
+ }
1293
+ }
1294
+ }
1295
+ }
 
 
1296
  }
1297
 
1298
  // Shipping details
1299
+ function wooccm_admin_edit_order_shipping_details($order) {
1300
+
1301
+ global $post;
1302
+
1303
+ $order_id = ( isset($post->ID) ? $post->ID : false );
1304
+
1305
+ $options = get_option('wccs_settings2');
1306
+ $buttons = ( isset($options['shipping_buttons']) ? $options['shipping_buttons'] : false );
1307
+ if (!empty($buttons)) {
1308
+ $fields = array(
1309
+ 'country',
1310
+ 'first_name',
1311
+ 'last_name',
1312
+ 'company',
1313
+ 'address_1',
1314
+ 'address_2',
1315
+ 'city',
1316
+ 'state',
1317
+ 'postcode'
1318
+ );
1319
+ foreach ($buttons as $btn) {
1320
+
1321
+ if (!in_array($btn['cow'], $fields)) {
1322
+ if (
1323
+ ( get_post_meta($order_id, sprintf('_shipping_%s', $btn['cow']), true) !== '' ) &&
1324
+ !empty($btn['label']) &&
1325
+ $btn['type'] !== 'wooccmupload' &&
1326
+ $btn['type'] !== 'heading' &&
1327
+ $btn['type'] !== 'multiselect' &&
1328
+ $btn['type'] !== 'multicheckbox'
1329
+ ) {
1330
+ echo '
1331
  <p id="shipping_' . $btn['cow'] . '" class="form-field form-field-wide form-field-type-' . $btn['type'] . '">
1332
+ <strong title="' . sprintf(__('ID: %s | Field Type: %s', 'woocommerce-checkout-manager'), sprintf('_shipping_%s', $btn['cow']), __('Generic', 'woocommerce-checkout-manager')) . '">
1333
+ ' . wooccm_wpml_string(trim($btn['label'])) . ':</strong><br />' . nl2br(get_post_meta($order_id, sprintf('_shipping_%s', $btn['cow']), true)) . '
1334
  </p>
1335
  <!-- .form-field-type-... -->';
1336
+ } elseif (
1337
+ !empty($btn['label']) &&
1338
+ $btn['type'] !== 'multiselect' &&
1339
+ $btn['type'] !== 'multicheckbox' &&
1340
+ $btn['type'] == 'heading'
1341
+ ) {
1342
+ echo '
1343
+ <h4>' . wooccm_wpml_string(trim($btn['label'])) . '</h4>';
1344
+ } elseif (
1345
+ ( get_post_meta($order_id, sprintf('_shipping_%s', $btn['cow']), true) !== '' ) &&
1346
+ !empty($btn['label']) &&
1347
+ $btn['type'] !== 'heading' &&
1348
+ $btn['type'] !== 'wooccmupload' &&
1349
+ (
1350
+ $btn['type'] == 'multiselect' || $btn['type'] == 'multicheckbox'
1351
+ )
1352
+ ) {
1353
+ $value = get_post_meta($order_id, sprintf('_shipping_%s', $btn['cow']), true);
1354
+ $strings = maybe_unserialize($value);
1355
+ echo '
1356
  <p class="form-field form-field-wide form-field-type-' . $btn['type'] . '">
1357
+ <strong title="' . sprintf(__('ID: %s | Field Type: %s', 'woocommerce-checkout-manager'), sprintf('_shipping_%s', $btn['cow']), __('Multi-Select or Multi-Checkbox', 'woocommerce-checkout-manager')) . '">' . wooccm_wpml_string(trim($btn['label'])) . ':</strong> ';
1358
+ if (!empty($strings)) {
1359
+ if (is_array($strings)) {
1360
+ $iww = 0;
1361
+ $len = count($strings);
1362
+ foreach ($strings as $key) {
1363
+ if ($iww == $len - 1) {
1364
+ echo wooccm_wpml_string($key);
1365
+ } else {
1366
+ echo wooccm_wpml_string($key) . ', ';
1367
+ }
1368
+ $iww++;
1369
+ }
1370
+ } else {
1371
+ echo $strings;
1372
+ }
1373
+ } else {
1374
+ echo '-';
1375
+ }
1376
+ echo '
1377
  </p>
1378
  <!-- .form-field-type-multiselect .form-field-type-multicheckbox -->';
1379
+ } elseif (
1380
+ ( get_post_meta($order_id, sprintf('_shipping_%s', $btn['cow']), true) !== '' ) &&
1381
+ $btn['type'] == 'wooccmupload'
1382
+ ) {
1383
+ $attachments = get_post_meta($order_id, sprintf('_shipping_%s', $btn['cow']), true);
1384
+ if (!empty($attachments)) {
1385
+ // Check for delimiter
1386
+ if (strstr($attachments, '||') !== false)
1387
+ $attachments = explode('||', $attachments);
1388
+ else if (strstr($attachments, ',') !== false)
1389
+ $attachments = explode(',', $attachments);
1390
+ else if (is_numeric($attachments))
1391
+ $attachments = array($attachments);
1392
+ }
1393
+ $btn['label'] = (!empty($btn['force_title2']) ? $btn['force_title2'] : $btn['label'] );
1394
+ echo '
1395
  <p class="form-field form-field-wide form-field-type-wooccmupload">
1396
+ <strong>' . wooccm_wpml_string(trim($btn['label'])) . ':</strong>';
1397
+ echo '
1398
  </p>' . "\n";
1399
+ if (!empty($attachments) && is_array($attachments)) {
1400
+ echo '<ul>' . "\n";
1401
+ foreach ($attachments as $attachment) {
1402
+ $attachment_url = wp_get_attachment_url($attachment);
1403
+ if (!empty($attachment_url))
1404
+ echo '<li><a href="' . $attachment_url . '" target="_blank">' . basename($attachment_url) . '</a></li>' . "\n";
1405
+ }
1406
+ echo '</ul>';
1407
+ } else {
1408
+ echo '<br />';
1409
+ echo '-';
1410
+ }
1411
+ echo '
1412
  <!-- .form-field-type-wooccmupload -->';
1413
+ }
1414
+ }
1415
+ }
1416
+ }
 
 
1417
  }
1418
 
1419
  function wooccm_validate_upload_process_customer() {
1420
 
1421
+ $options = get_option('wccs_settings');
 
 
 
 
 
 
1422
 
1423
+ if (!empty($options['checkness']['enable_file_upload'])) {
1424
+ return true;
1425
+ } else {
1426
+ return false;
1427
+ }
1428
  }
1429
 
1430
  // Check if the customer can upload images
1431
  // @mod - This disables the Order Uploaded Files meta box even for Administrators...?
1432
+ if (wooccm_validate_upload_process_customer()) {
1433
+ add_action('woocommerce_view_order', 'wooccm_file_uploader_front_end');
1434
+ add_action('add_meta_boxes', 'wooccm_admin_edit_order_metaboxes');
1435
  }
1436
 
1437
  function wooccm_admin_edit_order_metaboxes() {
1438
 
1439
+ global $post;
 
 
 
1440
 
1441
+ $post_type = 'shop_order';
1442
+ add_meta_box('woocommerce-order-files', __('Order Uploaded Files', 'woocommerce-checkout-manager'), 'wooccm_admin_edit_order_uploaded_files_meta_box', $post_type, 'normal', 'default');
1443
  }
1444
 
1445
+ function wooccm_admin_edit_order_uploaded_files_meta_box($post) {
1446
+
1447
+ global $wpdb, $thepostid, $theorder, $woocommerce, $post;
1448
+
1449
+ $order_id = ( isset($post->ID) ? $post->ID : false );
1450
+
1451
+ $options = get_option('wccs_settings');
1452
+
1453
+ $upload_dir = wp_upload_dir();
1454
+
1455
+ $array = array();
1456
+ $default_wccm_values = '';
1457
+ $product_image_gallery = '';
1458
+
1459
+ $post_type = 'attachment';
1460
+ $args = array(
1461
+ 'post_type' => $post_type,
1462
+ 'numberposts' => -1,
1463
+ 'post_status' => null,
1464
+ 'post_parent' => $order_id
1465
+ );
1466
+ $posts = get_posts($args);
1467
+ // wooccm_error_log( 'posts: ' . print_r( $posts, true ) );
1468
+ // @mod - Legacy versions were not correctly saving Post Parent so let's do a search if no results were returned
1469
+ if (empty($posts)) {
1470
+
1471
+ $meta_keys = array();
1472
+
1473
+ // Additional section
1474
+ $options = get_option('wccs_settings');
1475
+ $buttons = ( isset($options['buttons']) ? $options['buttons'] : false );
1476
+ if (!empty($buttons)) {
1477
+ foreach ($buttons as $btn) {
1478
+ if ($btn['type'] == 'wooccmupload')
1479
+ $meta_keys[] = $btn['cow'];
1480
+ }
1481
+ }
1482
+ // Billing section
1483
+ $options = get_option('wccs_settings3');
1484
+ $buttons = ( isset($options['billing_buttons']) ? $options['billing_buttons'] : false );
1485
+ if (!empty($buttons)) {
1486
+ foreach ($buttons as $btn) {
1487
+ if ($btn['type'] == 'wooccmupload')
1488
+ $meta_keys[] = sprintf('_billing_%s', $btn['cow']);
1489
+ }
1490
+ }
1491
+ // Shipping section
1492
+ $options = get_option('wccs_settings2');
1493
+ $buttons = ( isset($options['shipping_buttons']) ? $options['shipping_buttons'] : false );
1494
+ if (!empty($buttons)) {
1495
+ foreach ($buttons as $btn) {
1496
+ if ($btn['type'] == 'wooccmupload')
1497
+ $meta_keys[] = sprintf('_shipping_%s', $btn['cow']);
1498
+ }
1499
+ }
1500
+
1501
+ if (!empty($meta_keys)) {
1502
+ $values = array();
1503
+ // Check the Order for these meta keys
1504
+ foreach ($meta_keys as $meta_key) {
1505
+ $value = get_post_meta($order_id, $meta_key, true);
1506
+ if (!empty($value)) {
1507
+ if (is_array($value))
1508
+ $array[] = implode(',', $value);
1509
+ else
1510
+ $array[] = $value;
1511
+ }
1512
+ }
1513
+ }
1514
+ }
1515
+ // Check if there are any attachments
1516
+ if (!empty($posts) || !empty($array)) {
1517
+ if (!empty($posts)) {
1518
+ foreach ($posts as $attachment) {
1519
+ $array[] = $attachment->ID;
1520
+ }
1521
+ }
1522
+ $default_wccm_values = implode(',', $array);
1523
+ $product_image_gallery = implode(',', $array);
1524
+ // wooccm_error_log( 'default_wccm_values: ' . print_r( $default_wccm_values, true ) );
1525
+ // wooccm_error_log( 'product_image_gallery: ' . print_r( $product_image_gallery, true ) );
1526
+ }
1527
+
1528
+ $attachments = array_filter(explode(',', $product_image_gallery));
1529
+ // wooccm_error_log( 'attachments: ' . print_r( $attachments, true ) );
1530
+ ?>
1531
+
1532
+ <script type="text/javascript">
1533
+ jQuery(document).ready(function ($) {
1534
+
1535
+ $('#wccm_save_order_submit').click(function () {
1536
+ $(".wccm_results").html("<?php _e('Saving, please wait...', 'woocommerce-checkout-manager'); ?>");
1537
+ var data = {
1538
+ action: 'update_attachment_wccm',
1539
+ post_id: '<?php echo $post->ID; ?>',
1540
+ product_image_gallery: $('#product_image_gallery').val(),
1541
+ wccm_default_keys_load: $('#wccm_default_keys_load').val()
1542
+ };
1543
+
1544
+ // since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
1545
+ $.post(ajaxurl, data, function (response) {
1546
+ $(".wccm_results").html(response);
1547
+ });
1548
+ });
1549
+
1550
+ });
1551
+ </script>
1552
+
1553
+ <?php wp_enqueue_style('wccm_upload_file_style', plugins_url('includes/templates/admin/edit-order-uploads-file_editing_table.css', WOOCCM_PLUGIN_FILE)); ?>
1554
+
1555
+ <div class="woocommerce_order_items_wrapper">
1556
+ <table class="woocommerce_order_items back_end">
1557
+
1558
+ <thead>
1559
+ <tr>
1560
+ <th nowrap>
1561
+ <attr title="<?php _e('Attachment ID', 'woocommerce-checkout-manager'); ?>"><?php _e('ID', 'woocommerce-checkout-manager'); ?></attr>
1562
+ </th>
1563
+ <th><?php _e('Image', 'woocommerce-checkout-manager'); ?></th>
1564
+ <th><?php _e('Filename', 'woocommerce-checkout-manager'); ?></th>
1565
+ <th><?php _e('Dimensions', 'woocommerce-checkout-manager'); ?></th>
1566
+ <th><?php _e('Extension', ' woocommerce-checkout-manager'); ?></th>
1567
+ <th class="column-actions"><?php _e('Actions', 'woocommerce-checkout-manager'); ?></th>
1568
+ </tr>
1569
+ </thead>
1570
+
1571
+ <tbody class="product_images">
1572
+ <?php
1573
+ if (!empty($attachments)) {
1574
+ foreach ($attachments as $attachment_id) {
1575
+
1576
+ $image_attributes = wp_get_attachment_url($attachment_id);
1577
+ $image_attributes2 = wp_get_attachment_image_src($attachment_id);
1578
+ $filename = basename($image_attributes);
1579
+ $wp_filetype = wp_check_filetype($filename);
1580
+
1581
+ $value_declear = array_diff(explode(',', $default_wccm_values), explode(',', $attachment_id));
1582
+
1583
+ echo '
1584
+ <tr class="image wccm_filesli wccmv_' . esc_attr($attachment_id) . '">
 
1585
  <script type="text/javascript">
1586
  jQuery(document).ready(function(){
1587
+ jQuery(".wccmx_' . esc_attr($attachment_id) . '").click(function(){
1588
 
1589
+ jQuery(".wccmv_' . esc_attr($attachment_id) . '").hide();
1590
+ jQuery("#product_image_gallery").val(jQuery("#product_image_gallery").val().replace("' . esc_attr($attachment_id) . '", ""));
1591
 
1592
  });
1593
  });
1594
  </script>
1595
  <td>' . $attachment_id . '</td>
1596
+ <td>' . wp_get_attachment_link($attachment_id, '', false, false, wp_get_attachment_image($attachment_id, array(75, 75), false)) . '</td>
1597
+ <td>' . wp_get_attachment_link($attachment_id, '', false, false, preg_replace('/\.[^.]+$/', '', $filename)) . '</td>
1598
  <td>';
1599
+ if ($image_attributes2[1] == '') {
1600
+ echo '-';
1601
+ } else {
1602
+ echo $image_attributes2[1] . ' x ' . $image_attributes2[2];
1603
+ }
1604
+ echo '</td>
1605
+ <td>' . strtoupper($wp_filetype['ext']) . '</td>
1606
  <td class="column-actions" nowrap>
1607
+ <a href="' . $image_attributes2[0] . '" target="_blank" class="button">' . __('Download', 'woocommerce-checkout-manager') . '</a>
1608
+ <a class="delete tips wccm_delete wccmx_' . esc_attr($attachment_id) . ' button" data-tip="' . __('Delete file', 'woocommerce-checkout-manager') . '">' . __('Delete file', 'woocommerce-checkout-manager') . '</a>
1609
  </td>
1610
  </tr>
1611
  ';
1612
+ }
1613
+ } else {
1614
+ echo '
 
1615
  <tr>
1616
+ <td colspan="6" style="text-align:left;">' . __('No files have been uploaded to this Order.', 'woocommerce-checkout-manager') . '</td>
1617
  </tr>';
1618
+ }
1619
+ ?>
1620
+ </tbody>
1621
+ </table>
1622
+ <input type="hidden" class="wccm_add_to_list" id="product_image_gallery" name="product_image_gallery" value="<?php echo esc_attr($product_image_gallery); ?>" />
1623
+ <input type="hidden" id="wccm_default_keys_load" name="wccm_default_keys_load" value="<?php echo esc_attr($default_wccm_values); ?>" />
1624
+ <!-- .woocommerce_order_items -->
1625
+
1626
+ <p class="add_product_images hide-if-no-js">
1627
+ <form method="POST" action="">
1628
+ <span class="btn button-primary wccm_add_order_link fileinput-button">
1629
+ <span><?php _e('Add Order Files', 'woocommerce-checkout-manager'); ?></span>
1630
+ <input type="file" name="files_wccm" id="files_wccm" multiple />
1631
+ <button type="button" id="files_button_wccm"><?php _e('Upload Files!', 'woocommerce-checkout-manager'); ?></button>
1632
+ </span>
1633
+ </form>
1634
+ </p>
1635
+
1636
+ <!-- Edit Order: File upload -->
1637
+ <script type="text/javascript">
1638
+ jQuery(document).ready(function ($) {
1639
+ (
1640
+ function post_image_content() {
1641
+
1642
+ var input = document.getElementById("files_wccm"), formdata = false;
1643
+
1644
+ if (window.FormData) {
1645
+ formdata = new FormData();
1646
+ document.getElementById("files_button_wccm").style.display = "none";
1647
+ }
1648
+
1649
+ input.addEventListener("change", function (evt) {
1650
+
1651
+ $(".wccm_results").html("Uploading, please wait....");
1652
+
1653
+ var i = 0, len = this.files.length, img, reader, file;
1654
+
1655
+ for (; i < len; i++) {
1656
+ file = this.files[i];
1657
+ if (formdata) {
1658
+ formdata.append("files_wccm[]", file);
1659
+ }
1660
+ }
1661
+
1662
+ if (formdata) {
1663
+ $.ajax({
1664
+ url: "<?php echo admin_url('/admin-ajax.php?action=wccs_upload_file_func&order_id=' . $order_id . '&name=files_wccm'); ?>",
1665
+ type: "POST",
1666
+ data: formdata,
1667
+ processData: false,
1668
+ contentType: false,
1669
+ success: function (res) {
1670
+ $('#files_wccm').show();
1671
+ $(".wccm_results").html("Files uploaded successfully.");
1672
+ /* $(".wccm_results").html(res); */
1673
+
1674
+ $.ajax({
1675
+ url: '<?php echo admin_url('/post.php?post=' . $post->ID . '&action=edit'); ?>',
1676
+ data: {},
1677
+ success: function (data) {
1678
+ $("div#product_images_container").html($(data).find("div#product_images_container"));
1679
+ $(".wccm_results").html("Files uploaded successfully.");
1680
+ /* $(".wccm_results").html(data); */
1681
+ },
1682
+ dataType: 'html'
1683
+ });
1684
+ }
1685
+ });
1686
+ }
1687
+ }, false);
1688
+ }
1689
+
1690
+ ());
1691
+
1692
+ });
1693
+ </script>
1694
+
1695
+ <input type="button" id="wccm_save_order_submit" class="button button-primary" value="<?php _e('Save Changes', 'woocommerce-checkout-manager'); ?>">
1696
+ <div class="wccm_results"></div>
1697
+ <div class="clear"></div>
1698
+
1699
+ </div>
1700
+ <!-- .woocommerce_order_items_wrapper -->
1701
+ <?php
 
1702
  }
1703
 
1704
  // front end for user
1705
+ function wooccm_file_uploader_front_end($order_id) {
1706
+
1707
+ global $wpdb, $thepostid, $theorder, $woocommerce, $post;
1708
+
1709
+ $order = new WC_Order($order_id);
1710
+
1711
+ $options = get_option('wccs_settings');
1712
+ $length = ( empty($options['checkness']['file_upload_number']) ) ? 'this.files.length' : $options['checkness']['file_upload_number'];
1713
+
1714
+ $file_types = (!empty($options['checkness']['file_types']) ? explode(",", $options['checkness']['file_types']) : array() );
1715
+ $number_of_types = count($file_types);
1716
+
1717
+ $prefix = 'wc-';
1718
+
1719
+ if (empty($options['checkness']['upload_os']) || ( $order->post_status == $prefix . $options['checkness']['upload_os'] )) {
1720
+
1721
+ $post_type = 'attachment';
1722
+ $upload_dir = wp_upload_dir();
1723
+ $args = array(
1724
+ 'post_type' => $post_type,
1725
+ 'numberposts' => -1,
1726
+ 'post_status' => null,
1727
+ 'post_parent' => $order_id
1728
+ );
1729
+ $default_wccm_values = false;
1730
+ $product_image_gallery = false;
1731
+ $posts = get_posts($args);
1732
+ // wooccm_error_log( 'posts: ' . print_r( $posts, true ) );
1733
+ if (!empty($posts)) {
1734
+ foreach ($posts as $attachment)
1735
+ $array[] = $attachment->ID;
1736
+ $default_wccm_values = implode(',', $array);
1737
+ $product_image_gallery = implode(',', $array);
1738
+ }
1739
+ // wooccm_error_log( 'default_wccm_values: ' . print_r( $default_wccm_values, true ) );
1740
+ // wooccm_error_log( 'product_image_gallery: ' . print_r( $product_image_gallery, true ) );
1741
+ if (!empty($product_image_gallery))
1742
+ $attachments = array_filter(explode(',', $product_image_gallery));
1743
+ // wooccm_error_log( 'attachments: ' . print_r( $attachments, true ) );
1744
+ ?>
1745
+
1746
+ <script type="text/javascript">
1747
+ jQuery(document).ready(function ($) {
1748
+
1749
+ $('#wccm_save_order_submit').click(function () {
1750
+ $(".wccm_results").html("Deleting files, please wait....");
1751
+ var ajaxurl = '<?php echo admin_url('/admin-ajax.php'); ?>';
1752
+ data = {
1753
+ action: 'update_attachment_wccm',
1754
+ product_image_gallery: $('#product_image_gallery').val(),
1755
+ wccm_default_keys_load: $('#wccm_default_keys_load').val()
1756
+ };
1757
+
1758
+ // since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
1759
+ $.post(ajaxurl, data, function (response) {
1760
+ $(".wccm_results").html(response);
1761
+ });
1762
+ });
1763
+
1764
+ });
1765
+ </script>
1766
+
1767
+ <?php wp_enqueue_style('wccm_upload_file_style', plugins_url('includes/templates/admin/edit-order-uploads-file_editing_table.css', WOOCCM_PLUGIN_FILE)); ?>
1768
+
1769
+ <h2><?php echo ( empty($options['checkness']['upload_title']) ? 'Order Uploaded Files' : esc_attr($options['checkness']['upload_title']) ); ?></h2>
1770
+ <div class="woocommerce_order_items_wrapper front_end">
1771
+ <table class="woocommerce_order_items front_end">
1772
+
1773
+ <thead>
1774
+ <tr>
1775
+ <th style="width:15%;text-align: center;"><?php _e('Attachment ID', 'woocommerce-checkout-manager'); ?></th>
1776
+ <th style="width:12%"><?php _e('Image', 'woocommerce-checkout-manager'); ?></th>
1777
+ <th style="width:30%;text-align: center;"><?php _e('Name', 'woocommerce-checkout-manager'); ?></th>
1778
+ <th style="width:12%"><?php _e('Dimensions', 'woocommerce-checkout-manager'); ?></th>
1779
+ <th style="width:8%"><?php _e('Extension', 'woocommerce-checkout-manager'); ?></th>
1780
+ <th style="width:10%" class="column-actions"><?php _e('Actions', 'woocommerce-checkout-manager'); ?></th>
1781
+ </tr>
1782
+ </thead>
1783
+
1784
+ <tbody class="product_images front_end">
1785
+ <?php
1786
+ if (!empty($attachments)) {
1787
+ foreach ($attachments as $attachment_id) {
1788
+
1789
+ $image_attributes = wp_get_attachment_url($attachment_id);
1790
+ $image_attributes2 = wp_get_attachment_image_src($attachment_id);
1791
+ $filename = basename($image_attributes);
1792
+ $wp_filetype = wp_check_filetype($filename);
1793
+
1794
+ $value_declear = array_diff(explode(',', $default_wccm_values), explode(',', $attachment_id));
1795
+
1796
+ echo '
1797
+ <tr class="image wccm_filesli wccmv_' . esc_attr($attachment_id) . '">
 
1798
 
1799
  <td style="display:none;">
1800
  <script type="text/javascript">
1801
 
1802
  jQuery(document).ready(function(){
1803
 
1804
+ jQuery(".wccmx_' . esc_attr($attachment_id) . '").click(function(){
1805
+ jQuery(".wccmv_' . esc_attr($attachment_id) . '").hide();
1806
+ jQuery("#product_image_gallery").val(jQuery("#product_image_gallery").val().replace("' . esc_attr($attachment_id) . '", ""));
1807
 
1808
  });
1809
  });
1810
 
1811
  </script>
1812
  </td>
1813
+ <td>' . $attachment_id . '</td>
1814
+ <td>' . wp_get_attachment_link($attachment_id, '', false, false, wp_get_attachment_image($attachment_id, array(75, 75), true)) . '</td>
1815
+ <td>' . wp_get_attachment_link($attachment_id, '', false, false, preg_replace('/\.[^.]+$/', '', $filename)) . '</td>
1816
  <td>';
1817
+ if ($image_attributes2[1] == '') {
1818
+ echo '-';
1819
+ } else {
1820
+ echo $image_attributes2[1] . ' x ' . $image_attributes2[2];
1821
+ }
1822
+ echo '
1823
  </td>
1824
+ <td>' . strtoupper($wp_filetype['ext']) . '</td>
1825
  <td class="column-actions" nowrap>
1826
+ <a class="delete tips wccm_delete wccmx_' . esc_attr($attachment_id) . ' button" data-tip="' . __('Delete file', 'woocommerce-checkout-manager') . '">' . __('Delete file', 'woocommerce-checkout-manager') . '</a>
1827
  </td>
1828
  </tr>';
1829
+ }
1830
+ } else {
1831
+ echo '
1832
  <tr>
1833
+ <td colspan="7">' . __('No uploaded files have been assigned to this Order.', 'woocommerce-checkout-manager') . '</td>
1834
  </tr>
1835
  ';
1836
+ }
1837
+ ?>
1838
+ </tbody>
1839
+ </table>
1840
+ <input type="hidden" class="wccm_add_to_list" id="product_image_gallery" name="product_image_gallery" value="<?php echo (!empty($product_image_gallery) ? esc_attr($product_image_gallery) : '' ); ?>" />
1841
+ <input type="hidden" id="wccm_default_keys_load" name="wccm_default_keys_load" value="<?php echo (!empty($default_wccm_values) ? esc_attr($default_wccm_values) : '' ); ?>" />
1842
+ <!-- .woocommerce_order_items -->
1843
+ </div>
1844
+ <!-- .woocommerce_order_items_wrapper -->
1845
+
1846
+ <button type="button" id="wccm_save_order_submit" class="file_upload_delete wooccm-btn wooccm-btn-danger delete"><?php _e('Confirm Delete', 'woocommerce-checkout-manager'); ?></button>
1847
+
1848
+ <span id="wccm_uploader_select">
1849
+ <input type="file" style="display:none;" name="files_wccm" id="files_wccm" multiple />
1850
+ <button type="button" class="file_upload_account wooccm-btn wooccm-btn-primary start" id="files_button_wccm"><?php _e('Upload Files', 'woocommerce-checkout-manager'); ?></button>
1851
+ </span>
1852
+ <!-- #wccm_uploader_select -->
1853
+
1854
+ <div class="wccm_results front_end"></div>
1855
+
1856
+ <div class="clear"></div>
1857
+ <?php
1858
+ // script for uploading the files
1859
+ echo '
1860
  <!-- Edit Order: File upload -->
1861
  <script type="text/javascript">
1862
  jQuery(document).ready(function($){
1875
  }
1876
 
1877
  input.addEventListener("change", function (evt) {
1878
+ $("#wccm_uploader_select").block({
1879
+ message: null,
1880
+ overlayCSS: {
1881
+ background: "#fff",
1882
+ opacity: 0.6
1883
+ }
1884
+ });
1885
+
1886
+ $("#wccm_uploader_select").block({
1887
+ message: null,
1888
+ overlayCSS: {
1889
+ background: "#fff",
1890
+ opacity: 0.6
1891
+ }
1892
+ });
1893
+
1894
+ var length = ' . $length . ';
1895
+ var file_array = ' . wooccm_js_array($file_types) . ';
1896
+ var wooempt = "' . implode(',', $file_types) . '";
1897
 
1898
  for ( i = 0; i < length; i++ ) {
1899
  file = this.files[i];
1900
+ for(x=0; x < ' . $number_of_types . '; x++){
1901
  if( !wooempt || file.type.match(file_array[x]) ) {
1902
  if (formdata) {
1903
  formdata.append("files_wccm[]",file);
1908
 
1909
  if (formdata) {
1910
  $.ajax({
1911
+ url: "' . admin_url('/admin-ajax.php?action=wccs_upload_file_func&order_id=' . $order_id . '&name=files_wccm') . '",
1912
  type: "POST",
1913
  data: formdata,
1914
  processData: false,
1917
  $("#files_wccm").show();
1918
 
1919
  $.ajax({
1920
+ url: "' . $order->get_view_order_url() . '",
1921
  data: {},
1922
  success: function (data) {
1923
  $("div.woocommerce_order_items_wrapper.front_end").html($(data).find("div.woocommerce_order_items_wrapper.front_end"));
1936
  </script>';
1937
  // end script
1938
  // ------------
1939
+ }
 
 
1940
  }
1941
 
1942
+ function wccs_upload_file_func_callback($order_id) {
1943
+
1944
+ $name = ( isset($_REQUEST['name']) ? $_REQUEST['name'] : false );
1945
+ $order_id = ( isset($_REQUEST['order_id']) ? absint($_REQUEST['order_id']) : false );
1946
+
1947
+ if (empty($name)) {
1948
+ echo ' ' . __('Upload failed. Files were not uploaded.', 'woocommerce-checkout-manager') . '';
1949
+ die();
1950
+ }
1951
+
1952
+ if (empty($order_id)) {
1953
+ echo ' ' . __('Invalid Order. Files were not uploaded.', 'woocommerce-checkout-manager') . '';
1954
+ die();
1955
+ }
1956
+
1957
+ global $wpdb, $woocommerce, $post; // this is how you get access to the database
1958
+ // load files
1959
+ require_once( ABSPATH . 'wp-admin/includes/file.php' );
1960
+ require_once( ABSPATH . 'wp-admin/includes/media.php' );
1961
+
1962
+ $upload_dir = wp_upload_dir();
1963
+
1964
+ $options = get_option('wccs_settings');
1965
+
1966
+ $has_uploads = false;
1967
+
1968
+ $order = new WC_Order($order_id);
1969
+
1970
+ $files = $_FILES['' . $name . ''];
1971
+ // $upload_overrides = array( 'test_form' => false );
1972
+
1973
+ if (!empty($files['name'])) {
1974
+ foreach ($files['name'] as $key => $value) {
1975
+ if ($files['name'][$key]) {
1976
+
1977
+ $file = array(
1978
+ 'name' => $files['name'][$key],
1979
+ 'type' => $files['type'][$key],
1980
+ 'tmp_name' => $files['tmp_name'][$key],
1981
+ 'error' => $files['error'][$key],
1982
+ 'size' => $files['size'][$key]
1983
+ );
1984
+
1985
+ if (!empty($options['checkness']['cat_file_upload'])) {
1986
+ add_filter('upload_dir', function( $param ) use ( $order_id ) {
1987
+ $param['path'] = sprintf('%s/wooccm_uploads/%d', $param['basedir'], $order_id);
1988
+ $param['url'] = sprintf('%s/wooccm_uploads/%d', $param['baseurl'], $order_id);
1989
+ return $param;
1990
+ }, 10, 1);
1991
+ }
1992
+
1993
+ // $movefile = wp_handle_upload($file, $upload_overrides);
1994
+ $movefile = wp_handle_upload($file);
1995
+
1996
+ // Check if the save process failed
1997
+ if (isset($movefile['error'])) {
1998
+ echo 'Could not save uploaded file. Files were not uploaded.';
1999
+ die();
2000
+ }
2001
+
2002
+ $attachment = array(
2003
+ 'guid' => $movefile['url'],
2004
+ 'post_mime_type' => $movefile['type'],
2005
+ 'post_title' => preg_replace('/\.[^.]+$/', '', basename($movefile['file'])),
2006
+ 'post_content' => '',
2007
+ 'post_status' => 'inherit',
2008
+ 'post_parent' => $order_id
2009
+ );
2010
+
2011
+ $attach_id = wp_insert_attachment($attachment, $movefile['url'], $order_id);
2012
+
2013
+ // you must first include the image.php file
2014
+ // for the function wp_generate_attachment_metadata() to work
2015
+
2016
+ require_once( ABSPATH . 'wp-admin/includes/image.php' );
2017
+ $attach_data = wp_generate_attachment_metadata($attach_id, $movefile['url']);
2018
+ wp_update_attachment_metadata($attach_id, $attach_data);
2019
+
2020
+ $has_uploads = true;
2021
+ }
2022
+ }
2023
+ if ($has_uploads) {
2024
+
2025
+ // send email
2026
+ $email_recipients = $options['checkness']['wooccm_notification_email'];
2027
+ if (empty($email_recipients))
2028
+ $email_recipients = get_option('admin_email');
2029
+ $email_heading = __('Files Uploaded by Customer', 'woocommerce-checkout-manager');
2030
+ $subject = sprintf(__('WooCommerce Checkout Manager - %s [%s]', 'woocommerce-checkout-manager'), $email_heading, $order->billing_first_name . ' ' . $order->billing_last_name);
2031
+
2032
+ $mailer = WC()->mailer();
2033
+
2034
+ // Buffer
2035
+ ob_start();
2036
+ ?>
2037
+ <p>This is an automatic message from WooCommerce Checkout Manager, reporting that files have been uploaded by <?php echo $order->billing_first_name; ?> <?php echo $order->billing_last_name; ?>.</p>
2038
+ <h3>Customer Details</h3>
2039
+ <ul>
2040
+ <li>Name: <?php echo $order->billing_first_name; ?> <?php $order->billing_last_name; ?></li>
2041
+ <li>E-mail: <?php echo $order->billing_email; ?></li>
2042
+ <li>Order Number: <?php echo $order_id; ?></li>
2043
+ </ul>
2044
+ <p>You can view the files and order details via back-end by following this <a href="<?php echo admin_url('/post.php?post=' . $order_id . '&action=edit'); ?>" target="_blank">link</a>.</p>
2045
+ <?php
2046
+ // Get contents
2047
+ $message = ob_get_clean();
2048
+
2049
+ $message = $mailer->wrap_message($email_heading, $message);
2050
+
2051
+ // add_filter( 'wp_mail_content_type', 'wooccm_set_html_content_type' );
2052
+ // wc_mail( $email_recipients, $subject, $message );
2053
+ $mailer->send($email_recipients, strip_tags($subject), $message);
2054
+ // remove_filter( 'wp_mail_content_type', 'wooccm_set_html_content_type' );
2055
+ }
2056
+ echo ' ' . __('Files were uploaded successfully.', 'woocommerce-checkout-manager') . '';
2057
+ } else {
2058
+ echo ' ' . __('No uploads were recognised. Files were not uploaded.', 'woocommerce-checkout-manager') . '';
2059
+ }
2060
+ die();
 
 
 
 
2061
  }
2062
+
2063
  add_action("wp_ajax_wccs_upload_file_func", "wccs_upload_file_func_callback");
2064
 
2065
  function wooccm_set_html_content_type() {
2066
 
2067
+ return 'text/html';
 
2068
  }
2069
 
2070
+ function wooccm_js_str($s) {
 
 
2071
 
2072
+ return '"' . addcslashes($s, "\0..\37\"\\") . '"';
2073
  }
2074
 
2075
+ function wooccm_js_array($array) {
 
 
 
2076
 
2077
+ $temp = array_map('wooccm_js_str', $array);
2078
+ return '[' . implode(',', $temp) . ']';
2079
  }
2080
 
2081
  function update_attachment_wccm_callback() {
2082
 
2083
+ global $post, $wpdb, $woocommerce;
2084
+
2085
+ // Check the User has the manage_woocommerce capability
2086
+ if (current_user_can('manage_woocommerce') == false)
2087
+ die();
2088
+
2089
+ $array1 = explode(',', sanitize_text_field(isset($_POST['wccm_default_keys_load']) ? $_POST['wccm_default_keys_load'] : '' ));
2090
+ $array2 = explode(',', sanitize_text_field(isset($_POST['product_image_gallery']) ? $_POST['product_image_gallery'] : '' ));
2091
+ $attachment_ids = array_diff($array1, $array2);
2092
+
2093
+ if (isset($_POST['wccm_default_keys_load'])) {
2094
+ if (!empty($attachment_ids)) {
2095
+ foreach ($attachment_ids as $key => $attachtoremove) {
2096
+
2097
+ // Check the Attachment exists...
2098
+ if (get_post_status($attachtoremove) == false)
2099
+ continue;
2100
+
2101
+ // Check the Attachment is associated with an Order
2102
+ $post_parent = get_post_field('post_parent', $attachtoremove);
2103
+ if (empty($post_parent)) {
2104
+ continue;
2105
+ } else {
2106
+ if (get_post_type($post_parent) <> 'shop_order')
2107
+ continue;
2108
+ }
2109
+
2110
+ // Delete the Attachment
2111
+ wp_delete_attachment($attachtoremove);
2112
+ }
2113
+ }
2114
+ echo __('Deleted successfully.', 'woocommerce-checkout-manager');
2115
+ }
2116
+ die();
 
 
2117
  }
2118
+
2119
+ add_action('wp_ajax_update_attachment_wccm', 'update_attachment_wccm_callback');
2120
  ?>
includes/export.php CHANGED
@@ -1,983 +1,960 @@
1
  <?php
2
  // Exit if accessed directly
3
- if ( !defined( 'ABSPATH' ) )
4
- exit;
5
 
6
  // add custom column headers
7
- function wooccm_csv_export_modify_column_headers( $column_headers ) {
8
-
9
- $new_headers = array();
10
-
11
- $shipping = array(
12
- 'country',
13
- 'first_name',
14
- 'last_name',
15
- 'company',
16
- 'address_1',
17
- 'address_2',
18
- 'city',
19
- 'state',
20
- 'postcode'
21
- );
22
- $billing = array(
23
- 'country',
24
- 'first_name',
25
- 'last_name',
26
- 'company',
27
- 'address_1',
28
- 'address_2',
29
- 'city',
30
- 'state',
31
- 'postcode',
32
- 'email',
33
- 'phone'
34
- );
35
-
36
- $names = array(
37
- 'billing',
38
- 'shipping'
39
- );
40
- $inc = 3;
41
- foreach( $names as $name ) {
42
-
43
- $array = ( $name == 'billing' ) ? $billing : $shipping;
44
- $options = get_option( 'wccs_settings'.$inc );
45
- if( !empty( $options[$name.'_buttons'] ) ) {
46
- foreach( $options[$name.'_buttons'] as $btn ) {
47
- if( !in_array( $btn['cow'], $array ) ) {
48
- $new_headers[sprintf( '_%s_%s', $name, $btn['cow'] )] = wooccm_wpml_string($btn['label']);
49
- }
50
- }
51
- }
52
- $inc--;
53
- }
54
-
55
- $options = get_option( 'wccs_settings' );
56
- if( !empty( $options['buttons'] ) ) {
57
- foreach( $options['buttons'] as $btn ) {
58
- $new_headers[$btn['cow']] = wooccm_wpml_string($btn['label']);
59
- }
60
- }
61
-
62
- return array_merge( $column_headers, $new_headers );
63
-
64
  }
65
 
66
  // set the data for each for custom columns
67
- function wooccm_csv_export_modify_row_data( $order_data, $order, $csv_generator ) {
68
-
69
- if( version_compare( wooccm_get_woo_version(), '2.7', '>=' ) ) {
70
- $order_id = ( method_exists( $order, 'get_id' ) ? $order->get_id() : $order->id );
71
- } else {
72
- $order_id = ( isset( $order->id ) ? $order->id : 0 );
73
- }
74
-
75
- $custom_data = array();
76
-
77
- $shipping = array(
78
- 'country',
79
- 'first_name',
80
- 'last_name',
81
- 'company',
82
- 'address_1',
83
- 'address_2',
84
- 'city',
85
- 'state',
86
- 'postcode'
87
- );
88
- $billing = array(
89
- 'country',
90
- 'first_name',
91
- 'last_name',
92
- 'company',
93
- 'address_1',
94
- 'address_2',
95
- 'city',
96
- 'state',
97
- 'postcode',
98
- 'email',
99
- 'phone'
100
- );
101
-
102
- $names = array(
103
- 'billing',
104
- 'shipping'
105
- );
106
- $inc = 3;
107
- foreach( $names as $name ) {
108
-
109
- $array = ( $name == 'billing' ) ? $billing : $shipping;
110
-
111
- $options = get_option( 'wccs_settings'.$inc );
112
-
113
- if( !empty( $options[$name.'_buttons'] ) ) {
114
- foreach( $options[$name.'_buttons'] as $btn ) {
115
-
116
- if( !in_array( $btn['cow'], $array ) ) {
117
-
118
- if(
119
- get_post_meta( $order_id, sprintf( '_%s_%s', $name, $btn['cow'] ), true ) &&
120
- $btn['type'] !== 'heading' &&
121
- (
122
- $btn['type'] !== 'multiselect' || $btn['type'] !== 'multicheckbox'
123
- )
124
- ) {
125
- $custom_data[sprintf( '_%s_%s', $name, $btn['cow'] )] = get_post_meta( $order_id, sprintf( '_%s_%s', $name, $btn['cow'] ), true );
126
- }
127
-
128
- if(
129
- get_post_meta( $order_id, sprintf( '_%s_%s', $name, $btn['cow'] ), true ) &&
130
- $btn['type'] !== 'heading' &&
131
- $btn['type'] !== 'wooccmupload' &&
132
- (
133
- $btn['type'] == 'multiselect' || $btn['type'] == 'multicheckbox'
134
- )
135
- ) {
136
- $custom_data[sprintf( '_%s_%s', $name, $btn['cow'] )] = '';
137
- $value = get_post_meta( $order_id , sprintf( '_%s_%s', $name, $btn['cow'] ), true );
138
- $strings = maybe_unserialize( $value );
139
- if( !empty( $strings ) ) {
140
- if( is_array( $strings ) ) {
141
- $iww = 0;
142
- $len = count($strings);
143
- foreach( $strings as $key ) {
144
- if ( $iww == $len - 1) {
145
- $custom_data[sprintf( '_%s_%s', $name, $btn['cow'] )] .= $key;
146
- } else {
147
- $custom_data[sprintf( '_%s_%s', $name, $btn['cow'] )] .= $key.', ';
148
- }
149
- $iww++;
150
- }
151
- } else {
152
- echo $strings;
153
- }
154
- } else {
155
- echo '-';
156
- }
157
- }
158
-
159
- }
160
-
161
- }
162
- }
163
- $inc--;
164
- }
165
-
166
- $options = get_option( 'wccs_settings' );
167
- if( !empty( $options['buttons'] ) ) {
168
- foreach( $options['buttons'] as $btn ) {
169
-
170
- if(
171
- get_post_meta( $order_id, $btn['cow'], true ) &&
172
- $btn['type'] !== 'heading' &&
173
- (
174
- $btn['type'] !== 'multiselect' || $btn['type'] !== 'multicheckbox'
175
- )
176
- ) {
177
- $custom_data[$btn['cow']] = get_post_meta( $order_id, $btn['cow'], true );
178
- }
179
-
180
- if(
181
- get_post_meta( $order_id, $btn['cow'], true ) &&
182
- $btn['type'] !== 'heading' &&
183
- $btn['type'] !== 'wooccmupload' &&
184
- (
185
- $btn['type'] == 'multiselect' || $btn['type'] == 'multicheckbox'
186
- )
187
- ) {
188
- $custom_data[$btn['cow']] = '';
189
- $value = get_post_meta( $order_id, $btn['cow'], true );
190
- $strings = maybe_unserialize( $value );
191
- if( !empty( $strings ) ) {
192
- if( is_array( $strings ) ) {
193
- $iww = 0;
194
- $len = count($strings);
195
- foreach( $strings as $key ) {
196
- if( $iww == $len - 1) {
197
- $custom_data[$btn['cow']] .= $key;
198
- } else {
199
- $custom_data[$btn['cow']] .= $key.', ';
200
- }
201
- $iww++;
202
- }
203
- echo $strings;
204
- }
205
- } else {
206
- echo '-';
207
- }
208
- }
209
-
210
- }
211
- }
212
-
213
- // defaults set back
214
- $new_order_data = array();
215
-
216
- if( isset( $csv_generator->order_format ) && ( 'default_one_row_per_item' == $csv_generator->order_format || 'legacy_one_row_per_item' == $csv_generator->order_format ) ) {
217
- if( !empty( $order_data ) ) {
218
- foreach( $order_data as $data ) {
219
- $new_order_data[] = array_merge( (array) $data, $custom_data );
220
- }
221
- }
222
- } else {
223
- $new_order_data = array_merge( $order_data, $custom_data );
224
- }
225
-
226
- return $new_order_data;
227
-
228
  }
229
 
230
  // Exit if accessed directly
231
- if ( !defined( 'ABSPATH' ) ) exit;
232
-
233
- function wooccm_additional_gen( $tab, $abbr, $section, $wooname = '' ) {
234
-
235
- global $woocommerce, $wpdb;
236
-
237
- $options = get_option( 'wccs_settings' );
238
- $options2 = get_option( 'wccs_settings2' ); // shipping
239
- $options3 = get_option( 'wccs_settings3' ); // billing
240
-
241
- $args = array(
242
- 'post_type' => 'shop_order',
243
- 'posts_per_page' => -1,
244
- 'post_status' => array( 'wc-processing', 'wc-completed' )
245
- );
246
-
247
- $loop = new WP_Query( $args );
248
- $csv_output = '';
249
-
250
- $optionname = false;
251
- switch( $wooname ) {
252
-
253
- case 'additional':
254
- $optionname = $options['buttons'];
255
- break;
256
-
257
- case 'shipping':
258
- $optionname = $options2['shipping_buttons'];
259
- break;
260
-
261
- case 'billing':
262
- $optionname = $options3['billing_buttons'];
263
- break;
264
-
265
- }
266
-
267
- if( !empty($abbr) && $section == 1 ) {
268
- if( $tab == $wooname ) {
269
-
270
- while( $loop->have_posts() ) {
271
- $loop->the_post();
272
- $order_id = $loop->post->ID;
273
- $order = new WC_Order( $order_id );
274
- if( get_post_meta($order_id, $abbr, true) ) {
275
- $csv_output .= '["'.$order->billing_first_name.' '.$order->billing_last_name.'", "'.get_post_meta($order_id, $abbr, true).'" ], ';
276
- }
277
- }
278
-
279
- } elseif( $tab == 'heading' ) {
280
-
281
- $csv_output .= '["Name","'.$abbr.'"]';
282
-
283
- }
284
- } elseif( empty($abbr) && $section == 2 ) {
285
- if( $tab == $wooname ) {
286
-
287
- $listida = array();
288
- while ( $loop->have_posts() ) {
289
- $loop->the_post();
290
- $order_id = $loop->post->ID;
291
- $order = new WC_Order( $order_id );
292
- if( !empty( $optionname ) ) {
293
- foreach( $optionname as $name ) {
294
- if ( get_post_meta($order_id, $name['cow'], true) ) {
295
- $listida[] = $order_id;
296
- }
297
- }
298
- }
299
- }
300
- $csv_output = array_unique( $listida );
301
-
302
- } elseif( $tab == 'heading' ) {
303
-
304
- $lista = array();
305
- while ( $loop->have_posts() ) {
306
- $loop->the_post();
307
- $order_id = $loop->post->ID;
308
- $order = new WC_Order( $order_id );
309
- if( !empty( $optionname ) ) {
310
- foreach( $optionname as $n ) {
311
- if( get_post_meta($order_id, $n['cow'], true) ) {
312
- $lista[] = $n['label'];
313
- }
314
- }
315
- }
316
- }
317
- $csv_output = array_unique( $lista );
318
-
319
- }
320
- }
321
- return $csv_output;
322
-
323
  }
324
 
325
  /**
326
- * Converting data to CSV [ SETTINGS DATA ]
327
- */
328
- function wooccm_generate_csv( $tab = '' ) {
329
-
330
- $options = get_option( 'wccs_settings' );
331
- $options2 = get_option( 'wccs_settings2' );
332
- $options3 = get_option( 'wccs_settings3' );
333
-
334
- $csv_output = '';
335
- switch( $tab ) {
336
-
337
- case 'additional':
338
- if ( !empty($options['buttons']) ) {
339
- $total = count($options['buttons']) - 1;
340
- foreach( $options['buttons'] as $i => $btn ) {
341
- if( $i != 999 && !empty($btn['cow']) ) {
342
- $csv_output .= '[';
343
- foreach( $btn as $n => $dataw ) {
344
- $csv_output .= '"'.$dataw.'",';
345
- }
346
- if( $i != $total ) {
347
- $csv_output .= '], ';
348
- } else {
349
- $csv_output .= ']';
350
- }
351
- }
352
- }
353
- }
354
- break;
355
-
356
- case 'billing':
357
- if( !empty($options3['billing_buttons']) ) {
358
- $total = count($options3['billing_buttons']) - 1;
359
- foreach( $options3['billing_buttons'] as $i => $btn ) {
360
- if( $i != 999 && !empty($btn['cow']) ) {
361
- $csv_output .= '[';
362
- foreach( $btn as $n => $dataw ) {
363
- $csv_output .= '"'.$dataw.'",';
364
- }
365
- if( $i != $total ) {
366
- $csv_output .= '], ';
367
- } else {
368
- $csv_output .= ']';
369
- }
370
- }
371
- }
372
- }
373
- break;
374
-
375
- case 'shipping':
376
- if( !empty($options2['shipping_buttons']) ) {
377
- $total = count($options2['shipping_buttons']) -1;
378
- foreach( $options2['shipping_buttons'] as $i => $btn) {
379
- if( $i != 999 && !empty($btn['cow']) ) {
380
- $csv_output .= '[';
381
- foreach( $btn as $n => $dataw ) {
382
- $csv_output .= '"'.$dataw.'",';
383
- }
384
- if( $i != $total ) {
385
- $csv_output .= '], ';
386
- } else {
387
- $csv_output .= ']';
388
- }
389
- }
390
- }
391
- }
392
- break;
393
-
394
- case 'general':
395
- if( !empty($options['checkness']) ) {
396
- $csv_output .= '[';
397
- foreach( $options['checkness'] as $i => $btn ) {
398
- $csv_output .= '"'.$btn.'",';
399
- }
400
- $csv_output .= ']';
401
- }
402
- break;
403
-
404
- case 'heading':
405
- if( !empty($options3['billing_buttons']) ) {
406
- $csv_output .= '[';
407
- foreach( $options3['billing_buttons'][0] as $n => $dataw) {
408
- $csv_output .= '"'.$n.'",';
409
- }
410
- $csv_output .= ']';
411
- }
412
- break;
413
-
414
- case 'heading2':
415
- if( !empty($options['checkness']) ) {
416
- $csv_output .= '[';
417
- foreach( $options['checkness'] as $n => $btn) {
418
- $csv_output .= '"'.$n.'",';
419
- }
420
- $csv_output .= ']';
421
- }
422
- break;
423
-
424
- case 'heading3':
425
- if( !empty($options['buttons']) ) {
426
- $csv_output .= '[';
427
- foreach( $options['buttons'][0] as $n => $dataw) {
428
- $csv_output .= '"'.$n.'",';
429
- }
430
- $csv_output .= ']';
431
- }
432
- break;
433
-
434
- }
435
- return $csv_output;
436
-
437
  }
438
- // --------------- END SETTINGS DATA ----------------
439
 
440
- function wooccm_csvall_heading( $heading ) {
441
 
442
- $csv_output = '';
443
- $csv_output .= '["Name", ';
444
- foreach($heading as $data ){
445
- $csv_output .= '"'.$data.'", ';
446
- }
447
- $csv_output .= ']';
448
- return $csv_output;
449
 
 
 
 
 
 
 
 
450
  }
451
 
452
- function wooccm_csvall_info( $orderids, $wooname = '' ){
453
-
454
- $options = get_option( 'wccs_settings' );
455
- $options2 = get_option( 'wccs_settings2' );
456
- $options3 = get_option( 'wccs_settings3' );
457
-
458
- $csv_output = '';
459
- if( !empty( $orderids ) ) {
460
- foreach( $orderids as $order_id ) {
461
- $csv_output .= '["'.get_post_meta($order_id, '_billing_first_name', true).' '.get_post_meta($order_id, '_billing_last_name', true).'", ';
462
- switch( $wooname ) {
463
-
464
- case 'additional':
465
- if( !empty( $options['buttons'] ) ) {
466
- foreach( $options['buttons'] as $name2 ) {
467
- $csv_output .= '"'.get_post_meta($order_id, $name2['cow'], true).'", ';
468
- }
469
- }
470
- break;
471
-
472
- case 'billing':
473
- if( !empty( $options3['billing_buttons'] ) ) {
474
- foreach( $options3['billing_buttons'] as $name2 ) {
475
- $csv_output .= '"'.get_post_meta($order_id, $name2['cow'], true).'", ';
476
- }
477
- }
478
- break;
479
-
480
- case 'shipping':
481
- if( !empty( $options2['shipping_buttons'] ) ) {
482
- foreach( $options2['shipping_buttons'] as $name2 ) {
483
- $csv_output .= '"'.get_post_meta($order_id, $name2['cow'], true).'", ';
484
- }
485
- }
486
- break;
487
-
488
- }
489
- $csv_output .= '], ';
490
- }
491
- }
492
- return $csv_output;
493
-
494
  }
495
 
496
-
497
- function wooccm_advance_export(){
498
-
499
- $options = get_option( 'wccs_settings' );
500
- $options2 = get_option( 'wccs_settings2' );
501
- $options3 = get_option( 'wccs_settings3' );
502
-
503
- $single_download = ( isset( $_POST['single-download'] ) ? sanitize_text_field( $_POST['single-download'] ) : false );
504
- if( !empty( $single_download ) ) {
505
- switch( $single_download ) {
506
-
507
- case 'additional':
508
- $csv = wooccm_additional_gen('additional', ( isset( $_POST['selectedval'] ) ? sanitize_text_field( $_POST['selectedval'] ) : false ), 1, 'additional' );
509
- $heading = wooccm_additional_gen('heading', ( isset( $_POST['selectedval'] ) ? sanitize_text_field( $_POST['selectedval'] ) : false ), 1, 'additional' );
510
- break;
511
-
512
- case 'shipping':
513
- $csv = wooccm_additional_gen('shipping', ( isset( $_POST['shippingselectedval'] ) ? sanitize_text_field( $_POST['shippingselectedval'] ) : false ), 1, 'shipping');
514
- $heading = wooccm_additional_gen('heading', ( isset( $_POST['shippingselectedval'] ) ? sanitize_text_field( $_POST['shippingselectedval'] ) : false ), 1, 'shipping' );
515
- break;
516
-
517
- case 'billing':
518
- $csv = wooccm_additional_gen('billing', ( isset( $_POST['billingselectedval'] ) ? $_POST['billingselectedval'] : false ), 1, 'billing' );
519
- $heading = wooccm_additional_gen('heading', ( isset( $_POST['billingselectedval'] ) ? $_POST['billingselectedval'] : false ), 1, 'billing' );
520
- break;
521
-
522
- }
523
- ?>
524
-
525
- <script type="text/javascript">
526
- jQuery(document).ready(function($) {
527
-
528
- var A = [<?php echo $heading.','.$csv; ?>]; // initialize array of rows with header row as 1st item
529
-
530
- var csvRows = [];
531
- for(var i=0, l=A.length; i<l; ++i){ // for each array( [..] ), join with commas for csv
532
- for (index = 0; index < A[i].length; ++index) {
533
- A[i][index] = '"'+A[i][index]+'"'; // add back quotes for each string, to store special characters and commas
534
- }
535
- csvRows.push( A[i] ); // put data in a java useable array
536
- }
537
-
538
- var csvString = csvRows.join("\n"); // make rows for each array
539
-
540
- var a = document.createElement('a');
541
-
542
- a.href = 'data:attachment/csv,' + encodeURIComponent(csvString);
543
- a.target = '_blank';
544
- a.download = 'only_additional_fieldname.csv';
545
- document.body.appendChild(a);
546
- a.click();
547
-
548
- });
549
- </script>
550
-
551
- <?php
552
- }
553
-
554
- // ----------- ALL DOWNLOAD ---------
555
- $all_download = ( isset( $_POST['all-download'] ) ? sanitize_text_field( $_POST['all-download'] ) : false );
556
- if( !empty( $all_download ) ) {
557
-
558
- $abbr = '';
559
- switch( $all_download ) {
560
-
561
- case 'additional':
562
- $csv = wooccm_additional_gen('additional', $abbr, 2);
563
- $csv = wooccm_csvall_info($csv, 'additional' );
564
- $heading = wooccm_additional_gen('heading', $abbr, 2);
565
- $heading = wooccm_csvall_heading($heading);
566
- break;
567
-
568
- case 'shipping':
569
- $csv = wooccm_additional_gen('additional', $abbr, 2, 'shipping' );
570
- $csv = wooccm_csvall_info($csv, 'shipping' );
571
- $heading = wooccm_additional_gen('heading', $abbr, 2, 'shipping');
572
- $heading = wooccm_csvall_heading($heading);
573
- break;
574
-
575
- case 'billing':
576
- $csv = wooccm_additional_gen('billing', $abbr, 2, 'billing' );
577
- $csv = wooccm_csvall_info($csv, 'billing' );
578
- $heading = wooccm_additional_gen('heading', $abbr, 2, 'billing' );
579
- $heading = wooccm_csvall_heading($heading);
580
- break;
581
-
582
- }
583
- ?>
584
-
585
- <script type="text/javascript">
586
- jQuery(document).ready(function($) {
587
-
588
- var A = [<?php echo $heading.','.$csv; ?>]; // initialize array of rows with header row as 1st item
589
-
590
- var csvRows = [];
591
- for(var i=0, l=A.length; i<l; ++i){ // for each array( [..] ), join with commas for csv
592
- for (index = 0; index < A[i].length; ++index) {
593
- A[i][index] = '"'+A[i][index]+'"'; // add back quotes for each string, to store special characters and commas
594
- }
595
- csvRows.push( A[i] ); // put data in a java useable array
596
- }
597
-
598
- var csvString = csvRows.join("\n"); // make rows for each array
599
-
600
- var a = document.createElement('a');
601
-
602
- a.href = 'data:attachment/csv,' + encodeURIComponent(csvString);
603
- a.target = '_blank';
604
- a.download = 'only_additional_fieldname.csv';
605
- document.body.appendChild(a);
606
- a.click();
607
-
608
- });
609
- </script>
610
-
611
- <?php
612
- }
613
- // ---------- END ALL DOWNLOAD --------------
614
-
615
- // ---------- SETTING DOWNLOAD --------------
616
- $setting_download = ( isset( $_POST['setting-download'] ) ? sanitize_text_field( $_POST['setting-download'] ) : false );
617
- if( !empty( $setting_download ) ) {
618
- switch( $setting_download ) {
619
-
620
- case 'additional':
621
- $csv = wooccm_generate_csv('additional');
622
- $heading = wooccm_generate_csv('heading3');
623
- break;
624
-
625
- case 'billing':
626
- $csv = wooccm_generate_csv('billing');
627
- $heading = wooccm_generate_csv('heading');
628
- break;
629
-
630
- case 'shipping':
631
- $csv = wooccm_generate_csv('shipping');
632
- $heading = wooccm_generate_csv('heading');
633
- break;
634
-
635
- case 'general':
636
- $csv = wooccm_generate_csv('general');
637
- $heading = wooccm_generate_csv('heading2');
638
- break;
639
-
640
- }
641
- ?>
642
-
643
- <script type="text/javascript">
644
- jQuery(document).ready(function($) {
645
-
646
- var A = [<?php echo $heading.','.$csv; ?>]; // initialize array of rows with header row as 1st item
647
-
648
- var csvRows = [];
649
- for(var i=0, l=A.length; i<l; ++i){ // for each array( [..] ), join with commas for csv
650
- for (index = 0; index < A[i].length; ++index) {
651
- A[i][index] = '"'+A[i][index]+'"'; // add back quotes for each string, to store special characters and commas
652
- }
653
- csvRows.push( A[i] ); // put data in a java useable array
654
- }
655
-
656
- var csvString = csvRows.join("\n"); // make rows for each array
657
-
658
- var a = document.createElement('a');
659
-
660
- a.href = 'data:attachment/csv,' + encodeURIComponent(csvString);
661
- a.target = '_blank';
662
- a.download = 'only_additional_fieldname.csv';
663
- document.body.appendChild(a);
664
- a.click();
665
-
666
- });
667
- </script>
668
-
669
- <?php
670
- }
671
- // ---------------- END SETTING DOWNLOAD --------------
672
- ?>
673
-
674
- <script type="text/javascript">
675
- jQuery(document).ready(function() {
676
- jQuery(function () {
677
-
678
- jQuery(".button.single-download.additional").click(function() {
679
- jQuery("input[name=single-download]").val("additional");
680
- jQuery("#additional_export").submit();
681
- });
682
-
683
- jQuery(".button.all-download.additional").click(function() {
684
- jQuery("input[name=all-download]").val("additional");
685
- jQuery("#additional_export").submit();
686
- });
687
-
688
- jQuery(".button.setting-download.additional").click(function() {
689
- jQuery("input[name=setting-download]").val("additional");
690
- jQuery("#additional_export").submit();
691
- });
692
-
693
- <!-- shipping -->
694
- jQuery(".button.single-download.shipping").click(function() {
695
- jQuery("input[name=single-download]").val("shipping");
696
- jQuery("#additional_export").submit();
697
- });
698
-
699
- jQuery(".button.all-download.shipping").click(function() {
700
- jQuery("input[name=all-download]").val("shipping");
701
- jQuery("#additional_export").submit();
702
- });
703
- jQuery(".button.setting-download.additional").click(function() {
704
- jQuery("input[name=setting-download]").val("shipping");
705
- jQuery("#additional_export").submit();
706
- });
707
- <!-- end shipping -->
708
-
709
- <!-- billing -->
710
- jQuery(".button.single-download.billing").click(function() {
711
- jQuery("input[name=single-download]").val("billing");
712
- jQuery("#additional_export").submit();
713
- });
714
-
715
- jQuery(".button.all-download.billing").click(function() {
716
- jQuery("input[name=all-download]").val("billing");
717
- jQuery("#additional_export").submit();
718
- });
719
-
720
- jQuery(".button.setting-download.additional").click(function() {
721
- jQuery("input[name=setting-download]").val("billing");
722
- jQuery("#additional_export").submit();
723
- });
724
- <!-- end billing -->
725
-
726
- });
727
-
728
- });
729
- </script>
730
-
731
- <h2><?php _e( 'WooCommerce Checkout Manager', 'woocommerce-checkout-manager' ); ?></h2>
732
- <div class="wrap">
733
-
734
- <div id="content">
735
-
736
- <h2 class="nav-tab-wrapper add_tip_wrap">
737
- <a class="nav-tab general-tab nav-tab-active"><?php _e( 'Export', 'woocommerce-checkout-manager' ); ?></a>
738
- <a class="nav-tab star" href="https://wordpress.org/support/view/plugin-reviews/woocommerce-checkout-manager?filter=5" target="_blank">
739
- <div id="star-five" title="<?php _e('Like the plugin? Rate it! On WordPress.org', 'woocommerce-checkout-manager' ); ?>">
740
- <div class="star-rating">
741
- <div class="star star-full"></div>
742
- <div class="star star-full"></div>
743
- <div class="star star-full"></div>
744
- <div class="star star-full"></div>
745
- <div class="star star-full"></div>
746
- </div>
747
- <!-- .star-rating -->
748
- </div>
749
- <!-- #star-five -->
750
- </a>
751
- </h2>
752
- <!-- .nav-tab-wrapper -->
753
-
754
- <ul class="subsubsub">
755
- <li><a href="#billing-fields-section"><?php _e( 'Billing Fields', 'woocommerce-checkout-manager' ); ?></a> |</li>
756
- <li><a href="#shipping-fields-section"><?php _e( 'Shipping Fields', 'woocommerce-checkout-manager' ); ?></a> |</li>
757
- <li><a href="#additional-fields-section"><?php _e( 'Additional Fields', 'woocommerce-checkout-manager' ); ?></a></li>
758
- </ul>
759
- <!-- .subsubsub -->
760
- <br class="clear">
761
-
762
- <h3><?php _e( 'Field Data Export', 'woocommerce-checkout-manager'); ?></h3>
763
-
764
- <div id="welcome-panel" class="welcome-panel heading">
765
-
766
- <form name="additionalexport" method="post" action="" id="additional_export">
767
-
768
- <input type="hidden" name="single-download" val="" />
769
- <input type="hidden" name="all-download" val="" />
770
- <input type="hidden" name="setting-download" val="" />
771
-
772
- <div id="welcome-panel" class="welcome-panel left billing">
773
-
774
- <!-- BILLING SECTION -->
775
-
776
- <p id="billing-fields-section" class="about-description heading"><?php _e( 'Billing Fields Section', 'woocommerce-checkout-manager'); ?></p>
777
- <hr />
778
-
779
- <?php if( !empty( $options3['billing_buttons'] ) ) { ?>
780
- <div class="welcome-panel-content">
781
-
782
- <p class="about-description inner"><?php _e( 'Export All Orders with abbreviation name : ', 'woocommerce-checkout-manager'); ?>
783
- <select name="billingselectedval">
784
- <?php foreach( $options3['billing_buttons'] as $name ) { ?>
785
- <option value="<?php echo $name['cow']; ?>"><?php echo $name['cow']; ?></option>
786
- <?php } ?>
787
- </select>
788
- </p>
789
- <!-- .about-description inner -->
790
-
791
- <div class="welcome-panel-column-container">
792
- <div class="welcome-panel-column">
793
- <ul>
794
- <li>
795
- <a class="button button-primary button-hero single-download billing" href="#"><?php _e( 'Download', 'woocommerce-checkout-manager'); ?></a>
796
- </li>
797
- </ul>
798
- </div>
799
- </div>
800
- <!-- .welcome-panel-column-container -->
801
- <?php } ?>
802
-
803
- <div class="sheet"></div>
804
- <p style="clear:both;" class="about-description inner"><?php _e( 'Export All Orders', 'woocommerce-checkout-manager'); ?></p>
805
-
806
- <div class="welcome-panel-column-container">
807
- <div class="welcome-panel-column">
808
- <ul>
809
- <li>
810
- <a class="button button-primary button-hero all-download billing" href="#"><?php _e( 'Download', 'woocommerce-checkout-manager'); ?></a>
811
- </li>
812
- </ul>
813
- </div>
814
- </div>
815
- <!-- .welcome-panel-column-container -->
816
-
817
- <div class="sheet"></div>
818
- <p style="clear:both;" class="about-description inner"><?php _e( 'Export Settings', 'woocommerce-checkout-manager'); ?></p>
819
-
820
- <div class="welcome-panel-column-container">
821
- <div class="welcome-panel-column">
822
- <ul>
823
- <li>
824
- <a class="button button-primary button-hero setting-download billing" href="#"><?php _e( 'Download', 'woocommerce-checkout-manager'); ?></a>
825
- </li>
826
- </ul>
827
- </div>
828
- </div>
829
- <!-- .welcome-panel-column-container -->
830
-
831
- </div>
832
- <!-- .welcome-panel-content -->
833
- </div>
834
- <!-- #welcome-panel -->
835
-
836
- <!-- END BILLING SECTION -->
837
-
838
- <div id="welcome-panel" class="welcome-panel left shipping">
839
-
840
- <!-- SHIPPING SECTION -->
841
-
842
- <p id="shipping-fields-section" class="about-description heading"><?php _e( 'Shipping Fields Section', 'woocommerce-checkout-manager'); ?></p>
843
- <hr />
844
-
845
- <?php if( !empty( $options2['shipping_buttons'] ) ) { ?>
846
- <div class="welcome-panel-content">
847
-
848
- <p class="about-description inner"><?php _e( 'Export All Orders with abbreviation name : ', 'woocommerce-checkout-manager'); ?>
849
- <select name="shippingselectedval">
850
- <?php foreach( $options2['shipping_buttons'] as $name ) { ?>
851
- <option value="<?php echo $name['cow']; ?>"><?php echo $name['cow']; ?></option>
852
- <?php } ?>
853
- </select>
854
- </p>
855
- <!-- .about-description inner -->
856
-
857
- <div class="welcome-panel-column-container">
858
- <div class="welcome-panel-column">
859
- <ul>
860
- <li>
861
- <a class="button button-primary button-hero single-download shipping" href="#"><?php _e( 'Download', 'woocommerce-checkout-manager'); ?></a>
862
- </li>
863
- </ul>
864
- </div>
865
- </div>
866
- <!-- .welcome-panel-column-container -->
867
- <?php } ?>
868
-
869
- <div class="sheet"></div>
870
- <p style="clear:both;" class="about-description inner"><?php _e( 'Export All Orders', 'woocommerce-checkout-manager'); ?></p>
871
-
872
- <div class="welcome-panel-column-container">
873
- <div class="welcome-panel-column">
874
- <ul>
875
- <li>
876
- <a class="button button-primary button-hero all-download shipping" href="#"><?php _e( 'Download', 'woocommerce-checkout-manager'); ?></a>
877
- </li>
878
- </ul>
879
- </div>
880
- </div>
881
- <!-- .welcome-panel-column-container -->
882
-
883
- <div class="sheet"></div>
884
- <p style="clear:both;" class="about-description inner"><?php _e( 'Export Settings', 'woocommerce-checkout-manager'); ?></p>
885
-
886
- <div class="welcome-panel-column-container">
887
- <div class="welcome-panel-column">
888
- <ul>
889
- <li>
890
- <a class="button button-primary button-hero setting-download shipping" href="#"><?php _e( 'Download', 'woocommerce-checkout-manager'); ?></a>
891
- </li>
892
- </ul>
893
- </div>
894
- </div>
895
- <!-- .welcome-panel-column-container -->
896
-
897
- </div>
898
- <!-- .welcome-panel-content -->
899
-
900
- </div>
901
- <!-- #welcome-panel -->
902
-
903
- <!-- END SHIPPING SECTION -->
904
-
905
- <?php if( !empty( $options['buttons'] ) ) { ?>
906
- <div id="welcome-panel" class="welcome-panel left">
907
-
908
- <!-- ADDITIONAL SECTION -->
909
- <p id="additional-fields-section" class="about-description heading"><?php _e( 'Additional Fields Section', 'woocommerce-checkout-manager'); ?></p>
910
- <hr />
911
- <div class="welcome-panel-content">
912
-
913
- <p class="about-description inner"><?php _e( 'Export All Orders with abbreviation name : ', 'woocommerce-checkout-manager'); ?>
914
- <select name="selectedval">
915
- <?php foreach( $options['buttons'] as $name ) { ?>
916
- <option value="<?php echo $name['cow']; ?>"><?php echo $name['cow']; ?></option>
917
- <?php } ?>
918
- </select>
919
- </p>
920
- <!-- .about-description inner -->
921
-
922
- <div class="welcome-panel-column-container">
923
- <div class="welcome-panel-column">
924
- <ul>
925
- <li>
926
- <a class="button button-primary button-hero single-download additional" href="#"><?php _e( 'Download', 'woocommerce-checkout-manager'); ?></a>
927
- </li>
928
- </ul>
929
- </div>
930
- </div>
931
- <!-- .welcome-panel-column-container -->
932
- <?php } ?>
933
-
934
- <div class="sheet"></div>
935
- <p style="clear:both;" class="about-description inner"><?php _e( 'Export All Orders', 'woocommerce-checkout-manager'); ?></p>
936
-
937
- <div class="welcome-panel-column-container">
938
- <div class="welcome-panel-column">
939
- <ul>
940
- <li>
941
- <a class="button button-primary button-hero all-download additional" href="#"><?php _e( 'Download', 'woocommerce-checkout-manager'); ?></a>
942
- </li>
943
- </ul>
944
- </div>
945
- </div>
946
- <!-- .welcome-panel-column-container -->
947
-
948
- <div class="sheet"></div>
949
- <p style="clear:both;" class="about-description inner"><?php _e( 'Export Settings', 'woocommerce-checkout-manager'); ?></p>
950
-
951
- <div class="welcome-panel-column-container">
952
- <div class="welcome-panel-column">
953
- <ul>
954
- <li>
955
- <a class="button button-primary button-hero setting-download additional" href="#"><?php _e( 'Download', 'woocommerce-checkout-manager'); ?></a>
956
- </li>
957
- </ul>
958
- </div>
959
- </div>
960
- <!-- .welcome-panel-column-container -->
961
-
962
- </div>
963
- <!-- .welcome-panel-content -->
964
-
965
- <!-- // END ADDITIONAL SECTION -->
966
-
967
- </div>
968
- <!-- #welcome-panel -->
969
-
970
- </form>
971
- <!-- #additional_export -->
972
-
973
- </div>
974
- <!-- #welcome-panel -->
975
-
976
- </div>
977
- <!-- #content -->
978
-
979
- </div>
980
- <!-- .wrap -->
981
- <?php
982
  }
983
  ?>
1
  <?php
2
  // Exit if accessed directly
3
+ if (!defined('ABSPATH'))
4
+ exit;
5
 
6
  // add custom column headers
7
+ function wooccm_csv_export_modify_column_headers($column_headers) {
8
+
9
+ $new_headers = array();
10
+
11
+ $shipping = array(
12
+ 'country',
13
+ 'first_name',
14
+ 'last_name',
15
+ 'company',
16
+ 'address_1',
17
+ 'address_2',
18
+ 'city',
19
+ 'state',
20
+ 'postcode'
21
+ );
22
+ $billing = array(
23
+ 'country',
24
+ 'first_name',
25
+ 'last_name',
26
+ 'company',
27
+ 'address_1',
28
+ 'address_2',
29
+ 'city',
30
+ 'state',
31
+ 'postcode',
32
+ 'email',
33
+ 'phone'
34
+ );
35
+
36
+ $names = array(
37
+ 'billing',
38
+ 'shipping'
39
+ );
40
+ $inc = 3;
41
+ foreach ($names as $name) {
42
+
43
+ $array = ( $name == 'billing' ) ? $billing : $shipping;
44
+ $options = get_option('wccs_settings' . $inc);
45
+ if (!empty($options[$name . '_buttons'])) {
46
+ foreach ($options[$name . '_buttons'] as $btn) {
47
+ if (!in_array($btn['cow'], $array)) {
48
+ $new_headers[sprintf('_%s_%s', $name, $btn['cow'])] = wooccm_wpml_string($btn['label']);
49
+ }
50
+ }
51
+ }
52
+ $inc--;
53
+ }
54
+
55
+ $options = get_option('wccs_settings');
56
+ if (!empty($options['buttons'])) {
57
+ foreach ($options['buttons'] as $btn) {
58
+ $new_headers[$btn['cow']] = wooccm_wpml_string($btn['label']);
59
+ }
60
+ }
61
+
62
+ return array_merge($column_headers, $new_headers);
 
63
  }
64
 
65
  // set the data for each for custom columns
66
+ function wooccm_csv_export_modify_row_data($order_data, $order, $csv_generator) {
67
+
68
+ if (version_compare(wooccm_get_woo_version(), '2.7', '>=')) {
69
+ $order_id = ( method_exists($order, 'get_id') ? $order->get_id() : $order->id );
70
+ } else {
71
+ $order_id = ( isset($order->id) ? $order->id : 0 );
72
+ }
73
+
74
+ $custom_data = array();
75
+
76
+ $shipping = array(
77
+ 'country',
78
+ 'first_name',
79
+ 'last_name',
80
+ 'company',
81
+ 'address_1',
82
+ 'address_2',
83
+ 'city',
84
+ 'state',
85
+ 'postcode'
86
+ );
87
+ $billing = array(
88
+ 'country',
89
+ 'first_name',
90
+ 'last_name',
91
+ 'company',
92
+ 'address_1',
93
+ 'address_2',
94
+ 'city',
95
+ 'state',
96
+ 'postcode',
97
+ 'email',
98
+ 'phone'
99
+ );
100
+
101
+ $names = array(
102
+ 'billing',
103
+ 'shipping'
104
+ );
105
+ $inc = 3;
106
+ foreach ($names as $name) {
107
+
108
+ $array = ( $name == 'billing' ) ? $billing : $shipping;
109
+
110
+ $options = get_option('wccs_settings' . $inc);
111
+
112
+ if (!empty($options[$name . '_buttons'])) {
113
+ foreach ($options[$name . '_buttons'] as $btn) {
114
+
115
+ if (!in_array($btn['cow'], $array)) {
116
+
117
+ if (
118
+ get_post_meta($order_id, sprintf('_%s_%s', $name, $btn['cow']), true) &&
119
+ $btn['type'] !== 'heading' &&
120
+ (
121
+ $btn['type'] !== 'multiselect' || $btn['type'] !== 'multicheckbox'
122
+ )
123
+ ) {
124
+ $custom_data[sprintf('_%s_%s', $name, $btn['cow'])] = get_post_meta($order_id, sprintf('_%s_%s', $name, $btn['cow']), true);
125
+ }
126
+
127
+ if (
128
+ get_post_meta($order_id, sprintf('_%s_%s', $name, $btn['cow']), true) &&
129
+ $btn['type'] !== 'heading' &&
130
+ $btn['type'] !== 'wooccmupload' &&
131
+ (
132
+ $btn['type'] == 'multiselect' || $btn['type'] == 'multicheckbox'
133
+ )
134
+ ) {
135
+ $custom_data[sprintf('_%s_%s', $name, $btn['cow'])] = '';
136
+ $value = get_post_meta($order_id, sprintf('_%s_%s', $name, $btn['cow']), true);
137
+ $strings = maybe_unserialize($value);
138
+ if (!empty($strings)) {
139
+ if (is_array($strings)) {
140
+ $iww = 0;
141
+ $len = count($strings);
142
+ foreach ($strings as $key) {
143
+ if ($iww == $len - 1) {
144
+ $custom_data[sprintf('_%s_%s', $name, $btn['cow'])] .= $key;
145
+ } else {
146
+ $custom_data[sprintf('_%s_%s', $name, $btn['cow'])] .= $key . ', ';
147
+ }
148
+ $iww++;
149
+ }
150
+ } else {
151
+ echo $strings;
152
+ }
153
+ } else {
154
+ echo '-';
155
+ }
156
+ }
157
+ }
158
+ }
159
+ }
160
+ $inc--;
161
+ }
162
+
163
+ $options = get_option('wccs_settings');
164
+ if (!empty($options['buttons'])) {
165
+ foreach ($options['buttons'] as $btn) {
166
+
167
+ if (
168
+ get_post_meta($order_id, $btn['cow'], true) &&
169
+ $btn['type'] !== 'heading' &&
170
+ (
171
+ $btn['type'] !== 'multiselect' || $btn['type'] !== 'multicheckbox'
172
+ )
173
+ ) {
174
+ $custom_data[$btn['cow']] = get_post_meta($order_id, $btn['cow'], true);
175
+ }
176
+
177
+ if (
178
+ get_post_meta($order_id, $btn['cow'], true) &&
179
+ $btn['type'] !== 'heading' &&
180
+ $btn['type'] !== 'wooccmupload' &&
181
+ (
182
+ $btn['type'] == 'multiselect' || $btn['type'] == 'multicheckbox'
183
+ )
184
+ ) {
185
+ $custom_data[$btn['cow']] = '';
186
+ $value = get_post_meta($order_id, $btn['cow'], true);
187
+ $strings = maybe_unserialize($value);
188
+ if (!empty($strings)) {
189
+ if (is_array($strings)) {
190
+ $iww = 0;
191
+ $len = count($strings);
192
+ foreach ($strings as $key) {
193
+ if ($iww == $len - 1) {
194
+ $custom_data[$btn['cow']] .= $key;
195
+ } else {
196
+ $custom_data[$btn['cow']] .= $key . ', ';
197
+ }
198
+ $iww++;
199
+ }
200
+ echo $strings;
201
+ }
202
+ } else {
203
+ echo '-';
204
+ }
205
+ }
206
+ }
207
+ }
208
+
209
+ // defaults set back
210
+ $new_order_data = array();
211
+
212
+ if (isset($csv_generator->order_format) && ( 'default_one_row_per_item' == $csv_generator->order_format || 'legacy_one_row_per_item' == $csv_generator->order_format )) {
213
+ if (!empty($order_data)) {
214
+ foreach ($order_data as $data) {
215
+ $new_order_data[] = array_merge((array) $data, $custom_data);
216
+ }
217
+ }
218
+ } else {
219
+ $new_order_data = array_merge($order_data, $custom_data);
220
+ }
221
+
222
+ return $new_order_data;
 
 
 
 
223
  }
224
 
225
  // Exit if accessed directly
226
+ if (!defined('ABSPATH'))
227
+ exit;
228
+
229
+ function wooccm_additional_gen($tab, $abbr, $section, $wooname = '') {
230
+
231
+ global $woocommerce, $wpdb;
232
+
233
+ $options = get_option('wccs_settings');
234
+ $options2 = get_option('wccs_settings2'); // shipping
235
+ $options3 = get_option('wccs_settings3'); // billing
236
+
237
+ $args = array(
238
+ 'post_type' => 'shop_order',
239
+ 'posts_per_page' => -1,
240
+ 'post_status' => array('wc-processing', 'wc-completed')
241
+ );
242
+
243
+ $loop = new WP_Query($args);
244
+ $csv_output = '';
245
+
246
+ $optionname = false;
247
+ switch ($wooname) {
248
+
249
+ case 'additional':
250
+ $optionname = $options['buttons'];
251
+ break;
252
+
253
+ case 'shipping':
254
+ $optionname = $options2['shipping_buttons'];
255
+ break;
256
+
257
+ case 'billing':
258
+ $optionname = $options3['billing_buttons'];
259
+ break;
260
+ }
261
+
262
+ if (!empty($abbr) && $section == 1) {
263
+ if ($tab == $wooname) {
264
+
265
+ while ($loop->have_posts()) {
266
+ $loop->the_post();
267
+ $order_id = $loop->post->ID;
268
+ $order = new WC_Order($order_id);
269
+ if (get_post_meta($order_id, $abbr, true)) {
270
+ $csv_output .= '["' . $order->billing_first_name . ' ' . $order->billing_last_name . '", "' . get_post_meta($order_id, $abbr, true) . '" ], ';
271
+ }
272
+ }
273
+ } elseif ($tab == 'heading') {
274
+
275
+ $csv_output .= '["Name","' . $abbr . '"]';
276
+ }
277
+ } elseif (empty($abbr) && $section == 2) {
278
+ if ($tab == $wooname) {
279
+
280
+ $listida = array();
281
+ while ($loop->have_posts()) {
282
+ $loop->the_post();
283
+ $order_id = $loop->post->ID;
284
+ $order = new WC_Order($order_id);
285
+ if (!empty($optionname)) {
286
+ foreach ($optionname as $name) {
287
+ if (get_post_meta($order_id, $name['cow'], true)) {
288
+ $listida[] = $order_id;
289
+ }
290
+ }
291
+ }
292
+ }
293
+ $csv_output = array_unique($listida);
294
+ } elseif ($tab == 'heading') {
295
+
296
+ $lista = array();
297
+ while ($loop->have_posts()) {
298
+ $loop->the_post();
299
+ $order_id = $loop->post->ID;
300
+ $order = new WC_Order($order_id);
301
+ if (!empty($optionname)) {
302
+ foreach ($optionname as $n) {
303
+ if (get_post_meta($order_id, $n['cow'], true)) {
304
+ $lista[] = $n['label'];
305
+ }
306
+ }
307
+ }
308
+ }
309
+ $csv_output = array_unique($lista);
310
+ }
311
+ }
312
+ return $csv_output;
 
 
 
 
 
313
  }
314
 
315
  /**
316
+ * Converting data to CSV [ SETTINGS DATA ]
317
+ */
318
+ function wooccm_generate_csv($tab = '') {
319
+
320
+ $options = get_option('wccs_settings');
321
+ $options2 = get_option('wccs_settings2');
322
+ $options3 = get_option('wccs_settings3');
323
+
324
+ $csv_output = '';
325
+ switch ($tab) {
326
+
327
+ case 'additional':
328
+ if (!empty($options['buttons'])) {
329
+ $total = count($options['buttons']) - 1;
330
+ foreach ($options['buttons'] as $i => $btn) {
331
+ if ($i != 999 && !empty($btn['cow'])) {
332
+ $csv_output .= '[';
333
+ foreach ($btn as $n => $dataw) {
334
+ $csv_output .= '"' . $dataw . '",';
335
+ }
336
+ if ($i != $total) {
337
+ $csv_output .= '], ';
338
+ } else {
339
+ $csv_output .= ']';
340
+ }
341
+ }
342
+ }
343
+ }
344
+ break;
345
+
346
+ case 'billing':
347
+ if (!empty($options3['billing_buttons'])) {
348
+ $total = count($options3['billing_buttons']) - 1;
349
+ foreach ($options3['billing_buttons'] as $i => $btn) {
350
+ if ($i != 999 && !empty($btn['cow'])) {
351
+ $csv_output .= '[';
352
+ foreach ($btn as $n => $dataw) {
353
+ $csv_output .= '"' . $dataw . '",';
354
+ }
355
+ if ($i != $total) {
356
+ $csv_output .= '], ';
357
+ } else {
358
+ $csv_output .= ']';
359
+ }
360
+ }
361
+ }
362
+ }
363
+ break;
364
+
365
+ case 'shipping':
366
+ if (!empty($options2['shipping_buttons'])) {
367
+ $total = count($options2['shipping_buttons']) - 1;
368
+ foreach ($options2['shipping_buttons'] as $i => $btn) {
369
+ if ($i != 999 && !empty($btn['cow'])) {
370
+ $csv_output .= '[';
371
+ foreach ($btn as $n => $dataw) {
372
+ $csv_output .= '"' . $dataw . '",';
373
+ }
374
+ if ($i != $total) {
375
+ $csv_output .= '], ';
376
+ } else {
377
+ $csv_output .= ']';
378
+ }
379
+ }
380
+ }
381
+ }
382
+ break;
383
+
384
+ case 'general':
385
+ if (!empty($options['checkness'])) {
386
+ $csv_output .= '[';
387
+ foreach ($options['checkness'] as $i => $btn) {
388
+ $csv_output .= '"' . $btn . '",';
389
+ }
390
+ $csv_output .= ']';
391
+ }
392
+ break;
393
+
394
+ case 'heading':
395
+ if (!empty($options3['billing_buttons'])) {
396
+ $csv_output .= '[';
397
+ foreach ($options3['billing_buttons'][0] as $n => $dataw) {
398
+ $csv_output .= '"' . $n . '",';
399
+ }
400
+ $csv_output .= ']';
401
+ }
402
+ break;
403
+
404
+ case 'heading2':
405
+ if (!empty($options['checkness'])) {
406
+ $csv_output .= '[';
407
+ foreach ($options['checkness'] as $n => $btn) {
408
+ $csv_output .= '"' . $n . '",';
409
+ }
410
+ $csv_output .= ']';
411
+ }
412
+ break;
413
+
414
+ case 'heading3':
415
+ if (!empty($options['buttons'])) {
416
+ $csv_output .= '[';
417
+ foreach ($options['buttons'][0] as $n => $dataw) {
418
+ $csv_output .= '"' . $n . '",';
419
+ }
420
+ $csv_output .= ']';
421
+ }
422
+ break;
423
+ }
424
+ return $csv_output;
 
 
425
  }
 
426
 
427
+ // --------------- END SETTINGS DATA ----------------
428
 
429
+ function wooccm_csvall_heading($heading) {
 
 
 
 
 
 
430
 
431
+ $csv_output = '';
432
+ $csv_output .= '["Name", ';
433
+ foreach ($heading as $data) {
434
+ $csv_output .= '"' . $data . '", ';
435
+ }
436
+ $csv_output .= ']';
437
+ return $csv_output;
438
  }
439
 
440
+ function wooccm_csvall_info($orderids, $wooname = '') {
441
+
442
+ $options = get_option('wccs_settings');
443
+ $options2 = get_option('wccs_settings2');
444
+ $options3 = get_option('wccs_settings3');
445
+
446
+ $csv_output = '';
447
+ if (!empty($orderids)) {
448
+ foreach ($orderids as $order_id) {
449
+ $csv_output .= '["' . get_post_meta($order_id, '_billing_first_name', true) . ' ' . get_post_meta($order_id, '_billing_last_name', true) . '", ';
450
+ switch ($wooname) {
451
+
452
+ case 'additional':
453
+ if (!empty($options['buttons'])) {
454
+ foreach ($options['buttons'] as $name2) {
455
+ $csv_output .= '"' . get_post_meta($order_id, $name2['cow'], true) . '", ';
456
+ }
457
+ }
458
+ break;
459
+
460
+ case 'billing':
461
+ if (!empty($options3['billing_buttons'])) {
462
+ foreach ($options3['billing_buttons'] as $name2) {
463
+ $csv_output .= '"' . get_post_meta($order_id, $name2['cow'], true) . '", ';
464
+ }
465
+ }
466
+ break;
467
+
468
+ case 'shipping':
469
+ if (!empty($options2['shipping_buttons'])) {
470
+ foreach ($options2['shipping_buttons'] as $name2) {
471
+ $csv_output .= '"' . get_post_meta($order_id, $name2['cow'], true) . '", ';
472
+ }
473
+ }
474
+ break;
475
+ }
476
+ $csv_output .= '], ';
477
+ }
478
+ }
479
+ return $csv_output;
 
 
480
  }
481
 
482
+ function wooccm_advance_export() {
483
+
484
+ $options = get_option('wccs_settings');
485
+ $options2 = get_option('wccs_settings2');
486
+ $options3 = get_option('wccs_settings3');
487
+
488
+ $single_download = ( isset($_POST['single-download']) ? sanitize_text_field($_POST['single-download']) : false );
489
+ if (!empty($single_download)) {
490
+ switch ($single_download) {
491
+
492
+ case 'additional':
493
+ $csv = wooccm_additional_gen('additional', ( isset($_POST['selectedval']) ? sanitize_text_field($_POST['selectedval']) : false), 1, 'additional');
494
+ $heading = wooccm_additional_gen('heading', ( isset($_POST['selectedval']) ? sanitize_text_field($_POST['selectedval']) : false), 1, 'additional');
495
+ break;
496
+
497
+ case 'shipping':
498
+ $csv = wooccm_additional_gen('shipping', ( isset($_POST['shippingselectedval']) ? sanitize_text_field($_POST['shippingselectedval']) : false), 1, 'shipping');
499
+ $heading = wooccm_additional_gen('heading', ( isset($_POST['shippingselectedval']) ? sanitize_text_field($_POST['shippingselectedval']) : false), 1, 'shipping');
500
+ break;
501
+
502
+ case 'billing':
503
+ $csv = wooccm_additional_gen('billing', ( isset($_POST['billingselectedval']) ? $_POST['billingselectedval'] : false), 1, 'billing');
504
+ $heading = wooccm_additional_gen('heading', ( isset($_POST['billingselectedval']) ? $_POST['billingselectedval'] : false), 1, 'billing');
505
+ break;
506
+ }
507
+ ?>
508
+
509
+ <script type="text/javascript">
510
+ jQuery(document).ready(function ($) {
511
+
512
+ var A = [<?php echo $heading . ',' . $csv; ?>]; // initialize array of rows with header row as 1st item
513
+
514
+ var csvRows = [];
515
+ for (var i = 0, l = A.length; i < l; ++i) { // for each array( [..] ), join with commas for csv
516
+ for (index = 0; index < A[i].length; ++index) {
517
+ A[i][index] = '"' + A[i][index] + '"'; // add back quotes for each string, to store special characters and commas
518
+ }
519
+ csvRows.push(A[i]); // put data in a java useable array
520
+ }
521
+
522
+ var csvString = csvRows.join("\n"); // make rows for each array
523
+
524
+ var a = document.createElement('a');
525
+
526
+ a.href = 'data:attachment/csv,' + encodeURIComponent(csvString);
527
+ a.target = '_blank';
528
+ a.download = 'only_additional_fieldname.csv';
529
+ document.body.appendChild(a);
530
+ a.click();
531
+
532
+ });
533
+ </script>
534
+
535
+ <?php
536
+ }
537
+
538
+ // ----------- ALL DOWNLOAD ---------
539
+ $all_download = ( isset($_POST['all-download']) ? sanitize_text_field($_POST['all-download']) : false );
540
+ if (!empty($all_download)) {
541
+
542
+ $abbr = '';
543
+ switch ($all_download) {
544
+
545
+ case 'additional':
546
+ $csv = wooccm_additional_gen('additional', $abbr, 2);
547
+ $csv = wooccm_csvall_info($csv, 'additional');
548
+ $heading = wooccm_additional_gen('heading', $abbr, 2);
549
+ $heading = wooccm_csvall_heading($heading);
550
+ break;
551
+
552
+ case 'shipping':
553
+ $csv = wooccm_additional_gen('additional', $abbr, 2, 'shipping');
554
+ $csv = wooccm_csvall_info($csv, 'shipping');
555
+ $heading = wooccm_additional_gen('heading', $abbr, 2, 'shipping');
556
+ $heading = wooccm_csvall_heading($heading);
557
+ break;
558
+
559
+ case 'billing':
560
+ $csv = wooccm_additional_gen('billing', $abbr, 2, 'billing');
561
+ $csv = wooccm_csvall_info($csv, 'billing');
562
+ $heading = wooccm_additional_gen('heading', $abbr, 2, 'billing');
563
+ $heading = wooccm_csvall_heading($heading);
564
+ break;
565
+ }
566
+ ?>
567
+
568
+ <script type="text/javascript">
569
+ jQuery(document).ready(function ($) {
570
+
571
+ var A = [<?php echo $heading . ',' . $csv; ?>]; // initialize array of rows with header row as 1st item
572
+
573
+ var csvRows = [];
574
+ for (var i = 0, l = A.length; i < l; ++i) { // for each array( [..] ), join with commas for csv
575
+ for (index = 0; index < A[i].length; ++index) {
576
+ A[i][index] = '"' + A[i][index] + '"'; // add back quotes for each string, to store special characters and commas
577
+ }
578
+ csvRows.push(A[i]); // put data in a java useable array
579
+ }
580
+
581
+ var csvString = csvRows.join("\n"); // make rows for each array
582
+
583
+ var a = document.createElement('a');
584
+
585
+ a.href = 'data:attachment/csv,' + encodeURIComponent(csvString);
586
+ a.target = '_blank';
587
+ a.download = 'only_additional_fieldname.csv';
588
+ document.body.appendChild(a);
589
+ a.click();
590
+
591
+ });
592
+ </script>
593
+
594
+ <?php
595
+ }
596
+ // ---------- END ALL DOWNLOAD --------------
597
+ // ---------- SETTING DOWNLOAD --------------
598
+ $setting_download = ( isset($_POST['setting-download']) ? sanitize_text_field($_POST['setting-download']) : false );
599
+ if (!empty($setting_download)) {
600
+ switch ($setting_download) {
601
+
602
+ case 'additional':
603
+ $csv = wooccm_generate_csv('additional');
604
+ $heading = wooccm_generate_csv('heading3');
605
+ break;
606
+
607
+ case 'billing':
608
+ $csv = wooccm_generate_csv('billing');
609
+ $heading = wooccm_generate_csv('heading');
610
+ break;
611
+
612
+ case 'shipping':
613
+ $csv = wooccm_generate_csv('shipping');
614
+ $heading = wooccm_generate_csv('heading');
615
+ break;
616
+
617
+ case 'general':
618
+ $csv = wooccm_generate_csv('general');
619
+ $heading = wooccm_generate_csv('heading2');
620
+ break;
621
+ }
622
+ ?>
623
+
624
+ <script type="text/javascript">
625
+ jQuery(document).ready(function ($) {
626
+
627
+ var A = [<?php echo $heading . ',' . $csv; ?>]; // initialize array of rows with header row as 1st item
628
+
629
+ var csvRows = [];
630
+ for (var i = 0, l = A.length; i < l; ++i) { // for each array( [..] ), join with commas for csv
631
+ for (index = 0; index < A[i].length; ++index) {
632
+ A[i][index] = '"' + A[i][index] + '"'; // add back quotes for each string, to store special characters and commas
633
+ }
634
+ csvRows.push(A[i]); // put data in a java useable array
635
+ }
636
+
637
+ var csvString = csvRows.join("\n"); // make rows for each array
638
+
639
+ var a = document.createElement('a');
640
+
641
+ a.href = 'data:attachment/csv,' + encodeURIComponent(csvString);
642
+ a.target = '_blank';
643
+ a.download = 'only_additional_fieldname.csv';
644
+ document.body.appendChild(a);
645
+ a.click();
646
+
647
+ });
648
+ </script>
649
+
650
+ <?php
651
+ }
652
+ // ---------------- END SETTING DOWNLOAD --------------
653
+ ?>
654
+
655
+ <script type="text/javascript">
656
+ jQuery(document).ready(function() {
657
+ jQuery(function () {
658
+
659
+ jQuery(".button.single-download.additional").click(function() {
660
+ jQuery("input[name=single-download]").val("additional");
661
+ jQuery("#additional_export").submit();
662
+ }); jQuery(".b utton.al l-download.additional").click(function() {
663
+ jQuery("input[name=all-download]").val("additional");
664
+ jQuery("#additional_export").submit();
665
+ });
666
+ jQuery(".button.setting-download.additional").click(function() {
667
+ jQuery("input[name=setting-download]").val("additional");
668
+ jQuery("#additional_export").submit();
669
+ }); < !-- shipping -->
670
+ jQuery(".button.single-download.shipping").click(function() {
671
+ jQuery("input[name=single-download]").val("shipping");
672
+ jQuery("#additional_export").submit();
673
+ });
674
+
675
+ jQuery(".button.all-download.shipping").click(function() {
676
+ jQuery("input[name=all-download]").val("shipping");
677
+ jQuery("#additional_export").submit();
678
+ });
679
+ jQuery(".button.setting-download.additional").click(function() {
680
+ jQuery("input[name=setting-download]").val("shipping");
681
+ jQuery("#additional_export").submit();
682
+ });
683
+ <!-- end shipping -->
684
+
685
+ <!-- billing -->
686
+ jQuery(".button.single-download.billing").click(function() {
687
+ jQuery("input[name=single-download]").val("billing");
688
+ jQuery("#additional_export").submit();
689
+ });
690
+
691
+ jQuery(".button.all-download.billing").click(function() {
692
+ jQuery("input[name=all-download]").val("billing");
693
+ jQuery("#additional_export").submit();
694
+ });
695
+
696
+ jQuery(".button.setting-download.additional").click(function() {
697
+ jQuery("input[name=setting-download]").val("billing");
698
+ jQuery("#additional_export").submit();
699
+ });
700
+ <!-- end billing -->
701
+
702
+ });
703
+
704
+ });
705
+ </script>
706
+
707
+ <h2><?php _e('WooCommerce Checkout Manager', 'woocommerce-checkout-manager'); ?></h2>
708
+ <div class="wrap">
709
+
710
+ <div id="content">
711
+
712
+ <h2 class="nav-tab-wrapper add_tip_wrap">
713
+ <a class="nav-tab general-tab nav-tab-active"><?php _e('Export', 'woocommerce-checkout-manager'); ?></a>
714
+ <a class="nav-tab" href="<?php echo esc_url(WOOCCM_SUPPORT_URL); ?>" target="_blank">
715
+ <?php esc_html_e('Report a bug', 'woocommerce-checkout-manager'); ?>
716
+ </a>
717
+ <!--<a class="nav-tab star" href="https://wordpress.org/support/view/plugin-reviews/woocommerce-checkout-manager?filter=5" target="_blank">
718
+ <div id="star-five" title="<?php _e('Like the plugin? Rate it! On WordPress.org', 'woocommerce-checkout-manager'); ?>">
719
+ <div class="star-rating">
720
+ <div class="star star-full"></div>
721
+ <div class="star star-full"></div>
722
+ <div class="star star-full"></div>
723
+ <div class="star star-full"></div>
724
+ <div class="star star-full"></div>
725
+ </div>
726
+ </div>
727
+ </a>-->
728
+ </h2>
729
+ <!-- .nav-tab-wrapper -->
730
+
731
+ <ul class="subsubsub">
732
+ <li><a href="#billing-fields-section"><?php _e('Billing Fields', 'woocommerce-checkout-manager'); ?></a> |</li>
733
+ <li><a href="#shipping-fields-section"><?php _e('Shipping Fields', 'woocommerce-checkout-manager'); ?></a> |</li>
734
+ <li><a href="#additional-fields-section"><?php _e('Additional Fields', 'woocommerce-checkout-manager'); ?></a></li>
735
+ </ul>
736
+ <!-- .subsubsub -->
737
+ <br class="clear">
738
+
739
+ <h3><?php _e('Field Data Export', 'woocommerce-checkout-manager'); ?></h3>
740
+
741
+ <div id="welcome-panel" class="welcome-panel heading">
742
+
743
+ <form name="additionalexport" method="post" action="" id="additional_export">
744
+
745
+ <input type="hidden" name="single-download" val="" />
746
+ <input type="hidden" name="all-download" val="" />
747
+ <input type="hidden" name="setting-download" val="" />
748
+
749
+ <div id="welcome-panel" class="welcome-panel left billing">
750
+
751
+ <!-- BILLING SECTION -->
752
+
753
+ <p id="billing-fields-section" class="about-description heading"><?php _e('Billing Fields Section', 'woocommerce-checkout-manager'); ?></p>
754
+ <hr />
755
+
756
+ <?php if (!empty($options3['billing_buttons'])) { ?>
757
+ <div class="welcome-panel-content">
758
+
759
+ <p class="about-description inner"><?php _e('Export All Orders with abbreviation name : ', 'woocommerce-checkout-manager'); ?>
760
+ <select name="billingselectedval">
761
+ <?php foreach ($options3['billing_buttons'] as $name) { ?>
762
+ <option value="<?php echo $name['cow']; ?>"><?php echo $name['cow']; ?></option>
763
+ <?php } ?>
764
+ </select>
765
+ </p>
766
+ <!-- .about-description inner -->
767
+
768
+ <div class="welcome-panel-column-container">
769
+ <div class="welcome-panel-column">
770
+ <ul>
771
+ <li>
772
+ <a class="button button-primary button-hero single-download billing" href="#"><?php _e('Download', 'woocommerce-checkout-manager'); ?></a>
773
+ </li>
774
+ </ul>
775
+ </div>
776
+ </div>
777
+ <!-- .welcome-panel-column-container -->
778
+ <?php } ?>
779
+
780
+ <div class="sheet"></div>
781
+ <p style="clear:both;" class="about-description inner"><?php _e('Export All Orders', 'woocommerce-checkout-manager'); ?></p>
782
+
783
+ <div class="welcome-panel-column-container">
784
+ <div class="welcome-panel-column">
785
+ <ul>
786
+ <li>
787
+ <a class="button button-primary button-hero all-download billing" href="#"><?php _e('Download', 'woocommerce-checkout-manager'); ?></a>
788
+ </li>
789
+ </ul>
790
+ </div>
791
+ </div>
792
+ <!-- .welcome-panel-column-container -->
793
+
794
+ <div class="sheet"></div>
795
+ <p style="clear:both;" class="about-description inner"><?php _e('Export Settings', 'woocommerce-checkout-manager'); ?></p>
796
+
797
+ <div class="welcome-panel-column-container">
798
+ <div class="welcome-panel-column">
799
+ <ul>
800
+ <li>
801
+ <a class="button button-primary button-hero setting-download billing" href="#"><?php _e('Download', 'woocommerce-checkout-manager'); ?></a>
802
+ </li>
803
+ </ul>
804
+ </div>
805
+ </div>
806
+ <!-- .welcome-panel-column-container -->
807
+
808
+ </div>
809
+ <!-- .welcome-panel-content -->
810
+ </div>
811
+ <!-- #welcome-panel -->
812
+
813
+ <!-- END BILLING SECTION -->
814
+
815
+ <div id="welcome-panel" class="welcome-panel left shipping">
816
+
817
+ <!-- SHIPPING SECTION -->
818
+
819
+ <p id="shipping-fields-section" class="about-description heading"><?php _e('Shipping Fields Section', 'woocommerce-checkout-manager'); ?></p>
820
+ <hr />
821
+
822
+ <?php if (!empty($options2['shipping_buttons'])) { ?>
823
+ <div class="welcome-panel-content">
824
+
825
+ <p class="about-description inner"><?php _e('Export All Orders with abbreviation name : ', 'woocommerce-checkout-manager'); ?>
826
+ <select name="shippingselectedval">
827
+ <?php foreach ($options2['shipping_buttons'] as $name) { ?>
828
+ <option value="<?php echo $name['cow']; ?>"><?php echo $name['cow']; ?></option>
829
+ <?php } ?>
830
+ </select>
831
+ </p>
832
+ <!-- .about-description inner -->
833
+
834
+ <div class="welcome-panel-column-container">
835
+ <div class="welcome-panel-column">
836
+ <ul>
837
+ <li>
838
+ <a class="button button-primary button-hero single-download shipping" href="#"><?php _e('Download', 'woocommerce-checkout-manager'); ?></a>
839
+ </li>
840
+ </ul>
841
+ </div>
842
+ </div>
843
+ <!-- .welcome-panel-column-container -->
844
+ <?php } ?>
845
+
846
+ <div class="sheet"></div>
847
+ <p style="clear:both;" class="about-description inner"><?php _e('Export All Orders', 'woocommerce-checkout-manager'); ?></p>
848
+
849
+ <div class="welcome-panel-column-container">
850
+ <div class="welcome-panel-column">
851
+ <ul>
852
+ <li>
853
+ <a class="button button-primary button-hero all-download shipping" href="#"><?php _e('Download', 'woocommerce-checkout-manager'); ?></a>
854
+ </li>
855
+ </ul>
856
+ </div>
857
+ </div>
858
+ <!-- .welcome-panel-column-container -->
859
+
860
+ <div class="sheet"></div>
861
+ <p style="clear:both;" class="about-description inner"><?php _e('Export Settings', 'woocommerce-checkout-manager'); ?></p>
862
+
863
+ <div class="welcome-panel-column-container">
864
+ <div class="welcome-panel-column">
865
+ <ul>
866
+ <li>
867
+ <a class="button button-primary button-hero setting-download shipping" href="#"><?php _e('Download', 'woocommerce-checkout-manager'); ?></a>
868
+ </li>
869
+ </ul>
870
+ </div>
871
+ </div>
872
+ <!-- .welcome-panel-column-container -->
873
+
874
+ </div>
875
+ <!-- .welcome-panel-content -->
876
+
877
+ </div>
878
+ <!-- #welcome-panel -->
879
+
880
+ <!-- END SHIPPING SECTION -->
881
+
882
+ <?php if (!empty($options['buttons'])) { ?>
883
+ <div id="welcome-panel" class="welcome-panel left">
884
+
885
+ <!-- ADDITIONAL SECTION -->
886
+ <p id="additional-fields-section" class="about-description heading"><?php _e('Additional Fields Section', 'woocommerce-checkout-manager'); ?></p>
887
+ <hr />
888
+ <div class="welcome-panel-content">
889
+
890
+ <p class="about-description inner"><?php _e('Export All Orders with abbreviation name : ', 'woocommerce-checkout-manager'); ?>
891
+ <select name="selectedval">
892
+ <?php foreach ($options['buttons'] as $name) { ?>
893
+ <option value="<?php echo $name['cow']; ?>"><?php echo $name['cow']; ?></option>
894
+ <?php } ?>
895
+ </select>
896
+ </p>
897
+ <!-- .about-description inner -->
898
+
899
+ <div class="welcome-panel-column-container">
900
+ <div class="welcome-panel-column">
901
+ <ul>
902
+ <li>
903
+ <a class="button button-primary button-hero single-download additional" href="#"><?php _e('Download', 'woocommerce-checkout-manager'); ?></a>
904
+ </li>
905
+ </ul>
906
+ </div>
907
+ </div>
908
+ <!-- .welcome-panel-column-container -->
909
+ <?php } ?>
910
+
911
+ <div class="sheet"></div>
912
+ <p style="clear:both;" class="about-description inner"><?php _e('Export All Orders', 'woocommerce-checkout-manager'); ?></p>
913
+
914
+ <div class="welcome-panel-column-container">
915
+ <div class="welcome-panel-column">
916
+ <ul>
917
+ <li>
918
+ <a class="button button-primary button-hero all-download additional" href="#"><?php _e('Download', 'woocommerce-checkout-manager'); ?></a>
919
+ </li>
920
+ </ul>
921
+ </div>
922
+ </div>
923
+ <!-- .welcome-panel-column-container -->
924
+
925
+ <div class="sheet"></div>
926
+ <p style="clear:both;" class="about-description inner"><?php _e('Export Settings', 'woocommerce-checkout-manager'); ?></p>
927
+
928
+ <div class="welcome-panel-column-container">
929
+ <div class="welcome-panel-column">
930
+ <ul>
931
+ <li>
932
+ <a class="button button-primary button-hero setting-download additional" href="#"><?php _e('Download', 'woocommerce-checkout-manager'); ?></a>
933
+ </li>
934
+ </ul>
935
+ </div>
936
+ </div>
937
+ <!-- .welcome-panel-column-container -->
938
+
939
+ </div>
940
+ <!-- .welcome-panel-content -->
941
+
942
+ <!-- // END ADDITIONAL SECTION -->
943
+
944
+ </div>
945
+ <!-- #welcome-panel -->
946
+
947
+ </form>
948
+ <!-- #additional_export -->
949
+
950
+ </div>
951
+ <!-- #welcome-panel -->
952
+
953
+ </div>
954
+ <!-- #content -->
955
+
956
+ </div>
957
+ <!-- .wrap -->
958
+ <?php
 
 
 
 
 
 
 
 
 
959
  }
960
  ?>
includes/pickers/di18n/jquery-ui-i18n.js DELETED
@@ -1,1646 +0,0 @@
1
- /*! jQuery UI - v1.8.24 - 2012-09-28
2
- * https://github.com/jquery/jquery-ui
3
- * Includes: jquery.ui.datepicker-af.js, jquery.ui.datepicker-ar-DZ.js, jquery.ui.datepicker-ar.js, jquery.ui.datepicker-az.js, jquery.ui.datepicker-bg.js, jquery.ui.datepicker-bs.js, jquery.ui.datepicker-ca.js, jquery.ui.datepicker-cs.js, jquery.ui.datepicker-cy-GB.js, jquery.ui.datepicker-da.js, jquery.ui.datepicker-de.js, jquery.ui.datepicker-el.js, jquery.ui.datepicker-en-AU.js, jquery.ui.datepicker-en-GB.js, jquery.ui.datepicker-en-NZ.js, jquery.ui.datepicker-eo.js, jquery.ui.datepicker-es.js, jquery.ui.datepicker-et.js, jquery.ui.datepicker-eu.js, jquery.ui.datepicker-fa.js, jquery.ui.datepicker-fi.js, jquery.ui.datepicker-fo.js, jquery.ui.datepicker-fr-CH.js, jquery.ui.datepicker-fr.js, jquery.ui.datepicker-gl.js, jquery.ui.datepicker-he.js, jquery.ui.datepicker-hi.js, jquery.ui.datepicker-hr.js, jquery.ui.datepicker-hu.js, jquery.ui.datepicker-hy.js, jquery.ui.datepicker-id.js, jquery.ui.datepicker-is.js, jquery.ui.datepicker-it.js, jquery.ui.datepicker-ja.js, jquery.ui.datepicker-ka.js, jquery.ui.datepicker-kk.js, jquery.ui.datepicker-km.js, jquery.ui.datepicker-ko.js, jquery.ui.datepicker-lb.js, jquery.ui.datepicker-lt.js, jquery.ui.datepicker-lv.js, jquery.ui.datepicker-mk.js, jquery.ui.datepicker-ml.js, jquery.ui.datepicker-ms.js, jquery.ui.datepicker-nl-BE.js, jquery.ui.datepicker-nl.js, jquery.ui.datepicker-no.js, jquery.ui.datepicker-pl.js, jquery.ui.datepicker-pt-BR.js, jquery.ui.datepicker-pt.js, jquery.ui.datepicker-rm.js, jquery.ui.datepicker-ro.js, jquery.ui.datepicker-ru.js, jquery.ui.datepicker-sk.js, jquery.ui.datepicker-sl.js, jquery.ui.datepicker-sq.js, jquery.ui.datepicker-sr-SR.js, jquery.ui.datepicker-sr.js, jquery.ui.datepicker-sv.js, jquery.ui.datepicker-ta.js, jquery.ui.datepicker-th.js, jquery.ui.datepicker-tj.js, jquery.ui.datepicker-tr.js, jquery.ui.datepicker-uk.js, jquery.ui.datepicker-vi.js, jquery.ui.datepicker-zh-CN.js, jquery.ui.datepicker-zh-HK.js, jquery.ui.datepicker-zh-TW.js
4
- * Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
5
-
6
- /* Afrikaans initialisation for the jQuery UI date picker plugin. */
7
- /* Written by Renier Pretorius. */
8
- jQuery(function($){
9
- $.datepicker.regional['af'] = {
10
- closeText: 'Selekteer',
11
- prevText: 'Vorige',
12
- nextText: 'Volgende',
13
- currentText: 'Vandag',
14
- monthNames: ['Januarie','Februarie','Maart','April','Mei','Junie',
15
- 'Julie','Augustus','September','Oktober','November','Desember'],
16
- monthNamesShort: ['Jan', 'Feb', 'Mrt', 'Apr', 'Mei', 'Jun',
17
- 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Des'],
18
- dayNames: ['Sondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrydag', 'Saterdag'],
19
- dayNamesShort: ['Son', 'Maa', 'Din', 'Woe', 'Don', 'Vry', 'Sat'],
20
- dayNamesMin: ['So','Ma','Di','Wo','Do','Vr','Sa'],
21
- weekHeader: 'Wk',
22
- dateFormat: 'dd/mm/yy',
23
- firstDay: 1,
24
- isRTL: false,
25
- showMonthAfterYear: false,
26
- yearSuffix: ''};
27
- $.datepicker.setDefaults($.datepicker.regional['af']);
28
- });
29
-
30
- /* Algerian Arabic Translation for jQuery UI date picker plugin. (can be used for Tunisia)*/
31
- /* Mohamed Cherif BOUCHELAGHEM -- cherifbouchelaghem@yahoo.fr */
32
-
33
- jQuery(function($){
34
- $.datepicker.regional['ar-DZ'] = {
35
- closeText: 'إغلاق',
36
- prevText: '&#x3c;السابق',
37
- nextText: 'التالي&#x3e;',
38
- currentText: 'اليوم',
39
- monthNames: ['جانفي', 'فيفري', 'مارس', 'أفريل', 'ماي', 'جوان',
40
- 'جويلية', 'أوت', 'سبتمبر','أكتوبر', 'نوفمبر', 'ديسمبر'],
41
- monthNamesShort: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],
42
- dayNames: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
43
- dayNamesShort: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
44
- dayNamesMin: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
45
- weekHeader: 'أسبوع',
46
- dateFormat: 'dd/mm/yy',
47
- firstDay: 6,
48
- isRTL: true,
49
- showMonthAfterYear: false,
50
- yearSuffix: ''};
51
- $.datepicker.setDefaults($.datepicker.regional['ar-DZ']);
52
- });
53
-
54
- /* Arabic Translation for jQuery UI date picker plugin. */
55
- /* Khaled Alhourani -- me@khaledalhourani.com */
56
- /* NOTE: monthNames are the original months names and they are the Arabic names, not the new months name فبراير - يناير and there isn't any Arabic roots for these months */
57
- jQuery(function($){
58
- $.datepicker.regional['ar'] = {
59
- closeText: 'إغلاق',
60
- prevText: '&#x3c;السابق',
61
- nextText: 'التالي&#x3e;',
62
- currentText: 'اليوم',
63
- monthNames: ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'مايو', 'حزيران',
64
- 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'],
65
- monthNamesShort: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],
66
- dayNames: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
67
- dayNamesShort: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
68
- dayNamesMin: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],
69
- weekHeader: 'أسبوع',
70
- dateFormat: 'dd/mm/yy',
71
- firstDay: 6,
72
- isRTL: true,
73
- showMonthAfterYear: false,
74
- yearSuffix: ''};
75
- $.datepicker.setDefaults($.datepicker.regional['ar']);
76
- });
77
- /* Azerbaijani (UTF-8) initialisation for the jQuery UI date picker plugin. */
78
- /* Written by Jamil Najafov (necefov33@gmail.com). */
79
- jQuery(function($) {
80
- $.datepicker.regional['az'] = {
81
- closeText: 'Bağla',
82
- prevText: '&#x3c;Geri',
83
- nextText: 'İrəli&#x3e;',
84
- currentText: 'Bugün',
85
- monthNames: ['Yanvar','Fevral','Mart','Aprel','May','İyun',
86
- 'İyul','Avqust','Sentyabr','Oktyabr','Noyabr','Dekabr'],
87
- monthNamesShort: ['Yan','Fev','Mar','Apr','May','İyun',
88
- 'İyul','Avq','Sen','Okt','Noy','Dek'],
89
- dayNames: ['Bazar','Bazar ertəsi','Çərşənbə axşamı','Çərşənbə','Cümə axşamı','Cümə','Şənbə'],
90
- dayNamesShort: ['B','Be','Ça','Ç','Ca','C','Ş'],
91
- dayNamesMin: ['B','B','Ç','С','Ç','C','Ş'],
92
- weekHeader: 'Hf',
93
- dateFormat: 'dd.mm.yy',
94
- firstDay: 1,
95
- isRTL: false,
96
- showMonthAfterYear: false,
97
- yearSuffix: ''};
98
- $.datepicker.setDefaults($.datepicker.regional['az']);
99
- });
100
- /* Bulgarian initialisation for the jQuery UI date picker plugin. */
101
- /* Written by Stoyan Kyosev (http://svest.org). */
102
- jQuery(function($){
103
- $.datepicker.regional['bg'] = {
104
- closeText: 'затвори',
105
- prevText: '&#x3c;назад',
106
- nextText: 'напред&#x3e;',
107
- nextBigText: '&#x3e;&#x3e;',
108
- currentText: 'днес',
109
- monthNames: ['Януари','Февруари','Март','Април','Май','Юни',
110
- 'Юли','Август','Септември','Октомври','Ноември','Декември'],
111
- monthNamesShort: ['Яну','Фев','Мар','Апр','Май','Юни',
112
- 'Юли','Авг','Сеп','Окт','Нов','Дек'],
113
- dayNames: ['Неделя','Понеделник','Вторник','Сряда','Четвъртък','Петък','Събота'],
114
- dayNamesShort: ['Нед','Пон','Вто','Сря','Чет','Пет','Съб'],
115
- dayNamesMin: ['Не','По','Вт','Ср','Че','Пе','Съ'],
116
- weekHeader: 'Wk',
117
- dateFormat: 'dd.mm.yy',
118
- firstDay: 1,
119
- isRTL: false,
120
- showMonthAfterYear: false,
121
- yearSuffix: ''};
122
- $.datepicker.setDefaults($.datepicker.regional['bg']);
123
- });
124
-
125
- /* Bosnian i18n for the jQuery UI date picker plugin. */
126
- /* Written by Kenan Konjo. */
127
- jQuery(function($){
128
- $.datepicker.regional['bs'] = {
129
- closeText: 'Zatvori',
130
- prevText: '&#x3c;',
131
- nextText: '&#x3e;',
132
- currentText: 'Danas',
133
- monthNames: ['Januar','Februar','Mart','April','Maj','Juni',
134
- 'Juli','August','Septembar','Oktobar','Novembar','Decembar'],
135
- monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
136
- 'Jul','Aug','Sep','Okt','Nov','Dec'],
137
- dayNames: ['Nedelja','Ponedeljak','Utorak','Srijeda','Četvrtak','Petak','Subota'],
138
- dayNamesShort: ['Ned','Pon','Uto','Sri','Čet','Pet','Sub'],
139
- dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'],
140
- weekHeader: 'Wk',
141
- dateFormat: 'dd.mm.yy',
142
- firstDay: 1,
143
- isRTL: false,
144
- showMonthAfterYear: false,
145
- yearSuffix: ''};
146
- $.datepicker.setDefaults($.datepicker.regional['bs']);
147
- });
148
- /* Inicialització en català per a l'extenció 'calendar' per jQuery. */
149
- /* Writers: (joan.leon@gmail.com). */
150
- jQuery(function($){
151
- $.datepicker.regional['ca'] = {
152
- closeText: 'Tancar',
153
- prevText: '&#x3c;Ant',
154
- nextText: 'Seg&#x3e;',
155
- currentText: 'Avui',
156
- monthNames: ['Gener','Febrer','Mar&ccedil;','Abril','Maig','Juny',
157
- 'Juliol','Agost','Setembre','Octubre','Novembre','Desembre'],
158
- monthNamesShort: ['Gen','Feb','Mar','Abr','Mai','Jun',
159
- 'Jul','Ago','Set','Oct','Nov','Des'],
160
- dayNames: ['Diumenge','Dilluns','Dimarts','Dimecres','Dijous','Divendres','Dissabte'],
161
- dayNamesShort: ['Dug','Dln','Dmt','Dmc','Djs','Dvn','Dsb'],
162
- dayNamesMin: ['Dg','Dl','Dt','Dc','Dj','Dv','Ds'],
163
- weekHeader: 'Sm',
164
- dateFormat: 'dd/mm/yy',
165
- firstDay: 1,
166
- isRTL: false,
167
- showMonthAfterYear: false,
168
- yearSuffix: ''};
169
- $.datepicker.setDefaults($.datepicker.regional['ca']);
170
- });
171
- /* Czech initialisation for the jQuery UI date picker plugin. */
172
- /* Written by Tomas Muller (tomas@tomas-muller.net). */
173
- jQuery(function($){
174
- $.datepicker.regional['cs'] = {
175
- closeText: 'Zavřít',
176
- prevText: '&#x3c;Dříve',
177
- nextText: 'Později&#x3e;',
178
- currentText: 'Nyní',
179
- monthNames: ['leden','únor','březen','duben','květen','červen',
180
- 'červenec','srpen','září','říjen','listopad','prosinec'],
181
- monthNamesShort: ['led','úno','bře','dub','kvě','čer',
182
- 'čvc','srp','zář','říj','lis','pro'],
183
- dayNames: ['neděle', 'pondělí', 'úterý', 'středa', 'čtvrtek', 'pátek', 'sobota'],
184
- dayNamesShort: ['ne', 'po', 'út', 'st', 'čt', 'pá', 'so'],
185
- dayNamesMin: ['ne','po','út','st','čt','pá','so'],
186
- weekHeader: 'Týd',
187
- dateFormat: 'dd.mm.yy',
188
- firstDay: 1,
189
- isRTL: false,
190
- showMonthAfterYear: false,
191
- yearSuffix: ''};
192
- $.datepicker.setDefaults($.datepicker.regional['cs']);
193
- });
194
-
195
- /* Welsh/UK initialisation for the jQuery UI date picker plugin. */
196
- /* Written by William Griffiths. */
197
- jQuery(function($){
198
- $.datepicker.regional['cy-GB'] = {
199
- closeText: 'Done',
200
- prevText: 'Prev',
201
- nextText: 'Next',
202
- currentText: 'Today',
203
- monthNames: ['Ionawr','Chwefror','Mawrth','Ebrill','Mai','Mehefin',
204
- 'Gorffennaf','Awst','Medi','Hydref','Tachwedd','Rhagfyr'],
205
- monthNamesShort: ['Ion', 'Chw', 'Maw', 'Ebr', 'Mai', 'Meh',
206
- 'Gor', 'Aws', 'Med', 'Hyd', 'Tac', 'Rha'],
207
- dayNames: ['Dydd Sul', 'Dydd Llun', 'Dydd Mawrth', 'Dydd Mercher', 'Dydd Iau', 'Dydd Gwener', 'Dydd Sadwrn'],
208
- dayNamesShort: ['Sul', 'Llu', 'Maw', 'Mer', 'Iau', 'Gwe', 'Sad'],
209
- dayNamesMin: ['Su','Ll','Ma','Me','Ia','Gw','Sa'],
210
- weekHeader: 'Wy',
211
- dateFormat: 'dd/mm/yy',
212
- firstDay: 1,
213
- isRTL: false,
214
- showMonthAfterYear: false,
215
- yearSuffix: ''};
216
- $.datepicker.setDefaults($.datepicker.regional['cy-GB']);
217
- });
218
- /* Danish initialisation for the jQuery UI date picker plugin. */
219
- /* Written by Jan Christensen ( deletestuff@gmail.com). */
220
- jQuery(function($){
221
- $.datepicker.regional['da'] = {
222
- closeText: 'Luk',
223
- prevText: '&#x3c;Forrige',
224
- nextText: 'Næste&#x3e;',
225
- currentText: 'Idag',
226
- monthNames: ['Januar','Februar','Marts','April','Maj','Juni',
227
- 'Juli','August','September','Oktober','November','December'],
228
- monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
229
- 'Jul','Aug','Sep','Okt','Nov','Dec'],
230
- dayNames: ['Søndag','Mandag','Tirsdag','Onsdag','Torsdag','Fredag','Lørdag'],
231
- dayNamesShort: ['Søn','Man','Tir','Ons','Tor','Fre','Lør'],
232
- dayNamesMin: ['Sø','Ma','Ti','On','To','Fr','Lø'],
233
- weekHeader: 'Uge',
234
- dateFormat: 'dd-mm-yy',
235
- firstDay: 1,
236
- isRTL: false,
237
- showMonthAfterYear: false,
238
- yearSuffix: ''};
239
- $.datepicker.setDefaults($.datepicker.regional['da']);
240
- });
241
-
242
- /* German initialisation for the jQuery UI date picker plugin. */
243
- /* Written by Milian Wolff (mail@milianw.de). */
244
- jQuery(function($){
245
- $.datepicker.regional['de'] = {
246
- closeText: 'schließen',
247
- prevText: '&#x3c;zurück',
248
- nextText: 'Vor&#x3e;',
249
- currentText: 'heute',
250
- monthNames: ['Januar','Februar','März','April','Mai','Juni',
251
- 'Juli','August','September','Oktober','November','Dezember'],
252
- monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun',
253
- 'Jul','Aug','Sep','Okt','Nov','Dez'],
254
- dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
255
- dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'],
256
- dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'],
257
- weekHeader: 'KW',
258
- dateFormat: 'dd.mm.yy',
259
- firstDay: 1,
260
- isRTL: false,
261
- showMonthAfterYear: false,
262
- yearSuffix: ''};
263
- $.datepicker.setDefaults($.datepicker.regional['de']);
264
- });
265
-
266
- /* Greek (el) initialisation for the jQuery UI date picker plugin. */
267
- /* Written by Alex Cicovic (http://www.alexcicovic.com) */
268
- jQuery(function($){
269
- $.datepicker.regional['el'] = {
270
- closeText: 'Κλείσιμο',
271
- prevText: 'Προηγούμενος',
272
- nextText: 'Επόμενος',
273
- currentText: 'Τρέχων Μήνας',
274
- monthNames: ['Ιανουάριος','Φεβρουάριος','Μάρτιος','Απρίλιος','Μάιος','Ιούνιος',
275
- 'Ιούλιος','Αύγουστος','Σεπτέμβριος','Οκτώβριος','Νοέμβριος','Δεκέμβριος'],
276
- monthNamesShort: ['Ιαν','Φεβ','Μαρ','Απρ','Μαι','Ιουν',
277
- 'Ιουλ','Αυγ','Σεπ','Οκτ','Νοε','Δεκ'],
278
- dayNames: ['Κυριακή','Δευτέρα','Τρίτη','Τετάρτη','Πέμπτη','Παρασκευή','Σάββατο'],
279
- dayNamesShort: ['Κυρ','Δευ','Τρι','Τετ','Πεμ','Παρ','Σαβ'],
280
- dayNamesMin: ['Κυ','Δε','Τρ','Τε','Πε','Πα','Σα'],
281
- weekHeader: 'Εβδ',
282
- dateFormat: 'dd/mm/yy',
283
- firstDay: 1,
284
- isRTL: false,
285
- showMonthAfterYear: false,
286
- yearSuffix: ''};
287
- $.datepicker.setDefaults($.datepicker.regional['el']);
288
- });
289
- /* English/Australia initialisation for the jQuery UI date picker plugin. */
290
- /* Based on the en-GB initialisation. */
291
- jQuery(function($){
292
- $.datepicker.regional['en-AU'] = {
293
- closeText: 'Done',
294
- prevText: 'Prev',
295
- nextText: 'Next',
296
- currentText: 'Today',
297
- monthNames: ['January','February','March','April','May','June',
298
- 'July','August','September','October','November','December'],
299
- monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
300
- 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
301
- dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
302
- dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
303
- dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'],
304
- weekHeader: 'Wk',
305
- dateFormat: 'dd/mm/yy',
306
- firstDay: 1,
307
- isRTL: false,
308
- showMonthAfterYear: false,
309
- yearSuffix: ''};
310
- $.datepicker.setDefaults($.datepicker.regional['en-AU']);
311
- });
312
-
313
- /* English/UK initialisation for the jQuery UI date picker plugin. */
314
- /* Written by Stuart. */
315
- jQuery(function($){
316
- $.datepicker.regional['en-GB'] = {
317
- closeText: 'Done',
318
- prevText: 'Prev',
319
- nextText: 'Next',
320
- currentText: 'Today',
321
- monthNames: ['January','February','March','April','May','June',
322
- 'July','August','September','October','November','December'],
323
- monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
324
- 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
325
- dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
326
- dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
327
- dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'],
328
- weekHeader: 'Wk',
329
- dateFormat: 'dd/mm/yy',
330
- firstDay: 1,
331
- isRTL: false,
332
- showMonthAfterYear: false,
333
- yearSuffix: ''};
334
- $.datepicker.setDefaults($.datepicker.regional['en-GB']);
335
- });
336
-
337
- /* English/New Zealand initialisation for the jQuery UI date picker plugin. */
338
- /* Based on the en-GB initialisation. */
339
- jQuery(function($){
340
- $.datepicker.regional['en-NZ'] = {
341
- closeText: 'Done',
342
- prevText: 'Prev',
343
- nextText: 'Next',
344
- currentText: 'Today',
345
- monthNames: ['January','February','March','April','May','June',
346
- 'July','August','September','October','November','December'],
347
- monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
348
- 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
349
- dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
350
- dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
351
- dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'],
352
- weekHeader: 'Wk',
353
- dateFormat: 'dd/mm/yy',
354
- firstDay: 1,
355
- isRTL: false,
356
- showMonthAfterYear: false,
357
- yearSuffix: ''};
358
- $.datepicker.setDefaults($.datepicker.regional['en-NZ']);
359
- });
360
-
361
- /* Esperanto initialisation for the jQuery UI date picker plugin. */
362
- /* Written by Olivier M. (olivierweb@ifrance.com). */
363
- jQuery(function($){
364
- $.datepicker.regional['eo'] = {
365
- closeText: 'Fermi',
366
- prevText: '&lt;Anta',
367
- nextText: 'Sekv&gt;',
368
- currentText: 'Nuna',
369
- monthNames: ['Januaro','Februaro','Marto','Aprilo','Majo','Junio',
370
- 'Julio','Aŭgusto','Septembro','Oktobro','Novembro','Decembro'],
371
- monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
372
- 'Jul','Aŭg','Sep','Okt','Nov','Dec'],
373
- dayNames: ['Dimanĉo','Lundo','Mardo','Merkredo','Ĵaŭdo','Vendredo','Sabato'],
374
- dayNamesShort: ['Dim','Lun','Mar','Mer','Ĵaŭ','Ven','Sab'],
375
- dayNamesMin: ['Di','Lu','Ma','Me','Ĵa','Ve','Sa'],
376
- weekHeader: 'Sb',
377
- dateFormat: 'dd/mm/yy',
378
- firstDay: 0,
379
- isRTL: false,
380
- showMonthAfterYear: false,
381
- yearSuffix: ''};
382
- $.datepicker.setDefaults($.datepicker.regional['eo']);
383
- });
384
-
385
- /* Inicialización en español para la extensión 'UI date picker' para jQuery. */
386
- /* Traducido por Vester (xvester@gmail.com). */
387
- jQuery(function($){
388
- $.datepicker.regional['es'] = {
389
- closeText: 'Cerrar',
390
- prevText: '&#x3c;Ant',
391
- nextText: 'Sig&#x3e;',
392
- currentText: 'Hoy',
393
- monthNames: ['Enero','Febrero','Marzo','Abril','Mayo','Junio',
394
- 'Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'],
395
- monthNamesShort: ['Ene','Feb','Mar','Abr','May','Jun',
396
- 'Jul','Ago','Sep','Oct','Nov','Dic'],
397
- dayNames: ['Domingo','Lunes','Martes','Mi&eacute;rcoles','Jueves','Viernes','S&aacute;bado'],
398
- dayNamesShort: ['Dom','Lun','Mar','Mi&eacute;','Juv','Vie','S&aacute;b'],
399
- dayNamesMin: ['Do','Lu','Ma','Mi','Ju','Vi','S&aacute;'],
400
- weekHeader: 'Sm',
401
- dateFormat: 'dd/mm/yy',
402
- firstDay: 1,
403
- isRTL: false,
404
- showMonthAfterYear: false,
405
- yearSuffix: ''};
406
- $.datepicker.setDefaults($.datepicker.regional['es']);
407
- });
408
- /* Estonian initialisation for the jQuery UI date picker plugin. */
409
- /* Written by Mart Sõmermaa (mrts.pydev at gmail com). */
410
- jQuery(function($){
411
- $.datepicker.regional['et'] = {
412
- closeText: 'Sulge',
413
- prevText: 'Eelnev',
414
- nextText: 'Järgnev',
415
- currentText: 'Täna',
416
- monthNames: ['Jaanuar','Veebruar','Märts','Aprill','Mai','Juuni',
417
- 'Juuli','August','September','Oktoober','November','Detsember'],
418
- monthNamesShort: ['Jaan', 'Veebr', 'Märts', 'Apr', 'Mai', 'Juuni',
419
- 'Juuli', 'Aug', 'Sept', 'Okt', 'Nov', 'Dets'],
420
- dayNames: ['Pühapäev', 'Esmaspäev', 'Teisipäev', 'Kolmapäev', 'Neljapäev', 'Reede', 'Laupäev'],
421
- dayNamesShort: ['Pühap', 'Esmasp', 'Teisip', 'Kolmap', 'Neljap', 'Reede', 'Laup'],
422
- dayNamesMin: ['P','E','T','K','N','R','L'],
423
- weekHeader: 'näd',
424
- dateFormat: 'dd.mm.yy',
425
- firstDay: 1,
426
- isRTL: false,
427
- showMonthAfterYear: false,
428
- yearSuffix: ''};
429
- $.datepicker.setDefaults($.datepicker.regional['et']);
430
- });
431
- /* Euskarako oinarria 'UI date picker' jquery-ko extentsioarentzat */
432
- /* Karrikas-ek itzulia (karrikas@karrikas.com) */
433
- jQuery(function($){
434
- $.datepicker.regional['eu'] = {
435
- closeText: 'Egina',
436
- prevText: '&#x3c;Aur',
437
- nextText: 'Hur&#x3e;',
438
- currentText: 'Gaur',
439
- monthNames: ['urtarrila','otsaila','martxoa','apirila','maiatza','ekaina',
440
- 'uztaila','abuztua','iraila','urria','azaroa','abendua'],
441
- monthNamesShort: ['urt.','ots.','mar.','api.','mai.','eka.',
442
- 'uzt.','abu.','ira.','urr.','aza.','abe.'],
443
- dayNames: ['igandea','astelehena','asteartea','asteazkena','osteguna','ostirala','larunbata'],
444
- dayNamesShort: ['ig.','al.','ar.','az.','og.','ol.','lr.'],
445
- dayNamesMin: ['ig','al','ar','az','og','ol','lr'],
446
- weekHeader: 'As',
447
- dateFormat: 'yy-mm-dd',
448
- firstDay: 1,
449
- isRTL: false,
450
- showMonthAfterYear: false,
451
- yearSuffix: ''};
452
- $.datepicker.setDefaults($.datepicker.regional['eu']);
453
- });
454
- /* Persian (Farsi) Translation for the jQuery UI date picker plugin. */
455
- /* Javad Mowlanezhad -- jmowla@gmail.com */
456
- /* Jalali calendar should supported soon! (Its implemented but I have to test it) */
457
- jQuery(function($) {
458
- $.datepicker.regional['fa'] = {
459
- closeText: 'بستن',
460
- prevText: '&#x3C;قبلی',
461
- nextText: 'بعدی&#x3E;',
462
- currentText: 'امروز',
463
- monthNames: [
464
- 'فروردين',
465
- 'ارديبهشت',
466
- 'خرداد',
467
- 'تير',
468
- 'مرداد',
469
- 'شهريور',
470
- 'مهر',
471
- 'آبان',
472
- 'آذر',
473
- 'دی',
474
- 'بهمن',
475
- 'اسفند'
476
- ],
477
- monthNamesShort: ['1','2','3','4','5','6','7','8','9','10','11','12'],
478
- dayNames: [
479
- 'يکشنبه',
480
- 'دوشنبه',
481
- 'سه‌شنبه',
482
- 'چهارشنبه',
483
- 'پنجشنبه',
484
- 'جمعه',
485
- 'شنبه'
486
- ],
487
- dayNamesShort: [
488
- 'ی',
489
- 'د',
490
- 'س',
491
- 'چ',
492
- 'پ',
493
- 'ج',
494
- 'ش'
495
- ],
496
- dayNamesMin: [
497
- 'ی',
498
- 'د',
499
- 'س',
500
- 'چ',
501
- 'پ',
502
- 'ج',
503
- 'ش'
504
- ],
505
- weekHeader: 'هف',
506
- dateFormat: 'yy/mm/dd',
507
- firstDay: 6,
508
- isRTL: true,
509
- showMonthAfterYear: false,
510
- yearSuffix: ''};
511
- $.datepicker.setDefaults($.datepicker.regional['fa']);
512
- });
513
- /* Finnish initialisation for the jQuery UI date picker plugin. */
514
- /* Written by Harri Kilpiö (harrikilpio@gmail.com). */
515
- jQuery(function($){
516
- $.datepicker.regional['fi'] = {
517
- closeText: 'Sulje',
518
- prevText: '&#xAB;Edellinen',
519
- nextText: 'Seuraava&#xBB;',
520
- currentText: 'T&#xE4;n&#xE4;&#xE4;n',
521
- monthNames: ['Tammikuu','Helmikuu','Maaliskuu','Huhtikuu','Toukokuu','Kes&#xE4;kuu',
522
- 'Hein&#xE4;kuu','Elokuu','Syyskuu','Lokakuu','Marraskuu','Joulukuu'],
523
- monthNamesShort: ['Tammi','Helmi','Maalis','Huhti','Touko','Kes&#xE4;',
524
- 'Hein&#xE4;','Elo','Syys','Loka','Marras','Joulu'],
525
- dayNamesShort: ['Su','Ma','Ti','Ke','To','Pe','La'],
526
- dayNames: ['Sunnuntai','Maanantai','Tiistai','Keskiviikko','Torstai','Perjantai','Lauantai'],
527
- dayNamesMin: ['Su','Ma','Ti','Ke','To','Pe','La'],
528
- weekHeader: 'Vk',
529
- dateFormat: 'dd.mm.yy',
530
- firstDay: 1,
531
- isRTL: false,
532
- showMonthAfterYear: false,
533
- yearSuffix: ''};
534
- $.datepicker.setDefaults($.datepicker.regional['fi']);
535
- });
536
-
537
- /* Faroese initialisation for the jQuery UI date picker plugin */
538
- /* Written by Sverri Mohr Olsen, sverrimo@gmail.com */
539
- jQuery(function($){
540
- $.datepicker.regional['fo'] = {
541
- closeText: 'Lat aftur',
542
- prevText: '&#x3c;Fyrra',
543
- nextText: 'Næsta&#x3e;',
544
- currentText: 'Í dag',
545
- monthNames: ['Januar','Februar','Mars','Apríl','Mei','Juni',
546
- 'Juli','August','September','Oktober','November','Desember'],
547
- monthNamesShort: ['Jan','Feb','Mar','Apr','Mei','Jun',
548
- 'Jul','Aug','Sep','Okt','Nov','Des'],
549
- dayNames: ['Sunnudagur','Mánadagur','Týsdagur','Mikudagur','Hósdagur','Fríggjadagur','Leyardagur'],
550
- dayNamesShort: ['Sun','Mán','Týs','Mik','Hós','Frí','Ley'],
551
- dayNamesMin: ['Su','Má','Tý','Mi','Hó','Fr','Le'],
552
- weekHeader: 'Vk',
553
- dateFormat: 'dd-mm-yy',
554
- firstDay: 0,
555
- isRTL: false,
556
- showMonthAfterYear: false,
557
- yearSuffix: ''};
558
- $.datepicker.setDefaults($.datepicker.regional['fo']);
559
- });
560
-
561
- /* Swiss-French initialisation for the jQuery UI date picker plugin. */
562
- /* Written Martin Voelkle (martin.voelkle@e-tc.ch). */
563
- jQuery(function($){
564
- $.datepicker.regional['fr-CH'] = {
565
- closeText: 'Fermer',
566
- prevText: '&#x3c;Préc',
567
- nextText: 'Suiv&#x3e;',
568
- currentText: 'Courant',
569
- monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin',
570
- 'Juillet','Août','Septembre','Octobre','Novembre','Décembre'],
571
- monthNamesShort: ['Jan','Fév','Mar','Avr','Mai','Jun',
572
- 'Jul','Aoû','Sep','Oct','Nov','Déc'],
573
- dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'],
574
- dayNamesShort: ['Dim','Lun','Mar','Mer','Jeu','Ven','Sam'],
575
- dayNamesMin: ['Di','Lu','Ma','Me','Je','Ve','Sa'],
576
- weekHeader: 'Sm',
577
- dateFormat: 'dd.mm.yy',
578
- firstDay: 1,
579
- isRTL: false,
580
- showMonthAfterYear: false,
581
- yearSuffix: ''};
582
- $.datepicker.setDefaults($.datepicker.regional['fr-CH']);
583
- });
584
- /* French initialisation for the jQuery UI date picker plugin. */
585
- /* Written by Keith Wood (kbwood{at}iinet.com.au),
586
- Stéphane Nahmani (sholby@sholby.net),
587
- Stéphane Raimbault <stephane.raimbault@gmail.com> */
588
- jQuery(function($){
589
- $.datepicker.regional['fr'] = {
590
- closeText: 'Fermer',
591
- prevText: 'Précédent',
592
- nextText: 'Suivant',
593
- currentText: 'Aujourd\'hui',
594
- monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin',
595
- 'Juillet','Août','Septembre','Octobre','Novembre','Décembre'],
596
- monthNamesShort: ['Janv.','Févr.','Mars','Avril','Mai','Juin',
597
- 'Juil.','Août','Sept.','Oct.','Nov.','Déc.'],
598
- dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'],
599
- dayNamesShort: ['Dim.','Lun.','Mar.','Mer.','Jeu.','Ven.','Sam.'],
600
- dayNamesMin: ['D','L','M','M','J','V','S'],
601
- weekHeader: 'Sem.',
602
- dateFormat: 'dd/mm/yy',
603
- firstDay: 1,
604
- isRTL: false,
605
- showMonthAfterYear: false,
606
- yearSuffix: ''};
607
- $.datepicker.setDefaults($.datepicker.regional['fr']);
608
- });
609
-
610
- /* Galician localization for 'UI date picker' jQuery extension. */
611
- /* Translated by Jorge Barreiro <yortx.barry@gmail.com>. */
612
- jQuery(function($){
613
- $.datepicker.regional['gl'] = {
614
- closeText: 'Pechar',
615
- prevText: '&#x3c;Ant',
616
- nextText: 'Seg&#x3e;',
617
- currentText: 'Hoxe',
618
- monthNames: ['Xaneiro','Febreiro','Marzo','Abril','Maio','Xuño',
619
- 'Xullo','Agosto','Setembro','Outubro','Novembro','Decembro'],
620
- monthNamesShort: ['Xan','Feb','Mar','Abr','Mai','Xuñ',
621
- 'Xul','Ago','Set','Out','Nov','Dec'],
622
- dayNames: ['Domingo','Luns','Martes','M&eacute;rcores','Xoves','Venres','S&aacute;bado'],
623
- dayNamesShort: ['Dom','Lun','Mar','M&eacute;r','Xov','Ven','S&aacute;b'],
624
- dayNamesMin: ['Do','Lu','Ma','M&eacute;','Xo','Ve','S&aacute;'],
625
- weekHeader: 'Sm',
626
- dateFormat: 'dd/mm/yy',
627
- firstDay: 1,
628
- isRTL: false,
629
- showMonthAfterYear: false,
630
- yearSuffix: ''};
631
- $.datepicker.setDefaults($.datepicker.regional['gl']);
632
- });
633
- /* Hebrew initialisation for the UI Datepicker extension. */
634
- /* Written by Amir Hardon (ahardon at gmail dot com). */
635
- jQuery(function($){
636
- $.datepicker.regional['he'] = {
637
- closeText: 'סגור',
638
- prevText: '&#x3c;הקודם',
639
- nextText: 'הבא&#x3e;',
640
- currentText: 'היום',
641
- monthNames: ['ינואר','פברואר','מרץ','אפריל','מאי','יוני',
642
- 'יולי','אוגוסט','ספטמבר','אוקטובר','נובמבר','דצמבר'],
643
- monthNamesShort: ['ינו','פבר','מרץ','אפר','מאי','יוני',
644
- 'יולי','אוג','ספט','אוק','נוב','דצמ'],
645
- dayNames: ['ראשון','שני','שלישי','רביעי','חמישי','שישי','שבת'],
646
- dayNamesShort: ['א\'','ב\'','ג\'','ד\'','ה\'','ו\'','שבת'],
647
- dayNamesMin: ['א\'','ב\'','ג\'','ד\'','ה\'','ו\'','שבת'],
648
- weekHeader: 'Wk',
649
- dateFormat: 'dd/mm/yy',
650
- firstDay: 0,
651
- isRTL: true,
652
- showMonthAfterYear: false,
653
- yearSuffix: ''};
654
- $.datepicker.setDefaults($.datepicker.regional['he']);
655
- });
656
-
657
- /* Hindi initialisation for the jQuery UI date picker plugin. */
658
- /* Written by Michael Dawart. */
659
- jQuery(function($){
660
- $.datepicker.regional['hi'] = {
661
- closeText: 'बंद',
662
- prevText: 'पिछला',
663
- nextText: 'अगला',
664
- currentText: 'आज',
665
- monthNames: ['जनवरी ','फरवरी','मार्च','अप्रेल','मई','जून',
666
- 'जूलाई','अगस्त ','सितम्बर','अक्टूबर','नवम्बर','दिसम्बर'],
667
- monthNamesShort: ['जन', 'फर', 'मार्च', 'अप्रेल', 'मई', 'जून',
668
- 'जूलाई', 'अग', 'सित', 'अक्ट', 'नव', 'दि'],
669
- dayNames: ['रविवार', 'सोमवार', 'मंगलवार', 'बुधवार', 'गुरुवार', 'शुक्रवार', 'शनिवार'],
670
- dayNamesShort: ['रवि', 'सोम', 'मंगल', 'बुध', 'गुरु', 'शुक्र', 'शनि'],
671
- dayNamesMin: ['रवि', 'सोम', 'मंगल', 'बुध', 'गुरु', 'शुक्र', 'शनि'],
672
- weekHeader: 'हफ्ता',
673
- dateFormat: 'dd/mm/yy',
674
- firstDay: 1,
675
- isRTL: false,
676
- showMonthAfterYear: false,
677
- yearSuffix: ''};
678
- $.datepicker.setDefaults($.datepicker.regional['hi']);
679
- });
680
-
681
- /* Croatian i18n for the jQuery UI date picker plugin. */
682
- /* Written by Vjekoslav Nesek. */
683
- jQuery(function($){
684
- $.datepicker.regional['hr'] = {
685
- closeText: 'Zatvori',
686
- prevText: '&#x3c;',
687
- nextText: '&#x3e;',
688
- currentText: 'Danas',
689
- monthNames: ['Siječanj','Veljača','Ožujak','Travanj','Svibanj','Lipanj',
690
- 'Srpanj','Kolovoz','Rujan','Listopad','Studeni','Prosinac'],
691
- monthNamesShort: ['Sij','Velj','Ožu','Tra','Svi','Lip',
692
- 'Srp','Kol','Ruj','Lis','Stu','Pro'],
693
- dayNames: ['Nedjelja','Ponedjeljak','Utorak','Srijeda','Četvrtak','Petak','Subota'],
694
- dayNamesShort: ['Ned','Pon','Uto','Sri','Čet','Pet','Sub'],
695
- dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'],
696
- weekHeader: 'Tje',
697
- dateFormat: 'dd.mm.yy.',
698
- firstDay: 1,
699
- isRTL: false,
700
- showMonthAfterYear: false,
701
- yearSuffix: ''};
702
- $.datepicker.setDefaults($.datepicker.regional['hr']);
703
- });
704
- /* Hungarian initialisation for the jQuery UI date picker plugin. */
705
- /* Written by Istvan Karaszi (jquery@spam.raszi.hu). */
706
- jQuery(function($){
707
- $.datepicker.regional['hu'] = {
708
- closeText: 'bezár',
709
- prevText: 'vissza',
710
- nextText: 'előre',
711
- currentText: 'ma',
712
- monthNames: ['Január', 'Február', 'Március', 'Április', 'Május', 'Június',
713
- 'Július', 'Augusztus', 'Szeptember', 'Október', 'November', 'December'],
714
- monthNamesShort: ['Jan', 'Feb', 'Már', 'Ápr', 'Máj', 'Jún',
715
- 'Júl', 'Aug', 'Szep', 'Okt', 'Nov', 'Dec'],
716
- dayNames: ['Vasárnap', 'Hétfő', 'Kedd', 'Szerda', 'Csütörtök', 'Péntek', 'Szombat'],
717
- dayNamesShort: ['Vas', 'Hét', 'Ked', 'Sze', 'Csü', 'Pén', 'Szo'],
718
- dayNamesMin: ['V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo'],
719
- weekHeader: 'Hét',
720
- dateFormat: 'yy.mm.dd.',
721
- firstDay: 1,
722
- isRTL: false,
723
- showMonthAfterYear: true,
724
- yearSuffix: ''};
725
- $.datepicker.setDefaults($.datepicker.regional['hu']);
726
- });
727
-
728
- /* Armenian(UTF-8) initialisation for the jQuery UI date picker plugin. */
729
- /* Written by Levon Zakaryan (levon.zakaryan@gmail.com)*/
730
- jQuery(function($){
731
- $.datepicker.regional['hy'] = {
732
- closeText: 'Փակել',
733
- prevText: '&#x3c;Նախ.',
734
- nextText: 'Հաջ.&#x3e;',
735
- currentText: 'Այսօր',
736
- monthNames: ['Հունվար','Փետրվար','Մարտ','Ապրիլ','Մայիս','Հունիս',
737
- 'Հուլիս','Օգոստոս','Սեպտեմբեր','Հոկտեմբեր','Նոյեմբեր','Դեկտեմբեր'],
738
- monthNamesShort: ['Հունվ','Փետր','Մարտ','Ապր','Մայիս','Հունիս',
739
- 'Հուլ','Օգս','Սեպ','Հոկ','Նոյ','Դեկ'],
740
- dayNames: ['կիրակի','եկուշաբթի','երեքշաբթի','չորեքշաբթի','հինգշաբթի','ուրբաթ','շաբաթ'],
741
- dayNamesShort: ['կիր','երկ','երք','չրք','հնգ','ուրբ','շբթ'],
742
- dayNamesMin: ['կիր','երկ','երք','չրք','հնգ','ուրբ','շբթ'],
743
- weekHeader: 'ՇԲՏ',
744
- dateFormat: 'dd.mm.yy',
745
- firstDay: 1,
746
- isRTL: false,
747
- showMonthAfterYear: false,
748
- yearSuffix: ''};
749
- $.datepicker.setDefaults($.datepicker.regional['hy']);
750
- });
751
- /* Indonesian initialisation for the jQuery UI date picker plugin. */
752
- /* Written by Deden Fathurahman (dedenf@gmail.com). */
753
- jQuery(function($){
754
- $.datepicker.regional['id'] = {
755
- closeText: 'Tutup',
756
- prevText: '&#x3c;mundur',
757
- nextText: 'maju&#x3e;',
758
- currentText: 'hari ini',
759
- monthNames: ['Januari','Februari','Maret','April','Mei','Juni',
760
- 'Juli','Agustus','September','Oktober','Nopember','Desember'],
761
- monthNamesShort: ['Jan','Feb','Mar','Apr','Mei','Jun',
762
- 'Jul','Agus','Sep','Okt','Nop','Des'],
763
- dayNames: ['Minggu','Senin','Selasa','Rabu','Kamis','Jumat','Sabtu'],
764
- dayNamesShort: ['Min','Sen','Sel','Rab','kam','Jum','Sab'],
765
- dayNamesMin: ['Mg','Sn','Sl','Rb','Km','jm','Sb'],
766
- weekHeader: 'Mg',
767
- dateFormat: 'dd/mm/yy',
768
- firstDay: 0,
769
- isRTL: false,
770
- showMonthAfterYear: false,
771
- yearSuffix: ''};
772
- $.datepicker.setDefaults($.datepicker.regional['id']);
773
- });
774
- /* Icelandic initialisation for the jQuery UI date picker plugin. */
775
- /* Written by Haukur H. Thorsson (haukur@eskill.is). */
776
- jQuery(function($){
777
- $.datepicker.regional['is'] = {
778
- closeText: 'Loka',
779
- prevText: '&#x3c; Fyrri',
780
- nextText: 'N&aelig;sti &#x3e;',
781
- currentText: '&Iacute; dag',
782
- monthNames: ['Jan&uacute;ar','Febr&uacute;ar','Mars','Apr&iacute;l','Ma&iacute','J&uacute;n&iacute;',
783
- 'J&uacute;l&iacute;','&Aacute;g&uacute;st','September','Okt&oacute;ber','N&oacute;vember','Desember'],
784
- monthNamesShort: ['Jan','Feb','Mar','Apr','Ma&iacute;','J&uacute;n',
785
- 'J&uacute;l','&Aacute;g&uacute;','Sep','Okt','N&oacute;v','Des'],
786
- dayNames: ['Sunnudagur','M&aacute;nudagur','&THORN;ri&eth;judagur','Mi&eth;vikudagur','Fimmtudagur','F&ouml;studagur','Laugardagur'],
787
- dayNamesShort: ['Sun','M&aacute;n','&THORN;ri','Mi&eth;','Fim','F&ouml;s','Lau'],
788
- dayNamesMin: ['Su','M&aacute;','&THORN;r','Mi','Fi','F&ouml;','La'],
789
- weekHeader: 'Vika',
790
- dateFormat: 'dd/mm/yy',
791
- firstDay: 0,
792
- isRTL: false,
793
- showMonthAfterYear: false,
794
- yearSuffix: ''};
795
- $.datepicker.setDefaults($.datepicker.regional['is']);
796
- });
797
- /* Italian initialisation for the jQuery UI date picker plugin. */
798
- /* Written by Antonello Pasella (antonello.pasella@gmail.com). */
799
- jQuery(function($){
800
- $.datepicker.regional['it'] = {
801
- closeText: 'Chiudi',
802
- prevText: '&#x3c;Prec',
803
- nextText: 'Succ&#x3e;',
804
- currentText: 'Oggi',
805
- monthNames: ['Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno',
806
- 'Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'],
807
- monthNamesShort: ['Gen','Feb','Mar','Apr','Mag','Giu',
808
- 'Lug','Ago','Set','Ott','Nov','Dic'],
809
- dayNames: ['Domenica','Luned&#236','Marted&#236','Mercoled&#236','Gioved&#236','Venerd&#236','Sabato'],
810
- dayNamesShort: ['Dom','Lun','Mar','Mer','Gio','Ven','Sab'],
811
- dayNamesMin: ['Do','Lu','Ma','Me','Gi','Ve','Sa'],
812
- weekHeader: 'Sm',
813
- dateFormat: 'dd/mm/yy',
814
- firstDay: 1,
815
- isRTL: false,
816
- showMonthAfterYear: false,
817
- yearSuffix: ''};
818
- $.datepicker.setDefaults($.datepicker.regional['it']);
819
- });
820
-
821
- /* Japanese initialisation for the jQuery UI date picker plugin. */
822
- /* Written by Kentaro SATO (kentaro@ranvis.com). */
823
- jQuery(function($){
824
- $.datepicker.regional['ja'] = {
825
- closeText: '閉じる',
826
- prevText: '&#x3c;前',
827
- nextText: '次&#x3e;',
828
- currentText: '今日',
829
- monthNames: ['1月','2月','3月','4月','5月','6月',
830
- '7月','8月','9月','10月','11月','12月'],
831
- monthNamesShort: ['1月','2月','3月','4月','5月','6月',
832
- '7月','8月','9月','10月','11月','12月'],
833
- dayNames: ['日曜日','月曜日','火曜日','水曜日','木曜日','金曜日','土曜日'],
834
- dayNamesShort: ['日','月','火','水','木','金','土'],
835
- dayNamesMin: ['日','月','火','水','木','金','土'],
836
- weekHeader: '週',
837
- dateFormat: 'yy/mm/dd',
838
- firstDay: 0,
839
- isRTL: false,
840
- showMonthAfterYear: true,
841
- yearSuffix: '年'};
842
- $.datepicker.setDefaults($.datepicker.regional['ja']);
843
- });
844
- /* Georgian (UTF-8) initialisation for the jQuery UI date picker plugin. */
845
- /* Written by Lado Lomidze (lado.lomidze@gmail.com). */
846
- jQuery(function($){
847
- $.datepicker.regional['ka'] = {
848
- closeText: 'დახურვა',
849
- prevText: '&#x3c; წინა',
850
- nextText: 'შემდეგი &#x3e;',
851
- currentText: 'დღეს',
852
- monthNames: ['იანვარი','თებერვალი','მარტი','აპრილი','მაისი','ივნისი', 'ივლისი','აგვისტო','სექტემბერი','ოქტომბერი','ნოემბერი','დეკემბერი'],
853
- monthNamesShort: ['იან','თებ','მარ','აპრ','მაი','ივნ', 'ივლ','აგვ','სექ','ოქტ','ნოე','დეკ'],
854
- dayNames: ['კვირა','ორშაბათი','სამშაბათი','ოთხშაბათი','ხუთშაბათი','პარასკევი','შაბათი'],
855
- dayNamesShort: ['კვ','ორშ','სამ','ოთხ','ხუთ','პარ','შაბ'],
856
- dayNamesMin: ['კვ','ორშ','სამ','ოთხ','ხუთ','პარ','შაბ'],
857
- weekHeader: 'კვირა',
858
- dateFormat: 'dd-mm-yy',
859
- firstDay: 1,
860
- isRTL: false,
861
- showMonthAfterYear: false,
862
- yearSuffix: ''};
863
- $.datepicker.setDefaults($.datepicker.regional['ka']);
864
- });
865
-
866
- /* Kazakh (UTF-8) initialisation for the jQuery UI date picker plugin. */
867
- /* Written by Dmitriy Karasyov (dmitriy.karasyov@gmail.com). */
868
- jQuery(function($){
869
- $.datepicker.regional['kk'] = {
870
- closeText: 'Жабу',
871
- prevText: '&#x3c;Алдыңғы',
872
- nextText: 'Келесі&#x3e;',
873
- currentText: 'Бүгін',
874
- monthNames: ['Қаңтар','Ақпан','Наурыз','Сәуір','Мамыр','Маусым',
875
- 'Шілде','Тамыз','Қыркүйек','Қазан','Қараша','Желтоқсан'],
876
- monthNamesShort: ['Қаң','Ақп','Нау','Сәу','Мам','Мау',
877
- 'Шіл','Там','Қыр','Қаз','Қар','Жел'],
878
- dayNames: ['Жексенбі','Дүйсенбі','Сейсенбі','Сәрсенбі','Бейсенбі','Жұма','Сенбі'],
879
- dayNamesShort: ['жкс','дсн','ссн','срс','бсн','жма','снб'],
880
- dayNamesMin: ['Жк','Дс','Сс','Ср','Бс','Жм','Сн'],
881
- weekHeader: 'Не',
882
- dateFormat: 'dd.mm.yy',
883
- firstDay: 1,
884
- isRTL: false,
885
- showMonthAfterYear: false,
886
- yearSuffix: ''};
887
- $.datepicker.setDefaults($.datepicker.regional['kk']);
888
- });
889
-
890
- /* Khmer initialisation for the jQuery calendar extension. */
891
- /* Written by Chandara Om (chandara.teacher@gmail.com). */
892
- jQuery(function($){
893
- $.datepicker.regional['km'] = {
894
- closeText: 'ធ្វើ​រួច',
895
- prevText: 'មុន',
896
- nextText: 'បន្ទាប់',
897
- currentText: 'ថ្ងៃ​នេះ',
898
- monthNames: ['មករា','កុម្ភៈ','មីនា','មេសា','ឧសភា','មិថុនា',
899
- 'កក្កដា','សីហា','កញ្ញា','តុលា','វិច្ឆិកា','ធ្នូ'],
900
- monthNamesShort: ['មករា','កុម្ភៈ','មីនា','មេសា','ឧសភា','មិថុនា',
901
- 'កក្កដា','សីហា','កញ្ញា','តុលា','វិច្ឆិកា','ធ្នូ'],
902
- dayNames: ['អាទិត្យ', 'ចន្ទ', 'អង្គារ', 'ពុធ', 'ព្រហស្បតិ៍', 'សុក្រ', 'សៅរ៍'],
903
- dayNamesShort: ['អា', 'ច', 'អ', 'ពុ', 'ព្រហ', 'សុ', 'សៅ'],
904
- dayNamesMin: ['អា', 'ច', 'អ', 'ពុ', 'ព្រហ', 'សុ', 'សៅ'],
905
- weekHeader: 'សប្ដាហ៍',
906
- dateFormat: 'dd-mm-yy',
907
- firstDay: 1,
908
- isRTL: false,
909
- showMonthAfterYear: false,
910
- yearSuffix: ''};
911
- $.datepicker.setDefaults($.datepicker.regional['km']);
912
- });
913
-
914
- /* Korean initialisation for the jQuery calendar extension. */
915
- /* Written by DaeKwon Kang (ncrash.dk@gmail.com), Edited by Genie. */
916
- jQuery(function($){
917
- $.datepicker.regional['ko'] = {
918
- closeText: '닫기',
919
- prevText: '이전달',
920
- nextText: '다음달',
921
- currentText: '오늘',
922
- monthNames: ['1월','2월','3월','4월','5월','6월',
923
- '7월','8월','9월','10월','11월','12월'],
924
- monthNamesShort: ['1월','2월','3월','4월','5월','6월',
925
- '7월','8월','9월','10월','11월','12월'],
926
- dayNames: ['일요일','월요일','화요일','수요일','목요일','금요일','토요일'],
927
- dayNamesShort: ['일','월','화','수','목','금','토'],
928
- dayNamesMin: ['일','월','화','수','목','금','토'],
929
- weekHeader: 'Wk',
930
- dateFormat: 'yy-mm-dd',
931
- firstDay: 0,
932
- isRTL: false,
933
- showMonthAfterYear: true,
934
- yearSuffix: '년'};
935
- $.datepicker.setDefaults($.datepicker.regional['ko']);
936
- });
937
- /* Luxembourgish initialisation for the jQuery UI date picker plugin. */
938
- /* Written by Michel Weimerskirch <michel@weimerskirch.net> */
939
- jQuery(function($){
940
- $.datepicker.regional['lb'] = {
941
- closeText: 'Fäerdeg',
942
- prevText: 'Zréck',
943
- nextText: 'Weider',
944
- currentText: 'Haut',
945
- monthNames: ['Januar','Februar','Mäerz','Abrëll','Mee','Juni',
946
- 'Juli','August','September','Oktober','November','Dezember'],
947
- monthNamesShort: ['Jan', 'Feb', 'Mäe', 'Abr', 'Mee', 'Jun',
948
- 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'],
949
- dayNames: ['Sonndeg', 'Méindeg', 'Dënschdeg', 'Mëttwoch', 'Donneschdeg', 'Freideg', 'Samschdeg'],
950
- dayNamesShort: ['Son', 'Méi', 'Dën', 'Mët', 'Don', 'Fre', 'Sam'],
951
- dayNamesMin: ['So','Mé','Dë','Më','Do','Fr','Sa'],
952
- weekHeader: 'W',
953
- dateFormat: 'dd.mm.yy',
954
- firstDay: 1,
955
- isRTL: false,
956
- showMonthAfterYear: false,
957
- yearSuffix: ''};
958
- $.datepicker.setDefaults($.datepicker.regional['lb']);
959
- });
960
-
961
- /* Lithuanian (UTF-8) initialisation for the jQuery UI date picker plugin. */
962
- /* @author Arturas Paleicikas <arturas@avalon.lt> */
963
- jQuery(function($){
964
- $.datepicker.regional['lt'] = {
965
- closeText: 'Uždaryti',
966
- prevText: '&#x3c;Atgal',
967
- nextText: 'Pirmyn&#x3e;',
968
- currentText: 'Šiandien',
969
- monthNames: ['Sausis','Vasaris','Kovas','Balandis','Gegužė','Birželis',
970
- 'Liepa','Rugpjūtis','Rugsėjis','Spalis','Lapkritis','Gruodis'],
971
- monthNamesShort: ['Sau','Vas','Kov','Bal','Geg','Bir',
972
- 'Lie','Rugp','Rugs','Spa','Lap','Gru'],
973
- dayNames: ['sekmadienis','pirmadienis','antradienis','trečiadienis','ketvirtadienis','penktadienis','šeštadienis'],
974
- dayNamesShort: ['sek','pir','ant','tre','ket','pen','šeš'],
975
- dayNamesMin: ['Se','Pr','An','Tr','Ke','Pe','Še'],
976
- weekHeader: 'Wk',
977
- dateFormat: 'yy-mm-dd',
978
- firstDay: 1,
979
- isRTL: false,
980
- showMonthAfterYear: false,
981
- yearSuffix: ''};
982
- $.datepicker.setDefaults($.datepicker.regional['lt']);
983
- });
984
- /* Latvian (UTF-8) initialisation for the jQuery UI date picker plugin. */
985
- /* @author Arturas Paleicikas <arturas.paleicikas@metasite.net> */
986
- jQuery(function($){
987
- $.datepicker.regional['lv'] = {
988
- closeText: 'Aizvērt',
989
- prevText: 'Iepr',
990
- nextText: 'Nāka',
991
- currentText: 'Šodien',
992
- monthNames: ['Janvāris','Februāris','Marts','Aprīlis','Maijs','Jūnijs',
993
- 'Jūlijs','Augusts','Septembris','Oktobris','Novembris','Decembris'],
994
- monthNamesShort: ['Jan','Feb','Mar','Apr','Mai','Jūn',
995
- 'Jūl','Aug','Sep','Okt','Nov','Dec'],
996
- dayNames: ['svētdiena','pirmdiena','otrdiena','trešdiena','ceturtdiena','piektdiena','sestdiena'],
997
- dayNamesShort: ['svt','prm','otr','tre','ctr','pkt','sst'],
998
- dayNamesMin: ['Sv','Pr','Ot','Tr','Ct','Pk','Ss'],
999
- weekHeader: 'Nav',
1000
- dateFormat: 'dd-mm-yy',
1001
- firstDay: 1,
1002
- isRTL: false,
1003
- showMonthAfterYear: false,
1004
- yearSuffix: ''};
1005
- $.datepicker.setDefaults($.datepicker.regional['lv']);
1006
- });
1007
- /* Macedonian i18n for the jQuery UI date picker plugin. */
1008
- /* Written by Stojce Slavkovski. */
1009
- jQuery(function($){
1010
- $.datepicker.regional['mk'] = {
1011
- closeText: 'Затвори',
1012
- prevText: '&#x3C;',
1013
- nextText: '&#x3E;',
1014
- currentText: 'Денес',
1015
- monthNames: ['Јануари','Февруари','Март','Април','Мај','Јуни',
1016
- 'Јули','Август','Септември','Октомври','Ноември','Декември'],
1017
- monthNamesShort: ['Јан','Фев','Мар','Апр','Мај','Јун',
1018
- 'Јул','Авг','Сеп','Окт','Ное','Дек'],
1019
- dayNames: ['Недела','Понеделник','Вторник','Среда','Четврток','Петок','Сабота'],
1020
- dayNamesShort: ['Нед','Пон','Вто','Сре','Чет','Пет','Саб'],
1021
- dayNamesMin: ['Не','По','Вт','Ср','Че','Пе','Са'],
1022
- weekHeader: 'Сед',
1023
- dateFormat: 'dd.mm.yy',
1024
- firstDay: 1,
1025
- isRTL: false,
1026
- showMonthAfterYear: false,
1027
- yearSuffix: ''};
1028
- $.datepicker.setDefaults($.datepicker.regional['mk']);
1029
- });
1030
-
1031
- /* Malayalam (UTF-8) initialisation for the jQuery UI date picker plugin. */
1032
- /* Written by Saji Nediyanchath (saji89@gmail.com). */
1033
- jQuery(function($){
1034
- $.datepicker.regional['ml'] = {
1035
- closeText: 'ശരി',
1036
- prevText: 'മുന്നത്തെ',
1037
- nextText: 'അടുത്തത് ',
1038
- currentText: 'ഇന്ന്',
1039
- monthNames: ['ജനുവരി','ഫെബ്രുവരി','മാര്‍ച്ച്','ഏപ്രില്‍','മേയ്','ജൂണ്‍',
1040
- 'ജൂലൈ','ആഗസ്റ്റ്','സെപ്റ്റംബര്‍','ഒക്ടോബര്‍','നവംബര്‍','ഡിസംബര്‍'],
1041
- monthNamesShort: ['ജനു', 'ഫെബ്', 'മാര്‍', 'ഏപ്രി', 'മേയ്', 'ജൂണ്‍',
1042
- 'ജൂലാ', 'ആഗ', 'സെപ്', 'ഒക്ടോ', 'നവം', 'ഡിസ'],
1043
- dayNames: ['ഞായര്‍', 'തിങ്കള്‍', 'ചൊവ്വ', 'ബുധന്‍', 'വ്യാഴം', 'വെള്ളി', 'ശനി'],
1044
- dayNamesShort: ['ഞായ', 'തിങ്ക', 'ചൊവ്വ', 'ബുധ', 'വ്യാഴം', 'വെള്ളി', 'ശനി'],
1045
- dayNamesMin: ['ഞാ','തി','ചൊ','ബു','വ്യാ','വെ','ശ'],
1046
- weekHeader: 'ആ',
1047
- dateFormat: 'dd/mm/yy',
1048
- firstDay: 1,
1049
- isRTL: false,
1050
- showMonthAfterYear: false,
1051
- yearSuffix: ''};
1052
- $.datepicker.setDefaults($.datepicker.regional['ml']);
1053
- });
1054
-
1055
- /* Malaysian initialisation for the jQuery UI date picker plugin. */
1056
- /* Written by Mohd Nawawi Mohamad Jamili (nawawi@ronggeng.net). */
1057
- jQuery(function($){
1058
- $.datepicker.regional['ms'] = {
1059
- closeText: 'Tutup',
1060
- prevText: '&#x3c;Sebelum',
1061
- nextText: 'Selepas&#x3e;',
1062
- currentText: 'hari ini',
1063
- monthNames: ['Januari','Februari','Mac','April','Mei','Jun',
1064
- 'Julai','Ogos','September','Oktober','November','Disember'],
1065
- monthNamesShort: ['Jan','Feb','Mac','Apr','Mei','Jun',
1066
- 'Jul','Ogo','Sep','Okt','Nov','Dis'],
1067
- dayNames: ['Ahad','Isnin','Selasa','Rabu','Khamis','Jumaat','Sabtu'],
1068
- dayNamesShort: ['Aha','Isn','Sel','Rab','kha','Jum','Sab'],
1069
- dayNamesMin: ['Ah','Is','Se','Ra','Kh','Ju','Sa'],
1070
- weekHeader: 'Mg',
1071
- dateFormat: 'dd/mm/yy',
1072
- firstDay: 0,
1073
- isRTL: false,
1074
- showMonthAfterYear: false,
1075
- yearSuffix: ''};
1076
- $.datepicker.setDefaults($.datepicker.regional['ms']);
1077
- });
1078
- /* Dutch (Belgium) initialisation for the jQuery UI date picker plugin. */
1079
- /* David De Sloovere @DavidDeSloovere */
1080
- jQuery(function($){
1081
- $.datepicker.regional['nl-BE'] = {
1082
- closeText: 'Sluiten',
1083
- prevText: '←',
1084
- nextText: '→',
1085
- currentText: 'Vandaag',
1086
- monthNames: ['januari', 'februari', 'maart', 'april', 'mei', 'juni',
1087
- 'juli', 'augustus', 'september', 'oktober', 'november', 'december'],
1088
- monthNamesShort: ['jan', 'feb', 'mrt', 'apr', 'mei', 'jun',
1089
- 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'],
1090
- dayNames: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'],
1091
- dayNamesShort: ['zon', 'maa', 'din', 'woe', 'don', 'vri', 'zat'],
1092
- dayNamesMin: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],
1093
- weekHeader: 'Wk',
1094
- dateFormat: 'dd/mm/yy',
1095
- firstDay: 1,
1096
- isRTL: false,
1097
- showMonthAfterYear: false,
1098
- yearSuffix: ''};
1099
- $.datepicker.setDefaults($.datepicker.regional['nl-BE']);
1100
- });
1101
-
1102
- /* Dutch (UTF-8) initialisation for the jQuery UI date picker plugin. */
1103
- /* Written by Mathias Bynens <http://mathiasbynens.be/> */
1104
- jQuery(function($){
1105
- $.datepicker.regional.nl = {
1106
- closeText: 'Sluiten',
1107
- prevText: '←',
1108
- nextText: '→',
1109
- currentText: 'Vandaag',
1110
- monthNames: ['januari', 'februari', 'maart', 'april', 'mei', 'juni',
1111
- 'juli', 'augustus', 'september', 'oktober', 'november', 'december'],
1112
- monthNamesShort: ['jan', 'feb', 'mrt', 'apr', 'mei', 'jun',
1113
- 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'],
1114
- dayNames: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'],
1115
- dayNamesShort: ['zon', 'maa', 'din', 'woe', 'don', 'vri', 'zat'],
1116
- dayNamesMin: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],
1117
- weekHeader: 'Wk',
1118
- dateFormat: 'dd-mm-yy',
1119
- firstDay: 1,
1120
- isRTL: false,
1121
- showMonthAfterYear: false,
1122
- yearSuffix: ''};
1123
- $.datepicker.setDefaults($.datepicker.regional.nl);
1124
- });
1125
- /* Norwegian initialisation for the jQuery UI date picker plugin. */
1126
- /* Written by Naimdjon Takhirov (naimdjon@gmail.com). */
1127
-
1128
- jQuery(function($){
1129
- $.datepicker.regional['no'] = {
1130
- closeText: 'Lukk',
1131
- prevText: '&laquo;Forrige',
1132
- nextText: 'Neste&raquo;',
1133
- currentText: 'I dag',
1134
- monthNames: ['januar','februar','mars','april','mai','juni','juli','august','september','oktober','november','desember'],
1135
- monthNamesShort: ['jan','feb','mar','apr','mai','jun','jul','aug','sep','okt','nov','des'],
1136
- dayNamesShort: ['søn','man','tir','ons','tor','fre','lør'],
1137
- dayNames: ['søndag','mandag','tirsdag','onsdag','torsdag','fredag','lørdag'],
1138
- dayNamesMin: ['sø','ma','ti','on','to','fr','lø'],
1139
- weekHeader: 'Uke',
1140
- dateFormat: 'dd.mm.yy',
1141
- firstDay: 1,
1142
- isRTL: false,
1143
- showMonthAfterYear: false,
1144
- yearSuffix: ''
1145
- };
1146
- $.datepicker.setDefaults($.datepicker.regional['no']);
1147
- });
1148
-
1149
- /* Polish initialisation for the jQuery UI date picker plugin. */
1150
- /* Written by Jacek Wysocki (jacek.wysocki@gmail.com). */
1151
- jQuery(function($){
1152
- $.datepicker.regional['pl'] = {
1153
- closeText: 'Zamknij',
1154
- prevText: '&#x3c;Poprzedni',
1155
- nextText: 'Następny&#x3e;',
1156
- currentText: 'Dziś',
1157
- monthNames: ['Styczeń','Luty','Marzec','Kwiecień','Maj','Czerwiec',
1158
- 'Lipiec','Sierpień','Wrzesień','Październik','Listopad','Grudzień'],
1159
- monthNamesShort: ['Sty','Lu','Mar','Kw','Maj','Cze',
1160
- 'Lip','Sie','Wrz','Pa','Lis','Gru'],
1161
- dayNames: ['Niedziela','Poniedziałek','Wtorek','Środa','Czwartek','Piątek','Sobota'],
1162
- dayNamesShort: ['Nie','Pn','Wt','Śr','Czw','Pt','So'],
1163
- dayNamesMin: ['N','Pn','Wt','Śr','Cz','Pt','So'],
1164
- weekHeader: 'Tydz',
1165
- dateFormat: 'dd.mm.yy',
1166
- firstDay: 1,
1167
- isRTL: false,
1168
- showMonthAfterYear: false,
1169
- yearSuffix: ''};
1170
- $.datepicker.setDefaults($.datepicker.regional['pl']);
1171
- });
1172
-
1173
- /* Brazilian initialisation for the jQuery UI date picker plugin. */
1174
- /* Written by Leonildo Costa Silva (leocsilva@gmail.com). */
1175
- jQuery(function($){
1176
- $.datepicker.regional['pt-BR'] = {
1177
- closeText: 'Fechar',
1178
- prevText: '&#x3c;Anterior',
1179
- nextText: 'Pr&oacute;ximo&#x3e;',
1180
- currentText: 'Hoje',
1181
- monthNames: ['Janeiro','Fevereiro','Mar&ccedil;o','Abril','Maio','Junho',
1182
- 'Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'],
1183
- monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun',
1184
- 'Jul','Ago','Set','Out','Nov','Dez'],
1185
- dayNames: ['Domingo','Segunda-feira','Ter&ccedil;a-feira','Quarta-feira','Quinta-feira','Sexta-feira','S&aacute;bado'],
1186
- dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','S&aacute;b'],
1187
- dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','S&aacute;b'],
1188
- weekHeader: 'Sm',
1189
- dateFormat: 'dd/mm/yy',
1190
- firstDay: 0,
1191
- isRTL: false,
1192
- showMonthAfterYear: false,
1193
- yearSuffix: ''};
1194
- $.datepicker.setDefaults($.datepicker.regional['pt-BR']);
1195
- });
1196
- /* Portuguese initialisation for the jQuery UI date picker plugin. */
1197
- jQuery(function($){
1198
- $.datepicker.regional['pt'] = {
1199
- closeText: 'Fechar',
1200
- prevText: '&#x3c;Anterior',
1201
- nextText: 'Seguinte',
1202
- currentText: 'Hoje',
1203
- monthNames: ['Janeiro','Fevereiro','Mar&ccedil;o','Abril','Maio','Junho',
1204
- 'Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'],
1205
- monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun',
1206
- 'Jul','Ago','Set','Out','Nov','Dez'],
1207
- dayNames: ['Domingo','Segunda-feira','Ter&ccedil;a-feira','Quarta-feira','Quinta-feira','Sexta-feira','S&aacute;bado'],
1208
- dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','S&aacute;b'],
1209
- dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','S&aacute;b'],
1210
- weekHeader: 'Sem',
1211
- dateFormat: 'dd/mm/yy',
1212
- firstDay: 0,
1213
- isRTL: false,
1214
- showMonthAfterYear: false,
1215
- yearSuffix: ''};
1216
- $.datepicker.setDefaults($.datepicker.regional['pt']);
1217
- });
1218
- /* Romansh initialisation for the jQuery UI date picker plugin. */
1219
- /* Written by Yvonne Gienal (yvonne.gienal@educa.ch). */
1220
- jQuery(function($){
1221
- $.datepicker.regional['rm'] = {
1222
- closeText: 'Serrar',
1223
- prevText: '&#x3c;Suandant',
1224
- nextText: 'Precedent&#x3e;',
1225
- currentText: 'Actual',
1226
- monthNames: ['Schaner','Favrer','Mars','Avrigl','Matg','Zercladur', 'Fanadur','Avust','Settember','October','November','December'],
1227
- monthNamesShort: ['Scha','Fev','Mar','Avr','Matg','Zer', 'Fan','Avu','Sett','Oct','Nov','Dec'],
1228
- dayNames: ['Dumengia','Glindesdi','Mardi','Mesemna','Gievgia','Venderdi','Sonda'],
1229
- dayNamesShort: ['Dum','Gli','Mar','Mes','Gie','Ven','Som'],
1230
- dayNamesMin: ['Du','Gl','Ma','Me','Gi','Ve','So'],
1231
- weekHeader: 'emna',
1232
- dateFormat: 'dd/mm/yy',
1233
- firstDay: 1,
1234
- isRTL: false,
1235
- showMonthAfterYear: false,
1236
- yearSuffix: ''};
1237
- $.datepicker.setDefaults($.datepicker.regional['rm']);
1238
- });
1239
-
1240
- /* Romanian initialisation for the jQuery UI date picker plugin.
1241
- *
1242
- * Written by Edmond L. (ll_edmond@walla.com)
1243
- * and Ionut G. Stan (ionut.g.stan@gmail.com)
1244
- */
1245
- jQuery(function($){
1246
- $.datepicker.regional['ro'] = {
1247
- closeText: 'Închide',
1248
- prevText: '&laquo; Luna precedentă',
1249
- nextText: 'Luna următoare &raquo;',
1250
- currentText: 'Azi',
1251
- monthNames: ['Ianuarie','Februarie','Martie','Aprilie','Mai','Iunie',
1252
- 'Iulie','August','Septembrie','Octombrie','Noiembrie','Decembrie'],
1253
- monthNamesShort: ['Ian', 'Feb', 'Mar', 'Apr', 'Mai', 'Iun',
1254
- 'Iul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
1255
- dayNames: ['Duminică', 'Luni', 'Marţi', 'Miercuri', 'Joi', 'Vineri', 'Sâmbătă'],
1256
- dayNamesShort: ['Dum', 'Lun', 'Mar', 'Mie', 'Joi', 'Vin', 'Sâm'],
1257
- dayNamesMin: ['Du','Lu','Ma','Mi','Jo','Vi','Sâ'],
1258
- weekHeader: 'Săpt',
1259
- dateFormat: 'dd.mm.yy',
1260
- firstDay: 1,
1261
- isRTL: false,
1262
- showMonthAfterYear: false,
1263
- yearSuffix: ''};
1264
- $.datepicker.setDefaults($.datepicker.regional['ro']);
1265
- });
1266
-
1267
- /* Russian (UTF-8) initialisation for the jQuery UI date picker plugin. */
1268
- /* Written by Andrew Stromnov (stromnov@gmail.com). */
1269
- jQuery(function($){
1270
- $.datepicker.regional['ru'] = {
1271
- closeText: 'Закрыть',
1272
- prevText: '&#x3c;Пред',
1273
- nextText: 'След&#x3e;',
1274
- currentText: 'Сегодня',
1275
- monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь',
1276
- 'Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
1277
- monthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн',
1278
- 'Июл','Авг','Сен','Окт','Ноя','Дек'],
1279
- dayNames: ['воскресенье','понедельник','вторник','среда','четверг','пятница','суббота'],
1280
- dayNamesShort: ['вск','пнд','втр','срд','чтв','птн','сбт'],
1281
- dayNamesMin: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб'],
1282
- weekHeader: 'Нед',
1283
- dateFormat: 'dd.mm.yy',
1284
- firstDay: 1,
1285
- isRTL: false,
1286
- showMonthAfterYear: false,
1287
- yearSuffix: ''};
1288
- $.datepicker.setDefaults($.datepicker.regional['ru']);
1289
- });
1290
- /* Slovak initialisation for the jQuery UI date picker plugin. */
1291
- /* Written by Vojtech Rinik (vojto@hmm.sk). */
1292
- jQuery(function($){
1293
- $.datepicker.regional['sk'] = {
1294
- closeText: 'Zavrieť',
1295
- prevText: '&#x3c;Predchádzajúci',
1296
- nextText: 'Nasledujúci&#x3e;',
1297
- currentText: 'Dnes',
1298
- monthNames: ['Január','Február','Marec','Apríl','Máj','Jún',
1299
- 'Júl','August','September','Október','November','December'],
1300
- monthNamesShort: ['Jan','Feb','Mar','Apr','Máj','Jún',
1301
- 'Júl','Aug','Sep','Okt','Nov','Dec'],
1302
- dayNames: ['Nedeľa','Pondelok','Utorok','Streda','Štvrtok','Piatok','Sobota'],
1303
- dayNamesShort: ['Ned','Pon','Uto','Str','Štv','Pia','Sob'],
1304
- dayNamesMin: ['Ne','Po','Ut','St','Št','Pia','So'],
1305
- weekHeader: 'Ty',
1306
- dateFormat: 'dd.mm.yy',
1307
- firstDay: 1,
1308
- isRTL: false,
1309
- showMonthAfterYear: false,
1310
- yearSuffix: ''};
1311
- $.datepicker.setDefaults($.datepicker.regional['sk']);
1312
- });
1313
-
1314
- /* Slovenian initialisation for the jQuery UI date picker plugin. */
1315
- /* Written by Jaka Jancar (jaka@kubje.org). */
1316
- /* c = &#x10D;, s = &#x161; z = &#x17E; C = &#x10C; S = &#x160; Z = &#x17D; */
1317
- jQuery(function($){
1318
- $.datepicker.regional['sl'] = {
1319
- closeText: 'Zapri',
1320
- prevText: '&lt;Prej&#x161;nji',
1321
- nextText: 'Naslednji&gt;',
1322
- currentText: 'Trenutni',
1323
- monthNames: ['Januar','Februar','Marec','April','Maj','Junij',
1324
- 'Julij','Avgust','September','Oktober','November','December'],
1325
- monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
1326
- 'Jul','Avg','Sep','Okt','Nov','Dec'],
1327
- dayNames: ['Nedelja','Ponedeljek','Torek','Sreda','&#x10C;etrtek','Petek','Sobota'],
1328
- dayNamesShort: ['Ned','Pon','Tor','Sre','&#x10C;et','Pet','Sob'],
1329
- dayNamesMin: ['Ne','Po','To','Sr','&#x10C;e','Pe','So'],
1330
- weekHeader: 'Teden',
1331
- dateFormat: 'dd.mm.yy',
1332
- firstDay: 1,
1333
- isRTL: false,
1334
- showMonthAfterYear: false,
1335
- yearSuffix: ''};
1336
- $.datepicker.setDefaults($.datepicker.regional['sl']);
1337
- });
1338
-
1339
- /* Albanian initialisation for the jQuery UI date picker plugin. */
1340
- /* Written by Flakron Bytyqi (flakron@gmail.com). */
1341
- jQuery(function($){
1342
- $.datepicker.regional['sq'] = {
1343
- closeText: 'mbylle',
1344
- prevText: '&#x3c;mbrapa',
1345
- nextText: 'Përpara&#x3e;',
1346
- currentText: 'sot',
1347
- monthNames: ['Janar','Shkurt','Mars','Prill','Maj','Qershor',
1348
- 'Korrik','Gusht','Shtator','Tetor','Nëntor','Dhjetor'],
1349
- monthNamesShort: ['Jan','Shk','Mar','Pri','Maj','Qer',
1350
- 'Kor','Gus','Sht','Tet','Nën','Dhj'],
1351
- dayNames: ['E Diel','E Hënë','E Martë','E Mërkurë','E Enjte','E Premte','E Shtune'],
1352
- dayNamesShort: ['Di','Hë','Ma','Më','En','Pr','Sh'],
1353
- dayNamesMin: ['Di','Hë','Ma','Më','En','Pr','Sh'],
1354
- weekHeader: 'Ja',
1355
- dateFormat: 'dd.mm.yy',
1356
- firstDay: 1,
1357
- isRTL: false,
1358
- showMonthAfterYear: false,
1359
- yearSuffix: ''};
1360
- $.datepicker.setDefaults($.datepicker.regional['sq']);
1361
- });
1362
-
1363
- /* Serbian i18n for the jQuery UI date picker plugin. */
1364
- /* Written by Dejan Dimić. */
1365
- jQuery(function($){
1366
- $.datepicker.regional['sr-SR'] = {
1367
- closeText: 'Zatvori',
1368
- prevText: '&#x3c;',
1369
- nextText: '&#x3e;',
1370
- currentText: 'Danas',
1371
- monthNames: ['Januar','Februar','Mart','April','Maj','Jun',
1372
- 'Jul','Avgust','Septembar','Oktobar','Novembar','Decembar'],
1373
- monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
1374
- 'Jul','Avg','Sep','Okt','Nov','Dec'],
1375
- dayNames: ['Nedelja','Ponedeljak','Utorak','Sreda','Četvrtak','Petak','Subota'],
1376
- dayNamesShort: ['Ned','Pon','Uto','Sre','Čet','Pet','Sub'],
1377
- dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'],
1378
- weekHeader: 'Sed',
1379
- dateFormat: 'dd/mm/yy',
1380
- firstDay: 1,
1381
- isRTL: false,
1382
- showMonthAfterYear: false,
1383
- yearSuffix: ''};
1384
- $.datepicker.setDefaults($.datepicker.regional['sr-SR']);
1385
- });
1386
-
1387
- /* Serbian i18n for the jQuery UI date picker plugin. */
1388
- /* Written by Dejan Dimić. */
1389
- jQuery(function($){
1390
- $.datepicker.regional['sr'] = {
1391
- closeText: 'Затвори',
1392
- prevText: '&#x3c;',
1393
- nextText: '&#x3e;',
1394
- currentText: 'Данас',
1395
- monthNames: ['Јануар','Фебруар','Март','Април','Мај','Јун',
1396
- 'Јул','Август','Септембар','Октобар','Новембар','Децембар'],
1397
- monthNamesShort: ['Јан','Феб','Мар','Апр','Мај','Јун',
1398
- 'Јул','Авг','Сеп','Окт','Нов','Дец'],
1399
- dayNames: ['Недеља','Понедељак','Уторак','Среда','Четвртак','Петак','Субота'],
1400
- dayNamesShort: ['Нед','Пон','Уто','Сре','Чет','Пет','Суб'],
1401
- dayNamesMin: ['Не','По','Ут','Ср','Че','Пе','Су'],
1402
- weekHeader: 'Сед',
1403
- dateFormat: 'dd/mm/yy',
1404
- firstDay: 1,
1405
- isRTL: false,
1406
- showMonthAfterYear: false,
1407
- yearSuffix: ''};
1408
- $.datepicker.setDefaults($.datepicker.regional['sr']);
1409
- });
1410
-
1411
- /* Swedish initialisation for the jQuery UI date picker plugin. */
1412
- /* Written by Anders Ekdahl ( anders@nomadiz.se). */
1413
- jQuery(function($){
1414
- $.datepicker.regional['sv'] = {
1415
- closeText: 'Stäng',
1416
- prevText: '&laquo;Förra',
1417
- nextText: 'Nästa&raquo;',
1418
- currentText: 'Idag',
1419
- monthNames: ['Januari','Februari','Mars','April','Maj','Juni',
1420
- 'Juli','Augusti','September','Oktober','November','December'],
1421
- monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
1422
- 'Jul','Aug','Sep','Okt','Nov','Dec'],
1423
- dayNamesShort: ['Sön','Mån','Tis','Ons','Tor','Fre','Lör'],
1424
- dayNames: ['Söndag','Måndag','Tisdag','Onsdag','Torsdag','Fredag','Lördag'],
1425
- dayNamesMin: ['Sö','Må','Ti','On','To','Fr','Lö'],
1426
- weekHeader: 'Ve',
1427
- dateFormat: 'yy-mm-dd',
1428
- firstDay: 1,
1429
- isRTL: false,
1430
- showMonthAfterYear: false,
1431
- yearSuffix: ''};
1432
- $.datepicker.setDefaults($.datepicker.regional['sv']);
1433
- });
1434
-
1435
- /* Tamil (UTF-8) initialisation for the jQuery UI date picker plugin. */
1436
- /* Written by S A Sureshkumar (saskumar@live.com). */
1437
- jQuery(function($){
1438
- $.datepicker.regional['ta'] = {
1439
- closeText: 'மூடு',
1440
- prevText: 'முன்னையது',
1441
- nextText: 'அடுத்தது',
1442
- currentText: 'இன்று',
1443
- monthNames: ['தை','மாசி','பங்குனி','சித்திரை','வைகாசி','ஆனி',
1444
- 'ஆடி','ஆவணி','புரட்டாசி','ஐப்பசி','கார்த்திகை','மார்கழி'],
1445
- monthNamesShort: ['தை','மாசி','பங்','சித்','வைகா','ஆனி',
1446
- 'ஆடி','ஆவ','புர','ஐப்','கார்','மார்'],
1447
- dayNames: ['ஞாயிற்றுக்கிழமை','திங்கட்கிழமை','செவ்வாய்க்கிழமை','புதன்கிழமை','வியாழக்கிழமை','வெள்ளிக்கிழமை','சனிக்கிழமை'],
1448
- dayNamesShort: ['ஞாயிறு','திங்கள்','செவ்வாய்','புதன்','வியாழன்','வெள்ளி','சனி'],
1449
- dayNamesMin: ['ஞா','தி','செ','பு','வி','வெ','ச'],
1450
- weekHeader: 'Не',
1451
- dateFormat: 'dd/mm/yy',
1452
- firstDay: 1,
1453
- isRTL: false,
1454
- showMonthAfterYear: false,
1455
- yearSuffix: ''};
1456
- $.datepicker.setDefaults($.datepicker.regional['ta']);
1457
- });
1458
-
1459
- /* Thai initialisation for the jQuery UI date picker plugin. */
1460
- /* Written by pipo (pipo@sixhead.com). */
1461
- jQuery(function($){
1462
- $.datepicker.regional['th'] = {
1463
- closeText: 'ปิด',
1464
- prevText: '&laquo;&nbsp;ย้อน',
1465
- nextText: 'ถัดไป&nbsp;&raquo;',
1466
- currentText: 'วันนี้',
1467
- monthNames: ['มกราคม','กุมภาพันธ์','มีนาคม','เมษายน','พฤษภาคม','มิถุนายน',
1468
- 'กรกฎาคม','สิงหาคม','กันยายน','ตุลาคม','พฤศจิกายน','ธันวาคม'],
1469
- monthNamesShort: ['ม.ค.','ก.พ.','มี.ค.','เม.ย.','พ.ค.','มิ.ย.',
1470
- 'ก.ค.','ส.ค.','ก.ย.','ต.ค.','พ.ย.','ธ.ค.'],
1471
- dayNames: ['อาทิตย์','จันทร์','อังคาร','พุธ','พฤหัสบดี','ศุกร์','เสาร์'],
1472
- dayNamesShort: ['อา.','จ.','อ.','พ.','พฤ.','ศ.','ส.'],
1473
- dayNamesMin: ['อา.','จ.','อ.','พ.','พฤ.','ศ.','ส.'],
1474
- weekHeader: 'Wk',
1475
- dateFormat: 'dd/mm/yy',
1476
- firstDay: 0,
1477
- isRTL: false,
1478
- showMonthAfterYear: false,
1479
- yearSuffix: ''};
1480
- $.datepicker.setDefaults($.datepicker.regional['th']);
1481
- });
1482
- /* Tajiki (UTF-8) initialisation for the jQuery UI date picker plugin. */
1483
- /* Written by Abdurahmon Saidov (saidovab@gmail.com). */
1484
- jQuery(function($){
1485
- $.datepicker.regional['tj'] = {
1486
- closeText: 'Идома',
1487
- prevText: '&#x3c;Қафо',
1488
- nextText: 'Пеш&#x3e;',
1489
- currentText: 'Имрӯз',
1490
- monthNames: ['Январ','Феврал','Март','Апрел','Май','Июн',
1491
- 'Июл','Август','Сентябр','Октябр','Ноябр','Декабр'],
1492
- monthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн',
1493
- 'Июл','Авг','Сен','Окт','Ноя','Дек'],
1494
- dayNames: ['якшанбе','душанбе','сешанбе','чоршанбе','панҷшанбе','ҷумъа','шанбе'],
1495
- dayNamesShort: ['якш','душ','сеш','чор','пан','ҷум','шан'],
1496
- dayNamesMin: ['Як','Дш','Сш','Чш','Пш','Ҷм','Шн'],
1497
- weekHeader: 'Хф',
1498
- dateFormat: 'dd.mm.yy',
1499
- firstDay: 1,
1500
- isRTL: false,
1501
- showMonthAfterYear: false,
1502
- yearSuffix: ''};
1503
- $.datepicker.setDefaults($.datepicker.regional['tj']);
1504
- });
1505
- /* Turkish initialisation for the jQuery UI date picker plugin. */
1506
- /* Written by Izzet Emre Erkan (kara@karalamalar.net). */
1507
- jQuery(function($){
1508
- $.datepicker.regional['tr'] = {
1509
- closeText: 'kapat',
1510
- prevText: '&#x3c;geri',
1511
- nextText: 'ileri&#x3e',
1512
- currentText: 'bugün',
1513
- monthNames: ['Ocak','Şubat','Mart','Nisan','Mayıs','Haziran',
1514
- 'Temmuz','Ağustos','Eylül','Ekim','Kasım','Aralık'],
1515
- monthNamesShort: ['Oca','Şub','Mar','Nis','May','Haz',
1516
- 'Tem','Ağu','Eyl','Eki','Kas','Ara'],
1517
- dayNames: ['Pazar','Pazartesi','Salı','Çarşamba','Perşembe','Cuma','Cumartesi'],
1518
- dayNamesShort: ['Pz','Pt','Sa','Ça','Pe','Cu','Ct'],
1519
- dayNamesMin: ['Pz','Pt','Sa','Ça','Pe','Cu','Ct'],
1520
- weekHeader: 'Hf',
1521
- dateFormat: 'dd.mm.yy',
1522
- firstDay: 1,
1523
- isRTL: false,
1524
- showMonthAfterYear: false,
1525
- yearSuffix: ''};
1526
- $.datepicker.setDefaults($.datepicker.regional['tr']);
1527
- });
1528
- /* Ukrainian (UTF-8) initialisation for the jQuery UI date picker plugin. */
1529
- /* Written by Maxim Drogobitskiy (maxdao@gmail.com). */
1530
- /* Corrected by Igor Milla (igor.fsp.milla@gmail.com). */
1531
- jQuery(function($){
1532
- $.datepicker.regional['uk'] = {
1533
- closeText: 'Закрити',
1534
- prevText: '&#x3c;',
1535
- nextText: '&#x3e;',
1536
- currentText: 'Сьогодні',
1537
- monthNames: ['Січень','Лютий','Березень','Квітень','Травень','Червень',
1538
- 'Липень','Серпень','Вересень','Жовтень','Листопад','Грудень'],
1539
- monthNamesShort: ['Січ','Лют','Бер','Кві','Тра','Чер',
1540
- 'Лип','Сер','Вер','Жов','Лис','Гру'],
1541
- dayNames: ['неділя','понеділок','вівторок','середа','четвер','п’ятниця','субота'],
1542
- dayNamesShort: ['нед','пнд','вів','срд','чтв','птн','сбт'],
1543
- dayNamesMin: ['Нд','Пн','Вт','Ср','Чт','Пт','Сб'],
1544
- weekHeader: 'Тиж',
1545
- dateFormat: 'dd/mm/yy',
1546
- firstDay: 1,
1547
- isRTL: false,
1548
- showMonthAfterYear: false,
1549
- yearSuffix: ''};
1550
- $.datepicker.setDefaults($.datepicker.regional['uk']);
1551
- });
1552
- /* Vietnamese initialisation for the jQuery UI date picker plugin. */
1553
- /* Translated by Le Thanh Huy (lthanhhuy@cit.ctu.edu.vn). */
1554
- jQuery(function($){
1555
- $.datepicker.regional['vi'] = {
1556
- closeText: 'Đóng',
1557
- prevText: '&#x3c;Trước',
1558
- nextText: 'Tiếp&#x3e;',
1559
- currentText: 'Hôm nay',
1560
- monthNames: ['Tháng Một', 'Tháng Hai', 'Tháng Ba', 'Tháng Tư', 'Tháng Năm', 'Tháng Sáu',
1561
- 'Tháng Bảy', 'Tháng Tám', 'Tháng Chín', 'Tháng Mười', 'Tháng Mười Một', 'Tháng Mười Hai'],
1562
- monthNamesShort: ['Tháng 1', 'Tháng 2', 'Tháng 3', 'Tháng 4', 'Tháng 5', 'Tháng 6',
1563
- 'Tháng 7', 'Tháng 8', 'Tháng 9', 'Tháng 10', 'Tháng 11', 'Tháng 12'],
1564
- dayNames: ['Chủ Nhật', 'Thứ Hai', 'Thứ Ba', 'Thứ Tư', 'Thứ Năm', 'Thứ Sáu', 'Thứ Bảy'],
1565
- dayNamesShort: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'],
1566
- dayNamesMin: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'],
1567
- weekHeader: 'Tu',
1568
- dateFormat: 'dd/mm/yy',
1569
- firstDay: 0,
1570
- isRTL: false,
1571
- showMonthAfterYear: false,
1572
- yearSuffix: ''};
1573
- $.datepicker.setDefaults($.datepicker.regional['vi']);
1574
- });
1575
-
1576
- /* Chinese initialisation for the jQuery UI date picker plugin. */
1577
- /* Written by Cloudream (cloudream@gmail.com). */
1578
- jQuery(function($){
1579
- $.datepicker.regional['zh-CN'] = {
1580
- closeText: '关闭',
1581
- prevText: '&#x3c;上月',
1582
- nextText: '下月&#x3e;',
1583
- currentText: '今天',
1584
- monthNames: ['一月','二月','三月','四月','五月','六月',
1585
- '七月','八月','九月','十月','十一月','十二月'],
1586
- monthNamesShort: ['一月','二月','三月','四月','五月','六月',
1587
- '七月','八月','九月','十月','十一月','十二月'],
1588
- dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
1589
- dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
1590
- dayNamesMin: ['日','一','二','三','四','五','六'],
1591
- weekHeader: '周',
1592
- dateFormat: 'yy-mm-dd',
1593
- firstDay: 1,
1594
- isRTL: false,
1595
- showMonthAfterYear: true,
1596
- yearSuffix: '年'};
1597
- $.datepicker.setDefaults($.datepicker.regional['zh-CN']);
1598
- });
1599
-
1600
- /* Chinese initialisation for the jQuery UI date picker plugin. */
1601
- /* Written by SCCY (samuelcychan@gmail.com). */
1602
- jQuery(function($){
1603
- $.datepicker.regional['zh-HK'] = {
1604
- closeText: '關閉',
1605
- prevText: '&#x3c;上月',
1606
- nextText: '下月&#x3e;',
1607
- currentText: '今天',
1608
- monthNames: ['一月','二月','三月','四月','五月','六月',
1609
- '七月','八月','九月','十月','十一月','十二月'],
1610
- monthNamesShort: ['一月','二月','三月','四月','五月','六月',
1611
- '七月','八月','九月','十月','十一月','十二月'],
1612
- dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
1613
- dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
1614
- dayNamesMin: ['日','一','二','三','四','五','六'],
1615
- weekHeader: '周',
1616
- dateFormat: 'dd-mm-yy',
1617
- firstDay: 0,
1618
- isRTL: false,
1619
- showMonthAfterYear: true,
1620
- yearSuffix: '年'};
1621
- $.datepicker.setDefaults($.datepicker.regional['zh-HK']);
1622
- });
1623
-
1624
- /* Chinese initialisation for the jQuery UI date picker plugin. */
1625
- /* Written by Ressol (ressol@gmail.com). */
1626
- jQuery(function($){
1627
- $.datepicker.regional['zh-TW'] = {
1628
- closeText: '關閉',
1629
- prevText: '&#x3c;上月',
1630
- nextText: '下月&#x3e;',
1631
- currentText: '今天',
1632
- monthNames: ['一月','二月','三月','四月','五月','六月',
1633
- '七月','八月','九月','十月','十一月','十二月'],
1634
- monthNamesShort: ['一月','二月','三月','四月','五月','六月',
1635
- '七月','八月','九月','十月','十一月','十二月'],
1636
- dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
1637
- dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
1638
- dayNamesMin: ['日','一','二','三','四','五','六'],
1639
- weekHeader: '周',
1640
- dateFormat: 'yy/mm/dd',
1641
- firstDay: 1,
1642
- isRTL: false,
1643
- showMonthAfterYear: true,
1644
- yearSuffix: '年'};
1645
- $.datepicker.setDefaults($.datepicker.regional['zh-TW']);
1646
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-af.js DELETED
@@ -1,23 +0,0 @@
1
- /* Afrikaans initialisation for the jQuery UI date picker plugin. */
2
- /* Written by Renier Pretorius. */
3
- jQuery(function($){
4
- $.datepicker.regional['af'] = {
5
- closeText: 'Selekteer',
6
- prevText: 'Vorige',
7
- nextText: 'Volgende',
8
- currentText: 'Vandag',
9
- monthNames: ['Januarie','Februarie','Maart','April','Mei','Junie',
10
- 'Julie','Augustus','September','Oktober','November','Desember'],
11
- monthNamesShort: ['Jan', 'Feb', 'Mrt', 'Apr', 'Mei', 'Jun',
12
- 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Des'],
13
- dayNames: ['Sondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrydag', 'Saterdag'],
14
- dayNamesShort: ['Son', 'Maa', 'Din', 'Woe', 'Don', 'Vry', 'Sat'],
15
- dayNamesMin: ['So','Ma','Di','Wo','Do','Vr','Sa'],
16
- weekHeader: 'Wk',
17
- dateFormat: 'dd/mm/yy',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['af']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-ar-DZ.js DELETED
@@ -1,23 +0,0 @@
1
- /* Algerian Arabic Translation for jQuery UI date picker plugin. (can be used for Tunisia)*/
2
- /* Mohamed Cherif BOUCHELAGHEM -- cherifbouchelaghem@yahoo.fr */
3
-
4
- jQuery(function($){
5
- $.datepicker.regional['ar-DZ'] = {
6
- closeText: 'إغلاق',
7
- prevText: '&#x3c;السابق',
8
- nextText: 'التالي&#x3e;',
9
- currentText: 'اليوم',
10
- monthNames: ['جانفي', 'فيفري', 'مارس', 'أفريل', 'ماي', 'جوان',
11
- 'جويلية', 'أوت', 'سبتمبر','أكتوبر', 'نوفمبر', 'ديسمبر'],
12
- monthNamesShort: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],
13
- dayNames: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
14
- dayNamesShort: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
15
- dayNamesMin: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
16
- weekHeader: 'أسبوع',
17
- dateFormat: 'dd/mm/yy',
18
- firstDay: 6,
19
- isRTL: true,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['ar-DZ']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-ar.js DELETED
@@ -1,23 +0,0 @@
1
- /* Arabic Translation for jQuery UI date picker plugin. */
2
- /* Khaled Alhourani -- me@khaledalhourani.com */
3
- /* NOTE: monthNames are the original months names and they are the Arabic names, not the new months name فبراير - يناير and there isn't any Arabic roots for these months */
4
- jQuery(function($){
5
- $.datepicker.regional['ar'] = {
6
- closeText: 'إغلاق',
7
- prevText: '&#x3c;السابق',
8
- nextText: 'التالي&#x3e;',
9
- currentText: 'اليوم',
10
- monthNames: ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'مايو', 'حزيران',
11
- 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'],
12
- monthNamesShort: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],
13
- dayNames: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
14
- dayNamesShort: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
15
- dayNamesMin: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],
16
- weekHeader: 'أسبوع',
17
- dateFormat: 'dd/mm/yy',
18
- firstDay: 6,
19
- isRTL: true,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['ar']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-az.js DELETED
@@ -1,23 +0,0 @@
1
- /* Azerbaijani (UTF-8) initialisation for the jQuery UI date picker plugin. */
2
- /* Written by Jamil Najafov (necefov33@gmail.com). */
3
- jQuery(function($) {
4
- $.datepicker.regional['az'] = {
5
- closeText: 'Bağla',
6
- prevText: '&#x3c;Geri',
7
- nextText: 'İrəli&#x3e;',
8
- currentText: 'Bugün',
9
- monthNames: ['Yanvar','Fevral','Mart','Aprel','May','İyun',
10
- 'İyul','Avqust','Sentyabr','Oktyabr','Noyabr','Dekabr'],
11
- monthNamesShort: ['Yan','Fev','Mar','Apr','May','İyun',
12
- 'İyul','Avq','Sen','Okt','Noy','Dek'],
13
- dayNames: ['Bazar','Bazar ertəsi','Çərşənbə axşamı','Çərşənbə','Cümə axşamı','Cümə','Şənbə'],
14
- dayNamesShort: ['B','Be','Ça','Ç','Ca','C','Ş'],
15
- dayNamesMin: ['B','B','Ç','С','Ç','C','Ş'],
16
- weekHeader: 'Hf',
17
- dateFormat: 'dd.mm.yy',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['az']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-bg.js DELETED
@@ -1,24 +0,0 @@
1
- /* Bulgarian initialisation for the jQuery UI date picker plugin. */
2
- /* Written by Stoyan Kyosev (http://svest.org). */
3
- jQuery(function($){
4
- $.datepicker.regional['bg'] = {
5
- closeText: 'затвори',
6
- prevText: '&#x3c;назад',
7
- nextText: 'напред&#x3e;',
8
- nextBigText: '&#x3e;&#x3e;',
9
- currentText: 'днес',
10
- monthNames: ['Януари','Февруари','Март','Април','Май','Юни',
11
- 'Юли','Август','Септември','Октомври','Ноември','Декември'],
12
- monthNamesShort: ['Яну','Фев','Мар','Апр','Май','Юни',
13
- 'Юли','Авг','Сеп','Окт','Нов','Дек'],
14
- dayNames: ['Неделя','Понеделник','Вторник','Сряда','Четвъртък','Петък','Събота'],
15
- dayNamesShort: ['Нед','Пон','Вто','Сря','Чет','Пет','Съб'],
16
- dayNamesMin: ['Не','По','Вт','Ср','Че','Пе','Съ'],
17
- weekHeader: 'Wk',
18
- dateFormat: 'dd.mm.yy',
19
- firstDay: 1,
20
- isRTL: false,
21
- showMonthAfterYear: false,
22
- yearSuffix: ''};
23
- $.datepicker.setDefaults($.datepicker.regional['bg']);
24
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-bs.js DELETED
@@ -1,23 +0,0 @@
1
- /* Bosnian i18n for the jQuery UI date picker plugin. */
2
- /* Written by Kenan Konjo. */
3
- jQuery(function($){
4
- $.datepicker.regional['bs'] = {
5
- closeText: 'Zatvori',
6
- prevText: '&#x3c;',
7
- nextText: '&#x3e;',
8
- currentText: 'Danas',
9
- monthNames: ['Januar','Februar','Mart','April','Maj','Juni',
10
- 'Juli','August','Septembar','Oktobar','Novembar','Decembar'],
11
- monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
12
- 'Jul','Aug','Sep','Okt','Nov','Dec'],
13
- dayNames: ['Nedelja','Ponedeljak','Utorak','Srijeda','Četvrtak','Petak','Subota'],
14
- dayNamesShort: ['Ned','Pon','Uto','Sri','Čet','Pet','Sub'],
15
- dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'],
16
- weekHeader: 'Wk',
17
- dateFormat: 'dd.mm.yy',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['bs']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-ca.js DELETED
@@ -1,23 +0,0 @@
1
- /* Inicialització en català per a l'extenció 'calendar' per jQuery. */
2
- /* Writers: (joan.leon@gmail.com). */
3
- jQuery(function($){
4
- $.datepicker.regional['ca'] = {
5
- closeText: 'Tancar',
6
- prevText: '&#x3c;Ant',
7
- nextText: 'Seg&#x3e;',
8
- currentText: 'Avui',
9
- monthNames: ['Gener','Febrer','Mar&ccedil;','Abril','Maig','Juny',
10
- 'Juliol','Agost','Setembre','Octubre','Novembre','Desembre'],
11
- monthNamesShort: ['Gen','Feb','Mar','Abr','Mai','Jun',
12
- 'Jul','Ago','Set','Oct','Nov','Des'],
13
- dayNames: ['Diumenge','Dilluns','Dimarts','Dimecres','Dijous','Divendres','Dissabte'],
14
- dayNamesShort: ['Dug','Dln','Dmt','Dmc','Djs','Dvn','Dsb'],
15
- dayNamesMin: ['Dg','Dl','Dt','Dc','Dj','Dv','Ds'],
16
- weekHeader: 'Sm',
17
- dateFormat: 'dd/mm/yy',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['ca']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-cs.js DELETED
@@ -1,23 +0,0 @@
1
- /* Czech initialisation for the jQuery UI date picker plugin. */
2
- /* Written by Tomas Muller (tomas@tomas-muller.net). */
3
- jQuery(function($){
4
- $.datepicker.regional['cs'] = {
5
- closeText: 'Zavřít',
6
- prevText: '&#x3c;Dříve',
7
- nextText: 'Později&#x3e;',
8
- currentText: 'Nyní',
9
- monthNames: ['leden','únor','březen','duben','květen','červen',
10
- 'červenec','srpen','září','říjen','listopad','prosinec'],
11
- monthNamesShort: ['led','úno','bře','dub','kvě','čer',
12
- 'čvc','srp','zář','říj','lis','pro'],
13
- dayNames: ['neděle', 'pondělí', 'úterý', 'středa', 'čtvrtek', 'pátek', 'sobota'],
14
- dayNamesShort: ['ne', 'po', 'út', 'st', 'čt', 'pá', 'so'],
15
- dayNamesMin: ['ne','po','út','st','čt','pá','so'],
16
- weekHeader: 'Týd',
17
- dateFormat: 'dd.mm.yy',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['cs']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-cy-GB.js DELETED
@@ -1,23 +0,0 @@
1
- /* Welsh/UK initialisation for the jQuery UI date picker plugin. */
2
- /* Written by William Griffiths. */
3
- jQuery(function($){
4
- $.datepicker.regional['cy-GB'] = {
5
- closeText: 'Done',
6
- prevText: 'Prev',
7
- nextText: 'Next',
8
- currentText: 'Today',
9
- monthNames: ['Ionawr','Chwefror','Mawrth','Ebrill','Mai','Mehefin',
10
- 'Gorffennaf','Awst','Medi','Hydref','Tachwedd','Rhagfyr'],
11
- monthNamesShort: ['Ion', 'Chw', 'Maw', 'Ebr', 'Mai', 'Meh',
12
- 'Gor', 'Aws', 'Med', 'Hyd', 'Tac', 'Rha'],
13
- dayNames: ['Dydd Sul', 'Dydd Llun', 'Dydd Mawrth', 'Dydd Mercher', 'Dydd Iau', 'Dydd Gwener', 'Dydd Sadwrn'],
14
- dayNamesShort: ['Sul', 'Llu', 'Maw', 'Mer', 'Iau', 'Gwe', 'Sad'],
15
- dayNamesMin: ['Su','Ll','Ma','Me','Ia','Gw','Sa'],
16
- weekHeader: 'Wy',
17
- dateFormat: 'dd/mm/yy',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['cy-GB']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-da.js DELETED
@@ -1,23 +0,0 @@
1
- /* Danish initialisation for the jQuery UI date picker plugin. */
2
- /* Written by Jan Christensen ( deletestuff@gmail.com). */
3
- jQuery(function($){
4
- $.datepicker.regional['da'] = {
5
- closeText: 'Luk',
6
- prevText: '&#x3c;Forrige',
7
- nextText: 'Næste&#x3e;',
8
- currentText: 'Idag',
9
- monthNames: ['Januar','Februar','Marts','April','Maj','Juni',
10
- 'Juli','August','September','Oktober','November','December'],
11
- monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
12
- 'Jul','Aug','Sep','Okt','Nov','Dec'],
13
- dayNames: ['Søndag','Mandag','Tirsdag','Onsdag','Torsdag','Fredag','Lørdag'],
14
- dayNamesShort: ['Søn','Man','Tir','Ons','Tor','Fre','Lør'],
15
- dayNamesMin: ['Sø','Ma','Ti','On','To','Fr','Lø'],
16
- weekHeader: 'Uge',
17
- dateFormat: 'dd-mm-yy',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['da']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-de.js DELETED
@@ -1,23 +0,0 @@
1
- /* German initialisation for the jQuery UI date picker plugin. */
2
- /* Written by Milian Wolff (mail@milianw.de). */
3
- jQuery(function($){
4
- $.datepicker.regional['de'] = {
5
- closeText: 'schließen',
6
- prevText: '&#x3c;zurück',
7
- nextText: 'Vor&#x3e;',
8
- currentText: 'heute',
9
- monthNames: ['Januar','Februar','März','April','Mai','Juni',
10
- 'Juli','August','September','Oktober','November','Dezember'],
11
- monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun',
12
- 'Jul','Aug','Sep','Okt','Nov','Dez'],
13
- dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
14
- dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'],
15
- dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'],
16
- weekHeader: 'KW',
17
- dateFormat: 'dd.mm.yy',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['de']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-el.js DELETED
@@ -1,23 +0,0 @@
1
- /* Greek (el) initialisation for the jQuery UI date picker plugin. */
2
- /* Written by Alex Cicovic (http://www.alexcicovic.com) */
3
- jQuery(function($){
4
- $.datepicker.regional['el'] = {
5
- closeText: 'Κλείσιμο',
6
- prevText: 'Προηγούμενος',
7
- nextText: 'Επόμενος',
8
- currentText: 'Τρέχων Μήνας',
9
- monthNames: ['Ιανουάριος','Φεβρουάριος','Μάρτιος','Απρίλιος','Μάιος','Ιούνιος',
10
- 'Ιούλιος','Αύγουστος','Σεπτέμβριος','Οκτώβριος','Νοέμβριος','Δεκέμβριος'],
11
- monthNamesShort: ['Ιαν','Φεβ','Μαρ','Απρ','Μαι','Ιουν',
12
- 'Ιουλ','Αυγ','Σεπ','Οκτ','Νοε','Δεκ'],
13
- dayNames: ['Κυριακή','Δευτέρα','Τρίτη','Τετάρτη','Πέμπτη','Παρασκευή','Σάββατο'],
14
- dayNamesShort: ['Κυρ','Δευ','Τρι','Τετ','Πεμ','Παρ','Σαβ'],
15
- dayNamesMin: ['Κυ','Δε','Τρ','Τε','Πε','Πα','Σα'],
16
- weekHeader: 'Εβδ',
17
- dateFormat: 'dd/mm/yy',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['el']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-en-AU.js DELETED
@@ -1,23 +0,0 @@
1
- /* English/Australia initialisation for the jQuery UI date picker plugin. */
2
- /* Based on the en-GB initialisation. */
3
- jQuery(function($){
4
- $.datepicker.regional['en-AU'] = {
5
- closeText: 'Done',
6
- prevText: 'Prev',
7
- nextText: 'Next',
8
- currentText: 'Today',
9
- monthNames: ['January','February','March','April','May','June',
10
- 'July','August','September','October','November','December'],
11
- monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
12
- 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
13
- dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
14
- dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
15
- dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'],
16
- weekHeader: 'Wk',
17
- dateFormat: 'dd/mm/yy',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['en-AU']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-en-GB.js DELETED
@@ -1,23 +0,0 @@
1
- /* English/UK initialisation for the jQuery UI date picker plugin. */
2
- /* Written by Stuart. */
3
- jQuery(function($){
4
- $.datepicker.regional['en-GB'] = {
5
- closeText: 'Done',
6
- prevText: 'Prev',
7
- nextText: 'Next',
8
- currentText: 'Today',
9
- monthNames: ['January','February','March','April','May','June',
10
- 'July','August','September','October','November','December'],
11
- monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
12
- 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
13
- dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
14
- dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
15
- dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'],
16
- weekHeader: 'Wk',
17
- dateFormat: 'dd/mm/yy',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['en-GB']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-en-NZ.js DELETED
@@ -1,23 +0,0 @@
1
- /* English/New Zealand initialisation for the jQuery UI date picker plugin. */
2
- /* Based on the en-GB initialisation. */
3
- jQuery(function($){
4
- $.datepicker.regional['en-NZ'] = {
5
- closeText: 'Done',
6
- prevText: 'Prev',
7
- nextText: 'Next',
8
- currentText: 'Today',
9
- monthNames: ['January','February','March','April','May','June',
10
- 'July','August','September','October','November','December'],
11
- monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
12
- 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
13
- dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
14
- dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
15
- dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'],
16
- weekHeader: 'Wk',
17
- dateFormat: 'dd/mm/yy',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['en-NZ']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-eo.js DELETED
@@ -1,23 +0,0 @@
1
- /* Esperanto initialisation for the jQuery UI date picker plugin. */
2
- /* Written by Olivier M. (olivierweb@ifrance.com). */
3
- jQuery(function($){
4
- $.datepicker.regional['eo'] = {
5
- closeText: 'Fermi',
6
- prevText: '&lt;Anta',
7
- nextText: 'Sekv&gt;',
8
- currentText: 'Nuna',
9
- monthNames: ['Januaro','Februaro','Marto','Aprilo','Majo','Junio',
10
- 'Julio','Aŭgusto','Septembro','Oktobro','Novembro','Decembro'],
11
- monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
12
- 'Jul','Aŭg','Sep','Okt','Nov','Dec'],
13
- dayNames: ['Dimanĉo','Lundo','Mardo','Merkredo','Ĵaŭdo','Vendredo','Sabato'],
14
- dayNamesShort: ['Dim','Lun','Mar','Mer','Ĵaŭ','Ven','Sab'],
15
- dayNamesMin: ['Di','Lu','Ma','Me','Ĵa','Ve','Sa'],
16
- weekHeader: 'Sb',
17
- dateFormat: 'dd/mm/yy',
18
- firstDay: 0,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['eo']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-es.js DELETED
@@ -1,23 +0,0 @@
1
- /* Inicialización en español para la extensión 'UI date picker' para jQuery. */
2
- /* Traducido por Vester (xvester@gmail.com). */
3
- jQuery(function($){
4
- $.datepicker.regional['es'] = {
5
- closeText: 'Cerrar',
6
- prevText: '&#x3c;Ant',
7
- nextText: 'Sig&#x3e;',
8
- currentText: 'Hoy',
9
- monthNames: ['Enero','Febrero','Marzo','Abril','Mayo','Junio',
10
- 'Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'],
11
- monthNamesShort: ['Ene','Feb','Mar','Abr','May','Jun',
12
- 'Jul','Ago','Sep','Oct','Nov','Dic'],
13
- dayNames: ['Domingo','Lunes','Martes','Mi&eacute;rcoles','Jueves','Viernes','S&aacute;bado'],
14
- dayNamesShort: ['Dom','Lun','Mar','Mi&eacute;','Juv','Vie','S&aacute;b'],
15
- dayNamesMin: ['Do','Lu','Ma','Mi','Ju','Vi','S&aacute;'],
16
- weekHeader: 'Sm',
17
- dateFormat: 'dd/mm/yy',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['es']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-et.js DELETED
@@ -1,23 +0,0 @@
1
- /* Estonian initialisation for the jQuery UI date picker plugin. */
2
- /* Written by Mart Sõmermaa (mrts.pydev at gmail com). */
3
- jQuery(function($){
4
- $.datepicker.regional['et'] = {
5
- closeText: 'Sulge',
6
- prevText: 'Eelnev',
7
- nextText: 'Järgnev',
8
- currentText: 'Täna',
9
- monthNames: ['Jaanuar','Veebruar','Märts','Aprill','Mai','Juuni',
10
- 'Juuli','August','September','Oktoober','November','Detsember'],
11
- monthNamesShort: ['Jaan', 'Veebr', 'Märts', 'Apr', 'Mai', 'Juuni',
12
- 'Juuli', 'Aug', 'Sept', 'Okt', 'Nov', 'Dets'],
13
- dayNames: ['Pühapäev', 'Esmaspäev', 'Teisipäev', 'Kolmapäev', 'Neljapäev', 'Reede', 'Laupäev'],
14
- dayNamesShort: ['Pühap', 'Esmasp', 'Teisip', 'Kolmap', 'Neljap', 'Reede', 'Laup'],
15
- dayNamesMin: ['P','E','T','K','N','R','L'],
16
- weekHeader: 'näd',
17
- dateFormat: 'dd.mm.yy',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['et']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-eu.js DELETED
@@ -1,23 +0,0 @@
1
- /* Euskarako oinarria 'UI date picker' jquery-ko extentsioarentzat */
2
- /* Karrikas-ek itzulia (karrikas@karrikas.com) */
3
- jQuery(function($){
4
- $.datepicker.regional['eu'] = {
5
- closeText: 'Egina',
6
- prevText: '&#x3c;Aur',
7
- nextText: 'Hur&#x3e;',
8
- currentText: 'Gaur',
9
- monthNames: ['urtarrila','otsaila','martxoa','apirila','maiatza','ekaina',
10
- 'uztaila','abuztua','iraila','urria','azaroa','abendua'],
11
- monthNamesShort: ['urt.','ots.','mar.','api.','mai.','eka.',
12
- 'uzt.','abu.','ira.','urr.','aza.','abe.'],
13
- dayNames: ['igandea','astelehena','asteartea','asteazkena','osteguna','ostirala','larunbata'],
14
- dayNamesShort: ['ig.','al.','ar.','az.','og.','ol.','lr.'],
15
- dayNamesMin: ['ig','al','ar','az','og','ol','lr'],
16
- weekHeader: 'As',
17
- dateFormat: 'yy-mm-dd',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['eu']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-fa.js DELETED
@@ -1,59 +0,0 @@
1
- /* Persian (Farsi) Translation for the jQuery UI date picker plugin. */
2
- /* Javad Mowlanezhad -- jmowla@gmail.com */
3
- /* Jalali calendar should supported soon! (Its implemented but I have to test it) */
4
- jQuery(function($) {
5
- $.datepicker.regional['fa'] = {
6
- closeText: 'بستن',
7
- prevText: '&#x3C;قبلی',
8
- nextText: 'بعدی&#x3E;',
9
- currentText: 'امروز',
10
- monthNames: [
11
- 'فروردين',
12
- 'ارديبهشت',
13
- 'خرداد',
14
- 'تير',
15
- 'مرداد',
16
- 'شهريور',
17
- 'مهر',
18
- 'آبان',
19
- 'آذر',
20
- 'دی',
21
- 'بهمن',
22
- 'اسفند'
23
- ],
24
- monthNamesShort: ['1','2','3','4','5','6','7','8','9','10','11','12'],
25
- dayNames: [
26
- 'يکشنبه',
27
- 'دوشنبه',
28
- 'سه‌شنبه',
29
- 'چهارشنبه',
30
- 'پنجشنبه',
31
- 'جمعه',
32
- 'شنبه'
33
- ],
34
- dayNamesShort: [
35
- 'ی',
36
- 'د',
37
- 'س',
38
- 'چ',
39
- 'پ',
40
- 'ج',
41
- 'ش'
42
- ],
43
- dayNamesMin: [
44
- 'ی',
45
- 'د',
46
- 'س',
47
- 'چ',
48
- 'پ',
49
- 'ج',
50
- 'ش'
51
- ],
52
- weekHeader: 'هف',
53
- dateFormat: 'yy/mm/dd',
54
- firstDay: 6,
55
- isRTL: true,
56
- showMonthAfterYear: false,
57
- yearSuffix: ''};
58
- $.datepicker.setDefaults($.datepicker.regional['fa']);
59
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-fi.js DELETED
@@ -1,23 +0,0 @@
1
- /* Finnish initialisation for the jQuery UI date picker plugin. */
2
- /* Written by Harri Kilpiö (harrikilpio@gmail.com). */
3
- jQuery(function($){
4
- $.datepicker.regional['fi'] = {
5
- closeText: 'Sulje',
6
- prevText: '&#xAB;Edellinen',
7
- nextText: 'Seuraava&#xBB;',
8
- currentText: 'T&#xE4;n&#xE4;&#xE4;n',
9
- monthNames: ['Tammikuu','Helmikuu','Maaliskuu','Huhtikuu','Toukokuu','Kes&#xE4;kuu',
10
- 'Hein&#xE4;kuu','Elokuu','Syyskuu','Lokakuu','Marraskuu','Joulukuu'],
11
- monthNamesShort: ['Tammi','Helmi','Maalis','Huhti','Touko','Kes&#xE4;',
12
- 'Hein&#xE4;','Elo','Syys','Loka','Marras','Joulu'],
13
- dayNamesShort: ['Su','Ma','Ti','Ke','To','Pe','La'],
14
- dayNames: ['Sunnuntai','Maanantai','Tiistai','Keskiviikko','Torstai','Perjantai','Lauantai'],
15
- dayNamesMin: ['Su','Ma','Ti','Ke','To','Pe','La'],
16
- weekHeader: 'Vk',
17
- dateFormat: 'dd.mm.yy',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['fi']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-fo.js DELETED
@@ -1,23 +0,0 @@
1
- /* Faroese initialisation for the jQuery UI date picker plugin */
2
- /* Written by Sverri Mohr Olsen, sverrimo@gmail.com */
3
- jQuery(function($){
4
- $.datepicker.regional['fo'] = {
5
- closeText: 'Lat aftur',
6
- prevText: '&#x3c;Fyrra',
7
- nextText: 'Næsta&#x3e;',
8
- currentText: 'Í dag',
9
- monthNames: ['Januar','Februar','Mars','Apríl','Mei','Juni',
10
- 'Juli','August','September','Oktober','November','Desember'],
11
- monthNamesShort: ['Jan','Feb','Mar','Apr','Mei','Jun',
12
- 'Jul','Aug','Sep','Okt','Nov','Des'],
13
- dayNames: ['Sunnudagur','Mánadagur','Týsdagur','Mikudagur','Hósdagur','Fríggjadagur','Leyardagur'],
14
- dayNamesShort: ['Sun','Mán','Týs','Mik','Hós','Frí','Ley'],
15
- dayNamesMin: ['Su','Má','Tý','Mi','Hó','Fr','Le'],
16
- weekHeader: 'Vk',
17
- dateFormat: 'dd-mm-yy',
18
- firstDay: 0,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['fo']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-fr-CH.js DELETED
@@ -1,23 +0,0 @@
1
- /* Swiss-French initialisation for the jQuery UI date picker plugin. */
2
- /* Written Martin Voelkle (martin.voelkle@e-tc.ch). */
3
- jQuery(function($){
4
- $.datepicker.regional['fr-CH'] = {
5
- closeText: 'Fermer',
6
- prevText: '&#x3c;Préc',
7
- nextText: 'Suiv&#x3e;',
8
- currentText: 'Courant',
9
- monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin',
10
- 'Juillet','Août','Septembre','Octobre','Novembre','Décembre'],
11
- monthNamesShort: ['Jan','Fév','Mar','Avr','Mai','Jun',
12
- 'Jul','Aoû','Sep','Oct','Nov','Déc'],
13
- dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'],
14
- dayNamesShort: ['Dim','Lun','Mar','Mer','Jeu','Ven','Sam'],
15
- dayNamesMin: ['Di','Lu','Ma','Me','Je','Ve','Sa'],
16
- weekHeader: 'Sm',
17
- dateFormat: 'dd.mm.yy',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['fr-CH']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-fr.js DELETED
@@ -1,25 +0,0 @@
1
- /* French initialisation for the jQuery UI date picker plugin. */
2
- /* Written by Keith Wood (kbwood{at}iinet.com.au),
3
- Stéphane Nahmani (sholby@sholby.net),
4
- Stéphane Raimbault <stephane.raimbault@gmail.com> */
5
- jQuery(function($){
6
- $.datepicker.regional['fr'] = {
7
- closeText: 'Fermer',
8
- prevText: 'Précédent',
9
- nextText: 'Suivant',
10
- currentText: 'Aujourd\'hui',
11
- monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin',
12
- 'Juillet','Août','Septembre','Octobre','Novembre','Décembre'],
13
- monthNamesShort: ['Janv.','Févr.','Mars','Avril','Mai','Juin',
14
- 'Juil.','Août','Sept.','Oct.','Nov.','Déc.'],
15
- dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'],
16
- dayNamesShort: ['Dim.','Lun.','Mar.','Mer.','Jeu.','Ven.','Sam.'],
17
- dayNamesMin: ['D','L','M','M','J','V','S'],
18
- weekHeader: 'Sem.',
19
- dateFormat: 'dd/mm/yy',
20
- firstDay: 1,
21
- isRTL: false,
22
- showMonthAfterYear: false,
23
- yearSuffix: ''};
24
- $.datepicker.setDefaults($.datepicker.regional['fr']);
25
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-gl.js DELETED
@@ -1,23 +0,0 @@
1
- /* Galician localization for 'UI date picker' jQuery extension. */
2
- /* Translated by Jorge Barreiro <yortx.barry@gmail.com>. */
3
- jQuery(function($){
4
- $.datepicker.regional['gl'] = {
5
- closeText: 'Pechar',
6
- prevText: '&#x3c;Ant',
7
- nextText: 'Seg&#x3e;',
8
- currentText: 'Hoxe',
9
- monthNames: ['Xaneiro','Febreiro','Marzo','Abril','Maio','Xuño',
10
- 'Xullo','Agosto','Setembro','Outubro','Novembro','Decembro'],
11
- monthNamesShort: ['Xan','Feb','Mar','Abr','Mai','Xuñ',
12
- 'Xul','Ago','Set','Out','Nov','Dec'],
13
- dayNames: ['Domingo','Luns','Martes','M&eacute;rcores','Xoves','Venres','S&aacute;bado'],
14
- dayNamesShort: ['Dom','Lun','Mar','M&eacute;r','Xov','Ven','S&aacute;b'],
15
- dayNamesMin: ['Do','Lu','Ma','M&eacute;','Xo','Ve','S&aacute;'],
16
- weekHeader: 'Sm',
17
- dateFormat: 'dd/mm/yy',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['gl']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-he.js DELETED
@@ -1,23 +0,0 @@
1
- /* Hebrew initialisation for the UI Datepicker extension. */
2
- /* Written by Amir Hardon (ahardon at gmail dot com). */
3
- jQuery(function($){
4
- $.datepicker.regional['he'] = {
5
- closeText: 'סגור',
6
- prevText: '&#x3c;הקודם',
7
- nextText: 'הבא&#x3e;',
8
- currentText: 'היום',
9
- monthNames: ['ינואר','פברואר','מרץ','אפריל','מאי','יוני',
10
- 'יולי','אוגוסט','ספטמבר','אוקטובר','נובמבר','דצמבר'],
11
- monthNamesShort: ['ינו','פבר','מרץ','אפר','מאי','יוני',
12
- 'יולי','אוג','ספט','אוק','נוב','דצמ'],
13
- dayNames: ['ראשון','שני','שלישי','רביעי','חמישי','שישי','שבת'],
14
- dayNamesShort: ['א\'','ב\'','ג\'','ד\'','ה\'','ו\'','שבת'],
15
- dayNamesMin: ['א\'','ב\'','ג\'','ד\'','ה\'','ו\'','שבת'],
16
- weekHeader: 'Wk',
17
- dateFormat: 'dd/mm/yy',
18
- firstDay: 0,
19
- isRTL: true,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['he']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-hi.js DELETED
@@ -1,23 +0,0 @@
1
- /* Hindi initialisation for the jQuery UI date picker plugin. */
2
- /* Written by Michael Dawart. */
3
- jQuery(function($){
4
- $.datepicker.regional['hi'] = {
5
- closeText: 'बंद',
6
- prevText: 'पिछला',
7
- nextText: 'अगला',
8
- currentText: 'आज',
9
- monthNames: ['जनवरी ','फरवरी','मार्च','अप्रेल','मई','जून',
10
- 'जूलाई','अगस्त ','सितम्बर','अक्टूबर','नवम्बर','दिसम्बर'],
11
- monthNamesShort: ['जन', 'फर', 'मार्च', 'अप्रेल', 'मई', 'जून',
12
- 'जूलाई', 'अग', 'सित', 'अक्ट', 'नव', 'दि'],
13
- dayNames: ['रविवार', 'सोमवार', 'मंगलवार', 'बुधवार', 'गुरुवार', 'शुक्रवार', 'शनिवार'],
14
- dayNamesShort: ['रवि', 'सोम', 'मंगल', 'बुध', 'गुरु', 'शुक्र', 'शनि'],
15
- dayNamesMin: ['रवि', 'सोम', 'मंगल', 'बुध', 'गुरु', 'शुक्र', 'शनि'],
16
- weekHeader: 'हफ्ता',
17
- dateFormat: 'dd/mm/yy',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['hi']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-hr.js DELETED
@@ -1,23 +0,0 @@
1
- /* Croatian i18n for the jQuery UI date picker plugin. */
2
- /* Written by Vjekoslav Nesek. */
3
- jQuery(function($){
4
- $.datepicker.regional['hr'] = {
5
- closeText: 'Zatvori',
6
- prevText: '&#x3c;',
7
- nextText: '&#x3e;',
8
- currentText: 'Danas',
9
- monthNames: ['Siječanj','Veljača','Ožujak','Travanj','Svibanj','Lipanj',
10
- 'Srpanj','Kolovoz','Rujan','Listopad','Studeni','Prosinac'],
11
- monthNamesShort: ['Sij','Velj','Ožu','Tra','Svi','Lip',
12
- 'Srp','Kol','Ruj','Lis','Stu','Pro'],
13
- dayNames: ['Nedjelja','Ponedjeljak','Utorak','Srijeda','Četvrtak','Petak','Subota'],
14
- dayNamesShort: ['Ned','Pon','Uto','Sri','Čet','Pet','Sub'],
15
- dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'],
16
- weekHeader: 'Tje',
17
- dateFormat: 'dd.mm.yy.',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['hr']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-hu.js DELETED
@@ -1,23 +0,0 @@
1
- /* Hungarian initialisation for the jQuery UI date picker plugin. */
2
- /* Written by Istvan Karaszi (jquery@spam.raszi.hu). */
3
- jQuery(function($){
4
- $.datepicker.regional['hu'] = {
5
- closeText: 'bezár',
6
- prevText: 'vissza',
7
- nextText: 'előre',
8
- currentText: 'ma',
9
- monthNames: ['Január', 'Február', 'Március', 'Április', 'Május', 'Június',
10
- 'Július', 'Augusztus', 'Szeptember', 'Október', 'November', 'December'],
11
- monthNamesShort: ['Jan', 'Feb', 'Már', 'Ápr', 'Máj', 'Jún',
12
- 'Júl', 'Aug', 'Szep', 'Okt', 'Nov', 'Dec'],
13
- dayNames: ['Vasárnap', 'Hétfő', 'Kedd', 'Szerda', 'Csütörtök', 'Péntek', 'Szombat'],
14
- dayNamesShort: ['Vas', 'Hét', 'Ked', 'Sze', 'Csü', 'Pén', 'Szo'],
15
- dayNamesMin: ['V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo'],
16
- weekHeader: 'Hét',
17
- dateFormat: 'yy.mm.dd.',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: true,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['hu']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-hy.js DELETED
@@ -1,23 +0,0 @@
1
- /* Armenian(UTF-8) initialisation for the jQuery UI date picker plugin. */
2
- /* Written by Levon Zakaryan (levon.zakaryan@gmail.com)*/
3
- jQuery(function($){
4
- $.datepicker.regional['hy'] = {
5
- closeText: 'Փակել',
6
- prevText: '&#x3c;Նախ.',
7
- nextText: 'Հաջ.&#x3e;',
8
- currentText: 'Այսօր',
9
- monthNames: ['Հունվար','Փետրվար','Մարտ','Ապրիլ','Մայիս','Հունիս',
10
- 'Հուլիս','Օգոստոս','Սեպտեմբեր','Հոկտեմբեր','Նոյեմբեր','Դեկտեմբեր'],
11
- monthNamesShort: ['Հունվ','Փետր','Մարտ','Ապր','Մայիս','Հունիս',
12
- 'Հուլ','Օգս','Սեպ','Հոկ','Նոյ','Դեկ'],
13
- dayNames: ['կիրակի','եկուշաբթի','երեքշաբթի','չորեքշաբթի','հինգշաբթի','ուրբաթ','շաբաթ'],
14
- dayNamesShort: ['կիր','երկ','երք','չրք','հնգ','ուրբ','շբթ'],
15
- dayNamesMin: ['կիր','երկ','երք','չրք','հնգ','ուրբ','շբթ'],
16
- weekHeader: 'ՇԲՏ',
17
- dateFormat: 'dd.mm.yy',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['hy']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-id.js DELETED
@@ -1,23 +0,0 @@
1
- /* Indonesian initialisation for the jQuery UI date picker plugin. */
2
- /* Written by Deden Fathurahman (dedenf@gmail.com). */
3
- jQuery(function($){
4
- $.datepicker.regional['id'] = {
5
- closeText: 'Tutup',
6
- prevText: '&#x3c;mundur',
7
- nextText: 'maju&#x3e;',
8
- currentText: 'hari ini',
9
- monthNames: ['Januari','Februari','Maret','April','Mei','Juni',
10
- 'Juli','Agustus','September','Oktober','Nopember','Desember'],
11
- monthNamesShort: ['Jan','Feb','Mar','Apr','Mei','Jun',
12
- 'Jul','Agus','Sep','Okt','Nop','Des'],
13
- dayNames: ['Minggu','Senin','Selasa','Rabu','Kamis','Jumat','Sabtu'],
14
- dayNamesShort: ['Min','Sen','Sel','Rab','kam','Jum','Sab'],
15
- dayNamesMin: ['Mg','Sn','Sl','Rb','Km','jm','Sb'],
16
- weekHeader: 'Mg',
17
- dateFormat: 'dd/mm/yy',
18
- firstDay: 0,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['id']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-is.js DELETED
@@ -1,23 +0,0 @@
1
- /* Icelandic initialisation for the jQuery UI date picker plugin. */
2
- /* Written by Haukur H. Thorsson (haukur@eskill.is). */
3
- jQuery(function($){
4
- $.datepicker.regional['is'] = {
5
- closeText: 'Loka',
6
- prevText: '&#x3c; Fyrri',
7
- nextText: 'N&aelig;sti &#x3e;',
8
- currentText: '&Iacute; dag',
9
- monthNames: ['Jan&uacute;ar','Febr&uacute;ar','Mars','Apr&iacute;l','Ma&iacute','J&uacute;n&iacute;',
10
- 'J&uacute;l&iacute;','&Aacute;g&uacute;st','September','Okt&oacute;ber','N&oacute;vember','Desember'],
11
- monthNamesShort: ['Jan','Feb','Mar','Apr','Ma&iacute;','J&uacute;n',
12
- 'J&uacute;l','&Aacute;g&uacute;','Sep','Okt','N&oacute;v','Des'],
13
- dayNames: ['Sunnudagur','M&aacute;nudagur','&THORN;ri&eth;judagur','Mi&eth;vikudagur','Fimmtudagur','F&ouml;studagur','Laugardagur'],
14
- dayNamesShort: ['Sun','M&aacute;n','&THORN;ri','Mi&eth;','Fim','F&ouml;s','Lau'],
15
- dayNamesMin: ['Su','M&aacute;','&THORN;r','Mi','Fi','F&ouml;','La'],
16
- weekHeader: 'Vika',
17
- dateFormat: 'dd/mm/yy',
18
- firstDay: 0,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['is']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-it.js DELETED
@@ -1,23 +0,0 @@
1
- /* Italian initialisation for the jQuery UI date picker plugin. */
2
- /* Written by Antonello Pasella (antonello.pasella@gmail.com). */
3
- jQuery(function($){
4
- $.datepicker.regional['it'] = {
5
- closeText: 'Chiudi',
6
- prevText: '&#x3c;Prec',
7
- nextText: 'Succ&#x3e;',
8
- currentText: 'Oggi',
9
- monthNames: ['Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno',
10
- 'Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'],
11
- monthNamesShort: ['Gen','Feb','Mar','Apr','Mag','Giu',
12
- 'Lug','Ago','Set','Ott','Nov','Dic'],
13
- dayNames: ['Domenica','Luned&#236','Marted&#236','Mercoled&#236','Gioved&#236','Venerd&#236','Sabato'],
14
- dayNamesShort: ['Dom','Lun','Mar','Mer','Gio','Ven','Sab'],
15
- dayNamesMin: ['Do','Lu','Ma','Me','Gi','Ve','Sa'],
16
- weekHeader: 'Sm',
17
- dateFormat: 'dd/mm/yy',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['it']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-ja.js DELETED
@@ -1,23 +0,0 @@
1
- /* Japanese initialisation for the jQuery UI date picker plugin. */
2
- /* Written by Kentaro SATO (kentaro@ranvis.com). */
3
- jQuery(function($){
4
- $.datepicker.regional['ja'] = {
5
- closeText: '閉じる',
6
- prevText: '&#x3c;前',
7
- nextText: '次&#x3e;',
8
- currentText: '今日',
9
- monthNames: ['1月','2月','3月','4月','5月','6月',
10
- '7月','8月','9月','10月','11月','12月'],
11
- monthNamesShort: ['1月','2月','3月','4月','5月','6月',
12
- '7月','8月','9月','10月','11月','12月'],
13
- dayNames: ['日曜日','月曜日','火曜日','水曜日','木曜日','金曜日','土曜日'],
14
- dayNamesShort: ['日','月','火','水','木','金','土'],
15
- dayNamesMin: ['日','月','火','水','木','金','土'],
16
- weekHeader: '週',
17
- dateFormat: 'yy/mm/dd',
18
- firstDay: 0,
19
- isRTL: false,
20
- showMonthAfterYear: true,
21
- yearSuffix: '年'};
22
- $.datepicker.setDefaults($.datepicker.regional['ja']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-ka.js DELETED
@@ -1,21 +0,0 @@
1
- /* Georgian (UTF-8) initialisation for the jQuery UI date picker plugin. */
2
- /* Written by Lado Lomidze (lado.lomidze@gmail.com). */
3
- jQuery(function($){
4
- $.datepicker.regional['ka'] = {
5
- closeText: 'დახურვა',
6
- prevText: '&#x3c; წინა',
7
- nextText: 'შემდეგი &#x3e;',
8
- currentText: 'დღეს',
9
- monthNames: ['იანვარი','თებერვალი','მარტი','აპრილი','მაისი','ივნისი', 'ივლისი','აგვისტო','სექტემბერი','ოქტომბერი','ნოემბერი','დეკემბერი'],
10
- monthNamesShort: ['იან','თებ','მარ','აპრ','მაი','ივნ', 'ივლ','აგვ','სექ','ოქტ','ნოე','დეკ'],
11
- dayNames: ['კვირა','ორშაბათი','სამშაბათი','ოთხშაბათი','ხუთშაბათი','პარასკევი','შაბათი'],
12
- dayNamesShort: ['კვ','ორშ','სამ','ოთხ','ხუთ','პარ','შაბ'],
13
- dayNamesMin: ['კვ','ორშ','სამ','ოთხ','ხუთ','პარ','შაბ'],
14
- weekHeader: 'კვირა',
15
- dateFormat: 'dd-mm-yy',
16
- firstDay: 1,
17
- isRTL: false,
18
- showMonthAfterYear: false,
19
- yearSuffix: ''};
20
- $.datepicker.setDefaults($.datepicker.regional['ka']);
21
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-kk.js DELETED
@@ -1,23 +0,0 @@
1
- /* Kazakh (UTF-8) initialisation for the jQuery UI date picker plugin. */
2
- /* Written by Dmitriy Karasyov (dmitriy.karasyov@gmail.com). */
3
- jQuery(function($){
4
- $.datepicker.regional['kk'] = {
5
- closeText: 'Жабу',
6
- prevText: '&#x3c;Алдыңғы',
7
- nextText: 'Келесі&#x3e;',
8
- currentText: 'Бүгін',
9
- monthNames: ['Қаңтар','Ақпан','Наурыз','Сәуір','Мамыр','Маусым',
10
- 'Шілде','Тамыз','Қыркүйек','Қазан','Қараша','Желтоқсан'],
11
- monthNamesShort: ['Қаң','Ақп','Нау','Сәу','Мам','Мау',
12
- 'Шіл','Там','Қыр','Қаз','Қар','Жел'],
13
- dayNames: ['Жексенбі','Дүйсенбі','Сейсенбі','Сәрсенбі','Бейсенбі','Жұма','Сенбі'],
14
- dayNamesShort: ['жкс','дсн','ссн','срс','бсн','жма','снб'],
15
- dayNamesMin: ['Жк','Дс','Сс','Ср','Бс','Жм','Сн'],
16
- weekHeader: 'Не',
17
- dateFormat: 'dd.mm.yy',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['kk']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-km.js DELETED
@@ -1,23 +0,0 @@
1
- /* Khmer initialisation for the jQuery calendar extension. */
2
- /* Written by Chandara Om (chandara.teacher@gmail.com). */
3
- jQuery(function($){
4
- $.datepicker.regional['km'] = {
5
- closeText: 'ធ្វើ​រួច',
6
- prevText: 'មុន',
7
- nextText: 'បន្ទាប់',
8
- currentText: 'ថ្ងៃ​នេះ',
9
- monthNames: ['មករា','កុម្ភៈ','មីនា','មេសា','ឧសភា','មិថុនា',
10
- 'កក្កដា','សីហា','កញ្ញា','តុលា','វិច្ឆិកា','ធ្នូ'],
11
- monthNamesShort: ['មករា','កុម្ភៈ','មីនា','មេសា','ឧសភា','មិថុនា',
12
- 'កក្កដា','សីហា','កញ្ញា','តុលា','វិច្ឆិកា','ធ្នូ'],
13
- dayNames: ['អាទិត្យ', 'ចន្ទ', 'អង្គារ', 'ពុធ', 'ព្រហស្បតិ៍', 'សុក្រ', 'សៅរ៍'],
14
- dayNamesShort: ['អា', 'ច', 'អ', 'ពុ', 'ព្រហ', 'សុ', 'សៅ'],
15
- dayNamesMin: ['អា', 'ច', 'អ', 'ពុ', 'ព្រហ', 'សុ', 'សៅ'],
16
- weekHeader: 'សប្ដាហ៍',
17
- dateFormat: 'dd-mm-yy',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['km']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-ko.js DELETED
@@ -1,23 +0,0 @@
1
- /* Korean initialisation for the jQuery calendar extension. */
2
- /* Written by DaeKwon Kang (ncrash.dk@gmail.com), Edited by Genie. */
3
- jQuery(function($){
4
- $.datepicker.regional['ko'] = {
5
- closeText: '닫기',
6
- prevText: '이전달',
7
- nextText: '다음달',
8
- currentText: '오늘',
9
- monthNames: ['1월','2월','3월','4월','5월','6월',
10
- '7월','8월','9월','10월','11월','12월'],
11
- monthNamesShort: ['1월','2월','3월','4월','5월','6월',
12
- '7월','8월','9월','10월','11월','12월'],
13
- dayNames: ['일요일','월요일','화요일','수요일','목요일','금요일','토요일'],
14
- dayNamesShort: ['일','월','화','수','목','금','토'],
15
- dayNamesMin: ['일','월','화','수','목','금','토'],
16
- weekHeader: 'Wk',
17
- dateFormat: 'yy-mm-dd',
18
- firstDay: 0,
19
- isRTL: false,
20
- showMonthAfterYear: true,
21
- yearSuffix: '년'};
22
- $.datepicker.setDefaults($.datepicker.regional['ko']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-lb.js DELETED
@@ -1,23 +0,0 @@
1
- /* Luxembourgish initialisation for the jQuery UI date picker plugin. */
2
- /* Written by Michel Weimerskirch <michel@weimerskirch.net> */
3
- jQuery(function($){
4
- $.datepicker.regional['lb'] = {
5
- closeText: 'Fäerdeg',
6
- prevText: 'Zréck',
7
- nextText: 'Weider',
8
- currentText: 'Haut',
9
- monthNames: ['Januar','Februar','Mäerz','Abrëll','Mee','Juni',
10
- 'Juli','August','September','Oktober','November','Dezember'],
11
- monthNamesShort: ['Jan', 'Feb', 'Mäe', 'Abr', 'Mee', 'Jun',
12
- 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'],
13
- dayNames: ['Sonndeg', 'Méindeg', 'Dënschdeg', 'Mëttwoch', 'Donneschdeg', 'Freideg', 'Samschdeg'],
14
- dayNamesShort: ['Son', 'Méi', 'Dën', 'Mët', 'Don', 'Fre', 'Sam'],
15
- dayNamesMin: ['So','Mé','Dë','Më','Do','Fr','Sa'],
16
- weekHeader: 'W',
17
- dateFormat: 'dd.mm.yy',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['lb']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-lt.js DELETED
@@ -1,23 +0,0 @@
1
- /* Lithuanian (UTF-8) initialisation for the jQuery UI date picker plugin. */
2
- /* @author Arturas Paleicikas <arturas@avalon.lt> */
3
- jQuery(function($){
4
- $.datepicker.regional['lt'] = {
5
- closeText: 'Uždaryti',
6
- prevText: '&#x3c;Atgal',
7
- nextText: 'Pirmyn&#x3e;',
8
- currentText: 'Šiandien',
9
- monthNames: ['Sausis','Vasaris','Kovas','Balandis','Gegužė','Birželis',
10
- 'Liepa','Rugpjūtis','Rugsėjis','Spalis','Lapkritis','Gruodis'],
11
- monthNamesShort: ['Sau','Vas','Kov','Bal','Geg','Bir',
12
- 'Lie','Rugp','Rugs','Spa','Lap','Gru'],
13
- dayNames: ['sekmadienis','pirmadienis','antradienis','trečiadienis','ketvirtadienis','penktadienis','šeštadienis'],
14
- dayNamesShort: ['sek','pir','ant','tre','ket','pen','šeš'],
15
- dayNamesMin: ['Se','Pr','An','Tr','Ke','Pe','Še'],
16
- weekHeader: 'Wk',
17
- dateFormat: 'yy-mm-dd',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['lt']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-lv.js DELETED
@@ -1,23 +0,0 @@
1
- /* Latvian (UTF-8) initialisation for the jQuery UI date picker plugin. */
2
- /* @author Arturas Paleicikas <arturas.paleicikas@metasite.net> */
3
- jQuery(function($){
4
- $.datepicker.regional['lv'] = {
5
- closeText: 'Aizvērt',
6
- prevText: 'Iepr',
7
- nextText: 'Nāka',
8
- currentText: 'Šodien',
9
- monthNames: ['Janvāris','Februāris','Marts','Aprīlis','Maijs','Jūnijs',
10
- 'Jūlijs','Augusts','Septembris','Oktobris','Novembris','Decembris'],
11
- monthNamesShort: ['Jan','Feb','Mar','Apr','Mai','Jūn',
12
- 'Jūl','Aug','Sep','Okt','Nov','Dec'],
13
- dayNames: ['svētdiena','pirmdiena','otrdiena','trešdiena','ceturtdiena','piektdiena','sestdiena'],
14
- dayNamesShort: ['svt','prm','otr','tre','ctr','pkt','sst'],
15
- dayNamesMin: ['Sv','Pr','Ot','Tr','Ct','Pk','Ss'],
16
- weekHeader: 'Nav',
17
- dateFormat: 'dd-mm-yy',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['lv']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-mk.js DELETED
@@ -1,23 +0,0 @@
1
- /* Macedonian i18n for the jQuery UI date picker plugin. */
2
- /* Written by Stojce Slavkovski. */
3
- jQuery(function($){
4
- $.datepicker.regional['mk'] = {
5
- closeText: 'Затвори',
6
- prevText: '&#x3C;',
7
- nextText: '&#x3E;',
8
- currentText: 'Денес',
9
- monthNames: ['Јануари','Февруари','Март','Април','Мај','Јуни',
10
- 'Јули','Август','Септември','Октомври','Ноември','Декември'],
11
- monthNamesShort: ['Јан','Фев','Мар','Апр','Мај','Јун',
12
- 'Јул','Авг','Сеп','Окт','Ное','Дек'],
13
- dayNames: ['Недела','Понеделник','Вторник','Среда','Четврток','Петок','Сабота'],
14
- dayNamesShort: ['Нед','Пон','Вто','Сре','Чет','Пет','Саб'],
15
- dayNamesMin: ['Не','По','Вт','Ср','Че','Пе','Са'],
16
- weekHeader: 'Сед',
17
- dateFormat: 'dd.mm.yy',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['mk']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-ml.js DELETED
@@ -1,23 +0,0 @@
1
- /* Malayalam (UTF-8) initialisation for the jQuery UI date picker plugin. */
2
- /* Written by Saji Nediyanchath (saji89@gmail.com). */
3
- jQuery(function($){
4
- $.datepicker.regional['ml'] = {
5
- closeText: 'ശരി',
6
- prevText: 'മുന്നത്തെ',
7
- nextText: 'അടുത്തത് ',
8
- currentText: 'ഇന്ന്',
9
- monthNames: ['ജനുവരി','ഫെബ്രുവരി','മാര്‍ച്ച്','ഏപ്രില്‍','മേയ്','ജൂണ്‍',
10
- 'ജൂലൈ','ആഗസ്റ്റ്','സെപ്റ്റംബര്‍','ഒക്ടോബര്‍','നവംബര്‍','ഡിസംബര്‍'],
11
- monthNamesShort: ['ജനു', 'ഫെബ്', 'മാര്‍', 'ഏപ്രി', 'മേയ്', 'ജൂണ്‍',
12
- 'ജൂലാ', 'ആഗ', 'സെപ്', 'ഒക്ടോ', 'നവം', 'ഡിസ'],
13
- dayNames: ['ഞായര്‍', 'തിങ്കള്‍', 'ചൊവ്വ', 'ബുധന്‍', 'വ്യാഴം', 'വെള്ളി', 'ശനി'],
14
- dayNamesShort: ['ഞായ', 'തിങ്ക', 'ചൊവ്വ', 'ബുധ', 'വ്യാഴം', 'വെള്ളി', 'ശനി'],
15
- dayNamesMin: ['ഞാ','തി','ചൊ','ബു','വ്യാ','വെ','ശ'],
16
- weekHeader: 'ആ',
17
- dateFormat: 'dd/mm/yy',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['ml']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-ms.js DELETED
@@ -1,23 +0,0 @@
1
- /* Malaysian initialisation for the jQuery UI date picker plugin. */
2
- /* Written by Mohd Nawawi Mohamad Jamili (nawawi@ronggeng.net). */
3
- jQuery(function($){
4
- $.datepicker.regional['ms'] = {
5
- closeText: 'Tutup',
6
- prevText: '&#x3c;Sebelum',
7
- nextText: 'Selepas&#x3e;',
8
- currentText: 'hari ini',
9
- monthNames: ['Januari','Februari','Mac','April','Mei','Jun',
10
- 'Julai','Ogos','September','Oktober','November','Disember'],
11
- monthNamesShort: ['Jan','Feb','Mac','Apr','Mei','Jun',
12
- 'Jul','Ogo','Sep','Okt','Nov','Dis'],
13
- dayNames: ['Ahad','Isnin','Selasa','Rabu','Khamis','Jumaat','Sabtu'],
14
- dayNamesShort: ['Aha','Isn','Sel','Rab','kha','Jum','Sab'],
15
- dayNamesMin: ['Ah','Is','Se','Ra','Kh','Ju','Sa'],
16
- weekHeader: 'Mg',
17
- dateFormat: 'dd/mm/yy',
18
- firstDay: 0,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['ms']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-nl-BE.js DELETED
@@ -1,23 +0,0 @@
1
- /* Dutch (Belgium) initialisation for the jQuery UI date picker plugin. */
2
- /* David De Sloovere @DavidDeSloovere */
3
- jQuery(function($){
4
- $.datepicker.regional['nl-BE'] = {
5
- closeText: 'Sluiten',
6
- prevText: '←',
7
- nextText: '→',
8
- currentText: 'Vandaag',
9
- monthNames: ['januari', 'februari', 'maart', 'april', 'mei', 'juni',
10
- 'juli', 'augustus', 'september', 'oktober', 'november', 'december'],
11
- monthNamesShort: ['jan', 'feb', 'mrt', 'apr', 'mei', 'jun',
12
- 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'],
13
- dayNames: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'],
14
- dayNamesShort: ['zon', 'maa', 'din', 'woe', 'don', 'vri', 'zat'],
15
- dayNamesMin: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],
16
- weekHeader: 'Wk',
17
- dateFormat: 'dd/mm/yy',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['nl-BE']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-nl.js DELETED
@@ -1,23 +0,0 @@
1
- /* Dutch (UTF-8) initialisation for the jQuery UI date picker plugin. */
2
- /* Written by Mathias Bynens <http://mathiasbynens.be/> */
3
- jQuery(function($){
4
- $.datepicker.regional.nl = {
5
- closeText: 'Sluiten',
6
- prevText: '←',
7
- nextText: '→',
8
- currentText: 'Vandaag',
9
- monthNames: ['januari', 'februari', 'maart', 'april', 'mei', 'juni',
10
- 'juli', 'augustus', 'september', 'oktober', 'november', 'december'],
11
- monthNamesShort: ['jan', 'feb', 'mrt', 'apr', 'mei', 'jun',
12
- 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'],
13
- dayNames: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'],
14
- dayNamesShort: ['zon', 'maa', 'din', 'woe', 'don', 'vri', 'zat'],
15
- dayNamesMin: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],
16
- weekHeader: 'Wk',
17
- dateFormat: 'dd-mm-yy',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional.nl);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-no.js DELETED
@@ -1,23 +0,0 @@
1
- /* Norwegian initialisation for the jQuery UI date picker plugin. */
2
- /* Written by Naimdjon Takhirov (naimdjon@gmail.com). */
3
-
4
- jQuery(function($){
5
- $.datepicker.regional['no'] = {
6
- closeText: 'Lukk',
7
- prevText: '&laquo;Forrige',
8
- nextText: 'Neste&raquo;',
9
- currentText: 'I dag',
10
- monthNames: ['januar','februar','mars','april','mai','juni','juli','august','september','oktober','november','desember'],
11
- monthNamesShort: ['jan','feb','mar','apr','mai','jun','jul','aug','sep','okt','nov','des'],
12
- dayNamesShort: ['søn','man','tir','ons','tor','fre','lør'],
13
- dayNames: ['søndag','mandag','tirsdag','onsdag','torsdag','fredag','lørdag'],
14
- dayNamesMin: ['sø','ma','ti','on','to','fr','lø'],
15
- weekHeader: 'Uke',
16
- dateFormat: 'dd.mm.yy',
17
- firstDay: 1,
18
- isRTL: false,
19
- showMonthAfterYear: false,
20
- yearSuffix: ''
21
- };
22
- $.datepicker.setDefaults($.datepicker.regional['no']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-pl.js DELETED
@@ -1,23 +0,0 @@
1
- /* Polish initialisation for the jQuery UI date picker plugin. */
2
- /* Written by Jacek Wysocki (jacek.wysocki@gmail.com). */
3
- jQuery(function($){
4
- $.datepicker.regional['pl'] = {
5
- closeText: 'Zamknij',
6
- prevText: '&#x3c;Poprzedni',
7
- nextText: 'Następny&#x3e;',
8
- currentText: 'Dziś',
9
- monthNames: ['Styczeń','Luty','Marzec','Kwiecień','Maj','Czerwiec',
10
- 'Lipiec','Sierpień','Wrzesień','Październik','Listopad','Grudzień'],
11
- monthNamesShort: ['Sty','Lu','Mar','Kw','Maj','Cze',
12
- 'Lip','Sie','Wrz','Pa','Lis','Gru'],
13
- dayNames: ['Niedziela','Poniedziałek','Wtorek','Środa','Czwartek','Piątek','Sobota'],
14
- dayNamesShort: ['Nie','Pn','Wt','Śr','Czw','Pt','So'],
15
- dayNamesMin: ['N','Pn','Wt','Śr','Cz','Pt','So'],
16
- weekHeader: 'Tydz',
17
- dateFormat: 'dd.mm.yy',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['pl']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-pt-BR.js DELETED
@@ -1,23 +0,0 @@
1
- /* Brazilian initialisation for the jQuery UI date picker plugin. */
2
- /* Written by Leonildo Costa Silva (leocsilva@gmail.com). */
3
- jQuery(function($){
4
- $.datepicker.regional['pt-BR'] = {
5
- closeText: 'Fechar',
6
- prevText: '&#x3c;Anterior',
7
- nextText: 'Pr&oacute;ximo&#x3e;',
8
- currentText: 'Hoje',
9
- monthNames: ['Janeiro','Fevereiro','Mar&ccedil;o','Abril','Maio','Junho',
10
- 'Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'],
11
- monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun',
12
- 'Jul','Ago','Set','Out','Nov','Dez'],
13
- dayNames: ['Domingo','Segunda-feira','Ter&ccedil;a-feira','Quarta-feira','Quinta-feira','Sexta-feira','S&aacute;bado'],
14
- dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','S&aacute;b'],
15
- dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','S&aacute;b'],
16
- weekHeader: 'Sm',
17
- dateFormat: 'dd/mm/yy',
18
- firstDay: 0,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['pt-BR']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-pt.js DELETED
@@ -1,22 +0,0 @@
1
- /* Portuguese initialisation for the jQuery UI date picker plugin. */
2
- jQuery(function($){
3
- $.datepicker.regional['pt'] = {
4
- closeText: 'Fechar',
5
- prevText: '&#x3c;Anterior',
6
- nextText: 'Seguinte',
7
- currentText: 'Hoje',
8
- monthNames: ['Janeiro','Fevereiro','Mar&ccedil;o','Abril','Maio','Junho',
9
- 'Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'],
10
- monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun',
11
- 'Jul','Ago','Set','Out','Nov','Dez'],
12
- dayNames: ['Domingo','Segunda-feira','Ter&ccedil;a-feira','Quarta-feira','Quinta-feira','Sexta-feira','S&aacute;bado'],
13
- dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','S&aacute;b'],
14
- dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','S&aacute;b'],
15
- weekHeader: 'Sem',
16
- dateFormat: 'dd/mm/yy',
17
- firstDay: 0,
18
- isRTL: false,
19
- showMonthAfterYear: false,
20
- yearSuffix: ''};
21
- $.datepicker.setDefaults($.datepicker.regional['pt']);
22
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-rm.js DELETED
@@ -1,21 +0,0 @@
1
- /* Romansh initialisation for the jQuery UI date picker plugin. */
2
- /* Written by Yvonne Gienal (yvonne.gienal@educa.ch). */
3
- jQuery(function($){
4
- $.datepicker.regional['rm'] = {
5
- closeText: 'Serrar',
6
- prevText: '&#x3c;Suandant',
7
- nextText: 'Precedent&#x3e;',
8
- currentText: 'Actual',
9
- monthNames: ['Schaner','Favrer','Mars','Avrigl','Matg','Zercladur', 'Fanadur','Avust','Settember','October','November','December'],
10
- monthNamesShort: ['Scha','Fev','Mar','Avr','Matg','Zer', 'Fan','Avu','Sett','Oct','Nov','Dec'],
11
- dayNames: ['Dumengia','Glindesdi','Mardi','Mesemna','Gievgia','Venderdi','Sonda'],
12
- dayNamesShort: ['Dum','Gli','Mar','Mes','Gie','Ven','Som'],
13
- dayNamesMin: ['Du','Gl','Ma','Me','Gi','Ve','So'],
14
- weekHeader: 'emna',
15
- dateFormat: 'dd/mm/yy',
16
- firstDay: 1,
17
- isRTL: false,
18
- showMonthAfterYear: false,
19
- yearSuffix: ''};
20
- $.datepicker.setDefaults($.datepicker.regional['rm']);
21
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-ro.js DELETED
@@ -1,26 +0,0 @@
1
- /* Romanian initialisation for the jQuery UI date picker plugin.
2
- *
3
- * Written by Edmond L. (ll_edmond@walla.com)
4
- * and Ionut G. Stan (ionut.g.stan@gmail.com)
5
- */
6
- jQuery(function($){
7
- $.datepicker.regional['ro'] = {
8
- closeText: 'Închide',
9
- prevText: '&laquo; Luna precedentă',
10
- nextText: 'Luna următoare &raquo;',
11
- currentText: 'Azi',
12
- monthNames: ['Ianuarie','Februarie','Martie','Aprilie','Mai','Iunie',
13
- 'Iulie','August','Septembrie','Octombrie','Noiembrie','Decembrie'],
14
- monthNamesShort: ['Ian', 'Feb', 'Mar', 'Apr', 'Mai', 'Iun',
15
- 'Iul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
16
- dayNames: ['Duminică', 'Luni', 'Marţi', 'Miercuri', 'Joi', 'Vineri', 'Sâmbătă'],
17
- dayNamesShort: ['Dum', 'Lun', 'Mar', 'Mie', 'Joi', 'Vin', 'Sâm'],
18
- dayNamesMin: ['Du','Lu','Ma','Mi','Jo','Vi','Sâ'],
19
- weekHeader: 'Săpt',
20
- dateFormat: 'dd.mm.yy',
21
- firstDay: 1,
22
- isRTL: false,
23
- showMonthAfterYear: false,
24
- yearSuffix: ''};
25
- $.datepicker.setDefaults($.datepicker.regional['ro']);
26
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-ru.js DELETED
@@ -1,23 +0,0 @@
1
- /* Russian (UTF-8) initialisation for the jQuery UI date picker plugin. */
2
- /* Written by Andrew Stromnov (stromnov@gmail.com). */
3
- jQuery(function($){
4
- $.datepicker.regional['ru'] = {
5
- closeText: 'Закрыть',
6
- prevText: '&#x3c;Пред',
7
- nextText: 'След&#x3e;',
8
- currentText: 'Сегодня',
9
- monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь',
10
- 'Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
11
- monthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн',
12
- 'Июл','Авг','Сен','Окт','Ноя','Дек'],
13
- dayNames: ['воскресенье','понедельник','вторник','среда','четверг','пятница','суббота'],
14
- dayNamesShort: ['вск','пнд','втр','срд','чтв','птн','сбт'],
15
- dayNamesMin: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб'],
16
- weekHeader: 'Нед',
17
- dateFormat: 'dd.mm.yy',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['ru']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-sk.js DELETED
@@ -1,23 +0,0 @@
1
- /* Slovak initialisation for the jQuery UI date picker plugin. */
2
- /* Written by Vojtech Rinik (vojto@hmm.sk). */
3
- jQuery(function($){
4
- $.datepicker.regional['sk'] = {
5
- closeText: 'Zavrieť',
6
- prevText: '&#x3c;Predchádzajúci',
7
- nextText: 'Nasledujúci&#x3e;',
8
- currentText: 'Dnes',
9
- monthNames: ['Január','Február','Marec','Apríl','Máj','Jún',
10
- 'Júl','August','September','Október','November','December'],
11
- monthNamesShort: ['Jan','Feb','Mar','Apr','Máj','Jún',
12
- 'Júl','Aug','Sep','Okt','Nov','Dec'],
13
- dayNames: ['Nedeľa','Pondelok','Utorok','Streda','Štvrtok','Piatok','Sobota'],
14
- dayNamesShort: ['Ned','Pon','Uto','Str','Štv','Pia','Sob'],
15
- dayNamesMin: ['Ne','Po','Ut','St','Št','Pia','So'],
16
- weekHeader: 'Ty',
17
- dateFormat: 'dd.mm.yy',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['sk']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-sl.js DELETED
@@ -1,24 +0,0 @@
1
- /* Slovenian initialisation for the jQuery UI date picker plugin. */
2
- /* Written by Jaka Jancar (jaka@kubje.org). */
3
- /* c = &#x10D;, s = &#x161; z = &#x17E; C = &#x10C; S = &#x160; Z = &#x17D; */
4
- jQuery(function($){
5
- $.datepicker.regional['sl'] = {
6
- closeText: 'Zapri',
7
- prevText: '&lt;Prej&#x161;nji',
8
- nextText: 'Naslednji&gt;',
9
- currentText: 'Trenutni',
10
- monthNames: ['Januar','Februar','Marec','April','Maj','Junij',
11
- 'Julij','Avgust','September','Oktober','November','December'],
12
- monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
13
- 'Jul','Avg','Sep','Okt','Nov','Dec'],
14
- dayNames: ['Nedelja','Ponedeljek','Torek','Sreda','&#x10C;etrtek','Petek','Sobota'],
15
- dayNamesShort: ['Ned','Pon','Tor','Sre','&#x10C;et','Pet','Sob'],
16
- dayNamesMin: ['Ne','Po','To','Sr','&#x10C;e','Pe','So'],
17
- weekHeader: 'Teden',
18
- dateFormat: 'dd.mm.yy',
19
- firstDay: 1,
20
- isRTL: false,
21
- showMonthAfterYear: false,
22
- yearSuffix: ''};
23
- $.datepicker.setDefaults($.datepicker.regional['sl']);
24
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-sq.js DELETED
@@ -1,23 +0,0 @@
1
- /* Albanian initialisation for the jQuery UI date picker plugin. */
2
- /* Written by Flakron Bytyqi (flakron@gmail.com). */
3
- jQuery(function($){
4
- $.datepicker.regional['sq'] = {
5
- closeText: 'mbylle',
6
- prevText: '&#x3c;mbrapa',
7
- nextText: 'Përpara&#x3e;',
8
- currentText: 'sot',
9
- monthNames: ['Janar','Shkurt','Mars','Prill','Maj','Qershor',
10
- 'Korrik','Gusht','Shtator','Tetor','Nëntor','Dhjetor'],
11
- monthNamesShort: ['Jan','Shk','Mar','Pri','Maj','Qer',
12
- 'Kor','Gus','Sht','Tet','Nën','Dhj'],
13
- dayNames: ['E Diel','E Hënë','E Martë','E Mërkurë','E Enjte','E Premte','E Shtune'],
14
- dayNamesShort: ['Di','Hë','Ma','Më','En','Pr','Sh'],
15
- dayNamesMin: ['Di','Hë','Ma','Më','En','Pr','Sh'],
16
- weekHeader: 'Ja',
17
- dateFormat: 'dd.mm.yy',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['sq']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-sr-SR.js DELETED
@@ -1,23 +0,0 @@
1
- /* Serbian i18n for the jQuery UI date picker plugin. */
2
- /* Written by Dejan Dimić. */
3
- jQuery(function($){
4
- $.datepicker.regional['sr-SR'] = {
5
- closeText: 'Zatvori',
6
- prevText: '&#x3c;',
7
- nextText: '&#x3e;',
8
- currentText: 'Danas',
9
- monthNames: ['Januar','Februar','Mart','April','Maj','Jun',
10
- 'Jul','Avgust','Septembar','Oktobar','Novembar','Decembar'],
11
- monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
12
- 'Jul','Avg','Sep','Okt','Nov','Dec'],
13
- dayNames: ['Nedelja','Ponedeljak','Utorak','Sreda','Četvrtak','Petak','Subota'],
14
- dayNamesShort: ['Ned','Pon','Uto','Sre','Čet','Pet','Sub'],
15
- dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'],
16
- weekHeader: 'Sed',
17
- dateFormat: 'dd/mm/yy',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['sr-SR']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-sr.js DELETED
@@ -1,23 +0,0 @@
1
- /* Serbian i18n for the jQuery UI date picker plugin. */
2
- /* Written by Dejan Dimić. */
3
- jQuery(function($){
4
- $.datepicker.regional['sr'] = {
5
- closeText: 'Затвори',
6
- prevText: '&#x3c;',
7
- nextText: '&#x3e;',
8
- currentText: 'Данас',
9
- monthNames: ['Јануар','Фебруар','Март','Април','Мај','Јун',
10
- 'Јул','Август','Септембар','Октобар','Новембар','Децембар'],
11
- monthNamesShort: ['Јан','Феб','Мар','Апр','Мај','Јун',
12
- 'Јул','Авг','Сеп','Окт','Нов','Дец'],
13
- dayNames: ['Недеља','Понедељак','Уторак','Среда','Четвртак','Петак','Субота'],
14
- dayNamesShort: ['Нед','Пон','Уто','Сре','Чет','Пет','Суб'],
15
- dayNamesMin: ['Не','По','Ут','Ср','Че','Пе','Су'],
16
- weekHeader: 'Сед',
17
- dateFormat: 'dd/mm/yy',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['sr']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-sv.js DELETED
@@ -1,23 +0,0 @@
1
- /* Swedish initialisation for the jQuery UI date picker plugin. */
2
- /* Written by Anders Ekdahl ( anders@nomadiz.se). */
3
- jQuery(function($){
4
- $.datepicker.regional['sv'] = {
5
- closeText: 'Stäng',
6
- prevText: '&laquo;Förra',
7
- nextText: 'Nästa&raquo;',
8
- currentText: 'Idag',
9
- monthNames: ['Januari','Februari','Mars','April','Maj','Juni',
10
- 'Juli','Augusti','September','Oktober','November','December'],
11
- monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
12
- 'Jul','Aug','Sep','Okt','Nov','Dec'],
13
- dayNamesShort: ['Sön','Mån','Tis','Ons','Tor','Fre','Lör'],
14
- dayNames: ['Söndag','Måndag','Tisdag','Onsdag','Torsdag','Fredag','Lördag'],
15
- dayNamesMin: ['Sö','Må','Ti','On','To','Fr','Lö'],
16
- weekHeader: 'Ve',
17
- dateFormat: 'yy-mm-dd',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['sv']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-ta.js DELETED
@@ -1,23 +0,0 @@
1
- /* Tamil (UTF-8) initialisation for the jQuery UI date picker plugin. */
2
- /* Written by S A Sureshkumar (saskumar@live.com). */
3
- jQuery(function($){
4
- $.datepicker.regional['ta'] = {
5
- closeText: 'மூடு',
6
- prevText: 'முன்னையது',
7
- nextText: 'அடுத்தது',
8
- currentText: 'இன்று',
9
- monthNames: ['தை','மாசி','பங்குனி','சித்திரை','வைகாசி','ஆனி',
10
- 'ஆடி','ஆவணி','புரட்டாசி','ஐப்பசி','கார்த்திகை','மார்கழி'],
11
- monthNamesShort: ['தை','மாசி','பங்','சித்','வைகா','ஆனி',
12
- 'ஆடி','ஆவ','புர','ஐப்','கார்','மார்'],
13
- dayNames: ['ஞாயிற்றுக்கிழமை','திங்கட்கிழமை','செவ்வாய்க்கிழமை','புதன்கிழமை','வியாழக்கிழமை','வெள்ளிக்கிழமை','சனிக்கிழமை'],
14
- dayNamesShort: ['ஞாயிறு','திங்கள்','செவ்வாய்','புதன்','வியாழன்','வெள்ளி','சனி'],
15
- dayNamesMin: ['ஞா','தி','செ','பு','வி','வெ','ச'],
16
- weekHeader: 'Не',
17
- dateFormat: 'dd/mm/yy',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['ta']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-th.js DELETED
@@ -1,23 +0,0 @@
1
- /* Thai initialisation for the jQuery UI date picker plugin. */
2
- /* Written by pipo (pipo@sixhead.com). */
3
- jQuery(function($){
4
- $.datepicker.regional['th'] = {
5
- closeText: 'ปิด',
6
- prevText: '&laquo;&nbsp;ย้อน',
7
- nextText: 'ถัดไป&nbsp;&raquo;',
8
- currentText: 'วันนี้',
9
- monthNames: ['มกราคม','กุมภาพันธ์','มีนาคม','เมษายน','พฤษภาคม','มิถุนายน',
10
- 'กรกฎาคม','สิงหาคม','กันยายน','ตุลาคม','พฤศจิกายน','ธันวาคม'],
11
- monthNamesShort: ['ม.ค.','ก.พ.','มี.ค.','เม.ย.','พ.ค.','มิ.ย.',
12
- 'ก.ค.','ส.ค.','ก.ย.','ต.ค.','พ.ย.','ธ.ค.'],
13
- dayNames: ['อาทิตย์','จันทร์','อังคาร','พุธ','พฤหัสบดี','ศุกร์','เสาร์'],
14
- dayNamesShort: ['อา.','จ.','อ.','พ.','พฤ.','ศ.','ส.'],
15
- dayNamesMin: ['อา.','จ.','อ.','พ.','พฤ.','ศ.','ส.'],
16
- weekHeader: 'Wk',
17
- dateFormat: 'dd/mm/yy',
18
- firstDay: 0,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['th']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-tj.js DELETED
@@ -1,23 +0,0 @@
1
- /* Tajiki (UTF-8) initialisation for the jQuery UI date picker plugin. */
2
- /* Written by Abdurahmon Saidov (saidovab@gmail.com). */
3
- jQuery(function($){
4
- $.datepicker.regional['tj'] = {
5
- closeText: 'Идома',
6
- prevText: '&#x3c;Қафо',
7
- nextText: 'Пеш&#x3e;',
8
- currentText: 'Имрӯз',
9
- monthNames: ['Январ','Феврал','Март','Апрел','Май','Июн',
10
- 'Июл','Август','Сентябр','Октябр','Ноябр','Декабр'],
11
- monthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн',
12
- 'Июл','Авг','Сен','Окт','Ноя','Дек'],
13
- dayNames: ['якшанбе','душанбе','сешанбе','чоршанбе','панҷшанбе','ҷумъа','шанбе'],
14
- dayNamesShort: ['якш','душ','сеш','чор','пан','ҷум','шан'],
15
- dayNamesMin: ['Як','Дш','Сш','Чш','Пш','Ҷм','Шн'],
16
- weekHeader: 'Хф',
17
- dateFormat: 'dd.mm.yy',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['tj']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-tr.js DELETED
@@ -1,23 +0,0 @@
1
- /* Turkish initialisation for the jQuery UI date picker plugin. */
2
- /* Written by Izzet Emre Erkan (kara@karalamalar.net). */
3
- jQuery(function($){
4
- $.datepicker.regional['tr'] = {
5
- closeText: 'kapat',
6
- prevText: '&#x3c;geri',
7
- nextText: 'ileri&#x3e',
8
- currentText: 'bugün',
9
- monthNames: ['Ocak','Şubat','Mart','Nisan','Mayıs','Haziran',
10
- 'Temmuz','Ağustos','Eylül','Ekim','Kasım','Aralık'],
11
- monthNamesShort: ['Oca','Şub','Mar','Nis','May','Haz',
12
- 'Tem','Ağu','Eyl','Eki','Kas','Ara'],
13
- dayNames: ['Pazar','Pazartesi','Salı','Çarşamba','Perşembe','Cuma','Cumartesi'],
14
- dayNamesShort: ['Pz','Pt','Sa','Ça','Pe','Cu','Ct'],
15
- dayNamesMin: ['Pz','Pt','Sa','Ça','Pe','Cu','Ct'],
16
- weekHeader: 'Hf',
17
- dateFormat: 'dd.mm.yy',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['tr']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-uk.js DELETED
@@ -1,24 +0,0 @@
1
- /* Ukrainian (UTF-8) initialisation for the jQuery UI date picker plugin. */
2
- /* Written by Maxim Drogobitskiy (maxdao@gmail.com). */
3
- /* Corrected by Igor Milla (igor.fsp.milla@gmail.com). */
4
- jQuery(function($){
5
- $.datepicker.regional['uk'] = {
6
- closeText: 'Закрити',
7
- prevText: '&#x3c;',
8
- nextText: '&#x3e;',
9
- currentText: 'Сьогодні',
10
- monthNames: ['Січень','Лютий','Березень','Квітень','Травень','Червень',
11
- 'Липень','Серпень','Вересень','Жовтень','Листопад','Грудень'],
12
- monthNamesShort: ['Січ','Лют','Бер','Кві','Тра','Чер',
13
- 'Лип','Сер','Вер','Жов','Лис','Гру'],
14
- dayNames: ['неділя','понеділок','вівторок','середа','четвер','п’ятниця','субота'],
15
- dayNamesShort: ['нед','пнд','вів','срд','чтв','птн','сбт'],
16
- dayNamesMin: ['Нд','Пн','Вт','Ср','Чт','Пт','Сб'],
17
- weekHeader: 'Тиж',
18
- dateFormat: 'dd/mm/yy',
19
- firstDay: 1,
20
- isRTL: false,
21
- showMonthAfterYear: false,
22
- yearSuffix: ''};
23
- $.datepicker.setDefaults($.datepicker.regional['uk']);
24
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-vi.js DELETED
@@ -1,23 +0,0 @@
1
- /* Vietnamese initialisation for the jQuery UI date picker plugin. */
2
- /* Translated by Le Thanh Huy (lthanhhuy@cit.ctu.edu.vn). */
3
- jQuery(function($){
4
- $.datepicker.regional['vi'] = {
5
- closeText: 'Đóng',
6
- prevText: '&#x3c;Trước',
7
- nextText: 'Tiếp&#x3e;',
8
- currentText: 'Hôm nay',
9
- monthNames: ['Tháng Một', 'Tháng Hai', 'Tháng Ba', 'Tháng Tư', 'Tháng Năm', 'Tháng Sáu',
10
- 'Tháng Bảy', 'Tháng Tám', 'Tháng Chín', 'Tháng Mười', 'Tháng Mười Một', 'Tháng Mười Hai'],
11
- monthNamesShort: ['Tháng 1', 'Tháng 2', 'Tháng 3', 'Tháng 4', 'Tháng 5', 'Tháng 6',
12
- 'Tháng 7', 'Tháng 8', 'Tháng 9', 'Tháng 10', 'Tháng 11', 'Tháng 12'],
13
- dayNames: ['Chủ Nhật', 'Thứ Hai', 'Thứ Ba', 'Thứ Tư', 'Thứ Năm', 'Thứ Sáu', 'Thứ Bảy'],
14
- dayNamesShort: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'],
15
- dayNamesMin: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'],
16
- weekHeader: 'Tu',
17
- dateFormat: 'dd/mm/yy',
18
- firstDay: 0,
19
- isRTL: false,
20
- showMonthAfterYear: false,
21
- yearSuffix: ''};
22
- $.datepicker.setDefaults($.datepicker.regional['vi']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-zh-CN.js DELETED
@@ -1,23 +0,0 @@
1
- /* Chinese initialisation for the jQuery UI date picker plugin. */
2
- /* Written by Cloudream (cloudream@gmail.com). */
3
- jQuery(function($){
4
- $.datepicker.regional['zh-CN'] = {
5
- closeText: '关闭',
6
- prevText: '&#x3c;上月',
7
- nextText: '下月&#x3e;',
8
- currentText: '今天',
9
- monthNames: ['一月','二月','三月','四月','五月','六月',
10
- '七月','八月','九月','十月','十一月','十二月'],
11
- monthNamesShort: ['一月','二月','三月','四月','五月','六月',
12
- '七月','八月','九月','十月','十一月','十二月'],
13
- dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
14
- dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
15
- dayNamesMin: ['日','一','二','三','四','五','六'],
16
- weekHeader: '周',
17
- dateFormat: 'yy-mm-dd',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: true,
21
- yearSuffix: '年'};
22
- $.datepicker.setDefaults($.datepicker.regional['zh-CN']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-zh-HK.js DELETED
@@ -1,23 +0,0 @@
1
- /* Chinese initialisation for the jQuery UI date picker plugin. */
2
- /* Written by SCCY (samuelcychan@gmail.com). */
3
- jQuery(function($){
4
- $.datepicker.regional['zh-HK'] = {
5
- closeText: '關閉',
6
- prevText: '&#x3c;上月',
7
- nextText: '下月&#x3e;',
8
- currentText: '今天',
9
- monthNames: ['一月','二月','三月','四月','五月','六月',
10
- '七月','八月','九月','十月','十一月','十二月'],
11
- monthNamesShort: ['一月','二月','三月','四月','五月','六月',
12
- '七月','八月','九月','十月','十一月','十二月'],
13
- dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
14
- dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
15
- dayNamesMin: ['日','一','二','三','四','五','六'],
16
- weekHeader: '周',
17
- dateFormat: 'dd-mm-yy',
18
- firstDay: 0,
19
- isRTL: false,
20
- showMonthAfterYear: true,
21
- yearSuffix: '年'};
22
- $.datepicker.setDefaults($.datepicker.regional['zh-HK']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/di18n/jquery.ui.datepicker-zh-TW.js DELETED
@@ -1,23 +0,0 @@
1
- /* Chinese initialisation for the jQuery UI date picker plugin. */
2
- /* Written by Ressol (ressol@gmail.com). */
3
- jQuery(function($){
4
- $.datepicker.regional['zh-TW'] = {
5
- closeText: '關閉',
6
- prevText: '&#x3c;上月',
7
- nextText: '下月&#x3e;',
8
- currentText: '今天',
9
- monthNames: ['一月','二月','三月','四月','五月','六月',
10
- '七月','八月','九月','十月','十一月','十二月'],
11
- monthNamesShort: ['一月','二月','三月','四月','五月','六月',
12
- '七月','八月','九月','十月','十一月','十二月'],
13
- dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
14
- dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
15
- dayNamesMin: ['日','一','二','三','四','五','六'],
16
- weekHeader: '周',
17
- dateFormat: 'yy/mm/dd',
18
- firstDay: 1,
19
- isRTL: false,
20
- showMonthAfterYear: true,
21
- yearSuffix: '年'};
22
- $.datepicker.setDefaults($.datepicker.regional['zh-TW']);
23
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pickers/i18n/{jquery.ui.timepicker-pt-BR.js → jquery.ui.timepicker-pt.js} RENAMED
File without changes
includes/pickers/jquery.ui.css DELETED
@@ -1,1225 +0,0 @@
1
- /*! jQuery UI - v1.11.3 - 2015-02-12
2
- * http://jqueryui.com
3
- * Includes: core.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, draggable.css, menu.css, progressbar.css, resizable.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css
4
- * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
5
- * Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
6
-
7
- /* Layout helpers
8
- ----------------------------------*/
9
- .ui-helper-hidden {
10
- display: none;
11
- }
12
- .ui-helper-hidden-accessible {
13
- border: 0;
14
- clip: rect(0 0 0 0);
15
- height: 1px;
16
- margin: -1px;
17
- overflow: hidden;
18
- padding: 0;
19
- position: absolute;
20
- width: 1px;
21
- }
22
- .ui-helper-reset {
23
- margin: 0;
24
- padding: 0;
25
- border: 0;
26
- outline: 0;
27
- line-height: 1.3;
28
- text-decoration: none;
29
- font-size: 100%;
30
- list-style: none;
31
- }
32
- .ui-helper-clearfix:before,
33
- .ui-helper-clearfix:after {
34
- content: "";
35
- display: table;
36
- border-collapse: collapse;
37
- }
38
- .ui-helper-clearfix:after {
39
- clear: both;
40
- }
41
- .ui-helper-clearfix {
42
- min-height: 0; /* support: IE7 */
43
- }
44
- .ui-helper-zfix {
45
- width: 100%;
46
- height: 100%;
47
- top: 0;
48
- left: 0;
49
- position: absolute;
50
- opacity: 0;
51
- filter:Alpha(Opacity=0); /* support: IE8 */
52
- }
53
-
54
- .ui-front {
55
- z-index: 100;
56
- }
57
-
58
-
59
- /* Interaction Cues
60
- ----------------------------------*/
61
- .ui-state-disabled {
62
- cursor: default;
63
- }
64
-
65
-
66
- /* Icons
67
- ----------------------------------*/
68
-
69
- /* states and images */
70
- .ui-icon {
71
- display: block;
72
- text-indent: -99999px;
73
- overflow: hidden;
74
- background-repeat: no-repeat;
75
- }
76
-
77
-
78
- /* Misc visuals
79
- ----------------------------------*/
80
-
81
- /* Overlays */
82
- .ui-widget-overlay {
83
- position: fixed;
84
- top: 0;
85
- left: 0;
86
- width: 100%;
87
- height: 100%;
88
- }
89
- .ui-accordion .ui-accordion-header {
90
- display: block;
91
- cursor: pointer;
92
- position: relative;
93
- margin: 2px 0 0 0;
94
- padding: .5em .5em .5em .7em;
95
- min-height: 0; /* support: IE7 */
96
- font-size: 100%;
97
- }
98
- .ui-accordion .ui-accordion-icons {
99
- padding-left: 2.2em;
100
- }
101
- .ui-accordion .ui-accordion-icons .ui-accordion-icons {
102
- padding-left: 2.2em;
103
- }
104
- .ui-accordion .ui-accordion-header .ui-accordion-header-icon {
105
- position: absolute;
106
- left: .5em;
107
- top: 50%;
108
- margin-top: -8px;
109
- }
110
- .ui-accordion .ui-accordion-content {
111
- padding: 1em 2.2em;
112
- border-top: 0;
113
- overflow: auto;
114
- }
115
- .ui-autocomplete {
116
- position: absolute;
117
- top: 0;
118
- left: 0;
119
- cursor: default;
120
- }
121
- .ui-button {
122
- display: inline-block;
123
- position: relative;
124
- padding: 0;
125
- line-height: normal;
126
- margin-right: .1em;
127
- cursor: pointer;
128
- vertical-align: middle;
129
- text-align: center;
130
- overflow: visible; /* removes extra width in IE */
131
- }
132
- .ui-button,
133
- .ui-button:link,
134
- .ui-button:visited,
135
- .ui-button:hover,
136
- .ui-button:active {
137
- text-decoration: none;
138
- }
139
- /* to make room for the icon, a width needs to be set here */
140
- .ui-button-icon-only {
141
- width: 2.2em;
142
- }
143
- /* button elements seem to need a little more width */
144
- button.ui-button-icon-only {
145
- width: 2.4em;
146
- }
147
- .ui-button-icons-only {
148
- width: 3.4em;
149
- }
150
- button.ui-button-icons-only {
151
- width: 3.7em;
152
- }
153
-
154
- /* button text element */
155
- .ui-button .ui-button-text {
156
- display: block;
157
- line-height: normal;
158
- }
159
- .ui-button-text-only .ui-button-text {
160
- padding: .4em 1em;
161
- }
162
- .ui-button-icon-only .ui-button-text,
163
- .ui-button-icons-only .ui-button-text {
164
- padding: .4em;
165
- text-indent: -9999999px;
166
- }
167
- .ui-button-text-icon-primary .ui-button-text,
168
- .ui-button-text-icons .ui-button-text {
169
- padding: .4em 1em .4em 2.1em;
170
- }
171
- .ui-button-text-icon-secondary .ui-button-text,
172
- .ui-button-text-icons .ui-button-text {
173
- padding: .4em 2.1em .4em 1em;
174
- }
175
- .ui-button-text-icons .ui-button-text {
176
- padding-left: 2.1em;
177
- padding-right: 2.1em;
178
- }
179
- /* no icon support for input elements, provide padding by default */
180
- input.ui-button {
181
- padding: .4em 1em;
182
- }
183
-
184
- /* button icon element(s) */
185
- .ui-button-icon-only .ui-icon,
186
- .ui-button-text-icon-primary .ui-icon,
187
- .ui-button-text-icon-secondary .ui-icon,
188
- .ui-button-text-icons .ui-icon,
189
- .ui-button-icons-only .ui-icon {
190
- position: absolute;
191
- top: 50%;
192
- margin-top: -8px;
193
- }
194
- .ui-button-icon-only .ui-icon {
195
- left: 50%;
196
- margin-left: -8px;
197
- }
198
- .ui-button-text-icon-primary .ui-button-icon-primary,
199
- .ui-button-text-icons .ui-button-icon-primary,
200
- .ui-button-icons-only .ui-button-icon-primary {
201
- left: .5em;
202
- }
203
- .ui-button-text-icon-secondary .ui-button-icon-secondary,
204
- .ui-button-text-icons .ui-button-icon-secondary,
205
- .ui-button-icons-only .ui-button-icon-secondary {
206
- right: .5em;
207
- }
208
-
209
- /* button sets */
210
- .ui-buttonset {
211
- margin-right: 7px;
212
- }
213
- .ui-buttonset .ui-button {
214
- margin-left: 0;
215
- margin-right: -.3em;
216
- }
217
-
218
- /* workarounds */
219
- /* reset extra padding in Firefox, see h5bp.com/l */
220
- input.ui-button::-moz-focus-inner,
221
- button.ui-button::-moz-focus-inner {
222
- border: 0;
223
- padding: 0;
224
- }
225
- .ui-datepicker {
226
- width: 17em;
227
- padding: .2em .2em 0;
228
- display: none;
229
- }
230
- .ui-datepicker .ui-datepicker-header {
231
- position: relative;
232
- padding: .2em 0;
233
- }
234
- .ui-datepicker .ui-datepicker-prev,
235
- .ui-datepicker .ui-datepicker-next {
236
- position: absolute;
237
- top: 2px;
238
- width: 1.8em;
239
- height: 1.8em;
240
- }
241
- .ui-datepicker .ui-datepicker-prev-hover,
242
- .ui-datepicker .ui-datepicker-next-hover {
243
- top: 1px;
244
- }
245
- .ui-datepicker .ui-datepicker-prev {
246
- left: 2px;
247
- }
248
- .ui-datepicker .ui-datepicker-next {
249
- right: 2px;
250
- }
251
- .ui-datepicker .ui-datepicker-prev-hover {
252
- left: 1px;
253
- }
254
- .ui-datepicker .ui-datepicker-next-hover {
255
- right: 1px;
256
- }
257
- .ui-datepicker .ui-datepicker-prev span,
258
- .ui-datepicker .ui-datepicker-next span {
259
- display: block;
260
- position: absolute;
261
- left: 50%;
262
- margin-left: -8px;
263
- top: 50%;
264
- margin-top: -8px;
265
- }
266
- .ui-datepicker .ui-datepicker-title {
267
- margin: 0 2.3em;
268
- line-height: 1.8em;
269
- text-align: center;
270
- }
271
- .ui-datepicker .ui-datepicker-title select {
272
- font-size: 1em;
273
- margin: 1px 0;
274
- }
275
- .ui-datepicker select.ui-datepicker-month,
276
- .ui-datepicker select.ui-datepicker-year {
277
- width: 45%;
278
- }
279
- .ui-datepicker table {
280
- width: 100%;
281
- font-size: .9em;
282
- border-collapse: collapse;
283
- margin: 0 0 .4em;
284
- }
285
- .ui-datepicker th {
286
- padding: .7em .3em;
287
- text-align: center;
288
- font-weight: bold;
289
- border: 0;
290
- }
291
- .ui-datepicker td {
292
- border: 0;
293
- padding: 1px;
294
- }
295
- .ui-datepicker td span,
296
- .ui-datepicker td a {
297
- display: block;
298
- padding: .2em;
299
- text-align: right;
300
- text-decoration: none;
301
- }
302
- .ui-datepicker .ui-datepicker-buttonpane {
303
- background-image: none;
304
- margin: .7em 0 0 0;
305
- padding: 0 .2em;
306
- border-left: 0;
307
- border-right: 0;
308
- border-bottom: 0;
309
- }
310
- .ui-datepicker .ui-datepicker-buttonpane button {
311
- float: right;
312
- margin: .5em .2em .4em;
313
- cursor: pointer;
314
- padding: .2em .6em .3em .6em;
315
- width: auto;
316
- overflow: visible;
317
- }
318
- .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
319
- float: left;
320
- }
321
-
322
- /* with multiple calendars */
323
- .ui-datepicker.ui-datepicker-multi {
324
- width: auto;
325
- }
326
- .ui-datepicker-multi .ui-datepicker-group {
327
- float: left;
328
- }
329
- .ui-datepicker-multi .ui-datepicker-group table {
330
- width: 95%;
331
- margin: 0 auto .4em;
332
- }
333
- .ui-datepicker-multi-2 .ui-datepicker-group {
334
- width: 50%;
335
- }
336
- .ui-datepicker-multi-3 .ui-datepicker-group {
337
- width: 33.3%;
338
- }
339
- .ui-datepicker-multi-4 .ui-datepicker-group {
340
- width: 25%;
341
- }
342
- .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,
343
- .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
344
- border-left-width: 0;
345
- }
346
- .ui-datepicker-multi .ui-datepicker-buttonpane {
347
- clear: left;
348
- }
349
- .ui-datepicker-row-break {
350
- clear: both;
351
- width: 100%;
352
- font-size: 0;
353
- }
354
-
355
- /* RTL support */
356
- .ui-datepicker-rtl {
357
- direction: rtl;
358
- }
359
- .ui-datepicker-rtl .ui-datepicker-prev {
360
- right: 2px;
361
- left: auto;
362
- }
363
- .ui-datepicker-rtl .ui-datepicker-next {
364
- left: 2px;
365
- right: auto;
366
- }
367
- .ui-datepicker-rtl .ui-datepicker-prev:hover {
368
- right: 1px;
369
- left: auto;
370
- }
371
- .ui-datepicker-rtl .ui-datepicker-next:hover {
372
- left: 1px;
373
- right: auto;
374
- }
375
- .ui-datepicker-rtl .ui-datepicker-buttonpane {
376
- clear: right;
377
- }
378
- .ui-datepicker-rtl .ui-datepicker-buttonpane button {
379
- float: left;
380
- }
381
- .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,
382
- .ui-datepicker-rtl .ui-datepicker-group {
383
- float: right;
384
- }
385
- .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,
386
- .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
387
- border-right-width: 0;
388
- border-left-width: 1px;
389
- }
390
- .ui-dialog {
391
- overflow: hidden;
392
- position: absolute;
393
- top: 0;
394
- left: 0;
395
- padding: .2em;
396
- outline: 0;
397
- }
398
- .ui-dialog .ui-dialog-titlebar {
399
- padding: .4em 1em;
400
- position: relative;
401
- }
402
- .ui-dialog .ui-dialog-title {
403
- float: left;
404
- margin: .1em 0;
405
- white-space: nowrap;
406
- width: 90%;
407
- overflow: hidden;
408
- text-overflow: ellipsis;
409
- }
410
- .ui-dialog .ui-dialog-titlebar-close {
411
- position: absolute;
412
- right: .3em;
413
- top: 50%;
414
- width: 20px;
415
- margin: -10px 0 0 0;
416
- padding: 1px;
417
- height: 20px;
418
- }
419
- .ui-dialog .ui-dialog-content {
420
- position: relative;
421
- border: 0;
422
- padding: .5em 1em;
423
- background: none;
424
- overflow: auto;
425
- }
426
- .ui-dialog .ui-dialog-buttonpane {
427
- text-align: left;
428
- border-width: 1px 0 0 0;
429
- background-image: none;
430
- margin-top: .5em;
431
- padding: .3em 1em .5em .4em;
432
- }
433
- .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
434
- float: right;
435
- }
436
- .ui-dialog .ui-dialog-buttonpane button {
437
- margin: .5em .4em .5em 0;
438
- cursor: pointer;
439
- }
440
- .ui-dialog .ui-resizable-se {
441
- width: 12px;
442
- height: 12px;
443
- right: -5px;
444
- bottom: -5px;
445
- background-position: 16px 16px;
446
- }
447
- .ui-draggable .ui-dialog-titlebar {
448
- cursor: move;
449
- }
450
- .ui-draggable-handle {
451
- -ms-touch-action: none;
452
- touch-action: none;
453
- }
454
- .ui-menu {
455
- list-style: none;
456
- padding: 0;
457
- margin: 0;
458
- display: block;
459
- outline: none;
460
- }
461
- .ui-menu .ui-menu {
462
- position: absolute;
463
- }
464
- .ui-menu .ui-menu-item {
465
- position: relative;
466
- margin: 0;
467
- padding: 3px 1em 3px .4em;
468
- cursor: pointer;
469
- min-height: 0; /* support: IE7 */
470
- /* support: IE10, see #8844 */
471
- list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
472
- }
473
- .ui-menu .ui-menu-divider {
474
- margin: 5px 0;
475
- height: 0;
476
- font-size: 0;
477
- line-height: 0;
478
- border-width: 1px 0 0 0;
479
- }
480
- .ui-menu .ui-state-focus,
481
- .ui-menu .ui-state-active {
482
- margin: -1px;
483
- }
484
-
485
- /* icon support */
486
- .ui-menu-icons {
487
- position: relative;
488
- }
489
- .ui-menu-icons .ui-menu-item {
490
- padding-left: 2em;
491
- }
492
-
493
- /* left-aligned */
494
- .ui-menu .ui-icon {
495
- position: absolute;
496
- top: 0;
497
- bottom: 0;
498
- left: .2em;
499
- margin: auto 0;
500
- }
501
-
502
- /* right-aligned */
503
- .ui-menu .ui-menu-icon {
504
- left: auto;
505
- right: 0;
506
- }
507
- .ui-progressbar {
508
- height: 2em;
509
- text-align: left;
510
- overflow: hidden;
511
- }
512
- .ui-progressbar .ui-progressbar-value {
513
- margin: -1px;
514
- height: 100%;
515
- }
516
- .ui-progressbar .ui-progressbar-overlay {
517
- background: url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");
518
- height: 100%;
519
- filter: alpha(opacity=25); /* support: IE8 */
520
- opacity: 0.25;
521
- }
522
- .ui-progressbar-indeterminate .ui-progressbar-value {
523
- background-image: none;
524
- }
525
- .ui-resizable {
526
- position: relative;
527
- }
528
- .ui-resizable-handle {
529
- position: absolute;
530
- font-size: 0.1px;
531
- display: block;
532
- -ms-touch-action: none;
533
- touch-action: none;
534
- }
535
- .ui-resizable-disabled .ui-resizable-handle,
536
- .ui-resizable-autohide .ui-resizable-handle {
537
- display: none;
538
- }
539
- .ui-resizable-n {
540
- cursor: n-resize;
541
- height: 7px;
542
- width: 100%;
543
- top: -5px;
544
- left: 0;
545
- }
546
- .ui-resizable-s {
547
- cursor: s-resize;
548
- height: 7px;
549
- width: 100%;
550
- bottom: -5px;
551
- left: 0;
552
- }
553
- .ui-resizable-e {
554
- cursor: e-resize;
555
- width: 7px;
556
- right: -5px;
557
- top: 0;
558
- height: 100%;
559
- }
560
- .ui-resizable-w {
561
- cursor: w-resize;
562
- width: 7px;
563
- left: -5px;
564
- top: 0;
565
- height: 100%;
566
- }
567
- .ui-resizable-se {
568
- cursor: se-resize;
569
- width: 12px;
570
- height: 12px;
571
- right: 1px;
572
- bottom: 1px;
573
- }
574
- .ui-resizable-sw {
575
- cursor: sw-resize;
576
- width: 9px;
577
- height: 9px;
578
- left: -5px;
579
- bottom: -5px;
580
- }
581
- .ui-resizable-nw {
582
- cursor: nw-resize;
583
- width: 9px;
584
- height: 9px;
585
- left: -5px;
586
- top: -5px;
587
- }
588
- .ui-resizable-ne {
589
- cursor: ne-resize;
590
- width: 9px;
591
- height: 9px;
592
- right: -5px;
593
- top: -5px;
594
- }
595
- .ui-selectable {
596
- -ms-touch-action: none;
597
- touch-action: none;
598
- }
599
- .ui-selectable-helper {
600
- position: absolute;
601
- z-index: 100;
602
- border: 1px dotted black;
603
- }
604
- .ui-selectmenu-menu {
605
- padding: 0;
606
- margin: 0;
607
- position: absolute;
608
- top: 0;
609
- left: 0;
610
- display: none;
611
- }
612
- .ui-selectmenu-menu .ui-menu {
613
- overflow: auto;
614
- /* Support: IE7 */
615
- overflow-x: hidden;
616
- padding-bottom: 1px;
617
- }
618
- .ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup {
619
- font-size: 1em;
620
- font-weight: bold;
621
- line-height: 1.5;
622
- padding: 2px 0.4em;
623
- margin: 0.5em 0 0 0;
624
- height: auto;
625
- border: 0;
626
- }
627
- .ui-selectmenu-open {
628
- display: block;
629
- }
630
- .ui-selectmenu-button {
631
- display: inline-block;
632
- overflow: hidden;
633
- position: relative;
634
- text-decoration: none;
635
- cursor: pointer;
636
- }
637
- .ui-selectmenu-button span.ui-icon {
638
- right: 0.5em;
639
- left: auto;
640
- margin-top: -8px;
641
- position: absolute;
642
- top: 50%;
643
- }
644
- .ui-selectmenu-button span.ui-selectmenu-text {
645
- text-align: left;
646
- padding: 0.4em 2.1em 0.4em 1em;
647
- display: block;
648
- line-height: 1.4;
649
- overflow: hidden;
650
- text-overflow: ellipsis;
651
- white-space: nowrap;
652
- }
653
- .ui-slider {
654
- position: relative;
655
- text-align: left;
656
- }
657
- .ui-slider .ui-slider-handle {
658
- position: absolute;
659
- z-index: 2;
660
- width: 1.2em;
661
- height: 1.2em;
662
- cursor: default;
663
- -ms-touch-action: none;
664
- touch-action: none;
665
- }
666
- .ui-slider .ui-slider-range {
667
- position: absolute;
668
- z-index: 1;
669
- font-size: .7em;
670
- display: block;
671
- border: 0;
672
- background-position: 0 0;
673
- }
674
-
675
- /* support: IE8 - See #6727 */
676
- .ui-slider.ui-state-disabled .ui-slider-handle,
677
- .ui-slider.ui-state-disabled .ui-slider-range {
678
- filter: inherit;
679
- }
680
-
681
- .ui-slider-horizontal {
682
- height: .8em;
683
- }
684
- .ui-slider-horizontal .ui-slider-handle {
685
- top: -.3em;
686
- margin-left: -.6em;
687
- }
688
- .ui-slider-horizontal .ui-slider-range {
689
- top: 0;
690
- height: 100%;
691
- }
692
- .ui-slider-horizontal .ui-slider-range-min {
693
- left: 0;
694
- }
695
- .ui-slider-horizontal .ui-slider-range-max {
696
- right: 0;
697
- }
698
-
699
- .ui-slider-vertical {
700
- width: .8em;
701
- height: 100px;
702
- }
703
- .ui-slider-vertical .ui-slider-handle {
704
- left: -.3em;
705
- margin-left: 0;
706
- margin-bottom: -.6em;
707
- }
708
- .ui-slider-vertical .ui-slider-range {
709
- left: 0;
710
- width: 100%;
711
- }
712
- .ui-slider-vertical .ui-slider-range-min {
713
- bottom: 0;
714
- }
715
- .ui-slider-vertical .ui-slider-range-max {
716
- top: 0;
717
- }
718
- .ui-sortable-handle {
719
- -ms-touch-action: none;
720
- touch-action: none;
721
- }
722
- .ui-spinner {
723
- position: relative;
724
- display: inline-block;
725
- overflow: hidden;
726
- padding: 0;
727
- vertical-align: middle;
728
- }
729
- .ui-spinner-input {
730
- border: none;
731
- background: none;
732
- color: inherit;
733
- padding: 0;
734
- margin: .2em 0;
735
- vertical-align: middle;
736
- margin-left: .4em;
737
- margin-right: 22px;
738
- }
739
- .ui-spinner-button {
740
- width: 16px;
741
- height: 50%;
742
- font-size: .5em;
743
- padding: 0;
744
- margin: 0;
745
- text-align: center;
746
- position: absolute;
747
- cursor: default;
748
- display: block;
749
- overflow: hidden;
750
- right: 0;
751
- }
752
- /* more specificity required here to override default borders */
753
- .ui-spinner a.ui-spinner-button {
754
- border-top: none;
755
- border-bottom: none;
756
- border-right: none;
757
- }
758
- /* vertically center icon */
759
- .ui-spinner .ui-icon {
760
- position: absolute;
761
- margin-top: -8px;
762
- top: 50%;
763
- left: 0;
764
- }
765
- .ui-spinner-up {
766
- top: 0;
767
- }
768
- .ui-spinner-down {
769
- bottom: 0;
770
- }
771
-
772
- /* TR overrides */
773
- .ui-spinner .ui-icon-triangle-1-s {
774
- /* need to fix icons sprite */
775
- background-position: -65px -16px;
776
- }
777
- .ui-tabs {
778
- position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
779
- padding: .2em;
780
- }
781
- .ui-tabs .ui-tabs-nav {
782
- margin: 0;
783
- padding: .2em .2em 0;
784
- }
785
- .ui-tabs .ui-tabs-nav li {
786
- list-style: none;
787
- float: left;
788
- position: relative;
789
- top: 0;
790
- margin: 1px .2em 0 0;
791
- border-bottom-width: 0;
792
- padding: 0;
793
- white-space: nowrap;
794
- }
795
- .ui-tabs .ui-tabs-nav .ui-tabs-anchor {
796
- float: left;
797
- padding: .5em 1em;
798
- text-decoration: none;
799
- }
800
- .ui-tabs .ui-tabs-nav li.ui-tabs-active {
801
- margin-bottom: -1px;
802
- padding-bottom: 1px;
803
- }
804
- .ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,
805
- .ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,
806
- .ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor {
807
- cursor: text;
808
- }
809
- .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor {
810
- cursor: pointer;
811
- }
812
- .ui-tabs .ui-tabs-panel {
813
- display: block;
814
- border-width: 0;
815
- padding: 1em 1.4em;
816
- background: none;
817
- }
818
- .ui-tooltip {
819
- padding: 8px;
820
- position: absolute;
821
- z-index: 9999;
822
- max-width: 300px;
823
- -webkit-box-shadow: 0 0 5px #aaa;
824
- box-shadow: 0 0 5px #aaa;
825
- }
826
- body .ui-tooltip {
827
- border-width: 2px;
828
- }
829
-
830
- /* Component containers
831
- ----------------------------------*/
832
- .ui-widget {
833
- font-family: Verdana,Arial,sans-serif;
834
- font-size: 1.1em;
835
- }
836
- .ui-widget .ui-widget {
837
- font-size: 1em;
838
- }
839
- .ui-widget input,
840
- .ui-widget select,
841
- .ui-widget textarea,
842
- .ui-widget button {
843
- font-family: Verdana,Arial,sans-serif;
844
- font-size: 1em;
845
- }
846
- .ui-widget-content {
847
- border: 1px solid #aaaaaa;
848
- background: #ffffff url("images/ui-bg_flat_75_ffffff_40x100.png") 50% 50% repeat-x;
849
- color: #222222;
850
- }
851
- .ui-widget-content a {
852
- color: #222222;
853
- }
854
- .ui-widget-header {
855
- border: 1px solid #aaaaaa;
856
- background: #cccccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;
857
- color: #222222;
858
- font-weight: bold;
859
- }
860
- .ui-widget-header a {
861
- color: #222222;
862
- }
863
-
864
- /* Interaction states
865
- ----------------------------------*/
866
- .ui-state-default,
867
- .ui-widget-content .ui-state-default,
868
- .ui-widget-header .ui-state-default {
869
- border: 1px solid #d3d3d3;
870
- background: #e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;
871
- font-weight: normal;
872
- color: #555555;
873
- }
874
- .ui-state-default a,
875
- .ui-state-default a:link,
876
- .ui-state-default a:visited {
877
- color: #555555;
878
- text-decoration: none;
879
- }
880
- .ui-state-hover,
881
- .ui-widget-content .ui-state-hover,
882
- .ui-widget-header .ui-state-hover,
883
- .ui-state-focus,
884
- .ui-widget-content .ui-state-focus,
885
- .ui-widget-header .ui-state-focus {
886
- border: 1px solid #999999;
887
- background: #dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;
888
- font-weight: normal;
889
- color: #212121;
890
- }
891
- .ui-state-hover a,
892
- .ui-state-hover a:hover,
893
- .ui-state-hover a:link,
894
- .ui-state-hover a:visited,
895
- .ui-state-focus a,
896
- .ui-state-focus a:hover,
897
- .ui-state-focus a:link,
898
- .ui-state-focus a:visited {
899
- color: #212121;
900
- text-decoration: none;
901
- }
902
- .ui-state-active,
903
- .ui-widget-content .ui-state-active,
904
- .ui-widget-header .ui-state-active {
905
- border: 1px solid #aaaaaa;
906
- background: #ffffff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;
907
- font-weight: normal;
908
- color: #212121;
909
- }
910
- .ui-state-active a,
911
- .ui-state-active a:link,
912
- .ui-state-active a:visited {
913
- color: #212121;
914
- text-decoration: none;
915
- }
916
-
917
- /* Interaction Cues
918
- ----------------------------------*/
919
- .ui-state-highlight,
920
- .ui-widget-content .ui-state-highlight,
921
- .ui-widget-header .ui-state-highlight {
922
- border: 1px solid #fcefa1;
923
- background: #fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;
924
- color: #363636;
925
- }
926
- .ui-state-highlight a,
927
- .ui-widget-content .ui-state-highlight a,
928
- .ui-widget-header .ui-state-highlight a {
929
- color: #363636;
930
- }
931
- .ui-state-error,
932
- .ui-widget-content .ui-state-error,
933
- .ui-widget-header .ui-state-error {
934
- border: 1px solid #cd0a0a;
935
- background: #fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;
936
- color: #cd0a0a;
937
- }
938
- .ui-state-error a,
939
- .ui-widget-content .ui-state-error a,
940
- .ui-widget-header .ui-state-error a {
941
- color: #cd0a0a;
942
- }
943
- .ui-state-error-text,
944
- .ui-widget-content .ui-state-error-text,
945
- .ui-widget-header .ui-state-error-text {
946
- color: #cd0a0a;
947
- }
948
- .ui-priority-primary,
949
- .ui-widget-content .ui-priority-primary,
950
- .ui-widget-header .ui-priority-primary {
951
- font-weight: bold;
952
- }
953
- .ui-priority-secondary,
954
- .ui-widget-content .ui-priority-secondary,
955
- .ui-widget-header .ui-priority-secondary {
956
- opacity: .7;
957
- filter:Alpha(Opacity=70); /* support: IE8 */
958
- font-weight: normal;
959
- }
960
- .ui-state-disabled,
961
- .ui-widget-content .ui-state-disabled,
962
- .ui-widget-header .ui-state-disabled {
963
- opacity: .35;
964
- filter:Alpha(Opacity=35); /* support: IE8 */
965
- background-image: none;
966
- }
967
- .ui-state-disabled .ui-icon {
968
- filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */
969
- }
970
-
971
- /* Icons
972
- ----------------------------------*/
973
-
974
- /* states and images */
975
- .ui-icon {
976
- width: 16px;
977
- height: 16px;
978
- }
979
- .ui-icon,
980
- .ui-widget-content .ui-icon {
981
- background-image: url("images/ui-icons_222222_256x240.png");
982
- }
983
- .ui-widget-header .ui-icon {
984
- background-image: url("images/ui-icons_222222_256x240.png");
985
- }
986
- .ui-state-default .ui-icon {
987
- background-image: url("images/ui-icons_888888_256x240.png");
988
- }
989
- .ui-state-hover .ui-icon,
990
- .ui-state-focus .ui-icon {
991
- background-image: url("images/ui-icons_454545_256x240.png");
992
- }
993
- .ui-state-active .ui-icon {
994
- background-image: url("images/ui-icons_454545_256x240.png");
995
- }
996
- .ui-state-highlight .ui-icon {
997
- background-image: url("images/ui-icons_2e83ff_256x240.png");
998
- }
999
- .ui-state-error .ui-icon,
1000
- .ui-state-error-text .ui-icon {
1001
- background-image: url("images/ui-icons_cd0a0a_256x240.png");
1002
- }
1003
-
1004
- /* positioning */
1005
- .ui-icon-blank { background-position: 16px 16px; }
1006
- .ui-icon-carat-1-n { background-position: 0 0; }
1007
- .ui-icon-carat-1-ne { background-position: -16px 0; }
1008
- .ui-icon-carat-1-e { background-position: -32px 0; }
1009
- .ui-icon-carat-1-se { background-position: -48px 0; }
1010
- .ui-icon-carat-1-s { background-position: -64px 0; }
1011
- .ui-icon-carat-1-sw { background-position: -80px 0; }
1012
- .ui-icon-carat-1-w { background-position: -96px 0; }
1013
- .ui-icon-carat-1-nw { background-position: -112px 0; }
1014
- .ui-icon-carat-2-n-s { background-position: -128px 0; }
1015
- .ui-icon-carat-2-e-w { background-position: -144px 0; }
1016
- .ui-icon-triangle-1-n { background-position: 0 -16px; }
1017
- .ui-icon-triangle-1-ne { background-position: -16px -16px; }
1018
- .ui-icon-triangle-1-e { background-position: -32px -16px; }
1019
- .ui-icon-triangle-1-se { background-position: -48px -16px; }
1020
- .ui-icon-triangle-1-s { background-position: -64px -16px; }
1021
- .ui-icon-triangle-1-sw { background-position: -80px -16px; }
1022
- .ui-icon-triangle-1-w { background-position: -96px -16px; }
1023
- .ui-icon-triangle-1-nw { background-position: -112px -16px; }
1024
- .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
1025
- .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
1026
- .ui-icon-arrow-1-n { background-position: 0 -32px; }
1027
- .ui-icon-arrow-1-ne { background-position: -16px -32px; }
1028
- .ui-icon-arrow-1-e { background-position: -32px -32px; }
1029
- .ui-icon-arrow-1-se { background-position: -48px -32px; }
1030
- .ui-icon-arrow-1-s { background-position: -64px -32px; }
1031
- .ui-icon-arrow-1-sw { background-position: -80px -32px; }
1032
- .ui-icon-arrow-1-w { background-position: -96px -32px; }
1033
- .ui-icon-arrow-1-nw { background-position: -112px -32px; }
1034
- .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
1035
- .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
1036
- .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
1037
- .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
1038
- .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
1039
- .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
1040
- .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
1041
- .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
1042
- .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
1043
- .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
1044
- .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
1045
- .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
1046
- .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
1047
- .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
1048
- .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
1049
- .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
1050
- .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
1051
- .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
1052
- .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
1053
- .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
1054
- .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
1055
- .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
1056
- .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
1057
- .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
1058
- .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
1059
- .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
1060
- .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
1061
- .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
1062
- .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
1063
- .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
1064
- .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
1065
- .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
1066
- .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
1067
- .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
1068
- .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
1069
- .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
1070
- .ui-icon-arrow-4 { background-position: 0 -80px; }
1071
- .ui-icon-arrow-4-diag { background-position: -16px -80px; }
1072
- .ui-icon-extlink { background-position: -32px -80px; }
1073
- .ui-icon-newwin { background-position: -48px -80px; }
1074
- .ui-icon-refresh { background-position: -64px -80px; }
1075
- .ui-icon-shuffle { background-position: -80px -80px; }
1076
- .ui-icon-transfer-e-w { background-position: -96px -80px; }
1077
- .ui-icon-transferthick-e-w { background-position: -112px -80px; }
1078
- .ui-icon-folder-collapsed { background-position: 0 -96px; }
1079
- .ui-icon-folder-open { background-position: -16px -96px; }
1080
- .ui-icon-document { background-position: -32px -96px; }
1081
- .ui-icon-document-b { background-position: -48px -96px; }
1082
- .ui-icon-note { background-position: -64px -96px; }
1083
- .ui-icon-mail-closed { background-position: -80px -96px; }
1084
- .ui-icon-mail-open { background-position: -96px -96px; }
1085
- .ui-icon-suitcase { background-position: -112px -96px; }
1086
- .ui-icon-comment { background-position: -128px -96px; }
1087
- .ui-icon-person { background-position: -144px -96px; }
1088
- .ui-icon-print { background-position: -160px -96px; }
1089
- .ui-icon-trash { background-position: -176px -96px; }
1090
- .ui-icon-locked { background-position: -192px -96px; }
1091
- .ui-icon-unlocked { background-position: -208px -96px; }
1092
- .ui-icon-bookmark { background-position: -224px -96px; }
1093
- .ui-icon-tag { background-position: -240px -96px; }
1094
- .ui-icon-home { background-position: 0 -112px; }
1095
- .ui-icon-flag { background-position: -16px -112px; }
1096
- .ui-icon-calendar { background-position: -32px -112px; }
1097
- .ui-icon-cart { background-position: -48px -112px; }
1098
- .ui-icon-pencil { background-position: -64px -112px; }
1099
- .ui-icon-clock { background-position: -80px -112px; }
1100
- .ui-icon-disk { background-position: -96px -112px; }
1101
- .ui-icon-calculator { background-position: -112px -112px; }
1102
- .ui-icon-zoomin { background-position: -128px -112px; }
1103
- .ui-icon-zoomout { background-position: -144px -112px; }
1104
- .ui-icon-search { background-position: -160px -112px; }
1105
- .ui-icon-wrench { background-position: -176px -112px; }
1106
- .ui-icon-gear { background-position: -192px -112px; }
1107
- .ui-icon-heart { background-position: -208px -112px; }
1108
- .ui-icon-star { background-position: -224px -112px; }
1109
- .ui-icon-link { background-position: -240px -112px; }
1110
- .ui-icon-cancel { background-position: 0 -128px; }
1111
- .ui-icon-plus { background-position: -16px -128px; }
1112
- .ui-icon-plusthick { background-position: -32px -128px; }
1113
- .ui-icon-minus { background-position: -48px -128px; }
1114
- .ui-icon-minusthick { background-position: -64px -128px; }
1115
- .ui-icon-close { background-position: -80px -128px; }
1116
- .ui-icon-closethick { background-position: -96px -128px; }
1117
- .ui-icon-key { background-position: -112px -128px; }
1118
- .ui-icon-lightbulb { background-position: -128px -128px; }
1119
- .ui-icon-scissors { background-position: -144px -128px; }
1120
- .ui-icon-clipboard { background-position: -160px -128px; }
1121
- .ui-icon-copy { background-position: -176px -128px; }
1122
- .ui-icon-contact { background-position: -192px -128px; }
1123
- .ui-icon-image { background-position: -208px -128px; }
1124
- .ui-icon-video { background-position: -224px -128px; }
1125
- .ui-icon-script { background-position: -240px -128px; }
1126
- .ui-icon-alert { background-position: 0 -144px; }
1127
- .ui-icon-info { background-position: -16px -144px; }
1128
- .ui-icon-notice { background-position: -32px -144px; }
1129
- .ui-icon-help { background-position: -48px -144px; }
1130
- .ui-icon-check { background-position: -64px -144px; }
1131
- .ui-icon-bullet { background-position: -80px -144px; }
1132
- .ui-icon-radio-on { background-position: -96px -144px; }
1133
- .ui-icon-radio-off { background-position: -112px -144px; }
1134
- .ui-icon-pin-w { background-position: -128px -144px; }
1135
- .ui-icon-pin-s { background-position: -144px -144px; }
1136
- .ui-icon-play { background-position: 0 -160px; }
1137
- .ui-icon-pause { background-position: -16px -160px; }
1138
- .ui-icon-seek-next { background-position: -32px -160px; }
1139
- .ui-icon-seek-prev { background-position: -48px -160px; }
1140
- .ui-icon-seek-end { background-position: -64px -160px; }
1141
- .ui-icon-seek-start { background-position: -80px -160px; }
1142
- /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
1143
- .ui-icon-seek-first { background-position: -80px -160px; }
1144
- .ui-icon-stop { background-position: -96px -160px; }
1145
- .ui-icon-eject { background-position: -112px -160px; }
1146
- .ui-icon-volume-off { background-position: -128px -160px; }
1147
- .ui-icon-volume-on { background-position: -144px -160px; }
1148
- .ui-icon-power { background-position: 0 -176px; }
1149
- .ui-icon-signal-diag { background-position: -16px -176px; }
1150
- .ui-icon-signal { background-position: -32px -176px; }
1151
- .ui-icon-battery-0 { background-position: -48px -176px; }
1152
- .ui-icon-battery-1 { background-position: -64px -176px; }
1153
- .ui-icon-battery-2 { background-position: -80px -176px; }
1154
- .ui-icon-battery-3 { background-position: -96px -176px; }
1155
- .ui-icon-circle-plus { background-position: 0 -192px; }
1156
- .ui-icon-circle-minus { background-position: -16px -192px; }
1157
- .ui-icon-circle-close { background-position: -32px -192px; }
1158
- .ui-icon-circle-triangle-e { background-position: -48px -192px; }
1159
- .ui-icon-circle-triangle-s { background-position: -64px -192px; }
1160
- .ui-icon-circle-triangle-w { background-position: -80px -192px; }
1161
- .ui-icon-circle-triangle-n { background-position: -96px -192px; }
1162
- .ui-icon-circle-arrow-e { background-position: -112px -192px; }
1163
- .ui-icon-circle-arrow-s { background-position: -128px -192px; }
1164
- .ui-icon-circle-arrow-w { background-position: -144px -192px; }
1165
- .ui-icon-circle-arrow-n { background-position: -160px -192px; }
1166
- .ui-icon-circle-zoomin { background-position: -176px -192px; }
1167
- .ui-icon-circle-zoomout { background-position: -192px -192px; }
1168
- .ui-icon-circle-check { background-position: -208px -192px; }
1169
- .ui-icon-circlesmall-plus { background-position: 0 -208px; }
1170
- .ui-icon-circlesmall-minus { background-position: -16px -208px; }
1171
- .ui-icon-circlesmall-close { background-position: -32px -208px; }
1172
- .ui-icon-squaresmall-plus { background-position: -48px -208px; }
1173
- .ui-icon-squaresmall-minus { background-position: -64px -208px; }
1174
- .ui-icon-squaresmall-close { background-position: -80px -208px; }
1175
- .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
1176
- .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
1177
- .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
1178
- .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
1179
- .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
1180
- .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
1181
-
1182
-
1183
- /* Misc visuals
1184
- ----------------------------------*/
1185
-
1186
- /* Corner radius */
1187
- .ui-corner-all,
1188
- .ui-corner-top,
1189
- .ui-corner-left,
1190
- .ui-corner-tl {
1191
- border-top-left-radius: 4px;
1192
- }
1193
- .ui-corner-all,
1194
- .ui-corner-top,
1195
- .ui-corner-right,
1196
- .ui-corner-tr {
1197
- border-top-right-radius: 4px;
1198
- }
1199
- .ui-corner-all,
1200
- .ui-corner-bottom,
1201
- .ui-corner-left,
1202
- .ui-corner-bl {
1203
- border-bottom-left-radius: 4px;
1204
- }
1205
- .ui-corner-all,
1206
- .ui-corner-bottom,
1207
- .ui-corner-right,
1208
- .ui-corner-br {
1209
- border-bottom-right-radius: 4px;
1210
- }
1211
-
1212
- /* Overlays */
1213
- .ui-widget-overlay {
1214
- background: #aaaaaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;
1215
- opacity: .3;
1216
- filter: Alpha(Opacity=30); /* support: IE8 */
1217
- }
1218
- .ui-widget-shadow {
1219
- margin: -8px 0 0 -8px;
1220
- padding: 8px;
1221
- background: #aaaaaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;
1222
- opacity: .3;
1223
- filter: Alpha(Opacity=30); /* support: IE8 */
1224
- border-radius: 8px;
1225
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/templates/admin/woocheckout-additional.php CHANGED
@@ -4,7 +4,7 @@
4
  <tr>
5
  <th style="width:3%;" class="wccs-order" title="<?php esc_attr_e( 'Change the order of Checkout fields', 'woocommerce-checkout-manager' ); ?>">#</th>
6
 
7
- <?php require( WOOCCM_PATH.'includes/templates/admin/woocheckout-additional-thead.php' ); ?>
8
 
9
  <th width="1%" scope="col" title="<?php esc_attr_e( 'Remove button', 'woocommerce-checkout-manager' ); ?>"><strong>X</strong><!-- remove --></th>
10
  </tr>
@@ -31,7 +31,7 @@
31
  </td>
32
  <td class="wccs-order" title="<?php esc_attr_e( 'Drag-and-drop this Checkout field to adjust its ordering', 'woocommerce-checkout-manager' ); ?>"><?php echo $i+1; ?></td>
33
 
34
- <?php require( WOOCCM_PATH.'includes/templates/admin/woocheckout-additional-tbody.php' ); ?>
35
 
36
  <td class="wccs-remove"><a class="wccs-remove-button" href="javascript:;" title="<?php esc_attr_e( 'Delete this Checkout field', 'woocommerce-checkout-manager' ); ?>">&times;</a></td>
37
 
@@ -55,7 +55,7 @@
55
 
56
  <td class="wccs-order" title="<?php esc_attr_e( 'Drag-and-drop this Checkout field to adjust its ordering', 'woocommerce-checkout-manager' ); ?>"><?php echo $i; ?></td>
57
 
58
- <?php require( WOOCCM_PATH.'includes/templates/admin/woocheckout-additional-clone.php' ); ?>
59
 
60
  <td class="wccs-remove"><a class="wccs-remove-button" href="javascript:;" title="<?php esc_attr_e( 'Delete this Checkout field', 'woocommerce-checkout-manager' ); ?>">&times;</a></td>
61
 
4
  <tr>
5
  <th style="width:3%;" class="wccs-order" title="<?php esc_attr_e( 'Change the order of Checkout fields', 'woocommerce-checkout-manager' ); ?>">#</th>
6
 
7
+ <?php require( WOOCCM_PLUGIN_DIR.'includes/templates/admin/woocheckout-additional-thead.php' ); ?>
8
 
9
  <th width="1%" scope="col" title="<?php esc_attr_e( 'Remove button', 'woocommerce-checkout-manager' ); ?>"><strong>X</strong><!-- remove --></th>
10
  </tr>
31
  </td>
32
  <td class="wccs-order" title="<?php esc_attr_e( 'Drag-and-drop this Checkout field to adjust its ordering', 'woocommerce-checkout-manager' ); ?>"><?php echo $i+1; ?></td>
33
 
34
+ <?php require( WOOCCM_PLUGIN_DIR.'includes/templates/admin/woocheckout-additional-tbody.php' ); ?>
35
 
36
  <td class="wccs-remove"><a class="wccs-remove-button" href="javascript:;" title="<?php esc_attr_e( 'Delete this Checkout field', 'woocommerce-checkout-manager' ); ?>">&times;</a></td>
37
 
55
 
56
  <td class="wccs-order" title="<?php esc_attr_e( 'Drag-and-drop this Checkout field to adjust its ordering', 'woocommerce-checkout-manager' ); ?>"><?php echo $i; ?></td>
57
 
58
+ <?php require( WOOCCM_PLUGIN_DIR.'includes/templates/admin/woocheckout-additional-clone.php' ); ?>
59
 
60
  <td class="wccs-remove"><a class="wccs-remove-button" href="javascript:;" title="<?php esc_attr_e( 'Delete this Checkout field', 'woocommerce-checkout-manager' ); ?>">&times;</a></td>
61
 
includes/templates/admin/woocheckout-billing.php CHANGED
@@ -4,7 +4,7 @@
4
  <tr>
5
  <th style="width:3%;" class="billing-wccs-order" title="<?php esc_attr_e( 'Change the order of Checkout fields', 'woocommerce-checkout-manager' ); ?>">#</th>
6
 
7
- <?php require( WOOCCM_PATH.'includes/templates/admin/woocheckout-billing-thead.php' ); ?>
8
 
9
  <th width="1%" scope="col" title="<?php esc_attr_e( 'Remove button', 'woocommerce-checkout-manager' ); ?>"><strong>X</strong><!-- remove --></th>
10
  </tr>
@@ -44,7 +44,7 @@
44
  </td>
45
  <td class="billing-wccs-order" title="<?php esc_attr_e( 'Drag-and-drop this Checkout field to adjust its ordering', 'woocommerce-checkout-manager' ); ?>"><?php echo $i+1; ?></td>
46
 
47
- <?php require( WOOCCM_PATH.'includes/templates/admin/woocheckout-billing-tbody.php' ); ?>
48
 
49
  <?php if( in_array( $options3['billing_buttons'][$i]['cow'], $billing) ) { ?>
50
  <td style="text-align:center;">
@@ -74,7 +74,7 @@
74
 
75
  <td class="billing-wccs-order" title="<?php esc_attr_e( 'Drag-and-drop this Checkout field to adjust its ordering', 'woocommerce-checkout-manager' ); ?>"><?php echo $i; ?></td>
76
 
77
- <?php require( WOOCCM_PATH.'includes/templates/admin/woocheckout-billing-clone.php' ); ?>
78
 
79
  <td class="billing-wccs-remove"><a class="billing-wccs-remove-button" href="javascript:;" title="<?php esc_attr_e( 'Delete this Checkout field', 'woocommerce-checkout-manager' ); ?>">&times;</a></td>
80
 
4
  <tr>
5
  <th style="width:3%;" class="billing-wccs-order" title="<?php esc_attr_e( 'Change the order of Checkout fields', 'woocommerce-checkout-manager' ); ?>">#</th>
6
 
7
+ <?php require( WOOCCM_PLUGIN_DIR.'includes/templates/admin/woocheckout-billing-thead.php' ); ?>
8
 
9
  <th width="1%" scope="col" title="<?php esc_attr_e( 'Remove button', 'woocommerce-checkout-manager' ); ?>"><strong>X</strong><!-- remove --></th>
10
  </tr>
44
  </td>
45
  <td class="billing-wccs-order" title="<?php esc_attr_e( 'Drag-and-drop this Checkout field to adjust its ordering', 'woocommerce-checkout-manager' ); ?>"><?php echo $i+1; ?></td>
46
 
47
+ <?php require( WOOCCM_PLUGIN_DIR.'includes/templates/admin/woocheckout-billing-tbody.php' ); ?>
48
 
49
  <?php if( in_array( $options3['billing_buttons'][$i]['cow'], $billing) ) { ?>
50
  <td style="text-align:center;">
74
 
75
  <td class="billing-wccs-order" title="<?php esc_attr_e( 'Drag-and-drop this Checkout field to adjust its ordering', 'woocommerce-checkout-manager' ); ?>"><?php echo $i; ?></td>
76
 
77
+ <?php require( WOOCCM_PLUGIN_DIR.'includes/templates/admin/woocheckout-billing-clone.php' ); ?>
78
 
79
  <td class="billing-wccs-remove"><a class="billing-wccs-remove-button" href="javascript:;" title="<?php esc_attr_e( 'Delete this Checkout field', 'woocommerce-checkout-manager' ); ?>">&times;</a></td>
80
 
includes/templates/admin/woocheckout-general-switches.php CHANGED
@@ -85,19 +85,16 @@ $position = ( !empty( $options['checkness']['position'] ) ? sanitize_text_field(
85
  </div>
86
  <!-- section -->
87
 
88
- <div class="section">
89
  <h3 class="heading checkbox">
90
-
91
  <div class="option">
92
  <label>
93
  <input type="checkbox" name="wccs_settings[checkness][admin_translation]" value="true"<?php checked( !empty( $options['checkness']['admin_translation'] ), true ); ?> />
94
  <div class="info-of"><?php _e('Translate WooCommerce Checkout Manager Options Panel', 'woocommerce-checkout-manager'); ?></div>
95
  </label>
96
  </div>
97
- <!-- .option -->
98
-
99
  </h3>
100
- </div>
101
  <!-- section -->
102
 
103
  <div class="section">
85
  </div>
86
  <!-- section -->
87
 
88
+ <!--<div class="section">
89
  <h3 class="heading checkbox">
 
90
  <div class="option">
91
  <label>
92
  <input type="checkbox" name="wccs_settings[checkness][admin_translation]" value="true"<?php checked( !empty( $options['checkness']['admin_translation'] ), true ); ?> />
93
  <div class="info-of"><?php _e('Translate WooCommerce Checkout Manager Options Panel', 'woocommerce-checkout-manager'); ?></div>
94
  </label>
95
  </div>
 
 
96
  </h3>
97
+ </div>-->
98
  <!-- section -->
99
 
100
  <div class="section">
includes/templates/admin/woocheckout-general.php CHANGED
@@ -30,25 +30,25 @@
30
  <div id="content-nav-right" class="general-vibe">
31
 
32
  <!-- Uploads tab -->
33
- <?php require( WOOCCM_PATH.'includes/templates/admin/woocheckout-general-uploads.php' ); ?>
34
 
35
  <!-- Hide Address Fields tab -->
36
- <?php require( WOOCCM_PATH.'includes/templates/admin/woocheckout-general-address-fields.php' ); ?>
37
 
38
  <!-- Order Notes tab -->
39
- <?php require( WOOCCM_PATH.'includes/templates/admin/woocheckout-general-order-notes.php' ); ?>
40
 
41
  <!-- Custom CSS tab -->
42
- <?php require( WOOCCM_PATH.'includes/templates/admin/woocheckout-general-custom-css.php' ); ?>
43
 
44
  <!-- Checkout Notices tab -->
45
- <?php require( WOOCCM_PATH.'includes/templates/admin/woocheckout-general-checkout-notices.php' ); ?>
46
 
47
  <!-- Switches tab -->
48
- <?php require( WOOCCM_PATH.'includes/templates/admin/woocheckout-general-switches.php' ); ?>
49
 
50
  <!-- Advanced tab -->
51
- <?php require( WOOCCM_PATH.'includes/templates/admin/woocheckout-general-advanced.php' ); ?>
52
 
53
  </div>
54
  <!-- #content-nav-right -->
30
  <div id="content-nav-right" class="general-vibe">
31
 
32
  <!-- Uploads tab -->
33
+ <?php require( WOOCCM_PLUGIN_DIR.'includes/templates/admin/woocheckout-general-uploads.php' ); ?>
34
 
35
  <!-- Hide Address Fields tab -->
36
+ <?php require( WOOCCM_PLUGIN_DIR.'includes/templates/admin/woocheckout-general-address-fields.php' ); ?>
37
 
38
  <!-- Order Notes tab -->
39
+ <?php require( WOOCCM_PLUGIN_DIR.'includes/templates/admin/woocheckout-general-order-notes.php' ); ?>
40
 
41
  <!-- Custom CSS tab -->
42
+ <?php require( WOOCCM_PLUGIN_DIR.'includes/templates/admin/woocheckout-general-custom-css.php' ); ?>
43
 
44
  <!-- Checkout Notices tab -->
45
+ <?php require( WOOCCM_PLUGIN_DIR.'includes/templates/admin/woocheckout-general-checkout-notices.php' ); ?>
46
 
47
  <!-- Switches tab -->
48
+ <?php require( WOOCCM_PLUGIN_DIR.'includes/templates/admin/woocheckout-general-switches.php' ); ?>
49
 
50
  <!-- Advanced tab -->
51
+ <?php require( WOOCCM_PLUGIN_DIR.'includes/templates/admin/woocheckout-general-advanced.php' ); ?>
52
 
53
  </div>
54
  <!-- #content-nav-right -->
includes/templates/admin/woocheckout-shipping.php CHANGED
@@ -4,7 +4,7 @@
4
  <tr>
5
  <th style="width:3%;" class="shipping-wccs-order" title="<?php esc_attr_e( 'Change the order of Checkout fields', 'woocommerce-checkout-manager' ); ?>">#</th>
6
 
7
- <?php require( WOOCCM_PATH.'includes/templates/admin/woocheckout-shipping-thead.php' ); ?>
8
 
9
  <th width="1%" scope="col" title="<?php esc_attr_e( 'Remove button', 'woocommerce-checkout-manager' ); ?>"><strong>X</strong><!-- remove --></th>
10
  </tr>
@@ -42,7 +42,7 @@
42
  </td>
43
  <td class="shipping-wccs-order" title="<?php esc_attr_e( 'Drag-and-drop this Checkout field to adjust its ordering', 'woocommerce-checkout-manager' ); ?>"><?php echo $i+1; ?></td>
44
 
45
- <?php require(WOOCCM_PATH.'includes/templates/admin/woocheckout-shipping-tbody.php'); ?>
46
 
47
  <?php if( in_array( $options2['shipping_buttons'][$i]['cow'], $shipping ) ) { ?>
48
  <td style="text-align:center;">
@@ -72,7 +72,7 @@
72
 
73
  <td class="shipping-wccs-order" title="<?php esc_attr_e( 'Drag-and-drop this Checkout field to adjust its ordering', 'woocommerce-checkout-manager' ); ?>"><?php echo $i; ?></td>
74
 
75
- <?php require( WOOCCM_PATH.'includes/templates/admin/woocheckout-shipping-clone.php' ); ?>
76
 
77
  <td class="shipping-wccs-remove"><a class="shipping-wccs-remove-button" href="javascript:;" title="<?php esc_attr_e( 'Delete this Checkout field', 'woocommerce-checkout-manager' ); ?>">&times;</a></td>
78
 
4
  <tr>
5
  <th style="width:3%;" class="shipping-wccs-order" title="<?php esc_attr_e( 'Change the order of Checkout fields', 'woocommerce-checkout-manager' ); ?>">#</th>
6
 
7
+ <?php require( WOOCCM_PLUGIN_DIR.'includes/templates/admin/woocheckout-shipping-thead.php' ); ?>
8
 
9
  <th width="1%" scope="col" title="<?php esc_attr_e( 'Remove button', 'woocommerce-checkout-manager' ); ?>"><strong>X</strong><!-- remove --></th>
10
  </tr>
42
  </td>
43
  <td class="shipping-wccs-order" title="<?php esc_attr_e( 'Drag-and-drop this Checkout field to adjust its ordering', 'woocommerce-checkout-manager' ); ?>"><?php echo $i+1; ?></td>
44
 
45
+ <?php require(WOOCCM_PLUGIN_DIR.'includes/templates/admin/woocheckout-shipping-tbody.php'); ?>
46
 
47
  <?php if( in_array( $options2['shipping_buttons'][$i]['cow'], $shipping ) ) { ?>
48
  <td style="text-align:center;">
72
 
73
  <td class="shipping-wccs-order" title="<?php esc_attr_e( 'Drag-and-drop this Checkout field to adjust its ordering', 'woocommerce-checkout-manager' ); ?>"><?php echo $i; ?></td>
74
 
75
+ <?php require( WOOCCM_PLUGIN_DIR.'includes/templates/admin/woocheckout-shipping-clone.php' ); ?>
76
 
77
  <td class="shipping-wccs-remove"><a class="shipping-wccs-remove-button" href="javascript:;" title="<?php esc_attr_e( 'Delete this Checkout field', 'woocommerce-checkout-manager' ); ?>">&times;</a></td>
78
 
includes/templates/functions/add_wooccmupload.php CHANGED
@@ -357,7 +357,7 @@ jQuery(document).ready(function($){
357
  img.src = imageinbase;
358
  img.setAttributeNode(data);
359
  li.appendChild(img);
360
- $.getScript( "<?php echo plugins_url( 'includes/pickers/caman/dist/caman_controls.js', WOOCCM_RELPATH ); ?>");
361
  }
362
  $("#caman_content").show();
363
  $("html").css("overflow", "hidden");
357
  img.src = imageinbase;
358
  img.setAttributeNode(data);
359
  li.appendChild(img);
360
+ $.getScript( "<?php echo plugins_url( 'includes/pickers/caman/dist/caman_controls.js', WOOCCM_PLUGIN_FILE ); ?>");
361
  }
362
  $("#caman_content").show();
363
  $("html").css("overflow", "hidden");
includes/templates/functions/billing_wooccmupload.php CHANGED
@@ -351,7 +351,7 @@ jQuery(document).ready(function($){
351
  img.src = imageinbase;
352
  img.setAttributeNode(data);
353
  li.appendChild(img);
354
- $.getScript( "<?php echo plugins_url( 'includes/pickers/caman/dist/caman_controls.js', WOOCCM_RELPATH ); ?>");
355
  }
356
  $("#caman_content").show();
357
  $("html").css("overflow", "hidden");
351
  img.src = imageinbase;
352
  img.setAttributeNode(data);
353
  li.appendChild(img);
354
+ $.getScript( "<?php echo plugins_url( 'includes/pickers/caman/dist/caman_controls.js', WOOCCM_PLUGIN_FILE ); ?>");
355
  }
356
  $("#caman_content").show();
357
  $("html").css("overflow", "hidden");
includes/templates/functions/shipping_wooccmupload.php CHANGED
@@ -357,7 +357,7 @@ jQuery(document).ready(function($){
357
  img.src = imageinbase;
358
  img.setAttributeNode(data);
359
  li.appendChild(img);
360
- $.getScript( "<?php echo plugins_url( 'includes/pickers/caman/dist/caman_controls.js', WOOCCM_RELPATH ); ?>");
361
  }
362
  $("#caman_content").show();
363
  $("html").css("overflow", "hidden");
357
  img.src = imageinbase;
358
  img.setAttributeNode(data);
359
  li.appendChild(img);
360
+ $.getScript( "<?php echo plugins_url( 'includes/pickers/caman/dist/caman_controls.js', WOOCCM_PLUGIN_FILE ); ?>");
361
  }
362
  $("#caman_content").show();
363
  $("html").css("overflow", "hidden");
includes/templates/functions/{woocm_editing_wrapper.php → wooccm_editing_wrapper.php} RENAMED
File without changes
readme.txt CHANGED
@@ -1,12 +1,12 @@
1
  === WooCommerce Checkout Manager ===
2
-
3
- Contributors: visser, visser.labs, Emark
4
- Donate link: https://www.visser.com.au/donations/
5
- Tags: woocommerce, field manager, checkout editor, checkout field, shipping field, billing field, order field, additional field
6
  Requires at least: 3.0
7
- Tested up to: 5.1.1
8
- Stable tag: 4.3
9
  License: GPLv2 or later
 
10
 
11
  Manages WooCommerce Checkout, the advanced way.
12
 
@@ -53,7 +53,7 @@ WooCommerce Checkout Manager allows you to customise and manage the fields on yo
53
 
54
  = Change of Plugin ownership =
55
 
56
- 11/03/2016 marks a change of ownership of WooCommerce Checkout Manager from Emark to visser who will be responsible for resolving critical Plugin issues and ensuring the Plugin meets WordPress security and coding standards in the form of regular Plugin updates.
57
 
58
  == Installation ==
59
 
@@ -135,6 +135,10 @@ Example:
135
 
136
  == Changelog ==
137
 
 
 
 
 
138
  = 4.3 =
139
  * Fixed: Security issue where Categorize Uploaded Files is selected
140
  * Changed: Disabled Categorize Uploaded Files feature
1
  === WooCommerce Checkout Manager ===
2
+ Contributors: quadlayers
3
+ Donate link: https://quadlayers.com/
4
+ Tags: woocommerce, woocommerce checkout, field manager, checkout editor, checkout field, shipping field, billing field, order field, additional field
 
5
  Requires at least: 3.0
6
+ Tested up to: 5.2.2
7
+ Stable tag: 4.3.1
8
  License: GPLv2 or later
9
+ License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
11
  Manages WooCommerce Checkout, the advanced way.
12
 
53
 
54
  = Change of Plugin ownership =
55
 
56
+ 30/08/2019 marks a change of ownership of WooCommerce Checkout Manager from Visser to [QuadLayers](https://quadlayers.com/) who will be responsible for resolving critical Plugin issues and ensuring the Plugin meets WordPress security and coding standards in the form of regular Plugin updates.
57
 
58
  == Installation ==
59
 
135
 
136
  == Changelog ==
137
 
138
+ = 4.3.1 =
139
+ * Notice: Plugin ownership change
140
+ * Fix: Admin redirect after options reset
141
+
142
  = 4.3 =
143
  * Fixed: Security issue where Categorize Uploaded Files is selected
144
  * Changed: Disabled Categorize Uploaded Files feature
woocommerce-checkout-manager.php CHANGED
@@ -1,253 +1,341 @@
1
  <?php
2
- /*
3
- Plugin Name: WooCommerce Checkout Manager
4
- Plugin URI: https://wordpress.org/plugins/woocommerce-checkout-manager/
5
- Description: Manages WooCommerce Checkout, the advanced way.
6
- Version: 4.3
7
- Author: Visser Labs
8
- Author URI: http://www.visser.com.au
9
- Contributors: visser, Emark
10
- License: GPLv2 or later
11
-
12
- Text Domain: woocommerce-checkout-manager
13
- Domain Path: /languages/
14
-
15
- WC requires at least: 2.3
16
- WC tested up to: 3.6.1
17
- */
18
-
19
- /*
20
- This program is free software; you can redistribute it and/or
21
- modify it under the terms of the GNU General Public License
22
- as published by the Free Software Foundation; either version 2
23
- of the License, or (at your option) any later version.
24
-
25
- This program is distributed in the hope that it will be useful,
26
- but WITHOUT ANY WARRANTY; without even the implied warranty of
27
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
28
- GNU General Public License for more details.
29
-
30
- You should have received a copy of the GNU General Public License
31
- along with this program; if not, write to the Free Software
32
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
33
- */
34
-
35
- /*
36
- Notice of change of Plugin ownership (11/03/2016)
37
-
38
- This Plugin was released to the WordPress community on 06/08/2013 and maintained till 10/03/2016 by Emark (https://profiles.wordpress.org/emark/).
39
- On 11/03/2016 Plugin ownership was transferred from Emark to visser (https://profiles.wordpress.org/visser/) who will be responsible for resolving
40
- critical Plugin issues and ensuring the Plugin meets WordPress security and coding standards in the form of regular Plugin updates.
41
- */
42
-
43
- // Exit if accessed directly
44
- if ( !defined( 'ABSPATH' ) ) exit;
45
-
46
- define( 'WOOCCM_DIRNAME', basename( dirname( __FILE__ ) ) );
47
- define( 'WOOCCM_RELPATH', basename( dirname( __FILE__ ) ) . '/' . basename( __FILE__ ) );
48
- define( 'WOOCCM_PATH', plugin_dir_path( __FILE__ ) );
49
- define( 'WOOCCM_PREFIX', 'wooccm' );
50
-
51
- include( WOOCCM_PATH.'includes/install.php' );
52
- include( WOOCCM_PATH.'includes/functions.php' );
53
- include( WOOCCM_PATH.'includes/checkout.php' );
54
- include( WOOCCM_PATH.'includes/checkout-billing.php' );
55
- include( WOOCCM_PATH.'includes/checkout-shipping.php' );
56
- include( WOOCCM_PATH.'includes/checkout-additional.php' );
57
- include( WOOCCM_PATH.'includes/email.php' );
58
- include( WOOCCM_PATH.'includes/formatting.php' );
59
- include( WOOCCM_PATH.'includes/admin.php' );
60
- include( WOOCCM_PATH.'includes/template.php' );
61
- include( WOOCCM_PATH.'includes/export.php' );
62
- include( WOOCCM_PATH.'includes/classes/main.php' );
63
- include( WOOCCM_PATH.'includes/classes/field_filters.php' );
64
-
65
- // @mod - We need to load the templates conditionally
66
- include( WOOCCM_PATH.'includes/templates/functions/add_functions.php' );
67
- include( WOOCCM_PATH.'includes/templates/functions/billing_functions.php' );
68
- include( WOOCCM_PATH.'includes/templates/functions/shipping_functions.php' );
69
- include( WOOCCM_PATH.'includes/templates/functions/add_wooccmupload.php' );
70
- include( WOOCCM_PATH.'includes/templates/functions/billing_wooccmupload.php' );
71
- include( WOOCCM_PATH.'includes/templates/functions/shipping_wooccmupload.php' );
72
- include( WOOCCM_PATH.'includes/templates/functions/required/add_required.php' );
73
- include( WOOCCM_PATH.'includes/templates/functions/required/billing_required.php' );
74
- include( WOOCCM_PATH.'includes/templates/functions/required/shipping_required.php' );
75
- include( WOOCCM_PATH.'includes/templates/functions/woocm_editing_wrapper.php' );
76
-
77
- // @mod - We need to clean this up
78
-
79
- register_activation_hook( __FILE__, 'wooccm_install' );
80
-
81
- add_action( 'woocommerce_before_checkout_form' , 'wooccm_autocreate_account' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
82
  // E-mail - Order receipt
83
- add_action( 'woocommerce_email_after_order_table', 'wooccm_order_receipt_checkout_details', 10, 3 );
84
  // Save the Order meta
85
- add_action( 'woocommerce_checkout_update_order_meta', 'wooccm_custom_checkout_field_update_order_meta' );
86
- add_action( 'woocommerce_checkout_process', 'wooccm_custom_checkout_field_process' );
87
- add_action( 'woocommerce_checkout_update_user_meta', 'wooccm_custom_checkout_field_update_user_meta', 10, 2 );
88
  // Checkout - Order Received
89
- add_action( 'woocommerce_order_details_after_customer_details', 'wooccm_order_received_checkout_details' );
90
- add_action( 'woocommerce_checkout_after_customer_details','wooccm_checkout_text_after' );
91
- add_action( 'woocommerce_checkout_before_customer_details','wooccm_checkout_text_before' );
92
- add_filter( 'woocommerce_checkout_fields', 'wooccm_remove_fields_filter_billing', 15 );
93
- add_filter( 'woocommerce_checkout_fields', 'wooccm_remove_fields_filter_shipping', 1 );
94
- add_action( 'wp_head','wooccm_display_front' );
95
- add_action( 'wp_head','wooccm_billing_hide_required' );
96
- add_action( 'wp_head','wooccm_shipping_hide_required' );
97
  // @mod - wooccm_run_color_inner does not exist
98
  // add_action( 'wooccm_run_color_innerpicker', 'wooccm_run_color_inner' ); run color inside options page (proto)
99
- add_action( 'woocommerce_before_checkout_form', 'wooccm_override_this' );
100
- add_filter( 'woocommerce_billing_fields', 'wooccm_checkout_billing_fields' );
101
- add_filter( 'woocommerce_default_address_fields', 'wooccm_checkout_default_address_fields' );
102
- add_filter( 'woocommerce_shipping_fields', 'wooccm_checkout_shipping_fields' );
103
- add_filter( 'wcdn_order_info_fields', 'wooccm_woocommerce_delivery_notes_compat', 10, 2 );
104
- add_filter( 'wc_customer_order_csv_export_order_row', 'wooccm_csv_export_modify_row_data', 10, 3 );
105
- add_filter( 'wc_customer_order_csv_export_order_headers', 'wooccm_csv_export_modify_column_headers' );
106
-
107
- if( defined( 'WOOCOMMERCE_VERSION' ) ) {
108
- if( version_compare( WOOCOMMERCE_VERSION, '2.7', '>=' ) )
109
- add_filter( 'default_checkout_state', 'wooccm_state_default_switch' );
110
- else
111
- add_filter( 'default_checkout_billing_state', 'wooccm_state_default_switch' );
112
  }
113
- add_action( 'woocommerce_checkout_process', 'wooccm_custom_checkout_process' );
114
- add_action( 'woocommerce_checkout_process', 'wooccm_billing_custom_checkout_process' );
115
- add_action( 'woocommerce_checkout_process', 'wooccm_shipping_custom_checkout_process' );
116
-
117
- add_action( 'woocommerce_before_checkout_form', 'wooccm_upload_billing_scripts' );
118
- add_action( 'woocommerce_before_checkout_form', 'wooccm_upload_shipping_scripts' );
119
- add_action( 'woocommerce_before_checkout_form', 'wooccm_billing_scripts' );
120
- add_action( 'woocommerce_before_checkout_form', 'wooccm_shipping_scripts' );
121
- add_action( 'woocommerce_before_checkout_form', 'wooccm_billing_override_this' );
122
- add_action( 'woocommerce_before_checkout_form', 'wooccm_shipping_override_this' );
123
- add_action( 'woocommerce_before_checkout_form', 'wooccm_scripts' );
124
- add_action( 'woocommerce_before_checkout_form', 'wooccm_upload_scripts' );
125
-
126
- add_action( 'woocommerce_checkout_fields', 'wooccm_order_notes' );
127
- add_filter( 'parse_query', 'wooccm_query_list' );
128
- add_action( 'restrict_manage_posts', 'woooccm_restrict_manage_posts' );
129
-
130
- switch( wooccm_checkout_additional_positioning() ) {
131
-
132
- case 'before_shipping_form':
133
- add_action( 'woocommerce_before_checkout_shipping_form', 'wooccm_checkout_additional_fields' );
134
- break;
135
-
136
- case 'after_shipping_form':
137
- add_action( 'woocommerce_after_checkout_shipping_form', 'wooccm_checkout_additional_fields' );
138
- break;
139
-
140
- case 'before_billing_form':
141
- add_action( 'woocommerce_before_checkout_billing_form', 'wooccm_checkout_additional_fields' );
142
- break;
143
-
144
- case 'after_billing_form':
145
- add_action( 'woocommerce_after_checkout_billing_form', 'wooccm_checkout_additional_fields' );
146
- break;
147
-
148
- case 'after_order_notes':
149
- add_action( 'woocommerce_after_order_notes', 'wooccm_checkout_additional_fields' );
150
- break;
151
-
152
- }
153
-
154
- if( wooccm_validator_changename() ) {
155
-
156
- add_action( 'woocommerce_before_cart', 'wooccm_before_checkout' );
157
- add_action( 'woocommerce_admin_order_data_after_order_details', 'wooccm_before_checkout' );
158
- add_action( 'woocommerce_before_my_account', 'wooccm_before_checkout' );
159
- add_action( 'woocommerce_email_header', 'wooccm_before_checkout' );
160
- add_action( 'woocommerce_before_checkout_form', 'wooccm_before_checkout' );
161
- add_action( 'woocommerce_after_cart', 'wooccm_after_checkout' );
162
- add_action( 'woocommerce_admin_order_data_after_shipping_address', 'wooccm_after_checkout' );
163
- add_action( 'woocommerce_after_my_account', 'wooccm_after_checkout' );
164
- add_action( 'woocommerce_email_footer', 'wooccm_after_checkout' );
165
- add_action( 'woocommerce_after_checkout_form', 'wooccm_after_checkout' );
166
-
167
  }
168
 
169
- if( wooccm_enable_auto_complete() ) {
170
-
171
- add_action( 'woocommerce_before_checkout_form', 'wooccm_retain_field_values' );
172
-
 
 
 
 
 
 
 
 
173
  }
174
 
175
- function wooccm_load_textdomain() {
176
-
177
- $options = get_option( 'wccs_settings' );
178
- // @mod - We are loading translations unless they opt-out via the WordPress Filter
179
- $options['checkness']['admin_translation'] = apply_filters( 'wooccm_load_textdomain', true, ( isset( $options['checkness']['admin_translation'] ) ? $options['checkness']['admin_translation'] : false ) );
180
- if( !empty( $options['checkness']['admin_translation'] ) ) {
181
- load_plugin_textdomain( 'woocommerce-checkout-manager', false, WOOCCM_DIRNAME . '/languages/' );
182
- }
183
-
184
  }
185
- add_action( 'plugins_loaded', 'wooccm_load_textdomain' );
186
-
187
- function wooccm_jquery_init() {
188
-
189
- global $woocommerce;
190
-
191
- $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
192
 
193
- if( is_account_page() ) {
194
- wp_enqueue_style( 'dashicons' );
195
- wp_enqueue_style( 'wooccm-button-style', plugins_url( 'includes/templates/admin/edit-order-uploads-button_style.css', WOOCCM_RELPATH ), false, '1.0', 'all' );
196
- }
197
 
198
- if( is_checkout() ) {
 
 
 
 
 
 
199
 
200
- // WPML - https://wpml.org/
201
- $current_language = ( defined( 'ICL_LANGUAGE_CODE' ) ? ICL_LANGUAGE_CODE : apply_filters( 'wooccm_language_code', false ) );
202
-
203
- // DatePicker
204
- wp_enqueue_script( 'jquery-ui-datepicker', array( 'jquery' ) );
205
- if( defined( 'ICL_LANGUAGE_CODE' ) || !empty( $current_language ) ) {
206
- // Check if WPML is in use or the WordPress Filter has been used
207
- if(
208
- (
209
- function_exists( 'icl_register_string' ) &&
210
- ICL_LANGUAGE_CODE == $current_language &&
211
- ICL_LANGUAGE_CODE !== 'en'
212
- ) ||
213
- !empty( $current_language )
214
- ) {
215
- wp_enqueue_script( 'jquery.ui.datepicker-'.$current_language, plugins_url( 'includes/pickers/di18n/jquery.ui.datepicker-'.$current_language.'.js', WOOCCM_RELPATH ), array( 'jquery' ) );
216
- }
217
- }
218
-
219
- wp_enqueue_style('jquery-style', plugins_url( 'includes/pickers/jquery.ui.css', WOOCCM_RELPATH ) );
220
-
221
- // TimePicker - http://fgelinas.com/code/timepicker/
222
- wp_enqueue_script( 'jquery-ui-timepicker', plugins_url( 'includes/pickers/jquery.ui.timepicker.js', WOOCCM_RELPATH ), array( 'jquery' ) );
223
- wp_enqueue_style( 'jquery-ui-timepicker', plugins_url( 'includes/pickers/jquery.ui.timepicker.css', WOOCCM_RELPATH ) );
224
- wp_enqueue_style( 'jquery-ui-timepicker-min', plugins_url( 'includes/pickers/include/ui-1.10.0/ui-lightness/jquery-ui-1.10.0.custom.min.css', WOOCCM_RELPATH ) );
225
- // @mod - Do we need this any more?
226
-
227
- // wp_enqueue_script( 'jquery-lib', '//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js' );
228
-
229
- wp_enqueue_style( 'wp-color-picker' );
230
- wp_enqueue_script( 'iris', plugins_url( 'includes/pickers/iris/dist/iris.js', WOOCCM_RELPATH ), array( 'jquery-ui-draggable', 'jquery-ui-slider', 'jquery-touch-punch' ), false, 1 );
231
- // @mod - Check if this file exists
232
- wp_enqueue_script( 'wp-color-picker', admin_url( 'js/color-picker.min.js' ), array( 'iris' ), false, 1 );
233
- // load the style and script for farbtastic
234
- // @mod - Check if farbtastic exists
235
- wp_enqueue_style( 'farbtastic' );
236
- wp_enqueue_script( 'farbtastic', admin_url( '/js/farbtastic.js' ) );
237
-
238
- wp_enqueue_style( 'dashicons' );
239
-
240
- wp_enqueue_style( 'magnific-popup', plugins_url( 'includes/pickers/magnificpopup/dist/magnific-popup.css', WOOCCM_RELPATH ) );
241
- wp_enqueue_script( 'magnific-popup', plugins_url( 'includes/pickers/magnificpopup/dist/jquery.magnific-popup.js', WOOCCM_RELPATH ) );
242
-
243
- wp_enqueue_script( 'caman', plugins_url( 'includes/pickers/caman/dist/caman.js', WOOCCM_RELPATH ) );
244
- wp_enqueue_style( 'caman', plugins_url( 'includes/pickers/caman/dist/caman.css', WOOCCM_RELPATH ) );
245
-
246
- wp_enqueue_script( 'jcrop-color', plugins_url( 'includes/pickers/jcrop/js/jquery.color.js', WOOCCM_RELPATH ) );
247
- wp_enqueue_script( 'jcrop', plugins_url( 'includes/pickers/jcrop/js/jquery.Jcrop.js', WOOCCM_RELPATH ) );
248
-
249
- }
250
-
251
- }
252
- add_action( 'wp_enqueue_scripts', 'wooccm_jquery_init' );
253
- ?>
1
  <?php
2
+ /**
3
+ * Plugin Name: WooCommerce Checkout Manager
4
+ * Description: Manages WooCommerce Checkout, the advanced way.
5
+ * Version: 4.3.1
6
+ * Author: QuadLayers
7
+ * Author URI: https://www.quadlayers.com
8
+ * Copyright: 2019 QuadLayers (https://www.quadlayers.com)
9
+ * Text Domain: woocommerce-checkout-manager
10
+ */
11
+ if (!defined('ABSPATH')) {
12
+ die('-1');
13
+ }
14
+
15
+ if (!defined('WOOCCM_PLUGIN_NAME')) {
16
+ define('WOOCCM_PLUGIN_NAME', 'WooCommerce Checkout Manager');
17
+ }
18
+ if (!defined('WOOCCM_PLUGIN_VERSION')) {
19
+ define('WOOCCM_PLUGIN_VERSION', '4.3.1');
20
+ }
21
+ if (!defined('WOOCCM_PLUGIN_FILE')) {
22
+ define('WOOCCM_PLUGIN_FILE', __FILE__);
23
+ }
24
+ if (!defined('WOOCCM_PLUGIN_DIR')) {
25
+ define('WOOCCM_PLUGIN_DIR', __DIR__ . DIRECTORY_SEPARATOR);
26
+ }
27
+ if (!defined('WOOCCM_PREFIX')) {
28
+ define('WOOCCM_PREFIX', 'wooccm');
29
+ }
30
+ if (!defined('WOOCCM_WORDPRESS_URL')) {
31
+ define('WOOCCM_WORDPRESS_URL', 'https://wordpress.org/plugins/woocommerce-checkout-manager/');
32
+ }
33
+ if (!defined('WOOCCM_REVIEW_URL')) {
34
+ define('WOOCCM_REVIEW_URL', 'https://wordpress.org/support/plugin/woocommerce-checkout-manager/reviews/?filter=5#new-post');
35
+ }
36
+ if (!defined('WOOCCM_DEMO_URL')) {
37
+ define('WOOCCM_DEMO_URL', 'https://quadlayers.com/portfolio/woocommerce-checkout-manager/?utm_source=wooccm_admin');
38
+ }
39
+ if (!defined('WOOCCM_PURCHASE_URL')) {
40
+ define('WOOCCM_PURCHASE_URL', WOOCCM_DEMO_URL);
41
+ }
42
+ if (!defined('WOOCCM_SUPPORT_URL')) {
43
+ define('WOOCCM_SUPPORT_URL', 'https://quadlayers.com/account/support/?utm_source=wooccm_admin');
44
+ }
45
+ if (!defined('WOOCCM_GROUP_URL')) {
46
+ define('WOOCCM_GROUP_URL', 'https://www.facebook.com/groups/quadlayers');
47
+ }
48
+
49
+ if (!class_exists('WOOCCM')) {
50
+
51
+ class WOOCCM {
52
+
53
+ protected static $instance;
54
+
55
+ function ajax_dismiss_notice() {
56
+ if (current_user_can('manage_options')) {
57
+
58
+ if (!empty($_REQUEST) && check_admin_referer('wooccm_dismiss_notice', 'nonce')) {
59
+
60
+ if ($notice_id = ( isset($_REQUEST['notice_id']) ) ? sanitize_key($_REQUEST['notice_id']) : '') {
61
+
62
+ update_user_meta(get_current_user_id(), $notice_id, true);
63
+
64
+ wp_send_json($notice_id);
65
+ }
66
+ }
67
+ }
68
+ wp_die();
69
+ }
70
+
71
+ function add_notices() {
72
+
73
+ if (!get_transient('wooccm-first-rating') && !get_user_meta(get_current_user_id(), 'wooccm-user-rating', true)) {
74
+ ?>
75
+ <div id="wooccm-admin-rating" class="wooccm-notice notice is-dismissible" data-notice_id="wooccm-user-rating">
76
+ <div class="notice-container" style="padding-top: 10px; padding-bottom: 10px; display: flex; justify-content: left; align-items: center;">
77
+ <div class="notice-image">
78
+ <img style="border-radius:50%;max-width: 90px;" src="<?php echo plugins_url('/assets/img/logo.jpg', WOOCCM_PLUGIN_FILE); ?>" alt="<?php echo esc_html(WOOCCM_PLUGIN_NAME); ?>>">
79
+ </div>
80
+ <div class="notice-content" style="margin-left: 15px;">
81
+ <p>
82
+ <?php printf(esc_html__('Hello! We\'ve recently accquired this plugin!', 'woocommerce-checkout-manager'), WOOCCM_PLUGIN_NAME); ?>
83
+ <br/>
84
+ <?php esc_html_e('We will do our best to improve it and include new features gradually. Please be patient and let us know about the issues and improvements that you want to see in this plugin.', 'woocommerce-checkout-manager'); ?>
85
+ </p>
86
+ <a href="<?php echo esc_url(WOOCCM_GROUP_URL); ?>" class="button-primary" target="_blank">
87
+ <?php esc_html_e('Join Community!', 'woocommerce-checkout-manager'); ?>
88
+ </a>
89
+ <a href="<?php echo esc_url(WOOCCM_SUPPORT_URL); ?>" class="button-secondary" target="_blank">
90
+ <?php esc_html_e('Report a bug', 'woocommerce-checkout-manager'); ?>
91
+ </a>
92
+ <a style="margin-left: 10px;" href="https://quadlayers.com/?utm_source=wooccm_admin" target="_blank">
93
+ <?php esc_html_e('About us', 'woocommerce-checkout-manager'); ?>
94
+ </a>
95
+ </div>
96
+ </div>
97
+ </div>
98
+ <script>
99
+ (function ($) {
100
+ $('.wooccm-notice').on('click', '.notice-dismiss', function (e) {
101
+ e.preventDefault();
102
+ var notice_id = $(e.delegateTarget).data('notice_id');
103
+ $.ajax({
104
+ type: 'POST',
105
+ url: ajaxurl,
106
+ data: {
107
+ notice_id: notice_id,
108
+ action: 'wooccm_dismiss_notice',
109
+ nonce: '<?php echo wp_create_nonce('wooccm_dismiss_notice'); ?>'
110
+ },
111
+ success: function (response) {
112
+ console.log(response);
113
+ },
114
+ });
115
+ });
116
+ })(jQuery);
117
+ </script>
118
+ <?php
119
+ }
120
+ }
121
+
122
+ function add_scripts() {
123
+
124
+ $i18n = substr(get_user_locale(), 0, 2);
125
+
126
+ if (is_account_page()) {
127
+ wp_enqueue_style('dashicons');
128
+ wp_enqueue_style('wooccm-button-style', plugins_url('includes/templates/admin/edit-order-uploads-button_style.css', WOOCCM_PLUGIN_FILE), false, '1.0', 'all');
129
+ }
130
+
131
+ if (is_checkout()) {
132
+ // UI
133
+ // ---------------------------------------------------------------------
134
+ wp_enqueue_style('jquery-ui-style', WC()->plugin_url() . '/assets/css/jquery-ui/jquery-ui.min.css', array(), WC_VERSION);
135
+
136
+ // Datepicker
137
+ // ---------------------------------------------------------------------
138
+ wp_enqueue_script('jquery-ui-datepicker');
139
+
140
+ // Timepicker
141
+ // ---------------------------------------------------------------------
142
+ wp_enqueue_style('jquery-ui-timepicker', plugins_url('includes/pickers/jquery.ui.timepicker.css', WOOCCM_PLUGIN_FILE), false, WOOCCM_PLUGIN_VERSION);
143
+ wp_enqueue_script('jquery-ui-timepicker', plugins_url('includes/pickers/jquery.ui.timepicker.js', WOOCCM_PLUGIN_FILE), array('jquery'), WOOCCM_PLUGIN_VERSION);
144
+
145
+ if (is_file(WOOCCM_PLUGIN_DIR . 'includes/pickers/i18n/jquery.ui.timepicker-' . $i18n . '.js')) {
146
+ wp_enqueue_script('jquery-ui-timepicker-' . $i18n, plugins_url('includes/pickers/i18n/jquery.ui.timepicker-' . $i18n . '.js', WOOCCM_PLUGIN_FILE), array('jquery-ui-timepicker'), WOOCCM_PLUGIN_VERSION);
147
+ }
148
+
149
+ // Colorpicker
150
+ // ---------------------------------------------------------------------
151
+ wp_enqueue_style('wp-color-picker');
152
+ wp_enqueue_script('wp-color-picker');
153
+
154
+ // Farbtastic
155
+ // ---------------------------------------------------------------------
156
+ wp_enqueue_style('farbtastic');
157
+ wp_enqueue_script('farbtastic');
158
+
159
+ // Dashicons
160
+ // ---------------------------------------------------------------------
161
+ wp_enqueue_style('dashicons');
162
+
163
+ // Popup
164
+ // ---------------------------------------------------------------------
165
+ wp_enqueue_style('magnific-popup', plugins_url('includes/pickers/magnificpopup/dist/magnific-popup.css', WOOCCM_PLUGIN_FILE));
166
+ wp_enqueue_script('magnific-popup', plugins_url('includes/pickers/magnificpopup/dist/jquery.magnific-popup.js', WOOCCM_PLUGIN_FILE));
167
+
168
+ // Caman
169
+ // ---------------------------------------------------------------------
170
+ wp_enqueue_script('caman', plugins_url('includes/pickers/caman/dist/caman.js', WOOCCM_PLUGIN_FILE));
171
+ wp_enqueue_style('caman', plugins_url('includes/pickers/caman/dist/caman.css', WOOCCM_PLUGIN_FILE));
172
+
173
+ // Color
174
+ // ---------------------------------------------------------------------
175
+ wp_enqueue_script('jcrop-color', plugins_url('includes/pickers/jcrop/js/jquery.color.js', WOOCCM_PLUGIN_FILE));
176
+ wp_enqueue_script('jcrop', plugins_url('includes/pickers/jcrop/js/jquery.Jcrop.js', WOOCCM_PLUGIN_FILE));
177
+ }
178
+ }
179
+
180
+ function languages() {
181
+ load_plugin_textdomain('woocommerce-checkout-manager', false, dirname(plugin_basename(__FILE__)) . '/languages/');
182
+ }
183
+
184
+ function includes() {
185
+ include( WOOCCM_PLUGIN_DIR . 'includes/install.php' );
186
+ include( WOOCCM_PLUGIN_DIR . 'includes/functions.php' );
187
+ include( WOOCCM_PLUGIN_DIR . 'includes/checkout.php' );
188
+ include( WOOCCM_PLUGIN_DIR . 'includes/checkout-billing.php' );
189
+ include( WOOCCM_PLUGIN_DIR . 'includes/checkout-shipping.php' );
190
+ include( WOOCCM_PLUGIN_DIR . 'includes/checkout-additional.php' );
191
+ include( WOOCCM_PLUGIN_DIR . 'includes/email.php' );
192
+ include( WOOCCM_PLUGIN_DIR . 'includes/formatting.php' );
193
+ include( WOOCCM_PLUGIN_DIR . 'includes/admin.php' );
194
+ include( WOOCCM_PLUGIN_DIR . 'includes/template.php' );
195
+ include( WOOCCM_PLUGIN_DIR . 'includes/export.php' );
196
+ include( WOOCCM_PLUGIN_DIR . 'includes/classes/main.php' );
197
+ include( WOOCCM_PLUGIN_DIR . 'includes/classes/field_filters.php' );
198
+
199
+ // @mod - We need to load the templates conditionally
200
+ include( WOOCCM_PLUGIN_DIR . 'includes/templates/functions/add_functions.php' );
201
+ include( WOOCCM_PLUGIN_DIR . 'includes/templates/functions/billing_functions.php' );
202
+ include( WOOCCM_PLUGIN_DIR . 'includes/templates/functions/shipping_functions.php' );
203
+ include( WOOCCM_PLUGIN_DIR . 'includes/templates/functions/add_wooccmupload.php' );
204
+ include( WOOCCM_PLUGIN_DIR . 'includes/templates/functions/billing_wooccmupload.php' );
205
+ include( WOOCCM_PLUGIN_DIR . 'includes/templates/functions/shipping_wooccmupload.php' );
206
+ include( WOOCCM_PLUGIN_DIR . 'includes/templates/functions/required/add_required.php' );
207
+ include( WOOCCM_PLUGIN_DIR . 'includes/templates/functions/required/billing_required.php' );
208
+ include( WOOCCM_PLUGIN_DIR . 'includes/templates/functions/required/shipping_required.php' );
209
+ include( WOOCCM_PLUGIN_DIR . 'includes/templates/functions/wooccm_editing_wrapper.php' );
210
+ }
211
+
212
+ function init() {
213
+ add_action('wp_ajax_wooccm_dismiss_notice', array($this, 'ajax_dismiss_notice'));
214
+ add_action('wp_enqueue_scripts', array($this, 'add_scripts'));
215
+ add_action('admin_notices', array($this, 'add_notices'));
216
+ }
217
+
218
+ public static function do_activation() {
219
+ set_transient('wooccm-first-rating', true, MONTH_IN_SECONDS);
220
+ }
221
+
222
+ public static function instance() {
223
+ if (!isset(self::$instance)) {
224
+ self::$instance = new self();
225
+ self::$instance->includes();
226
+ self::$instance->init();
227
+ self::$instance->languages();
228
+ }
229
+ return self::$instance;
230
+ }
231
+
232
+ }
233
+
234
+ //add_action('plugins_loaded', array('WOOCCM', 'instance'));
235
+
236
+ WOOCCM::instance();
237
+
238
+ register_activation_hook(WOOCCM_PLUGIN_FILE, array('WOOCCM', 'do_activation'));
239
+ }
240
+
241
+ add_action('woocommerce_before_checkout_form', 'wooccm_autocreate_account');
242
  // E-mail - Order receipt
243
+ add_action('woocommerce_email_after_order_table', 'wooccm_order_receipt_checkout_details', 10, 3);
244
  // Save the Order meta
245
+ add_action('woocommerce_checkout_update_order_meta', 'wooccm_custom_checkout_field_update_order_meta');
246
+ add_action('woocommerce_checkout_process', 'wooccm_custom_checkout_field_process');
247
+ add_action('woocommerce_checkout_update_user_meta', 'wooccm_custom_checkout_field_update_user_meta', 10, 2);
248
  // Checkout - Order Received
249
+ add_action('woocommerce_order_details_after_customer_details', 'wooccm_order_received_checkout_details');
250
+ add_action('woocommerce_checkout_after_customer_details', 'wooccm_checkout_text_after');
251
+ add_action('woocommerce_checkout_before_customer_details', 'wooccm_checkout_text_before');
252
+ add_filter('woocommerce_checkout_fields', 'wooccm_remove_fields_filter_billing', 15);
253
+ add_filter('woocommerce_checkout_fields', 'wooccm_remove_fields_filter_shipping', 1);
254
+ add_action('wp_head', 'wooccm_display_front');
255
+ add_action('wp_head', 'wooccm_billing_hide_required');
256
+ add_action('wp_head', 'wooccm_shipping_hide_required');
257
  // @mod - wooccm_run_color_inner does not exist
258
  // add_action( 'wooccm_run_color_innerpicker', 'wooccm_run_color_inner' ); run color inside options page (proto)
259
+ add_action('woocommerce_before_checkout_form', 'wooccm_override_this');
260
+ add_filter('woocommerce_billing_fields', 'wooccm_checkout_billing_fields');
261
+ add_filter('woocommerce_default_address_fields', 'wooccm_checkout_default_address_fields');
262
+ add_filter('woocommerce_shipping_fields', 'wooccm_checkout_shipping_fields');
263
+ add_filter('wcdn_order_info_fields', 'wooccm_woocommerce_delivery_notes_compat', 10, 2);
264
+ add_filter('wc_customer_order_csv_export_order_row', 'wooccm_csv_export_modify_row_data', 10, 3);
265
+ add_filter('wc_customer_order_csv_export_order_headers', 'wooccm_csv_export_modify_column_headers');
266
+
267
+ if (defined('WOOCOMMERCE_VERSION')) {
268
+ if (version_compare(WOOCOMMERCE_VERSION, '2.7', '>='))
269
+ add_filter('default_checkout_state', 'wooccm_state_default_switch');
270
+ else
271
+ add_filter('default_checkout_billing_state', 'wooccm_state_default_switch');
272
  }
273
+ add_action('woocommerce_checkout_process', 'wooccm_custom_checkout_process');
274
+ add_action('woocommerce_checkout_process', 'wooccm_billing_custom_checkout_process');
275
+ add_action('woocommerce_checkout_process', 'wooccm_shipping_custom_checkout_process');
276
+
277
+ add_action('woocommerce_before_checkout_form', 'wooccm_upload_billing_scripts');
278
+ add_action('woocommerce_before_checkout_form', 'wooccm_upload_shipping_scripts');
279
+ add_action('woocommerce_before_checkout_form', 'wooccm_billing_scripts');
280
+ add_action('woocommerce_before_checkout_form', 'wooccm_shipping_scripts');
281
+ add_action('woocommerce_before_checkout_form', 'wooccm_billing_override_this');
282
+ add_action('woocommerce_before_checkout_form', 'wooccm_shipping_override_this');
283
+ add_action('woocommerce_before_checkout_form', 'wooccm_scripts');
284
+ add_action('woocommerce_before_checkout_form', 'wooccm_upload_scripts');
285
+
286
+ add_action('woocommerce_checkout_fields', 'wooccm_order_notes');
287
+ add_filter('parse_query', 'wooccm_query_list');
288
+ add_action('restrict_manage_posts', 'woooccm_restrict_manage_posts');
289
+
290
+ switch (wooccm_checkout_additional_positioning()) {
291
+
292
+ case 'before_shipping_form':
293
+ add_action('woocommerce_before_checkout_shipping_form', 'wooccm_checkout_additional_fields');
294
+ break;
295
+
296
+ case 'after_shipping_form':
297
+ add_action('woocommerce_after_checkout_shipping_form', 'wooccm_checkout_additional_fields');
298
+ break;
299
+
300
+ case 'before_billing_form':
301
+ add_action('woocommerce_before_checkout_billing_form', 'wooccm_checkout_additional_fields');
302
+ break;
303
+
304
+ case 'after_billing_form':
305
+ add_action('woocommerce_after_checkout_billing_form', 'wooccm_checkout_additional_fields');
306
+ break;
307
+
308
+ case 'after_order_notes':
309
+ add_action('woocommerce_after_order_notes', 'wooccm_checkout_additional_fields');
310
+ break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
311
  }
312
 
313
+ if (wooccm_validator_changename()) {
314
+
315
+ add_action('woocommerce_before_cart', 'wooccm_before_checkout');
316
+ add_action('woocommerce_admin_order_data_after_order_details', 'wooccm_before_checkout');
317
+ add_action('woocommerce_before_my_account', 'wooccm_before_checkout');
318
+ add_action('woocommerce_email_header', 'wooccm_before_checkout');
319
+ add_action('woocommerce_before_checkout_form', 'wooccm_before_checkout');
320
+ add_action('woocommerce_after_cart', 'wooccm_after_checkout');
321
+ add_action('woocommerce_admin_order_data_after_shipping_address', 'wooccm_after_checkout');
322
+ add_action('woocommerce_after_my_account', 'wooccm_after_checkout');
323
+ add_action('woocommerce_email_footer', 'wooccm_after_checkout');
324
+ add_action('woocommerce_after_checkout_form', 'wooccm_after_checkout');
325
  }
326
 
327
+ if (wooccm_enable_auto_complete()) {
328
+ add_action('woocommerce_before_checkout_form', 'wooccm_retain_field_values');
 
 
 
 
 
 
 
329
  }
 
 
 
 
 
 
 
330
 
331
+ /* function wooccm_load_textdomain() {
 
 
 
332
 
333
+ $options = get_option('wccs_settings');
334
+ // @mod - We are loading translations unless they opt-out via the WordPress Filter
335
+ $options['checkness']['admin_translation'] = apply_filters('wooccm_load_textdomain', true, ( isset($options['checkness']['admin_translation']) ? $options['checkness']['admin_translation'] : false));
336
+ if (!empty($options['checkness']['admin_translation'])) {
337
+ load_plugin_textdomain('woocommerce-checkout-manager', false, dirname(plugin_basename(__FILE__)) . '/languages/');
338
+ }
339
+ }
340
 
341
+ add_action('plugins_loaded', 'wooccm_load_textdomain'); */