如果要在发送(或失败)联系人表单后保存邮件内容,可以使用wpcf7_mail_sent
和wpcf7_mail_failed
像这样的妓女:
add_action(\'wpcf7_mail_sent\',\'save_my_form_data_to_my_cpt\');
add_action(\'wpcf7_mail_failed\',\'save_my_form_data_to_my_cpt\');
function save_my_form_data_to_my_cpt($contact_form){
$submission = WPCF7_Submission::get_instance();
if (!$submission){
return;
}
$posted_data = $submission->get_posted_data();
//The Sent Fields are now in an array
//Let\'s say you got 4 Fields in your Contact Form
//my-email, my-name, my-subject and my-message
//you can now access them with $posted_data[\'my-email\']
//Do whatever you want like:
$new_post = array();
if(isset($posted_data[\'my-subject\']) && !empty($posted_data[\'my-subject\'])){
$new_post[\'post_title\'] = $posted_data[\'my-subject\'];
} else {
$new_post[\'post_title\'] = \'Message\';
}
$new_post[\'post_type\'] = \'my_awesome_cpt\'; //insert here your CPT
if(isset($posted_data[\'my-message\'])){
$new_post[\'post_content\'] = $posted_data[\'my-message\'];
} else {
$new_post[\'post_content\'] = \'No Message was submitted\';
}
$new_post[\'post_status\'] = \'publish\';
//you can also build your post_content from all of the fields of the form, or you can save them into some meta fields
if(isset($posted_data[\'my-email\']) && !empty($posted_data[\'my-email\'])){
$new_post[\'meta_input\'][\'sender_email_address\'] = $posted_data[\'my-email\'];
}
if(isset($posted_data[\'my-name\']) && !empty($posted_data[\'my-name\'])){
$new_post[\'meta_input\'][\'sender_name\'] = $posted_data[\'my-name\'];
}
//When everything is prepared, insert the post into your Wordpress Database
if($post_id = wp_insert_post($new_post)){
//Everything worked, you can stop here or do whatever
} else {
//The post was not inserted correctly, do something (or don\'t ;) )
}
return;
}