2014-09-12 6 views
0

Я использую следующий код для обновления значения поля с помощью грозного плагин в Wordpress:Добавление несколько функций add_action в Wordpress брейки сайте

// Order Update Mgmt: Status 
add_action('frm_after_create_entry', 'order_mgmt_status', 30, 2); 
    function order_mgmt_status($entry_id, $form_id){ 
     if($form_id == 25){ //change 25 to the ID of your update form 
     global $wpdb, $frmdb, $frm_entry_meta; 
     $order_id = $_POST['item_meta'][1252]; //change 1252 to the ID of the field containing the primary key 
     $new_status = $_POST['item_meta'][1245]; //change 1245 to the ID of the field containing the new data to insert 
     $old_status = 368; //change 368 to the ID of field on the master form containing the old data 
     $wpdb->update($frmdb->entry_metas, array('meta_value' => $new_status), array('item_id' => $order_id, 'field_id' => $old_status)); 
    } 
    } 

Это отлично работает без ошибок.

Однако, если я дублирую код, он разбивает мою установку WordPress (белый экран смерти). Даже если я делаю следующее:

  • перемен «order_mgmt_status» к новой функции имени
  • И просто, чтобы проверить это, я также закомментировал глобальную линию, $ wpdb-> обновление строки, и изменил имена переменных в дублированном коде.
  • Я протестировал его, выполнив новую запись add_action для каждого поля для обновления И, выполнив одну запись add_action, которая вызывает несколько функций для обновления каждого поля. Ни один из них не работал.

Любые идеи для решения были бы очень благодарны!

ответ

0

В этой функции образца, я хотел бы добавить оператор возврата в конце:

return array($entry_id, $form_id); 

так, что ваши следующие крючки имеют что-то работать.

Другие крючки add_action должны выглядеть очень похоже:

add_action('frm_after_create_entry', 'another_order_mgmt_status', 35, 2); 
function another_order_mgmt_status($entry_id, $form_id){ 
    // do smth 
    return array($entry_id, $form_id); 
} 
+0

Спасибо за ответ! Я добавил «return» перед «array», и это привело к тому же пустым белым экранам. – Nick

+0

Пустой белый экран указывает на какую-то серьезную ошибку. Вы должны попытаться выяснить, что это такое. У вас wp_debug установлен в true в вашем wp-config.php? Вы также можете проверить, генерируется ли некоторая ошибка.log где-то в дереве каталогов. – MSTannu