简介:
我有一个处理网站中联系人表单变量的函数。
用户输入姓名、电子邮件和文本功能。php使用javascript获取变量我在途中获得了有关用户的更多信息,如IP、国家/地区、UTM标签(如有)等然后我添加了一个代码部分,将变量分别保存在SQL表中。
我使用phpMyAdmin创建了表“wp\\u contact\\u form”。
在函数中使用此代码部分:
global $wpdb;
$wpdb->insert(
\'wp_contact_form\',
array(
\'con_ip\' => $_COOKIE[\'ip\'],
\'con_name\' => $fullname,
\'con_email\' => $email,
\'con_text\' => $message,
\'con_country\' => $_COOKIE[\'country\'],
\'con_reigon\' => $_COOKIE[\'region\'],
\'con_city\' => $_COOKIE[\'city\'],
\'con_utm_source\' => $_COOKIE[\'utm_source\'],
\'con_utm_medium\' => $_COOKIE[\'utm_medium\'],
\'con_utm_campain\' => $_COOKIE[\'utm_campaign\'],
\'con_utm_term\' => $_COOKIE[\'utm_term\'],
\'con_utm_content\' => $_COOKIE[\'utm_content\']
),
array(
\'%s\',
\'%s\',
\'%s\',
\'%s\',
\'%s\',
\'%s\',
\'%s\',
\'%s\',
\'%s\'
)
);
我仍然有一张空桌子。我试着这样做:
https://codex.wordpress.org/Class_Reference/wpdb#INSERT_rows没有任何成功。
数据库结构:http://i.stack.imgur.com/kQ8oZ.png
全功能代码:
/**
Contact form using Ajax
**/
add_action(\'wp_ajax_nopriv_submit_contact_form\', \'submit_contact_form\');
// Send information from the contact form
function submit_contact_form(){
// Get the UTM variables from the \'get_the_utm_vars()\' function
//$utm = get_the_utm_vars();
// If there is a $_POST[\'email\']...
if( isset($_POST[\'email\']) && ($_POST[\'validation\'] == true ) ) {
// Get parameters
$email = $_POST[\'email\']; // Gets the email of the user..
$email_to = "arik@ example.pro";
$utm_emails = array(
\'tova@ example.pro\',
\'yonatan@ example.pro\',
\'arik@ example.pro\',
\'gal@ example.pro\',
\'shai@ example.pro\',
\'walid@ example.pro\'
);
$fullname = $_POST[\'fullname\'];
$message = $_POST[\'text\'];
$email_subject = " example Intro: $email";
$headers = array(
\'From: \'. $fullname .\' <\'. $email .\'>\',
\'BCC: yonatan@ example.pro\',
\'BCC: gal@ example.pro\',
\'BCC: eran@ example.pro\',
\'BCC: tova@ example.pro\',
\'BCC: walid@ example.pro\',
\'Content-type: text/html; charset=\\"UTF-8\\"; format=flowed \\r\\n\'
);
$utm_headers = array(
\'From: \'. $fullname .\' <\'. $email .\'>\'
);
// Send email to YH, and if sent - do:
if ( wp_mail($email_to,$email_subject,$message,$headers) ) {
// Tells me that the mail has been sent
echo json_encode( array("result"=>"complete") );
//Add the UTM variables to the emails text
$message .= "\\r\\n \\r\\n \\r\\n IP: ". $_COOKIE[\'ip\'] ."\\r\\n Country: ". $_COOKIE[\'country\'] ."\\r\\n Region: ". $_COOKIE[\'region\'] ."\\r\\n City: ". $_COOKIE[\'city\'] ." \\r\\n UTM Source: ".$_COOKIE[\'utm_source\']." \\r\\n UTM Medium: ".$_COOKIE[\'utm_medium\']." \\r\\n UTM Campaign: ".$_COOKIE[\'utm_campaign\']."\\r\\n UTM Term: ".$_COOKIE[\'utm_term\']." \\r\\n UTM Content: ".$_COOKIE[\'utm_content\']." ";
// A mail for tova with the UTM paramseters
wp_mail($utm_emails,$email_subject,$message,$utm_headers);
} else {
echo json_encode(array("result"=>"mail_error"));
var_dump($GLOBALS[\'phpmailer\']->ErrorInfo);
}
wp_die();
}
global $wpdb;
$wpdb->insert(
\'wp_contact_form\',
array(
\'con_ip\' => $_COOKIE[\'ip\'],
\'con_name\' => $fullname,
\'con_email\' => $email,
\'con_text\' => $message,
\'con_country\' => $_COOKIE[\'country\'],
\'con_reigon\' => $_COOKIE[\'region\'],
\'con_city\' => $_COOKIE[\'city\'],
\'con_utm_source\' => $_COOKIE[\'utm_source\'],
\'con_utm_medium\' => $_COOKIE[\'utm_medium\'],
\'con_utm_campain\' => $_COOKIE[\'utm_campaign\'],
\'con_utm_term\' => $_COOKIE[\'utm_term\'],
\'con_utm_content\' => $_COOKIE[\'utm_content\']
),
array(
\'%s\',
\'%s\',
\'%s\',
\'%s\',
\'%s\',
\'%s\',
\'%s\',
\'%s\',
\'%s\'
)
);
}