如何将WooCommerce订单确认邮件的支付方式改为实际支付来源
WooCommerce Payments 会将实际支付来源信息存储在订单自定义字段中,你只需在原有代码的循环结束后追加实际支付方式的输出逻辑即可,修改后的完整代码如下:
<tfoot> <?php if ( $totals = $order->get_order_item_totals() ) { $i = 0; foreach ( $totals as $key => $total ) { $i++; if ( $key !== 'payment_method' ){ ?><tr> <th scope="row" colspan="2" style="text-align:left; border: 1px solid #eee; <?php if ( $i == 1 ) echo 'border-top-width: 4px;'; ?>"><?php echo $total['label']; ?></th> <td style="text-align:left; border: 1px solid #eee; <?php if ( $i == 1 ) echo 'border-top-width: 4px;'; ?>"><?php echo $total['value']; ?></td> </tr><?php } } // 新增实际支付来源展示逻辑 $payment_method = $order->get_payment_method(); if ( $payment_method === 'woocommerce_payments' ) { // 获取实际支付方式类型 $payment_type = get_post_meta( $order->get_id(), '_wc_payments_payment_method_type', true ); // 如需显示支付卡后四位,可取消下一行注释 // $card_last4 = get_post_meta( $order->get_id(), '_wc_payments_card_last4', true ); if ( $payment_type ) { // 首字母大写优化显示效果 $payment_label = ucfirst( $payment_type ); // 如需显示支付卡后四位,可取消下一行注释 // if ( $card_last4 ) $payment_label .= ' (****' . $card_last4 . ')'; $i++; ?> <tr> <th scope="row" colspan="2" style="text-align:left; border: 1px solid #eee; <?php if ( $i == 1 ) echo 'border-top-width: 4px;'; ?>">支付方式</th> <td style="text-align:left; border: 1px solid #eee; <?php if ( $i == 1 ) echo 'border-top-width: 4px;'; ?>"><?php echo $payment_label; ?></td> </tr> <?php } } } ?>
如果你使用的 WooCommerce Payments 版本较旧,可先到后台订单详情页的自定义字段区域,确认实际支付类型对应的存储字段名是否匹配,避免取值为空。
内容的提问来源于stack exchange,提问作者Marney Fontana
相关产品推荐
相关产品推荐

