【发布时间】:2015-11-20 12:18:26
【问题描述】:
我有一个包含 20 多个站点的 WordPress 多站点网络。我正在为联系/注册/订阅表格使用重力表格。我想为我的 wordpress 多站点安装创建全局表单。重力表单是否有可能仅将表单条目保存到主/父站点中?我试过在儿童网站中使用switch_to_blog()。但它不起作用。任何帮助将不胜感激:)
【问题讨论】:
标签: wordpress gravity-forms-plugin
我有一个包含 20 多个站点的 WordPress 多站点网络。我正在为联系/注册/订阅表格使用重力表格。我想为我的 wordpress 多站点安装创建全局表单。重力表单是否有可能仅将表单条目保存到主/父站点中?我试过在儿童网站中使用switch_to_blog()。但它不起作用。任何帮助将不胜感激:)
【问题讨论】:
标签: wordpress gravity-forms-plugin
如果您将表单复制到所有站点,您可以通过在“子”站点上包含此表单,让它们都将数据发送到主站点:
$formId = 1; //Put your form id here
add_filter('gform_confirmation_'.$formId, 'gform_confirmation', 10, 4);
function gform_confirmation($confirmation, $form, $entry, $is_ajax) {
//Switch to Main site
switch_to_blog(1);
//Insert the entry into the main site
$new_entry_id = \GFAPI::add_entry($entry);
//Switch back
restore_current_blog();
//Tidy up by deleting the entry from THIS site
$result = GFAPI::delete_entry($entry['id']);
return $confirmation;
}
【讨论】:
GFAPI::add_entry($entry);前面有斜线有什么原因吗?
重力形式根据博客数据库表前缀存储数据,
在多站点中,所有站点都使用相同的数据库,但数据根据表前缀分开,前缀类似于 wp_1_、wp_2_、wp_3_.....
如果您有一个站点,例如 my.blog1.com,带有表前缀 wp_1_,重力形式将 my.blog1.com 的所有表单条目存储到 wp_1_rg_lead、wp_1_rg_lead_detail、wp_1_rg_lead_detail_long、
现在,如果您想在父安装中保存这些详细信息,则需要使用数据库并使用诸如 gform_pre_submission 或 gform_after_submission 之类的钩子修改重力形式
这个post 可能会有所帮助 http://www.endocreative.com/save-gravity-forms-data-custom-database-table/
【讨论】: