Если вы хотите использовать свой собственный шорт-код в 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, если вы хотите, чтобы имя было необходимо).
Если вы используете визуальный композитор, затем вставьте текстовый блок из элементов контента, нажмите кнопку «Редактировать» и в редакторе введите свой короткий код или поместите его между существующим текстовым контентом. Могу работать тогда !!! –