如何修改WooCommerce优惠券邮件:显示商品/分类名称及链接
WooCommerce优惠券邮件:ID转名称+链接解决方案
1. 添加ID转换函数
将以下代码添加到你的主题functions.php文件或自定义功能插件中:
// 商品ID转带链接的商品名称 function get_product_name_link( $product_id ) { $product = wc_get_product( $product_id ); if ( ! $product ) return '无效商品'; $product_name = esc_html( $product->get_name() ); $product_link = esc_url( $product->get_permalink() ); return "<a href='{$product_link}'>{$product_name}</a>"; } // 分类ID转带链接的分类名称 function get_category_name_link( $category_id ) { $category = get_term( $category_id, 'product_cat' ); if ( ! $category || is_wp_error( $category ) ) return '无效分类'; $category_name = esc_html( $category->name ); $category_link = esc_url( get_term_link( $category ) ); return "<a href='{$category_link}'>{$category_name}</a>"; }
2. 修改邮件内容输出逻辑
找到你原有代码中生成邮件内容的部分,将直接输出商品/分类ID的代码替换为调用上述函数的代码:
替换前(示例):
// 原代码中输出商品ID $email_body .= '关联商品ID:' . $target_product_id . '<br>'; // 原代码中输出分类ID $email_body .= '关联分类ID:' . $target_category_id . '<br>';
替换后:
// 输出带链接的商品名称 $email_body .= '关联商品:' . get_product_name_link( $target_product_id ) . '<br>'; // 输出带链接的分类名称 $email_body .= '关联分类:' . get_category_name_link( $target_category_id ) . '<br>';
3. 确保邮件支持HTML格式
如果你的邮件发送逻辑是自定义的,需确保添加HTML格式的请求头,避免链接显示为纯文本:
$headers = array( 'Content-Type: text/html; charset=UTF-8' ); wp_mail( $customer_email, '你的优惠券主题', $email_body, $headers );
内容的提问来源于stack exchange,提问作者brc
相关产品推荐
相关产品推荐

