Поскольку вы совсем не знакомы с кодом PHP, я дам вам небольшой курс по программированию в Wordpress API.
Во-первых, вам нужно знать разницу между функциями и переменными. Переменная - это единый объект, который предназначен для представления произвольного значения. Значение может быть любым. Число, чье-то имя или сложные данные.
Функция - это то, что выполняет серию действий, чтобы либо отправить обратно - или вернуть - переменную, либо изменить данную переменную.
<?php
$a = 1; //Number
$b = 'b'; //String *note the quotes around it*
$c = my_function(); //Call to a function called my_function
echo $a; //1
echo $b; //b
echo $c; //oh, hello
function my_function()
{
return 'oh, hello';
}
?>
Wordpress использует собственную систему действий и фильтров, основанную на стиле событийно-ориентированного программирования.
Это означает, что Wordpress «ожидает» определенного события, и когда это происходит, он выполняет функцию, прикрепленную к этому событию (также известную как обратный вызов). Это «Действия» и «Фильтры». Так в чем разница?
Действия - это функции, которые выполняют какие-то действия
Фильтры - это функции, которые возвращают данные
Итак, как все это вписывается в вашу проблему?
Контактная форма 7 имеет собственный фильтр, который возвращает URL-адрес, по которому информация должна быть отправлена его формами.
Итак, давайте рассмотрим основы Filter Hook
add_filter('hook_name', 'your_filter');
- add_filter - это функция, которая сообщает Wordpress, что ему нужно прослушивать определенное событие.
- «hook_name» - это событие, которое ожидает Wordpress.
- your_filter - это функция или обратный вызов, которая вызывается при срабатывании события hook_name.
В ссылке на предыдущий поток указано, что имя ловушки, которое вам нужно использовать, - «wpcf7_form_action_url». Это означает, что все, что вам нужно сделать, это вызвать add_filter, установить «hook_name» на «wpcf7_form_action_url», а затем установить «your_filter» на имя функции, которую вы будете настраивать в качестве обратного вызова.
Как только это будет сделано, вам просто нужно определить функцию с именем, которое соответствует тому, что вы указали вместо your_filter, и просто убедитесь, что она возвращает URL-адрес для изменения действия формы.
Теперь возникает проблема: это изменит ВСЕ ваши формы. Но первое, что нужно сделать: посмотрите, сможете ли вы самостоятельно запустить какой-нибудь рабочий код. Просто напишите свой код в functions.php и дайте нам знать, как это получается.
ОБНОВЛЕНИЕ:
Тот факт, что вы смогли получить его так быстро, замечателен и показывает количество исследовательских усилий, которые вы прилагаете к этому.
Поместите все это в functions.php
add_filter('wpcf7_form_action_url', 'wpcf7_custom_form_action_url');
function wpcf7_custom_form_action_url()
{
return 'wheretopost.asp';
}
Как упоминалось ранее, это повлияет на ВСЕ ваши формы. Если предполагается, что это влияет только на форму на данной странице, вы можете сделать что-то вроде этого:
add_filter('wpcf7_form_action_url', 'wpcf7_custom_form_action_url');
function wpcf7_custom_form_action_url($url)
{
global $post;
$id_to_change = 1;
if($post->ID === $id_to_change)
return 'wheretopost.asp';
else
return $url;
}
Все, что вам нужно сделать, это изменить значение $ id_to_change на число, представляющее идентификатор сообщения / страницы, на которое вы пытаетесь повлиять. Итак, если, например, у вас есть страница сведений, на которой вы хотите изменить URL-адрес действия, вы можете найти номер идентификатора своей страницы сведений в панели управления администратора (просто перейдите в редактор страниц и найдите в своем URL-адресе идентификатор number) и измените 1 на любой ID-номер.
Надеюсь, это поможет вам, и удачи вам.
person
maiorano84
schedule
06.01.2013