Я ищу плагин WordPress, который позволяет администратору создать форму и отправить ее на свой URL. Я использовал контактную форму 7, но она не поддерживает такую функциональность.
Единственное решение, которое я нашел, это либо создать пользовательскую форму, либо использовать хуки контактной формы 7 для извлечения данных поста и отправки этих данных в пользовательский URL через вызов curl.
Любое лучшее решение, пожалуйста?
Использовал этот маленький крючок ниндзя, но не работает:
function ninja_forms_handler() {
add_action ( 'ninja_forms_post_process', 'change_ninja_forms_landing_page', 1, 2 );
}
add_action('init', 'ninja_forms_handler');
function change_ninja_forms_landing_page(){
global $ninja_forms_processing;
$form_id = $ninja_forms_processing->get_form_ID();
$ninja_forms_processing->update_form_setting( 'landing_page', 'test.php' );
}
}
Здесь я дал два способа, используя контактную форму 7
Путь-1 Через контактную форму настраиваемого действия URL
Создайте файл «custom_url.php» в корневой папке вашего сайта
В этом файле вы можете получить контактную форму для публикации данных и написать свой код curl и все, что вы хотите ..
Скопируйте приведенный ниже код и вставьте в файл theme.php вашей темы.
add_filter('wpcf7_form_action_url', 'wpcf7_custom_form_action_url');
function wpcf7_custom_form_action_url()
{
return 'custom_url.php';
}
Дайте этот файл «custom_url.php» для действия формы контакта. Скопируйте приведенный ниже код и вставьте его на своей странице или посте, где хотите.
<form class = «» action = «custom_url.php» method = «post» name = «»>
[contact-form-7 id = «1» title = «контактная форма 7»]
</ форма>
Путь-2 Хотя контактная форма 7 перехватывает «wpcf7_before_send_mail»
add_action('wpcf7_before_send_mail', 'CF7_pre_send');
function CF7_pre_send($cf7) {
$submission = WPCF7_Submission::get_instance();
if ($submission) {
$posted_data = $submission->get_posted_data();
$arrFields = array();
foreach ($posted_data as $key => $value) {
//$strKeyVals .= $key.":".$value.", ";
if ("_wp" != substr($key, 0, 3)) {
$arrFields[] = $key . '${$' . $value;
}
}
/* Here you can write curl and whatever you want */
}
}
Это должно сделать свое дело CF7 Документы.
Добавьте код только в нижний колонтитул вашего шаблона страницы контактов.
Дайте мне знать, как вы поживаете.