试图在标题中尽可能具体。基本上我有一个我正在研究的房地产网站,其中包含房产列表。该属性列表是一个自定义的帖子类型,并附加了几个其他自定义帖子类型(每个类型都有自己的自定义字段)。
每个属性都附有一个代理(自定义帖子类型),并附带自定义字段,如电子邮件,脸书,电话号码等。
我需要使用代理电子邮件(与作者电子邮件不同)动态预填充Gravity Forms上的隐藏字段,以便我可以向该地址发送电子邮件。
我尝试了以下但没有运气,因为我确定缺少从代理自定义帖子类型调用自定义字段的内容,但我不确定如何。这就是我到目前为止所做的工作:
add_filter('gform_field_value_agentemail', 'populate_post_agent_email');
function populate_post_agent_email($value){
global $post;
$agents_email = get_post_meta($post->ID, 'agent_email', true);
return $agents_email;
}
我添加了参数名称" agentemail"到重力形式领域。如果有人知道我缺少什么能够将此字段(或代理自定义帖子中的任何字段)转换为此表单,我们将非常感激。
感谢。
答案 0 :(得分:0)
我现在正在处理这个问题 - 我能够将值从一个页面传递到另一个页面,并将信息附加到网址的末尾 -
离。 http://www.your-website.com/?agentemail=agent@email.com
为此,您必须检查“允许此字段是否已填充”。在编辑相关字段时。
对我来说,这不是最重要的事情(我想在页面加载时生成此内容,而不是将其附加到按钮上,但它是一个开始。我和#39;当我完成过滤后,我会再次发表评论。
亚当
答案 1 :(得分:0)
以下是我使用Joshua David Nelson创建的一些代码填充我的GravityForms Dropdown,josh @ joshuadnelson.com
通过一些小修改,我能够获得正确的输出到下拉框(正在寻找用户电子邮件地址而不是用户nicenames,但您可以修改此脚本以输出您想要的任何内容,只需对其进行一些小的更改查询args)
// Gravity Forms User Populate, update the '1' to the ID of your form
add_filter( 'gform_pre_render_1', 'populate_user_email_list' );
function populate_user_email_list( $form ){
// Add filter to fields, populate the list
foreach( $form['fields'] as &$field ) {
// If the field is not a dropdown and not the specific class, move onto the next one
// This acts as a quick means to filter arguments until we find the one we want
if( $field['type'] !== 'select' || strpos($field['cssClass'], 'your-field-class') === false )
continue;
// The first, "select" option
$choices = array( array( 'text' => 'Just Send it to the Default Email', 'value' => 'me@mysite.com' ) );
// Collect user information
// prepare arguments
$args = array(
// order results by user_nicename
'orderby' => 'user_email',
// Return the fields we desire
'fields' => array( 'id', 'display_name', 'user_email' ),
);
// Create the WP_User_Query object
$wp_user_query = new WP_User_Query( $args );
// Get the results
$users = $wp_user_query->get_results();
//print_r( $users );
// Check for results
if ( !empty( $users ) ) {
foreach ( $users as $user ){
// Make sure the user has an email address, safeguard against users can be imported without email addresses
// Also, make sure the user is at least able to edit posts (i.e., not a subscriber). Look at: http://codex.wordpress.org/Roles_and_Capabilities for more ideas
if( !empty( $user->user_email ) && user_can( $user->id, 'edit_posts' ) ) {
// add users to select options
$choices[] = array(
'text' => $user->user_email,
'value' => $user->id,
);
}
}
}
$field['choices'] = $choices;
}
return $form;
}
/* end of populate advisors for dropdown field */
要使其工作,您需要做的就是将上面的代码添加到functions.php文件中,添加您想要更改的GravityForm的“ID”(添加到add_filter参考中)并添加您的下拉字段的“类别”(其中显示为“您的字段类”)。
如果您对上述代码有任何疑问,请与我们联系。
亚当