2014-12-04 4 views
0

Оглянувшись и не мог найти что-либо касающееся этого. Попытка запуска нескольких экземпляров фильтра короткого кода do на веб-сайте WordPress для предварительного заполнения некоторых значений формы в веб-форме.WordPress Multiple do shortcode filter

Все еще работаем над этим и получаем некоторые ошибки. Как мы будем комбинировать их и избегать дублирования функциональных ошибок и других связанных с этим проблем?

тока рабочий пример одного фильтра сделать SHORTCODE, это само по себе работает:

add_filter('gform_field_value_Leadsource', 'my_custom_population_function'); 
function my_custom_population_function($value){ 
return do_shortcode('[Leadsource]'); 
} 

Как бы мы комбинируем следующие делать SHORTCODE фильтры в один бит кода? Пример копирования и вставки будет настолько полезен.

add_filter('gform_field_value_Leadsource', 'my_custom_population_function'); 
function my_custom_population_function($value){ 
return do_shortcode('[Leadsource]'); 
} 
add_filter('gform_field_value_First', 'my_custom_population_function'); 
function my_custom_population_function($value){ 
return do_shortcode('[i4w_db_FirstName]'); 
} 
add_filter('gform_field_value_Last', 'my_custom_population_function'); 
function my_custom_population_function($value){ 
return do_shortcode('[i4w_db_LastName]'); 
} 
add_filter('gform_field_value_Email', 'my_custom_population_function'); 
function my_custom_population_function($value){ 
return do_shortcode('[i4w_db_Email]'); 
} 

Спасибо всем, кто может помочь! :)

ответ

0

Я думаю, что-то вроде этого следует сделать трюк (PHP 5.3 или выше):

add_action('init', 'so27284262_shortcode_init'); 
function so27284262_shortcode_init() 
{ 
    $xref = array(
     'Leadsource' => 'Leadsource', 
     'First'   => 'i4w_db_FirstName', 
     'Last'   => 'i4w_db_LastName', 
     'Email'   => 'i4w_db_Email' 
    ); 

    foreach($xref as $name => $cb) { 
     add_filter('gform_field_value_' . $name, function($value) use ($cb) { 
      return do_shortcode("[$cb]"); 
     }); 
    } 
} 
+0

Это, казалось, сделать трюк, спасибо большое @diggy – Chris