prefix . 'cookieadmin_do_not_sell'; $email_exist = $wpdb->get_var( $wpdb->prepare("SELECT user_email FROM $table_name WHERE user_email = %s", trim($form_data['email'])) ); // check if the email exists if(!empty($email_exist)){ wp_send_json_error(esc_html(cookieadmin__($cookieadmin['default']['dns_request_in_progress'], 'dns_request_in_progress'))); } $result = $wpdb->insert( $table_name, array( 'user_email' => $form_data['email'], 'first_name' => $form_data['first_name'], 'last_name' => $form_data['last_name'], 'phone' => !empty($form_data['phone']) ? $form_data['phone'] : '', 'zip' => !empty($form_data['zip_code']) ? $form_data['zip_code'] : '', 'status' => 'Recieved', 'created_at' => time(), ), array('%s', '%s', '%s', '%s', '%s', '%s', '%d') ); // check if any error has occured if($result === false){ wp_send_json_error(esc_html(cookieadmin__($cookieadmin['default']['dns_submission_err'], 'dns_submission_err'))); } wp_send_json_success(esc_html(cookieadmin__($cookieadmin['default']['dns_submission_success'], 'dns_submission_success'))); } // Generate Do Not Sell form html static function get_dns_shortcode_html(){ global $cookieadmin; $settings = get_option('cookieadmin_do_not_sell', []); $output = '
'; return $output; } static function form_script(){ $nonce = wp_create_nonce('cookieadmin_pro_js_nonce'); $ajax_url = admin_url('admin-ajax.php'); return " // Submit Do Not Sell request function cookieadmin_pro_submit_dns_form(e){ e.preventDefault(); if(cookieadmin_pro_vars === 'undefined' || !cookieadmin_pro_vars.ajax_url){ return; } var success_elm = document.getElementById('cookieadmin-dns-form-success'), error_elm = document.getElementById('cookieadmin-dns-form-error'), spinner = document.querySelector('.cookieadmin-dns-spinner'), submit_btn = document.querySelector('.cookieadmin_dns_submit'); if(success_elm && error_elm){ success_elm.style.display = 'none'; error_elm.style.display = 'none'; } spinner.style.display = 'inline-block'; submit_btn.disabled = true; // Get the form elements; var form_element = e.target; var form_data = { confirmation : '', first_name : '', last_name : '', email : '', phone : '', zip_code : '' }; for(let key in form_data){ form_data[key] = form_element.elements['cookieadmin_dns_' + key] ? form_element.elements['cookieadmin_dns_' + key].value : ''; } const data = 'action=cookieadmin_pro_ajax_handler&cookieadmin_act=submit_do_not_sell_form' + '&cookieadmin_pro_security={$nonce}&cookieadmin_dns_req=' + encodeURIComponent(JSON.stringify(form_data)); // Make async request — don't block or wait const xhttp = new XMLHttpRequest(); xhttp.open('POST', '{$ajax_url}'); xhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8'); xhttp.onload = function(){ if(this.status === 200){ try { var response = JSON.parse(this.responseText); console.log(response.data); if(response.success){ if(success_elm){ success_elm.innerText = response.data; success_elm.style.display = 'flex'; form_element.reset(); } }else{ if(error_elm){ error_elm.innerText = response.data; error_elm.style.display = 'flex'; } } } catch (e) { console.log(e); } } spinner.style.display = 'none'; submit_btn.disabled = false; } xhttp.onerror = function(){ console.log('Ajax request failed'); submit_btn.disabled = false; } xhttp.send(data); return true; } "; } // Add styling for the Do Not Sell form layout and basic styling static function form_style(){ return '.cookieadmin-do-not-sell-form{padding:10px 20px;max-width:600px;border:.5px solid #cecece;border-radius:5px}#cookieadmin_dns_form{display:flex;flex-direction:column;gap:15px}#cookieadmin_dns_form .cookieadmin-do-not-sell-form-field{display:flex;flex-direction:column;gap:3px}.cookieadmin-do-not-sell-form-field input[type="text"],.cookieadmin-do-not-sell-form-field input[type="email"]{padding:5px;max-width:400px}.cookieadmin-do-not-sell-form-field input[type="submit"]{padding:8px 15px;width:fit-content}#cookieadmin-dns-form-error{padding:10px;color:#fa3d3d;border-left:3.5px solid #fa3d3d;background-color:#fef2f2}#cookieadmin-dns-form-success{padding:10px;text-align:center}.cookieadmin-do-not-sell-req-input{margin:5px;color:red}.cookieadmin-do-not-sell-form-header{text-align:center}.cookieadmin-do-not-sell-text{text-align:justify}.cookieadmin_dns_submit{cursor:pointer;} .cookieadmin-dns-spinner { display:none; width: 1em; height: 1em; border: 2px solid transparent; border-top-color: currentColor; border-radius: 50%; animation: cookieadmin-dns-spin .6s linear infinite; } @keyframes cookieadmin-dns-spin { to { transform: rotate(360deg); } }'; } }