在Wordpress中添加多个add_action函数会中断站点

时间:2014-09-12 21:17:06

标签: php wordpress formidable

我正在使用以下代码使用Wordpress中的Formidable插件更新字段值:

// 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条目来更新AND。这些都没有奏效。

非常感谢任何解决方案的想法!

1 个答案:

答案 0 :(得分:0)

在该示例函数中,我最后会添加一个return语句:

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 );
}