hollosipeter

Insert/update wp database using Forminator

May 2nd, 2023
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 11.58 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['text-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.                 // update value to 0 instead of doing nothing
  285.         $wpdb->update(
  286.             $wpdb->prefix . 'prflxtrflds_user_field_data',
  287.             array( 'user_value' => '0' ),
  288.             array( 'field_id' => $field_data->field_id, 'user_id' => $user_id ),
  289.             array( '%s' ),
  290.             array( '%d', '%d' )
  291.         );
  292.     }
  293. }
  294.  
  295.         else {
  296.         // field does not exist, insert new row
  297.         $last_id = $wpdb->get_var( "SELECT id FROM " . $wpdb->prefix . "prflxtrflds_user_field_data ORDER BY id DESC LIMIT 1" );
  298.         $new_id = $last_id + 1;
  299.         $wpdb->insert(
  300.             $wpdb->prefix . 'prflxtrflds_user_field_data',
  301.             array(
  302.                 'id' => $new_id,
  303.                 'field_id' => 4, // fix the field ID to 4
  304.                 'user_id' => $user_id,
  305.                 'user_value' => $user_value
  306.             ),
  307.             array(
  308.                 '%d',
  309.                 '%d',
  310.                 '%d',
  311.                 '%s'
  312.             )
  313.         );
  314.         }
  315.    
  316.     $user_value = $data->meta_data['text-1']['value'];
  317.  
  318.     // check if field exists for user
  319.     $field_id = 8; // fixed field ID
  320.     $field_data = $wpdb->get_row(
  321.         $wpdb->prepare(
  322.             "SELECT * FROM {$wpdb->prefix}prflxtrflds_user_field_data WHERE field_id = %d AND user_id = %d",
  323.             $field_id,
  324.             $user_id
  325.         )
  326.     );
  327.  
  328. if ($field_data && $user_id == $field_data->user_id ) {
  329.     // field exists, update value
  330.     if (!empty($user_value)) { // hozzáadott feltétel: $user_value nem üres
  331.         $wpdb->update(
  332.             $wpdb->prefix . 'prflxtrflds_user_field_data',
  333.             array( 'user_value' => $user_value ),
  334.             array( 'field_id' => $field_data->field_id, 'user_id' => $user_id ),
  335.             array( '%s' ),
  336.             array( '%d', '%d' )
  337.         );
  338.     } else {
  339.         // do nothing, leave existing value in the database
  340.     }
  341. }
  342.  
  343.         else {
  344.         // field does not exist, insert new row
  345.         $last_id = $wpdb->get_var( "SELECT id FROM " . $wpdb->prefix . "prflxtrflds_user_field_data ORDER BY id DESC LIMIT 1" );
  346.         $new_id = $last_id + 1;
  347.         $wpdb->insert(
  348.             $wpdb->prefix . 'prflxtrflds_user_field_data',
  349.             array(
  350.                 'id' => $new_id,
  351.                 'field_id' => 8, // fix the field ID to 8
  352.                 'user_id' => $user_id,
  353.                 'user_value' => $user_value
  354.             ),
  355.             array(
  356.                 '%d',
  357.                 '%d',
  358.                 '%d',
  359.                 '%s'
  360.             )
  361.         );
  362.         }
  363.  
  364.     $user_value = $data->meta_data['text-2']['value'];
  365.  
  366.     // check if field exists for user
  367.     $field_id = 10; // fixed field ID
  368.     $field_data = $wpdb->get_row(
  369.         $wpdb->prepare(
  370.             "SELECT * FROM {$wpdb->prefix}prflxtrflds_user_field_data WHERE field_id = %d AND user_id = %d",
  371.             $field_id,
  372.             $user_id
  373.         )
  374.     );
  375.  
  376.    
  377. if ($field_data && $user_id == $field_data->user_id ) {
  378.     // field exists, update value
  379.     if (!empty($user_value)) { // hozzáadott feltétel: $user_value nem üres
  380.         $wpdb->update(
  381.             $wpdb->prefix . 'prflxtrflds_user_field_data',
  382.             array( 'user_value' => $user_value ),
  383.             array( 'field_id' => $field_data->field_id, 'user_id' => $user_id ),
  384.             array( '%s' ),
  385.             array( '%d', '%d' )
  386.         );
  387.     } else {
  388.         // do nothing, leave existing value in the database
  389.     }
  390. }
  391.  
  392.         else {
  393.         // field does not exist, insert new row
  394.         $last_id = $wpdb->get_var( "SELECT id FROM " . $wpdb->prefix . "prflxtrflds_user_field_data ORDER BY id DESC LIMIT 1" );
  395.         $new_id = $last_id + 1;
  396.         $wpdb->insert(
  397.             $wpdb->prefix . 'prflxtrflds_user_field_data',
  398.             array(
  399.                 'id' => $new_id,
  400.                 'field_id' => 10, // fix the field ID to 10
  401.                 'user_id' => $user_id,
  402.                 'user_value' => $user_value
  403.             ),
  404.             array(
  405.                 '%d',
  406.                 '%d',
  407.                 '%d',
  408.                 '%s'
  409.             )
  410.         );
  411.     }
  412. }
  413. }
Advertisement
Add Comment
Please, Sign In to add comment