0

我正在使用以下代码使用 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->update 行,并更改了重复代码中的变量名称。
  • 我已经通过为每个要更新的字段执行一个新的 add_action 条目并通过执行一个调用多个函数来更新每个字段的单个 add_action 条目来测试它。这些都不起作用。

任何解决方案的想法将不胜感激!

4

1 回答 1

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 );
}
于 2014-09-13T09:20:31.830 回答