MockData.php 45 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175
  1. <?php if ( ! defined( 'ABSPATH' ) ) exit;
  2. final class NF_Database_MockData
  3. {
  4. public function __construct()
  5. {
  6. $this->_migrate();
  7. }
  8. public function saved_fields()
  9. {
  10. $field = Ninja_Forms()->form()->field()->get();
  11. $field->update_setting( 'label', __( 'Foo', 'ninja-forms' ) );
  12. $field->update_setting( 'key', 'foo' );
  13. $field->update_setting( 'type', 'textbox' );
  14. $field->update_setting( 'saved', 1 );
  15. $field->save();
  16. $field = Ninja_Forms()->form()->field()->get();
  17. $field->update_setting( 'label', __( 'Bar', 'ninja-forms' ) );
  18. $field->update_setting( 'key', 'bar' );
  19. $field->update_setting( 'type', 'checkbox' );
  20. $field->update_setting( 'saved', 1 );
  21. $field->save();
  22. $field = Ninja_Forms()->form()->field()->get();
  23. $field->update_setting( 'label', __( 'Baz', 'ninja-forms' ) );
  24. $field->update_setting( 'key', 'baz' );
  25. $field->update_setting( 'type', 'listselect' );
  26. $field->update_setting( 'saved', 1 );
  27. $field->save();
  28. }
  29. public function form_blank_form()
  30. {
  31. /*
  32. * FORM
  33. */
  34. $form = Ninja_Forms()->form()->get();
  35. $form->update_setting( 'title', __( 'Blank Forms', 'ninja-forms' ) );
  36. $form->update_setting( 'default_label_pos', 'above' );
  37. $form->save();
  38. }
  39. public function form_contact_form_1()
  40. {
  41. /*
  42. * FORM
  43. */
  44. $form = Ninja_Forms()->form()->get();
  45. $form->update_setting( 'title', __( 'Contact Me', 'ninja-forms' ) );
  46. $form->update_setting( 'default_label_pos', 'above' );
  47. $form->save();
  48. $form_id = $form->get_id();
  49. /*
  50. * FIELDS
  51. */
  52. $field = Ninja_Forms()->form( $form_id )->field()->get();
  53. $field->update_setting( 'type', 'textbox' )
  54. ->update_setting( 'label', __( 'Name', 'ninja-forms' ) )
  55. ->update_setting( 'label_pos', 'above' )
  56. ->update_setting( 'required', 1 )
  57. ->update_setting( 'order', 1 )
  58. ->update_setting( 'key', 'name' )
  59. ->update_setting( 'placeholder', '' )
  60. ->update_setting( 'default', '' )
  61. ->update_setting( 'wrapper_class', '' )
  62. ->update_setting( 'element_class', '' )
  63. ->save();
  64. $name_field_id = $field->get_id();
  65. $field = Ninja_Forms()->form( $form_id )->field()->get();
  66. $field->update_setting( 'type', 'email' )
  67. ->update_setting( 'label', __( 'Email', 'ninja-forms' ) )
  68. ->update_setting( 'label_pos', 'above' )
  69. ->update_setting( 'required', 1 )
  70. ->update_setting( 'order', 2 )
  71. ->update_setting( 'key', 'email' )
  72. ->update_setting( 'placeholder', '' )
  73. ->update_setting( 'default', '' )
  74. ->update_setting( 'wrapper_class', '' )
  75. ->update_setting( 'element_class', '' )
  76. ->save();
  77. $email_field_id = $field->get_id();
  78. // $field = Ninja_Forms()->form( $form_id )->field()->get();
  79. // $field->update_setting( 'type', 'textbox' )
  80. // ->update_setting( 'label', 'Confirm Email')
  81. // ->update_setting( 'label_pos', 'above' )
  82. // ->update_setting( 'confirm_field', $email_field_id )
  83. // ->update_setting( 'required', 1 )
  84. // ->update_setting( 'order', 3 )
  85. // ->save();
  86. $field = Ninja_Forms()->form( $form_id )->field()->get();
  87. $field->update_setting( 'type', 'textarea' )
  88. ->update_setting( 'label', __( 'Message', 'ninja-forms' ) )
  89. ->update_setting( 'label_pos', 'above' )
  90. ->update_setting( 'required', 1 )
  91. ->update_setting( 'order', 3 )
  92. ->update_setting( 'key', 'message' )
  93. ->update_setting( 'placeholder', '' )
  94. ->update_setting( 'default', '' )
  95. ->update_setting( 'wrapper_class', '' )
  96. ->update_setting( 'element_class', '' )
  97. ->save();
  98. // $field = Ninja_Forms()->form( $form_id )->field()->get();
  99. // $field->update_setting( 'type', 'textbox' )
  100. // ->update_setting( 'label', 'Mirror Name')
  101. // ->update_setting( 'label_pos', 'above' )
  102. // ->update_setting( 'required', 1 )
  103. // ->update_setting( 'mirror_field', $name_field_id )
  104. // ->update_setting( 'order', 5 )
  105. // ->save();
  106. $options = array(
  107. array(
  108. 'label' => __( 'One', 'ninja-forms' ),
  109. 'value' => '1',
  110. 'calc' => 1,
  111. 'order' => 1,
  112. 'selected' => 0,
  113. ),
  114. array(
  115. 'label' => __( 'Two', 'ninja-forms' ),
  116. 'value' => '2',
  117. 'calc' => 2,
  118. 'order' => 2,
  119. 'selected' => 1,
  120. ),
  121. array(
  122. 'label' => __( 'Three', 'ninja-forms' ),
  123. 'value' => '3',
  124. 'calc' => 3,
  125. 'order' => 3,
  126. 'selected' => 0,
  127. ),
  128. );
  129. $field = Ninja_Forms()->form( $form_id )->field()->get();
  130. $field->update_setting( 'type', 'listradio' )
  131. ->update_setting( 'label_pos', 'above')
  132. ->update_setting( 'label', __( 'List', 'ninja-forms' ) )
  133. ->update_setting( 'required', 0)
  134. ->update_setting( 'options', $options)
  135. ->update_setting( 'order', 4 )
  136. ->update_setting( 'key', 'list' )
  137. ->update_setting( 'placeholder', '' )
  138. ->update_setting( 'default', '' )
  139. ->update_setting( 'wrapper_class', '' )
  140. ->update_setting( 'element_class', '' )
  141. ->save();
  142. $field = Ninja_Forms()->form( $form_id )->field()->get();
  143. $field->update_setting( 'type', 'submit' )
  144. ->update_setting( 'label', __( 'Submit', 'ninja-forms' ) )
  145. ->update_setting( 'processing_label', 'Processing' )
  146. ->update_setting( 'order', 5 )
  147. ->update_setting( 'key', 'submit' )
  148. ->save();
  149. /*
  150. * ACTIONS
  151. */
  152. $action = Ninja_Forms()->form( $form_id )->action()->get();
  153. $action->update_setting( 'label', __( 'Mock Success Message Action', 'ninja-forms' ) )
  154. ->update_setting( 'type', 'successmessage' )
  155. ->update_setting( 'message', __( 'Thank you {field:name} for filling out my form!', 'ninja-forms' ) )
  156. ->update_setting( 'active', TRUE )
  157. ->save();
  158. // $action = Ninja_Forms()->form( $form_id )->action()->get();
  159. // $action->update_setting( 'label', 'Mock Redirect Action' )
  160. // ->update_setting( 'type', 'redirect' )
  161. // ->update_setting( 'url', 'http://kstover.codes' )
  162. // ->update_setting( 'active', 0 )
  163. // ->save();
  164. $action = Ninja_Forms()->form( $form_id )->action()->get();
  165. $action->update_setting( 'label', __( 'Mock Email Action', 'ninja-forms' ) )
  166. ->update_setting( 'type', 'email' )
  167. ->update_setting( 'to', 'myformbuildingbringsallthedeveloperstotheyard@wpninjas.com' )
  168. ->update_setting( 'subject', __( 'This is an email action.', 'ninja-forms' ) )
  169. ->update_setting( 'message', __( 'Hello, Ninja Forms!', 'ninja-forms' ) )
  170. ->update_setting( 'active', FALSE )
  171. ->save();
  172. // $action = Ninja_Forms()->form( $form_id )->action()->get();
  173. // $action->update_setting( 'label', 'Run WordPress Action' )
  174. // ->update_setting( 'type', 'custom' )
  175. // ->update_setting( 'hook', 'action' )
  176. // ->update_setting( 'tag', 'blarg_action' )
  177. // ->save();
  178. $action = Ninja_Forms()->form( $form_id )->action()->get();
  179. $action->update_setting( 'label', __( 'Mock Save Action', 'ninja-forms' ) )
  180. ->update_setting( 'type', 'save' )
  181. ->update_setting( 'active', TRUE )
  182. ->save();
  183. /*
  184. * SUBMISSIONS
  185. */
  186. $sub = Ninja_Forms()->form( $form_id )->sub()->get();
  187. $sub->update_field_value( 1, __( 'Foo Bar', 'ninja-forms' ) )
  188. ->update_field_value( 2, __( 'foo@wpninjas.com', 'ninja-forms' ) )
  189. ->update_field_value( 3, __( 'This is a test', 'ninja-forms' ) )
  190. ->update_field_value( 4, '2' )
  191. ->update_field_value( 5, __( 'Foo Bar', 'ninja-forms' ) );
  192. $sub->save();
  193. // Delay Execution for different submission dates
  194. sleep(1);
  195. $sub = Ninja_Forms()->form( $form_id )->sub()->get();
  196. $sub->update_field_value( 1, __( 'John Doe', 'ninja-forms' ) )
  197. ->update_field_value( 2, __( 'user@gmail.com', 'ninja-forms' ) )
  198. ->update_field_value( 3, __( 'This is another test.', 'ninja-forms' ) )
  199. ->update_field_value( 4, '3' )
  200. ->update_field_value( 5, __( 'John Doe', 'ninja-forms' ) );
  201. $sub->save();
  202. }
  203. public function form_contact_form_2()
  204. {
  205. /*
  206. * FORM
  207. */
  208. $form = Ninja_Forms()->form()->get();
  209. $form->update_setting( 'title', __( 'Get Help', 'ninja-forms' ) );
  210. $form->update_setting( 'default_label_pos', 'above' );
  211. $form->save();
  212. $form_id = $form->get_id();
  213. /*
  214. * FIELDS
  215. */
  216. $fields = array(
  217. array(
  218. 'type' => 'textbox',
  219. 'label' => __( 'Name', 'ninja-forms' ),
  220. 'label_pos' => 'above',
  221. 'order' => 1,
  222. 'key' => 'name',
  223. ),
  224. array(
  225. 'type' => 'email',
  226. 'label' => __( 'Email', 'ninja-forms' ),
  227. 'label_pos' => 'above',
  228. 'order' => 2,
  229. 'key' => 'email',
  230. ),
  231. array(
  232. 'type' => 'textarea',
  233. 'label' => __( 'What Can We Help You With?', 'ninja-forms' ),
  234. 'label_pos' => 'above',
  235. 'order' => 3,
  236. 'key' => 'message',
  237. ),
  238. array(
  239. 'type' => 'checkbox',
  240. 'label' => __( 'Agree?', 'ninja-forms' ),
  241. 'label_pos' => 'right',
  242. 'order' => 4,
  243. 'key' => 'agree',
  244. ),
  245. array(
  246. 'type' => 'listradio',
  247. 'label' => __( 'Best Contact Method?', 'ninja-forms' ),
  248. 'label_pos' => 'above',
  249. 'options' => array(
  250. array(
  251. 'label' => __( 'Phone', 'ninja-forms' ),
  252. 'value' => 'phone',
  253. 'calc' => '',
  254. 'order' => 1,
  255. 'selected' => 0,
  256. ),
  257. array(
  258. 'label' => __( 'Email', 'ninja-forms' ),
  259. 'value' => 'email',
  260. 'calc' => '',
  261. 'order' => 2,
  262. 'selected' => 0,
  263. ),
  264. array(
  265. 'label' => __( 'Snail Mail', 'ninja-forms' ),
  266. 'value' => 'snail-mail',
  267. 'calc' => '',
  268. 'order' => 3,
  269. 'selected' => 0,
  270. ),
  271. ),
  272. 'show_other' => 1,
  273. 'required' => 1,
  274. 'order' => 5,
  275. 'key' => 'contact_method',
  276. ),
  277. array(
  278. 'type' => 'submit',
  279. 'label' => __( 'Send', 'ninja-forms' ),
  280. 'order' => 6,
  281. 'key' => 'submit',
  282. )
  283. );
  284. foreach( $fields as $settings ){
  285. $field = Ninja_Forms()->form( $form_id )->field()->get();
  286. $field->update_settings( $settings )->save();
  287. }
  288. /*
  289. * ACTIONS
  290. */
  291. $action = Ninja_Forms()->form( $form_id )->action()->get();
  292. $action->update_setting( 'label', __( 'Mock Save Action', 'ninja-forms' ) )
  293. ->update_setting( 'type', 'save' )
  294. ->save();
  295. }
  296. public function form_kitchen_sink()
  297. {
  298. /*
  299. * FORM
  300. */
  301. $form = Ninja_Forms()->form()->get();
  302. $form->update_setting( 'title', __( 'Kitchen Sink', 'ninja-forms' ) );
  303. $form->update_setting( 'default_label_pos', 'above' );
  304. $form->save();
  305. $form_id = $form->get_id();
  306. /*
  307. * FIELDS
  308. */
  309. $fields = array(
  310. array(
  311. 'type' => 'html',
  312. 'label' => __( 'Textbox', 'ninja-forms' ),
  313. 'key' => 'textbox',
  314. ),
  315. array(
  316. 'type' => 'textbox',
  317. 'label' => __( 'Textbox', 'ninja-forms' ),
  318. 'key' => 'textbox',
  319. ),
  320. array(
  321. 'type' => 'firstname',
  322. 'label' => __( 'First Name', 'ninja-forms' ),
  323. 'key' => 'first_name',
  324. ),
  325. array(
  326. 'type' => 'lastname',
  327. 'label' => __( 'Last Name', 'ninja-forms' ),
  328. 'key' => 'last_name',
  329. ),
  330. array(
  331. 'type' => 'hidden',
  332. 'label' => __( 'Hidden', 'ninja-forms' ),
  333. 'label_pos' => 'hidden',
  334. 'key' => 'hidden',
  335. ),
  336. array(
  337. 'type' => 'textarea',
  338. 'label' => __( 'Textarea', 'ninja-forms' ),
  339. 'key' => 'textarea',
  340. ),
  341. array(
  342. 'type' => 'listselect',
  343. 'label' => __( 'Select List', 'ninja-forms' ),
  344. 'options' => array(
  345. array(
  346. 'label' => __( 'Option One', 'ninja-forms' ),
  347. 'value' => 1,
  348. 'calc' => '',
  349. 'order' => 1,
  350. 'selected' => 0,
  351. ),
  352. array(
  353. 'label' => __( 'Option Two', 'ninja-forms' ),
  354. 'value' => 2,
  355. 'calc' => '',
  356. 'order' => 2,
  357. 'selected' => 0,
  358. ),
  359. array(
  360. 'label' => __( 'Option Three', 'ninja-forms' ),
  361. 'value' => 3,
  362. 'calc' => '',
  363. 'order' => 3,
  364. 'selected' => 0,
  365. )
  366. ),
  367. 'key' => 'select_list',
  368. ),
  369. array(
  370. 'type' => 'listradio',
  371. 'label' => __( 'Radio List', 'ninja-forms' ),
  372. 'options' => array(
  373. array(
  374. 'label' => __( 'Option One', 'ninja-forms' ),
  375. 'value' => 1,
  376. 'calc' => '',
  377. 'order' => 1,
  378. 'selected' => 0,
  379. ),
  380. array(
  381. 'label' => __( 'Option Two', 'ninja-forms' ),
  382. 'value' => 2,
  383. 'calc' => '',
  384. 'order' => 2,
  385. 'selected' => 0,
  386. ),
  387. array(
  388. 'label' => __( 'Option Three', 'ninja-forms' ),
  389. 'value' => 3,
  390. 'calc' => '',
  391. 'order' => 3,
  392. 'selected' => 0,
  393. )
  394. ),
  395. 'key' => 'radio_list',
  396. ),
  397. array(
  398. 'type' => 'checkbox',
  399. 'label' => __( 'Checkbox', 'ninja-forms' ),
  400. 'key' => 'checkbox',
  401. ),
  402. // array(
  403. // 'type' => 'button',
  404. // 'label' => 'Button',
  405. // 'label_pos' => 'hidden',
  406. // ),
  407. );
  408. $order = 1;
  409. $i = 1;
  410. foreach( array( 'above', 'right', 'below', 'left', 'hidden' ) as $label_pos ) {
  411. foreach ($fields as $settings) {
  412. unset($settings['id']);
  413. $settings[ 'key' ] = $settings[ 'key' ] . '-' . $i;
  414. if ( ! isset( $settings['label_pos'] ) ) $settings['label_pos'] = $label_pos;
  415. if ( 'submit' != $settings['type'] ) $settings['label'] = $settings['label'] . ' - label ' . $label_pos;
  416. if ( 'hidden' == $settings['label_pos'] && 'submit' != $settings['type'] ) $settings['placeholder'] = $settings['label'];
  417. $field = Ninja_Forms()->form($form_id)->field()->get();
  418. $settings[ 'order' ] = $order;
  419. $field->update_settings($settings)->save();
  420. $order++;
  421. }
  422. $order++;
  423. $i++;
  424. }
  425. $submit = Ninja_Forms()->form($form_id)->field()->get();
  426. $submit->update_setting( 'label', __( 'Submit', 'ninja-forms' ) )
  427. ->update_setting( 'type', 'submit' )
  428. ->update_setting( 'order', $order)
  429. ->update_setting( 'key', 'submit' )
  430. ->save();
  431. $action = Ninja_Forms()->form( $form_id )->action()->get();
  432. $action->update_setting( 'label', __( 'Mock Save Action', 'ninja-forms' ) )
  433. ->update_setting( 'type', 'save' )
  434. ->save();
  435. }
  436. public function form_bathroom_sink()
  437. {
  438. /*
  439. * FORM
  440. */
  441. $form = Ninja_Forms()->form()->get();
  442. $form->update_setting( 'title', __( 'Bathroom Sink', 'ninja-forms' ) );
  443. $form->update_setting( 'default_label_pos', 'above' );
  444. $form->save();
  445. $form_id = $form->get_id();
  446. /*
  447. * FIELDS
  448. */
  449. $fields = array(
  450. array(
  451. 'type' => 'html',
  452. 'label' => '',
  453. 'label_pos' => 'hidden',
  454. 'key' => 'html_1',
  455. 'default' => '<div style="background:#DBF0FD; padding: 15px;"><h3>Common Fields</h3><div>These are all the most common generic fields one might use.</div></div>',
  456. ),
  457. array(
  458. 'type' => 'textbox',
  459. 'label' => __( 'Textbox', 'ninja-forms' ),
  460. 'key' => 'textbox',
  461. ),
  462. array(
  463. 'type' => 'textarea',
  464. 'label' => __( 'Textarea', 'ninja-forms' ),
  465. 'key' => 'textarea',
  466. ),
  467. array(
  468. 'type' => 'checkbox',
  469. 'label' => __( 'Checkbox', 'ninja-forms' ),
  470. 'key' => 'checkbox',
  471. ),
  472. array(
  473. 'type' => 'listselect',
  474. 'label' => __( 'Select List', 'ninja-forms' ),
  475. 'options' => array(
  476. array(
  477. 'label' => __( 'Option One', 'ninja-forms' ),
  478. 'value' => 1,
  479. 'calc' => '',
  480. 'order' => 1,
  481. 'selected' => 0,
  482. ),
  483. array(
  484. 'label' => __( 'Option Two', 'ninja-forms' ),
  485. 'value' => 2,
  486. 'calc' => '',
  487. 'order' => 2,
  488. 'selected' => 0,
  489. ),
  490. array(
  491. 'label' => __( 'Option Three', 'ninja-forms' ),
  492. 'value' => 3,
  493. 'calc' => '',
  494. 'order' => 3,
  495. 'selected' => 0,
  496. )
  497. ),
  498. 'key' => 'select_list',
  499. ),
  500. array(
  501. 'type' => 'listradio',
  502. 'label' => __( 'Radio List', 'ninja-forms' ),
  503. 'options' => array(
  504. array(
  505. 'label' => __( 'Option One', 'ninja-forms' ),
  506. 'value' => 1,
  507. 'calc' => '',
  508. 'order' => 1,
  509. 'selected' => 0,
  510. ),
  511. array(
  512. 'label' => __( 'Option Two', 'ninja-forms' ),
  513. 'value' => 2,
  514. 'calc' => '',
  515. 'order' => 2,
  516. 'selected' => 0,
  517. ),
  518. array(
  519. 'label' => __( 'Option Three', 'ninja-forms' ),
  520. 'value' => 3,
  521. 'calc' => '',
  522. 'order' => 3,
  523. 'selected' => 0,
  524. )
  525. ),
  526. 'key' => 'radio_list',
  527. ),
  528. array(
  529. 'type' => 'listcheckbox',
  530. 'label' => __( 'Checkbox List', 'ninja-forms' ),
  531. 'options' => array(
  532. array(
  533. 'label' => __( 'Option One', 'ninja-forms' ),
  534. 'value' => 1,
  535. 'calc' => '',
  536. 'order' => 1,
  537. 'selected' => 0,
  538. ),
  539. array(
  540. 'label' => __( 'Option Two', 'ninja-forms' ),
  541. 'value' => 2,
  542. 'calc' => '',
  543. 'order' => 2,
  544. 'selected' => 0,
  545. ),
  546. array(
  547. 'label' => __( 'Option Three', 'ninja-forms' ),
  548. 'value' => 3,
  549. 'calc' => '',
  550. 'order' => 3,
  551. 'selected' => 0,
  552. )
  553. ),
  554. 'key' => 'checkbox_list',
  555. ),
  556. array(
  557. 'type' => 'date',
  558. 'label' => __( 'Date', 'ninja-forms' ),
  559. 'key' => 'date',
  560. ),
  561. array(
  562. 'type' => 'number',
  563. 'label' => __( 'Number', 'ninja-forms' ),
  564. 'key' => 'number',
  565. 'num_min' => '0',
  566. 'num_max' => '100',
  567. 'num_step' => '1',
  568. ),
  569. array(
  570. 'type' => 'hidden',
  571. 'label' => __( 'Hidden', 'ninja-forms' ),
  572. 'label_pos' => 'hidden',
  573. 'key' => 'hidden',
  574. ),
  575. // array(
  576. // 'type' => 'hr',
  577. // 'label' => 'Divider',
  578. // 'label_pos' => 'hidden',
  579. // 'key' => 'hr_1',
  580. // ),
  581. array(
  582. 'type' => 'html',
  583. 'label' => '',
  584. 'label_pos' => 'hidden',
  585. 'key' => 'html_2',
  586. 'default' => '<div style="background:#DBF0FD; padding: 15px;"><h3>' . __( 'User Information Fields', 'ninja-forms' ) .
  587. '</h3><div>' . __( 'These are all the fields in the User Information section.', 'ninja-forms' ) . '</div></div>',
  588. ),
  589. array(
  590. 'type' => 'firstname',
  591. 'label' => __( 'First Name', 'ninja-forms' ),
  592. 'key' => 'first_name',
  593. ),
  594. array(
  595. 'type' => 'lastname',
  596. 'label' => __( 'Last Name', 'ninja-forms' ),
  597. 'key' => 'last_name',
  598. ),
  599. array(
  600. 'type' => 'email',
  601. 'label' => __( 'Email', 'ninja-forms' ),
  602. 'key' => 'email',
  603. ),
  604. array(
  605. 'type' => 'phone',
  606. 'label' => __( 'Phone', 'ninja-forms' ),
  607. 'key' => 'phone',
  608. ),
  609. array(
  610. 'type' => 'address',
  611. 'label' => __( 'Address', 'ninja-forms' ),
  612. 'key' => 'address',
  613. ),
  614. array(
  615. 'type' => 'city',
  616. 'label' => __( 'City', 'ninja-forms' ),
  617. 'key' => 'city',
  618. ),
  619. // array(
  620. // 'type' => 'liststate',
  621. // 'label' => 'State',
  622. // 'key' => 'state',
  623. // ),
  624. array(
  625. 'type' => 'zip',
  626. 'label' => __( 'Zip Code', 'ninja-forms' ),
  627. 'key' => 'zip',
  628. ),
  629. array(
  630. 'type' => 'html',
  631. 'label' => '',
  632. 'label_pos' => 'hidden',
  633. 'key' => 'html_3',
  634. 'default' => '<div style="background:#DBF0FD; padding: 15px;"><h3>' . __( "Pricing Fields", "ninja-forms" ) .
  635. '</h3><div>' . __( "These are all the fields in the Pricing section.", "ninja-forms" ) . '</div></div>',
  636. ),
  637. array(
  638. 'type' => 'product',
  639. 'label' => __( 'Product (quanitity included)', 'ninja-forms' ),
  640. 'key' => 'product_qty',
  641. 'product_use_quantity' => 1,
  642. 'product_price' => '5.00',
  643. ),
  644. array(
  645. 'type' => 'product',
  646. 'label' => __( 'Product (seperate quantity)', 'ninja-forms' ),
  647. 'key' => 'product',
  648. 'product_use_quantity' => 0,
  649. 'product_price' => '5.00',
  650. ),
  651. array(
  652. 'type' => 'quantity',
  653. 'label' => __( 'Quantity', 'ninja-forms' ),
  654. 'key' => 'quantity',
  655. 'product_assignment' => '999',
  656. 'num_min' => '0',
  657. 'num_max' => '',
  658. 'num_step' => '1',
  659. ),
  660. array(
  661. 'type' => 'shipping',
  662. 'label' => __( 'Shipping', 'ninja-forms' ),
  663. 'key' => 'shipping',
  664. 'shipping_cost' => '10.00',
  665. ),
  666. array(
  667. 'type' => 'total',
  668. 'label' => __( 'Total', 'ninja-forms' ),
  669. 'key' => 'total',
  670. ),
  671. array(
  672. 'type' => 'creditcardfullname',
  673. 'label' => __( 'Credit Card Full Name', 'ninja-forms' ),
  674. 'key' => 'creditcardfullname',
  675. ),
  676. array(
  677. 'type' => 'creditcardnumber',
  678. 'label' => __( 'Credit Card Number', 'ninja-forms' ),
  679. 'key' => 'creditcardnumber',
  680. ),
  681. array(
  682. 'type' => 'creditcardcvc',
  683. 'label' => __( 'Credit Card CVV', 'ninja-forms' ),
  684. 'key' => 'creditcardcvc',
  685. ),
  686. array(
  687. 'type' => 'creditcardexpiration',
  688. 'label' => __( 'Credit Card Expiration', 'ninja-forms' ),
  689. 'key' => 'creditcardexpiration',
  690. ),
  691. array(
  692. 'type' => 'creditcardzip',
  693. 'label' => __( 'Credit Card Zip Code', 'ninja-forms' ),
  694. 'key' => 'creditcardzip',
  695. ),
  696. array(
  697. 'type' => 'html',
  698. 'label' => '',
  699. 'label_pos' => 'hidden',
  700. 'key' => 'html_3',
  701. 'default' => '<div style="background:#DBF0FD; padding: 15px;"><h3>' . __( "Miscellaneous Fields", "ninja-forms" ) .
  702. '</h3><div>' . __( "These are various special fields.", "ninja-forms" ) . '</div></div>',
  703. ),
  704. array(
  705. 'type' => 'starrating',
  706. 'label' => __( 'Star Rating', 'ninja-forms' ),
  707. 'key' => 'starrating',
  708. 'default' => '5',
  709. ),
  710. array(
  711. 'type' => 'spam',
  712. 'label' => __( 'Anti-Spam Question (Answer = answer)', 'ninja-forms' ),
  713. 'key' => 'spam',
  714. 'spam_answer' => __( 'answer', 'ninja-forms' ),
  715. ),
  716. array(
  717. 'type' => 'hr',
  718. 'label' => '',
  719. 'key' => 'hr',
  720. ),
  721. );
  722. $order = 1;
  723. foreach ($fields as $settings) {
  724. unset($settings['id']);
  725. $field = Ninja_Forms()->form($form_id)->field()->get();
  726. $settings[ 'order' ] = $order;
  727. $settings[ 'label_pos' ] = 'default';
  728. $field->update_settings($settings)->save();
  729. $order++;
  730. }
  731. $submit = Ninja_Forms()->form($form_id)->field()->get();
  732. $submit->update_setting( 'label', __( 'Submit', 'ninja-forms' ) )
  733. ->update_setting( 'type', 'submit' )
  734. ->update_setting( 'order', $order)
  735. ->update_setting( 'process_label', __( 'processing', 'ninja-forms' ) )
  736. ->update_setting( 'key', 'submit' )
  737. ->save();
  738. $action = Ninja_Forms()->form( $form_id )->action()->get();
  739. $action->update_setting( 'label', __( 'Mock Save Action', 'ninja-forms' ) )
  740. ->update_setting( 'type', 'save' )
  741. ->save();
  742. }
  743. public function form_long_form( $num_fields = 500 )
  744. {
  745. /*
  746. * FORM
  747. */
  748. $form = Ninja_Forms()->form()->get();
  749. $form->update_setting( 'title', __( 'Long Form - ', 'ninja-forms' ) . $num_fields . __( ' Fields', 'ninja-forms' ) );
  750. $form->update_setting( 'default_label_pos', 'above' );
  751. $form->save();
  752. $form_id = $form->get_id();
  753. /*
  754. * FIELDS
  755. */
  756. for( $i = 1; $i <= $num_fields; $i++ ) {
  757. $field = Ninja_Forms()->form($form_id)->field()->get();
  758. $field->update_setting( 'type', 'textbox' )
  759. ->update_setting( 'label', __( 'Field #', 'ninja-forms' ) . $i )
  760. ->update_setting( 'label_pos', 'above' )
  761. ->update_setting( 'required', 0 )
  762. ->update_setting( 'order', $i )
  763. ->update_setting( 'key', 'field_' . $i )
  764. ->save();
  765. }
  766. }
  767. public function form_email_submission()
  768. {
  769. /*
  770. * FORM
  771. */
  772. $form = Ninja_Forms()->form()->get();
  773. $form->update_setting( 'title', __( 'Email Subscription Form', 'ninja-forms' ) );
  774. $form->update_setting( 'default_label_pos', 'above' );
  775. $form->save();
  776. $form_id = $form->get_id();
  777. /*
  778. * FIELDS
  779. */
  780. $field = Ninja_Forms()->form( $form_id )->field()->get();
  781. $field->update_setting( 'type', 'email' )
  782. ->update_setting( 'label', __( 'Email Address', 'ninja-forms' ) )
  783. ->update_setting( 'label_pos', 'hidden' )
  784. ->update_setting( 'required', 1 )
  785. ->update_setting( 'order', 1 )
  786. ->update_setting( 'placeholder', __( 'Enter your email address', 'ninja-forms' ) )
  787. ->update_setting( 'wrapper_class', 'three-fourths first' )
  788. ->update_setting( 'key', 'email' )
  789. ->save();
  790. $email_field_id = $field->get_id();
  791. $field = Ninja_Forms()->form( $form_id )->field()->get();
  792. $field->update_setting( 'type', 'submit' )
  793. ->update_setting( 'label', __( 'Subscribe', 'ninja-forms' ) )
  794. ->update_setting( 'order', 5 )
  795. ->update_setting( 'wrapper_class', 'one-fourth' )
  796. ->update_setting( 'key', 'submit' )
  797. ->save();
  798. }
  799. public function form_product_1()
  800. {
  801. /* FORM */
  802. $form = Ninja_Forms()->form()->get();
  803. $form->update_setting( 'title', __( 'Product Form (with Quantity Field)', 'ninja-forms' ) );
  804. $form->update_setting( 'default_label_pos', 'above' );
  805. $form->update_setting( 'hide_successfully_completed_form', 1 );
  806. $form->save();
  807. $form_id = $form->get_id();
  808. /* Fields */
  809. $field = Ninja_Forms()->form( $form_id )->field()->get();
  810. $field->update_setting( 'type', 'product' )
  811. ->update_setting( 'label', __( 'Product', 'ninja-forms' ))
  812. ->update_setting( 'label_pos', 'above' )
  813. ->update_setting( 'product_price', 10.10 )
  814. ->update_setting( 'product_use_quantity', 0 )
  815. ->update_setting( 'order', 1 )
  816. ->update_setting( 'key', 'product' )
  817. ->save();
  818. $product_field_id = $field->get_id();
  819. $field = Ninja_Forms()->form( $form_id )->field()->get();
  820. $field->update_setting( 'type', 'quantity' )
  821. ->update_setting( 'label', __( 'Quantity', 'ninja-forms' ))
  822. ->update_setting( 'label_pos', 'above' )
  823. ->update_setting( 'product_assignment', $product_field_id )
  824. ->update_setting( 'default', 1 )
  825. ->update_setting( 'num_min', 1 )
  826. ->update_setting( 'num_max', NULL )
  827. ->update_setting( 'num_step', 1 )
  828. ->update_setting( 'order', 2 )
  829. ->update_setting( 'key', 'quantity' )
  830. ->save();
  831. $quantity_field_id = $field->get_id();
  832. $field = Ninja_Forms()->form( $form_id )->field()->get();
  833. $field->update_setting( 'type', 'shipping' )
  834. ->update_setting( 'label', __( 'Shipping', 'ninja-forms' ) )
  835. ->update_setting( 'label_pos', 'above' )
  836. ->update_setting( 'shipping_cost', 2.00 )
  837. ->update_setting( 'order', 4 )
  838. ->update_setting( 'key', 'shipping' )
  839. ->save();
  840. $field = Ninja_Forms()->form( $form_id )->field()->get();
  841. $field->update_setting( 'type', 'total' )
  842. ->update_setting( 'label', __( 'Total', 'ninja-forms' ) )
  843. ->update_setting( 'label_pos', 'above' )
  844. ->update_setting( 'key', 'total' )
  845. ->update_setting( 'order', 5 )
  846. ->update_setting( 'key', 'total' )
  847. ->save();
  848. $field = Ninja_Forms()->form( $form_id )->field()->get();
  849. $field->update_setting( 'type', 'submit' )
  850. ->update_setting( 'label', __( 'Purchase', 'ninja-forms' ) )
  851. ->update_setting( 'order', 1000 )
  852. ->update_setting( 'key', 'submit' )
  853. ->save();
  854. /*
  855. * ACTIONS
  856. */
  857. $action = Ninja_Forms()->form( $form_id )->action()->get();
  858. $action->update_setting( 'label', __( 'Success Message', 'ninja-forms' ) )
  859. ->update_setting( 'type', 'successmessage' )
  860. ->update_setting( 'message', '<div style="border: 2px solid green; padding: 10px; color: green;">' . __( 'You purchased ', 'ninja-forms' ) .
  861. '{field:' . $quantity_field_id . '}' . __( 'product(s) for ', 'ninja-forms' ) . '${field:total}.</div>' )
  862. ->save();
  863. }
  864. public function form_product_2()
  865. {
  866. /* FORM */
  867. $form = Ninja_Forms()->form()->get();
  868. $form->update_setting( 'title', __( 'Product Form (Inline Quantity)', 'ninja-forms' ) );
  869. $form->update_setting( 'default_label_pos', 'above' );
  870. $form->update_setting( 'hide_successfully_completed_form', 1 );
  871. $form->save();
  872. $form_id = $form->get_id();
  873. /* Fields */
  874. $field = Ninja_Forms()->form( $form_id )->field()->get();
  875. $field->update_setting( 'type', 'product' )
  876. ->update_setting( 'label', __( 'Product', 'ninja-forms' ) )
  877. ->update_setting( 'label_pos', 'above' )
  878. ->update_setting( 'product_price', 10.10 )
  879. ->update_setting( 'product_use_quantity', 1 )
  880. ->update_setting( 'order', 1 )
  881. ->update_setting( 'key', 'product' )
  882. ->save();
  883. $product_field_id = $field->get_id();
  884. $field = Ninja_Forms()->form( $form_id )->field()->get();
  885. $field->update_setting( 'type', 'shipping' )
  886. ->update_setting( 'label', __( 'Shipping', 'ninja-forms' ) )
  887. ->update_setting( 'label_pos', 'above' )
  888. ->update_setting( 'shipping_cost', 2.00 )
  889. ->update_setting( 'order', 4 )
  890. ->update_setting( 'key', 'shipping' )
  891. ->save();
  892. $field = Ninja_Forms()->form( $form_id )->field()->get();
  893. $field->update_setting( 'type', 'total' )
  894. ->update_setting( 'label', __( 'Total', 'ninja-forms' ) )
  895. ->update_setting( 'label_pos', 'above' )
  896. ->update_setting( 'key', 'total' )
  897. ->update_setting( 'order', 5 )
  898. ->update_setting( 'key', 'total' )
  899. ->save();
  900. $field = Ninja_Forms()->form( $form_id )->field()->get();
  901. $field->update_setting( 'type', 'submit' )
  902. ->update_setting( 'label', __( 'Purchase', 'ninja-forms' ) )
  903. ->update_setting( 'order', 1000 )
  904. ->update_setting( 'key', 'submit' )
  905. ->save();
  906. /*
  907. * ACTIONS
  908. */
  909. $action = Ninja_Forms()->form( $form_id )->action()->get();
  910. $action->update_setting( 'label', __( 'Success Message', 'ninja-forms' ) )
  911. ->update_setting( 'type', 'successmessage' )
  912. ->update_setting( 'message', '<div style="border: 2px solid green; padding: 10px; color: green;">' . __( 'You purchased ', 'ninja-forms' ) .
  913. '{field:' . $product_field_id . '}' . __( ' product(s) for ', 'ninja-forms' ) . '${field:total}' . '.' . '</div>' )
  914. ->save();
  915. }
  916. public function form_product_3()
  917. {
  918. /* FORM */
  919. $form = Ninja_Forms()->form()->get();
  920. $form->update_setting( 'title', __( 'Product Form (Multiple Products)', 'ninja-forms' ) );
  921. $form->update_setting( 'default_label_pos', 'above' );
  922. $form->update_setting( 'hide_successfully_completed_form', 1 );
  923. $form->save();
  924. $form_id = $form->get_id();
  925. /* Fields */
  926. $field = Ninja_Forms()->form( $form_id )->field()->get();
  927. $field->update_setting( 'type', 'product' )
  928. ->update_setting( 'label', __( 'Product A', 'ninja-forms' ) )
  929. ->update_setting( 'label_pos', 'above' )
  930. ->update_setting( 'product_price', 10.10 )
  931. ->update_setting( 'product_use_quantity', 0 )
  932. ->update_setting( 'order', 1 )
  933. ->update_setting( 'key', 'product_a' )
  934. ->save();
  935. $product_field_A_id = $field->get_id();
  936. $field = Ninja_Forms()->form( $form_id )->field()->get();
  937. $field->update_setting( 'type', 'quantity' )
  938. ->update_setting( 'label', __( 'Quantity for Product A', 'ninja-forms' ) )
  939. ->update_setting( 'label_pos', 'above' )
  940. ->update_setting( 'product_assignment', $product_field_A_id )
  941. ->update_setting( 'default', 1 )
  942. ->update_setting( 'num_min', 1 )
  943. ->update_setting( 'num_max', NULL )
  944. ->update_setting( 'num_step', 1 )
  945. ->update_setting( 'order', 2 )
  946. ->update_setting( 'key', 'qauntity_for_product_a' )
  947. ->save();
  948. $quantity_field_A_id = $field->get_id();
  949. $field = Ninja_Forms()->form( $form_id )->field()->get();
  950. $field->update_setting( 'type', 'product' )
  951. ->update_setting( 'label', __( 'Product B', 'ninja-forms' ) )
  952. ->update_setting( 'label_pos', 'above' )
  953. ->update_setting( 'product_price', 9.23 )
  954. ->update_setting( 'product_use_quantity', 0 )
  955. ->update_setting( 'order', 3 )
  956. ->update_setting( 'key', 'product_b' )
  957. ->save();
  958. $product_field_B_id = $field->get_id();
  959. $field = Ninja_Forms()->form( $form_id )->field()->get();
  960. $field->update_setting( 'type', 'quantity' )
  961. ->update_setting( 'label', __( 'Quantity for Product B', 'ninja-forms' ) )
  962. ->update_setting( 'label_pos', 'above' )
  963. ->update_setting( 'product_assignment', $product_field_B_id )
  964. ->update_setting( 'default', 1 )
  965. ->update_setting( 'num_min', 1 )
  966. ->update_setting( 'num_max', NULL )
  967. ->update_setting( 'num_step', 1 )
  968. ->update_setting( 'order', 4 )
  969. ->update_setting( 'key', 'quantity_for_product_b' )
  970. ->save();
  971. $quantity_field_B_id = $field->get_id();
  972. $field = Ninja_Forms()->form( $form_id )->field()->get();
  973. $field->update_setting( 'type', 'shipping' )
  974. ->update_setting( 'label', __( 'Shipping', 'ninja-forms' ) )
  975. ->update_setting( 'label_pos', 'above' )
  976. ->update_setting( 'shipping_cost', 2.00 )
  977. ->update_setting( 'order', 998 )
  978. ->update_setting( 'key', 'shipping' )
  979. ->save();
  980. $field = Ninja_Forms()->form( $form_id )->field()->get();
  981. $field->update_setting( 'type', 'total' )
  982. ->update_setting( 'label', __( 'Total', 'ninja-forms' ) )
  983. ->update_setting( 'label_pos', 'above' )
  984. ->update_setting( 'key', 'total' )
  985. ->update_setting( 'order', 999 )
  986. ->update_setting( 'key', 'total' )
  987. ->save();
  988. $field = Ninja_Forms()->form( $form_id )->field()->get();
  989. $field->update_setting( 'type', 'submit' )
  990. ->update_setting( 'label', __( 'Purchase', 'ninja-forms' ) )
  991. ->update_setting( 'order', 1000 )
  992. ->update_setting( 'key', 'submit' )
  993. ->save();
  994. /*
  995. * ACTIONS
  996. */
  997. $action = Ninja_Forms()->form( $form_id )->action()->get();
  998. $action->update_setting( 'label', __( 'Success Message', 'ninja-forms' ) )
  999. ->update_setting( 'type', 'successmessage' )
  1000. ->update_setting( 'message', '<div style="border: 2px solid green; padding: 10px; color: green;">' . __( 'You purchased ', 'ninja-forms' ) .
  1001. '{field:' . $quantity_field_A_id . '}' . __( 'of Product A and ', 'ninja-forms' ) . '{field:' . $quantity_field_B_id . '}' .
  1002. __( 'of Product B for $', 'ninja-forms' ) . '{field:total}.</div>' )
  1003. ->save();
  1004. }
  1005. public function form_calc_form()
  1006. {
  1007. /*
  1008. * FORM
  1009. */
  1010. $form = Ninja_Forms()->form()->get();
  1011. $form->update_setting( 'title', __( 'Form with Calculations', 'ninja-forms' ) );
  1012. $form->update_setting( 'default_label_pos', 'above' );
  1013. $form->update_setting( 'calculations', array(
  1014. array(
  1015. 'name' => __( 'My First Calculation', 'ninja-forms' ),
  1016. 'eq' => '2 * 3'
  1017. ),
  1018. array(
  1019. 'name' => __( 'My Second Calculation', 'ninja-forms' ),
  1020. 'eq' => '4 + 1'
  1021. )
  1022. ));
  1023. $form->save();
  1024. $form_id = $form->get_id();
  1025. $field = Ninja_Forms()->form( $form_id )->field()->get();
  1026. $field->update_setting( 'type', 'submit' )
  1027. ->update_setting( 'label', __( 'Purchase', 'ninja-forms' ) )
  1028. ->update_setting( 'order', 1000 )
  1029. ->update_setting( 'key', 'submit' )
  1030. ->save();
  1031. $action = Ninja_Forms()->form( $form_id )->action()->get();
  1032. $action->update_setting( 'label', __( 'Success Message', 'ninja-forms' ) )
  1033. ->update_setting( 'type', 'successmessage' )
  1034. ->update_setting( 'message', __( 'Calculations are returned with the AJAX response ( response -> data -> calcs', 'ninja-forms' ) )
  1035. ->save();
  1036. }
  1037. private function _migrate()
  1038. {
  1039. $migrations = new NF_Database_Migrations();
  1040. $migrations->nuke(TRUE, TRUE);
  1041. $posts = get_posts('post_type=nf_sub&numberposts=-1');
  1042. foreach ($posts as $post) {
  1043. wp_delete_post($post->ID, TRUE);
  1044. }
  1045. $migrations->migrate();
  1046. }
  1047. } // END CLASS NF_Database_MockData