多站点 - 将 ACF 值从当前站点传递到多站点上另一个站点的 Gravity Forms 表单
Multisite - passing ACF values from current site to Gravity Forms form from another site on multisite
我正在尝试将高级自定义字段中的数据传递到我的 Gravity Forms 表单中。我 运行 遇到的问题是表单是通过以下方式从多站点上的另一个站点生成的:
<?php switch_to_blog(1);?>
<?php echo do_shortcode( '[gravityform id="3" title="false"
description="false"]' ); ?>
<?php restore_current_blog(); ?>
在我的 functions.php
文件中(对于博客 1 和当前站点),我有:
add_filter( 'gform_field_value_lead_source_detail', 'populate_lead_source_detail' );
function populate_lead_source_detail( $value ) {
$leadsourcedetail = get_field('lead_source_detail', $post->ID);
return $leadsourcedetail;
}
add_filter( 'gform_field_value_lifecycle_status', 'populate_lifecycle_status' );
function populate_lifecycle_status( $value ) {
$lifecycle = get_field('lifecycle_status', $post->ID);
return $lifecycle;
}
add_filter( 'gform_field_value_lead_source', 'populate_lead_source' );
function populate_lead_source( $value ) {
$leadsource = get_field('lead_source', $post->ID);
return $leadsource;
}
add_filter( 'gform_field_value_channel', 'populate_channel' );
function populate_channel( $value ) {
$channel = get_field('channel', $post->ID);
return $channel;
}
add_filter( 'gform_field_value_expected_op_type', 'populate_expected_op_type' );
function populate_expected_op_type( $value ) {
$expected = get_field('expected_op_type', $post->ID);
return $expected;
}
ACF 字段在博客 1 上工作得很好,Gravity Form 是从那里生成的,但我无法让它们将数据传递到当前博客上的表单。
为了确保 ACF 字段正常工作(通常),我对每个字段都进行了测试 <?php the_field(); ?>
,并且数据确实存在......所以我假设它与事实上,我正在从多站点的不同站点提取表单。
有人知道如何将数据从我当前的站点传递到 blog 1 表单吗?提前致谢!
使用选项存储您的数据,然后尝试访问它。
站点 1 --> Site1_only_plugin --> Site1_only_plugin_function()--> add_option( 'Site1_only_plugin_option', $var )
您应该在下面 link 中参考 Brent Leavitt 的评论。那是我找到这个的地方。
https://developer.wordpress.org/reference/functions/switch_to_blog/
可能这就是你需要的。
希望对您有所帮助。
以完全不同的方式处理这个问题。在 Gravity Forms 文档中找到了这个:https://docs.gravityforms.com/using-dynamic-population/——在简码下:
[gravityform id=1 field_values=’parameter_name1=value1¶meter_name2=value2′]
真希望我能在花一整天时间之前找到它。大声笑......这是我之后的步骤:
我 exported/imported 重力形式到另一个网站
共享相同主题的多站点(所以我没有在两个
不同的 functions.php
个文件;这就是为什么下面的博客 id 和 Gravity Forms id 不同的原因)。
我删除了我最初在 functions.php
中创建的所有函数
我之前提到的文件。 (populate_lead_source_detail
,
populate_lifecycle_status
, 等等)
我从该页面的 ACF 字段创建了变量。
<?php $lead_source_detail = get_field('lead_source_detail');
$lifecycle_status = get_field('lifecycle_status');
$lead_source = get_field('lead_source');
$channel = get_field('channel');
$expected_op_type = get_field('expected_op_type'); ?>
我调用了短代码中的变量。 (请参阅下面的最终代码。)
<?php switch_to_blog(11);?>
<?php echo do_shortcode( '[gravityform id="1" title="false" description="false" field_values="lead_source_detail='.$lead_source_detail.'&lifecycle_status='.$lifecycle_status.'&lead_source='.$lead_source.'&channel='.$channel.'&expected_op_type='.$expected_op_type.'"]' ); ?>
<?php restore_current_blog(); ?>
我正在尝试将高级自定义字段中的数据传递到我的 Gravity Forms 表单中。我 运行 遇到的问题是表单是通过以下方式从多站点上的另一个站点生成的:
<?php switch_to_blog(1);?>
<?php echo do_shortcode( '[gravityform id="3" title="false"
description="false"]' ); ?>
<?php restore_current_blog(); ?>
在我的 functions.php
文件中(对于博客 1 和当前站点),我有:
add_filter( 'gform_field_value_lead_source_detail', 'populate_lead_source_detail' );
function populate_lead_source_detail( $value ) {
$leadsourcedetail = get_field('lead_source_detail', $post->ID);
return $leadsourcedetail;
}
add_filter( 'gform_field_value_lifecycle_status', 'populate_lifecycle_status' );
function populate_lifecycle_status( $value ) {
$lifecycle = get_field('lifecycle_status', $post->ID);
return $lifecycle;
}
add_filter( 'gform_field_value_lead_source', 'populate_lead_source' );
function populate_lead_source( $value ) {
$leadsource = get_field('lead_source', $post->ID);
return $leadsource;
}
add_filter( 'gform_field_value_channel', 'populate_channel' );
function populate_channel( $value ) {
$channel = get_field('channel', $post->ID);
return $channel;
}
add_filter( 'gform_field_value_expected_op_type', 'populate_expected_op_type' );
function populate_expected_op_type( $value ) {
$expected = get_field('expected_op_type', $post->ID);
return $expected;
}
ACF 字段在博客 1 上工作得很好,Gravity Form 是从那里生成的,但我无法让它们将数据传递到当前博客上的表单。
为了确保 ACF 字段正常工作(通常),我对每个字段都进行了测试 <?php the_field(); ?>
,并且数据确实存在......所以我假设它与事实上,我正在从多站点的不同站点提取表单。
有人知道如何将数据从我当前的站点传递到 blog 1 表单吗?提前致谢!
使用选项存储您的数据,然后尝试访问它。
站点 1 --> Site1_only_plugin --> Site1_only_plugin_function()--> add_option( 'Site1_only_plugin_option', $var )
您应该在下面 link 中参考 Brent Leavitt 的评论。那是我找到这个的地方。
https://developer.wordpress.org/reference/functions/switch_to_blog/
可能这就是你需要的。
希望对您有所帮助。
以完全不同的方式处理这个问题。在 Gravity Forms 文档中找到了这个:https://docs.gravityforms.com/using-dynamic-population/——在简码下:
[gravityform id=1 field_values=’parameter_name1=value1¶meter_name2=value2′]
真希望我能在花一整天时间之前找到它。大声笑......这是我之后的步骤:
我 exported/imported 重力形式到另一个网站 共享相同主题的多站点(所以我没有在两个 不同的
functions.php
个文件;这就是为什么下面的博客 id 和 Gravity Forms id 不同的原因)。我删除了我最初在
functions.php
中创建的所有函数 我之前提到的文件。 (populate_lead_source_detail
,populate_lifecycle_status
, 等等)我从该页面的 ACF 字段创建了变量。
<?php $lead_source_detail = get_field('lead_source_detail'); $lifecycle_status = get_field('lifecycle_status'); $lead_source = get_field('lead_source'); $channel = get_field('channel'); $expected_op_type = get_field('expected_op_type'); ?>
我调用了短代码中的变量。 (请参阅下面的最终代码。)
<?php switch_to_blog(11);?> <?php echo do_shortcode( '[gravityform id="1" title="false" description="false" field_values="lead_source_detail='.$lead_source_detail.'&lifecycle_status='.$lifecycle_status.'&lead_source='.$lead_source.'&channel='.$channel.'&expected_op_type='.$expected_op_type.'"]' ); ?> <?php restore_current_blog(); ?>