如何在WooCommerce新订单管理员邮件中添加谷歌地图链接
实现WooCommerce管理员新订单邮件添加动态谷歌地图链接的方法
嘿,我来帮你搞定这个需求!要在WooCommerce的管理员新订单邮件里,给客户账单地址加上动态的谷歌地图导航链接(不用硬编码地址),咱们按下面的步骤来操作:
第一步:复制WooCommerce邮件模板到主题目录(关键!)
直接修改WooCommerce插件核心文件的话,插件更新后你的修改会直接丢失,所以必须用模板重载的方式:
- 找到插件内的目标模板:
wp-content/plugins/woocommerce/templates/emails/admin-new-order.php - 把这个文件完整复制到你的当前主题(或子主题)目录下的对应路径:
wp-content/你的主题名称/woocommerce/emails/admin-new-order.php
第二步:定位账单地址的输出区块
打开你复制到主题里的admin-new-order.php文件,找到账单地址的输出代码块,大概是这样的:
<h2><?php esc_html_e( 'Billing address', 'woocommerce' ); ?></h2> <address class="address"> <?php echo wp_kses_post( $order->get_formatted_billing_address() ); ?> <?php if ( $order->get_billing_phone() ) : ?> <br/><?php echo esc_html( $order->get_billing_phone() ); ?> <?php endif; ?> <?php if ( $order->get_billing_email() ) : ?> <br/><?php echo esc_html( $order->get_billing_email() ); ?> <?php endif; ?> </address>
第三步:插入动态谷歌地图链接代码
在上面的<address>标签闭合之后,添加以下代码,用来生成基于当前订单账单地址的动态地图链接:
<?php // 提取纯文本格式的账单地址(移除HTML标签) $billing_address_text = wp_strip_all_tags( $order->get_formatted_billing_address() ); // 转义地址内容,确保能安全作为URL参数 $encoded_address = urlencode( $billing_address_text ); // 构建谷歌地图官方搜索链接 $google_map_link = "https://www.google.com/maps/search/?api=1&query={$encoded_address}"; ?> <p style="margin-top: 12px; font-size: 14px;"> <a href="<?php echo esc_url( $google_map_link ); ?>" target="_blank" rel="noopener noreferrer"> 📍 <?php esc_html_e( '导航到客户地址', 'woocommerce' ); ?> </a> </p>
代码细节说明:
wp_strip_all_tags():移除账单地址里的HTML标签,避免URL混入无效代码urlencode():转义地址中的特殊字符(比如空格、逗号),保证链接能正常访问- 谷歌地图链接采用官方推荐的搜索API格式,点击后会直接定位到目标地址,支持一键导航
第四步:按需调整样式(可选)
你可以根据餐厅的品牌风格,修改链接的文字、字体大小、颜色,或者替换图标(比如把📍换成其他符合风格的元素),让邮件样式更统一。
额外提示
如果你的需求是基于配送地址而非账单地址,只需要把代码里的get_formatted_billing_address()替换成get_formatted_shipping_address()即可。
内容的提问来源于stack exchange,提问作者gilberke
相关产品推荐
相关产品推荐

