hollosipeter

Insert/update wp database with Forminator

May 1st, 2023
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.36 KB | Source Code | 0 0
  1. <?php
  2.  
  3. // first, let's get Submission ID and save it in temporary $_POST key
  4. // otherwise it will not be available later
  5. add_action( 'forminator_custom_form_submit_before_set_fields', 'forminator_custominsert_entry_id', 20, 3 );
  6. function forminator_custominsert_entry_id( $entry, $form_id, $field_data_array ) {
  7. if ( $form_id == 23868 ) {
  8. $_POST['_forminator_cform_entry_id'] = $entry->entry_id;
  9.  
  10. }
  11. }
  12.  
  13. // now the actual code to be run on ANY form submission
  14. add_action( 'forminator_form_after_save_entry', 'forminator_custominsert_entryid_set', 10, 2 );
  15. function forminator_custominsert_entryid_set( $form_id, $response ) {
  16. if ( $form_id == 23868 ) {
  17. global $wpdb;
  18.  
  19. // get entry ID
  20. $entry_id = $_POST['_forminator_cform_entry_id'];
  21. // fetch entry data
  22. $data = Forminator_API::get_entry( $form_id, $entry_id );
  23.  
  24. // get user email value from form data
  25. $user_email = $data->meta_data['email-1']['value'];
  26.  
  27. // check if user exists in database
  28. $user = get_user_by('email', $user_email);
  29. if ( ! $user ) {
  30. echo "The email address does not exist.";
  31. return;
  32. }
  33.  
  34. // get user ID
  35. $user_id = $user->ID;
  36.  
  37. // Check and update user role based on condition
  38. $roles = $user->roles;
  39.  
  40. if (in_array('customer', $roles) && !in_array('student', $roles)) {
  41. $update_args = array(
  42. 'ID' => $user_id,
  43. 'role' => 'student'
  44. );
  45.  
  46. wp_update_user($update_args);
  47. }
  48. else if (in_array('customer', $roles) && in_array('student', $roles)) {
  49. $new_roles = array_diff($roles, array('customer'));
  50. $update_args = array(
  51. 'ID' => $user_id,
  52. 'role' => implode(',', $new_roles)
  53. );
  54.  
  55. wp_update_user($update_args);
  56. }
  57.  
  58. // get field value
  59.  
  60. $user_value = '';
  61.  
  62. switch ($data->meta_data['select-1']['value']) {
  63. case 'TUESDAY/KEDD, 18:30-19:30 (OKTOGON)':
  64. $user_value = 16;
  65. break;
  66. case 'TUESDAY/KEDD, 20:00-21:30 (OKTOGON)':
  67. $user_value = 17;
  68. break;
  69. case 'WEDNESDAY/SZERDA, 18:30-19:30 (MARCZIBÁNYI TÉR)':
  70. $user_value = 21;
  71. break;
  72. case 'THURSDAY/CSÜTÖRTÖK, 19:00-20:00 (PESTERZSÉBET)':
  73. $user_value = 20;
  74. break;
  75. case 'SUNDAY/VASÁRNAP, 15:00-16:30 (OKTOGON)':
  76. $user_value = 18;
  77. break;
  78. case 'SUNDAY/VASÁRNAP, 16:30-18:00 (OKTOGON)':
  79. $user_value = 19;
  80. break;
  81. case 'INSTRUCTOR (VIP)':
  82. $user_value = 27;
  83. break;
  84. default:
  85. break;
  86. }
  87.  
  88. // check if field exists for user
  89. $field_id = 1; // fixed field ID
  90. $field_data = $wpdb->get_row(
  91. $wpdb->prepare(
  92. "SELECT * FROM {$wpdb->prefix}prflxtrflds_user_field_data WHERE field_id = %d AND user_id = %d",
  93. $field_id,
  94. $user_id
  95. )
  96. );
  97.  
  98. if ($field_data && $user_id == $field_data->user_id ) {
  99. // field exists, update value
  100. if (!empty($user_value)) { // hozzáadott feltétel: $user_value nem üres
  101. $wpdb->update(
  102. $wpdb->prefix . 'prflxtrflds_user_field_data',
  103. array( 'user_value' => $user_value ),
  104. array( 'field_id' => $field_data->field_id, 'user_id' => $user_id ),
  105. array( '%s' ),
  106. array( '%d', '%d' )
  107. );
  108. } else {
  109. // do nothing, leave existing value in the database
  110. }
  111. }
  112.  
  113. else {
  114. // field does not exist, insert new row
  115. if (!empty($user_value)) { // hozzáadott feltétel: $user_value nem üres
  116. $last_id = $wpdb->get_var( "SELECT id FROM " . $wpdb->prefix . "prflxtrflds_user_field_data ORDER BY id DESC LIMIT 1" );
  117. $new_id = $last_id + 1;
  118. $wpdb->insert(
  119. $wpdb->prefix . 'prflxtrflds_user_field_data',
  120. array(
  121. 'id' => $new_id,
  122. 'field_id' => 1, // fix the field ID to 1
  123. 'user_id' => $user_id,
  124. 'user_value' => $user_value
  125. ),
  126. array(
  127. '%d',
  128. '%d',
  129. '%d',
  130. '%s'
  131. )
  132. );
  133. } else {
  134. // do nothing, since $user_value is empty
  135. }
  136. }
  137.  
  138. $user_value = '';
  139.  
  140. switch ($data->meta_data['select-2']['value']) {
  141. case 'BEGINNER / KEZDŐ':
  142. $user_value = 5;
  143. break;
  144. case 'INTERMEDIATE / KÖZÉPHALADÓ':
  145. $user_value = 6;
  146. break;
  147. case 'ADVANCED / HALADÓ':
  148. $user_value = 7;
  149. break;
  150. case 'EXTRA ADVANCED / EXTRAHALADÓ':
  151. $user_value = 8;
  152. break;
  153. case 'EXPERT':
  154. $user_value = 26;
  155. break;
  156. case 'MASTER / MESTER':
  157. $user_value = 9;
  158. break;
  159. default:
  160. break;
  161. }
  162.  
  163. // check if field exists for user
  164. $field_id = 2; // fixed field ID
  165. $field_data = $wpdb->get_row(
  166. $wpdb->prepare(
  167. "SELECT * FROM {$wpdb->prefix}prflxtrflds_user_field_data WHERE field_id = %d AND user_id = %d",
  168. $field_id,
  169. $user_id
  170. )
  171. );
  172.  
  173. if ($field_data && $user_id == $field_data->user_id ) {
  174. // field exists, update value
  175. if (!empty($user_value)) { // hozzáadott feltétel: $user_value nem üres
  176. $wpdb->update(
  177. $wpdb->prefix . 'prflxtrflds_user_field_data',
  178. array( 'user_value' => $user_value ),
  179. array( 'field_id' => $field_data->field_id, 'user_id' => $user_id ),
  180. array( '%s' ),
  181. array( '%d', '%d' )
  182. );
  183. } else {
  184. // do nothing, leave existing value in the database
  185. }
  186. }
  187.  
  188. else {
  189. // field does not exist, insert new row
  190. if (!empty($user_value)) { // hozzáadott feltétel: $user_value nem üres
  191. $last_id = $wpdb->get_var( "SELECT id FROM " . $wpdb->prefix . "prflxtrflds_user_field_data ORDER BY id DESC LIMIT 1" );
  192. $new_id = $last_id + 1;
  193. $wpdb->insert(
  194. $wpdb->prefix . 'prflxtrflds_user_field_data',
  195. array(
  196. 'id' => $new_id,
  197. 'field_id' => 2, // fix the field ID to 2
  198. 'user_id' => $user_id,
  199. 'user_value' => $user_value
  200. ),
  201. array(
  202. '%d',
  203. '%d',
  204. '%d',
  205. '%s'
  206. )
  207. );
  208. } else {
  209. // do nothing, since $user_value is empty
  210. }
  211. }
  212.  
  213. $user_value = $data->meta_data['date-1']['value'];
  214.  
  215. // check if field exists for user
  216. $field_id = 3; // fixed field ID
  217. $field_data = $wpdb->get_row(
  218. $wpdb->prepare(
  219. "SELECT * FROM {$wpdb->prefix}prflxtrflds_user_field_data WHERE field_id = %d AND user_id = %d",
  220. $field_id,
  221. $user_id
  222. )
  223. );
  224.  
  225. if ($field_data && $user_id == $field_data->user_id ) {
  226. // field exists, update value
  227. if (!empty($user_value)) { // hozzáadott feltétel: $user_value nem üres
  228. $wpdb->update(
  229. $wpdb->prefix . 'prflxtrflds_user_field_data',
  230. array( 'user_value' => $user_value ),
  231. array( 'field_id' => $field_data->field_id, 'user_id' => $user_id ),
  232. array( '%s' ),
  233. array( '%d', '%d' )
  234. );
  235. } else {
  236. // do nothing, leave existing value in the database
  237. }
  238. }
  239.  
  240. else {
  241. // field does not exist, insert new row
  242. $last_id = $wpdb->get_var( "SELECT id FROM " . $wpdb->prefix . "prflxtrflds_user_field_data ORDER BY id DESC LIMIT 1" );
  243. $new_id = $last_id + 1;
  244. $wpdb->insert(
  245. $wpdb->prefix . 'prflxtrflds_user_field_data',
  246. array(
  247. 'id' => $new_id,
  248. 'field_id' => 3, // fix the field ID to 3
  249. 'user_id' => $user_id,
  250. 'user_value' => $user_value
  251. ),
  252. array(
  253. '%d',
  254. '%d',
  255. '%d',
  256. '%s'
  257. )
  258. );
  259. }
  260.  
  261. $user_value = $data->meta_data['select-3']['value'];
  262.  
  263. // check if field exists for user
  264. $field_id = 4; // fixed field ID
  265. $field_data = $wpdb->get_row(
  266. $wpdb->prepare(
  267. "SELECT * FROM {$wpdb->prefix}prflxtrflds_user_field_data WHERE field_id = %d AND user_id = %d",
  268. $field_id,
  269. $user_id
  270. )
  271. );
  272.  
  273. if ($field_data && $user_id == $field_data->user_id ) {
  274. // field exists, update value
  275. if (!empty($user_value)) { // hozzáadott feltétel: $user_value nem üres
  276. $wpdb->update(
  277. $wpdb->prefix . 'prflxtrflds_user_field_data',
  278. array( 'user_value' => $user_value ),
  279. array( 'field_id' => $field_data->field_id, 'user_id' => $user_id ),
  280. array( '%s' ),
  281. array( '%d', '%d' )
  282. );
  283. } else {
  284. // do nothing, leave existing value in the database
  285. }
  286. }
  287.  
  288. else {
  289. // field does not exist, insert new row
  290. $last_id = $wpdb->get_var( "SELECT id FROM " . $wpdb->prefix . "prflxtrflds_user_field_data ORDER BY id DESC LIMIT 1" );
  291. $new_id = $last_id + 1;
  292. $wpdb->insert(
  293. $wpdb->prefix . 'prflxtrflds_user_field_data',
  294. array(
  295. 'id' => $new_id,
  296. 'field_id' => 4, // fix the field ID to 4
  297. 'user_id' => $user_id,
  298. 'user_value' => $user_value
  299. ),
  300. array(
  301. '%d',
  302. '%d',
  303. '%d',
  304. '%s'
  305. )
  306. );
  307. }
  308.  
  309. $user_value = $data->meta_data['text-1']['value'];
  310.  
  311. // check if field exists for user
  312. $field_id = 8; // fixed field ID
  313. $field_data = $wpdb->get_row(
  314. $wpdb->prepare(
  315. "SELECT * FROM {$wpdb->prefix}prflxtrflds_user_field_data WHERE field_id = %d AND user_id = %d",
  316. $field_id,
  317. $user_id
  318. )
  319. );
  320.  
  321. if ($field_data && $user_id == $field_data->user_id ) {
  322. // field exists, update value
  323. if (!empty($user_value)) { // hozzáadott feltétel: $user_value nem üres
  324. $wpdb->update(
  325. $wpdb->prefix . 'prflxtrflds_user_field_data',
  326. array( 'user_value' => $user_value ),
  327. array( 'field_id' => $field_data->field_id, 'user_id' => $user_id ),
  328. array( '%s' ),
  329. array( '%d', '%d' )
  330. );
  331. } else {
  332. // do nothing, leave existing value in the database
  333. }
  334. }
  335.  
  336. else {
  337. // field does not exist, insert new row
  338. $last_id = $wpdb->get_var( "SELECT id FROM " . $wpdb->prefix . "prflxtrflds_user_field_data ORDER BY id DESC LIMIT 1" );
  339. $new_id = $last_id + 1;
  340. $wpdb->insert(
  341. $wpdb->prefix . 'prflxtrflds_user_field_data',
  342. array(
  343. 'id' => $new_id,
  344. 'field_id' => 8, // fix the field ID to 8
  345. 'user_id' => $user_id,
  346. 'user_value' => $user_value
  347. ),
  348. array(
  349. '%d',
  350. '%d',
  351. '%d',
  352. '%s'
  353. )
  354. );
  355. }
  356.  
  357. $user_value = $data->meta_data['text-2']['value'];
  358.  
  359. // check if field exists for user
  360. $field_id = 10; // fixed field ID
  361. $field_data = $wpdb->get_row(
  362. $wpdb->prepare(
  363. "SELECT * FROM {$wpdb->prefix}prflxtrflds_user_field_data WHERE field_id = %d AND user_id = %d",
  364. $field_id,
  365. $user_id
  366. )
  367. );
  368.  
  369.  
  370. if ($field_data && $user_id == $field_data->user_id ) {
  371. // field exists, update value
  372. if (!empty($user_value)) { // hozzáadott feltétel: $user_value nem üres
  373. $wpdb->update(
  374. $wpdb->prefix . 'prflxtrflds_user_field_data',
  375. array( 'user_value' => $user_value ),
  376. array( 'field_id' => $field_data->field_id, 'user_id' => $user_id ),
  377. array( '%s' ),
  378. array( '%d', '%d' )
  379. );
  380. } else {
  381. // do nothing, leave existing value in the database
  382. }
  383. }
  384.  
  385. else {
  386. // field does not exist, insert new row
  387. $last_id = $wpdb->get_var( "SELECT id FROM " . $wpdb->prefix . "prflxtrflds_user_field_data ORDER BY id DESC LIMIT 1" );
  388. $new_id = $last_id + 1;
  389. $wpdb->insert(
  390. $wpdb->prefix . 'prflxtrflds_user_field_data',
  391. array(
  392. 'id' => $new_id,
  393. 'field_id' => 10, // fix the field ID to 10
  394. 'user_id' => $user_id,
  395. 'user_value' => $user_value
  396. ),
  397. array(
  398. '%d',
  399. '%d',
  400. '%d',
  401. '%s'
  402. )
  403. );
  404. }
  405. }
  406. }
Advertisement
Add Comment
Please, Sign In to add comment