首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >自定义Woocommerce通知电子邮件中显示的费用标签和值

自定义Woocommerce通知电子邮件中显示的费用标签和值
EN

Stack Overflow用户
提问于 2019-01-03 06:36:58
回答 1查看 0关注 0票数 0

我在我的主题functions.php中添加了一个自定义代码,为每个订单添加1.00美元的服务费。并且该服务费显示在woocommerce的默认电子邮件通知中,该通知来自此循环内部email-order-details.php

代码语言:javascript
复制
<?php
            $totals = $order->get_order_item_totals();

            if ( $totals ) {
                $i = 0;
                foreach ( $totals as $total ) {
                    $i++;
                    ?>
                    <tr>
                        <th class="td" scope="row" colspan="2" style="text-align:<?php echo esc_attr( $text_align ); ?>; <?php echo ( 1 === $i ) ? 'border-top-width: 4px;' : ''; ?>"><?php echo wp_kses_post( $total['label'] ); ?></th>
                        <td class="td" style="text-align:<?php echo esc_attr( $text_align ); ?>; <?php echo ( 1 === $i ) ? 'border-top-width: 4px;' : ''; ?>"><?php echo wp_kses_post( $total['value'] ); ?></td>
                    </tr>

但我已经定制了email-order-details.php,我希望获得特定标签(服务费)和价值($ 1.00),email-order-details.php以便我可以在我的表中使用它。

我用来添加额外服务费的代码如下。

代码语言:javascript
复制
/**
 * Add a standard $ value service fee to all transactions in cart / checkout
 */
add_action( 'woocommerce_cart_calculate_fees','wc_add_svc_fee' ); 
function wc_add_svc_fee() { 
global $woocommerce; 

if ( is_admin() && ! defined( 'DOING_AJAX' ) ) 
return;


// change the $fee to set the Service Fee to a value to suit
$fee = 1.00;


    $woocommerce->cart->add_fee( 'Service Fee', $fee, true, 'standard' );  

}
EN

回答 1

Stack Overflow用户

发布于 2019-01-03 15:50:04

以下代码将允许您自定义电子邮件通知的费用标签和值

代码语言:javascript
复制
add_filter( 'woocommerce_get_order_item_totals', 'customizing_order_fee', 20, 3 );
function customizing_order_fee( $total_rows, $order, $tax_display ) {
    // Only on email notifications
    if( is_wc_endpoint_url() ) return $total_rows;

    // Loop through order totals data to change the fee label
    foreach( $total_rows as $key => $total_row ){
        if (strpos($key, 'fee_') !== false){
            $total_rows[$key]['label']  = __("My custom Fee label", "woocommerce") . ':';
            $total_rows[$key]['value']  = wc_price(100.20);
        }
    }
    return $total_rows;
}

代码位于活动子主题(或活动主题)的function.php文件中。经过测试和工作。

在此处输入图像描述
在此处输入图像描述
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100003099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档