2015-05-29 14 views
6

Tôi đang làm việc trên một trang web có nhiều biểu mẫu được tạo bằng Mẫu Liên hệ 7. Đối với một trong các biểu mẫu này, tôi chuyển các biến mà tôi đã thu thập bằng cách sử dụng ẩn trường nhập trong biểu mẫu. Tôi đi qua các biến này vào email bằng cách sử dụng móc wpcf7_before_send_mail, nhưng những giá trị được truyền vào mỗi email (tôi đã thêm các biến động cũng như văn bản tĩnh) Dưới đây là các mã:Mẫu Liên hệ 7: sử dụng móc tạo ra bằng cách sử dụng wpcf7_before_send_mail cho chỉ một mẫu liên hệ theo id

add_action('wpcf7_before_send_mail', 'wpcf7_add_text_to_mail_body'); 

function wpcf7_add_text_to_mail_body($contact_form){ 
    $values_list = $_POST['valsitems']; 
    $values_str = implode(", ", $values_list); 

    // get mail property 
    $mail = $contact_form->prop('mail'); // returns array 

    // add content to email body 
    $mail['body'] .= 'INDUSTRIES SELECTED'; 
    $mail['body'] .= $values_list; 


    // set mail property with changed value(s) 
    $contact_form->set_properties(array('mail' => $mail)); 

} 

Tôi cố gắng để tìm ra cách để chỉ chuyển các giá trị này đến một trong các mẫu email liên hệ của biểu mẫu, có thể thông qua id biểu mẫu.

Trả lời

8

Mẫu liên hệ 7 sử dụng loại đầu vào bị ẩn để lưu trữ id biểu mẫu. Nó sử dụng tên trường ẩn _wpcf7. Bạn có thể lấy Id dạng như thế này.

$form_id = $contact_form->posted_data['_wpcf7']; 

Vì vậy, bạn mã cuối cùng nên

add_action('wpcf7_before_send_mail', 'wpcf7_add_text_to_mail_body'); 

function wpcf7_add_text_to_mail_body($contact_form){ 
$form_id = $contact_form->posted_data['_wpcf7']; 
if ($form_id == 123): // 123 => Your Form ID. 
    $values_list = $_POST['valsitems']; 
    $values_str = implode(", ", $values_list); 

    // get mail property 
    $mail = $contact_form->prop('mail'); // returns array 

    // add content to email body 
    $mail['body'] .= 'INDUSTRIES SELECTED'; 
    $mail['body'] .= $values_list; 


    // set mail property with changed value(s) 
    $contact_form->set_properties(array('mail' => $mail)); 
endif; 

} 

Hope this helps.

+0

Cảm ơn người đàn ông) Bạn đã lưu ngày của mình –

+0

Sử dụng '$ contact_form-> id()' để lấy id biểu mẫu – frederikvdbe

1

Tôi đã sử dụng câu trả lời của Dinesh, nhưng nó đã ngừng hoạt động đối với tôi. Thay vào đó, bây giờ tôi kiểm tra cho một lĩnh vực mà là duy nhất mẫu Tôi gửi:

add_action('wpcf7_before_send_mail', 'wpcf7_add_text_to_mail_body'); 
function wpcf7_add_text_to_mail_body($contact_form){ 

    $submission = WPCF7_Submission::get_instance(); 
    $posted_data = $submission->get_posted_data(); 
    if(!empty($posted_data["dealer_email"])){ //use a field unique to your form 

     $email = trim($posted_data["dealer_email"]); 
     // more custom stuff here 
    } 
} 

Hãy chắc chắn để có ít nhất một tên hình thức độc đáo trong mỗi hình thức mà bạn có thể sử dụng để làm điều này. Nó vẫn có thể nhận được ID biểu mẫu từ $ contact_form thông qua một hàm, nhưng điều này làm việc và tôi đã có nội dung với kết quả.

Các vấn đề liên quan