如何在WooCommerce商品标题后加商品ID后缀并同步至第三方支付网关
解决方法
你现有代码的生效范围仅局限于结账页的the_title钩子输出,第三方支付网关获取商品名称时读取的是订单项存储的商品名称字段,且跳转支付环节is_checkout()判断条件不成立,因此ID后缀不会被追加到提交给支付网关的参数中。
可用实现代码
// 同时挂钩结账页标题、订单项名称两个核心场景 add_filter('the_title', 'append_product_id_to_title', 10, 2); add_filter('woocommerce_order_item_name', 'append_product_id_to_order_item', 10, 3); function append_product_id_to_title($title, $id) { // 仅在结账页且为商品类型时追加ID,不影响其他页面标题 if (class_exists('woocommerce') && is_checkout() && get_post_type($id) === 'product') { $title .= ' - ' . $id; } return $title; } function append_product_id_to_order_item($item_name, $item, $is_visible) { // 订单项场景直接读取商品ID追加,支付网关会调用该接口获取商品名称 $product_id = $item->get_product_id(); $item_name .= ' - ' . $product_id; return $item_name; }
生效说明
- 原有结账页标题展示效果保持不变
- 所有读取订单项商品名称的场景(包括第三方支付网关参数提交、订单详情页订单项展示)都会自动追加商品ID后缀
- 不会影响商品列表页、详情页的原生标题展示
内容的提问来源于stack exchange,提问作者Al Maskari
相关产品推荐
相关产品推荐

