You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从ACF Extended谷歌地图字段的邮件表单数据中单独获取经纬度值

解决方案

方案1:使用ACF Extended动态表单钩子注册自定义占位符

ACF Extended原生占位符暂不支持直接读取Google Maps字段返回数组的指定键值,你可以通过邮件预处理钩子注册专属的经纬度占位符。将以下代码添加到主题functions.php文件或自定义功能插件中即可:

// 注册地图经纬度自定义邮件占位符
add_filter('acfe/form/prepare_email', 'custom_acf_map_lat_lng_placeholders', 10, 4);
function custom_acf_map_lat_lng_placeholders($email, $form, $args, $post_id){
    // 替换为你实际的Google Maps字段名
    $map_field_name = 'defibrylator_lokalizacja_mapa';
    $map_value = get_field($map_field_name, $form['post_id']);
    
    if(!empty($map_value) && is_array($map_value)){
        // 替换占位符为对应数值
        $email['content'] = str_replace('{map:lat}', $map_value['lat'], $email['content']);
        $email['content'] = str_replace('{map:lng}', $map_value['lng'], $email['content']);
    }
    return $email;
}

配置完成后,直接在邮件模板中使用{map:lat}调用纬度、{map:lng}调用经度即可。

方案2:使用自定义短代码调取

如果需要更灵活的字段值调用能力,也可以注册通用短代码实现:

// 自定义短代码提取地图字段指定键值
add_shortcode('get_map_value', 'custom_get_map_value');
function custom_get_map_value($atts){
    $atts = shortcode_atts([
        'field' => '',
        'key' => '',
    ], $atts);
    
    if(empty($atts['field']) || empty($atts['key'])) return '';
    $map_val = get_field($atts['field']);
    return isset($map_val[$atts['key']]) ? $map_val[$atts['key']] : '';
}

在邮件模板中使用[get_map_value field="defibrylator_lokalizacja_mapa" key="lat"]取纬度,[get_map_value field="defibrylator_lokalizacja_mapa" key="lng"]取经度即可。

内容的提问来源于stack exchange,提问作者user2869150

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 10:15:02