Quantcast
Channel: WordPress.org Forums » [Forminator Forms – Contact Form, Payment Form & Custom Form Builder] Support
Viewing all articles
Browse latest Browse all 1470

Forminator save field code

$
0
0

Replies: 3

Hi! I want to put a {hidden-4} to the forminator’s email from a database logic, but seems like not working. I’m using forminator_custom_submit_before_set_fields. What I missed?

Thank you,
Peter



add_action(‘forminator_custom_form_submit_before_set_fields’, ‘forminator_append_ean_to_hidden_field’, 10, 3);

function forminator_append_ean_to_hidden_field($entry, $form_id, $field_data_array) {

    $form_ids = array(22246); // Állítsd be a megfelelő Forminator űrlap ID-t

    if (!in_array($form_id, $form_ids)) {

        return;

    }

    global $wpdb;

    $email_field = null;

    $user_ean = null;

    // Keresd meg az email mezőt

    foreach ($field_data_array as $key => $value) {

        if (isset($value[‘name’]) && $value[‘name’] === ’email-1′) {

            $email_field = $value[‘value’];

            break;

        }

    }

    // Generáljuk vagy keressük meg az User EAN-t

    if ($email_field) {

        $user_id = $wpdb->get_var($wpdb->prepare(“SELECT ID FROM {$wpdb->users} WHERE user_email = %s”, $email_field));

        if ($user_id) {

            // Létező user esetén ellenőrizzük az EAN-t

            $user_ean = $wpdb->get_var($wpdb->prepare(

                “SELECT user_value FROM wp_prflxtrflds_user_field_data WHERE user_id = %d AND field_id = 10”,

                $user_id

            ));

            if (!$user_ean) {

                $user_ean = generate_prefixed_ean($user_id);

                $wpdb->insert(

                    ‘wp_prflxtrflds_user_field_data’,

                    array(

                        ‘user_id’    => $user_id,

                        ‘field_id’   => 10,

                        ‘user_value’ => $user_ean,

                    ),

                    array(‘%d’, ‘%d’, ‘%s’)

                );

            }

        } else {

            // Nem létező user

            $user_ean = $wpdb->get_var($wpdb->prepare(

                “SELECT user_value FROM wp_prflxtrflds_regdata WHERE email = %s”,

                $email_field

            ));

            if (!$user_ean) {

                $user_ean = generate_prefixed_ean($email_field);

                $wpdb->insert(

                    ‘wp_prflxtrflds_regdata’,

                    array(

                        ’email’      => $email_field,

                        ‘user_value’ => $user_ean,

                    ),

                    array(‘%s’, ‘%s’)

                );

            }

        }

    }

    if (!$user_ean) {

        $user_ean = generate_prefixed_ean(time());

    }

    // Frissítsük a hidden-4 mezőt

    foreach ($field_data_array as $key => $value) {

        if (strpos($value[‘name’], ‘hidden-4’) !== false) {

            Forminator_CForm_Front_Action::$info[‘field_data_array’][$key][‘value’] = $user_ean;

        }

    }

}

// Prefix generálása a User EAN-hez

function generate_prefixed_ean($base_value) {

    if (preg_match(‘/^\d{5}$/’, $base_value)) {

        return ‘99980’ . $base_value;

    } elseif (preg_match(‘/^\d{6}$/’, $base_value)) {

        return ‘9998’ . $base_value;

    }

    return $base_value;

}

// QR-kód generálása

function generate_qr_code($user_ean, $user_id = null) {

    $upload_dir = wp_upload_dir();

    $qr_code_dir = $upload_dir[‘basedir’] . ‘/qrcodes/’;

    $qr_code_url_dir = $upload_dir[‘baseurl’] . ‘/qrcodes/’;

    if (!file_exists($qr_code_dir)) {

        wp_mkdir_p($qr_code_dir);

    }

    // Ha van user_id, a fájl neve user_id.png, ha nincs, akkor user_ean.png

    $qr_code_filename = $user_id ? $user_id . ‘.png’ : $user_ean . ‘.png’;

    $qr_code_path = $qr_code_dir . $qr_code_filename;

    if (!file_exists($qr_code_path)) {

        $qr_code_generation_url = ‘https://quickchart.io/qr?text=’ . urlencode($user_ean) . ‘&format=png’;

        $qr_code_image = file_get_contents($qr_code_generation_url);

        if ($qr_code_image) {

            file_put_contents($qr_code_path, $qr_code_image);

        }

    }

    return $qr_code_url_dir . $qr_code_filename;

}


Viewing all articles
Browse latest Browse all 1470

Trending Articles