2016-03-18 2 views
0

Я использую это Bootstrap Modal отправить форму в WordPress. Что я делаю сейчас is Я пишу bootstrap modal code в Visual Composer в html structure.отправить HTML-форму в WordPress не работает

Вот код

<form method="post"> 
<div class="form-group"><label class="control-label" for="recipient-name">Your Name:</label> 
<input id="recipient-name" class="form-control" type="text" /></div> 
<div class="form-group"><label class="control-label" for="message-text">Your Message:</label> 
<textarea id="message-text" class="form-control"></textarea></div> 
</form></div> 
<div class="modal-footer"><button class="btn btn-default" type="button" data-dismiss="modal">Close</button> 
<button class="btn btn-primary" name="send_message" type="button">Send message</button></div> 

Теперь проблема, я хочу, чтобы отправить сообщение на определенный адрес электронной почты. с названием кнопки send_message

Есть ли трюк использовать isset($_POST['send_message']) из functions.php? я мог бы поместить HTML форму и Исети отправить с помощью shortcode непосредственно из functions.php, но, к сожалению, я понял, что Визуальный редактор не признает shortcode в html editor

Любой помощь будет оценена. Заранее спасибо.

+0

Если вы используете визуальный композитор, затем вставьте текстовый блок из элементов контента, нажмите кнопку «Редактировать» и в редакторе введите свой короткий код или поместите его между существующим текстовым контентом. Могу работать тогда !!! –

ответ

1

Если вы хотите использовать свой собственный шорт-код в VC, вы можете просто использовать shortcode mapper, расположенный на Visual Composer -> Shortcode Maper. После настройки вы можете использовать свой короткий код как любой другой компонент VC.

Говоря о вашей форме, вы не можете отправить ее прямо так, как она есть сейчас. Вы можете обработать его с помощью javascript/jQuery с помощью ajax, но это своего рода история. Если вы хотите меня, я могу добавить его в свой ответ позже.

Если вы хотите использовать его простым способом, прежде всего, вы должны указать имена для своих входов. Во-вторых, вы должны положить

<input type="submit"> 

внутри вашей формы. После этого форма будет отправлена ​​на текущую страницу при отправке с использованием метода POST.

После этого положите что-то вроде этого в свой файл functions.php, чтобы обработать почту простым способом.

add_action('init', 'process_email'); 
function process_email() { 
    if(isset($_POST['your_required_input_name'])) { 
     $name = $_POST['your_name_input_name']; 
     $txt = $_POST['your_message_input_name']; 
     $to = '[email protected]'; // put your email here 
     $subject = 'Put any subject here'; 
     $message = 'Name: '.$name."\n\r".'Message: '.$txt; 
     $headers = 'From: [email protected]' . "\r\n"; // put user's email here or duplicate your email 

     wp_mail($to, $subject, $message, $headers); 

     header('Location: '.$_SERVER['REQUEST_URI']); 
     die(); 
    } 
} 

Также обратите внимание, что вы можете использовать CF7 плагин для создания ajaxy формы и вставить его внутри ОК с помощью шорткода.

-------------------------------- ОБНОВЛЕНО ------------- ---------------------

Если вы хотите обработать свою форму способом ajax, вы можете использовать jQuery для этого. Обычно это уже помещён на большинство тем, так что просто положить что-то подобное в вашем functions.php

add_action('wp_footer', 'process_email_by_ajax'); 
function process_email_by_ajax() { 
?> 
<script> 
    (function($){ 
     $('button.btn-primary').click(function(){ 
      $.post(window.location.href, { 
       your_name_input_name: $('#recipient-name').val(), 
       your_message_input_name: $('#message-text').val() 
      }, function(){ 
       alert('Yay! Success message!') 
      }).fail(function(){ 
       alert('Oh no! Something goes wrong!') 
      }) 
      return false; 
    }) 
    })(jQuery) 
</script> 
<?php 
} 

Он будет посылать после запроса с текстовой области ввода данных & в сценарий, который размещен выше. Обратите внимание, что вы должны изменить $ _POST ['your_required_input_name'] на некоторый требуемый пост-параметр (т. Е. Your_name_input_name, если вы хотите, чтобы имя было необходимо).

+0

Привет, спасибо за ваш ответ.Я узнал, как вставить короткий код на VC с вашей помощью. Как вы заявили « Говоря о вашей форме, вы не можете отправлять ее прямо так, как сейчас. Вы можете обрабатывать ее с помощью javascript/jQuery с помощью ajax, но это своего рода история» вы можете добавить свой ответ пожалуйста? thanx –

+0

Уверен, я обновил ответ – Codeartist

+0

thnx mate, я сообщу, если какая-либо проблема не исчезла. –

Смежные вопросы