Guest User

Untitled

a guest
Jun 16th, 2023
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 22.02 KB | None | 0 0
  1. <?php
  2.  
  3. add_action( 'admin_post_nopriv_submit_form_data', 'submit_form_data' );
  4. add_action( 'admin_post_submit_form_data', 'submit_form_data' );
  5.  
  6. function submit_form_data() {
  7.  
  8. if (!empty($_POST['text-4'])) {
  9.  
  10.     // Biztonságosan generált jelszó
  11.     function generate_secure_password() {
  12.         $length = 15; // Jelszó hossza
  13.         $characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_-=+;:,.?'; // Lehetséges karakterek
  14.         $password = '';
  15.  
  16.         // Jelszó generálása
  17.         $character_count = strlen($characters);
  18.         for ($i = 0; $i < $length; $i++) {
  19.             $password .= $characters[rand(0, $character_count - 1)];
  20.         }
  21.  
  22.         return $password;
  23.     }
  24.  
  25.     // Jelszó generálása és tárolása egy változóban
  26.     $generated_password = generate_secure_password();
  27.  
  28.     // Fixként tárolás
  29.     define('FIXED_PASSWORD', $generated_password);
  30.  
  31.     // A kód további részeiben hivatkozás a jelszóra
  32.     echo FIXED_PASSWORD;
  33.  
  34.     // Hibaellenőrzés a felhasználó által megadott adatokra
  35.     $email = $_POST['email-1'];
  36.     if ( ! filter_var( $email, FILTER_VALIDATE_EMAIL ) ) {
  37.         wp_send_json_error( 'Az e-mail cím formátuma nem megfelelő' );
  38.         exit;
  39.     }
  40.  
  41.     // Ellenőrzés, hogy az e-mail címhez tartozik-e felhasználó a WordPress-ben
  42.     $user = get_user_by('email', $email);
  43.     if ($user) {
  44.         $user_id = $user->ID;
  45.  
  46.         // Ellenőrzés és felhasználói szerepkör frissítése a feltétel alapján
  47.         $roles = $user->roles;
  48.  
  49.         if (in_array('customer', $roles) && !in_array('student', $roles)) {
  50.             $update_args = array(
  51.                 'ID'   => $user_id,
  52.                 'role' => 'student'
  53.             );
  54.  
  55.             // Felhasználói szerepkör frissítése
  56.             wp_update_user($update_args);
  57.         }
  58.  
  59.         $entry_meta = array(
  60.             array(
  61.                 'name' => 'email-1',
  62.                 'value' => $_POST['email-1']
  63.             ),
  64.             array(
  65.                 'name' => 'text-1',
  66.                 'value' => $_POST['text-1']
  67.             ),
  68.             array(
  69.                 'name' => 'text-2',
  70.                 'value' => $_POST['text-2']
  71.             ),
  72.             array(
  73.                 'name' => 'date-1',
  74.                 'value' => $_POST['date-1']
  75.             ),
  76.             array(
  77.                 'name' => 'text-3',
  78.                 'value' => $_POST['text-3']
  79.             ),
  80.             array(
  81.                 'name' => 'hidden-3',
  82.                 'value' => $_POST['hidden-3']
  83.             ),
  84.             array(
  85.                 'name' => 'date-2',
  86.                 'value' => $_POST['date-2']
  87.             ),
  88.             array(
  89.                 'name' => 'text-4',            
  90.                 'value' => $_POST['text-4']
  91.             ),
  92.             array(
  93.                 'name' => 'text-5',
  94.                 'value' => $_POST['fullname']
  95.             ),
  96.             array(
  97.                 'name' => 'text-6',
  98.                 'value' => $_POST['phone']
  99.             ),
  100.             array(
  101.                 'name' => 'text-7',
  102.                 'value' => $_POST['birthdate']
  103.             ),
  104.             array(
  105.                 'name' => 'text-8',
  106.                 'value' => $_POST['email-1']
  107.             )
  108.         );
  109.     // Ellenőrzés, hogy a felhasználót létre kell-e hozni
  110.     if ($user) {
  111.         $user_id = $user->ID;
  112.         $entry_meta[] = array(
  113.             'name' => 'text-9',
  114.             'value' => ''
  115.         );
  116.     } else {
  117.         $entry_meta[] = array(
  118.             'name' => 'text-9',
  119.             'value' => FIXED_PASSWORD
  120.         );
  121.     }
  122.  
  123. } else {
  124.     // Felosztás a teljes névről vezetéknévre és keresztnévre
  125.     $name_parts = explode(' ', str_replace('+', ' ', $_POST['fullname']));
  126.     $first_word = array_shift($name_parts);
  127.     $last_name = $first_word;
  128.     $first_name = implode(' ', $name_parts);
  129.  
  130.     // Hozzáadjuk az új felhasználót a WordPress-hez
  131.     $user_id = wp_insert_user( array(
  132.         'user_login' => $_POST['email-1'],
  133.         'user_pass'  => FIXED_PASSWORD,
  134.         'user_email' => $_POST['email-1'],
  135.         'first_name' => $first_name,
  136.         'last_name'  => $last_name,
  137.         'role'       => 'student'
  138.     ) );
  139.  
  140.     // Ellenőrzés, hogy sikeres volt-e a felhasználó hozzáadása
  141.     if ( ! is_wp_error( $user_id ) ) {
  142.         // Felhasználó sikeresen létrehozva, adatok hozzáadása a usermeta táblához
  143.  
  144.         // Billing phone hozzáadása
  145.         update_user_meta( $user_id, 'billing_phone', $_POST['phone'] );
  146.  
  147.         // Birthday hozzáadása
  148.         update_user_meta( $user_id, 'yith_birthday', $_POST['birthdate'] );
  149.  
  150.         $entry_meta = array(
  151.             array(
  152.                 'name' => 'email-1',
  153.                 'value' => $_POST['email-1']
  154.             ),
  155.             array(
  156.                 'name' => 'text-1',
  157.                 'value' => $_POST['text-1']
  158.             ),
  159.             array(
  160.                 'name' => 'text-2',
  161.                 'value' => $_POST['text-2']
  162.             ),
  163.             array(
  164.                 'name' => 'date-1',
  165.                 'value' => $_POST['date-1']
  166.             ),
  167.             array(
  168.                 'name' => 'text-3',
  169.                 'value' => $_POST['text-3']
  170.             ),
  171.             array(
  172.                 'name' => 'hidden-3',
  173.                 'value' => $_POST['hidden-3']
  174.             ),
  175.             array(
  176.                 'name' => 'date-2',
  177.                 'value' => $_POST['date-2']
  178.             ),
  179.             array(
  180.                 'name' => 'text-4',
  181.                
  182.             'value' => $_POST['text-4']
  183.             ),
  184.             array(
  185.                 'name' => 'text-5',
  186.                 'value' => $_POST['fullname']
  187.             ),
  188.             array(
  189.                 'name' => 'text-6',
  190.                 'value' => $_POST['phone']
  191.             ),
  192.             array(
  193.                 'name' => 'text-7',
  194.                 'value' => $_POST['birthdate']
  195.             ),
  196.             array(
  197.                 'name' => 'text-8',
  198.                 'value' => $_POST['email-1']
  199.             ),
  200.             // ...
  201.             array(
  202.                 'name' => 'text-9',
  203.                 'value' => FIXED_PASSWORD
  204.             )
  205.         );
  206.     } else {
  207.         // Hiba történt a felhasználó létrehozása során
  208.         $error_message = $user_id->get_error_message();
  209.         echo 'Hiba történt a felhasználó hozzáadása során: ' . $error_message;
  210.     }
  211. }
  212.  
  213.     // get field value
  214.  
  215.     // check if field exists for user
  216.     global $wpdb;
  217.     $field_id = 2; // fixed field ID
  218.     $field_data = $wpdb->get_row(
  219.         $wpdb->prepare(
  220.             "SELECT * FROM {$wpdb->prefix}prflxtrflds_user_field_data WHERE field_id = %d AND user_id = %d",
  221.             $field_id,
  222.             $user_id
  223.         )
  224.     );
  225.  
  226. if ($field_data && $user_id == $field_data->user_id ) {
  227.     // field exists, update value
  228.     if (empty($field_data->user_value)) {
  229.         $wpdb->update(
  230.             $wpdb->prefix . 'prflxtrflds_user_field_data',
  231.             array( 'user_value' => 5 ),
  232.             array( 'field_id' => $field_data->field_id, 'user_id' => $user_id ),
  233.             array( '%s' ),
  234.             array( '%d', '%d' )
  235.         );
  236.     } else {
  237.         // do nothing, leave existing value in the database
  238.     }
  239. }
  240.    
  241.         else {
  242.         // field does not exist, insert new row
  243.         $last_id = $wpdb->get_var( "SELECT id FROM " . $wpdb->prefix . "prflxtrflds_user_field_data ORDER BY id DESC LIMIT 1" );
  244.         $new_id = $last_id + 1;
  245.         $wpdb->insert(
  246.             $wpdb->prefix . 'prflxtrflds_user_field_data',
  247.             array(
  248.                 'id' => $new_id,
  249.                 'field_id' => 2, // fix the field ID to 2
  250.                 'user_id' => $user_id,
  251.                 'user_value' => 5
  252.             ),
  253.             array(
  254.                 '%d',
  255.                 '%d',
  256.                 '%d',
  257.                 '%s'
  258.             )
  259.         );
  260.         }
  261.  
  262.     $user_value = $_POST['date-1'];
  263.  
  264.     // check if field exists for user
  265.     global $wpdb;
  266.     $field_id = 3; // fixed field ID
  267.     $field_data = $wpdb->get_row(
  268.         $wpdb->prepare(
  269.             "SELECT * FROM {$wpdb->prefix}prflxtrflds_user_field_data WHERE field_id = %d AND user_id = %d",
  270.             $field_id,
  271.             $user_id
  272.         )
  273.     );
  274.  
  275. if ($field_data && $user_id == $field_data->user_id ) {
  276.     // field exists, update value
  277.     if (!empty($user_value)) { // hozzáadott feltétel: $user_value nem üres
  278.         $wpdb->update(
  279.             $wpdb->prefix . 'prflxtrflds_user_field_data',
  280.             array( 'user_value' => $user_value ),
  281.             array( 'field_id' => $field_data->field_id, 'user_id' => $user_id ),
  282.             array( '%s' ),
  283.             array( '%d', '%d' )
  284.         );
  285.     } else {
  286.         // do nothing, leave existing value in the database
  287.     }
  288. }
  289.    
  290.         else {
  291.         // field does not exist, insert new row
  292.         $last_id = $wpdb->get_var( "SELECT id FROM " . $wpdb->prefix . "prflxtrflds_user_field_data ORDER BY id DESC LIMIT 1" );
  293.         $new_id = $last_id + 1;
  294.         $wpdb->insert(
  295.             $wpdb->prefix . 'prflxtrflds_user_field_data',
  296.             array(
  297.                 'id' => $new_id,
  298.                 'field_id' => 3, // fix the field ID to 3
  299.                 'user_id' => $user_id,
  300.                 'user_value' => $user_value
  301.             ),
  302.             array(
  303.                 '%d',
  304.                 '%d',
  305.                 '%d',
  306.                 '%s'
  307.             )
  308.         );
  309.         }
  310.  
  311. $user_value = $_POST['text-3'];
  312.  
  313. if (empty($user_value)) {
  314.     $user_value = '0';
  315. } elseif ($user_value === 'x') {
  316.     $user_value = 'UNLIMITED/KORLÁTLAN';
  317. }
  318.  
  319. global $wpdb;
  320. $field_id = 4; // fixed field ID
  321. $field_data = $wpdb->get_row(
  322.     $wpdb->prepare(
  323.         "SELECT * FROM {$wpdb->prefix}prflxtrflds_user_field_data WHERE field_id = %d AND user_id = %d",
  324.         $field_id,
  325.         $user_id
  326.     )
  327. );
  328.  
  329. if ($field_data && $user_id == $field_data->user_id) {
  330.     // field exists, update value
  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.     // field does not exist, insert new row
  340.     $last_id = $wpdb->get_var("SELECT id FROM " . $wpdb->prefix . "prflxtrflds_user_field_data ORDER BY id DESC LIMIT 1");
  341.     $new_id = $last_id + 1;
  342.     $wpdb->insert(
  343.         $wpdb->prefix . 'prflxtrflds_user_field_data',
  344.         array(
  345.             'id' => $new_id,
  346.             'field_id' => 4, // fix the field ID to 4
  347.             'user_id' => $user_id,
  348.             'user_value' => $user_value
  349.         ),
  350.         array(
  351.             '%d',
  352.             '%d',
  353.             '%d',
  354.             '%s'
  355.         )
  356.     );
  357. }
  358.    
  359.     $user_value = $_POST['text-1'];
  360.  
  361.     // check if field exists for user
  362.     global $wpdb;
  363.     $field_id = 8; // fixed field ID
  364.     $field_data = $wpdb->get_row(
  365.         $wpdb->prepare(
  366.             "SELECT * FROM {$wpdb->prefix}prflxtrflds_user_field_data WHERE field_id = %d AND user_id = %d",
  367.             $field_id,
  368.             $user_id
  369.         )
  370.     );
  371.  
  372. if ($field_data && $user_id == $field_data->user_id ) {
  373.     // field exists, update value
  374.     if (!empty($user_value)) { // hozzáadott feltétel: $user_value nem üres
  375.         $wpdb->update(
  376.             $wpdb->prefix . 'prflxtrflds_user_field_data',
  377.             array( 'user_value' => $user_value ),
  378.             array( 'field_id' => $field_data->field_id, 'user_id' => $user_id ),
  379.             array( '%s' ),
  380.             array( '%d', '%d' )
  381.         );
  382.     } else {
  383.         // do nothing, leave existing value in the database
  384.     }
  385. }
  386.  
  387.         else {
  388.         // field does not exist, insert new row
  389.         $last_id = $wpdb->get_var( "SELECT id FROM " . $wpdb->prefix . "prflxtrflds_user_field_data ORDER BY id DESC LIMIT 1" );
  390.         $new_id = $last_id + 1;
  391.         $wpdb->insert(
  392.             $wpdb->prefix . 'prflxtrflds_user_field_data',
  393.             array(
  394.                 'id' => $new_id,
  395.                 'field_id' => 8, // fix the field ID to 8
  396.                 'user_id' => $user_id,
  397.                 'user_value' => $user_value
  398.             ),
  399.             array(
  400.                 '%d',
  401.                 '%d',
  402.                 '%d',
  403.                 '%s'
  404.             )
  405.         );
  406.         }
  407.  
  408.     $user_value = $_POST['text-2'];
  409.  
  410.     // check if field exists for user
  411.     global $wpdb;
  412.     $field_id = 10; // fixed field ID
  413.     $field_data = $wpdb->get_row(
  414.         $wpdb->prepare(
  415.             "SELECT * FROM {$wpdb->prefix}prflxtrflds_user_field_data WHERE field_id = %d AND user_id = %d",
  416.             $field_id,
  417.             $user_id
  418.         )
  419.     );
  420.  
  421.    
  422. if ($field_data && $user_id == $field_data->user_id ) {
  423.     // field exists, update value
  424.     if (!empty($user_value)) { // hozzáadott feltétel: $user_value nem üres
  425.         $wpdb->update(
  426.             $wpdb->prefix . 'prflxtrflds_user_field_data',
  427.             array( 'user_value' => $user_value ),
  428.             array( 'field_id' => $field_data->field_id, 'user_id' => $user_id ),
  429.             array( '%s' ),
  430.             array( '%d', '%d' )
  431.         );
  432.     } else {
  433.         // do nothing, leave existing value in the database
  434.     }
  435. }
  436.  
  437.         else {
  438.         // field does not exist, insert new row
  439.         $last_id = $wpdb->get_var( "SELECT id FROM " . $wpdb->prefix . "prflxtrflds_user_field_data ORDER BY id DESC LIMIT 1" );
  440.         $new_id = $last_id + 1;
  441.         $wpdb->insert(
  442.             $wpdb->prefix . 'prflxtrflds_user_field_data',
  443.             array(
  444.                 'id' => $new_id,
  445.                 'field_id' => 10, // fix the field ID to 10
  446.                 'user_id' => $user_id,
  447.                 'user_value' => $user_value
  448.             ),
  449.             array(
  450.                 '%d',
  451.                 '%d',
  452.                 '%d',
  453.                 '%s'
  454.             )
  455.         );
  456.     }
  457.  
  458. $user_value = $_POST['userfoto'];
  459.  
  460. // check if field exists for user
  461. global $wpdb;
  462. $field_id = 12; // fixed field ID
  463. $field_data = $wpdb->get_row(
  464.     $wpdb->prepare(
  465.         "SELECT * FROM {$wpdb->prefix}prflxtrflds_user_field_data WHERE field_id = %d AND user_id = %d",
  466.         $field_id,
  467.         $user_id
  468.     )
  469. );
  470.  
  471.  
  472. if ($field_data && $user_id == $field_data->user_id) {
  473.     // field exists, update value
  474.     if (!empty($user_value)) {
  475.         $wpdb->update(
  476.             $wpdb->prefix . 'prflxtrflds_user_field_data',
  477.             array('user_value' => $user_value),
  478.             array('field_id' => $field_data->field_id, 'user_id' => $user_id),
  479.             array('%s'),
  480.             array('%d', '%d')
  481.         );
  482.     } else {
  483.         // do nothing, leave existing value in the database
  484.     }
  485. } else {
  486.     // field does not exist, insert new row if user_value is not empty
  487.     if (!empty($user_value)) {
  488.         $last_id = $wpdb->get_var("SELECT id FROM " . $wpdb->prefix . "prflxtrflds_user_field_data ORDER BY id DESC LIMIT 1");
  489.         $new_id = $last_id + 1;
  490.         $wpdb->insert(
  491.             $wpdb->prefix . 'prflxtrflds_user_field_data',
  492.             array(
  493.                 'id' => $new_id,
  494.                 'field_id' => 12, // fix the field ID to 12
  495.                 'user_id' => $user_id,
  496.                 'user_value' => $user_value
  497.             ),
  498.             array(
  499.                 '%d',
  500.                 '%d',
  501.                 '%d',
  502.                 '%s'
  503.             )
  504.         );
  505.     }
  506. }
  507.  
  508. $user_value = $_POST['date-2'];
  509.  
  510. if ($user_value !== '1970-01-01') {
  511.     // check if field exists for user
  512.     global $wpdb;
  513.     $field_id = 11; // fixed field ID
  514.     $field_data = $wpdb->get_row(
  515.         $wpdb->prepare(
  516.             "SELECT * FROM {$wpdb->prefix}prflxtrflds_user_field_data WHERE field_id = %d AND user_id = %d",
  517.             $field_id,
  518.             $user_id
  519.         )
  520.     );
  521.  
  522.     if ($field_data && $user_id == $field_data->user_id) {
  523.         // field exists, update value
  524.         if (!empty($user_value)) {
  525.             $wpdb->update(
  526.                 $wpdb->prefix . 'prflxtrflds_user_field_data',
  527.                 array('user_value' => $user_value),
  528.                 array('field_id' => $field_data->field_id, 'user_id' => $user_id),
  529.                 array('%s'),
  530.                 array('%d', '%d')
  531.             );
  532.         } else {
  533.             // do nothing, leave existing value in the database
  534.         }
  535.     } else {
  536.         // field does not exist, insert new row
  537.         $last_id = $wpdb->get_var("SELECT id FROM " . $wpdb->prefix . "prflxtrflds_user_field_data ORDER BY id DESC LIMIT 1");
  538.         $new_id = $last_id + 1;
  539.         $wpdb->insert(
  540.             $wpdb->prefix . 'prflxtrflds_user_field_data',
  541.             array(
  542.                 'id' => $new_id,
  543.                 'field_id' => 11, // fix the field ID to 11
  544.                 'user_id' => $user_id,
  545.                 'user_value' => $user_value
  546.             ),
  547.             array(
  548.                 '%d',
  549.                 '%d',
  550.                 '%d',
  551.                 '%s'
  552.             )
  553.         );
  554.     }
  555. }
  556.  
  557. $user_value = $_POST['date-2'];
  558. $user_value_formatted = date('Y-m-d', strtotime($user_value)); // Formátum ellenőrzése és átalakítása
  559.  
  560. if ($user_value_formatted !== '1970-01-01') {
  561.     global $wpdb;
  562.     $field_id = 12; // fixed field ID
  563.  
  564.     // Check if a row with the same user_value exists for the current user
  565.     $existing_row = $wpdb->get_row($wpdb->prepare(
  566.         "SELECT * FROM " . $wpdb->prefix . "prflxtrflds_checkin_data WHERE field_id = %d AND user_id = %d",
  567.         $field_id,
  568.         $user_id
  569.     ));
  570.  
  571.     // If no matching row found or the user_value is different, insert a new row
  572.     if (!$existing_row || $existing_row->user_value !== $user_value_formatted) {
  573.         // Check if the user_value already exists for the given user_id and field_id
  574.         $duplicate_row = $wpdb->get_row($wpdb->prepare(
  575.             "SELECT * FROM " . $wpdb->prefix . "prflxtrflds_checkin_data WHERE field_id = %d AND user_id = %d AND user_value = %s",
  576.             $field_id,
  577.             $user_id,
  578.             $user_value_formatted
  579.         ));
  580.  
  581.         if (!$duplicate_row) {
  582.             $last_id = $wpdb->get_var("SELECT id FROM " . $wpdb->prefix . "prflxtrflds_checkin_data ORDER BY id DESC LIMIT 1");
  583.             $new_id = $last_id + 1;
  584.             $wpdb->insert(
  585.                 $wpdb->prefix . 'prflxtrflds_checkin_data',
  586.                 array(
  587.                     'id' => $new_id,
  588.                     'field_id' => $field_id,
  589.                     'user_id' => $user_id,
  590.                     'user_value' => $user_value_formatted
  591.                 ),
  592.                 array(
  593.                     '%d',
  594.                     '%d',
  595.                     '%d',
  596.                     '%s'
  597.                 )
  598.             );
  599.         }
  600.     }
  601. }
  602.  
  603.     $user_value = '';
  604.  
  605.     switch ($_POST['text-4']) {
  606.         case '77':
  607.         case '78':
  608.         case '84':
  609.             $user_value = 34;
  610.             break;
  611.         case '89':
  612.         case '90':
  613.             $user_value = 35;
  614.             break;
  615.         default:
  616.             break;
  617.     }
  618.  
  619.     // check if field exists for user
  620.     $field_id = 13; // fixed field ID
  621.     $field_data = $wpdb->get_row(
  622.         $wpdb->prepare(
  623.             "SELECT * FROM {$wpdb->prefix}prflxtrflds_user_field_data WHERE field_id = %d AND user_id = %d",
  624.             $field_id,
  625.             $user_id
  626.         )
  627.     );
  628.  
  629. if ($field_data && $user_id == $field_data->user_id ) {
  630.     // field exists, update value
  631.     if (!empty($user_value)) { // hozzáadott feltétel: $user_value nem üres
  632.         $wpdb->update(
  633.             $wpdb->prefix . 'prflxtrflds_user_field_data',
  634.             array( 'user_value' => $user_value ),
  635.             array( 'field_id' => $field_data->field_id, 'user_id' => $user_id ),
  636.             array( '%s' ),
  637.             array( '%d', '%d' )
  638.         );
  639.     } else {
  640.         // do nothing, leave existing value in the database
  641.     }
  642. }
  643.    
  644.         else {
  645.         // field does not exist, insert new row
  646.         if (!empty($user_value)) { // hozzáadott feltétel: $user_value nem üres
  647.         $last_id = $wpdb->get_var( "SELECT id FROM " . $wpdb->prefix . "prflxtrflds_user_field_data ORDER BY id DESC LIMIT 1" );
  648.         $new_id = $last_id + 1;
  649.         $wpdb->insert(
  650.             $wpdb->prefix . 'prflxtrflds_user_field_data',
  651.             array(
  652.                 'id' => $new_id,
  653.                 'field_id' => 13, // fix the field ID to 13
  654.                 'user_id' => $user_id,
  655.                 'user_value' => $user_value
  656.             ),
  657.             array(
  658.                 '%d',
  659.                 '%d',
  660.                 '%d',
  661.                 '%s'
  662.             )
  663.         );
  664.     } else {
  665.         // do nothing, since $user_value is empty
  666.     }
  667. }
  668.  
  669.  $form_id = 23868;
  670.  
  671. // Űrlapbejegyzés létrehozása a Forminator API-val
  672. $entry_id = Forminator_API::add_form_entry( $form_id, $entry_meta );
  673.  
  674. if ( $entry_id ) {
  675.         $form = Forminator_API::get_form( $form_id );
  676.         $entry = Forminator_API::get_entry( $form_id, $entry_id );
  677.         $submit_data = wpmudev_recreate_prepared_data( $entry, $form );
  678.         Forminator_Front_Action::$prepared_data = $submit_data;
  679.         (new Forminator_CForm_Front_Mail)->process_mail( $form, $entry );
  680. }
  681.  
  682.  
  683. function wpmudev_recreate_prepared_data( $entry, $form ) {
  684.     $prepared_data = wp_list_pluck( $entry->meta_data, 'value' );
  685.     $fields        = $form->get_real_fields();
  686.  
  687.     foreach ( $prepared_data as $key => $value ) {
  688.         if ( isset( $value['result'] ) ) {
  689.             $prepared_data[ $key ] = $value['result'];
  690.         } elseif ( is_array( $value ) ) {
  691.             foreach ( $value as $subkey => $subvalue ) {
  692.                 $prepared_data[ $key . '-' . $subkey ] = $subvalue;
  693.             }
  694.         } elseif ( 0 === strpos( $key, 'select-' )
  695.                 || 0 === strpos( $key, 'radio-' )
  696.                 || 0 === strpos( $key, 'checkbox-' ) ) {
  697.             foreach ( $fields as $field ) {
  698.                 if ( empty( $field->raw['element_id'] ) || $key !== $field->raw['element_id'] ) {
  699.                     continue;
  700.                 }
  701.                 if ( empty( $field->raw['options'] ) || ! is_array( $field->raw['options'] ) ) {
  702.                     break;
  703.                 }
  704.                 $field_labels    = wp_list_pluck( $field->raw['options'], 'label' );
  705.                 $field_values    = wp_list_pluck( $field->raw['options'], 'value' );
  706.                 $multiple_values = explode( ', ', $value );
  707.  
  708.                 $prepared_data[ $key ] = $multiple_values;
  709.                 foreach ( $multiple_values as $multiple_key => $multiple_value ) {
  710.                     $field_value_key = array_search( $multiple_value, $field_labels, true );
  711.                     if ( false !== $field_value_key ) {
  712.                         // Replace saved field Labels to the relevant field values.
  713.                         $prepared_data[ $key ][ $multiple_key ] = $field_values[ $field_value_key ];
  714.                     }
  715.                 }
  716.                 break;
  717.             }
  718.         }
  719.     }
  720.  
  721.     $prepared_data['form_id'] = $entry->form_id;
  722.  
  723.     return $prepared_data;
  724. }
  725.  
  726. }
  727.  
  728. }
Advertisement
Add Comment
Please, Sign In to add comment