【问题标题】:Gravity Forms - Global forms for multisiteGravity Forms - 多站点的全局表单
【发布时间】:2015-11-20 12:18:26
【问题描述】:

我有一个包含 20 多个站点的 WordPress 多站点网络。我正在为联系/注册/订阅表格使用重力表格。我想为我的 wordpress 多站点安装创建全局表单。重力表单是否有可能仅将表单条目保存到主/父站点中?我试过在儿童网站中使用switch_to_blog()。但它不起作用。任何帮助将不胜感激:)

【问题讨论】:

    标签: wordpress gravity-forms-plugin


    【解决方案1】:

    如果您将表单复制到所有站点,您可以通过在“子”站点上包含此表单,让它们都将数据发送到主站点:

    $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);前面有斜线有什么原因吗?
    【解决方案2】:

    重力形式根据博客数据库表前缀存储数据,

    在多站点中,所有站点都使用相同的数据库,但数据根据表前缀分开,前缀类似于 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_submissiongform_after_submission 之类的钩子修改重力形式

    这个post 可能会有所帮助 http://www.endocreative.com/save-gravity-forms-data-custom-database-table/

    【讨论】:

      猜你喜欢
      • 2018-11-30
      • 2014-11-27
      • 2022-01-17
      • 2015-03-29
      • 2017-02-22
      • 2015-02-10
      • 2014-12-06
      • 1970-01-01
      相关资源
      最近更新 更多